]> git.piffa.net Git - arduino/blobdiff - lezioni/arduino_base_dettaglio.rst
corsi
[arduino] / lezioni / arduino_base_dettaglio.rst
diff --git a/lezioni/arduino_base_dettaglio.rst b/lezioni/arduino_base_dettaglio.rst
deleted file mode 100644 (file)
index 17f9eb4..0000000
+++ /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. 
-