Motor driver board per Raspberry Pico da Kitronik

pico motor driver kitronik

Kitronik motor driver board è una scheda add-on che consente l’utilizzo di un Raspberry Pico come driver collegato ad una serie di attuatori.

Molti dei nostri lettori ci hanno chiesto per quale ragione negli articoli sui prodotti per SBC  fosse così raro trovare sistemi motorizzati. La risposta è semplice: ogni sistema motorizzato rappresenta un progetto a sé stante, con i propri valori di potenza e di coppia dei motori, di pilotaggio dei comandi e di gestione dei sistemi di demoltiplica. In altri termini, non è possibile scrivere un articolo generico in grado di far fuzionare qualsiasi progetto.

O quasi.

Nell’articolo di oggi vedremo infatti una soluzione particolarmente interessante ed ingegnosa, che utilizza nientemeno che un Pico come “cervello” per azionare un motore elettrico.

Vediamo di cosa si tratta.

L’hardware

Questa scheda consente al Raspberry Pi Pico (collegato tramite pin header) di azionare due motori contemporaneamente con il controllo completo di avanzamento, retromarcia e arresto, rendendolo ideale per i progetti di buggy controllati da Pico. In alternativa, la scheda può essere utilizzata per alimentare un motore passo-passo. La scheda presenta anche il circuito integrato del driver del motore DRV8833, che dispone di protezione da cortocircuito, sovracorrente e termica integrata.

La scheda presenta anche 4 connessioni esterne ai pin GPIO e un’alimentazione 3V e GND dal Pico. Ciò consente opzioni IO aggiuntive per le build buggy che possono essere lette o controllate dal Pico. C’è anche un interruttore on/off e un LED di stato dell’alimentazione. In tal modo è possibile capire a colpo d’occhio se la scheda sia accesa, e risparmia le batterie quando il progetto non è in uso.

kitronik pico motor driver board

Per utilizzare la scheda del driver del motore, il Pico deve avere un’intestazione pin saldata ed essere inserito saldamente nel connettore. La scheda produce anche un’alimentazione regolata a 3 V che viene immessa nel connettore a 40 vie eliminando così la necessità di alimentare direttamente il Pico. La scheda del driver del motore è alimentata tramite un connettore di tipo USB.

Il software

Kitronik ha anche sviluppato un modulo micro-python ed un modulo CircuitPython con esempi per supportare l’uso della scheda Motor Driver con Pico. Questo codice è disponibile nei repository GitHub.

Vediamo di seguito un esempio con micro-python.

Per prima cosa occorre scaricare ed importare il modulo PicoMotorDriver.py e creare unja istanza che rappresenti un nuovo oggetto da utilizzare.

In questo modo verrà definito l’ordine corretto per accedere ai pin di controllo.

pico motor driver board

Per accedere ai motori sarà sufficieente inviare il seguente comando:

in cui

  • motor => 1 or 2
  • direction => f or r
  • speed => 0 to 100

L’esempio seguente aziona i motori in direzioni opposte.

Nel repository sono anche presenti i seguenti script di esempio:

  • SingleMotorTest.py: Guidare un motore alla volta (in entrambe le direzioni con aumento/diminuzione della velocità).
  • AllMotorTest.py: prova varie combinazioni di velocità per entrambi i motori (come su un robot a 2 ruote).

Infine, per fermare un moitore è sufficiente eseguire il seguente comando:

In cui la variabile motor può assumere il valore 1 o 2.

Gestione di uno stepping motor

kitronik stepping motor driver

Gli stepping motors (o motori passo-passo) differiscono dai classici motori in corrente continua in precisione e potenza. Un motore passo-passo può essere pilotato in minuscoli step (corrispondenti in sottoisiemi di un angolo giro, 360°). Nell’esempio in figura abbiamo 200 passi per rivoluzione, ovvero 1,8° per step.

Il comando per azionare uno stepper motor è il seguente:

in cui

  • direction => f or r
  • steps => numero di passi (porzioni di angolo giro) da applicare al motore

Nel repository è presente il prograqmma StepperTest.py che consente di familiarizzare con tale comando.

Ma come abbiamo detto, è possibile anche ruotare il motore di un angolo preciso, fornendo il numero di gradi da applicare al movimento:

in cui

  • direction => f or r
  • angle => numero di gradi da applicare al movimento rotatorio

Ovviamente, come abbiamo visto la precisione del motore passo passo nell’esempio è di 1,8°, e non potremo richiedere una precisione maggiore dal nostro comando angle.

Parametri predefiniti

Il codice stepper presuppone 200 passi per giro (1,8 gradi per passo) e fa solo passi completi.

Ci sono parametri predefiniti per

  • velocità dello stepper: pausa predefinita di 20 ms tra i passaggi,
  • mantiene la posizione al termine di uno step: spento – risparmia energia
  • quanti passi per giro: 200.

Con questi parametri, il motore passo passo eseguirà quindi un giro completo in (200 step) * (20 mS per step) = 4000 mS = 4 secondi.

Nelle intestazioni e nei commenti delle funzioni in PicoMotorDriver.py sono presenti maggiori dettagli nel caso si abbia necessità di cambiarli.

Specifiche tecniche

  • Scheda compatta ma ricca di funzionalità progettata per essere al centro dei progetti robotici semoventi con Raspberry Pi Pico.
  • La scheda può azionare 2 motori contemporaneamente con controllo completo avanti, indietro e arresto.
  • È dotato del circuito integrato del driver del motore DRV8833, che dispone di protezione da cortocircuito, sovracorrente e termica integrata.
  • Interruttore on/off e di un LED di stato dell’alimentazione.
  • Alimentazione tramite un connettore a morsettiera.
  • Anche i pin 3V e GND sono accessibili esternamente, consentendo l’alimentazione di dispositivi esterni.
  • Codificabile con MicroPython o tramite un editor come l’editor Thonny.

Disponibilità e prezzi

Il Kitronik pico motor driver è disponibile sull’e-shop Pimoroni al prezzo di 10,50 sterline, circa 12 euro. Per una piattaforma completa di sistema di alimentazione e software di controllo, a nostro avviso si tratta di un prezzo più che abbordabile. Con altri 10 euro per il Raspberry Pico si otterrà un sistema di comando e controllo completo e funzionante.

 

Link utili

Join our groups on Telegram…

… and don’t forget our social channels!

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.