sabato 23 novembre 2013

Self Balancing Robot - parte 2 - scegliere i motori


Il primo errore di chi tenta di realizzare un progetto di self balancing è quello di scegliere un motore sbagliato.
La prima cosa da dire è che quello che tutti chiamano motore nella realtà quello che serve è un motoriduttore, ovvero un motore accoppiato a una serie di ingranaggi in grado di demoltiplicare di molto i giri del motore. 
Tutti noi da piccoli (beh, forse non tutti, ma se state leggendo questo articolo forse lo avete fatto) abbiamo smontato il trenino Lima o il motorino della Lego, e ricordiamo come all'interno di esso vi fossero degli ingranaggi. Perchè sono necessari questi ingranaggi? Perchè i motorini elettrici normalmente fanno migliaia di giri al minuto, e così sono inutilizzabili per la maggiorparte degli usi pratici, a meno di non ridurre in modo significativo il numero di giri. Il secondo vantaggio nell'utilizzare un demoltiplicatore, è quello di aumentare la coppia, ovvero la forza che ha il motore. Infatti qualcuno potrebbe obiettare che un motore elettrico in corrente continua si può facilmente pilotare variando la tensione, ma se il numero di giri voluto è significativamente basso rispetto al numero massimo di giri che il motore è in grado di ottenere alla tensione massima, il controllarlo con una tensione ridottissima comporterebbe avere un motore con una forza estremamente debole.


Ci sono altri fattori da tenere in considerazione nella scelta del tipo di motore:

  • i motori elettrici per definizione si possono pilotare con una tensione qualsiasi da 0V fino alla tensione
    massima (12V nel nostro caso). Tuttavia ci sarà una tensione minima fino alla quale il motore non si muoverà, principalmente a causa dell'attrito interno e di altri fattori che impediscono al motore di muoversi finchè il campo magnetico al suo interno non è in grado di vincere tutte le forze che remano contro. Inoltre il motore se impiegato su un robot, soffrirà anche del peso del robot stesso, che influirà negativamente sulle sue prestazioni, affaticando il motore stesso e quindi richiedendo maggiore forza per muovere il peso sorretto. In parole povere: in una scala da 0 a 100, è molto probabile che il vostro motore alimentato fino a 30 non si muoverà, per poi iniziare a muoversi lentamente e in modo nemmeno troppo lineare rispetto alla tensione applicata. REGOLA N°1: cercate prima di tutto lo "zero" del vostro motore, in modo da lavorare con un range che corrisponda a un reale range di velocità da 0% a 100%.
  • i motoriduttori usano tanti ingranaggi. Gli ingranaggi devono essere di qualità, possibilmente di metallo, e garantire il minimo gioco. Il problema con motori troppo economici è che se il gioco è troppo elevato, succede che invertendo senso di marcia si noterà una "zona d'ombra" entro la quale il motore non si muoverà, finchè gli ingranaggi cambiando verso di rotazione non si saranno di nuovo tutti "ricompattati" riprendendo contatto uno con l'altro. Tale zona d'ombra ovviamente introduce un ritardo, tanto grande quanto è lo spazio tra i denti degli ingranaggi, peggiorando la risposta globale del sistema e quindi alternando la capacità di reazione. REGOLA N°2: un motoriduttore troppo economico può causare ritardi nella risposta e far fallire miseramente il progetto.
  • i motori devono essere veloci. Indicativamente per un progetto di questo tipo è sperimentalmente dimostrato che i motori devono garantire almeno 300-350rpm. Sotto questo limite, difficilmente il robot sarà in grado di controllarsi al di là di pochi gradi di scostamento rispetto all'equilibrio. Quando il robot cade su un lato, il robot deve spostarsi nella stessa direzione per recuperare. Se la caduta è veloce, lo spostamento richiesto dovrà essere altrettanto rapido. REGOLA N°3: un motore veloce è l'unico modo per rispondere a sollecitazioni al sistema che nel alterano considerevolmente l'equilibrio.
  • i motori devono essere forti. Può davvero sorprendere quanto i motori stessi pesino, congiuntamente alle necessarie batterie. Tanto peso UGUALE tanta inerzia. E' ovvio che ci voglio motori forti, con tanta coppia, in grado di rispondere tempestivamente alla richieste di movimento. REGOLA N°4: un motore forte (con tanta coppia) è l'unico modo per non introdurre ritardi nella risposta, perchè il peso del robot potrebbe influire negativamente sul tempo di risposta del motore. 
Nel mio caso la prima scelta è stata su una coppia di motori della Pololu, con scala 50:1, e una velocità
massima di circa 200rpm (http://www.pololu.com/product/1444).
Purtroppo la scelta si è rivelata infelice, perchè dopo poche prove è stato facile constatare come i motori fossero troppo lenti per garantire la giusta "ripresa" in tutti i casi in cui il robot necessitasse di recuperare l'equilibrio da inclinazioni abbastanza elevate, oltre i 45°.
La scelta definitiva è ricaduta su una coppia di motori della stessa serie, ma non riduzione 29:1, pari a una velocità massima di circa 350rpm (http://www.pololu.com/product/1443)
I motori della Pololu sono a mio avviso un ottimo rapporto qualità-prezzo, considerando che con circa $40 a motore si ha a disposizione un encoder ad effetto di hall con una discreta risoluzione.
Sono tra l'altro facilmente reperibili su ebay o store online italiani e internazionali.

Nel prossimo post: reinventare la ruota


2 commenti:

  1. Ciao,
    mi piace molto la semplicità con la quale spieghi gli argomenti che tratti. Siccome sto realizzando anche io un robot self balancing ma molto più grande, volevo che tu gentilmente potessi darmi un consiglio: invece del motoriduttore, vado bene comunque se utilizzo un rapporto di trasmissione a catena adeguato? Nel mio caso il rapporto di trasmissione è 1/8 circa con giri nominali del motore di 2560Rpm. Applicando il fattore demoltiplicativo mi ritrovo 312,5 Rpm trasmessi alla ruota (quindi con una diminuzione della velocità e un aumento di coppia :) ). Ho fatto una trasmissione a catena per problemi di spazio e per risparmio... credi che debba utilizzare per forza un motoriduttore dato che comunque ho ottenuto lo stesso risultato ma con la trasmissione a catena?

    RispondiElimina
    Risposte
    1. ciao, credo che la catena possa andare bene, l'unico consiglio che mi sento di darti è di stare attento al "gioco" che può avere la trasmissione. Nel motoriduttore infatti lo spazio tra i denti degli ingranaggi se pur minimo crea un ritardo piuttosto sensibile soprattutto quando si inverte la direzione istantaneamente per rispondere a una sollecitazione esterna, ed è difficilmente compensabile a livello software. probabilmente meglio di tutto sarebbe una cinghia dentata tipo quelle delle distribuzioni delle automobili.

      Elimina