]> git.piffa.net Git - arduino/commitdiff
analogici
authorAndrea Manni <andrea@piffa.net>
Mon, 16 Mar 2015 16:57:39 +0000 (17:57 +0100)
committerAndrea Manni <andrea@piffa.net>
Mon, 16 Mar 2015 16:57:39 +0000 (17:57 +0100)
12 files changed:
TODO
lezioni/.ordine_argomenti.swp [deleted file]
lezioni/.seconda_lezione.swp [deleted file]
lezioni/lezioni
lezioni/lezioni2 [deleted file]
lezioni/links [new file with mode: 0644]
lezioni/ordine_argomenti [deleted file]
lezioni/quarta_lezione [new file with mode: 0644]
lista.rst [new file with mode: 0644]
schemi/arduino-pwm-diagram.png [new file with mode: 0644]
sheets/ultra_bright_led [new file with mode: 0644]
var/pot.gif [new file with mode: 0644]

diff --git a/TODO b/TODO
index abb251f7a933f75781051a0686084daa3f27056f..5c34a57066c3107d7e5b37f159aff6af7e617302 100644 (file)
--- a/TODO
+++ b/TODO
@@ -76,3 +76,12 @@ Prima lezione 2
 ===============
 Preparare rpi e ATTINY85  e nano
 
+
+Sketches da fare
+------------------
+
+- operatori comp[arativi / logica boleana
+- analog read
+-
+
+
diff --git a/lezioni/.ordine_argomenti.swp b/lezioni/.ordine_argomenti.swp
deleted file mode 100644 (file)
index ddc123a..0000000
Binary files a/lezioni/.ordine_argomenti.swp and /dev/null differ
diff --git a/lezioni/.seconda_lezione.swp b/lezioni/.seconda_lezione.swp
deleted file mode 100644 (file)
index ce84448..0000000
Binary files a/lezioni/.seconda_lezione.swp and /dev/null differ
index 99fefe743c8a8dd64e7b41b44082fd019f728b39..f01875c6b073837a4e40cbfe1b0943c79d7e024f 100644 (file)
 
-HW caratteristico:
-- piezo per melodie: http://www.banggood.com/10Pcs-5V-Electromagnetic-Active-Buzzer-Continuous-Beep-Continuously-p-943524.html
-    - http://www.arduino.cc/en/Tutorial/PlayMelody
 
+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. 
 
-- illuminare vari led con un potenziometro / trimmercontrollo 
+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.
 
 
-- register shifter: http://www.banggood.com/25Pcs-SN74HC595N-74HC595-74HC595N-HC595-DIP-16-8-Bit-Shift-Register-IC-p-917428.html
- - http://arduino.cc/en/tutorial/ShiftOut
+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)
 
- -
-Read Serial with linux:
-https://wiki.archlinux.org/index.php/arduino#Accessing_serial
-Note: As autoreset on serial connection is activated by default on most boards, you need to disable this feature if you want to communicate directly with your board with the last command instead of a terminal emulator (arduino IDE, screen, picocom...). If you have a Leonardo board, you are not concerned by this, because it does not autoreset. If you have a Uno board, connect a 10 µF capacitor between the RESET and GND pins. If you have another board, connect a 120 ohms resistor between the RESET and 5V pins.
+Introdurre un LED e un resistore: circuiti elettrici, introduzione.
+Breadboard, jumpers, colore per cavi.
 
-stty -F /dev/ttyACM0 cs8 9600 ignbrk -brkint -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
+impostare una nuova funzione per tempi e led: argomenti.
 
+...diventa ripetitivo: serve qualcosa per cambiare il flusso di esecuzione: cicli condizionali (e poi iterativi).
 
-- Blog in italiano: http://arduinoprincipiante.blogspot.it
+ 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.
 
