Un veicolo con due motori indipendenti viene pilotato con comandi inviati da tastiera tramite cavo USB grazie alla piattaforma S4A (Scratch for Arduino).
Quando i due motori ruotano alla stessa velocità il veicolo si muove in avanti o indietro in linea retta; per sterzare si rallenta la ruota interna alla curva e si accelera la ruota esterna.
Un esempio in questo video.
In questo esempio, la guida del veicolo è attivata dopo avere fatto click sullo sprite del veicolo ed avviene con l'uso del tasto <spazio> e dei 4 tasti <freccia>; ripetendo la pressione del tasto la velocità o la sterzata si accentuano :
- tasto <spazio>: arresto dei motori (veicolo fermo)
- tasto <su>: i due motori accelerano la marcia in avanti o rallentano la marcia indietro
- tasto <giù>: i due motori accelerano la marcia in indietro o rallentano la marcia avanti
- tasto <sx>: motore sinistro rallentato e motore destro accelerato (sterzata a sinistra)
- tasto <dx>: motore destro rallentato e motore sinistro accelerato (sterzata a destra)
- Nota1: quando il veicolo è in retromarcia, il tasto <su> ne rallenta la velocità in quanto comanda i motori ad aumentare "in avanti" e quando il veicolo è in "marcia avanti" il tasto <giù> ne rallenta la velocità.
- Osservazioni in merito al video:
- - i motori non si avviano subito a causa dell'attrito di primo stacco, la tensione bassa non è sufficiente ad avviare i motori. Se invece sono già in moto, possono ruotare anche se alimentati a tensioni basse: il software può essere modificato per gestire meglio questa situazione e non avere momenti di stallo dove non corrisponde un'azione in seguito ad un comando via tastiera.
- - quando il motore è alimentato ma bloccato si sente chiaramente un suono: è dovuto alla PWM che per Arduino funziona alla frequenza di 488Hz (praticamente il SI centrale della scala musicale) su una delle due ruote o a 976Hz (il SI dell'ottava superiore) sull'altra ruota.
- - i motori non sono identici per cui con la stessa tensione di comando uno dei due si muove più veloce o si avvia prima: il software deve correggere questa asimmetria
- - rallentare il veicolo usando il tasto di direzione opposta non è un metodo efficiente a causa dei notevoli ritardi di risposta del sistema tastiera-PC-interprete S4A-Arduino: occorre studiare altri modi di guidare il veicolo usando tasti di inversione rapida del moto
- Sono possibili altre varianti del programma prevedendo tasti appositi per l'inversione di marcia e velocità fisse a seconda del tasto premuto.
- In un video è presentata la soluzione filoguidata adottata da un alunno del CFP EnAIP di Rivoli che è più elegante ed efficiente di quella qui presentata poichè consente una sterzata più precisa e senza incertezze.