X-Git-Url: http://git.piffa.net/web?a=blobdiff_plain;f=lezioni%2Farduino_base_dettaglio.rst;fp=lezioni%2Farduino_base_dettaglio.rst;h=0000000000000000000000000000000000000000;hb=c43a608a6daa1fbc924d407675137a2654ebb4f1;hp=17f9eb418cc318e8186491740680fa2fc25be58d;hpb=fe842f9ed130ba3f08dc743c7a15b59ce71ac9f0;p=arduino diff --git a/lezioni/arduino_base_dettaglio.rst b/lezioni/arduino_base_dettaglio.rst deleted file mode 100644 index 17f9eb4..0000000 --- a/lezioni/arduino_base_dettaglio.rst +++ /dev/null @@ -1,141 +0,0 @@ -=================================== -Arduino Base: dettaglio -=================================== - -Progettazione di dettaglio. - - - :Author: Andrea Manni - :Copyright: GFDL - :Version: 0.1 - - -Traccia degli argomenti del corso avanzato su Arduino Make++ 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 - -La durata del corso e' 20 ore in 10 incontri, lun. e giov. dalle 18 alle 20. - -Docente Andrea Manni -Inizio lunedì 23 novembre -Quota di iscrizione € 50 (da versare il primo incontro) - - - -.. contents:: Indice degli argomenti - .. |date| date:: - -Generato il |date| con: http://docutils.sourceforge.net/rst.html - - -Argomenti -========== - -Introduzione... -Architettura elaboratore: processore - memoria - storaggio - input -autput. Bus di comunicazione: seriali. Cenni a USB iclient / HOST. -Software, Sistemi operativi, compilazione (e interpreti), architetture. -Classi di elaboratori. MCU e CPU. - -Esercizio Blink, 4 parti: commenti dichiarazioni setup loop. - istruzioni e sequenze di istruzioni. -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() -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) - -Introdurre un LED e un resistore: circuiti elettrici, introduzione. -Breadboard, jumpers, colore per cavi. - -impostare una nuova funzione per tempi e led: argomenti. - -...diventa ripetitivo: serve qualcosa per cambiare il flusso di esecuzione: cicli condizionali (e poi iterativi). - - 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 -- fare il circuito con un bottone momentaneo button_1 -- sketch con debug seriale button_2_serial -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. - -Approfondimento: leggere le resistenze e i LED. - -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. - -- 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. - -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 -============== - -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. - -Ratio -===== -Visti input e output analogici: ora alternare la presentazione di un sesore (input) e un attuatore. - -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. - -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. - -Programmazione: vedere come stiamo con operatori e data types. -Direttive per preprocesor: # define - # if defined - per DEBUG -Usare seriale per aritmetica. - -Input: bouncing e state: elettronica digitale. (serie di esercizi in "basic") -http://www.ikalogic.com/de-bouncing-circuits/ -(guardare arduino for dummies) -Analog input con un potenziometro. -Usare map() per ricalibrare una lettura. -Usare map() e poi una diffusuione \*4 oer mappare un range 1024 -> 256 su PWM. - - -Seriali: scrivere e debugging. Interpretae input / caratteri da seriale per accendere un LED. - -Motore a spazzole, transistor e diodo. -- Accendere e spegnere un motore, -- usare un ciclo FOR per PWM, -- potenziometro per variare PWM (con debuggin seriale) -- impostare valore minimo per motore (da usare con analoglWrite) - - -Servo: descrizione / caratteristiche base (vedi guida) -Fare i due sketch di esempio: ciclio FOR e Knob. -- C: caricare librerie - - -Piezo -Descrizione del funzionamento, melodie di esempio (mario tunes!). -Arduino dev: utilizzare sketch su piu' tabs (include): percorsi <> "" -Programmazione: array, strutture dati. -Pitch follower - sensore luminose connesso a piezo. Ricordarsi di calibrare il sensore con map(). -Usare un piezo come input - knock (descrivere come le dimensioni influenzano la sensibilita', esistono piezo costruiti espressamente per input - flex). Occhio alla sensibilita'. - - - - -Ottimizzazione: multitasking con millis() al posto di delay(), -Debouncing, gestione stato di un bottone, arrotondamento su media della lettura di un sensore, calibrazione di sensori. Calibrazione automatica in un range di tempo durante il setup(). - - -INPUT_PULLUP: bottone senza resistenza come input. - ---- Shift register: binario - decimale -esadecimale. Circuiti semi-permaneti su mini breadboard, piu' listati per stesso circuito. -