Arduino – Termostato ambientale con isteresi e LCD schield

In questo articolo come si evince dal titolo voglio presentarvi un termostato realizzato con Arduino UNO, dove attraverso due pulsanti è possibile regolare la soglia di temperatura.

Il sensore utilizzato è il classico LM35, perchè è molto semplice da utilizzare e da collegare, in quanto si presenta un contenitore di tipo TO92 analogo a quello di un normale transistor, e necessita solo di un collegamento ad una porta analogica (ADC)  per la lettura del valore di tensione fornito dal sensore. Il sensore ha  3 terminali: uno per l’alimentazione, uno di massa e uno per l’uscita della tensione proporzionale alla temperatura rilevata che è pari a 10 mV/°C , ed è calibrato in gradi Cesius.

LM35

Leggi il resto di questo articolo »

Gestione di display a 7 segmenti in multiplexing con Arduino

Display a 7 segmenti 4 digit

Per alcuni interessanti progetti, si potrebbe fare uso di display a 7 segmenti per la visualizzazione di una cifra oppure di un dato binario.

Per pilotare un display però, occorrono tanti decoder quanti i display e tante resistenze quanti i punti luminosi da accendere.

Sembra quindi un lavoro immane progettare un dispositivo con 4 o più display utilizzando questi metodi tradizionali.
Quello che affronteremo in questo articolo è l’uso di più display a 7 segmenti (cifre), utilizzando Arduino e facendo uso della tecnica del Multiplexing.

Leggi il resto di questo articolo »

Pan & Tilt con Arduino e Joystick

È da tempo che ho realizzato questo prototipo con il relativo programma ma non ho mai avuto tempo per poter scrivere un articolo su di esso. Ora è giunto il momento!

Si tratta di un piccolo dispositivo capace di muoversi in 4 sensi. Sul Pan Tilt è possibile montarci una mini-telecamera, un laser o qualsiasi altro dispositivo e attraverso un Joystick si effettuano i movimenti, puntando la telecamera dove si desiderata.
Questa è la foto dei primi test che ho eseguito:

Pan Tilt

Leggi il resto di questo articolo »

Colleghiamo Arduino in LAN con l’ENC28J60

Diciamolo, una delle migliori caratteristiche di Arduino è la facilità di interfacciarlo con qualsiasi dispositivo. La sua notorietà lo porta ad avere una vasta community di sviluppo che lo rende davvero un dispositivo “plug-and-play”. Inoltre il mondo dell’elettronica hobbystica si sta spostando sempre più verso quello che viene definito “l’Internet delle cose”.
Quest’oggi vedremo come collegare Arduino alla nostra rete LAN utilizzando una scheda NIC Ethernet esterna.

La scheda in questione è molto diffusa in giro ed è acquistabile ad esempio su eBay per pochi euro. E’ composta da una porta Ethernet RJ-45 con led di stato ed è pilotato da un integrato della Microchip, l’ENC28J60. Questo controller ha integrato in hardware sia il layer MAC che il layer PHY, ma bisogna implementare lo stack TCP/IP via software ed è possibile comunicare con esso tramite SPI. La scheda è la seguente:

ENC28j60 Ethernet Interface Module1

Leggi il resto di questo articolo »

Arduino Tv B Gone

tv b-gone

La TV-B-Gone ® è un piccolo telecomando universale simile a qualsiasi altro telecomando per TV, ma è diverso da questi ultimi perchè, ha solo un pulsante di accensione che permette di accendere o spegnere qualsiasi TV di qualsiasi marca.In secondo luogo, il dispositivo è così piccolo che sta comodamente in tasca, in modo da avere a portata di mano ogni volta che ne avete bisogno, ovunque tu sia: aeroporti, bar, ristoranti, lavanderie, ecc.

Il TV-B-Gone che presento in questo articolo è realizzato con una scheda arduino. Ho realizzato una piccola shield costituita da pochi componenti:

– un pulsante da stampato;

– due transistor BC547 o simili;

– due diodi infrarossi;

– due resistenze da 1Kohm 1/4 Watt;

– due resistenze da 18 ohm 1/4 Watt;

– una resistenza da 10Kohm 1/4 Watt.

Leggi il resto di questo articolo »

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 »

Comandare la porta parallela con LPT Trigger!

Ieri mi è capitato di scrivere un pò di codice per un amico della community di Grix. Il suo problema era di comandare 3 uscite della porta paralla, per attivare tramite transistor, 3 relè.
Il software ovviamente è stato eseguito e prontamente inviamo all’amico ik3ssg.

Ne è derivata una nuova versione, completa di tutti e 8 i pin di output della LPT. Il software è stato chiamato “LPT Trigger”.

Leggi il resto di questo articolo »