]> git.piffa.net Git - arduino/commitdiff
seconda lezioni
authorAndrea Manni <andrea@piffa.net>
Thu, 12 Mar 2015 00:25:37 +0000 (01:25 +0100)
committerAndrea Manni <andrea@piffa.net>
Thu, 12 Mar 2015 00:25:37 +0000 (01:25 +0100)
lezioni/.ordine_argomenti.swp [new file with mode: 0644]
lezioni/.seconda_lezione.swp [new file with mode: 0644]
lezioni/lezioni2 [new file with mode: 0644]
schemi/button_1.fzz
schemi/button_1_bb.png
schemi/button_1_schem.png

diff --git a/lezioni/.ordine_argomenti.swp b/lezioni/.ordine_argomenti.swp
new file mode 100644 (file)
index 0000000..ddc123a
Binary files /dev/null and b/lezioni/.ordine_argomenti.swp differ
diff --git a/lezioni/.seconda_lezione.swp b/lezioni/.seconda_lezione.swp
new file mode 100644 (file)
index 0000000..ce84448
Binary files /dev/null and b/lezioni/.seconda_lezione.swp differ
diff --git a/lezioni/lezioni2 b/lezioni/lezioni2
new file mode 100644 (file)
index 0000000..64325dd
--- /dev/null
@@ -0,0 +1,103 @@
+
+
+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.
+- Introdurre gli operatori comparativi (>,<,=!)  e booleani (&&, ||, !): 
+
+ 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.
+Stato di un bottone poi  Debouncing: grafico http://www.ladyada.net/learn/arduino/lesson5.html
+
+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 una funziona Flash(int numero-di-accensioni, int delayTime).
+Sequenza di istruzioni - > funzione : esercizio per blink con ripetizioni lunghe / corte in base a parametro funzione con ciclo iterattivo for.
+Funzione per aumentare diminuire luminosita'.
+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 divusuione *4 oer mappare un range 1024 -> 256 su PWM.
+
+
+Seriali: scrivere e debugging.
+
+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. 
+
+Avanzati
+===========
+
+Interrupts: http://gammon.com.au/interrupts
+Usati per l'input dell'utente, servono per intercettare eventi e non per fare cambiamenti. Uso di ``volatile`` per le variabili con IRS. Usare un timer per interrupts.
+
+Timers: possono essere usati per PWM con periodo diverso da 500hz, possono avere una risoluzione di 1024.
+
+Powermanagement: ridurre i consumi abbassando la frequenza operativa, spegnere parti della MCU (poco utile: 1.4ma di risparmio con tutto spento), mettere tutto in sleep mode: narcoleptic, delay() che manda in sleep in MCU.
+Usare un digitalWrite() per fornire 5v a un sensore (es fotocellula) solo quando andiamo a fare una lettura con alanogRead(), poi tornare a spegnerlo.
+
+Memoria: controllare l'utilizzo della memoria con la libreria MemoryFree.
+Usare constanti e bytes, rimuovere chiamate a Serial.println() (500bytes) con #IF DEBUG . Programmare arduino senza il bootloader salva un paio di KB.
+
+
index c6bd5141f68a5ade9d9ad60b390b8631ed18d047..9621956f7df8433387e64fdfd9d8592e5920930e 100644 (file)
Binary files a/schemi/button_1.fzz and b/schemi/button_1.fzz differ
index 1c829487439b565975d506570e498829886af6d8..02ca967bcc715ab9ac938a0ad7951d7bf75703f4 100644 (file)
Binary files a/schemi/button_1_bb.png and b/schemi/button_1_bb.png differ
index ccfeca7ac2484ae20dec9f9b5f10c29e5fdc39ad..a23ff350854aabb2bab0c25c8e5744e8e6bab377 100644 (file)
Binary files a/schemi/button_1_schem.png and b/schemi/button_1_schem.png differ