Controlar un servomotor con Raspberry Pi

By Tutoriales Raspberry Pi, , With 20 comments

 

Que es un servomotor?

Un servomotor o “servo” es un motor electrónico de baja inercia al que se le puede controlar tanto la velocidad de giro como la posición dentro de su rango de operación.

El cuerpo de los servo motores está formado por un motor eléctrico, una caja reductora con engranajes y un circuito electrónico de control. Los servo motores son comunmente utilizados en modelismo para controlar los sistemas de dirección, por ejemplo el timón de un barco o los alerones de un avión.

Los servos usan la modulación por ancho de pulsos (PWM) para controlar la posición del motor eléctrico.

Esquema y cableado

Hace poco he estado trabajando en un proyecto de cámara de seguridad controlada por una Raspberry Pi. En mitad del montaje del proyecto se me ocurrió que sería interesante que el usuario pudiese mover la cámara tan sólo pulsando unos botones de la interfaz web, asi la cámara podría cubrir un mayor ángulo de visión, para esta modificación pensé que un servomotor podría hacer bien el trabajo. El servomotor que he usado es el que podeis ver en la foto de cabecera, un TOWER PRO SG90.

Los cables son de color marrón (GND), rojo (VCC) y amarillo (SIGNAL). Este servo se alimenta de 5V asi que es ideal para usar con Raspberry o Arduino su ángulo de giro es de 180º pero se puede modificar y hacer que gire 360º (ver Mini servo SG90 rotación contínua). Tiene un torque (fuerza de rotación) de 1’5Kg/cm, no es que tenga una fuerza brutal pero para girar la camara Pi Noir de la Raspberry me iba al pelo. Para controlar el servo motor monté el siguiente esquema:

servo1

Controlando el servomotor con Python

Para poder controlar el servo haremos uso de la librería RPI.GPIO, este pequeño código en Python muestra como controlar el servo poniéndolo en 3 posiciones, izquiera, derecha y centro.

Ahora ya sabeis controlar un servomotor con Raspberry Pi, que proyectos se os ocurren?.

Si te ha gustado este artículo deja un +1 o un like! 😀