Programmazione

Tutorial generici sulla programmazione di logiche programmabili come Arduino, Netduino e Raspberry PI

Programmare un ATtiny85 utilizzando Arduino UNO

Come utilizzare Arduino ISP per caricare un firmware su un ATtiny85

La piattaforma Arduino, come sappiamo, offre molte possibilità, una tra tante è la programmazione dei piccoli microcontrollori ATtiny85, utilizzando un set di istruzioni ridotto, ma compatibile con quelle per programmare la Arduino UNO. La procedura per caricare uno sketch su questi dispositivi è quella usate per l’ATMEGA328 stand alone.

Pin function Attiny85

Continua a leggere

Usare l’RTC della Fez Panda II

Come gestire il real time clock della Fez Panda II

Solitamente quando ho il bisogno di avere un riferimento temporale, che risulta ininfluente dalle mancanze di alimentazione o da riavvi casuali della scheda, utilizzo un RTC esterno, tipicamente un DS1307. La soluzione fornita dalla Fez Panda II impiega un rtc on board che necessita solamente di una batteria tampone esterna, tipicamente quella utilizzata nei computer da 3.3Vdc.

La prima operazione da effettuare, dopo aver collegato la batteria tampone tra il pin BAT e il pin GND, è l’inizializzazione dell’RTC con una data ed un ora valida:

[csharp]
//Setto la data e l’ora per l’RTC
//Anno, Mese, Giorno, Ora, Minuti, Secondi
RealTimeClock.SetTime(new DateTime(2012, 02, 23, 12, 0, 0));
[/csharp]

questo settaggio non agisce automaticamente sulle impostazioni di data ed ora della classe DateTime, ma è soltanto il metodo per inizzializzare l’RTC.

Per poter leggere la data ed il tempo è necessario utilizzare la classe Utility per settare il local time con quello dell’RTC

[csharp]
//Leggo la data ed il tempo dall’RTC e lo assegno al local time
Utility.SetLocalTime(RealTimeClock.GetTime());
[/csharp]

Adesso la classe DateTime ha come riferimento la data e l’ora dell’RTC, posso richiamarla utilizzando questo esempio

[csharp]
//visualizzo a console la data e l’ora corrente
Debug.Print(DateTime.Now.ToString());
[/csharp]

Queste poche linee di coidce permettono di gestire l’RTC on board della Fez Panda II e di implementare ne progetti un sistema basato sul tempo.

Pilotare un motore DC tramite ponte ad H

Come usare Arduino per gestire la rotazione di un piccolo motore DC

Uno dei primi circuiti elettronici che realizzai fu un semplice driver che pilotava un piccolo motore DC, potevo gestire la rotazione a destra o a sinistra e anche la velocità di rotazione, usando un segnale PWM generato dal mitico NE555.
A distanza di qualche anno ho deciso di riprendere il progetto iniziale utilizzando Arduino che permette in modo veloce, con un controllo completo, di ripercorrere quell’esperienza.

Come sapiamo bene le uscite di Arduino non possono fornire una corrente sufficiente da permettere la rotazione del motore, quindi è importante usare dei transistor (o dei circuiti integrati appositi, vedi L298) per fornire la corrente necessaria all’alimentazione del motore. Il circuito da realizzare deve anche permettere la rotazione del rotore sia in un senso che nell’altro. La soluzione più veloce è realizzare un ponte ad H che sfrutta 4 transistors, due del tipo NPN e due del tipo PNP collegati come nella figura seguente:.

Continua a leggere

Operatori per spostare i bit (bitwise)

Usare Arduino per spostare i bit di una variabile

Oltre alle funzioni viste nel precedente articolo, Arduino è capace di eseguirne altre ed in particolare lo spostamento a destra o a sinistra bit a bit. L’operatore per lo spostamento a destra si esprime con questo operatore >> mentre per lo spostamento a sinistra viene usato questo operatore <<.
Per capire meglio cosa avviene utilizziamo delle immagini che semplificano la spiegazione. In questo caso ho una variabile di tipo byte (8 bit) il cui valore è 255. All’interno del chip atmega328 viene allocata, nella memoria ram, uno spazio di 8 bit i cui valori sono settati a 1

