User manual
RP6 ROBOT SYSTEM - 4. Programmierung des RP6
bremst. Der Roboter beschleunigt und bremst also absichtlich so langsam. Man kann
die Bewegung mit einer Taste auch abrupt stoppen – dann bremst der Roboter sofort
ab und kommt (ohne besonders viel Last jedenfalls und abhängig von der Geschwin-
digkeit) innerhalb von etwa ein bis zwei Zentimetern zum Stehen.
Der RC5 Empfang kann natürlich noch für viele andere Dinge verwendet werden – z.B.
verschiedene Programme starten, Verhaltensweisen beeinflussen, Regelungsparame-
ter der Geschwindigkeitsregelung verändern etc. pp..
Es wäre auch möglich über die Adressierung mehrere Roboter mit einer einzigen uni-
versal Fernbedienung zu steuern (die haben meist mehrere Wahltasten für die ver-
schiedenen Geräte – die muss man so programmieren, dass sie alle im RC5 Code sen-
den und unterschiedliche Adressen haben – sofern das mit der jeweiligen Fernbedie-
nung möglich ist).
Beispiel 16: I²C Bus Interface – Master Modus
Verzeichnis: <RP6Examples>\RP6BaseExamples\Example_I2C_MASTER_01\
Datei: RP6Base_I2C_MASTER_01.c
Dieses Programm demonstriert wie man den Master Modus des I²C Busses verwenden
kann. Man benötigt natürlich einen passenden Slave der am I²C Bus angeschlossen
ist. Wie man diesen ansteuert, variiert von Slave zu Slave.
In diesem Beispiel wird mit 8 LEDs ein kleines „Knight Rider“ Lauflicht realisiert. Die
LEDs sind an einen PCF8574 angeschlossen. Der PCF8574 ist ein gängiger 8-Bit Port-
expander mit I²C Interface. Man kann einen PCF8574 z.B. auf eine der Experimentier
Erweiterungsplatinen löten (oder erstmal zum Testen auf einem Steckbrett aufbauen)
und schon hat man 8 freie I/O Ports mit denen man digitale Sensoren auswerten und
über externe Transistoren oder Treiberbausteine auch Lasten schalten kann. LEDs und
andere sehr kleine Verbraucher kann man direkt anschließen.
Ein sehr praktischer Chip also! Man kann auch mehrere davon verwenden – dann
muss man nur die Adresse des Chips mit den drei Adresspins verändern bzw. bei
mehr als 8 Portexpandern zusätzlich den PCF8574A verwenden – der hat einen ande-
ren Adressraum, und so kann man theoretisch je 8 dieser beiden ICs, also 16*8 = 128
I/O Port Pins am I²C Bus betreiben!
Beispiel 17: I²C Bus Interface – Master Modus
Verzeichnis: <RP6Examples>\RP6BaseExamples\Example_I2C_MASTER_02\
Datei: RP6Base_I2C_MASTER_02.c
Dieses Programm demonstriert wie man den Master Modus des I²C Busses verwenden
kann. Man benötigt natürlich einen passenden Slave der am I²C Bus angeschlossen
ist.
Jetzt kommen noch Routinen für einen PCF8591 zu unserem Programm hinzu. Dieser
Chip bietet einen 8-Bit Analog/Digital Wandler (ADC) mit 4 Kanälen und einen
Digital/Analog Wandler (DAC), mit dem man eine analoge Spannung ausgeben kann.
Der PCF8574 und der PCF8591 ergänzen sich so sehr gut. Hier können vier beliebige
Spannungen gemessen werden – in diesem Beispiel nehmen wir an, dass vier zusätzli-
che LDRs am PCF8591 angeschlossen sind (als Spannungsteiler geschaltet!). Das ist
aber eher nebensächlich – es könnten auch genausogut vier GP2D120 IR Abstands-
sensoren von Sharp, oder Temperatursensoren oder etwas ganz anderes sein.
Einziger Nachteil dieser beiden ICs ist natürlich, dass die Auswertung über den I²C
Bus relativ viel Zeit in Anspruch nimmt. Die beiden ICs sind daher nur für einfache
Aufgaben gedacht. Wenn man auf sehr schnelle Auswertung und Steuerung angewie-
sen ist, kommt man um einen weiteren Mikrocontroller meist nicht herum. Das ist
- 123 -