Componente · Attuatore
Motore DC con ingranaggi (motore TT)
Il motore TT giallo traina molte prime auto robot: scopri il funzionamento del riduttore, i valori reali di tensione e velocità e perché serve un driver.
Che cos’è
Il motore con ingranaggi TT è il motore giallo e blu in fondo a quasi ogni prima auto robot. È un piccolo motore DC a spazzole fissato a un riduttore in plastica, con un albero di uscita double-D che si innesta direttamente in una ruota corrispondente. Comprane due, aggiungi un telaio e un caster e avrai un robot che può marciare e ruotare: è il motore di trazione dietro il primo seguilinea o robot che evita ostacoli che costruiscono quasi tutti.
Da solo un motore DC nudo gira troppo veloce e con troppa debolezza per muovere qualsiasi cosa. Il riduttore lo rende utile: trasforma quella rotazione veloce e debole nella rotazione lenta e forte di cui ha bisogno una ruota.
Come funziona
Nella scocca gialla accadono due cose:
- Il motore trasforma l’energia elettrica in rotazione. Metti una tensione fra i suoi due terminali e gira; inverti la polarità e gira nel verso opposto. Più tensione significa più velocità.
- Il riduttore riduce la velocità. Un treno di ingranaggi ~1:48 significa che la ruota compie un giro ogni circa 48 giri del motore. Perdi velocità e guadagni coppia nello stesso rapporto, ed è lo scambio desiderato: una ruota ha bisogno di forza, non di velocità. Se questo rapporto sia giusto per il tuo robot è un calcolo che puoi fare prima di comprare: vedi come scegliere un motore DC con ingranaggi.
Per controllarlo fai due cose insieme: imposta la direzione scegliendo quale terminale è positivo (lo fa il ponte H) e imposta la velocità con la PWM, accendendo e spegnendo rapidamente l’alimentazione così il motore vede una tensione media. Impara questa combinazione nel tutorial su controllo dei motori DC con PWM e ponte H.
Quando usarlo
Scegli un motore TT per qualsiasi robot leggero su ruote a bassa velocità: inseguitori di linea, robot che evitano ostacoli, robot per labirinti, una prima base a trazione differenziale. È economico, tollerante e ogni tutorial per principianti è pensato per lui.
Fai un passo in avanti quando ti serve di più: aggiungi encoder alle ruote quando vuoi misurare distanza e velocità per l’odometria, oppure passa a motori con ingranaggi metallici quando il robot diventa pesante o deve salire. Gli ingranaggi in plastica si rompono se sottoposti a sollecitazioni eccessive.
Cablaggio e trappole
- Non collegarlo mai direttamente a un pin logico. La corrente di stallo è circa 1 A. Pilotalo tramite un L298N o un ponte H simile, alimentato dalla batteria, non dal pin 5 V di Arduino.
- Due motori non corrisponderanno mai. La stessa PWM raramente fa procedere dritti; regola un motore in software oppure chiudi un ciclo di velocità con gli encoder.
- Fai attenzione alla corrente di spunto e alla contro-CEM. I motori fanno crollare l’alimentazione all’avvio e restituiscono tensione allo spegnimento. Mantieni alimentazione del motore e alimentazione logica su linee separate con massa comune: vedi come alimentare un robot.
- Abbina la ruota all’albero. L’albero double-D si inserisce correttamente solo nel foro double-D corrispondente; un foro rotondo scivola.
I quattro numeri di una scheda tecnica di un motore
Ogni motore DC a spazzole è caratterizzato da quattro cifre, e non sono indipendenti: l’intera curva segue da due di esse.
| Numero | Motore TT a 6 V | Significato |
|---|---|---|
| Velocità a vuoto | ~200 RPM | La velocità massima che raggiungerà mai, senza nulla collegato |
| Corrente a vuoto | ~150 mA | Ciò che assorbe girando liberamente, soprattutto attrito del riduttore |
| Coppia di stallo | ~0.8 kg·cm | La forza massima che può produrre, a velocità zero |
| Corrente di stallo | ~1 A | Ciò che assorbe quando è fermo. Il numero che il driver deve sopportare |
La coppia di un motore DC a spazzole diminuisce linearmente con la velocità, dalla coppia di stallo a velocità zero fino alla coppia zero alla velocità a vuoto. La corrente fa lo stesso in senso inverso. Ne conseguono tre fatti da conoscere:
La potenza massima si raggiunge a metà velocità. La potenza è coppia × velocità e il prodotto di due linee raggiunge il massimo al centro. Un motore TT a 6 V produce la massima potenza intorno a 100 RPM.
L’efficienza massima si raggiunge all’incirca a un quarto della coppia di stallo, ben oltre il picco di potenza. È il punto in cui vuoi progettare il funzionamento di un robot, non il picco di potenza e certamente non la vicinanza allo stallo.
La corrente di stallo è il vincolo di progetto, non quella di funzionamento. Un motore che assorbe volentieri 150 mA tirerà 1 A nel momento in cui una ruota si blocca contro un muro, e due motori in stallo insieme sono 2 A. Sia il driver sia la batteria devono sopravvivere a questa situazione, perché su un robot accade continuamente.
Dimensionarlo per il tuo robot
Il calcolo richiede cinque minuti e risolve la maggior parte delle domande «il mio robot è troppo lento» prima che si presentino.
Velocità. Circonferenza della ruota × RPM ÷ 60 dà i metri al secondo:
65 mm wheel -> circumference = pi x 0.065 = 0.204 m
200 RPM -> 200 / 60 = 3.33 rev/s
speed = 0.204 x 3.33 = 0.68 m/s
È una velocità di marcia, più o meno giusta per un seguilinea e piuttosto veloce per un robot da labirinto che deve fermarsi alle intersezioni.
Coppia. Per accelerare un robot di massa m con accelerazione a, ciascuna delle n ruote motrici richiede:
torque per wheel = m x a x r / n
Per un robot da 500 g che accelera a 0.5 m/s² su ruote da 65 mm (r = 0.0325 m) con due ruote motrici:
= 0.5 x 0.5 x 0.0325 / 2 = 0.004 N.m = 0.041 kg.cm
Rispetto a una coppia di stallo di 0.8 kg·cm hai quasi un fattore venti di margine, ed è il motivo per cui i motori TT vanno bene per robot leggeri e nessuno deve di solito fare questo calcolo. Fallo quando il robot diventa pesante o deve salire.
Poi controlla il pavimento. La coppia del motore è soltanto un limite; l’attrito è l’altro. Un robot leggero su un pavimento liscio raggiunge tipicamente il limite di aderenza intorno a un quarto della coppia di stallo, quindi gran parte della capacità del motore non raggiunge il terreno. Il tutorial su forza di spinta e aderenza analizza quale limite incontri davvero.
Perché il tuo robot non procede dritto
Due motori TT ai quali dai la stessa PWM non procederanno dritti, e questo è sorprendente più di quanto dovrebbe. Le cause, all’incirca per ordine di grandezza:
| Causa | Dimensione tipica | Si risolve con |
|---|---|---|
| Differenze di attrito nel riduttore | Differenza di velocità del 5–15% | Regolazione software o ciclo di velocità |
| Variazione degli avvolgimenti del motore | Qualche punto percentuale | Come sopra |
| Variazione del diametro delle ruote | 1–2% | Misura e correggi nell’odometria |
| Distribuzione del peso non uniforme | Variabile | Sposta la batteria |
| Soglie di avvio diverse | Una ruota parte al 25% di duty, l’altra al 32% | Misura entrambe; questa domina a bassa velocità |
L’ultima riga è quella che sorprende le persone, perché compare solo a bassa velocità. Un robot che segue bene la linea a piena velocità e devia forte quando avanza lentamente sta mostrando due soglie di attrito statico diverse, non un errore di sterzata.
Esistono due soluzioni reali. La regolazione software è un moltiplicatore per motore che trovi empiricamente: avanza, misura la deviazione su 2 m, correggi e ripeti. È veloce, ma vale solo per la tensione della batteria e la superficie su cui l’hai regolata. La soluzione corretta è encoder e ciclo di velocità, che correggono continuamente e non si curano della batteria.
La zona morta e perché conta
Al di sotto di un certo ciclo di lavoro il motore non gira affatto: prima bisogna superare l’attrito statico nelle spazzole e nel treno di ingranaggi. Su un motore TT è tipicamente 20–35% di ciclo di lavoro e differisce tra due motori della stessa busta.
Misura il tuo:
// Ramp up slowly and note where each wheel starts.
for (int duty = 0; duty <= 255; duty += 5) {
analogWrite(ENA, duty);
Serial.println(duty);
delay(500); // long enough to see it start
}
Poi compensa, così un comando piccolo produce un movimento piccolo invece di niente:
const int DEADBAND_A = 65; // measured, out of 255
int applyDeadband(int speed) {
if (speed == 0) return 0;
int sign = (speed > 0) ? 1 : -1;
return sign * map(abs(speed), 1, 255, DEADBAND_A, 255);
}
Senza questa correzione, il quarto inferiore dell’intervallo di controllo non fa nulla: un ciclo PID si comporta in modo molto strano vicino al punto di riferimento, perché le piccole correzioni non hanno letteralmente alcun effetto finché il termine integrale accumulato non supera la soglia e il robot non scatta.
Risoluzione dei problemi
| Sintomo | Causa probabile | Soluzione |
|---|---|---|
| La scheda si resetta all’avvio dei motori | Corrente dei motori attraverso il controllore | Batteria separata; condividi solo la massa |
| Il motore ronzia ma non gira | Sotto la zona morta o riduttore bloccato | Aumenta il duty; controlla se un ingranaggio si è rotto |
| Il robot devia solo a bassa velocità | Soglie di attrito statico diverse | Misura e compensa ogni motore separatamente |
| Il robot devia a tutte le velocità | Regolazione o diametri delle ruote diversi | Regola in software, poi misura le ruote |
| Rallenta mentre la costruzione prosegue | La batteria sta crollando | La velocità scala con la tensione; chiudi un ciclo di velocità o usa un pacco nuovo |
| Rumore di sfregamento, poi rotazione libera | Ingranaggio in plastica rotto | Si rompono sotto gli urti; usa un motore con ingranaggi metallici se si ripete |
| La ruota oscilla sull’albero | Foro rotondo su albero double-D | Usa una ruota double-D corrispondente |
| Un motore è molto più debole | Spazzole usurate o ingranaggio parzialmente rotto | Scambia i motori per confermare quale lato segue il guasto |
| Entrambi i motori si fermano a scatti insieme | L’alimentazione non fornisce la corrente di stallo | Pacco più grande; controlla la resistenza interna |
Motore TT o qualcos’altro?
| Motore | Specifica tipica | Sceglilo quando |
|---|---|---|
| Motore con ingranaggi TT | 3–6 V, ~200 RPM, ingranaggi in plastica, ~$2 | Apprendimento, robot leggeri, qualsiasi cosa su un pavimento piatto |
| TT con encoder | Stessa, più un encoder magnetico | Vuoi l’odometria: compra questo, perché l’adattamento successivo è doloroso |
| Motore con ingranaggi metallici N20 | 6–12 V, molti rapporti, ingranaggi metallici, ~$8 | Piccoli robot che richiedono precisione o durata |
| 25GA-370 | 12 V, coppia elevata, ingranaggi metallici | Robot più pesanti, salire, rover esterni |
| Servomotore a rotazione continua | 4.8–6 V, driver integrato | Vuoi una ruota senza driver del motore separato |
L’unico consiglio d’acquisto che evita più lavoro di rifacimento è questo: se pensi di poter volere encoder, compra subito motori con encoder. Il retrofit significa smontare la trasmissione e la differenza di prezzo è un paio di dollari per motore. Quasi ogni progetto che inizia come inseguitore di linea e cresce fino a diventare risolutore di labirinto finisce qui.
Esplora il grafo
Usato in queste costruzioni
Progetti, percorsi di apprendimento e simulatori che includono Motore DC con ingranaggi (motore TT).
- ProgettoCostruisci un robot seguilinea con un microcontrollore 8051
- ProgettoCostruisci un robot seguilinea: dal simulatore alla pista reale
- ProgettoCostruisci un'auto robot col telefono via Bluetooth o Wi-Fi
- ProgettoRobot con evitamento degli ostacoli: rileva, scansiona e sterza
- ProgettoRobot per labirinto di linee con memoria del percorso LSRB
- PercorsoControllo dei motori per robot: un percorso di apprendimento
Confronto
Alternative
Domande
FAQ su Motore DC con ingranaggi (motore TT)
Che cos'è un motore con ingranaggi TT?
Un motore con ingranaggi TT è un motore DC a spazzole a basso costo con un riduttore in plastica e un albero di uscita double-D che si innesta in una ruota standard per auto robot. È il motore di trazione predefinito per il primo robot su ruote che costruiscono quasi tutti, perché due di questi più un caster formano una base 2WD completa.
Quale tensione serve a un motore TT?
Un motore TT funziona da 3 a 6 volt. La maggior parte delle auto robot lo alimenta da un pacco 4×AA (6 V) o 2×18650 (7.4 V) tramite un driver del motore. Girerà a 3 V ma con pochissima coppia; 6 V è la soluzione abituale per un telaio leggero.
Può Arduino pilotare direttamente un motore TT?
No. Un motore TT assorbe circa 150 mA in funzionamento e quasi 1 A quando è in stallo, molto più di quanto possa fornire un pin di Arduino, e la contro-CEM può danneggiare il pin. Pilotalo sempre tramite un ponte H come L298N e controlla la velocità con PWM applicata al driver.
Quanto gira veloce un motore con ingranaggi TT?
Circa 200 RPM a vuoto a 6 V. Sotto il peso di un telaio gira più lentamente: è esattamente a questo che serve il riduttore 1:48, che scambia gli alti RPM del motore con la coppia necessaria a muovere davvero il robot.
Perché i miei due motori TT fanno deviare il robot invece di procedere dritto?
I motori TT economici non sono mai perfettamente abbinati, quindi la stessa PWM produce velocità leggermente diverse. Correggi in software regolando la PWM di un motore oppure aggiungi encoder alle ruote e chiudi un ciclo di velocità. È anche per questo che i robot che evitano ostacoli e quelli che seguono una linea pilotano le due ruote impostandone indipendentemente la velocità.
Per approfondire