Servosteuerung mit Raspberry Pi über I2C

Dieser Beitrag beschreibt die Ansteuerung von Modellbauservos durch den Raspberry Pi über den I2C-Bus. Hierbei wird, wie auch im vorherigen Beitrag, ein PiKoder/SSC PRO als I2C Slave eingesetzt, der die präzise Erzeugung der Impulse zur Servoansteuerung übernimmt.

Die erforderlichen Verbindungen zwischen dem Raspberry Pi und und dem PiKoder/SSC PRO sind im nachfolgenden Bild dargestellt. Der Raspberry Pi übernimmt die Spannungsversorgung.

Belegung Connector Raspberry Pi

Die Ansteuerung der Servos erfolgt über Python-Programme (Version 2.x). Das folgende Beispiel zeigt den prinzipiellen Ablauf:

# Control of RC servos by I2C with PiKoder/SSC PRO
#
# Please refer to www.pikoder.com for more information #
# Imports
import smbus, os
import time
import subprocess
#
# Init variables
ServoPosition = 0
ReturnCode = 0
bus = smbus.SMBus(1)
#
# Main Loop
while 1:
    try:
        bus.write_byte_data(0x40,0x1,ServoPosition)
        ReturnCode = 0
        ServoPosition = (ServoPosition + 20) % 255
    except IOError as err:
        ReturnCode = err.errno
        subprocess.call('i2cdetect','-y','1') print ("Servo position: ", ServoPosition, " - Return code: ", ReturnCode)
    time.sleep(1)

Weitere Informationen zum PiKoder/SSC PRO wie ein ausführliches USER’s Manual und Schaltungsvorschläge finden Sie auf der PiKoder/SSC PRO Webseite.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.