X-Git-Url: http://git.piffa.net/web?a=blobdiff_plain;f=lezioni%2Flezioni;h=3a75b6cd1dc890a0af7c61a9d00d539633809414;hb=bf965dc135dc3768d2e8dcfae2c2939591b1cfaf;hp=73f6a05bf8ff782be99ee144ef2728f9b5681429;hpb=266c7afa69a076f4730b6a6fc68c897f5a542c7b;p=arduino diff --git a/lezioni/lezioni b/lezioni/lezioni index 73f6a05..3a75b6c 100644 --- a/lezioni/lezioni +++ b/lezioni/lezioni @@ -11,19 +11,21 @@ Istruzione termina con puntoe virgola. Partire dalla funzione digitalWrite, modificare i tempi e ripetere: sequenze di istruzioni. Variabili: impostare i tempi con una variabile. Fare una funzione per rapido - lento, guardare loop() e setup() +impostare una nuova funzione per tempi e led: argomenti. Setup() symbolic constant /usr/share/arduino/hardware/arduino/cores/arduino/Arduino.h Mettere funzioni in un file separato, senza estensione. Informatica: automatismi per operazioni ripetitive. Introdurre un ciclo while() con un iteratore, ragionare sulla gestione dell'iteratore, scope, introdurre ciclo for (esercizio blinks/blink_4) +Descrivere variabili e costanti, l'operatore const. Introdurre un LED e un resistore: circuiti elettrici, introduzione. Breadboard, jumpers, colore per cavi. +Legge di Ohm, datasheet per LED. -impostare una nuova funzione per tempi e led: argomenti. -...diventa ripetitivo: serve qualcosa per cambiare il flusso di esecuzione: cicli condizionali (e poi iterativi). +...diventa ripetitivo: serve qualcosa per cambiare il flusso di esecuzione: cicli condizionali. Input base per accendere un LED (senza bottone, col jumper), input libero: se non e' collegato a +5 o a ground e' come una antenna. - Sketch seriale hello world @@ -33,24 +35,35 @@ seriali per fare il debuggin e leggere i valori del bottone. Seriali: funzioni base: instanziare con Serial.Begin(), print - println e flush() del buffer. Usare un bottone e una resistenza: pull up e pull down, ciclo IF, invertire il circuito del bottone: confronto con cambio software per introdurre elettronica digitale. +Differenza tra while e for: bottone con ciclo while. Approfondimento: leggere le resistenze e i LED. +- Fare almeno un blocco degli operatori: operazioni e comparativi. Input analogico: usare un potenziometro, resistivita' proporzionale alla lunghezza, potenziometro per varaire pausa dello sketch blink: a intervalli bassi tende al PWM. Cenni ai trimmer. +- Informatica: sistema binario: 10bit di risoluzione +Fare un esercizio blink con pot che modifica pausa: spiegare uso di magic numbers. + - http://arduino.cc/en/Tutorial/SecretsOfArduinoPWM PWM, fatto con intervalli di un millisecondo, cenno a delayMicroseconds(), introdurre i PWM automatici: base con un byte per luminosita': cicli iterativi. Partire da while, variabile contatore e iteratore, e poi fori ternario. +Fare pitch follower con calibrature. +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. + +Tipi di dati: bit e int e long, signed and unsigned, long +- http://www.ladyada.net/learn/arduino/lesson4.html Input analogico per impostare il PWM. - Introdurre gli operatori comparativi (>,<,=!) e booleani (&&, ||, !): Stato di un bottone poi Debouncing: grafico http://www.ladyada.net/learn/arduino/lesson5.html +Eventuale: fare il circuito Knight rider con 6 led per pratica con for loop, magai con un solo resistor. http://arduino.cc/en/Tutorial/ForLoop State machine ============== -Oensarlo per accendere due led con millis )multitasking) +Pensarlo per accendere due led con millis )multitasking) - https://learn.adafruit.com/downloads/pdf/multi-tasking-the-arduino-part-1.pdf e per i bottoni. @@ -58,9 +71,9 @@ Ratio ===== Visti input e output analogici: ora alternare la presentazione di un sesore (input) e un attuatore. -Piezo: meldie varie, sirene. +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. -Input analogico: sensore di luminosita'. Lettura valori, calibrazione manuale, trasformazione input -> output analogico di un piezo: poibilita' di percepire soglie e range non percepibili con i sensi umani. Smothing (semplificato), claibrazione automatica. +Piezo: meldie varie, sirene. Pitch follower, melodia con 3 tasti in pullup, melodia pre impostata con include di libreria. LED RGB: ciclo per ogni colore, impostazione via seriale. PWM con LED RGB.