-Pullup / down resistors: http://playground.arduino.cc/CommonTopics/PullUpDownResistor
-- http://www.microcontroller.it/Tutorials/Elettronica/pullup.htm
-- Vcc = collector = positive
-  Vss = source = negative
- MEglio quella dell'altro sito
+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://tronixstuff.com/tutorials/
-- http://www.baeyens.it/eclipse/stable-linux.html
+- 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
+
+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, trasformazione input -> output analogico di un piezo: poibilita' di percepire soglie e range non percepibili con i sensi umani. Smothing (semplificato), claibrazione automatica.
+
+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. 
+
+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.
 
 
-- i2c SPI http://www.bitwizard.nl/wiki/index.php/SPI_versus_I2C_protocols
diff --git a/lezioni/lezioni2 b/lezioni/lezioni2
deleted file mode 100644 (file)
index 64325dd..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-
-
-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.
-
-
diff --git a/lezioni/links b/lezioni/links
new file mode 100644 (file)
index 0000000..99fefe7
--- /dev/null
@@ -0,0 +1,36 @@
+
+HW caratteristico:
+- piezo per melodie: http://www.banggood.com/10Pcs-5V-Electromagnetic-Active-Buzzer-Continuous-Beep-Continuously-p-943524.html
+    - http://www.arduino.cc/en/Tutorial/PlayMelody
+
+
+- illuminare vari led con un potenziometro / trimmercontrollo 
+
+
+- register shifter: http://www.banggood.com/25Pcs-SN74HC595N-74HC595-74HC595N-HC595-DIP-16-8-Bit-Shift-Register-IC-p-917428.html
+ - http://arduino.cc/en/tutorial/ShiftOut
+
+ -
+Read Serial with linux:
+https://wiki.archlinux.org/index.php/arduino#Accessing_serial
+Note: As autoreset on serial connection is activated by default on most boards, you need to disable this feature if you want to communicate directly with your board with the last command instead of a terminal emulator (arduino IDE, screen, picocom...). If you have a Leonardo board, you are not concerned by this, because it does not autoreset. If you have a Uno board, connect a 10 µF capacitor between the RESET and GND pins. If you have another board, connect a 120 ohms resistor between the RESET and 5V pins.
+
+stty -F /dev/ttyACM0 cs8 9600 ignbrk -brkint -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
+
+
+- Blog in italiano: http://arduinoprincipiante.blogspot.it
+
+
+Pullup / down resistors: http://playground.arduino.cc/CommonTopics/PullUpDownResistor
+- http://www.microcontroller.it/Tutorials/Elettronica/pullup.htm
+- Vcc = collector = positive
+  Vss = source = negative
+ MEglio quella dell'altro sito
+
+
+- http://tronixstuff.com/tutorials/
+- http://www.baeyens.it/eclipse/stable-linux.html
+
+
+- i2c SPI http://www.bitwizard.nl/wiki/index.php/SPI_versus_I2C_protocols
diff --git a/lezioni/ordine_argomenti b/lezioni/ordine_argomenti
deleted file mode 100644 (file)
index f26514a..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-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
-
-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.
-
-
diff --git a/lezioni/quarta_lezione b/lezioni/quarta_lezione
new file mode 100644 (file)
index 0000000..d0d2026
--- /dev/null
@@ -0,0 +1,20 @@
+Pratica
+=========
+
+Leggere le resistenze: android e online
+
+
+Seriali
+===========
+Tipi di dati: bit e int, signed and unsigned, long
+
+
+
+Analog input e serial: far vedere che tende al PWM quando il delay e' basso.
+
+Fare PWM: pto che siano stati fatti i Byte.
+
+
+Operatori e logica
+=====================
+Fare gli operatori omparativi e logica, poi stato di un bottone.
diff --git a/lista.rst b/lista.rst
new file mode 100644 (file)
index 0000000..aabddec
--- /dev/null
+++ b/lista.rst
@@ -0,0 +1,192 @@
+===============
+Lista materiali
+===============
+
+
+  :Author: Andrea Manni
+  :Version: 1.6
+
+
+Elenco dei materiali per corsi su Arduino per 20 studenti. Molti dei componenti vengono venduti a prezzi ridotti in quantitativi di *20x - 10x - 5x*: si consiglia quindi di cercare un'offerta per un ordine cumulativo con altri studenti, con cui dividere le spese di spedizione. Sono comunque generalmente disponibili anche singolarmente: cercare per il nome del prodotto per vedere i formati disponibili.  
+
+Kit Completi
+=============
+La selezione di singoli elementi risulta piu' economica rispetto all'acquisto di kit completi e permette di evitare materiali non necessari. 
+I kit completi restano comunque una soluzione semplificata nel caso di acuisto singolo:
+
+- http://www.banggood.com/Arduino-Compatible-UNO-R3-Starter-Kit-Set-For-Step-Motor-or-1602-LCD-p-89735.html
+- http://www.banggood.com/Electronics-Fans-Components-Package-Element-Parts-Kit-Set-For-Arduino-p-949423.html?bid=7532
+- http://www.banggood.com/Basic-Starter-Learning-Kit-UNO-For-Arduino-Basics-p-934217.html
+- http://www.banggood.com/Arduino-Compatible-UNO-R3-Starter-Kit-Set-Upgraded-Version-With-RFID-p-908543.html
+
+Arduino Board
+==============
+
+- [Numero di studenti +20%] x http://www.banggood.com/Wholesale-Arduino-Compatible-R3-UNO-ATmega16U2-AVR-USB-Board-p-68537.html Arduino con MCU ATmega328 DIP (sostituibile in caso di rottura) e cavo USB
+
+- http://www.banggood.com/UNO-R3-ATmega328P-Development-Board-For-Arduino-No-Cable-p-964163.html La scheda e' una DccEle – DCcduino UNO, compatibile con Arduino Uno, Windows potrebbe aver bisogno di driver particolari essendo il chip USB diverso (su linux lavora normalmente). La scheda e' SMD (chip non removibile) senza cavo USB (c'e' anche con cavo disponibile), ha una serie di PIN ulteriori per GROUND e 5/3v, tutti i PIN principali sono duplicati come contatti per saldature o per piedini, la scheda arriva con una serie di piedini da saldare su questi per essere usati con jumper femmina.
+
+Eventualmente un paio di nano: http://www.banggood.com/5Pcs-ATmega328P-Arduino-Compatible-Nano-V3-Improved-Version-With-USB-p-951782.html
+
+.. note:: potrebbero far comodo un po' di mini breadboard per le nano: http://www.banggood.com/5Pcs-Blue-170-Holes-Mini-Solderless-Prototype-Breadboard-For-Arduino-p-950717.html
+
+
+Altre schede
+--------------
+Schede differenti dalla Arduino Uno (non sono necessarie per il corso) per chi volesse provare altro.
+
+- Arduino Mega: http://www.banggood.com/Mega2560-R3-ATmega2560-16AU-Control-Board-With-USB-Cable-For-Arduino-p-73020.html
+- Arduino nano: http://www.banggood.com/5Pcs-ATmega328P-Arduino-Compatible-Nano-V3-Improved-Version-With-USB-p-951782.html
+- Arduino Yun Shield, richiede un Arduino: http://www.seeedstudio.com/depot/Yun-Shield-p-1930.html
+- http://www.banggood.com/Digispark-Kickstarter-USB-Development-Board-For-ATTINY85-Arduino-p-953375.html
+- Attiny: http://www.banggood.com/5Pcs-ATMEL-DIP-8-MCU-ATTINY85-20PU-TINY85-20PU-Microcontroller-IC-Chip-p-944413.html
+
+
+Basic:
+==============
+
+I pacchi con centinaia di resistenze (o condensatori) sono molto economici ma contengono molti elementi raramente utilizzati. Assicurarsi di avere una scorta ulteriore di resistenza da 320 - 1k -10k ohms.
+
+- http://www.banggood.com/Wholesale-New-Best-selling-2500-PCS-50-values-1-or-4W-0_25W-1-pencent-Metal-Film-Resistor-Kit-p-40424.html
+- http://www.banggood.com/100Pcs-10K-Ohm-0_25W-14W-Power-5-Carbon-Film-Resistors-p-943538.html
+- http://www.banggood.com/100-Pcs-330-Ohm-14W-0_25W-5-Carbon-Film-Resistors-p-945322.html
+- http://www.banggood.com/50-Pcs-150-Ohm-14W-0_25W-5-Carbon-Film-Resistors-p-933024.html
+
+- x2 http://www.banggood.com/500Pcs-3MM-LED-Diode-Kit-Mixed-Color-Red-Green-Yellow-Blue-White-p-960644.html
+- http://www.banggood.com/20Pcs-RGB-LED-Diode-8mm-RedGreenBlue-4-Pin-Light-Emitting-Diode-p-962534.html
+
+- x2 http://www.banggood.com/100pcs-Mini-Micro-Momentary-Tactile-Tact-Switch-Push-Button-DIP-P4-p-917570.html
+- http://www.banggood.com/360pcs-12-Value-0_22UF-470UF-Aluminum-Electrolytic-Capacitors-Kit-p-957723.html
+
+Altri bottoni
+---------------
+- http://www.banggood.com/it/20pcs-8mm-6-Pin-Micro-Blue-Cap-Self-locking-Type-Square-Button-Switch-p-945174.html
+- http://www.banggood.com/it/20Pcs-Through-Hole-DC-50V-O_5A-1P2T-SPDT-Slide-Switch-SS12F44-p-943929.html
+
+
+Sensors:
+==============
+
+- http://www.banggood.com/10-Pcs-NTC-Thermistor-Temperature-Sensor-10K-OHM-MF52-103-3435-1-p-932790.html
+- http://www.banggood.com/20pcs-5mm-GL5549-Photo-Light-Sensitive-Resistor-CDS-Photoresistor-p-911331.html
+
+Infrared:
+--------------
+Questi non sono sicuri, cercare se c'e' una coppia gia' pronta o qualcosa di piu' semplice. L'idea e' di avere qualcosa di semplice per fare una connessione tipo seriale 1->1 .
+
+- http://www.banggood.com/10Pcs-KY-022-Infrared-IR-Transmitter-Sensor-Module-For-Arduino-p-954587.html
+- http://www.banggood.com/KY-022-Infrared-IR-Sensor-Receiver-Module-For-Arduino-p-916178.html
+
+
+Wireless:
+==============
+
+- 2x (anche uno solo: un rx / tx per studente)  http://www.banggood.com/10Pcs-433Mhz-RF-Transmitter-With-Receiver-Kit-For-Arduino-MCU-Wireless-p-951029.html
+
+Breadboard
+==============
+
+- http://www.banggood.com/120pcs-20cm-Color-Breadboard-Jumper-Cable-Wire-Combination-For-Arduino-p-944970.html
+- 2x http://www.banggood.com/10Pcs-8_5-x-5_5cm-White-400-Holes-Solderless-Breadboard-For-Arduino-p-951142.html
+- http://www.banggood.com/400Pcs-6cm-Breadboard-Jumper-Cable-Electronic-Wires-Black-Red-Colour-p-949895.html
+- 2x http://www.banggood.com/40-x-10cm-Male-To-Female-Dupont-Jumper-Wires-Calbe-2_54mm-p-89707.html
+
+
+Non previsti i kit di ponticelli tipo: http://www.banggood.com/140pcs-U-Shape-Solderless-Breadboard-Jumper-Cable-Wire-Arduino-Shield-p-78680.html : costano relativamente molto. Eventualmente si trovano nel set + breadboard:  http://www.banggood.com/140Pcs-U-Shape-Solderless-Jumper-Cable-400-Tie-Points-Breadboard-p-957991.html .
+
+Utili:
+==============
+
+- http://www.banggood.com/100-Pcs-2_54mm-Dupont-Jumper-Wire-Cable-Male-Pin-Connector-Terminal-p-918553.html
+- http://img.banggood.com/thumb/gallery/upload/2012/chenjianwei/SKU094628.1.jpg
+- http://www.banggood.com/10Pcs-40-Pin-2_54mm-Male-Female-SIL-Socket-Row-Strip-PCB-Connector-p-953436.html
+- http://www.banggood.com/10Pcs-6AA-Battery-Case-Storage-Holder-DC2_1-Power-Jack-For-Arduino-p-951063.html
+
+
+
+Vari:
+==============
+
+- Potenziometri (AnalogRead, meglio dei trimmer!) http://www.banggood.com/5Pcs-200V-0_2W-10K-Ohm-Potentiometers-Single-Linear-p-961348.html
+- diodi: http://www.banggood.com/10-Pcs-NTC-Thermistor-Temperature-Sensor-10K-OHM-MF52-103-3435-1-p-932790.html
+- Transistor http://www.banggood.com/100Pcs-MOTON-3Pin-2N2222A-2N2222-Transistor-40V-300MHz-600mA-p-943227.html
+- 2x http://www.banggood.com/10Pcs-5V-Electromagnetic-Active-Buzzer-Continuous-Beep-Continuously-p-943524.html
+- Capacitator: http://www.banggood.com/1000pcs-50V-1pF-To-100nF-50-Value-Ceramic-Capacitor-Assorted-Set-Kit-p-922776.html
+
+- Trimmer (in alternativa ai potenziometri) http://www.banggood.com/20Pcs-6mm-10K-OHM-Trimpot-Trimmer-Pot-Variable-Resistor-Horizontal-p-953377.html
+- Shifter  http://www.banggood.com/25Pcs-SN74HC595N-74HC595-74HC595N-HC595-DIP-16-8-Bit-Shift-Register-IC-p-917428.html
+
+- http://www.banggood.com/4-x-3-Matrix-12-Key-Array-Membrane-Switch-Keypad-Keyboard-For-Arduino-p-87370.html
+- http://www.banggood.com/FT232RL-FTDI-USB-To-TTL-Serial-Converter-Adapter-Module-For-Arduino-p-917226.html Questo potrebbe non finzionare facilmente con Windows.
+- http://www.banggood.com/20Pcs-Through-Hole-DC-50V-O_5A-1P2T-SPDT-Slide-Switch-SS12F44-p-943929.html
+
+Eventuali
+--------------
+
+Accessori spesso usati in vari tutorials.
+
+- http://www.banggood.com/MAX7219-Dot-Matrix-MCU-LED-Display-Control-Module-Kit-For-Arduino-p-915478.html
+- http://www.banggood.com/4-Bits-Digital-Tube-LED-Display-Module-Board-For-Arduino-p-931236.html
+- Gyro http://www.banggood.com/6DOF-MPU-6050-3-Axis-Gyro-With-Accelerometer-Sensor-Module-For-Arduino-p-80862.html
+- Relay http://www.banggood.com/Wholesale-5V-2-Channel-Relay-Module-Shield-for-Arduino-ARM-PIC-AVR-DSP-Electronic-10A-p-48610.html
+-  Matrice LED con controller http://www.banggood.com/MAX7219-Dot-Matrix-MCU-LED-Display-Control-Module-Kit-For-Arduino-p-915478.html   
+- http://www.banggood.com/10Pcs-7-Segment-0_56-Inch-4-Digit-12-Pins-Red-LED-Display-For-Arduino-p-947081.html
+- http://www.banggood.com/10-Pcs-10-Segment-Digital-Red-Green-Yellow-LED-Bar-Bar-graph-Display-p-76403.html
+- 
+
+
+Schede preforate 
+------------------
+
+- http://www.banggood.com/buy/Printed-Circuit-Board-Prototype.html
+- http://www.banggood.com/5Pcs-70x90mm-DIY-Soldering-Prototype-Copper-PCB-Printed-Circuit-Board-p-929776.html
+- http://www.banggood.com/5Pcs-4060mm-FR-4-Double-Side-Prototype-PCB-Printed-Circuit-Board-p-962243.html
+
+
+Display
+-----------
+
+- 2x16 NON I2C http://www.banggood.com/10-x-1602-Character-LCD-Display-Module-Blue-Blacklight-p-75047.html
+- I2c 2x16 http://www.banggood.com/IIC-I2C-1602-Blue-Backlight-LCD-Display-Module-For-Arduino-p-950726.html
+- Interfaccia I2C per display a 16pin: http://www.banggood.com/IIC-or-I2C-or-TWI-or-SP-Serial-Interface-Module-Port-For-5V-Arduino-1602LCD-p-80365.html
+- 4x20 I2C: http://www.banggood.com/IIC-or-I2C-2004-204-20-x-4-Character-LCD-Display-Module-Yellow-Green-p-908821.html
+
+
+Servo
+========
+
+- http://www.hobbyking.com/hobbyking/store/__31518__HobbyKing_8482_HK15178_Analog_Servo_10g_1_4kg_0_09s_EU_Warehouse_.html
+- http://www.hobbyking.com/hobbyking/store/__39339__HXT900_9g_1_6kg_12sec_Micro_Servo_EU_Warehouse_.html
+- Metallici: http://www.hobbyking.com/hobbyking/store/__31574__Turnigy_TGY_9018MG_Metal_Gear_Servo_2_5kg_13g_0_10_EU_warehouse_.html
+- Metallici digitali: http://www.hobbyking.com/hobbyking/store/__42001__HobbyKing_8482_Digital_Servo_12_5g_2_2kg_11sec_EU_Warehouse_.html
+
+
+Motori
+==========
+
+
+A spazzole
+-----------
+Questi sono motori a scopo didattico, alimentabili direttamente da arduino con un transistor.
+
+- http://www.banggood.com/3_7V-85MA-39500RPM-Coreless-Motor-7mmDia-x-16_5mmL-Shaft-Dia-0_8mm-p-938600.html
+- http://www.banggood.com/10Pcs-DC-3V-6V-Dual-Axis-Gear-Reducer-Motor-For-Arduino-Smart-Car-p-949553.html
+
+
+Step Motor
+-----------
+
+- http://www.banggood.com/Wholesale-28BYJ-48-Gear-Stepper-Motor-DC-5V-4-Phase-5-Wire-Reduction-Step-For-Arduino-p-48206.html
+- http://www.banggood.com/5Pcs-UL2003-4-Phase-Step-Motor-Driver-Module-Board-For-Arduino-p-952526.html
+
+
+
+Costosi ma d'effetto:
+======================
+
+- http://www.banggood.com/5Pcs-Infrared-IR-Receiver-Module-Wireless-Control-Kit-For-Arduino-p-953342.html
+- http://www.banggood.com/USB-24M-8CH-24MHz-8Channel-Logic-Analyzer-Latest-Support-1_1_30-p-74101.html
+- http://www.banggood.com/ENC28J60-Ethernet-LAN-Network-Module-Schematic-For-Arduino-51-AVR-LPC-p-87596.html
+
diff --git a/schemi/arduino-pwm-diagram.png b/schemi/arduino-pwm-diagram.png
new file mode 100644 (file)
index 0000000..4d7373c
Binary files /dev/null and b/schemi/arduino-pwm-diagram.png differ
diff --git a/sheets/ultra_bright_led b/sheets/ultra_bright_led
new file mode 100644 (file)
index 0000000..6481472
Binary files /dev/null and b/sheets/ultra_bright_led differ
diff --git a/var/pot.gif b/var/pot.gif
new file mode 100644 (file)
index 0000000..310ca3e
Binary files /dev/null and b/var/pot.gif differ