È 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.