Raspberry Pi – Aansturen Servo (SG-90) met game stuur (USB)

Hardware

game-wheel-iconplus icon blauwServo SG90

Met dit voorbeeld laat ik zien hoe je met apparatuur via de USB poort (bijvoorbeeld een game stuur) de GPIO pinnen aanstuurt (bijvoorbeeld een mini servo SG-90) op de Raspberry Pi in een python script.raspberry pi logo

We combineren hier eigenlijk 2 scripts:
1) Raspberry Pi – Joystick of controller gebruiken via USB (python)
2) Raspberry Pi – Mini Servo SG-90 aansturen via GPIO (python)

Hoe werkt het?

We lezen de AS (x) van het stuur (of joystick, controller) uit met de python bibliotheek PyGame, dit is een (float) getal van -1 tot 1 (verschil is 2), de servo is aan te sturen via de GPIO pinnen met PWM op 50 Hz en een duty-cycle tussen de 2.5 en 11 met de python bibliotheek Rpi.GPIO.

Met een handige functie

Wat heb je nodig?

1) Python RPi.GPIO bibliotheek (standaard geïnstalleerd op de wheezy image)
1) Python PyGame bibliotheek (standaard geïnstalleerd op de wheezy image)

Aansluiten op de Raspberry Pi

Sluit de SG-90 servo aan zoals aangegeven op onderstaand schema:

raspberry pi mini servo sg-90 schema

Raspberry Pi pin:Draadkleur SG-90:
Pin 1 (+ 3.3V)Rood
Pin 6 (GND)Bruin
Pin 7Oranje

Script

Onderstaand script laat de servo tussen 90 en -90 graden draaien aan de hand van het stuur op de USB poort, er zijn commentaarregels toegevoegd om e.e.a. toe te lichten.

Maak een bestand aan, bijvoorbeeld /usr/src/servostuur.py (evt onder root, en vergeet niet chmod te gebruiken om het bestand uit te kunnen voeren), voeg deze inhoud daar in toe:

Start het script met:  sudo python /usr/src/servo.py , druk op CTRL+C om het script te stoppen!

De servo zal nu draaien als je aan het stuur draait!

Dit is de output van de console:

raspberry pi servo sg-90 en game stuur console output

Dit zijn de knoppen en assen van uit PyGame:

PC-SideWinder-Force-Feedback-Wheel pygame