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



Primi problemi con Arduino Yun

Cercando di accoppiare la Arduino Yun con un Access Portatile Onda PN51T, la Arduino non compariva nelle periferiche di rete
Arduino Yun e PN51T

La schermata di errore

Osservando meglio il file di log della Arduino si legge chiaramente che Yun ha effettuato l'accoppiamento con l'access point ma poi si e' generato un errore

"HT AP is missing WMM params or HT capability/operation in AssocResp"

Soluzione : ho attivato l'hotspot portatile su Android e tutto ha funzionato

Yun con Access Point Android

lunedì 16 settembre 2013

Compilare OpenGl con CodeBlocks

Per compilare gli esempi di OpenGL derivanti dal sito Nehe in Windows si puo' prima installare Code::Blocks con MingW
Successivamente si installa la libreria OpenGL scaricando questo file (vedi sito originale)
A questo punto si copia manualmente.
1) il file glut32.dll in C:\Windows\System32
2) il file libglut32.a in C:\Programmi\CodeBlocks\MinGW\lib
3) il file glut.h in C:\Programmi\CodeBlocks\MinGW\include


Fatto cio' si puo' creare un nuovo progetto vuoto e con clic destro si selezionano le Build Options (vedi figura sottostante)


Nel tab Linker Settings si aggiungono opengl32, glu32 e glut32


Si puo' quindi procedere con la compilazione con il primo degli esempi OpenGl di Nehe




Sqlite e Php

Un metodo semplice per avere un database su un sito Web senza utilizzare un sql server e' quello di impiegare sqlite (che non e' basato su un motore sql ma su semplici file)

Per l'installazione si procede semplicemente con

apt-get install php5-sqlite


Di seguito un breve codice che crea il file di database (rfid.db), crea una tabella all'interno, la popola ed effettua una select rilasciando poi l'oggetto db
---------------------------
<?php
$db = new PDO('sqlite:rfid.db');
$db->exec("CREATE TABLE rfid (rfid TEXT,token TEXT)");  
$db->exec("INSERT INTO rfid (rfid, token) VALUES ('12345', 'abcdef');");
$results = $db->query('SELECT * FROM rfid');
foreach($results as $row)
{
print $row['rfid']."-".$row['token']."<br>";
}
$db = NULL;
?>

Mac Os X in Virtualbox

Mac Os X e' virtualizzabile su VirtualBox in modo nativo ma non e' banale da configurare.

Si ricorda che pur possedendo una licenza di OsX (come nel mio caso) non e' possibile in modo legale virtualizzare il sistema


Per prima cosa va scelto il sistema a 64 Bit (almeno per le versioni moderne tipo Mountaion Lion)


Successivamente si deve garantire almeno 1Gb di Ram, si deve selezionare ICH9 e si deve togliere l'abilitazione di EFI

Per le CPU piu' sono meglio e'

Ovviamente devono essere abilitate le accelerazioni hardware

La memoria video deve impostata al valore massimo con accelerazione hardware



Per quanto riguarda i dischi che si devono montare non riporto le indicazioni esatte perche' si tratta di materiale che puo' essere reperito in modo non legale dai torrent. L'unica cosa che si puo' dire e' che bisogna montare prima un boot da cdrom assieme al' hd virtuale.
Attenzione : e' riportato da altri utenti  che i file che si scaricano da torrent effettuano traffico via rete su indirizzi non appartenenti ad Apple. Cio' puo' voler indicare che nel file immagine sia installato software legato a botnet o simili. Per questo motivo io lo ho provato con la scheda di rete virtuale disattivata


Se si avvia il sistema si entra nell'installazione


e poco dopo si arriva al desktop


Al momento non sono riuscito a far funzionare le estensioni di Virtualbox per cui non sono disponibili il copia/incolla, le cartelle condivise e la modalita' a tutto schermo

Feature Matching OpenCv

Il problema e' il seguente: trovare le differenze tra le due foto. Le due immagini sono state riprese a distanza di oltre un anno ed il ...