14 class remoteControlMotor(packedCom.packedCom):
16 """ Initialisieren der Klasse. """
23 packedCom.packedCom.__init__(self, 0xa6,
"bb")
28 def getAsString(self):
29 """ Konvertiert die aktuellen Daten in einen String """
33 data = [ self.left, self.right ]
35 return super(remoteControlMotor, self).getAsString(data)
37 class remoteControlTwist(packedCom.packedCom):
39 """ Initialisieren der Klasse. """
46 packedCom.packedCom.__init__(self, 0xa5,
"hh")
51 def getAsString(self):
52 """ Konvertiert die aktuellen Daten in einen String """
56 data = [ self.linear, self.angular ]
58 return super(remoteControlTwist, self).getAsString(data)
62 Programm zum Testen der Fernsteuer-Funktionen.
64 Zugehöriges Mikrocontroller Programm ist examples/remoteControl.c
65 Wird dieses Programm auf dem Roboter ausgeführt, kann über das Python
66 Skript eine Kommunikation etabliert werden.
68 Dieses Python Skript benötigt das vereinfachte packedCom-Modul unter
69 tools/python/packedCom.py
71 Das Programm kann mit Strg-C abgebrochen werden.
81 comport = packedCom.comPort()
85 stdin_oldattr = termios.tcgetattr(sys.stdin)
87 tty.setcbreak(sys.stdin)
105 twist = remoteControlTwist()
106 motor = remoteControlMotor()
114 if (sys.stdin
in select.select([sys.stdin], [], [], 0)[0]):
116 c = sys.stdin.read(1)
126 if (c
in [
'w',
'8']):
131 elif (c
in [
's',
'2']):
137 elif (c
in [
'a',
'4']):
142 elif (c
in [
'd',
'6']):
148 elif (c
in [
'q',
'7']):
152 elif (c
in [
'e',
'9']):
157 elif (c
in [
' ',
'5']):
163 print "ungültiges Zeichen"
169 comport.write(twist.getAsString())
170 comport.write(motor.getAsString())
171 print "motor(", motor.left,
", ", motor.right,
");", \
172 "\t twist(", twist.linear,
", ", twist.angular,
");"
176 termios.tcsetattr(sys.stdin, termios.TCSANOW, stdin_oldattr)