
Cosa faremo in questo corso? Cosa imparerai?
Il corso serve per imparare a sviluppare sketch più professionali e apprendere tecniche avanzate.
Ogni lezione prevedere un file di risorse da scaricare con gli schemi elettrici, le slide e il codice realizzato.
Per poter seguire il corso ti serve un kit arduino base (ne puoi trovare molti in vendita su ebay o amazon).
Utilizzeremo un arduino uno o nano con una breadboard, jumper e componenti assortiti:
resistori da 270 ohm, 390 ohm, 1k, 2k2, 4k7, 10k, 100k.
condensatori da 100nF,
qualche elettrolitico da 100/200 uF a 16V
pulsanti
led
Se vuoi puoi seguire molti degli argomenti anche su TinkerCAD circuits.
Il delay() blocca gli sketch e non può essere utilizzato in un programma reattivo. Impariamo ad utilizzare un'alternativa.
Se vuoi seguire il corso senza avere a disposizione Arduino puoi utilizzare TinkerCAD Circuits che funziona per quasi tutti gli argomenti che presenterò.
Applichiamo la tecnica dei "timer non bloccanti" per far lampeggiare due led contemporaneamente con tempi differenti.
Impariamo a realizzare pause maggiori di 30 secondi e un blink con tempi di on/off differenti.
Durante la pressione di un tasto avvengono fastidiosi rimbalzi che possono introdurre disturbi e malfunzionamenti. Le tecniche di debouncing servono per arginare questi problemi.
Utilizziamo i fronti di salita e di discesa per interpretare in modo più sicuro la pressione di un pulsante.
Come creare delle funzioni in C/C++ con o senza parametri.
cosa sono gli sketch a stati?
Primo esempio di sketch a stati.
Realizziamo un template più complesso per una macchina a stati.
impariamo a usare i puntatori. Passaggio di parametri per indirizzo a una funzione.
Creiamo e definiamo delle strutture in C
Creiamo e utilizziamo delle enumerazioni in C
Cos'è una Interrupts? come si usano?
Organizziamo uno sketch su più file.
Il protocollo I2C.
Realizziamo un termometro con un display e un sensore I2C.
Il protocollo SPI
Cosa sono i watchdog?
Usiamo i timer interni per resettare uno sketch bloccato.
Impariamo a ricaricare il bootloader di Arduino.
Usiamo Git per gestire il nostro codice
Realizziamo un azionamento per un motore passo passo - disegno dello schema e progetto elettronico
Realizziamo un azionamento per un motore passo passo - scrittura del codice
Tecniche per comandare oggetti che richiedono potenza: transistor BJT e MOSFET, relè.
Tecniche per ridurre e annullare i disturbi prodotti da relè e motori.
Snubber e varistori.
Circuiti di protezione per gli ingressi.
Conclusione e saluti
In questo corso migliorerai le tue conoscenza su Arduino UNO per realizzare prototipi elettronici.
Arduino nasce come piattaforma per realizzare prototipi elettronici ed è utilizzato da designer, creatori, inventori e ingegneri per realizzare oggetti, robot, installazioni e meccanismi di ogni tipo: dalla stampante 3D alla macchina per il caffè. Puoi collegare ogni tipo di sensore, elaborare le informazioni e compiere ogni tipo di azione. Spesso questo tipo di realizzazioni sono definite Physical Computing.
Chi segue un corso base su Arduino si trova spesso in difficoltà ad affrontare un progetto reale, infatti le nozioni base non sono sufficienti per creare dei circuiti perfettamente funzionanti ed affidabili. I problemi che si riscontrano sono di tipo elettronico e legati alla programmazione.
L'utilizzo di delay() è molto comodo ma blocca il codice: cosa non ammissibile in un circuito critico o reattivo. Con il tempo gli sketch crescono a dismisura e diventa difficile mettere mano al codice.
In questo corso apprenderai utili tecniche per creare script più reattivi, con timer, interrupt e watchdog. Vedrai come organizzare i programmi in modo modulare e facilmente manutenibili con le macchine a stati.
Tutte le lezioni avranno una parte teorica e una parte pratica in cui sperimentare e vi suggerirò esercizi ed esperimenti aggiuntivi.
Per seguire il corso è consigliabile avere una conoscenza base di Arduino e dei rudimenti di programmazione in C/C++. Servono anche delle competenze di elettronica di base (collegare pulsanti, led e semplici dispositivi).
Io mi occupo di programmazione di microcontrollori, elettronica e software dal 2000. Ho lavorato come programmatore presso grandi multinazionali in vari settori. Dal 2012 mi sono messo in proprio e sviluppo hardware e prototipi di ogni tipo.