giovedì 26 settembre 2013

Ancora su Arduino Yun


Un po' di aggiornamenti sulla Yun

1) Al contrario di Arduino Uno, gli sketch di Yun non si resettano quando si collega il terminale sulla seriale virtuale. Per effettuare il reset si deve premere il pulsante fisico di reset oppure collegarsi alla serial con una velocita' di 1200

2) Nelle configurazioni avanzate e' presente un menu avanzato per visualizzare lo stato della rete denominato Luci


3) Se la Yun non e' in modalita' Access Point e' possibile collegarsi in SSH. L'utente e' root e la password e' quella che e' stata impostata dall'utente


4) Dopo un riavvio da modalita' Access Point a modalita' normale la Yun non puo' essere pingata ma solo chiamata con il nome impostato (per esempio c1p81.local).

5) Direttamente dal forum di Arduino Yun il pinout
6) Per poter osservare i messaggi che prima si potevano inviare sulla seriale virtuale quando vi e' la sola connessione WiFI od Ethernet si deve usare la libreria Console.h al posto di Serial.h. I messaggi si osservano come al solito sul monitor serial della IDE
Per esempio
------------------------------
#include <Console.h>

void setup() {
  Bridge.begin();
  Console.begin(); 

  while (!Console){
    ; // wait for Console port to connect.
  }
  Console.println("You're connected to the Console!!!!");
 }

void loop() {
 }

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

Change Detection with structural similarity

L'idea di base e' quella di cercare le differenze tra le due immagini sottostanti Non e' immediatamente visibile ma ci sono dei ...