- Materiali richiesti
- Capire i motori BLDC
- Perché i droni e altri multi-elicotteri utilizzano motori BLDC?
- Perché abbiamo bisogno di un ESC e qual è la sua funzione?
- Alcuni termini comuni con BLDC e ESC:
- Schema del circuito di controllo del motore BLDC di Arduino
- Programma per il controllo della velocità BLDC utilizzando Arduino
- Controllo motore BLDC Arduino
Costruire cose e farle funzionare, nel modo in cui vogliamo, è sempre stato un vero divertimento. Pur essendo concordato, costruire cose che potrebbero volare con aria di sfida pomperebbe un po 'più di ansia tra gli hobbisti e gli armeggiatori di hardware. Sì! Sto parlando di alianti, elicotteri, aerei e principalmente multi-elicotteri. Oggi è diventato molto facile crearne uno da soli grazie al supporto della community disponibile online. Una cosa comune a tutte le cose che volano è che usano un motore BLDC, quindi cos'è questo motore BLDC? Perché ne abbiamo bisogno per far volare le cose? Cosa c'è di così speciale? Come acquistare il motore giusto e interfacciarlo con il tuo controller? Cos'è un ESC e perché lo usiamo? Se hai domande come queste, questo tutorial è la tua soluzione unica.
Quindi fondamentalmente in questo tutorial controlleremo il motore brushless con Arduino. Qui il motore outrunner BLDC sensorless A2212 / 13T viene utilizzato con un regolatore di velocità elettronico (ESC) da 20 A. Questo motore è comunemente usato per costruire droni.
Materiali richiesti
- Motore BLDC A2212 / 13T
- ESC (20A)
- Alimentazione (12V 20A)
- Arduino
- Potenziometro
Capire i motori BLDC
BLDC Motor è l'acronimo di Brush Less DC motor, è comunemente usato nei ventilatori a soffitto e nei veicoli elettrici grazie al suo funzionamento regolare. L'uso dei motori BLDC nei veicoli elettrici è stato precedentemente spiegato in dettaglio. A differenza di altri motori, i motori BLDC hanno tre fili che escono da loro e ogni filo forma la propria fase, quindi dandoci un motore trifase. Aspetta cosa!!??
Sì, sebbene i motori BLDC siano considerati motori CC, funzionano con l'aiuto delle onde pulsate. Il regolatore elettronico di velocità (ESC) converte la tensione CC dalla batteria in impulsi e la fornisce ai 3 fili del motore. In un dato momento verranno alimentate solo due fasi del motore, in modo che la corrente entri in una fase ed esca dall'altra. Durante questo processo la bobina all'interno del motore viene eccitata e quindi i magneti sul rotore si allineano alla bobina eccitata. Quindi i due fili successivi vengono eccitati dall'ESC, questo processo viene continuato per far ruotare il motore. La velocità del motore dipende dalla velocità con cui viene eccitata la bobina e la direzione del motore dipende dall'ordine in cui le bobine vengono eccitate. Impareremo di più sull'ESC più avanti in questo articolo.
Sono disponibili molti tipi di motori BLDC, diamo un'occhiata alle classificazioni più comuni.
Motore BLDC in-runner e Out-Runner: I motori BLDC in runner funzionano come qualsiasi altro motore. Cioè l'albero all'interno del motore ruota mentre la carcassa rimane fissa. Mentre i motori BLDC del corridore sono esattamente l'opposto, l'involucro esterno del motore ruota insieme all'albero mentre la bobina all'interno rimane fissa. I motori out runner sono molto vantaggi nelle bici elettriche poiché la carcassa esterna (quella che ruota) stessa è trasformata in un cerchio per i pneumatici e quindi si evita un meccanismo di accoppiamento. Anche i motori out runner tendono a dare più coppia rispetto ai tipi runner, quindi diventa una scelta ideale in EV e droni. Anche quello che stiamo usando qui è di tipo out runner.
Nota: esiste un altro tipo di motore chiamato motori BLDC senza nucleo che vengono utilizzati anche per i droni tascabili, hanno un principio di funzionamento diverso ma per ora saltiamolo per il bene di questo tutorial.
Sensore e motore BLDC sensorless: Affinché un motore BLDC ruoti senza strappi è necessario un feedback. Cioè l'ESC deve conoscere la posizione e il polo dei magneti nel rotore in modo da eccitare lo statore secondo. Queste informazioni possono essere acquisite in due modi; uno è posizionando il sensore di hall all'interno del motore. Il sensore Hall rileverà il magnete e invierà le informazioni all'ESC, questo tipo di motore è chiamato motore Sensord BLDC e viene utilizzato nei veicoli elettrici. Il secondo metodo consiste nell'utilizzare il back EMF generato dalle bobine quando i magneti le attraversano, questo non richiede hardware o cavi aggiuntivi, il filo di fase stesso viene utilizzato come feedback per controllare il back EMF. Questo metodo è utilizzato nel nostro motore ed è comune per i droni e altri progetti di volo.
Perché i droni e altri multi-elicotteri utilizzano motori BLDC?
Ci sono molti tipi di droni fantastici là fuori, dai quadricotteri agli elicotteri e agli alianti, tutto ha un hardware in comune. Questi sono i motori BLDC, ma perché? Perché usano un motore BLDC che è un po 'costoso rispetto ai motori DC?
Ci sono alcune valide ragioni per questo, una delle ragioni principali è che la coppia fornita da questi motori è molto alta, il che è molto importante per guadagnare / perdere rapidamente la spinta per decollare o atterrare su un drone. Anche questi motori sono disponibili come guide esterne che aumentano ancora la spinta dei motori. Un altro motivo per selezionare il motore BLDC è il suo funzionamento regolare senza vibrazioni, questo è l'ideale per il nostro drone stabile a mezz'aria.
Il rapporto peso / potenza di un motore BLDC è molto alto. Questo è molto importante perché i motori utilizzati sui droni dovrebbero essere di alta potenza (alta velocità e coppia elevata) ma dovrebbero anche essere di minor peso. Un motore CC che potrebbe fornire la stessa coppia e velocità di un motore BLDC sarà due volte più pesante del motore BLDC.
Perché abbiamo bisogno di un ESC e qual è la sua funzione?
Come sappiamo, ogni motore BLDC richiede una sorta di controller per convertire la tensione CC dalla batteria in impulsi per alimentare i fili di fase del motore. Questo controller è chiamato ESC che sta per Electronic Speed Controller. La responsabilità principale del controller è di eccitare i fili di fase dei motori BLDC in un ordine in modo che il motore ruoti. Questo viene fatto rilevando l'EMF di ritorno da ciascun filo e energizzando la bobina esattamente quando il magnete attraversa la bobina. Quindi c'è molta brillantezza hardware all'interno dell'ESC che esula dallo scopo di questo tutorial. Ma per citarne alcuni ha un regolatore di velocità e un circuito di eliminazione della batteria.
Controllo della velocità basato su PWM: l'ESC può controllare la velocità del motore BLDC leggendo il segnale PWM fornito sul filo arancione. Funziona in modo molto simile ai servomotori, il segnale PWM fornito dovrebbe avere un periodo di 20 ms e il ciclo di lavoro può essere variato per variare la velocità del motore BLDC. Poiché la stessa logica si applica anche ai servomotori per controllare la posizione, possiamo utilizzare la stessa libreria di servo nel nostro programma Arduino. Impara a usare Servo con Arduino qui.
Circuito di eliminazione della batteria (BEC): quasi tutti gli ESC sono dotati di un circuito di eliminazione della batteria. Come suggerisce il nome, questo circuito elimina la necessità di una batteria separata per il microcontrollore, in questo caso non abbiamo bisogno di un alimentatore separato per alimentare il nostro Arduino; l'ESC stesso fornirà un + 5V regolato che può essere utilizzato per alimentare il nostro Arduino. Ci sono molti tipi di circuiti che regolano questa tensione normalmente sarà una regolazione lineare sugli ESC economici, ma puoi anche trovare quelli con circuiti di commutazione.
Firmware: ogni ESC ha un programma firmware scritto al suo interno dai produttori. Questo firmware determina notevolmente come risponde l'ESC; alcuni dei firmware più diffusi sono Traditional, Simon-K e BL-Heli. Anche questo firmware è programmabile dall'utente, ma non ne parleremo molto in questo tutorial.
Alcuni termini comuni con BLDC e ESC:
Se hai appena iniziato a lavorare con i motori BLDC, probabilmente ti sei imbattuto in termini come Braking, Soft start, Motor Direction, Low Voltage, Response time e Advance. Diamo un'occhiata a cosa significano questi termini.
Frenata: la frenata è la capacità del motore BLDC di smettere di ruotare non appena viene rimosso l'acceleratore. Questa capacità è molto importante per i multi-elicotteri poiché devono cambiare il loro numero di giri più spesso per manovrare in aria.
Soft Start: Soft start è una caratteristica importante da considerare quando il tuo motore BLDC è associato a un ingranaggio. Quando un motore ha l'avviamento dolce abilitato, non inizierà a ruotare molto velocemente all'improvviso, aumenterà sempre gradualmente la velocità indipendentemente dalla velocità con cui è stato dato l'acceleratore. Questo ci aiuterà a ridurre l'usura degli ingranaggi collegati ai motori (se presenti).
Direzione del motore: la direzione del motore nei motori BLDC normalmente non viene modificata durante il funzionamento. Ma durante il montaggio, l'utente potrebbe dover cambiare la direzione di rotazione del motore. Il modo più semplice per cambiare la direzione del motore è semplicemente scambiare due fili qualsiasi del motore.
Arresto a bassa tensione: una volta calibrati, avremmo sempre bisogno che i nostri motori BLDC funzionino alla stessa velocità particolare per un particolare valore di accelerazione. Ma questo è difficile da ottenere perché i motori tendono a ridurre la loro velocità per lo stesso valore di accelerazione al diminuire della tensione della batteria. Per evitare ciò normalmente programmiamo l'ESC in modo che smetta di funzionare quando la tensione della batteria ha raggiunto il valore di soglia questa funzione è chiamata Low Voltage Stop ed è utile nei droni.
Tempo di risposta: la capacità del motore di cambiare rapidamente la sua velocità in base alla variazione dell'acceleratore è chiamata tempo di risposta. Minore è il tempo di risposta, migliore sarà il controllo.
Advance: Advance è un problema o più simile a un bug con i motori BLDC. Tutti i motori BLDC hanno un po 'di anticipo in loro. Cioè quando le bobine dello statore vengono eccitate il rotore viene attratto verso di essa a causa del magnete permanente presente su di esse. Dopo essere stato attratto, il rotore tende a muoversi un po 'più in avanti nella stessa direzione prima che la bobina si disecciti e poi la bobina successiva si ecciti. Questo movimento è chiamato "Advance" e creerà problemi come jitter, riscaldamento, rumore, ecc. Quindi questo è qualcosa che un buon ESC dovrebbe evitare da solo.
Ok, ora basta teoria, iniziamo con l'hardware collegando il motore ad Arduino.
Schema del circuito di controllo del motore BLDC di Arduino
Di seguito è riportato lo schema del circuito per controllare il motore brushless con Arduino:
La connessione per l' interfacciamento del motore BLDC con Arduino è piuttosto semplice. L'ESC necessita di una fonte di alimentazione di circa 12V e 5A minimo. In questo tutorial ho usato il mio RPS come fonte di alimentazione, ma puoi anche usare una batteria Li-Po per alimentare l'ESC. I fili trifase dell'ESC devono essere collegati ai fili trifase dei motori, non c'è ordine per collegare questi fili è possibile collegarli in qualsiasi ordine.
Avvertenza: alcuni ESC non avranno connettori su di essi, in tal caso assicurati che la tua connessione sia solida e proteggi i fili esposti usando del nastro isolante. Poiché ci sarà un'elevata corrente che passa attraverso le fasi, un cortocircuito provocherebbe danni permanenti all'ESC e al motore.
Il circuito BEC (Battery Eliminator) dell'ESC stesso regolerà un + 5V che può essere utilizzato per alimentare la scheda Arduino. Infine per impostare la velocità del motore BLDC utilizziamo anche un potenziometro collegato al pin A0 di Arduino
Programma per il controllo della velocità BLDC utilizzando Arduino
Dobbiamo creare un segnale PWM con duty cycle variabile dallo 0% al 100% con una frequenza di 50Hz. Il ciclo di lavoro deve essere controllato utilizzando un potenziometro in modo da poter controllare la velocità del motore. Il codice per fare ciò è simile al controllo dei servomotori poiché richiedono anche un segnale PWM con frequenza di 50Hz; quindi usiamo la stessa libreria servo di Arduino. Il codice completo può essere trovato in fondo a questa pagina più in basso spiego il codice in piccoli frammenti. E se sei nuovo su Arduino o PWM, prima utilizza PWM con Arduino e controlla il servo usando Arduino.
Il segnale PWM può essere generato solo sui pin che supportano PWM via hardware, questi pin sono normalmente indicati con un simbolo ~. Su Arduino UNO, il pin 9 può generare segnale PWM quindi colleghiamo il pin del segnale ESC (filo arancione) al pin 9 citiamo anche lo stesso codice inn utilizzando la riga seguente
Allegato ESC (9);
Dobbiamo generare un segnale PWM con duty cycle variabile dallo 0% al 100%. Per duty cycle 0% il POT emetterà 0 V (0) e per duty cycle 100% il POT produrrà 5V (1023). Qui il pot è collegato al pin A0, quindi dobbiamo leggere la tensione analogica dal POT utilizzando la funzione di lettura analogica come mostrato di seguito
int throttle = analogRead (A0);
Quindi dobbiamo convertire il valore da 0 a 1023 a 0 a 180 perché il valore 0 genererà 0% PWM e il valore 180 genererà un duty cycle del 100%. Qualsiasi valore superiore a 180 non avrà senso. Quindi mappiamo il valore su 0-180 utilizzando la funzione map come mostrato di seguito.
acceleratore = mappa (acceleratore, 0, 1023, 0, 180);
Infine, dobbiamo inviare questo valore alla funzione servo in modo che possa generare il segnale PWM su quel pin. Poiché abbiamo denominato l'oggetto servo come ESC, il codice sarà simile a questo di seguito, dove la variabile throttle contiene il valore da 0 a 180 per controllare il ciclo di lavoro del segnale PWM
ESC.write (acceleratore);
Controllo motore BLDC Arduino
Effettua i collegamenti secondo lo schema elettrico e carica il codice su Arduino e accendi l'ESC. Assicurati di aver montato il motore BLDC su qualcosa poiché il motore salterà tutto intorno durante la rotazione. Una volta che la configurazione è accesa, il tuo ESC emetterà un tono di benvenuto e continuerà a emettere un segnale acustico fino a quando il segnale dell'acceleratore non è entro i limiti di soglia, aumenta semplicemente il POT da 0 V gradualmente e il segnale acustico si interrompe, questo significa che ora stiamo fornendo PWM segnale al di sopra del valore di soglia inferiore e aumentando ulteriormente il motore inizierà a ruotare lentamente. Maggiore è la tensione fornita, maggiore è la velocità che il motore prenderà, infine quando la tensione supera il limite di soglia superiore il motore si fermerà. È quindi possibile ripetere il processo.
Il funzionamento completo di questo controller BLDC Arduino può essere trovato anche al collegamento video qui sotto. Se hai riscontrato problemi durante il funzionamento, sentiti libero di utilizzare la sezione commenti o utilizzare i forum per ulteriore assistenza tecnica.