Per testare il robot ho utilizzato un alimentatore temporaneo da 5 Volt, trovate il tutorial qui Alimentatore da banco
Anche se 5 Volt sono pochi per la scheda Arduino, per dei test temporanei vanno benissimo.
Ricordatevi che state alimentando direttamente la scheda della macchina e quindi dovete rispettare il suo voltaggio massimo.
Questo vuol dire che, se la macchina ha un pacco batterie da 7,2 Volt, non potete alimentarla a 12 Volt, perchè rischierete di bruciare la scheda, a differenza della scheda Arduino che supporta una tensione superiore ai 12 Volt.
Per collegare l'alimentatore e la scheda Arduino, sono sufficienti due cavi ed uno spinotto jack.
I cavi che ho utilizzato io sono rosso/bianco per il positivo e nero/bianco per il negativo.
Gli stessi andranno collegati ai contatti presenti sulla scheda della macchinetta, dove è collegata la batteria (VCC e GND), e l'altra estremità allo spinotto jack, che andrà a collegarsi alla scheda Arduino (con positivo al centro).
Molti preferiscono usare due pacchi batterie, una per la scheda ed una per i motori, personalmente ne uso sempre uno e schermo i cavi per eliminare ogni disturbo.
In questo caso la scheda di potenza (ponte ad H) è di un giocattolo e quindi la schermatura è già stata fatta dal produttore con i relativi componenti.
Ora si può passare al test, in questo caso piloteremo le uscite con un segnale ON/OFF, quindi massima velocità, minima velocità, non avremo la regolazione della potenza.
Caricate il seguente sorgente all'interno della scheda Arduino, il robot eseguirà una serie di movimenti per testare tutte le uscite, attenderà tre secondi e ripeterà il ciclo.
//***************************************************************************
//Programma test per il robot Poor versione 2
//Setto le porte di uscita per le funzioni:
//Integrato trovato sulla macchinetta SM6135W oppure RX2-C
//Avanti PIN 10 ---- Integrato 11
//Indietro PIN 9 ---- Integrato 10
//Destra PIN 5 ---- Integrato 6
//Sinistra PIN 6 ---- Integrato 7
//
//Realizzato da: Daniele Loddo alias Ivotek
//Data: 22/08/2015
//Web: www.mignololab.org www.ivotek.it
//Email: info@mignololab.org ivotek@gmail.com
//***************************************************************************
//Dichiaro le variabili per utilizzare i nomi al posto dei numeri
//Spreco memoria ma il codice risulta leggibile al principiante
int Destra = 5;
int Sinistra = 6;
int Avanti = 10;
int Indietro = 9;
void setup() {
//Setto i PIN come out per pilotare i motori del robot.
pinMode(Avanti,OUTPUT); //Setto la porta Avanti come uscita
pinMode(Indietro,OUTPUT); //Setto la porta Indietro come uscita
pinMode(Destra,OUTPUT); //Setto la porta Destra come uscita
pinMode(Sinistra,OUTPUT); //Setto la porta Sinistra come uscita
}
void loop() {
//Porto le porte a livello logico uno per mandare avanti il motorino
digitalWrite(Avanti, HIGH); // Il robot va avanti
digitalWrite(Indietro, LOW);
//Attendo un secondo
delay(1000);
//Porto le porte a livello logico zero per fermare il motorino
digitalWrite(Avanti, LOW); //Il robot si ferma
digitalWrite(Indietro, LOW);
//Attendo due secondo
delay(2000);
//Porto le porte a livello logico uno per mandare indietro il motorino
digitalWrite(Indietro, HIGH); //Il robot va indietro
digitalWrite(Avanti, LOW);
//Attendo un secondo
delay(1000);
//Porto le porte a livello logico zero per fermare il motorino
digitalWrite(Indietro, LOW); //Il robot si ferma
digitalWrite(Avanti, LOW);
//Attendo 2 secondi
delay(2000);
//Porto le porte a livello logico uno per mandare avanti il motorino dello sterzo
digitalWrite(Destra, HIGH); // Il robot posiziona le ruote a destra
digitalWrite(Sinistra, LOW);
//Attendo un secondo
delay(1000);
//Porto le porte a livello logico zero per fermare il motorino
digitalWrite(Destra, LOW); //Il robot posiziona le ruote dritte
digitalWrite(Sinistra, LOW);
//Attendo due secondo
delay(2000);
//Porto le porte a livello logico uno per mandare indietro il motorino dello sterzo
digitalWrite(Sinistra, HIGH); //Il robot posiziona le ruote a sinistra
digitalWrite(Destra, LOW);
//Attendo un secondo
delay(1000);
//Porto le porte a livello logico zero per fermare il motorino
digitalWrite(Sinistra, LOW); //Il robot posiziona le ruote dritte
digitalWrite(Destra, LOW);
//Attendo 2 secondi
//Attendi 3 secondi prima di ripetere il ciclo
delay(3000);
}
Aggiunta il link al corso Linux Uno su Udemy.
Aggiunto il tutorial per la realizzazionedi un Arcade con materiale di riciclo.