È un periodo di intensa sperimentazione e come avrete avuto modo di notare sono alle prese con un serie di kit di robot che sto costruendo, a prima vista questa attività potrebbe sembrare un mero esercizio tecnologico che discosta dall’obiettivo, ovvero far didattica, in realtà la ricerca è quella di costruire il giusto robot che “calza” con la didattica che ritengo importante svolgere, quindi non il “super kit robotico” ma oggetti semplici da aggiungere alla cassetta degli attrezzi del docente che vuole svolgere queste attività. Alcuni, privatamente via e-mail mi hanno chiesto se io mai avessi acquistato kit per la costruzione di robot, o se ne avessi fatto uso in classe, o più semplicemente: “Michele non ho una stampante 3D e non riesco a realizzare prototipi, mi consigli kit che poteri acquistare?” Domande di questo genere mi vengono poste spesso da colleghi, genitori, studenti e poiché mi sento soprattutto in debito verso questi ultimi, risponderò prendendo in analisi alcuni robot che posseggo la cui costruzione non richiede, almeno nelle prime fasi, competenze specifiche, sarà sufficiente saper usare un cacciavite e in alcune occasioni essere in grado di effettuare delle semplici saldature a stagno, la fase di costruzione si esaurisce in breve tempo dopo di che ci si potrà concentrare sulla programmazione.
Per ogni kit mostrerò le fasi costruttive passo passo, e proporrò alcuni semplicissimi sketch per il controllo del robot, da questi potrete partire per migliorare ed espanderne le funzionalità.
L’obiettivo è come sempre quello di porre le basi di partenza, semplificare la fase di start up e permettere di avere un tutorial di partenza che potrete impiegare per i vostri scopi a scuola o con i vostri figli, quindi come sempre se questo breve percorso vi soddisferà copiate ed incollate 🙂
Da dove partire?
Prendo in analisi il Robot Beginner KIT V2 – ARDUINO UNO REV3, che mi è stato gentilmente donato da ROBOT DOMESTICI che ringrazio a nome mio e dei miei studenti. Per chi desiderasse acquistarlo, partendo da questo sito, potrà ottenere uno sconto del 5% sul prezzo indicato sul sito utilizzando il codice di sconto: CC-RD-16.
Quindi grazie a ROBOT DOMESTICI che mi ha permesso di aggiungere alla dotazione del laboratorio scolastico un nuovo sussidio didattico.
Il kit che vi segnalo è probabilmente tra i più diffusi a livello didattico, io stesso iniziai a pensare ai miei robot stampati in 3D osservando con attenzione questo kit, caratterizzato dalla semplicità del montaggio e dalla versatilità, infatti permette di aggiungere, secondo le esigenze, ulteriori dispositivi elettronici in modo molto semplice. Sul sito di ROBOT DOMESTICI troverete manuali ben dettagliati (in lingua italiana) che mostrano le fasi costruttive e sketch di esempio, il tutto potrà essere realizzato in circa 1 ora di lavoro.
Il montaggio non richiede l’acquisto di ulteriori parti, tutto è incluso, addirittura il cacciavite a stella per il montaggio meccanico.
Cosa include il kit
Arduino UNO REV3
2A Motor Shield per Arduino
Modulo a ultrasuoni
Staffa per modulo ad ultrasuoni
Chassis
Ruote e motori
Contenitore per batterie
Jumper
Il tutorial che segue mostra le fasi di assemblaggio con una sequenza fotografica che potrete associare a quanto già ben spiegato sul manuale di costruzione, aggiungo come “punto 0” quanto mi piace dire in laboratorio: “obiettivo 0: ordine, perché ci aiuta a focalizzare l’obiettivo… ma soprattutto serve per evitare insufficienze” 🙂
01. Assembliamo i supporti motore
02. Inseriamo le ruote dentate sui motori
Le ruote dentate serviranno per eventuali esperimenti successivi per implementare un contagiri.
03. Fissiamo i motori
04. Inseriamo le ruote
05. Fissaggio della ruota omnidirezionale
06. Montaggio del vano batterie
07. Montaggio dei distanziatori
08. Passaggio cavi motori attraverso la base inferiore e superiore
09. Fissaggio del supporto del sensore ad ultrasuoni
10. Montaggio dei distanziatori per la scheda Arduino
11. Montaggio scheda Arduino
12. Montaggio sensore ad ultrasuoni
13. Inserimento dello shield motore
14. Collegare i motori sullo shield motore
15. Spostamento, shield motore, dei jumper di alimentazione motori
I motori possano essere alimentati direttamente da Arduino, però vi consiglio di fornire tensione attraverso un’alimentazione esterna, io ho aggiunto un pacco batterie da 9V, ciò consentirà di scaricare meno velocemente le batterie che alimentano Arduino.
I jumper sono normalmente in posizione Vin
Spostarli in posizione PWR IN rispettando le polarità
16. Si parte…
Questo uno sketch di esempio:
#define trigPin 13 #define echoPin 12 #define led 11 #define led2 10 int value=190; int E1 = 5; int M1 = 4; int E2 = 6; int M2 = 7; void setup() { pinMode(M1, OUTPUT); pinMode(M2, OUTPUT); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { int value=200; long duration, distance; digitalWrite(trigPin, LOW); // Added this line delayMicroseconds(2); // Added this line digitalWrite(trigPin, HIGH); // delayMicroseconds(1000); - Removed this line delayMicroseconds(10); // Added this line digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; digitalWrite(M1,HIGH); digitalWrite(M2, HIGH); analogWrite(E1, value); //PWM Speed Control analogWrite(E2, value); //PWM Speed Control delay(30); if(distance <=100){ int distance1= distance; digitalWrite(M1,HIGH); digitalWrite(M2, HIGH); analogWrite(E1, distance1); //PWM Speed Control analogWrite(E2, distance1); //PWM Speed Control delay(30); } if(distance <=50){ int distance1= distance; digitalWrite(M1,HIGH); digitalWrite(M2, HIGH); analogWrite(E1, distance1); //PWM Speed Control analogWrite(E2, distance1); //PWM Speed Control delay(30); } if(distance <=10){ int distance1= distance; digitalWrite(M1,HIGH); digitalWrite(M2, HIGH); analogWrite(E1, distance1); //PWM Speed Control analogWrite(E2, distance1); //PWM Speed Control delay(30); } if(distance <=5){ int distance1= distance + 150; digitalWrite(M1,LOW); digitalWrite(M2, LOW); analogWrite(E1, distance1); //PWM Speed Control analogWrite(E2, distance1); //PWM Speed Control delay(250); digitalWrite(M1,HIGH); digitalWrite(M2, LOW); analogWrite(E1, distance1); //PWM Speed Control analogWrite(E2, distance1); //PWM Speed Control delay(250); } }
Buona sperimentazione a tutti 🙂
Ringrazio vivamene per la magnifica spiegazione e la visione dei dettagli.
Sono un nonno del 46 che cerca d’imparare per far giocare il nipotino.
Non e’ mai troppp tardi.
Saluti.
Grazie a lei, suo nipote è un bambino molto fortunato. Un caro saluto.