Continua a leggere

Visualizzare immagini con un Webserver Arduino

Visualizzare immagini in una pagina web gestita da Arduino

Quando utilizziamo Arduino Ethernet (o EthernetShield) in modalità webserver, non è disponibile una funzione nativa che permetta di visualizzare una immagine nella pagina web generata da Arduino. Esiste però un metodo molto semplice che permette di visualizzare delle immagini, di piccole dimensioni, utilizzando la codifica Base64.

L’idea è quella di utilizzare una stringa che codifica un file immagine, da inserire nello sketch. Diversi siti web offrono un convertitore online che codifica un file immagine (jpg, gif o png) in una stringa equivalente in standard Base64.
Per questo tutorial ho utilizzato il servizio di webcodertools.com disponibile a questo indirizzo. Basta caricare un file immagine per ottenere direttamente una stringa Base64 con in aggiunta il tag html img.

Continua a leggere

Tutorial installazione Arduino su Windows 7

Guida per l’installazione Arduino su sistema Windows 7

Nonostante la semplicità di installazione dell’IDE e della board Arduino, capita che molti neofiti non riescano ad eseguire l’installazione Arduino su Windows 7. In effetti con questo sistema operativo l’installazione dei driver è automatica ma ci sono dei casi in cui non si riesce ad installare i driver, soprattutto per le schede che montano l’integrato Mega8U per convertire il segnale da usb a seriale.

La procedura seguente mostra, passo passo, come installare una Arduino Ethernet collegata con la scheda USB2Serial Light.

Il primo passo è scaricare la versione 1.0 del software Arduino IDE, che contiene sia i driver sia la il software necessario per lo sviluppo. Dopo la decompressione posizioniamo questa cartella in modo che sia facilmente accessibile. Nel mio caso l’ho decompressa nella cartella di sistema Documenti.

Colleghiamo il cavo Usb della board USB2Serial Light al pc, Windows 7 avvia automaticamente la ricerca nuovo hardware

Continua a leggere

Kinect per pc, interessanti prospettive

Nuove idee da realizzare con Kinect, Arduino e Netduino

Al CES di Las Vegas di quest’anno Microsoft ha comunicato che il Kinect sarà disponibile anche per i personal computer con un SDK che ne permetterà lo sviluppo impiegando Visual Studio. Considero questa una fantastica notizia che potrà avere scenari di sviluppo futuristici, come si vede in alcuni video demo di presentazione.

Microsoft Kinect per pc

La possibilità di interagire con un computer usando il proprio corpo permetterà di creare applicazioni che potranno cambiare il nostro modo di interagire con diversi dispositivi. La cosa più entusiasmante è avere le capacità di poter usare Arduino o una scheda NETMF per poi comandare, sia con dei movimenti del corpo sia con comandi vocali, elettrodomestici e dispositivi di varia natura.

Realizzare un piccolo PC con una scheda Mini-ITX e un HD SSD risulta, attualmente, di semplice realizzazione e con costi modesti.

Il Kinect per PC sarà disponibile negli USA già dal mese di febbraio con un costo che potrà essere di circa 249$, per il lancio in Italia non sono stati comunicati i tempi, ma presumibilmente si terrà in primavera.

[facebook_ilike]

Arduino, lavorare con i bit

Come usare gli operatori per manipolare i bit

Lavorare con i microcontrollori, incluso Arduino, è divenuto abbastanza semplice grazie all’impiego di linguaggi ad alto livello che permettono di imparare in modo semplice e veloce la programmazione di questi device. Nonostante l’uso di funzioni che gestiscono variabili complesse, molte volte si ha la necessità di gestire i singoli bit. Arduino implementa dei metodi per accedere direttamente ai bit di una variabile  e di poterne leggerne e cambiare il valore.

operatori bitwise lavorare con i bit

Continua a leggere

I miei gadget
Newsletter

Seguimi su Twitter