]> git.piffa.net Git - arduino/blob - lezioni/ordine_argomenti
cc24045cccdb49c441dd87ce8b7e31a7c2fffd9f
[arduino] / lezioni / ordine_argomenti
1
2
3 Introduzione...
4 Architettura elaboratore: processore - memoria - storaggio - input -autput. Bus di comunicazione: seriali. Cenni a USB iclient / HOST. 
5 Software, Sistemi operativi, compilazione (e interpreti), architetture.
6 Classi di elaboratori. MCU e CPU. 
7
8 Esercizio Blink, 4 parti: commenti dichiarazioni setup loop. 
9           istruzioni e sequenze di istruzioni.
10 Istruzione termina con puntoe virgola.
11 Partire dalla funzione digitalWrite, modificare i tempi e ripetere: sequenze di istruzioni. 
12 Variabili: impostare i tempi con una variabile.
13 Fare una funzione per rapido - lento, guardare loop() e setup() 
14 Setup() symbolic constant /usr/share/arduino/hardware/arduino/cores/arduino/Arduino.h
15
16 Informatica: automatismi per operazioni ripetitive.
17 Introdurre un ciclo while() con un iteratore, ragionare sulla gestione dell'iteratore, scope, introdurre ciclo for (esercizio blinks/blink_4)
18
19 Introdurre un LED e un resistore: circuiti elettrici, introduzione.
20 Breadboard, jumpers, colore per cavi.
21
22 impostare una nuova funzione per tempi e led: argomenti.
23
24 ...diventa ripetitivo: serve qualcosa per cambiare il flusso di esecuzione: cicli condizionali (e poi iterativi).
25 (Fare prima seriali per vedere tipi e operatori?): naaa
26
27  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. 
28 Magari introdurre seriali per fare il debuggin e leggere i valori del bottone.
29 Seriali: instanziare con Serial.Begin(), print - println e flush() del buffer.
30
31  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.
32 Stato di un bottone.
33
34 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.
35 Fare una funziona Flash(int numero-di-accensioni, int delayTime).
36 Sequenza di istruzioni - > funzione : esercizio per blink con ripetizioni lunghe / corte in base a parametro funzione con ciclo iterattivo for.
37 Funzione per aumentare diminuire luminosita'.
38 PWM con LED RGB.
39
40 Programmazione: vedere come stiamo con operatori e data types.
41 Direttive per preprocesor: # define - # if defined - per DEBUG
42 Usare seriale per aritmetica.
43
44 Input: bouncing e state: elettronica digitale. (serie di esercizi in "basic")
45 http://www.ikalogic.com/de-bouncing-circuits/
46 (guardare arduino for dummies)
47 Analog input con un potenziometro.
48 Usare map() per ricalibrare una lettura.
49 Usare map() e poi una divusuione *4 oer mappare un range 1024 -> 256 su PWM.
50
51
52 Seriali: scrivere e debugging.
53
54 Motore a spazzole, transistor e diodo.
55 - Accendere e spegnere un motore, 
56 - usare un ciclo FOR per PWM,
57 - potenziometro per variare PWM (con debuggin seriale)
58 - impostare vaore minimo per motore (da usare con analoglWrite)
59
60
61 Servo: descrizione / caratteristiche base (vedi guida)
62 Fare i due sketch di esempio: ciclio FOR e Knob.
63 - C: caricare librerie
64
65
66 Piezo
67 Descrizione del funzionamento, melodie di esempio (mario tunes!).
68 Arduino dev: utilizzare sketch su piu' tabs (include): percorsi <> ""
69 Programmazione: array, strutture dati.
70 Pitch follower - sensore luminose connesso a piezo. Ricordarsi di calibrare il sensore con map().
71 Usare un piezo come input - knock (descrivere come le dimensioni influenzano la sensibilita', esistono piezo costruiti espressamente per input - flex). Occhio alla sensibilita'.
72
73
74                                                        
75
76 Ottimizzazione: multitasking con millis() al posto di delay(),
77 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().
78
79
80 INPUT_PULLUP: bottone senza resistenza come input.
81
82 --- Shift register: binario - decimale -esadecimale. Circuiti semi-permaneti su mini breadboard, piu' listati per stesso circuito. 
83
84 Avanzati
85 ===========
86
87 Interrupts: http://gammon.com.au/interrupts
88 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.
89
90 Timers: possono essere usati per PWM con periodo diverso da 500hz, possono avere una risoluzione di 1024.
91
92 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.
93 Usare un digitalWrite() per fornire 5v a un sensore (es fotocellula) solo quando andiamo a fare una lettura con alanogRead(), poi tornare a spegnerlo.
94
95 Memoria: controllare l'utilizzo della memoria con la libreria MemoryFree.
96 Usare constanti e bytes, rimuovere chiamate a Serial.println() (500bytes) con #IF DEBUG . Programmare arduino senza il bootloader salva un paio di KB.
97
98