Archivi tag: OpenWheels

Aggiungere i sensori al motore

Il passo successivo è stato quello di aggiungere i tre sensori ad effetto Hall al motore. Vi propongo alcune immagini della trasformazione da Sensorless a Sensored.

IMG_1545

IMG_1544

IMG_1546

I sensori impiegati sono tre SS411A della Honeywell, i quali sono sensori ad effetto Hall con uscita digitale, compensati in temperatura, bipolari e con isteresi (qui il datasheet).

Per il montaggio ho preferito la soluzione in cui i tre pin del sensore sono orientati lungo un raggio, così da rendere possibili piccoli aggiustamenti di posizione piegando il sensore lungo la tangente al rotore, in una direzione o nell’altra. In ultimo, magari, bloccando tutto con resina epossidica.

I sensori vanno disposti ad una distanza angolare, tra loro, di 360°/21. Circa 17°. Ho misurato il raggio su cui stavo disponendo i sensori, ne ho calcolato l’ipotetica circonferenza e ho diviso questa misura per 21. Nel mio caso la distanza tra i sensori deve essere di circa 9.5 mm, quindi ho trovato una combinazione che mettesse d’accordo il più possibile le esigenze di spaziatura tra i sensori e il passo del millefori usato come supporto. In questa fase essere precisi è importante, ma bisogna anche tenere presente che è possibile in un secondo tempo fare piccoli aggiustamenti di posizione dei sensori.

A questo punto, dopo aver realizzato i pochi collegamenti elettrici sia sulla schedina sensori che verso il driver, siamo pronti a verificare che ruotando il rotore i tre sensori commutino correttamente, aprendo e chiudendo verso massa le resistenze R17, R18 e R19 poste sulla scheda driver.

Ora è il momento di connettere i tre fili di alimentazione del motore con i tre fili PH_A, PH_B e PH_C del driver. Ricordate di ancorare bene il motore a un supporto prima di dare alimentazione al driver, usate un Duty Cycle del segnale PWM_IN molto basso 5-10% e una fraquenza di 20kHz . A questo punto  si procede per tentativi, vi conviene comunque provare tutte le possibili combinazioni, sono solo sei. In questi tentativi ci sarà sicuramente una combinazione in cui il motore girerà con meno vibrazioni e assorbendo meno corrente, scegliete quella.

E’ arrivato il momento di fare qualche regolazione. Come prima cosa, a motore in rotazione, lasciando fermo il sensore centrale spostare leggermente gli altri due affinchè le tre onde quadre che troviamo sulle resistenze R17, R18 e R19 siano sfasate di 120° tra loro.

IMG_1552

Ora, sempre a motore in funzione, allentando i dadi di fissaggio della basetta dei sensori ruotate leggermente il gruppo sensori in una direzione e nell’altra fino a trovare la condizione in cui il driver assorbe la minima corrente, fissate la basetta dei sensori. Verificate che lo sfasamento dei tre segnali sia ancora 120°, eventualmete ritoccate leggermente.

Come potete notare nella foto dello schermo dell’Analizzatore di Stati Logici, non tutti e tre i segnali dei sensori hanno un duty cycle del 50%, come dovrebbe essere, solo quello del canale 1 (traccia fucsia) si avvicina molto a questa condizione, gli altri due canali invece hanno un duty cycle del 48% uno e l’altro del 52%. Naturalmente nella foto non si può vedere, ma a motore in rotazione questi segnali hanno delle piccole e continue fluttuazioni temporali (jitter), ma comunque sempre nell’intorno dei valori di cui sopra.

Partendo dal presupposto che le condizioni di funzionamento dei tre sensori siano identiche, ritengo che le irregolarità dei segnali dipendano proprio dai sensori ad effetto Hall, più precisamente dal fatto che le isteresi dei sensori delle tracce 0 e 2 non siano centrate nel punto a zero campo magnetico. Comunque in prima battuta mi sento di dire che queste imprecisioni, data la loro contenuta entità, provocano effetti trascurabili.

OK!!! Le tarature sono finite e come avrete avuto modo di vedere il motore gira molto fluidamente, con pochissime vibrazioni e per di più assorbendo pochissima corrente (0.2-0.4A). Ora potete provare ad aumentare il Duty Cycle.

Saluti

FP

Il driver per motori BLDC

E’ passato un po’ di tempo dall’ultimo articolo, ma non è trascorso invano. In questo periodo ho progettato e realizzato un prototipo di driver per motori brushless sensorizzati.

IMG_1541

Le caratteristiche di questo driver sono state dettate da questo motore. Nell’immagne di seguito potete vedere lo schema elettrico del driver (qui la versione pdf).

MyOpenWheels _ Driver BLDC

Il funzionamento di questo driver è veramente molto semplice. Il cuore di tutto il sistema  è una GAL 16V8 (U2) che sintetizza le sei reti combinatorie (qui la tabella della verità) che pilotano i segnali IN e SD dei tre IRS2104 (U1, U3 e U5). IRS2104 che a loro volta pilotano le tre coppie di mosfet le quali con le loro commutazioni generano una pseudo terna trifase che alimenta e fa girare il motore.

