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
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:
Se invece volete solo usare direttamente gli oggetti basati su millis potete usare la libreria common inclusa nello sketchbook_andrea.
Procedere per interventi minimali per ottimizzare il codice al fine di renderlo portabile / riutilizzabile in contesti diversi.
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:
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
Prefoboard: schede preforate per costruire i primi circuiti permanenti: http://lab.piffa.net/accessori.html#prefboard
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.
Nota
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 :)
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:
Sketches:
Links:
Spunti per approfondimenti di argomenti accennati in aula che verranno approfonditi nei corsi intermedi
Info e guide:
Eercizi:
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:
Input analogico e pwm: mappatura di un input analogico su un output analogico:
Introduzione agli Array: forme di dati strutturate. Dichiarazione, dimensionamento, indicizzazione zero indexed, estrazione dei dati, gestione tramite cicli iterativi.
Sketches utilizzati:
Reference avanzata:
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/
Sketch utilizzati:
Git: introduzione, clonare e aggiornare un archivio.
Utilizzare la seriale per debug: funzioni print, println e flush . Bound Rate: BPS, velocita’ di trasferimento dati.
Links:
Sketch:
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).
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.
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:
Nota
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:
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
Legge di Ohm, calcolare resistenze per LED in un circuito.
Introduzione alle breadboard:
Realizzazione del primo circuito elettrico su breadboard alimentato da Arduino:
Presentazioni di varie soluzioni per alimentazione da banco dei propri circuiti: http://lab.piffa.net/accessori.html#alimentatori
Funzioni:
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
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:
Nota
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.
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:
Differenza di voltaggio, volt, elettricita’, amper, resistenza ohms.
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.
Utilizzo di un led da 5mm con la scheda Arduino Uno
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