Il servomotore è un dispositivo costituito da un motorino in continua e da un microcircuito che consente di comandare una rotazione di un angolo specifico al motorino stesso. I servomotori SG90 compiono una rotazione di 180° circa ma ci sono altri modelli che possono ruotare fino a 360°. A seconda delle esigenze si può acquistare un servo con maggiore coppia motrice. Il modello SG90 ha una coppia massima di 1kg/cm.
SG90
Velocità operativa: 0,12 secondi / 60 gradi (4,8 V senza carico) Coppia di stallo (4,8 V): 17,5 oz / pollici (1 kg / cm) Tensione di funzionamento: 4,2-6 V.
|
MG90S
Velocità di funzionamento: 0,17 sec / 60 gradi (4,8 V senza carico). Velocità di funzionamento: 0,13 sec / 60 gradi (6,0 V senza carico). Coppia stalla: 9,4 kg-cm (4,8 V). |
MG996R:
stall torque: 12kg/cm (6.0v). Velocità operativa: 0.17sec/60degree (4.8v); 0.13sec/60degree (6.0v). |
SF2550MG
Large Torque – 25KG Servo Motor 6.0V (≥22 kg·cm) – 7.4V( ≥27 kg·cm) High Rotation and Long Life – 180 degree rotation. Well controlled from 0 to 180 degrees, and it can work for more than 200 hours
|
In questo primo esercizio, collegate il pin del segnale del servomotore con il pin 12, gli altri due a GND e 5V. Proviamo a far ruotare il servo tra 0 e 180° in maniera continua: nel programma aggiungete la libreria “Servo.h” che aggiunge le istruzioni per lavorare sulla classe “Servo” la quale dispone dei metodi “write” ed “attach” con cui possiamo chiedere al servo di ruotare di un angolo specifico e indicare al programma il pin su cui il se4rvo è collegato.
Nell’esercizio di sotto, chiediamo al servo di ruotare di 45* per volta, fino a 180° e poi di tornare indietro. I tempi di delay sono calcolati per dare la possibilità al servo di effettuare la rotazione completa: dopo aver chiesto di ruotare a 0° devo dare almeno 1200 ms (nell’esercizio sono 2500ms) di tempo per tornare da 180* a 0°.
La libreria Servo ci introduce alla programmazione ad oggetti. Mentre una variabile è in grado di contenere un numero intero, un numero decimale, un carattere, esistono strutture più articolate che servono a contenere dati più articolati: l’array per esempio, contiene una N-pla di dati tutti dello stesso tipo ed ordinati. Se poi devo trattare un dato come “alunno” o “automobile” l’informazione che serve per individuare il singolo elemento (uno specifico alunno) non può essere solo “cognome” occorrono anche “nome” , indirizzo, classe ecc. Ecco che quindi utilizziamo i dati “strutturati” cioè gruppi di variabili non dello stesso tipo (come per gli array). Alunno necessita di un campo testuale per “nome” , “cognome” e di uno numerico per “anno di nascita”.
Quando la programmazione si fa più complessa possiamo pensare ad un tipo di dato a cui abbinare non solo specifiche informazioni ma anche specifiche funzioni, tutte per tale tipo di dato. Questo tipo di dato è detto “classe” e la variabile di quel tipo è detta “oggetto” , le funzioni su quel tipo sono dette “metodi” e le informazioni specifiche sono dette “attributi”.