veicoloUn 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 : 

  1. tasto <spazio>: arresto dei motori (veicolo fermo)
  2. tasto <su>: i due motori accelerano la marcia in avanti o rallentano la marcia indietro
  3. tasto <giù>: i due motori accelerano la marcia in indietro o rallentano la marcia avanti
  4. tasto <sx>: motore sinistro rallentato e motore destro accelerato (sterzata a sinistra)
  5. 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:

 

  1. - 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.
  2. - 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.
  3. - 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
  4. - 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.