Driver FOC open-source per motori BLDC: il progetto di Sirojudin Munir

Sirojudin Munir ha rilasciato un driver FOC open-source per motori BLDC e PMSM. Il progetto comprende firmware per STM32, hardware disegnato in KiCad, file Gerber, BOM e una GUI Python per controllo e monitoraggio. È una risorsa completa per chi vuole costruire o studiare il controllo vettoriale di un motore brushless. La licenza permissiva MIT e il costo componenti dichiarato di $28.58 lo rendono accessibile a molti maker.

Il cuore del sistema è il microcontrollore STM32F405, che esegue i calcoli del Field-Oriented Control. L’ADC legge la corrente, la PWM pilota l’inverter e la SPI comunica con l’encoder magnetico. Il gate driver DRV8323RH gestisce i MOSFET e funge anche da regolatore di tensione. L’encoder AS5047 rileva la posizione del rotore, mentre l’amplificatore INA240A1 misura la corrente con precisione. Tutti questi componenti lavorano insieme per un controllo efficiente e reattivo.

Come funziona il controllo FOC

Il firmware implementa l’algoritmo Field-Oriented Control per gestire la coppia e la velocità del motore. Il processo di self-commissioning misura resistenza e induttanza del motore e calibra l’encoder. In questo modo il driver si adatta al motore collegato senza interventi manuali. Sono disponibili diverse modalità di controllo: corrente, velocità, posizione, open-loop e disabilitazione del motore. Questa flessibilità rende il progetto adatto a molte applicazioni pratiche.

  • Controllo di corrente per gestire la coppia
  • Controllo di velocità con feedback dell’encoder
  • Controllo di posizione per applicazioni di precisione
  • Modalità open-loop per test rapidi
  • Disabilitazione completa del motore per sicurezza

La GUI PyQt/PyQtGraph permette di visualizzare i dati in tempo reale e di inviare comandi al driver. Gli strumenti Python includono funzioni per la calibrazione e il monitoraggio. Inoltre, il client migliorato scritto da Munir semplifica la messa a punto del sistema. Il progetto è pensato per essere studiato e modificato, con una documentazione chiara e file ben organizzati.

Schermata o foto del nuovo firmware e del pacchetto client per il controllo del driver FOC.
Oltre all’hardware ridisegnato, Munir ha scritto nuovo firmware e un pacchetto client migliorato per controllo e calibrazione.

Hardware e componenti principali

Lo schematico e il PCB sono realizzati in KiCad, con file Gerber pronti per la produzione. La scheda opera con tensioni da 6 a 24 V e corrente fino a 1 A. Il connettore a 3 pin con passo 1.25 mm facilita il collegamento del motore. Chi vuole studiare il controllo di un brushless partendo da qualcosa di già pronto può guardare un driver per motori brushless con sensore di Hall: non fa controllo vettoriale, ma permette di vedere all’opera l’inverter e i MOSFET di potenza prima di farsi la scheda. Per le prove serve poi un motore brushless.

Il gate driver DRV8323RH è un componente chiave: pilota i MOSFET dell’inverter e integra un regolatore di tensione. L’encoder magnetico AS5047 offre una risoluzione elevata per la posizione del rotore. L’INA240A1 misura la corrente con un amplificatore dedicato. Questi componenti sono scelti per garantire prestazioni affidabili e un buon rapporto qualità-prezzo.

Strumenti software e messa in servizio

Il firmware si compila con PlatformIO in Visual Studio Code, partendo dalla configurazione STM32CubeMX. La scheda del progetto include tutti i passaggi per la messa in servizio. Il self-commissioning automatizza la misura di resistenza e induttanza del motore. La calibrazione dell’encoder avviene in modo guidato, riducendo gli errori. Infine, la GUI Python permette di testare le diverse modalità di controllo in tempo reale.

Il progetto di Munir è un esempio eccellente di documentazione tecnica open-source. Include video dimostrativi e istruzioni chiare per la riproduzione. Per chi muove i primi passi con i motori brushless, questo driver offre una base solida. Anche chi ha già esperienza può trovare spunti interessanti nel design e nel firmware.

In sintesi, si tratta di un driver FOC open-source completo, ben documentato e con licenza permissiva. Il costo dei componenti è contenuto e la qualità costruttiva è elevata. Per chi vuole approfondire il controllo dei motori brushless, questo è un progetto da studiare con attenzione. La combinazione di STM32, DRV8323RH e AS5047 offre prestazioni notevoli in un formato compatto.


Fonte: https://github.com/sirojudinMunir/sf-motion


Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Menu