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:
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:
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
from gpiozero import Servo from time import sleep servo = Servo(17)
servo.min() sleep(2) servo.mid() sleep(2) servo.max()
for posizione in range(-10, 10): servo.value=(posizione/10) sleep(0.1)
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.