Pimoroni Inventor RP2040 – Calibrare servocomandi

Pimoroni Inventor RP2040

La scheda Inventor RP2040 W consente di gestire numerosi servocomandi in modo semplice e diretto attraverso MicroPython. Eccovi un esempio.

Articoli precedenti:

La scorsa settimana abbiamo imparato a pilotare i LED indirizzabili presenti sulla scheda Inventor. Oggi ci occuperemo di un task più interessante: la calibrazione di servocomandi.

Sappiamo infatti che un servocomando può essere utilizzato tramite misure angolari, lineari, continue o discrete. Vediamo come agire per fare in modo che tutti i nostri dùservomeccanismi utilizzino la scala di misurazione corretta.

Andiamo!

Programma di calibrazione servocomandi

Il programma riportato di seguito fa parte degli esempi presentati da Pimoroni. Poiché non presenta una sola riga di spiegazione, cercheremo di spiegarne il funzionamento assieme.

Esistono diversi tipi di servi, i più comuni sono ANGOLARE, LINEARE e CONTINUO. Per supportare questi diversi tipi, ciascuna classe Servo contiene un oggetto di calibrazione che memorizza il valore specifico per la mappatura degli impulsi necessaria per il suo tipo. È possibile accedere a una copia della calibrazione di un servo utilizzando .calibration(). È anche possibile fornire a un servo una nuova calibrazione utilizzando .calibration(calibration).

Il programma analizza quindi quattro modalità di calibrazione. Importiamo le sezioni necessarie dagli opportuni moduli. Contrariamente alla gestione classica del Pico, queste librerie sono già configurate per inviluppare le funzioni richieste, lasciando all’utente l’unico onere di definire il numero del servo e la caratteristica della calibrazione.

Definiamo l’oggetto board di classe Inventor2040W() e utilizziamo il metodo servos() per associare ciascun servo alla relativa uscita della scheda.

Nella prima sezione si definisce un sistema di misurazione degli angoli. Definiamo la variabile opportuna chiamando il metodo calibration() senza parametri. Quindi definiamo il range angolare ed i valori minimo e massimo da utilizzare , e richiamiamo calibration(cal) con i nuovi valori calcolati attraverso la configurazione di cal.

Per la configurazione LINEAR (su un range di valori definito) e CONTINUOUS (con una velocità di spostamento definita) procediamo allo stesso modo, utilizzando però altri parametri preimpostati (costanti).

L’ultimo caso ci mostra come bypassare i valori preimpostati, e configurare un servo che risponda ai valori scelti dall’utente.

Viene chiamato il metodo Calibration() senza parametri:

Vengono forniti il range e gli impulsi in microsecondi (la velocità di spostamento)

Eliminiamo i vincoli imposti dalla creazione dell’oggetto tramite libreria

Infine chiamiamo il metodo Calibration() con il parametro cal customizzato dall’utente:

Considerazioni finali

Grazie alla libreria della scheda Inventor, è estremamente semplice creare e customizzare più servomeccanismi utilizzando i parametri preconfezionati. Prossimamente analizzeremo il pilotaggio effettivo dei servomeccanismi, e parleremo dei motori. E magari insegneremo ad Inventor a suonare.

 

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

 

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.