La GAL 16V8 accende e spegne i mosfet, in base ai 6 segnali d’ingresso. Tre di questi provengono dall’esterno, cioè dal sistema di controllo che comanderà il presente driver e sono EN (abilitazione), DIR (direzione) e PWM_IN (ingresso PWM). In breve, il livello 1 all’ingresso EN abilita l’azionamento, il livello logico 1 o 0 all’ingresso DIR determina la direzione di rotazione del motore e in ultimo il segnale all’ingresso PWM_IN modula la corrente negli avvolgimenti del motore, quindi ne fa variare la coppia e la velocità di rotazione. Gli altri tre segnali che entrano nella GAL 16V8 (U2) sono SA, SB e SC, cioè i segnali provenienti dal sensore interno al motore, che individuano la posizione istantanea del rotore.

Dall’esterno, quindi, si dovranno fornire i tre segnali per il controllo del motore cioè EN, DIR e PWM_IN, ma al tempo stesso riceveremo dal driver BLDC le seguenti informazioni:

  1. Segnale analogico funzione della corrente assorbita dal motore da -75A a +75A;
  2. Segnale analogico funzione della temperatura del motore da 2°C a 100°C;
  3. Coppia di segnali in quadratura di fase (emulazione encoder) ENC_A e ENC_B.

Con la presenza di questi segnali di feedback un generico sistema di controllo potrà avere tutte le informazioni necessarie alla gestione delle funzionalità e delle sicurezze.

Il sensore di temperatura LM35DZ connesso al connettore J4, viene a sua volta montato in contatto termico con il motore.

La GAL 16V8 U4 è quella che si occupa di trasformare i segnali SA, SB e SC in ENC_A ed ENC_B, per fare ciò viene sintetizzato al suo interno il seguente schema elettrico.

MyOpenWheels _ Emul Encoder

La risoluzione dei segnali emulati ENC_A e ENC_B dipende strettamente dalle caratteristiche del motore. Nel nostro caso, ad esempio, il motore ha 12  poli statorici e 14 poli rotorici, percui ci saranno 42 commutazioni per giro. 21 per ENC_A e altrettanti per ENC_B.

Naturalmente nel caso non dovessero servire i segnali di emulazione dell’encoder, si può omettere dal circuito U4, la seconda GAL16V8.

Desidero ringraziare Enzo Caruana, che mi ha aiutato nelle varie fasi di questo progetto, nonchè mi ha “iniziato” alla logica programmabile. Questo è il mio primo progetto che fa uso di PLD, e devo ammettere che il risultato mi ha entusiasmato.

Un saluto a tutti.

FP

Vi ricordo che tutto il materiale di queste pagine è reso disponibile secondo la licenza CC BY-NC-SA 3.0.

GAL Commutazioni

GAL Encoder

PS: Il software utilizzato per compilare i file JED è WinCUPL di Atmel gratuitamente scaricabile da qui, previo registrazione.

Facciamo un passo indietro…

Per dovere di cronaca voglio fare il punto della situazione sul progetto del sistema di controllo (SdC) presentato (e recentemente ritirato) per OpenWheels di “Elettronica In”.

L’archivio zippato contenete gli schemi elettrici e una descrizione del SdC lo trovate qui.

La mia filosofia di progetto per MyOpenWheels (MOWs) non si basa sul minimo costo, ma sul raggiungimento delle prestazioni al costo più basso, qunidi In MOWs ho intenzione di utilizzare una coppia di motori molto più potenti, questo rende impossibile l’impiego di motori DC Brushed. Ne deriva che gli schemi elettrici cambieranno. In particolare verranno progettati driver per motori BLDC Sensored ed eliminati gli encoder, ma solo meccanicamente.

Sarebbe un’ottima verifica se nascessero discussioni sul SdC presentato per OpenWheels.

Per ora è tutto, saluti e alla prossima.

FP

Franco!!! cosa stai cercando di fare?

Cerco di progettare e realizzare un “Veicolo personale” che somigli a un Segway e che abbia delle prestazioni comparabili all’originale.

Considero questo blog come un diario su cui postare lo stato di avanzamento del progetto.

Il Progetto MyOpenWheels sarà Open e reso disponibile secondo la licenza CC BY-NC-SA 3.0.

Sarà gradita la collaborazione di quanti vorranno aiutarmi, con sostegno morale (nei momenti difficili), con auito teorico e pratico nello sviluppo del progetto e nella sua realizzazione, con sponsorizzazioni, sostegno finanziaro e quant’altro vi venga in mente.

Ho ritirato la mia candidatura dal concorso OpenWheels di “Elettronica In” perché non condividevo il modo con cui lo stavano conducendo, a parte i ritardi, ritengo che la piattaforma meccanica non abbia un’adeguata motorizzazione in termini di potenza. Qui un link alla discussione che ho avuto con loro proprio sul progetto OpenWheels.

Tra le primissime cose, non appena avrò preso un minimo di confidenza con WordPress, renderò pubblico il progetto del sistema di controllo con cui volevo partecipare al concorso di “Elettronica In”.

Ciao e a presto

FP