Il manuale di Arduino - .Arduino permette di modificare il modo di usare il computer come non accadeva

  • View
    214

  • Download
    0

Embed Size (px)

Text of Il manuale di Arduino - .Arduino permette di modificare il modo di usare il computer come non...

IL MANUALE DI ARDUINO

Maik Schmidt

2

Apogeo s.r.l. - socio unico Giangiacomo Feltrinelli Editore s.r.l.

ISBN edizione cartacea: 9788850330447

3

A Yvonne.La sorellina migliore che esiste sulla Terra.

4

Prefazione

Benvenuti in Arduino e nel mondo strabiliante del physical computing!Arduino (http://arduino.cc) un progetto open source che comprendeelementi hardware e software, ideato inizialmente come una soluzione chepotesse fornire a progettisti e creativi una piattaforma per la realizzazioneinterattiva di prototipi di controllo elettronico. Oggi sono molti gli amatori ei professionisti dellelettronica che utilizzano Arduino nei progetti diphysical computing, e anche voi potete imparare facilmente a fare lo stesso.

Arduino permette di modificare il modo di usare il computer come nonaccadeva dagli anni Ottanta, quando si poteva costruire un computerassemblando in proprio componenti hardware diversi. Arduino semplificaal massimo lo sviluppo di progetti elettronici artigianali che possonoriguardare prototipi innovativi e gadget anche molto sofisticati. Sono finiti itempi in cui si doveva imparare un sacco di teoria dei segnali elettronici emisteriosi linguaggi di programmazione solo per riuscire a far lampeggiareun led. Ora potete realizzare in pochi minuti il vostro primo progettoArduino senza ricorrere a conoscenze avanzate di ingegneria.

In effetti potete leggere questo libro anche senza conoscere i rudimenti dellaprogettazione elettronica e riuscire a realizzare immediatamente i primiprototipi funzionanti. Fin dalle prime pagine vedrete come utilizzare icomponenti hardware fondamentali e imparerete a scrivere il softwarenecessario per dare vita ai vostri progetti.

Questo libro trascura la teoria fine a se stessa e si concentra sugli aspettipratici del progetto. Verranno illustrate le nozioni fondamentali chepermettono di costruire i progetti presentati; inoltre ogni capitolo include unparagrafo che aiuta a risolvere le situazioni pi problematiche (Cosa farese non funziona?). Il libro quindi una guida rapida che vi permette direalizzare velocemente i vostri progetti.

A chi si rivolge questo libroQuesto testo particolarmente indicato per chi interessato allelettronica,in particolare alla realizzazione di giocattoli automatizzati, giochi interattivi egadget di vario genere. Arduino uno strumento che pu interessare i

5

http://arduino.cc

progettisti pi creativi, e i progettisti software hanno la possibilit disfruttare al massimo le potenzialit di questo ambiente di progettazione. Chiha gi avuto modo di sviluppare soluzioni software, per esempio inambiente C/C++ o Java, pu ottenere molto dalle indicazioni qui fornite.

Fondamentale realizzare, provare e modificare i progetti descritti. Fateloquanto vi pare e non preoccupatevi di commettere errori. I suggerimentiper la soluzione dei problemi di funzionamento e lesperienza cheacquisirete fin dai primi progetti saranno preziosi per migliorare il vostrolavoro. Leggere testi di elettronica senza effettuare alcuna sperimentazionenon vale la met del lavoro. Ricordate sempre il vecchio monito: ognuno dinoi ricorda il 5% di quello che ha sentito, il 10% di quello che ha scritto e il95% di quello che ha provato personalmente. Non abbiate timore, non sononecessarie conoscenze di elettronica pregresse!

RIFERIMENTOChi non ha mai scritto una riga di codice pu iniziare a seguire un corso di programmazione oppureleggere un testo per principianti, per esempio, in lingua inglese, Learn to Program di Chris Pine (ThePragmatic Programmers, LLC, 2006). Potete successivamente imparare a programmare in Cstudiando un testo come Il linguaggio C: principi di programmazione e manuale di riferimento (PearsonPrentice Hall, 2004), oppure in C++ con The C++ Programming Language, di Bjarne Strosustrup(Addison Wesley Longman, 2000). Per unintroduzione in italiano potete leggere C Pocket di EnricoAmedeo (Apogeo, 2007).

Contenuti del libroQuesto libro suddiviso in tre parti: Iniziare a lavorare con Arduino,Otto progetti Arduino e alcune appendici. Nella Parte I verranno illustratele nozioni fondamentali che permettono di realizzare i progetti illustratiParte II, pertanto conviene leggere i capitoli cos come sono presentati esvolgere tutti gli esercizi proposti. Anche i capitoli della Parte II andrebberostudiati nella sequenza proposta, dato che ogni capitolo riutilizza tecniche diprogetto e parti di programma illustrate nei capitoli precedenti.

Di seguito riportata una sintesi degli argomenti trattati.

Il libro presenta inizialmente le nozioni fondamentali dello sviluppo di unprogetto Arduino. Vedrete come utilizzare lambiente IDE (IntegratedDevelopment Environment) per compilare e caricare i programmi.Realizzerete rapidamente un primo progetto (il dado elettronico) chespiega limpiego di componenti fondamentali quali led, pulsanti eresistori. Limplementazione di un generatore di codice Morse illustrer

6

invece come sia possibile costruire facilmente librerie di Arduinopersonali.Inizierete poi a lavorare con sensori analogici e digitali. Utilizzerete unsensore di temperatura e un sensore a ultrasuoni per realizzare unmisuratore di distanze digitale molto preciso. Limpiego di unaccelerometro a tre assi permetter di costruire un controller di giochisensibile al movimento e di predisporre un tipico gioco di breakout.In elettronica non dovete sempre costruire gadget a partire da zero; spessopotete modificare componenti hardware gi esistenti. Vedrete pertantocome facile assumere il controllo del dispositivo Wii Nunchuk diNintendo e utilizzarlo nelle vostre applicazioni Arduino.Limpiego di Nunchuk per controllare le vostre applicazioni o altridispositivi una soluzione interessante ma spesso pi comodopredisporre un sistema di controllo senza fili. Per questo motivo vedretecome realizzare un telecomando wireless universale, che potretecontrollare anche utilizzando un browser web.A proposito di browser web, facile collegare Arduino a Internet: vedretecome realizzare un sistema di allarme che invia un messaggio di postaelettronica ogni volta che qualcuno si muove nel vostro soggiornoquando siete assenti.Infine, utilizzerete un motore per costruire un divertente dispositivo daassociare allambiente di sviluppo dei vostri progetti. Il dispositivo sipotr collegare al sistema di progettazione e, ogni volta che si manifestaun problema di funzionamento, sposter un indicatore per segnalare ilnome dello sviluppatore su cui far ricadere la responsabilit delproblema.Nelle appendici potrete studiare gli elementi base dei circuiti elettrici edella saldatura dei componenti hardware. Verranno inoltre forniteindicazioni preziose che riguardano la programmazione di una portaseriale e la programmazione di una scheda Arduino in generale.

Ogni capitolo inizia con un elenco dettagliato dei componenti e deglistrumenti necessari per costruire i progetti illustrati, ed accompagnato daimmagini e schemi che illustrano lassemblaggio delle diverse parti. Alcuniriquadri nel testo descrivono le funzionalit di altri progetti Arduino eforniscono suggerimenti che potete riportare nei vostri progettiprofessionali.

7

Non detto che la realizzazione dei progetti vada immediatamente a buonfine e la ricerca di errori diventa spesso un compito difficile e impegnativo.Per questo motivo ogni capitolo prevede un paragrafo intitolato Cosa farese non funziona? che illustra i problemi pi comuni e le strategie daadottare per risolverli. Prima di leggere le indicazioni fornite dal libroconviene provare a risolvere i problemi per conto proprio: la modalit diapprendimento pi efficace. Nel caso poco probabile che non incontriatedei malfunzionamenti, in fondo a ogni capitolo potete trovare una serie diesercizi per verificare le vostre abilit e conoscenze.

Tutti i progetti di questo libro sono stati provati utilizzando Arduino Uno,Arduino Duemilanove e lambiente Arduino IDE, versioni da 18 a 21.Utilizzate ove possibile la versione pi recente dei componenti hardware esoftware.

Arduino Uno e la piattaforma ArduinoIl team di Arduino ha deciso di specificare una versione 1.0 dellapiattaforma di progetto solo dopo aver prodotto diverse versioni delleschede di microcontrollori e dellambiente IDE. La piattaforma 1.0 stataannunciata a capodanno del 2010 (http://arduino.cc/blog/2010/01/01/uno-punto-zero/) e costituisce un punto di riferimento per lo svilupposuccessivo di nuovi componenti hardware e software. In tempi pi recenti stato rilasciato il microcontrollore Arduino Uno e sono stati perfezionatilambiente IDE e il supporto puntuale delle sue librerie.

Al momento non ancora completamente chiara la fisionomia dellapiattaforma Arduino 1.0. Il team di Arduino sembra voler garantirne lapiena compatibilit con le versioni precedenti dei controllori; questo libro aggiornato in base alle nuove schede Arduino Uno ma tutti i progetti sonoin grado di funzionare anche con i microcontrollori Arduino meno recenti,per esempio le schede Duemilanove o Diecimila. Questo libro fa inoltreriferimento alla versione 21 della piattaforma Arduino. Potete seguire glisviluppi della piattaforma collegandovi alla paginahttp://code.google.com/p/arduino/issues/list?q=milestone=1.0.

Esempi di codice e convenzioni adottate

8

http://arduino.cc/blog/2010/01/01/uno-punto-zero/http://code.google.com/p/arduino/issues/list?q=milestone=1.0

Nonostante questo libro si occupi prevalentemente di progetti open sourcehardware e di componenti elettronici, nelle prossime pagine troverete moltiesempi di codice software. Le istruzioni da programma sono necessarie perdare vita allhardware e per fargli eseguire le operazioni che volete e nelmodo desiderato.

I programmi da eseguire con i microcontrollori Arduino sono scritti inC/C++.