Author: Andrea Manni Copyright: GFDL Version: 0.1
Traccia degli argomenti del corso base su Arduino Make++ tenuto al Lunedi’ (gli studenti del Giovedi’ 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 li trovate su: http://lab.piffa.net/testi.html
Indice degli argomenti
Generato il 2015-04-22 con: http://docutils.sourceforge.net/rst.html
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/
L’IDE di arduino dovrebbe permettere l’include di un file nello stesso PATH del file attuale ( ./) . Dovrebbe in oltre cercare automaticamente nei percorsi:
Riprendere lo sketch dei cicli for per introdurre gli array
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:
Abbiamo guardato un circuito che si presta ad alcune varianti di sketch per l’uso di cicli iterativi for loop:
Lo schema usato in laboratorio:
Si noti che in questo schema viene usato una sola resistenza per 8 LED (per una questione di praticita’ in laboratorio) quindi questo circuito si presta all’accensione di solo uno/due LED alla volta, se volete poter accendere tutti i LED contemporaneamente dovete utilizzare uno schema con una resistenza da ~320ohms per ogni LED simile a quello proposto su questo tutorial:
Vi lascio qualche link per guide sulla struttura dei cicli FOR, per una trattazione esaustiva potete guardare: Beginning C for Arduino: Learn C Programming for the Arduino, oppure partire da [i]Arduino For Dummies[/i] per un primo approccio piu’ semplificato.
Tipi di dati: bit e int e long, signed and unsigned, long - http://www.ladyada.net/learn/arduino/lesson4.html
Operatori binari, comparativi, logica boleana: http://lab.piffa.net/sketchbook_andrea/programming/operators/
Trasformazione da un input analogico in un output analogico: http://lab.piffa.net/sketchbook_andrea/basic/pwm/pwm_4_analog_input/pwm_4_analog_input.ino
BTW: oggi ho lanciato gli ordini per i kit Arduino per gli studenti, sono in preparazione per la spedizione.
Input analogico: usare un potenziometro, resistivita’ e resistenza, proporzionale alla lunghezza, resistenze in serie, usare un potenziometro per varaire pausa dello sketch blink: a intervalli bassi tende al PWM. Cenni ai trimmer. Uso della seriale per debug.
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/
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
Gli sketch che abbiamo utilizzato sono: - http://lab.piffa.net/sketchbook_andrea/basic/buttons/button_1/button_1.ino - http://lab.piffa.net/sketchbook_andrea/basic/buttons/button_2_serial_debug/button_2_serial_debug.ino
Gli schemi per la breadboard: - http://lab.piffa.net/schemi/button_1_bb.png - http://lab.piffa.net/schemi/button_1_schem.png
Funzioni: argomenti, utilizzare un parametro per modificare l’esecuzione di una funzione: impostare i numeri di ripetizione di un ciclo while.
Circuito elettrico: sempre tre elementi (fonte di energia, carico, circuito), flusso di elettroni, carico, circuito aperto e chiuso, corto circuito.
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
Arduino IDE: sistema integrato. Utilizzare IDE.
Tools -> serial / board
Barra strumenti - Short cuts
Ctrl + R Verify
Ctrl + U Upload
Ctrl + Shift + M Serial Monitor
Menu Contestuale: cerca nella guida
Upload -> LED: rx tx power led
I testi consigliati per il corso li trovate su: http://lab.piffa.net/lezioni.html#bibliografia
Compilazione - sorgente (passaggi vari: precompilatore, linker) -> codice oggetto specifioc per CPU / Architettura. Upload (burn) codice su flash di arduino via USB. Poi USB come seriale (non possono lavorare assieme).