Author: Andrea Manni Copyright: GFDL Version: 0.1
Traccia degli argomenti del corso base su Arduino Make++ tenuto al Giovedi’ (gli studenti del Lunedi’ guardino l’altro documento!) nel Laboratorio NetGarage in via Barchetta. Questo documento non costituisce un manuale per il corso ma solo una traccia degli argomenti trattati nelle varie giornate di lezione, i riferimenti per testi e risorse consigliati sono disponibili su: http://lab.piffa.net/testi.html
Indice degli argomenti
Generato il |date| con: http://docutils.sourceforge.net/rst.html
Eseguire diversi task contemporaneamente: problemi dell’uso della funzione delay(): sketch: sketchbook_andrea/multitasking/blink_0
Isolare il codice di ogni task in una funzione: sketchbook_andrea/multitasking/BlinkWithoutDelay_2_led/
Passare un argomento a una funzione: variabili locali e globali: sketchbook_andrea/multitasking/BlinkWithoutDelay_4_argomento/
Piezo: Layer di cercamica e layer metallico, eccitato vibra producendo onde quadre. Suono: onde sonore quadre, triangolari, tonde. Sketch: pitch follower, keyboard con pull up,
Meldie varie, sirene. Pitch follower, melodia con 3 tasti in pullup, melodia pre impostata con include di libreria.
Sketches:
Per includere un file nell’Arduino IDe si puo’ utilizzare l’apposita volce nel menu’ [SKETCH],oppure creare un nuovo TAB che dovrebbe essere immediatamente concatenato al file principale. - http://www.arduino.cc/en/Reference/Include - http://www.arduino.cc/en/Hacking/BuildProcess - http://provideyourown.com/2011/advanced-arduino-including-multiple-libraries/
Input analogico: sensore di luminosita’. Lettura valori, calibrazione manuale, calibrazione automatica, map(), constrain(), smoothing. Sketch basic/analog_input[3,4,5,6]. trasformazione input -> output analogico di un piezo: poibilita’ di percepire soglie e range non percepibili con i sensi umani. Smothing (semplificato), claibrazione automatica.
Sketches: basic/analog_input/photo_[3,4,5,6].
PWN con bytes per introdurre i cicli iterativi: loop(), while() e cicli for. Sketches utilizzati:
Approfondimenti su PWM:
Cicli for e operatore ternario, utilizzare un for loop per dichiarare i PIN:
Sketches utilizzati:
Primo approccio alle State Machine tramite la realizzazione di un circuito che rileva la pressione di un bottone momentaneo per modificare lo stato di un LED.
Sketch di esempio:
Gli schemi per la breadboard sono sostanzialmente simili a quelli di un bottone in pull down e un LED:
PWM, fatto con intervalli di un millisecondo, cenno a delayMicroseconds(), introdurre i PWM automatici: base con un byte per luminosita’: cicli iterativi. PWM gestito da Arduino con AnalogWrite(): http://arduino.cc/en/Tutorial/PWM Dimostrazione con analizzatore logico di un circuito con PWM
Anteprima dello sketch: http://lab.piffa.net/sketchbook_andrea/basic/pwm/pwm_1_while_byte/ da rivedere dopo aver fatto gli operatori ( http://lab.piffa.net/sketchbook_andrea/programming/operators/ ) e i tipi di dati (byte in particolare).
Per chi fosse curioso la dimostrazione fatta dalla mia postazione con l’analizzatore logico per “vedere” il PWM e’ basata su questo sketch: http://lab.piffa.net/sketchbook_andrea/advanced_projects/led_PWM_logical_analyzer_demo/
Gli sketch che abbiamo utilizzato sono:
Gli schemi per la breadboard:
Per gli interruttori e le resistenze in PULL DOWN / UP potete dare un’occhiata anche agli schemi sul tutorial all’URL: http://www.ladyada.net/learn/arduino/lesson5.html
Non abbiamo fatto le state machine, la prossima volta faremo input analogico e poi output analogico.
Circuito elettrico: sempre tre elementi (fonte di energia, carico, circuito), flusso di elettroni, carico, circuito aperto e chiuso, corto circuito.
Concetti generali di elettronica: http://ishtar.df.unibo.it/em/elet/cover.html
Legge di Ohm, calcolare resistenze per LED i un circuito.
Introduzione alle breadboard:
Esercizio con Arduino: collegare un secondo LED tramite breadboard:
Vi ricordo che se non avete a disposizione una scheda Arduino e i componenti elettronici necessari potete provare ad usare il simulatore on-line: viewtopic.php?f=3&t=7
Utilizzare la seriale per debug: funzioni print, println e flush . Bound Rate: BPS, velocita’ di trasferimento dati.
Sketch di esempio utilizzato: http://lab.piffa.net/sketchbook_andrea/ ... _world.ino
Ripasso (per chi vuole) su informatica di base e sistemi operativi:
Se volete rivedere i listati dello sketch Blink visti in aula:
Il primo esercizio base, Blink, e’ ampiamente trattato su una moltitudine di siti internet e manuali, vi lascio in proposito un paio di links:
Circuito elettrico: sempre tre elementi (fonte di energia, carico, circuito), flusso di elettroni, carico, circuito aperto e chiuso, corto circuito.
ATmega32 MCU, IC montato DIP / DLP (dual in line package) e non SMD (surface mounted), sostituibile. 20 / 22 pin utilizzabili: 14 digital in/outi (6PWM), 6 analog input, USB, 2 ICSP, reset button.
Power: via USB, via l’entrata regolata (7-12v) con protezione di reverse polarity, i connettori power Vin non sono protetti.
4 LED: power , RX, TX, LED (13 con resistenza).
Architettura PC: Multipourpose