Escolar Documentos
Profissional Documentos
Cultura Documentos
El segundo punto es que para controlar el servo, debe usar la modulación de ancho de
pulso. Entonces, te recomiendo que pases por la LECCIÓN 27 si aún no lo has hecho. La
Lección 27 le muestra cómo usar PWM en los pines GPIO en la Raspberry Pi. Si está al día
con PWM, esta lección será mucho más fácil.
Entonces, con eso fuera del camino, estamos listos para conectar nuestro servo. Para mi
servo, el cable de tierra es negro, el cable rojo es de 5 voltios y el cable amarillo es la línea
de control. Si está utilizando un servo diferente, necesitará leer las instrucciones para ver
cuál es el código de color para sus tres cables, pero es probable que sea similar al mío. El
siguiente boceto muestra cómo debe conectar el servo. Observe que tengo el 5V
conectado al pin físico Pi 2, la conexión a tierra del servo conectado al pin físico Pi 9 y la
línea de control del servo conectado al pin físico Pi 11.
Ahora con el Servo conectado, estamos listos para intentar controlarlo. Para este
ejemplo, trabajaremos en el shell de Python. Para ingresar al shell de Python, abra una
ventana de Terminal y, en el símbolo del sistema, escriba:
$ sudo python
Es importante incluir sudo, ya que Raspberry Pi solo permite el acceso a los pines GPIO al
superusuario. Por lo tanto, debe ingresar al shell de Python como superusuario. Cuando
escriba el comando anterior, debería ser trasladado al shell de Python, y debería ver el
indicador del shell de Python de >>>.
Ahora estamos listos para controlar el servo. Primero debemos importar la biblioteca RPi.
Estos primeros pasos deberían ser familiares si hiciste la LECCIÓN 27.
Ahora tenemos que decirle al Pi qué esquema de numeración de pin queremos usar. Me
gusta usar los números de pin físicos (Ver LECCIÓN 25 para un diagrama). Entonces,
necesitamos emitir el comando:
Ahora tenemos que decirle al Pi que el pin físico 11 será un pin de salida:
La posición de los servos está controlada por el ancho de pulso de una señal PWM de 50
Hz. Por lo tanto, necesitamos activar la secuencia PWM a 50 Hz. Tenga en cuenta que
para una señal de 50 Hz, el período de la señal es 1/50 = .02 segundos, o 20 milisegundos.
Tenga en cuenta este Período, ya que volveremos más adelante. Comenzamos creando
un objeto PWM en el Pin 11 con una señal de 50 Hz con el comando:
El PulseWidth que nos dará una posición completa a la izquierda es 1 milisegundo. Ahora
calculamos el DutyCycle aplicado para darnos la posición deseada:
DutyCycle = PulseWidth * frecuencia = .001 * 50 = .05 = 5%
Ahora, juegue con su servo particular y luego encuentre los DutyCycles específicos que
conducen a las posiciones completamente izquierda y derecha. Para mi servo, encuentro
que la izquierda completa está en DutyCycle = 2, y la derecha completa está en DutyCycle
= 12. Con estos valores, puedo crear una ecuación lineal que me dará cualquier ángulo
que desee entre 0 y 180. Esto hará que el Raspberry Pi se comporte mucho más como la
operación simple e intuitiva del Arduino.
Para hacer la ecuación lineal necesito dos puntos. Bueno, sé que para un ángulo deseado
de 0, debería aplicar un DutyCycle de 2. Este sería el punto (0,2). Ahora también sé que
para un ángulo deseado de 180, debería aplicar un DutyCycle de 12. Este sería el punto
(180,12). Ahora tenemos dos puntos y podemos calcular la ecuación de la línea.
(Recuerde, juegue con su servo... Sus números pueden ser ligeramente diferentes a los
míos, pero la siguiente metodología funcionará si usa sus dos puntos)
y-y1 = m (x-x1)
y = 1/18 * x + 2
pwm.ChangeDutyCycle (DutyCycle)
Espero que esto tenga sentido. Mire el video mientras lo paso cuidadosamente. Si el
comentario anterior no tiene sentido, es de esperar que el video aclare las cosas.