Control de servo con Raspberry Pi


 

A continuación se va a explicar como controlar servos de 180° y 360° con una Raspberry Pi.

Para reducir la fluctuación del servo, se usó el controlador de pines pigpio en lugar del controlador RPi.GPIO predeterminado (pigpio usa muestreo DMA para una sincronización de borde mucho más precisa)

Materiales:

  • 1 servo de 180°
  • 1 servo de 360°
  • 1 raspberry pi (la que se utilizó para este tutorial es la 4B)
Pasos a seguir:
1. Cambiar pines de fábrica, hay varios métodos como se muestra aquí pero en este caso se ha hecho de la siguiente manera:
    1.1 Se debe escribir en la terminal "sudo pigpiod " y presionar enter.

    1.2 Tener en cuenta que con este método esto se debe de hacer cada vez que se reinicie la raspberry pi.  

Figura 1. Cambio de pines de fábrica.
2. Programación en python para servo 180

    from gpiozero import AngularServo
    from time import sleep 
    from gpiozero.pins.pigpio import PiGPIOFactory
    factory = PiGPIOFactory()

    servo180 = AngularServo(12, min_pulse_width=0.5/1000, max_pulse_width=2.3/1000,       pin_factory=factory)

    for i in range(-90, 90, 10):
        print(i)
        servo180.angle = i
        sleep(1)

    servo180.angle = 0

3. Programación en python para servo 360

    from gpiozero import AngularServo
    from time import sleep 
    from gpiozero.pins.pigpio import PiGPIOFactory
    factory = PiGPIOFactory()

    servo360 = AngularServo(13, min_pulse_width=0.5/1000, max_pulse_width=2.5/1000,        pin_factory=factory)

    for i in range(-90, 90):
        print(i)
        servo360.angle = i
        sleep(1)

    servo360.angle = 42

Diagrama de conexiones:

Figura 2. Diagrama de conexiones.

Video :



Referencias:
  • https://gpiozero.readthedocs.io/en/stable/api_output.html
  • https://es.pinout.xyz/pinout/pin1_alimentacion_3v3

Comentarios

Entradas populares