=================================== Arduino Base: Lezioni =================================== :Author: Andrea Manni :Copyright: GFDL :Version: 1.0 Traccia degli argomenti del corso base su Arduino Make++ tenuto da Febbraio 2016 al Lunedi' e Giovedi' 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 .. contents:: Indice degli argomenti .. |date| date:: Generato il |date| con: http://docutils.sourceforge.net/rst.html Giovedi' 15 Dicembre: ultima lezione ========================================= Multitasking --------------- - Eseguire diversi task contemporaneamente: problemi dell'uso della funzione delay(): - http://lab.piffa.net/sketchbook_andrea/multitasking/blink_0/blink_0.ino - http://lab.piffa.net/sketchbook_andrea/multitasking/blink_0_soluzione/blink_0_soluzione.ino - Utilizzo della funzione ``millis()`` per coordinare diversi eventi: sketch - http://lab.piffa.net/sketchbook_andrea/multitasking/BlinkWithoutDelay_1/BlinkWithoutDelay_1.ino - http://lab.piffa.net/sketchbook_andrea/multitasking/BlinkWithoutDelay_2_led/BlinkWithoutDelay_2_led.ino - http://lab.piffa.net/sketchbook_andrea/multitasking/BlinkWithoutDelay_2_led_cleanup/BlinkWithoutDelay_2_led_cleanup.ino Gli esercizi succesivi della `serie multitasking `_ non sono stati guardati in aula, trattano vari passaggi di refactoring per passare dal codice procedurale nel loop a funzioni quanto piu' possibile isolate per poi raggiungere come soluzione finale degli oggetti autonomi tramite l'analisi delle problematiche legate ai contesti (scope) locali / globali delle variabili utilizzate. Per chi fosse interessato prettamente all'uso di millis() al posto della funzione delay() per rendere "non blocking" il codice ci sono alcuni esempi di PWM e luci in sequenza: - http://lab.piffa.net/sketchbook_andrea/multitasking/millis/loop_array_millis/loop_array_millis.ino - http://lab.piffa.net/sketchbook_andrea/multitasking/millis/pwm_millis/pwm_millis.ino Se invece volete solo usare direttamente gli oggetti basati su millis potete usare la libreria common inclusa nello sketchbook_andrea. - http://lab.piffa.net/sketchbook_andrea/libraries/common/ - http://lab.piffa.net/sketchbook_andrea/libraries/common/examples/esempi/esempi.ino Programmazione: Refactoring -------------------------------- Procedere per interventi minimali per ottimizzare il codice al fine di renderlo portabile / riutilizzabile in contesti diversi. Elettronica ================ Primi esperimenti con transistor per poter pilotare tramite Arduino componenti che richiedono piu' di 40ma di corrente: utilizzo di un LED a 150ma e dimostrazione di un segmento di una striscia di LED a 12v. Schemi: - http://lab.piffa.net/schemi/transistor_3w_bb.png - Accenno a uno sketch per poter utilizzare il motore DC con lo stesso sistema: http://lab.piffa.net/schemi/motor_transistor_diode_bb.png Per il software si puo' usare un qualunque sketch per accendere un led da 20ma, anche gli ultimi visti con millis(). Anche un PWM dovrebbe funzionare con i componenti del Kit Base di Arduino. Non sono stati trattati in modo esaustivo i transistor che verrano visti nel dettaglio dal corso intermedio in poi: http://wiki.piffa.net/index.php/Semiconduttori Componenti ---------------------- * Prefoboard: schede preforate per costruire i primi circuiti permanenti: http://lab.piffa.net/accessori.html#prefboard * Array di transistor: https://en.wikipedia.org/wiki/ULN2003A * http://lab.piffa.net/schemi/uln2_darlinghton_arduino_bb.png Incontri successivi ======================= Terminato il corso di Arduino Base ci si potra' comunque incontrare in laboratorio per continuare ad esercitarsi, come riferimento possiamo tenere le serate dei Mercoledi' dopo le 21:00 in cui si trovano anche gli aeromodellisti (per i quali Andrea sta preparando delle luci con Arduino). Chiedete conferma ai colleghi oppure direttamente allo staff di MakeitModena per avere conferma della disponibilita' dei laboratori durante le feste natalizie: http://www.comune.modena.it/makeitmodena Andrea gestisce il forum di discussione: http://forum.piffa.net/ che possiamo usare per organizzare gli incontri liberi per le prossime serate. .. Note:: Non abbiamo fatto in tempo a compilare il test qualita' di fine corso, se avete un attimo di tempo please lasciate qualche commento sul corso di base tramite il `questionario finale sull'andamento del corso `_ . Magari segnalatelo anche agli altri colleghi :) Buone feste a tutti :) Lunedi' 12 Dicembre ====================== Elettronica --------------- Stati di un bottone: creare un circuito in cui viene tracciato lo stato di un bottone (sensore ) e in base all'input dell'utente si modifica lo stato di un attuatore (output, un LED). Circuiti analizzati: - http://lab.piffa.net/schemi/circuito_led_button_bb.png - http://lab.piffa.net/schemi/button_1_bb.png Sketches: - http://lab.piffa.net/sketchbook_andrea/basic/buttons/button_state_3/ - http://lab.piffa.net/sketchbook_andrea/basic/buttons/button_state_4_state/ - http://lab.piffa.net/sketchbook_andrea/basic/buttons/button_state_4_state_and_condition/ - http://lab.piffa.net/sketchbook_andrea/basic/buttons/button_state_4_final/ Links: - https://www.arduino.cc/en/Tutorial/StateChangeDetection Approfondimenti --------------- Spunti per approfondimenti di argomenti accennati in aula che verranno approfonditi nei corsi intermedi * Debounce: introduzione al problema generale, soluzione semplice tramite un delay. Non e' stato ancora visto il debounce tramite la funzione millis(). * https://www.arduino.cc/en/Tutorial/Debounce * http://playground.arduino.cc/Learning/SoftwareDebounce * https://programmingelectronics.com/tutorial-19-debouncing-a-button-with-arduino-old-version/ * State machine, sketches: * http://lab.piffa.net/sketchbook_andrea/advanced_projects/state_machine/ * Programmazione ad oggetti, forme di dati strutturate: * da http://lab.piffa.net/sketchbook_andrea/multitasking/BlinkWithoutDelay_6_class/ in poi LED RGB ------------- Info e guide: - http://www.maffucci.it/2014/09/27/arduino-lezione-09-uso-di-led-rgb-parte-1/ - https://learn.adafruit.com/adafruit-arduino-lesson-3-rgb-leds/overview Eercizi: - Tutti: http://lab.piffa.net/sketchbook_andrea/RGB_LED/ Programmazione --------------- * Struct: http://playground.arduino.cc/Code/Struct * http://lab.piffa.net/sketchbook_andrea/RGB_LED/rgb_5_struct/ Oggi oltre allo struct e stato introdotto il paradigma della programmazione ad oggetti aggiungendo i metodi alle variabili dello struct. Questi argomenti non sono fondamentali e verranno trattati in modo esteso nei corsi sucessivi. Solo per chi ha maggiore dimestichezza con la programmazione e vuole rivedere gli esempi fatti: - http://lab.piffa.net/sketchbook_andrea/RGB_LED/rgb_6_quasi_obj/ - http://lab.piffa.net/sketchbook_andrea/RGB_LED/rgb_7_obj/ - Libreria: http://lab.piffa.net/sketchbook_andrea/libraries/common/ - Esempio di utilizzo della libreria: http://lab.piffa.net/sketchbook_andrea/libraries/common/examples/loader/ Mercoledi' 7 Dicembre ====================== Input analogico e pwm: mappatura di un input analogico su un output analogico: - http://lab.piffa.net/sketchbook_andrea/basic/pwm/pwm_4_analog_input/pwm_4_analog_input.ino - http://lab.piffa.net/sketchbook_andrea/basic/analog_input/ Tutti Fotoresistenza --------------------------- - calibrazione sensore con map() - calibrazione automatica - constrain() per impostare un range - input analogico: sensore di luminosita', fotoresistenza. Programmazione: Array ------------------------ Introduzione agli Array: forme di dati strutturate. Dichiarazione, dimensionamento, indicizzazione zero indexed, estrazione dei dati, gestione tramite cicli iterativi. * https://www.arduino.cc/en/Reference/Array Sketches utilizzati: - http://lab.piffa.net/sketchbook_andrea/programming/loops/loop_0_rider/ - http://lab.piffa.net/sketchbook_andrea/programming/loops/loop_1_array_loop/ - http://lab.piffa.net/sketchbook_andrea/programming/loops/loop_2_array_loop_serial/ Reference avanzata: - Beginning C for Arduino: Learn C Programming for the Arduino: https://books.google.it/books?id=ATYwCgAAQBAJ&lpg=PA62&ots=MJ3nQ-40g-&dq=c%20symbol%20table%20lvalues%20rvalues&pg=PA59#v=onepage&q&f=false - C++ Primer Plus: Testo molto completo ed esaustivo sul C++ - http://www.cplusplus.com/doc/tutorial/arrays/ Lunedi' 5 Dicembre ====================== Elettronica -------------- - Potenziometri, partitori di tensione, divisori di voltaggio - http://www.vitobarone.it/elettrotecnica/potenziometro.htm - https://it.wikipedia.org/wiki/Potenziometro - https://it.wikipedia.org/wiki/Partitore_di_tensione Arduino -------------- Implementazione grandezze analogiche: analog input a 10bit e output pwm a 8bit. - Byte, int, long: http://www.ladyada.net/learn/arduino/lesson4.html - Input e output analogici: http://www.maffucci.it/2012/08/31/appunti-di-programmazione-su-arduino-ingressi-e-uscite-analogiche/ - analogRead(): - https://www.arduino.cc/en/Tutorial/ReadAnalogVoltage - Uso di un potenziometro: http://www.html.it/pag/48719/arduino-leggere-i-movimenti-da-un-potenziometro/ - PWM, emulazione output analogico: - http://www.maffucci.it/2011/11/29/arduino-lezione-06-modulazione-di-larghezza-di-impulso-pwm/ - http://pietrolodi.altervista.org/arduino4/ - https://www.arduino.cc/en/Tutorial/PWM - https://learn.sparkfun.com/tutorials/sik-experiment-guide-for-arduino---v32/experiment-2-reading-a-potentiometer Sketch utilizzati: - http://lab.piffa.net/sketchbook_andrea/basic/analog_input/analogInput_1/ - http://lab.piffa.net/sketchbook_andrea/basic/analog_input/analogInput_2_serial/ - http://lab.piffa.net/sketchbook_andrea/basic/pwm/pwm_0_stati/ - http://lab.piffa.net/sketchbook_andrea/basic/pwm/pwm_1_while_byte/ - http://lab.piffa.net/sketchbook_andrea/basic/pwm/pwm_1_soluzione_doppio_while_byte/ - http://lab.piffa.net/sketchbook_andrea/basic/pwm/pwm_2_for_loop/ - Guardare a casa: http://lab.piffa.net/sketchbook_andrea/basic/pwm/pwm_3_fade_reverser/ - http://lab.piffa.net/sketchbook_andrea/basic/pwm/pwm_4_analog_input/ - http://lab.piffa.net/sketchbook_andrea/basic/analog_input/photo_3_serial/ Informatica ---------------- Operatori ligici: - http://lab.piffa.net/sketchbook_andrea/programming/operators/operator_2_comparison/ Giovedi' 1 Dicembre ====================== Informatica ------------------- Git: introduzione, clonare e aggiornare un archivio. * Guida di git: http://git-scm.com/documentation * Italiano: http://www.html.it/articoli/git-in-pochi-passi-2/ * Per un archivio online gratis: https://github.com/ Linux ~~~~~~~~~ Per chi volesse far pratica con la riga di comando: * http://linuxcommand.org/learning_the_shell.php * http://www.techspot.com/guides/835-linux-command-line-basics Arduino ----------------------------- Utilizzare la seriale per debug: funzioni print, println e flush . Bound Rate: BPS, velocita' di trasferimento dati. Links: - http://www.ladyada.net/learn/arduino/lesson4.html Sketch: * http://lab.piffa.net/sketchbook_andrea/basic/serial_debug/serial_hello_world/serial_hello_world.ino * http://lab.piffa.net/sketchbook_andrea/basic/serial_debug/switch_test_serial/switch_test_serial.ino Programmazione ---------------- - Operatori binari: - http://lab.piffa.net/sketchbook_andrea/programming/operators/operator_1_basic/ - http://www.maffucci.it/2012/03/18/appunti-di-programmazione-su-arduino-aritmetica/ Tipi di dati: byte 8 bit, INT 16bit , Long 32bit: http://www.ladyada.net/learn/arduino/lesson4.html Informatica ---------------- - Bit e byte: http://doc.andreamanni.com/intro_informatica.html#come-funzionano-gli-elaboratori -http://www.informaticapertutti.com/che-cose-il-sistema-binario-e-che-differenza-ce-tra-bit-e-byte/ - Sistema binario, trasformazioni da decimale -> binario -> decimale - http://www.youmath.it/lezioni/algebra-elementare/lezioni-di-algebra-e-aritmetica-per-scuole-medie/1816-sistema-numerico-binario.html - Trasformazione deciamle -> binario: https://vimeo.com/6419202 - https://www.khanacademy.org/math/pre-algebra/applying-math-reasoning-topic/alternate-number-bases/v/number-systems-introduction - Grandezze analogiche e digitali, conversioni AD - DA, bitrate. - http://doc.andreamanni.com/informatica_base.html#analogico-e-digitale - https://it.wikipedia.org/wiki/Digitale_%28informatica%29 Lunedi' 28 Novembre ====================== Programmazione ------------------- Cicli iterativi: automatizzare sequenze di istruzioni ripetitive. * Informatica: automatismi per operazioni ripetitive. * Introdurre un ciclo while() con un iteratore, ragionare sulla gestione dell'iteratore, scope dell'iteratore * Primo esempio di un ciclo **while**: http://lab.piffa.net/sketchbook_andrea/basic/blinks/blink_3_ciclo_while/ * Individuare gli elementi fondamentali della struttura ternaria di un ciclo for: * http://lab.piffa.net/sketchbook_andrea/basic/blinks/blink_4_ciclo_for/ * https://www.arduino.cc/en/Reference/For * Accenno veloce: Utilizzare l'iteratore di un ciclo iterativo per modificare il corso di un programma: * Con un ciclo while: http://lab.piffa.net/sketchbook_andrea/basic/blinks/blink_3_1_while_veloce/ * Con un ciclo for: http://lab.piffa.net/sketchbook_andrea/basic/blinks/blink_4_1_ciclo_for_veloce/ Nota: non e' stata ancora introdotta la struttura **do - while** . Prime considerazioni sulle differenze di utilizzo di un ciclo while (indefinito, perdurare di una situazione es. pressione di un bottone) e ciclo for (iterazione ben conosciuta e delimitata). Variabili e costanti ~~~~~~~~~~~~~~~~~~~~~~~~~~ * Variabili e costanti: differenze e dichiarazione di una costante con **const** * https://www.arduino.cc/en/Reference/Const Cicli condizionali ------------------- Programmi non deterministici, utilizzo di variabili esterne per modificare il flusso del programma: i cicli condizionali. Differenza tra cicli ``while`` e cicli ``if`` per la gestione degli eventi. - cicli condizionali: IF ELSE http://www.maffucci.it/2012/04/10/appunti-di-programmazione-su-arduino-controllo-di-flusso/ - interruttori ( micro switch momentanei SPST) con PULL DOWN Per gli interruttori e le resistenze in PULL DOWN / UP potete dare un'occhiata anche agli schemi sul tutorial all'URL: * http://www.ladyada.net/learn/arduino/lesson5.html * https://learn.sparkfun.com/tutorials/switch-basics/poles-and-throws-open-and-closed Gli sketch che abbiamo utilizzato sono: - http://lab.piffa.net/sketchbook_andrea/basic/buttons/button_1/button_1.ino .. NOTE:: Non sono stati ancora introdotti gli strumenti per il Debug via seriale, ad es. http://lab.piffa.net/sketchbook_andrea/basic/buttons/button_2_serial_debug/ - http://lab.piffa.net/sketchbook_andrea/basic/serial_debug/ Gli schemi per la breadboard: - http://lab.piffa.net/schemi/led_condizionale.png - http://lab.piffa.net/schemi/circuito_led_button_bb.png - http://lab.piffa.net/schemi/button_1_bb.png - http://lab.piffa.net/schemi/button_1_schem.png Risorse ~~~~~~~~~ Per fondamenti di programmazione in ambiente Arduino si puo' consultare on-line in italiano: http://www.alberti-porro.gov.it/wordpress/wp-content/uploads/2014/01/ProgrammareArduino.pdf Un altro testo piu' approfondito adatto a chi ha gia' buone basi di programmazione o vuole cimentarsi comunque con una trattazione esaustiva: http://www.apress.com/9781484209417 Vedi sempre: http://lab.piffa.net/testi.html Giovedi' 24 Novembre ====================== Elettronica --------------- Legge di Ohm, calcolare resistenze per LED in un circuito. - http://playground.arduino.cc/Italiano/Led Introduzione alle breadboard: - http://www.peduto.it/UsoBreadBoard/uso_breadboard.htm - http://www.maffucci.it/wp-content/uploads/2008/09/breadbord.pdf Realizzazione del primo circuito elettrico su breadboard alimentato da Arduino: - http://lab.piffa.net/schemi/circuito_led_bb.png - http://lab.piffa.net/schemi/led_single_bb.png - http://lab.piffa.net/schemi/led_single_schem.png Presentazioni di varie soluzioni per alimentazione da banco dei propri circuiti: http://lab.piffa.net/accessori.html#alimentatori Programmazione ---------------- Funzioni: * https://www.arduino.cc/en/Reference/FunctionDeclaration * Funzioni: isolare sequenze di istruzioni tramite funzioni, primi esempi di incapsulamento. * http://lab.piffa.net/sketchbook_andrea/basic/blinks/blink_2_1_sos/ * Primi accenni all'utilizzo dei tab in Arduino IDE * Passare un argomento a una funzione. * http://lab.piffa.net/sketchbook_andrea/basic/blinks/blink_2_2_funzioni_argomenti/ Lunedi' 21 Novembre ====================== Elettronica ------------- Oggi sono stati distribuiti i kit Arduino da 5e, chi avesse problemi a usare la scheda con MS Windows puo' usare il driver: http://www.5v.ru/zip/ch341ser.zip * Elenco componenti: http://www.piffa.net/kit/1 * Wiki: Info sui componenti: http://wiki.piffa.net/index.php/Kit_studenti * forum: http://forum.piffa.net/viewtopic.php?f=3&t=22 Saldatura ------------- Oggi e' stata fatta un'esercitazione di saldatura elettronica, dalla preparazione delle schede microcontroller (piedinatura) a esercizi base per i principianti: congiunzione di cavi, congiunzione di 3 cavi, congiunzione a T, preparazione di blinker LEDs. Tra i materiali visti: * Elenco strumenti e accessoti per saldature: http://lab.piffa.net/accessori.html#saldatori * Schede preforate: http://lab.piffa.net/accessori.html#prefboard * Altri accessori (lenti ingrandimento, lampade): http://lab.piffa.net/accessori.html#id3 * WishList di Andrea su Aliexpress per saldature: https://my.aliexpress.com/wishlist/wish_list_product_list.htm?currentGroupId=3102329025 .. note:: Mercoledi' sera dalle 21:00 alle 24:00 ci si trova in laboratorio con il gruppo di aereomodellismo (tra cui molti di Tetrapak), se vi interessa fare pratica con saldature e volete che Andrea porti un po' di materiali contattatelo per email a andrea at piffa punto net. Giovedi' 17 Novembre ====================== Linux Desktop -------------- - Introduzione all'Ambiente desktop KDE: https://www.kde.org/workspaces/plasmadesktop/ - [ALT][F3] : impostazioni avanzate delle finestre: rimozione bordi, schermo intero, shortcut per finestre e applicazioni. - Spostare e ridimensionare le finestre con [ALT] + mouse - Desktop virtuali: [CTR][F2] , [CTR][F1]. Abilitare nel caso i desktop virtuali da "Virtual Desktops". CLI ---- I primi comandi: sintassi * ls, cd, pwd, whoami, sudo, git Arduino ---------- Arduino IDE: sistema integrato. Utilizzare IDE. Tools -> serial / board Barra strumenti - Short cuts :: Ctrl + R Verify Ctrl + U Upload Ctrl + Shift + M Serial Monitor Menu Contestuale: cerca nella guida Upload -> LED: rx tx power led - Programmazione ------------------------ Primi sketch: * http://lab.piffa.net/sketchbook_andrea/basic/blinks/blink_0/ * http://lab.piffa.net/sketchbook_andrea/basic/blinks/blink_1_variabili/ * http://lab.piffa.net/sketchbook_andrea/basic/blinks/blink_2_funzioni/ Argomenti: * Esercizio Blink, 4 parti: commenti - dichiarazione variabili - funzione setup() - funzione loop. * istruzioni e sequenze di istruzioni. * Singola Istruzione termina con punto e virgola. * Partire dalla funzione digitalWrite(), modificare i tempi e ripetere: sequenze di istruzioni. * Variabili: impostare i tempi di delay() con una variabile. * fare una funzione per rapido() - lento(), guardare loop() e setup() Elettronica -------------- Differenza di voltaggio, volt, elettricita', amper, resistenza ohms. * elettricità ' : spostamento di carica per unita' di tempo. ampere / coulomb. Metafora anelli di una catena. * voltaggio: differenza di potenziale, metafora con pressione acqua. 1 joule / ampere * Resistenze: mix chimico tra conduttore e semiconduttore. Limitano il passaggio di corrente. Testo consigliato per il ripasso: http://www.amazon.co.uk/Electronics-All-One-For-Dummies/dp/0470147040 Componenti: Led: - Datasheet: http://wiki.piffa.net/index.php/LED Legge di Ohm, calcolare resistenze per LED in un circuito. Componenti: LED ~~~~~~~~~~~~~~~~~~~ Utilizzo di un led da 5mm con la scheda Arduino Uno * http://playground.arduino.cc/Italiano/Led * http://www.thebox.myzen.co.uk/Tutorial/LEDs.html * Datasheet: https://www.sparkfun.com/datasheets/Components/LED/COM-09590-YSL-R531R3D-D2.pdf * Arduino uno: potenze erogabile / sink dei pin: http://playground.arduino.cc/Main/ArduinoPinCurrentLimitations Si ricorda che Arduino uno e' basata su un ATmega 328p . * http://wiki.piffa.net/index.php/LED Lunedi' 14 Novembre ==================== Linux ---------------------------------------- - Free software e Open Hardware: condivisione del lavoro. - Portabilita', multiarch, flessibilita' Architettura di un elaboratore ---------------------------------------- - Schema CPU - RAM - HD STORAGE - CPU - BIT (word) e frequenza, features: multitasking - INPUT e OUTPUT = PC: tastiera monitor + rete, USB BT... - MCU: tutto integrato nel IC - INPUT OUTPUT: 20 {22) pin , 14 input / output, 6 analog input 10bit resolution 1024 values , 6 PWM output (8bit resolution). - Communication: serial in / outi (UART TTL), I2C + SPI (sarebbero i 2 pin MISO MOSI in piu' per arrivare a 22). - http://arduino.cc/en/Main/arduinoBoardUno - Differenze con un PC: interazione con perifieriche (USB), multitasking, prestazioni per flussi di dati (da 8 a 32bit). - Software: firmware o sistema operativo. Arduino non ha un OS ma viene caricato direttamente un firmware con al massimo un bootloader allegato, RPi e' un sistema linux completo, altri embedded possono usare soluzioni intermedie come FreeRTOS per MCU come ESP8266. - Comparativa tra vari arduino: http://arduino.cc/en/Products.Compare , http://www.makershed.com/pages/microcontroller-comparison HardWare ------------------ - Arduino: architettura di base e le varie schede della famiglia. - ATmega328 MCU, IC montato DIP / DLP (dual in line package) e non SMD (surface mounted), sostituibile. 20 / 22 pin utilizzabili: 14 digital in/out (6PWM), 6 analog input, USB, 2 ICSP, reset button. - Power: via USB, via l'entrata regolata (7-12v) con protezione di reverse polarity, i connettori ``POWER Vin`` non sono protetti. - 4 LED: power, RX, TX, LED (pin 13 con resistenza). Software ---------------------- Compilazione - sorgente (passaggi vari: precompilatore, linker) -> codice oggetto specifioc per CPU / Architettura. Upload (burn) codice su flash di arduino via USB. Poi USB come seriale (non possono lavorare assieme). Arduino IDE ------------------------ Primo approccio all'IDE Arduino. - Compilazione - sorgente (passaggi vari: precompilatore, linker) -> - codice oggetto specifico per CPU / Architettura. Upload (burn) - codice su flash di arduino via USB. Poi USB come seriale (non possono lavorare assieme). Arduino IDE: sistema integrato. Utilizzare IDE. Tools -> serial / board Barra strumenti - Short cuts :: Ctrl + R Verify Ctrl + U Upload Ctrl + Shift + M Serial Monitor Menu Contestuale: cerca nella guida Upload -> LED: rx tx power led