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
Indice degli argomenti
Generato il 2017-04-07 con: http://docutils.sourceforge.net/rst.html
Introduzione alla scheda MSP432 http://wiki.piffa.net/index.php/MSP432 , dimostrazione della gestione di led multipli in multitasking tramite un RTOS: http://energia.nu/guide/multitasking/
Piezo: Layer di cercamica e layer metallico, eccitato vibra producendo onde quadre. Suono: onde sonore quadre, triangolari, tonde. Sketch: pitch follower, keyboard con pull up,
Meldie varie, sirene. Pitch follower, melodia con 3 tasti in pullup, melodia pre impostata con include di libreria.
Sketches:
Per includere un file nell’Arduino IDe si puo’ utilizzare l’apposita volce nel menu’ [SKETCH],oppure creare un nuovo TAB che dovrebbe essere immediatamente concatenato al file principale.
Array e cicli iterativi, Riprendere lo sketch dei cicli for per introdurre gli array
Sketches utilizzati:
Reference avanzata:
Introduzione ad Arduino Mini Pro: http://wiki.piffa.net/index.php/Arduino_Mini_Pro , FTDI .
Eseguire diversi task contemporaneamente: problemi dell’uso della funzione delay(): sketch: sketchbook_andrea/multitasking/blink_0
Isolare il codice di ogni task in una funzione: sketchbook_andrea/multitasking/BlinkWithoutDelay_2_led/
Passare un argomento a una funzione: variabili locali e globali: sketchbook_andrea/multitasking/BlinkWithoutDelay_4_argomento/
Programmazione orientata agli oggetti, sketch sketchbook_andrea/multitasking/BlinkWithoutDelay_6_class
Procedere per interventi minimali per ottimizzare il codice al fine di renderlo portabile / riutilizzabile in contesti diversi.
Introduzione al concetto di state machine e cambio di stato: gestione di un LED tramite stato e cambio di stato di un bottone.
Sketch utilizzati:
Gli schemi per la breadboard sono sostanzialmente simili a quelli di un bottone in pull down e un LED:
Calibratura sensori analogici:
Introduzione delle fotoreseistenze:
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/
Sketch utilizzati:
Programmi non deterministici, utilizzo di variabili esterne per modificare il flusso del programma: i cicli condizionali. Debugging via seriale.
Differenza tra cicli while e cicli if per la gestione degli eventi.
Per gli interruttori e le resistenze in PULL DOWN / UP potete dare un’occhiata anche agli schemi sul tutorial all’URL:
Gli sketch che abbiamo utilizzato sono:
Gli schemi per la breadboard:
Bottoni Momentanei, SPST
Legge di Ohm, calcolare resistenze per LED in un circuito. Approfondimenti sulla necessita’ di usare una resistenza con i LED: http://www.thebox.myzen.co.uk/Tutorial/LEDs.html
Esercizio con Arduino: collegare un secondo LED tramite breadboard:
Programma per generare schemi per Arduino + breadboard: http://fritzing.org/home/
Chi volesse altri tutorial a riguardo:
Introduzione ai cicli condizionali.
Non sono state ancora fatte le resistenze in PULL DOWN.
Funzioni:
Variabili e costanti: differenze e dichiarazione di una costante con const
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/
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).
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
Circuito elettrico: sempre tre elementi (fonte di energia, carico, circuito), flusso di elettroni, carico, circuito aperto e chiuso, corto circuito.
Testo consigliato per il ripasso: http://www.amazon.co.uk/Electronics-All-One-For-Dummies/dp/0470147040
Componenti: Led:
Legge di Ohm, calcolare resistenze per LED in un circuito.
Introduzione alle breadboard:
Realizzazione del primo circuito elettrico su breadboard alimentato da 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
Primi sketch:
Argomenti:
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
Vedi slides: http://lab.piffa.net/slides/arduino_linux.pdf
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).
Primo approccio all’IDE 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
I testi consigliati per il corso li trovate su: http://lab.piffa.net/testi.html