Control de servo y cámara con control PS4 en Raspberry Pi
A continuación se presentará como realizar el Control de servo y cámara con control PS4 en Raspberry Pi, uniendo el código del blog 1 (Control de servo con Raspberry Pi) y blog 2 (Como conectar control de PS4 con Raspberry Pi), además; se agregará una cámara lo cual va a ser controlada con el movimiento de los servos.
Materiales:
- Los utilizados en los blogs 1 y 2
- 1 cámara para Raspberry Pi, en nuestro caso se utilizó la rev 1.3 de 5MP
Pasos a seguir:
1. Tener habilitado el uso de la cámara en la raspberry.
1.1. En la terminal ejecutar el siguiente código "sudo raspi-config"
1.2. Seleccionar "Interface Options"
1.3. Luego seleccionar la opción I1 y habilitarla.
2.Progama en python
from pyPS4Controller.controller import Controller
import picamera
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)
servo360 = AngularServo(13, min_pulse_width=0.5/1000, max_pulse_width=2.5/1000, pin_factory=factory)
servo360.angle = 42
servo180.angle = 0
angulo = 0
picamera.PiCamera ().start_preview()
class MyController(Controller):
def __init__(self, **kwargs):
Controller.__init__(self, **kwargs)
def on_down_arrow_press(self):
global angulo
if angulo < 90:
angulo = angulo + 10
servo180.angle = angulo
def on_up_arrow_press(self):
global angulo
if angulo > -90:
angulo = angulo - 10
servo180.angle = angulo
def on_right_arrow_press(self):
servo360.angle = 90
sleep(0.2)
servo360.angle = 42
def on_left_arrow_press(self):
servo360.angle = -90
sleep(0.2)
servo360.angle = 42
controller = MyController(interface="/dev/input/js0", connecting_using_ds4drv=False)
# you can start listening before controller is paired, as long as you pair it within the timeout window
controller.listen(timeout=60)
Diagrama de conexiones:
Video:
Referencias:
- https://picamera.readthedocs.io/en/release-1.13/recipes1.html
Comentarios
Publicar un comentario