Skip to content

dcs-ink/raspberry_servo_controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

raspberry_servo_controller

output4

Control a servo connected to a Raspberry Pi using an Xbox controller. Easy setup for testing.

Parts list:

  • raspberry pi 4

  • xbox controller

  • power bank

  • breadboard

  • 100 µF capacitor

  • servo

  • jumper wires

    Diagram

    wire_diagram

Instructions

  1. Prep Raspberry Pi (I used Raspberry OS Lite but I imagine most OS's should work)

  2. Install dependancies

    sudo apt-get install -y evtest evdev
    
  3. Pair controller

    bluetoothctl
    scan on
    pair XX:XX:XX:XX:XX:XX
    trust XX:XX:XX:XX:XX:XX
    connect XX:XX:XX:XX:XX:XX
    

    Make note of the ID; eventX

  4. Look at controller output

    sudo evtest /dev/input/eventX
    
  5. Create python script

    vim ServoController.py
    

    copy paste (be sure to change 'eventX' to your controller id

    import evdev
    import RPi.GPIO as GPIO
    import time
     
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(11,GPIO.OUT)
    servo = GPIO.PWM(11,50)
    servo.start(0)
     
    controllerInput = evdev.InputDevice("/dev/input/event0")
     
     for event in controllerInput.read_loop():
       if event.type == evdev.ecodes.EV_ABS:
         if event.code == evdev.ecodes.ABS_X:
           angle = 2 + (event.value / 6553.5)
           servo.ChangeDutyCycle(angle)
           print(angle)
    
  6. Run script

    python3 ServoController.py
    

Thanks to Berardinux for the code and guide! XboxController_Servo_RaspberryPi
https://youtu.be/3Z6Bf0uV7tc?si=rzX2nBYM4o1anVEc

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages