giovedì 26 settembre 2013

Httpclient con Arduino Yun

Un primo esempio dell'HttpClient di Yun

-----------------------------------------
#include <Bridge.h>
#include <HttpClient.h>
#include <Console.h>


void setup() {
  Bridge.begin();
  Console.begin(); 
  while (!Console) {
  }
  Console.println("Inizio"); 
}

void loop() {
  HttpClient client;
  client.get("http://mxxxxxxxx/luca/examples/like3.php");

  while (client.available()) {
    char c = client.read();
    Console.print(c);
  }

  Console.flush();

  delay(5000);
}
-----------------------------------------

Questa e' la risposta del server

m.msn.unifi.it:80 151.44.64.150 - - [19/Sep/2013:16:17:02 +0200] "GET /luca/examples/like3.php HTTP/1.1" 200 394 "-" "curl/7.29.0"

Budenza Demo 1994


Frugando su Internet ho trovato questa demo scritta nel 1994 da un paio di miei amici (tanto per dare l'idea era scritta per DOS e sviluppata su 386 e 486 per le VGA)
L'aspetto ancora piu' curioso e' che all'epoca Internet era (in Italia) ancora sostanzialmente sconosciuta ed infatti sono riportati gli indirizzi mail in formato FIDO-Net (BBS Telin)

All'epoca ne seguii di riflesso lo sviluppo (conoscendo anche alcuni trucchi che sono stati utilizzati per gli effetti grafici) e non mi sarei mai aspettato di metterla in esecuzione 19 anni dopo in una Debian Box








Elettronica in un telefono

Per tentare di recuperare un po' di elettronica ho smontato un telefono da tavolo
Con mia grande sorpresa la scheda si presentava come nella foto sottostanti

In pratica di elettronica discreta sono presenti solo

n.1 A7275AL-A52533
n.2 switch
n.4 diodi
n.10 resistenze
n.1 buzzer

in buona sostanza tutte le funzionalita' (tastiera + telefonia) sono racchiuse in un solo chip con pochissimi altri componenti


a




Libsoup crash in Eclipse 64 Bit

Se si utilizza Eclipse 64 bit per Android c'e' un fastidioso bug nella gestione della libreria libsoup

Per correggere il problema si deve correggere il file eclipse.ini aggiungendo la seguente riga
-Dorg.eclipse.swt.browser.DefaultType=mozilla
informazione ripresa da https://bugs.eclipse.org/bugs/show_bug.cgi?id=405786

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f1c73b60ab1, pid=5477, tid=139761754089216
#
# JRE version: Java(TM) SE Runtime Environment (7.0_40-b43) (build 1.7.0_40-b43)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.0-b56 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libsoup-2.4.so.1+0x6fab1]  soup_session_feature_detach+0x11
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/luca/android/eclipse/hs_err_pid5477.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.

mercoledì 25 settembre 2013

Display 7Led con controller MAX72XX in Arduino


In questo post viene mostrato un esempio per utilizzare i display a 7 Led abbinati al controller MAX72XX con Arduino (in questo caso una Yun)

Sono necessari 5 connessioni
VCC
GND
DIN (al pin 7 nello sketch sottostante)
CLK (al pin D6 nello sketch sottostante)
LOAD o CS (al pin D5 nello sketch sottostante)

la libreria di riferimento e' LedControl che deve aggiunta all'ambiente di sviluppo per poter compilare correttamente lo sketch sotto riportato


Lo sketch effettua un conteggio alla rovescia e poi mostra una stringa


Curiosamente utilizzando un diverso display (con i numeri piu' grandi) le posizioni dei caratteri sono invertite usando il medesimo sketch




---------------------------------
#include "LedControl.h" 

// Arduino 
//D7 to DIN, 
//D6 to Clk, 
//D5 to LOAD, su alcuni Led il pin e' denominatoCS
//1 = numero del dispositivo, in questo caso e' uno solo

LedControl lc=LedControl(7,6,5,1); 
void setup() 
{
// Initialize the MAX7219 device 
lc.shutdown(0,false); // Enable display 
lc.setIntensity(0,10); // Set brightness level (0 is min, 15 is max) 


void loop() 

{
lc.clearDisplay(0); // Clear display register

 //setDigit
//il primo numero indica il display
//il secondo la posizione partendo da sinistra con valore 0
//il numero da mostrare
for (int s=5;s>=0;s--)
   {
  for (int t=9;t>=0;t--)
      {
      lc.setDigit(0,3,s,false);
      lc.setDigit(0,4,t,false);
      delay(1000);
      }
   }

lc.clearDisplay(0); // Clear display register

//usando setChar si puo' invece mostrare alcuni caratteri
lc.setChar(0,2,'L',false);
lc.setRow(0,3,0x1c);
lc.setChar(0,4,'c',false);
lc.setChar(0,5,'a',false);
  
delay(4000); 
}

lunedì 23 settembre 2013

Abilitare la funzionalita' di sviluppatore in Android 4.3

Nel menu' di Android 4.3 sono (a prima vista) scomparse le opzioni per mettere in modalita' sviluppatore il device Android..cio' vuol dire che si cerca il device con adb la lista risulta vuota

In realta' esiste un trucco piuttosto subdolo. Per prima cosa si deve andare in Informazioni sul tablet e cliccare ripetutamente sul Numero Build...compare un contatore (in una toast)


Alla fine appare la scritta "Sei diventato uno sviluppatore"

Adesso si puo' tornare indietro di un menu e compare Opzioni sviluppatore


E da qui si puo' abilitare l'opzione di debug

Ripreso da qui

martedì 17 settembre 2013

Configurazione iniziale di Arduino Yun




Una volta accesa la Arduino Yun, questa si configura in modalita' access point e compare nell'elenco delle reti disponibili senza nessuna protezione


Accoppiandosi con la rete Arduino e digitando 192.168.240.1 si arriva al pannello di configurazione Web (la password di default e' Arduino)


Si preme quindi Configure per associare la scheda alla rete wireless


Nel menu a tendina viene presentata la lista delle reti WiFi disponibili


Terminata la configurazione la Arduino si riavvia sulla nuova rete e lo stesso si deve fare con il computer/portatile di lavoro


Per programmare Arduino Yun e' necessario installare l'ambiente di sviluppo della serie 1.5 (al momento 1.5.4). La cosa divertente e' che Yun si puo' programmare direttamente wireless senza la necessita' di un cavo USB. Nel menu Port infatti compare il dispositivo con il suo numero di rete (viene individuato in automatico)



Per caricare gli sketch e' necessario digitare la password di rete



Debugger integrato ESP32S3

Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede  nell'ID USB della porta Jtag. Nel modulo...