
Oggi, corso di Arduino a scuola, bella giornata di sperimentazione con i ragazzi.
Scopo della lezione/esercitazione:
Imparare per scoperte guidate l’uso del ciclo for.
Sono partito dalla proposta di un mio studente Antonio T. di ampliare l’esempio For Loop che realizza leffetto della famosa auto KITT
fight between KITT and KARR, cioè una serie di led che si accendono e si spengono in sequenza nelle due direzioni.
Consegne:
- Relizzare un circuito con 10 led (invece che 6 come proposto nell’esempio)
- Controllare l’accensione della serie di led con un pulsante:
- premo il pulsante parte l’accensione e lo spegnimento in sequenza dei LED,
- non premo il pulsante, si spengono i LED
- Controllare l’accensione della serie di LED con un pulsante:
- premo il pulsante parte l’accensione e lo spegnimento in sequenza dei LED,
- premo una seconda volta il pulsante, si spengono i LED
- Stessa funzionalità del punto 3 ma con accensione e spegnimento in fade.
Oggi abbiamo realizzato i primi due punti, ma la parte della lezione più interessante è stata quando due allievi a distanza di qualche minuto hanno bloccato le loro schede Arduino, impossibile effettuare l’upload degli skatch ed il LED Tx perennemente acceso.
La porta seriale che veniva identificata inizialmente era quella corretta dopo di che scompariva dal menu “Serial Port” e ne veniva proposta solamente una non corretta, ogni tentativo da parte degli studenti di effettuare un nuovo upload rallentava enormemente l’IDE e faceva comparire, dopo parecchi secondi, il mesaggio di errore in rosso:
avrdude: stk500_getsync(): not in sync: resp=0×00
avrdude: stk500_disable(): protocol error, expect=0×14, resp=0×51.
Gli studenti tentavano di far ripartire il sistema premendo il tasto reset, ma ciò non dava alcuna soluzione. I primi pensieri sono stati:
- abbiamo mandato in corto circuito la scheda
- la scheda sta andando in loop infinito e non riusciamo a resettarla
- booo…
Finalmente vera sperimentazione!
Incomincia da parte degli studenti la ricerca su internet per trovare una possibile soluzione:
La prima soluzione proposta è stata quella di utilizzare un Arduino funzionante per effettuare un AVR ISP (in-system programmer) ma purtroppo questo sistema non è possibile applicarlo su Arduino UNO perché su questa scheda l’optiboot bootloader non permette di far funzionare lo sketch per caricare il bootloader all’interno dell’AVR.
Una ricerca più attenta ha portato gli studenti a trovare nella sezione playground tra i problemi noti è risolti la soluzione: Arduino bloccato
Come potete leggere sul sito di riferimento:
Il tastino di reset non è come il reset del computer, che fa riavviare la macchina e cancella il programma in memoria. La memoria su cui è memorizzato lo sketch non è RAM, che si cancella senza alimentazione, è di tipo Flash e mantiene quindi il programma fino a successiva riprogrammazione.
La Manovra d’emergenza di solito serve quando il micro è bloccato sulla seriale ma non sembra bloccato sulla seriale, sembra invece “sordo”, nel senso che non comunica più col computer, ed è la sequente:
- aprire l’IDE
- caricare uno sketch qualunque, anche il “blink” modificato (prova a mettere un delay doppio)
- prendere l’Arduino e tenere premuto il pulsante “reset”.
- MENTRE si tiene questo tasto pigiato, collegare l’Arduino al PC.
- adesso, MENTRE si continua a tenere pigiato il pulsantino, premere il tasto di upload dello sketch
- ora rilasciare il pulsantino di reset
- se si è trovato la sincronizzazione giusta tra la pressione del pulsante grafico di upload dello sketch ed il rilascio del reset, verrà caricato lo sketch
Alcune precisazioni, almeno per quello che io ed i ragazzi abbiamo constatato su sistema Ubuntu:
- se la scheda è bloccata scollegate il cavo USB ed uscite dall’IDE, il successivo avvio dell’IDE deve essere effettuato con cavo USB collegato alla scheda,
- se partite dal punto 2 in avanti senza uscire dall’IDE potreste non risolvere il problema;
- dal punto 1 il pulsante reset deve essere premuto;
- assicuratevi che compaia tra le varie scelte di “Serial Port” nel menu “Tools” la seriale corretta, se non compare attendete alcuni secondi, almeno nella versione di Ubuntu usato da noi, l’individuazione della seriale da parte dell’IDE richiede qualche secondo;
- qualche istante dopo che avete premuto il tasto di upload dello sketch rilasciate il pulsante reset;
- se la procedura non va a buon fine dipende dal punto 7 della procedura indicata sopra, non preoccupatevi, la paura di aver reso Arduino un mattone inutilizzabile è elevata e le mani son sudate
riprovate vedrete che tutto tornerà a funzionare.
Oggi credo che gli studenti abbiano imparato il significato della frase che spesso dico “imparare a saper fare”.




















Buongiorno Maffucci,
Volevo farle i miei complimenti, mi sarebbe piaciuto avere un insegnante come lei !
Sono un tecnico elettronico appena in pensione.
Diplomato nel 1970, mi sono fatto tutta l’evoluzione elettronica da solo,dagli studi scolastici di valvole e transistor, mi sono occupato nel mondo del lavoro di integrati,microprocessori( il classico Z80 di Faggin), PIC, microcontrollori.
Ora ho scoperto Arduino come hobbista, per me e’ un sogno, da vecchio hardwarista sempre occupato a saldare componenti, ora faccio un paio di collegamenti tra due schedine, e posso variare completamente il risultato finale della mia elettronica agendo solo sul software !
Lo faccia presente ai suoi studenti.
P.S. mi si era bloccato Arduino, ho trafficato, reinstallato,ect ect, poi ho visto il suo articoletto, e seguendo la procedura in un paio di secondi ho risolto tutto.
Grazie ancora
Fiorenzo
Grazie per la sua testimonianza, farò presente sicuramente ai miei studenti sottolinenado durante le lezioni l’evoluzione storica della programmazione su microprocessori e microcontrollori.
Grazie ancora.
Saluti.
Grazie per la soluzione!!!! il mio arduino non comunicava più dopo gli esperimenti con firmata (sto cercando di arrivare al monitoraggio real time sul web attraverso pachube) ho trovato il tuo articolo ed al secondo tentativo il mio arduino è tornato in vita!!!non potendoti ringraziare in altro modo ti lascio un consiglio se mai un giorno proverai a usare arduino+processing+pachube: con firmata e il nuovo arduino 1.0 nei file da includere si deve cambiare il file WProgram.h con Arduino.h inoltre i serial.print che danno errori di compilazione devono essere sostituiti con serial.write comunque è tutto scritto nella software release note http://arduino.cc/en/Main/ReleaseNotes solo che ho impiegato il pomeriggio per venirne fuori!!
Grazie a te Luigi
I consigli che mi hai lasciato sono preziosi e ti ringrazio fin d’ora.
In questo anno scolastico sto usando ancora la versione 0023 dell’IDE Arduino su Ubuntu, ma per la fine dell’anno scolastico incomincerò il passaggio graduale per tutti i computer dei laboratori della scuola alla versione Arduino 1.0.
Proprio in questa settimana, con la mia 5′ elettronici abbiamo incominciato ad usare Pachube ma stiamo sperimentando anche Partcl e noto che i ragazzi sono estremamente interessati.
Grazie ancora.
Saluti.