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-03-22 con: http://docutils.sourceforge.net/rst.html
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.
Comunicazione Giovedi’ 7 si terra una ulteriore lezione di recupero su gli argomenti pasquali e il 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.
L’IDE di arduino dovrebbe permettere l’include di un file nello stesso PATH del file attuale ( ./) . Dovrebbe in oltre cercare automaticamente nei percorsi:
Array e cicli iterativi, Riprendere lo sketch dei cicli for per introdurre gli array
Sketches utilizzati:
Reference avanzata:
Lunedi’ 28 non si terra’ lezione in occasione delle festivita’ pasquali, il laboratorio sara’ comunque aperto dalle 20:30 alle 23:00 per il corso di aeromodellismo per chi volesse venire a esercitarsi con Arduino.
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:
Calendario: Giovedi’ 24 Marzo si terra’ normalmente lezione, Lunedi’ 28 non si terra’ lezione in occasione delle festivita’ pasquali.
Ripasso e esercizio su byte, PWM, input analogico, si vedano le risorse suggerite per la lezione precedente.
Oggi sono stati fatti i seguenti sketch come esercizio su applicazione di cicli iterativi (while e for loop) a PWM e lettura di input analogico:
Per la calibratura di sensori analogici che verra’ rivista nella prossima lezione:
Sono stati introdotti gli operatori comparativi binari:
Introduzione delle fotoreseistenze:
Si suggerisce di esercitarsi a creare degli sketch che in base all’input di un sensore analogico (photoresistenza o un potenziometro) cambino i parametri di un LED (luminosita’, tipo di luccichio) utilizzando gli operatori comparativi e i cicli iterativi. Es:
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:
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, SPDT
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:
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:
Sketch visti in aula:
In questa lezione abbiamo ripreso parte degli argomenti visti nelle due lezioni precedenti approfondendo le funzioni (argomenti, primi cenni allo scope) e introducendo i cicli iterativi in fondamenti di programmazione.
Ripasso su l’uso dei comandi da console CLI, sono stati accennati:
pagine man dei comandi, es: man ls
sintassi di un comando: comando –flag [oggetti_opzionali]
comando history per vedere l’elenco dei comandi utilizzati recentemente.
primi accenni a redirezione dell’output di un comando ( > ) e pipe ( | ).
ls -l: ownship dei file
aggiornamento di un archivio *.git: sudo git pull
Si ricorda che l’uso della riga comando non e’ argomento essenziale del corso di Arduino quindi se questi argomenti risultano particolarmente alieni a chi e’ abituato a lavorare esclusivamente su ambiente Windows: niente panico, non dovete utilizzare pipe e pagers per programmare Arduino!
Nota: il docente Andrea puo’ eseguire comandi e quindi aggiornare gli esercizi git su tutti i computer del laboratorio contemporaneamente: se avete dei problemi ad aggiornare il vostro PC in aula segnalatelo e Andrea fara’ un giro di aggiornamento.
Gli esercizi di Arduino sono comunque visionabili anche a casa via web all’indirizzo: http://lab.piffa.net/sketchbook_andrea/ .
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
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
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