Tracciamento oggetti con OpenCV

Poco tempo fa mi era venuta l’ossessione del tracciamento visivo di oggetti dopo aver visto vari video su youtube. Con l’intento di realizzare qualcosa di simile, mi sono armato di pazienza e di amore verso Google. Ho scovato tutorial qua e la e soprattutto l’ambiente ideale per sviluppare applicazioni con le librerie OpenCV.

Così ho scaricato l’SDK delle OpenCV, installato eclipse galileo e il compilatore C++ chiamato MinGW per applicazioni Windows.
Dopo vari tentativi ed insuccessi, sono riuscito a tracciare il movimento di una pallina gialla (color detection).
Per il riconoscimento vengono usati appositi filtri che eliminano dai frame provenienti dalla webcam (io ho usato una webcam virtuale free di nome ManyCam) eventuali disturbi e rumori visivi. In sostanza, per eliminare ciò che non serve per il riconoscimento di uno specifico colore, si usa la tecnica del threshold, ovvero della “soglia”. Se un particolare pixel appartiene ed è contenuto dentro ad una certa soglia (come un comparatore a finestra), allora quel pixel verrà colorato di bianco, viceversa di nero. Si avrà così un’immagine che sarà bianca solo nei punti in cui si trova in quel momento la nostra pallina. Questa tecnica è chiamata anche “binarizzazione immagine” per via dei soli due bit (bianco e nero) usati per l’immagine.


Esempio di applicazione del filtro di THRESHOLD

Leggi il resto di questo articolo »

Utilizziamo il bootloader sul PIC18F4550!

Un utilissimo strumento, quando si effettuano molte modifiche al firmware (come in fase di test) o semplicemente per comodità, è il bootloader.

Il bootloader è essenzialmente un codice all’interno del microcontrollore che permette di caricare nuovo codice “utente” o di “applicazione” senza staccare e/o collegare un programmatore esterno alla scheda, come normalmente avviene nella fase di programmazione di un microcontrollore.

Tramite un software su PC, è possibile fare il download (scaricare) dell’HEX del nostro programma sul PIC, senza appunto staccarlo.

Ma come funziona il bootloader e cosa succede all’avvio del PIC?

Quando il PIC viene avviato, questo codice di BOOT controlla lo stato di un pin di ingresso, se questo pin è ad un certo stato logico (con un pulsante si porta a 0 logico il piedino) allora viene creata una connessione (UART oppure USB) con il PC e si entra appunto in fase di boot. Se il pulsante di boot non è stato premuto, il PIC passa nella locazione di memoria del codice della nostra applicazione, come su un normale dispositivo programmato comunemente.

Un esempio grafico della mappatura della memoria di un PIC con bootloader:

Leggi il resto di questo articolo »