# Robotica educativa/Servomotore

Robotica educativa

## Introduzione

* PrerequisitiRobotica educativa/Prerequisiti
* Etica della roboticaRobotica educativa/Etica della robotica

## Robotica con Arduino

* Le basi dell'informaticaRobotica educativa/Le basi dell'informatica
* Le basi dell'elettronicaRobotica educativa/Le basi dell'elettronica
* Esercizi di elettrotecnicaRobotica educativa/Esercizi di elettrotecnica
* Sicurezza elettricaRobotica educativa/Sicurezza elettrica

## Primi passi nella robotica

* Invio di un SOSRobotica educativa/Invio di un SOS
* Che tempo che faRobotica educativa/Temperatura e umidità
* TermostatoRobotica educativa/Termostato
* Misurazione della distanzaRobotica educativa/Misurazione della distanza
* Sensore di parcheggioRobotica educativa/Sensore di parcheggio
* Gestione di un servomotoreRobotica educativa/Servomotore
* TelepassRobotica educativa/Telepass
* Dal computer ad ArduinoRobotica educativa/Dal computer ad Arduino
* Musica maestro!Robotica educativa/Musica maestro
* Lettore RFIDRobotica educativa/Lettore RFID
Modifica il sommario

## Il servomotore SG90

Il servomotore SG90 viene utilizzato nei microcontrollori per la gestione di robot di vario genere. È in grado di compiere una rotazione di $180^{\circ }$, semplicemente specificando il grado in formato numerico e intero.
Come visibile in figura l'uscita è composta da tre terminali: giallo, rosso e marrone.
| Colore | Significato | Valori consentiti |
| giallo | Driver | $0-180$ |
| rosso | Alimentazione positiva | $4,8~{\text{V}}-6~{\text{V}}$ |
| marrone | Messa a terra | $0~{\text{V}}$ |
Il controllo del motore avviene mediante tecnica PWM (Pulse Width Modulation), pertanto un Arduino Uno ne può controllare fino a sei, attraverso i pedini 3, 5, 6, 9, 10 e 11, quelli con il simbolo della tilde (~) vicino al loro numero.
La Pulse Width Modulation (modulazione a larghezza di impulsi) comunica attraverso la dimensione della parte alta del segnale, nota come ciclo utile, spesso espressa in percentuale, rende possibile inviare dati - anche complessi - con una singola linea.
Di seguito come viene controllato l'angolo del servomotore tramite un singolo impulso.
Da quanto precede, segue che sono necessari 20 millisecondi per comunicare al motore in quale angolo posizionarsi. Questo è uno dei valori minimi consigliati come tempo d'attesa tra una posizione e la successiva del motore.

## Schema circuitale

Di seguito lo schema circuitale. Lo schema è molto semplice perché, oltre all'alimentazione, è necessaria solo una connessione per la trasmissione dati relativi all'angolo che l'albero del servomotore deve assumere.
Naturalmente, se si vogliono controllare più servomotori (come detto si può arrivare fino a sei, con Arduino Uno) è opportuno prendere in considerazione l'utilizzo di un'alimentazione esterna, per non sovraccaricare il microcontrollore.
Nel codice che segue il servomotore viene identificato come ciaociao, perché come si può notare dai parametri, viene utilizzato per collegarci una mano di cartone stilizzata ed effettuare un saluto.
Nel caso di controllo di un robot antropomorfo i nomi potrebbero essere spalla, avambraccio, braccio e mano (ovvero la pinza o - più comunemente - end effector).

## Codice

Ed ecco il risultato (con un pizzico di fantasia).
Volendo esser più seri, con una fascetta, si sarebbe potuto simulare il tipico comportamento di un tergicristallo. Tuttavia, inserire nel laboratorio un pizzico di fantasia – oltre a rendere le lezioni più accattivanti – stimola la curiosità degli studenti che riescono a creare cose inaspettate.

## Espansioni suggerite

* Come accennato, controllare più servomotori. Naturalmente l'utilizzo di un'alimentazione esterna è fortemente consigliato. In questo cosa, al microcontrollore va connessa la messa a terra;
* un semplice esempio potrebbe essere la simulazione dei tergicristalli, o simili.