Servomotori e Raspberry Pi: come usarli con il computer single board

Servomotori e Raspberry Pi: come usarli con il computer single board più famoso al mondo? In questo articolo ho il piacere di mostrartelo sia a livello circuitale sia a livello di codice!

Prima di affrontare questo piccolo percorso assieme, parto dal presupposto: A che cosa ci servono i servomotori? Sono ciò che ti serve per eseguire rotazioni con un numero definito di gradi, di fatto sono l'elemento essenziale delle articolazioni robotiche. Se volessi approfondire il loro funzionamento, come sono fatti e con quali componenti si costruisce un servomotore, ti lascio il link qui.

Ma prima di cominciare, permettimi di presentarmi: sono Lorenzo Neri: chief education officer di Elettronica Open Source, mi occupo di realizzare contenuti educativi per aiutare persone come te a comprendere meglio questo mondo!

Come usare i servomotori con Raspberry Pi: i collegamenti circuitali

I servomotori da un punto di vista meramente circuitale ed elettrico, nella quasi totalità di quelli che puoi trovare sul mercato, si basano su tre cavetti:

I tre pin di un servomotore

Il loro ruolo è semplice: sfruttiamo l'esempio qui sopra. Il cavetto di colore nero è la massa, nel mezzo segue quello rosso che corrisponde all'alimentazione e infine quello arancione permette di inviare il segnale PWM al servomotore e quindi farlo ruotare. I colori lo preciso: non sono una regola, possono variare da produttore a produttore. Se nel tuo caso non corrispondessero, ti invito a dare un occhio al datasheet del servomotore che hai fra le mani!

Stando sempre in tema "datasheet", troverai indicata anche l'alimentazione di cui il servomotore ha bisogno. In linea generale, comunque, dovrebbero essere sufficienti 3,3V e quindi il corrispettivo pin di Raspberry Pi che li eroga. La massa, parallelamente, dovrai collegarla a "GND". In conclusione, il cavetto che si occupa di gestire il segnale PWM, andrà collegato ad uno dei pin di Raspberry Pi che in base alle due strade "software" che percorreremo assieme, potrà essere collegato al pin 17 o al pin 2:

I collegamenti del servomotore con Raspberry Pi

Come puoi vedere, non sono complicati i collegamenti a livello circuitale per usare i servomotori con Raspberry Pi, ora vediamo il primo metodo per far ruotare il nostro servomotore lato software.

Gpiozero: il pacchetto Python per usare i servomotori

Gpiozero è un pacchetto Python che permette di usare i servomotori in modo semplice e rapido.

Il primo step consiste nell'installare sia lui, sia un secondo pacchetto sul tuo Raspberry Pi:

sudo apt-get install python3-rpi.gpio

sudo pip3 install gpiozero
Fatto ciò, il funzionamento è davvero semplice: abbiamo due strade in questo caso.
Il primo step consiste nell'importare il pacchetto appena scaricato e creare una variabile di tipo "Servo":
from gpiozero import Servo

from time import sleep

servo = Servo(17)

Come argomento, vuole il numero del pin a cui hai collegato il corrispettivo cavetto del servomotore. A questo punto, vediamo la prima modalità d'uso:
servo.min()

sleep(2)

servo.mid()

sleep(2)

servo.max()
Queste tre funzioni, "min", "mid" e "max" permettono di portare la rotazione del servomotore rispettivamente a 0, 90 e 180 gradi.
Ma possono esserci dei casi in cui puoi avere bisogno di ruotare il servo di... Per esempio 51 gradi, come fare? Con la seconda strada offerta da questo pacchetto:
for posizione in range(-10, 10):

   servo.value=(posizione/10)

   sleep(0.1)

Tramite l'attributo "value" associato alla variabile "servo" possiamo far ruotare il servomotore di un numero ben specifico di gradi, ma il suo comportamento non si basa sul sistema sessagesimale. In breve, questo parametro accetta valori compresi fra "1" e "-1": fra questi è necessario codificare i valori da "0" a "180" gradi. Per questo ho usato un ciclo che va da "-10" a "10" e poi divido per 10: la funzione "range" in Python non ammette valori decimali. Fino ad ora, lato software per i servomotori abbiamo visto come usarli assieme al computer single board: era il primo metodo, vediamo il secondo.

Servomotori e Raspberry Pi: modalità 2 grazie ai segnali PWM

Abbiamo capito che per usare i servomotori abbiamo bisogno di un segnale PWM. Questo lo possiamo tranquillamente gestire e creare tramite la libreria base: GPIO.

In base al duty cycle del segnale PWM, il servomotore girerà con un numero ben definito di gradi

C'è solo un piccolo problema: in base al duty cycle e in base al produttore del tuo servomotore. [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 1167 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend