Praxisprojekt - HS-OWL

Transcription

Praxisprojekt - HS-OWL
Hochschule Ostwestfalen-Lippe
Fachbereich Elektrotechnik und Technische Informatik
Schriftlicher Bericht über das Praxisprojekt
des Herrn
Daniel Klose
Matr.-Nr.: 1522 2039
gemäß Bachelorprüfungsordnung für den Studiengang Elektrotechnik
in der Fassung der Bekanntmachung
vom 30. September 2008
(Verkündungsblatt der Hochschule 2008/Nr. 16).
Thema:
Hardwareerweiterung für einen mobilen Roboter
Prüfer/-in:
Prof. Dr.-Ing. Rolf Hausdörfer
Der Bericht umfasst 27 Seiten.
Erklärung
II
Ich erkläre, dass ich das vorliegende Praxisprojekt selbstständig angefertigt habe. Zur
Anfertigung des Praxisprojektes benutzte ich keine anderen als die angegebenen
Quellen und Hilfsmittel.
Die Ausfertigung als CD-ROM liegt bei.
Lemgo, den 26.07.2012
___________________________________
(Unterschrift des Autors)
Praxisprojekt
SS12
Daniel Klose
Inhaltsverzeichnis
III
Inhaltsverzeichnis
Tabellenverzeichnis ................................................................................................... V
Abbildungsverzeichnis............................................................................................. VI
Abkürzungsverzeichnis ..........................................................................................VII
1 Einleitung..................................................................................................................1
2 Sensoren ....................................................................................................................2
2.1 Distanzsensoren ...................................................................................................2
2.2 Positionssensor ....................................................................................................5
2.3 Kanten-/Liniensensoren ......................................................................................8
2.4 Klappensensor .....................................................................................................9
2.5 Lichtschranke ......................................................................................................9
2.6 Radencoder ..........................................................................................................9
2.7 Lichtsensoren ....................................................................................................10
3 Hardwareerweiterungen .......................................................................................11
3.1 Schaltungsänderungen und Funktionen ............................................................11
3.1.1 Integration des 68HCS12 Controllers ........................................................11
3.1.2 Servo-Antrieb .............................................................................................13
3.1.3 Betriebsspannung der Schaltung ................................................................15
3.1.4 Empfänger der Fernbedienung ...................................................................16
3.1.5 Sonstige Änderungen ................................................................................18
3.2 Platinenmodellierung und Realisierung ............................................................20
3.2.1 Hauptplatine ...............................................................................................20
3.2.2 Linien-/Positionssensor Platine ..................................................................21
4 Mechanik ................................................................................................................23
4.1 Akkuhalterung ...................................................................................................23
4.2 Transportklappe .................................................................................................24
5 Zusammenfassung .................................................................................................26
6 Ausblick ..................................................................................................................27
7 Danksagung ............................................................................................................28
Praxisprojekt
SS12
Daniel Klose
Inhaltsverzeichnis
IV
8 Anhang ....................................................................................................................29
A
Register des ACX-1001 ..................................................................................29
B
Portbelegung 68HCS12...................................................................................31
C
Schaltplan Hauptplatine ..................................................................................33
D
Schaltplan Linien-/Positionssensorplatine ......................................................34
E
Stückliste Hautplatine .....................................................................................35
F
Stückliste Linien-/Positionssensorplatine .......................................................36
G
Layout und Bestückung der Hautplatine .........................................................37
H
Layout und Bestückung der Linien-/Positionssensorplatine ...........................40
I
Zeichnung der Transportklappe ......................................................................42
J
Zeichnung der Akkuhalterung ........................................................................44
K
E-Mail Schriftverkehr mit der Firma PixArt...................................................45
Literaturverzeichnis .................................................................................................46
Praxisprojekt
SS12
Daniel Klose
Tabellenverzeichnis
V
Tabellenverzeichnis
Tabelle 1: Vergleich der zur Auswahl stehenden Lasermäuse .....................................5
Tabelle 2: Pinbelegung des ACX-1001 ........................................................................6
Tabelle 3: Vergleich des 68HCS12 mit dem Atmel Controller ..................................11
Praxisprojekt
SS12
Daniel Klose
Abbildungsverzeichnis
VI
Abbildungsverzeichnis
Abbildung 1: Übersicht der Sensoren auf dem Roboter der c’t ....................................2
Abbildung 2: Distanz/Ausgangsspannung Kennlinie des GP2Y0A21YK ...................3
Abbildung 3: Ausgang eines Distanzsensors im Vergleich ..........................................4
Abbildung 4: Übertragungsprotokoll ............................................................................7
Abbildung 5: Ausschnitt einer Übertragung .................................................................7
Abbildung 6: Sensorplatinen ........................................................................................8
Abbildung 7: Schaltplanverbindungen zum 68HCS12 ...............................................12
Abbildung 8: Fehlersignalerzeugung für den Servo-Antrieb im Originalschaltplan ..13
Abbildung 9: Fehlersignalerzeugung für den Servo-Antrieb im neuen Schaltplan ....14
Abbildung 10: Pulsdiagramm einer Servo-Ansteuerung ............................................15
Abbildung 11: Beschaltung des TSOP34836 mit RC-Tiefpass ..................................16
Abbildung 12: Signaldemodulation des Empfängers (TSOP34836) ..........................17
Abbildung 13: Beschaltung der roten LED ................................................................19
Abbildung 14: Neu erstellte Hauptplatine ..................................................................21
Abbildung 15: Ober- und Unteransicht der neuen Positionssensorplatine .................22
Abbildung 16: ACX-1001 Positionssensor im Roboter .............................................22
Abbildung 17: Vorgesehene Befestigung der Akkufächer .........................................23
Abbildung 18: Neue Befestigung der Akkufächer .....................................................23
Abbildung 19: Transportklappe aus dem Erweiterungspaket .....................................24
Abbildung 20: Neue Transportklappe.........................................................................25
Abbildung 21: Überarbeiteter c’t-Bot mit 68HCS12 Controller ................................26
Praxisprojekt
SS12
Daniel Klose
Abkürzungsverzeichnis
VII
Abkürzungsverzeichnis
A
Amper
B
Byte
CAN
Controller Area Network
dpi
dots per inch
F
Farad
FET
Feldeffekttransistor
GND
Ground
h
hour
Hz
Hertz
IC
Integrated Circuit
IIC
Inter-Integrated Circuit
IR
Infrarot
LED
Light Emitting Diode
m
Meter
mil
milli-inch
MSB
Most Significant Bit
PWM
Pulsweitenmodulation
SCLK
Serial Clock
SD
Secure Digital
SDIO
Serial Data Input Output
SMD
Surface Mounted Device
SPI
Serial Peripheral Interface
TWI
Two-Wire Interface
USART
Universal Asynchronous Receiver Transmitter
V
Volt
Vcc
Versorgungsspannung
WLAN
Wireless Local Area Network
Praxisprojekt
SS12
Daniel Klose
1 Einleitung
1
1
Einleitung
Roboter übernehmen immer mehr Aufgaben für den Menschen. Arbeiten können
meist nicht nur präziser ausgeführt werden, sondern auch in erheblich kürzerer Zeit.
Damit ein Roboter das überhaupt leisten kann, muss er seine Umwelt kennen und
sich orientieren können. Ein Mensch hat dafür seine Sinnesorgane und nutzt vorzugsweise seine Augen dafür. Um dem Roboter ähnliches zu ermöglichen, werden
heute oft schon Kameras verwendet. Verschiedene Sensoren reichen aber auch schon
aus, damit sich ein Roboter zurechtfindet.
Die Zeitschrift c’t stellt in einem offenem Projekt einen Bausatz für einen kleinen
Roboter zur Verfügung, der durch seine verschiedenen Sensoren unterschiedliche
kleine Aufgaben bewältigen kann. Das „Gehirn“ des Roboters bildet ein Atmel Mikrocontroller, der durch seine Ports mit den Sensoren und Aktoren des Roboters verbunden ist. Der Roboter, der auch c’t-Bot genannt wird, kann durch weitere Bausätze
erweitert werden und erhält dadurch zusätzliche Funktionen.
Diese Arbeit beschäftigt sich mit der Hardware des mobilen Roboters der Zeitschrift
c’t, die auf einen Mikrocontroller des Typs 68HCS12 abgestimmt werden soll. Weiterhin soll die vorhandene Hardware der c’t untersucht und verbessert werden. Dabei
ist die Funktion der Sensoren zu prüfen, die bisher teilweise nur eingeschränkt nutzbar sind. Insbesondere der Positionssensor einer optischen Maus, der unterhalb des
Roboters sitzt, soll durch eine Alternative ersetzt werden. Die Hardware soll dafür
geändert und durch die Herstellung einer geeigneten Leiterplatte realisiert werden.
Dabei soll auch die noch nicht implementierte Hardware für eine Fernbedienung und
für einen Betrieb mit Akkus bzw. Batterien integriert werden.
Praxisprojekt
SS12
Daniel Klose
2 Sensoren
2
2
Sensoren
Klappensensor
(unterhalb der Platine)
Distanzsensor
Kantensensor
Lichtschranke
Radencoder
Positionssensor
Liniensensoren
Abbildung 1: Übersicht der Sensoren auf dem Roboter der c’t [1]
2.1 Distanzsensoren
Zur Erkennung von Hindernissen hat der Roboter der Zeitschrift c’t zwei nach vorn
gerichtete Sharp GP2Y0A21YK Sensoren, die durch ein gepulstes Infrarotsignal (IRSignal) den Abstand zum Hindernis ermitteln können. Die Sensoren haben einen
Messbereich von 10 cm bis 80 cm und einen Blickwinkel von ca. drei Grad. Für die
Weiterverarbeitung liefert der Sensor eine analoge Ausgangsspannung bis maximal
3,2 V. Dabei verhalten sich Ausgangsspannung und Distanz nicht proportional zueinander (siehe Abbildung 2). [2]
Praxisprojekt
SS12
Daniel Klose
2 Sensoren
3
Abbildung 2: Distanz/Ausgangsspannung Kennlinie des GP2Y0A21YK [2]
Für einen reibungslosen Betrieb müssen die Sensoren vom Träger und anderen leitenden Teilen isoliert sein. Eine Messung mit dem Multimeter bestätigt die Aussage
von [1] und [3], dass das Gehäuse des Sensors niederohmig (ca. 200 Ω) leitend ist.
Durch den direkten Kontakt mit dem Träger erreicht die Ausgangsspannung maximal
1,9 V und keinen stabilen Wert. Die Isolierung durch Polyamid-Schrauben und Polyamid-Unterlegscheiben unterbindet den Kontakt, so dass der Sensor brauchbare Werte liefert.
Um die Messwerte noch weiter zu verbessern und zu stabilisieren, ist es erforderlich
direkt am Sensor einen 100 nF Kondensator zwischen Vcc und GND zu schalten. Der
Kondensator verhindert große Spannungsspitzen am Ausgang, die durch das gepulste
IR-Signal verursacht werden. Wie in Abbildung 3 zu sehen ist, gibt es mit einem
100 nF Kondensator nur noch kleine Spannungsspitzen, die nur noch bei einer großen Auflösung auf dem Oszilloskop sichtbar sind.
Praxisprojekt
SS12
Daniel Klose
2 Sensoren
4
Abbildung 3: Ausgang eines Distanzsensors im Vergleich (Quelle: Autor)
oben: ohne Kondensatoren; unten: mit Kondensatoren
(15 cm Abstand zu einer weißen Fläche, mit 10:1 Tastkopf)
Die Sensoren können durch einen Feldeffekttransistor (FET) zu- und abgeschaltet
werden, um den Stromverbrauch zu senken, wenn die Sensoren nicht gebraucht werden. Da das IR-Signal der Sensoren gepulst ist, verursacht der Restwiderstand des
FETs (RDS) im durchgeschalteten Zustand bei jedem Puls einen kurzen Einbruch in
der Versorgungsspannung der Sensoren, was ebenfalls die Messwerte beeinflusst.
Ein 100µF Kondensator (C8 im Schaltplan) kompensiert diese Einbrüche und verbessert dadurch die Messwerte. [3]
Praxisprojekt
SS12
Daniel Klose
2 Sensoren
5
2.2 Positionssensor
Unterhalb des Roboters befindet sich ein Positionssensor von einer optischen Computer-Maus. Über eine Serial Data Input Output (SDIO) Leitung gelangen die vom
Sensor erfassten X- und Y-Koordinaten zum Mikrocontroller, der diese zur Positionsbestimmung heranziehen kann. Die vorgesehene Montage des Sensors führt zu
fehlerhaften Messdaten, da der Abstand zwischen Sensor und Boden zu groß ist.
Laut Datenblatt des Sensors sollen maximal 2,5 mm zwischen Boden und der Linse
des Sensors liegen. Um in die Nähe dieses Wertes zu kommen und dadurch brauchbare Messwerte zu bekommen, empfiehlt die Zeitschrift c’t ein Tieferlegen des Sensors [4].
Eine Alternative zum Tieferlegen ist der Austausch des vorhandenen Sensors gegen
einen Sensor einer Lasermaus, der mit größeren Abständen besser zurechtkommt.
Der Kauf in kleinen Stückzahlen der Sensoren solcher Mäuse gestaltet sich schwierig, so dass der Ausbau eines Sensors aus einer Lasermaus eine naheliegende Lösung
ist. Zur Auswahl standen die zwei in Tabelle 1 gelisteten Modelle.
Logitech LS1 Laser Mouse Verbatim 49031 Laser Mouse
Preis
Sensor
Auflösung
Laser on Chip
ca. 13 €
S7550 von Avago
400 / 800 / 1200 / 1600 dpi1
ja
ca. 5 €
ACX-1001 von PixArt
800 / 1200 / 1600 dpi
nein
Tabelle 1: Vergleich der zur Auswahl stehenden Lasermäuse
Der S7550 Sensor der Logitech Maus scheint baugleich zu dem ADNS-7550 Navigationssensor von Avago zu sein. Eine genauere Analyse des S7550 ist aufgrund der
komplizierten Integration auf der Platine der Logitech Maus nicht gemacht worden.
Zudem reagiert die Logitech Maus nicht spürbar besser auf eine Erhöhung des Abstandes zur Oberfläche als eine normale optische Maus. In einem Test wird die Auflösung der Logitech Maus auf 800 dpi geschätzt [5], denn eine Veränderung der Auflösung ist nicht möglich und Logitech macht auch keine Angaben zur Auflösung der
Maus. Der ADNS-7550 Sensor hat sehr viele Einstellmöglichkeiten; u.a. kann neben
1
Angaben aus dem Datenblatt des ADNS-7550 von Avago
Praxisprojekt
SS12
Daniel Klose
2 Sensoren
6
der Auflösung auch z.B. die Laserleistung gesteuert werden. Es ist daher davon Auszugehen, dass Logitech den S7550 nur begrenzt ausnutzt.
In der Verbatim Maus steckt ein kundenspezifischer Sensor der Firma PixArt Imaging Inc. aus Taiwan. Das Verhalten bei größeren Abständen zur Oberfläche ist bei
der Maus sehr positiv, jedoch ist zu diesem Sensor kein Datenblatt zu finden. Die
Anfrage nach einem Datenblatt des Sensors bei PixArt blieb erfolglos (siehe E-Mail
im Anhang), aber durch die Datenblätter der frei verkäuflichen Sensoren von PixArt
[6] und durch die überschaubare Platine in der Maus ist es möglich die Beschaltung
und Ansteuerung zu rekonstruieren (Tabelle 2).
Pin-Nr.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Name
VSS_LD
LD
OSCOUT
OSCIN
VDDD
VSSD
VSSA
VDD
VDDA
VREF
YA
YB
XA
XB
NC
NC
NC
SCLK
SDIO
PD
Belegung2
GND
Laser Diode
Quarz Ausgang
Quarz Eingang
keine Verbindung
GND
GND
VCC = 5 V
Kondensator
Kondensator
keine Verbindung
keine Verbindung
keine Verbindung
keine Verbindung
keine Verbindung
keine Verbindung
keine Verbindung
Controller
Controller
Controller
Beschreibung
Laser Diode Masse
Laser Diode Steuerung
Quarz Ausgang
Quarz Eingang
Digitale Masse
Analoge Masse
5 V Versorgungsspannung
3,3 V Versorgungsspannung
Analoge Spannungsreferenz
YA Quadratur Ausgang
YB Quadratur Ausgang
XA Quadratur Ausgang
XB Quadratur Ausgang
Takt für serielle Schnittstelle
Serielle Schnittstelle, bidirektional
Power Down Pin, aktiv High
Tabelle 2: Pinbelegung des ACX-1001
Neben der einfachen Beschaltung (siehe Schaltplan im Anhang) ist die Ansteuerung
der bidirektionalen Schnittstelle sehr ähnlich wie bei dem von der c’t vorgesehenen
Sensor. Durch Zugriff auf verschiedene Register3 kann die veränderte Position der
X- und Y-Achse ausgelesen werden und auch Einstellungen wie die Auflösung ver-
2
3
Anschluss auf der Platine in der Verbatim Maus
Register des ACX-1001 können im Anhang eingesehen werden
Praxisprojekt
SS12
Daniel Klose
2 Sensoren
7
ändert werden. Daher gibt es bei der Nutzung der Schnittstelle zwei Möglichkeiten
der Übertragung:
•
„Schreib-Operation“
•
„Lese-Operation“
Der Sensor erkennt den Unterschied zwischen „Schreiben“ und „Lesen“ durch das
Most Significant Bit (MSB), also dem höchstwertigen Bit, des ersten Bytes der Übertragung. Für eine „Schreib-Operation“ ist das MSB „1“ und für eine „LeseOperation“ ist das MSB „0“ zu setzen. Die restlichen sieben Bits enthalten die Adresse des Registers auf welches zugegegriffen werden soll. Das zweite Byte der
Übertragung enthält die entsprechenden Daten des Registers. Das erste Byte wird
also bei jeder Übertragung immer vom Controller zum Sensor geschickt. [6]
Abbildung 4: Übertragungsprotokoll [6]
Die Übertragung der einzelnen Bits erfolgt synchron zum Takt (SCLK). Bei fallender Flanke des Takts wird das Datenbit geändert und bei steigender Flanke wird das
Datenbit übernommen. Das High-Signal des Takts muss für eine fehlerfreie Bitübertragung mindestens 3 µs bestehen (siehe Abbildung 5).
Abbildung 5: Ausschnitt einer Übertragung [6]
Neben der seriellen Schnittstelle des ACX-1001 können die Positionswerte auch aus
den vier Quadratur-Pins ermittelt werden. Jedoch sind die vier nötigen Leitungen
zum Mikrocontroller und das Auslesen der Werte weitaus aufwändiger als das Nutzen der seriellen Schnittstelle. Eine dritte Leitung, neben denen für SDIO und SCLK,
ist dennoch nötig, da die externe Laser-LED eine 3,3 V Spannungsquelle benötigt.
Praxisprojekt
SS12
Daniel Klose
2 Sensoren
8
Der Spannungsregler LM2937/3,3V, der der Laser-LED mit bis zu 0,5 A genügend
Strom liefert, sitzt auf der Hauptplatine, weil kein Platz auf der kleinen Platine unterhalb des Roboters ist. Diese Platine muss für den Positionssensor neu gestaltet werden, da der ACX-1001 völlig anders beschaltet wird und ein spezielles Rastermaß
von 1,778 mm (70 mil) hat, wodurch er auf keine europäisch genormte Platine passt
(siehe 3.2.2).
2.3 Kanten-/Liniensensoren
Zur Abtastung des Bodens besitzt der Roboter Reflexionskoppler des Typs CNY70
von Vishay. Zwei dieser Sensoren sitzen an vorderster Front rechts und links auf
kleinen Sensorplatinen (Abbildung 6) und sollen verhindern, dass der Roboter über
einen Abgrund fährt. Zwei Weitere sitzen mittig nebeneinander auf der kleinen Platine unter dem Roboter und sollen die Linienfahrt ermöglichen. Der CNY70 Sensor
sendet ähnlich wie der Distanzsensor ein IR-Signal und fängt die Reflexion durch
einen Fototransistor wieder ein. Die Stärke der Reflexion entscheidet über die
Collector-Spannung am Ausgang. Die Reichweite des CNY70 ist sehr gering, so dass
der Abstand der Kantensensoren zum Untergrund mit 12 mm schon sehr groß ist,
aber noch ausreicht, um die Aufgabe des Sensors zu erfüllen. Da der CNY70 nur die
Reflexion seines IR-Signals erfasst, sind die Reflexionseigenschaften des Untergrundes ausschlaggebend für die analoge Ausgangsspannung und nicht der wirkliche Abstand. Dadurch kann dieser Sensor auch genutzt werden, um das Folgen einer Linie
des Roboters zu ermöglichen. [7]
Abbildung 6: Sensorplatinen [1]
Praxisprojekt
SS12
Daniel Klose
2 Sensoren
9
2.4 Klappensensor
Für die Transportklappe des Roboters existiert ein weiterer CNY70 Reflexionskoppler, der erkennt, ob die Transportklappe geschlossen oder geöffnet ist. Im Gegensatz
zu den anderen CNY70 Sensoren fungiert der Klappensensor als digitaler Schalter.
Auf der von der c’t bereitgestellten Hauptplatine sitzt der Sensor nach unten gerichtet, um den „D“-förmigen Träger der Klappe zu erkennen. Durch die Neugestaltung
der Klappe (siehe 4.2) sitzt der Sensor nicht mehr unter der Hauptplatine, sondern ist
am vorderen rechten Träger montiert. Bei geöffneter Klappe liegt Low-Pegel am
entsprechenden Port des Mikrocontrollers und bei geschlossener Klappe ein HighSignal.
2.5 Lichtschranke
In der vorderen Aussparung des Roboters, die als Transportfach dient, sitzt im hinteren Bereich eine Lichtschranke, die unterbrochen wird, sobald sich ein Gegenstand in
dem Fach befindet. Die Lichtschranke besteht aus einer IR-Diode des Typs LD274-3,
die einen geringen Abstrahlwinkel besitzt, und dem Empfänger IS471F, die sich gegenüber liegend jeweils auf einer Sensorplatine an den vorderen beiden Trägern befinden (siehe Abbildung 6). Bei einem ersten Test des Roboters ist kein Signal beim
Mikrocontroller angekommen, da der Empfänger falsch herum aufgelötet war. Der
IS471F steuert das IR-Signal (Wellenlänge 950 nm) der Diode und empfängt es mit
der leicht gespiegelten Fläche.
2.6 Radencoder
Ebenfalls auf den kleinen Sensorplatinen (Abbildung 6) sitzen weitere CNY70 Reflexionskoppler, die die Räder des Roboters beobachten. Auf der Räderinnenseite ist
eine Scheibe mit gleichgroßen Aussparungen am Rand geklebt, die der CNY70 erkennt und in ein elektrisches Signal umwandelt. Durch einen Schmitt-Trigger wird
ein digitales Signal daraus, welches der Mikrocontroller durch eine Flankenerkennung auswerten kann. Dadurch kann die Geschwindigkeit beider Räder ermittelt
werden und diese miteinander abgeglichen werden. Wichtig ist, dass die Sensoren
Praxisprojekt
SS12
Daniel Klose
2 Sensoren
10
passend auf die Aussparung zeigen. Aus diesem Grund ist eine Nachjustierung der
Sensoren notwendig gewesen, ohne die es oft zu fehlerhaften Daten gekommen ist.
2.7 Lichtsensoren
Direkt vorne auf der Platine befinden sich zwei Fotowiderstände, die durch einen
Spannungsteiler analoge Werte entsprechend der Helligkeit dem Mikrocontroller zur
Verfügung stellen. Die Fotowiderstände vom Typ MPY54C569 haben ihr Empfindlichkeitsmaximum bei einer Wellenlänge von 550 nm und ihre Werte bewegen sich
zwischen ca. 500 Ω (hell) und ca. 50 kΩ (dunkel).
Praxisprojekt
SS12
Daniel Klose
3 Hardwareerweiterung
3
11
Hardwareerweiterungen
Im Zuge der Überarbeitung der Sensoren sowie der Steuerung durch einen 68HCS12
Controller ist eine neue Schaltung für die Hauptplatine und die Platine für die Liniensensoren und den Positionssensor unterhalb des Roboters entstanden. Außerdem
fallen einige Schaltungsteile, wie die Ansteuerung von verschiedenen LEDs und die
für ein Display, weg, da diese Funktionen keine Verwendung finden. Desweiteren
hat die Originalschaltung der c’t einige Mängel und bedarf einer Überarbeitung. Im
Folgenden werden die Schaltungsänderungen, die vorgenommen werden, erklärt und
deren Umsetzung in ein neues Platinenlayout beschrieben.
3.1 Schaltungsänderungen und Funktionen
3.1.1 Integration des 68HCS12 Controllers
Für die Steuerung des mobilen Roboters der Zeitschrift c’t ist ein 8-Bit Controller
von Atmel vorgesehen. Dieser sehr kompakte Controller wird bei diesem Projekt
durch den leistungsstärkeren 68HCS12 ersetzt, der sich auf einem sogenannten
CardS12 Modul befindet und durch einfaches Aufstecken in eine Schaltung integriert
werden kann.
Typ
Prozessoren
Flashspeicher
EEPROM
Takt
RAM
I/O Anschlüsse
Peripherie
Atmel AVR
ATmega32
8-Bit
32 kB
1 kB
16 MHz
2 kB
32
- 2×8-Bit Timer
- 1×16-Bit Timer
- 4×PWM
- 8-Kanal 10-Bit A/D U.
- 1×SPI
- 1×TWI
- 1×USART
Freescale 68HCS12
MCU MC9S12DP512
16-Bit
512 kB
4 kB
16 MHz (bis zu 25 MHz über PLL)
14 kB
87
- 8×16-Bit Timer
- 8×PWM
- 16-Kanal 10-Bit A/D Umsetzer
- 3×SPI
- 1×IIC
- 2×SCI
- 5×msCAN-Module
Tabelle 3: Vergleich des 68HCS12 mit dem Atmel Controller [8][9]
Praxisprojekt
SS12
Daniel Klose
3 Hardwareerweiterung
12
Die Leistungssteigerung durch den 68HCS12 hat zur Folge, dass der Stromverbrauch
steigt und die Laufzeit des Roboters mit Akkus/Batterien, die bei Nutzung von
2300 mAh Akkus/Batterien und dem Atmel Mikrocontroller mit 9 Stunden von der
c’t angegeben wird [10], verkürzt wird. In einem Test der neuen Schaltung mit dem
68HCS12 ist mit 2500 mAh Akkus eine Laufzeit von über 3 Stunden erreicht worden. Dabei ist die Schaltung jedoch auch dauerhaft einer großen Belastung ausgesetzt
worden, so dass in einem ruhigeren Betrieb von einer längeren Laufzeit ausgegangen
werden kann. Auch wenn der Stromverbrauch gegen den 68HCS12 spricht, hat der
Controller sonst viele Vorteile gegenüber dem Atmel Controller. Während der Atmel
Controller mit vier Ports begrenzte Möglichkeiten hat und sich dadurch mittels drei
Schieberegister in der Schaltung behelfen muss, kommt der 68HCS12 auf dem
CardS12 Modul ohne Schieberegister aus und kann dank seiner 12 Ports die unterschiedlichsten Aufgaben übernehmen. Neben digitalen Ein- und Ausgängen benötigt
die
Steuerung
für
den
mobilen
Roboter
auch
analoge
Eingänge
und
Pulsweitenmodulationen (PWM). Die Ports sind nach ihrer Funktion ausgewählt
worden. Alle FETs werden beispielsweise über Port A geschaltet und Port B agiert
nur als digitaler Eingang. Eine Auflistung aller Portzuweisungen befindet sich im
Anhang oder kann im Schaltplan durch die Verbinder J2 und J3 (siehe Abbildung 7)
entnommen werden, auf die das CardS12 Modul gesteckt wird.
Abbildung 7: Schaltplanverbindungen zum 68HCS12
(siehe Schaltplan im Anhang)
Praxisprojekt
SS12
Daniel Klose
3 Hardwareerweiterung
13
3.1.2 Servo-Antrieb
In einem Erweiterungspacket der Zeitschrift c’t kann dem mobilen Roboter ein
Servo-Antrieb (Robbe-Futaba S3107) hinzugefügt werden, der eine Transportklappe
betätigen soll. Ein Servo-Antrieb soll nicht mit der gleichen Versorgungsspannung
wie der Mikrocontroller betrieben werden, da es sonst durch verursachte Störungen
zum Absturz des Mikrocontrollers kommen kann [11]. Daher wird der Antrieb direkt
von der Betriebsspannung des Netzteils oder der Batterien/Akkus versorgt. Um ein
Festsitzen der Transportklappe zu verhindern, ist ein 6,8 Ω Widerstand vorgeschaltet,
der die Stromaufnahme des Antriebs überwacht und über eine Komperatorschaltung
eine Fehlermeldung bei zu hoher Stromaufnahme an den Mikrocontroller gibt. Die
Fehlermeldung wird jedoch mit einem Fehlersignal für eine zu niedrige Betriebsspannung, die durch Entladung der Batterien/Akkus verursacht wird, durch eine Disjunktion verbunden, wodurch der Mikrocontroller keine genaue Aussage über den
Fehler erhält. Des Weiteren ist die Fehlermeldung für die Stromaufnahme des ServoAntriebs stark von der Betriebsspannung abhängig, so dass mit der zeitlichen Entladung der Batterien/Akkus das Fehlersignal bei immer geringeren Strömen anliegt.
Abbildung 8: Fehlersignalerzeugung für den Servo-Antrieb
im Originalschaltplan [12]
Für die Betriebsspannung sind nach [10] nicht viel mehr als 6 V vorgesehen und es
wird deshalb empfohlen ein 6 V-Netzteil zu verwenden bzw. fünf Akkus (5×1,2 V)
oder nur vier Batterien (4×1,5 V), um die Motoren und auch den Servo-Antrieb nicht
zu überlasten. Um das zu umgehen, gibt es bei der neuen Schaltung einen eigenen
Spannungsregler (LM2940) für den Servo-Antrieb, dessen Nennspannung bei 4,8 V
Praxisprojekt
SS12
Daniel Klose
3 Hardwareerweiterung
14
liegt. Mit bis zu 1 A stellt der Spannungsregler mehr als ausreichend Strom zur Verfügung und liefert wie der Spannungsregler der Versorgungsspannung stabile 5 V bis
etwa 5,3 V Eingangsspannung.
Der Servo-Antrieb bekommt durch den eigenen Spannungsregler konstant 5 V und
der Strom des Servo-Antriebs wird über einen sogenannten Shunt-Widerstand (R27
in Abbildung 9) gemessen. Durch die neue Beschaltung wird das Fehlersignal immer
bei einem Strom von etwa 200 mA ausgelöst und ist nicht mehr von der Betriebsspannung abhängig. Zusätzlich wird das Fehlersignal des Servo-Antriebs getrennt
von dem Fehlersignal der Batterie-/Akkuspannung ausgewertet und ist nicht mehr
durch eine Disjunktion mit dem Fehlersignal der Batterie-/Akkuspannung verbunden.
Des Weiteren ist die Belegung des Steckers angepasst worden, da die Pins für Masse
und Versorgungsspannung des Servo-Antriebs im Schaltplan der c’t vertauscht sind
[4].
Abbildung 9: Fehlersignalauswertung für den Servo-Antrieb im neuen Schaltplan
(siehe Schaltplan im Anhang)
Die Ansteuerung des Servo-Antriebs erfolgt mit einem PWM-Signal von 50 Hz, das
heißt, dass die Periode T des Signals 20 ms beträgt. Der Antrieb ist durch zwei Endanschläge begrenzt, wodurch der Antrieb einen Bewegungsradius von 180° hat.
Durch die Pulsdauer thigh bewegt sich der Servo-Antrieb in einem bestimmten Winkel
innerhalb dieser 180°, wobei thigh zwischen 1 und 2 ms liegt. Für den linken Anschlag
beträgt die Pulsdauer 1 ms, für den rechten Anschlag 2 ms und die Mittelstellung des
Antriebs ergibt sich folglich aus 1,5 ms.
Praxisprojekt
SS12
Daniel Klose
3 Hardwareerweiterung
15
Abbildung 10: Pulsdiagramm einer Servo-Ansteuerung [11]
3.1.3 Betriebsspannung der Schaltung
Durch die Neuerungen aus 3.1.2 ist eine höhere Betriebsspannung als 6 V, wie sie
bei fünf Batterien entstehen würde, für den Servo-Antrieb kein Problem mehr. Neben
dem Servo-Antrieb sind noch weitere Schaltungsteile direkt mit der Betriebsspannung verbunden und müssen auf ihre Spannungsfestigkeit überprüft werden, bevor
die Betriebsspannung auf bis zu 7,5 V erhöht werden kann. Mit einer größeren Betriebsspannung als 6 V hat der Motortreiber L293D keine Probleme und kann laut
seinem Datenblatt mit bis zu 36 V betrieben werden.
Die Getriebemotoren (Faulhaber 2619 006 SR) des Roboters haben eine Nennspannung von 6 V und werden mit einer größeren Spannung sehr belastet. Die Motoren
arbeiten mit dem Mittelwert eines PWM-Signals wie in (1) ersichtlich. [10][11] Damit die Motoren nicht überlastet werden, sollte das Tastverhältnis der PWM Ansteuerung auf 85% begrenzt werden, wenn der Roboter mit fünf Batterien (7,5 V)
oder anderen größeren Spannungsquellen betrieben wird.
∙
Praxisprojekt
∙
ä
SS12
,
(1)
Daniel Klose
3 Hardwareerweiterung
16
3.1.4 Empfänger der Fernbedienung
Der Roboter wird erst so richtig mobil, wenn er auch kabellos gesteuert und bedient
werden kann. Damit der Roboter nicht immer ein Kabel hinter sich herziehen muss,
hat die Zeitschrift c’t einen Infrarot Empfänger (TSOP34836) vorgesehen, der Signale einer Fernbedienung aufnehmen kann, die auch Fernseher oder andere Geräte
steuern kann. Der TSOP34836 Empfänger empfängt Infrarot Signale (950 nm) der
Frequenz 36 kHz und demoduliert diese in elektrische Signale, die dann von dem
Mikrocontroller ausgewertet werden können. Die Frequenz resultiert aus der Taktung
der meisten Fernbedienungen, die im Medienbereich zum Einsatz kommen. Die Beschaltung des Empfängerbausteins ist bei der neuen Schaltung um einen RC-Tiefpass
ergänzt worden, um hochfrequente Störungen in der Versorgungsspannung zu unterdrücken [13].
Abbildung 11: Beschaltung des TSOP34836 mit RC-Tiefpass
(siehe Schaltplan im Anhng)
Viele Fernbedienungen arbeiten mit dem RC5-Code, um Befehle zu verschlüsseln.
Der RC5-Code setzt sich aus 14 Bits zusammen und ist ursprünglich von der Firma
Philips entwickelt worden. Wenn eine Universalfernbedienung verwendet wird, sind
deswegen die Programmiercodes der Firma Philips meist die Richtigen. Bei der Universalfernbedienung „RC Univers29“ kann z.B. der Code „0026“ benutzt werden.
Die Entschlüsselung der einzelnen Bits erfolgt nach dem Prinzip der ManchesterCodierung, das bedeutet, dass die Flanken des Signals zur Bitbestimmung herangezogen werden.
Praxisprojekt
SS12
Daniel Klose
3 Hardwareerweiterung
17
Der RC5-Code besteht aus:
•
2 Startbits4
•
1 Togglebit
•
5 Adressbits
•
6 Kommandobits
Die Modulation für den RC5-Code von der Fernbedienung erfolgt mit einem Signal
von 36 kHz. Dieses Signal muss der Empfänger wieder demodulieren, denn diese
Infrarot-Pulse sind nicht die einzelnen Bits des RC5-Codes. Das Senden von modulierten Pulsen garantiert eine höhere Übertragungssicherheit und das Unterdrücken
von Störungen.
&'()*+,*-(
Ü
!"!# $%
./01'0+,
23
24555687
9 888,9µs
(2)
Für ein Halb-Bit werden 32 Pulse an den Empfänger geschickt, die dieser dann entsprechend in ein Low-Signal demoduliert. Für ein High-Signal kommen in dieser
Zeit (2) keine Pulse. Die Auswertung erfolgt wie erwähnt flankengesteuert, weswegen sich jedes Bit zur Hälfte aus einem High- und zur Hälfte aus einem Low-Signal
zusammensetzt. (siehe Abbildung 12) [14][15]
Infrarotpulse von der Fernbedienung
Elektrisches Signal vom Empfänger
Abbildung 12: Signaldemodulation des Empfängers (TSOP34836) [14]
4
Das zweite Startbit entwickelte sich mit der Zeit zum 7ten Kommandobit, um die Befehlsanzahl von
64 auf 128 zu erhöhen.
Praxisprojekt
SS12
Daniel Klose
3 Hardwareerweiterung
18
3.1.5 Sonstige Änderungen
Die Schaltung der Zeitschrift c’t kann an einigen Stellen verbessert werden. Ein genaueres Betrachten des Schaltplans lässt erahnen, dass die Schaltung sehr störempfindlich reagieren könnte. Bei normalem Betrieb des Roboters ist es öfters dazu gekommen, dass ohne Fremdeinwirkung Resets ausgelöst wurden. Der Grund für die
Resets liegt in Schwankungen in der Versorgungsspannung, die von ICs ausgelöst
werden. Aus diesem Grund sind einige Abblockkondensatoren in die Schaltung integriert worden, die die Versorgungsspannung stabil halten. Die 100 nF Kondensatoren
direkt am Spannungsregler L4940V5 verhindern die eigenständigen Resets der
Schaltung, aber auch vor jedem anderen IC ist jeweils ein Kondensator zwischen der
Versorgungsspannung (Vcc) und Masse (GND) eingefügt worden. Da in der Schaltung keine größeren Frequenzen vorkommen, ist die Kapazität dieser Kondensatoren
mit 100 nF erfahrungsgemäß ausreichend. [15][4]
Auch die nächste Änderung beschreibt die c’t in ihren nachträglichen Modifikationen
[4] und verhindert, dass sich die Antriebsmotoren bei jedem Reset oder auch beim
Überspielen des Programms in den Flashspeicher drehen. Die Motoren werden durch
ein PWM-Signal über den Motortreiberbaustein L293D angesteuert. Dieses Signal
wird direkt vom Mikrocontroller auf den Motortreiberbaustein gelegt. Bei einem
Reset oder auch beim Beschreiben des Flashspeichers wird der Port des Mikrocontrollers als Eingang geschaltet und der Motortreiberbaustein interpretiert dies als
wenn ein „High“-Signal anliegen würde. Die Folge ist das Drehen der Antriebsmotoren mit voller Geschwindigkeit. Damit die Motoren sich nicht drehen, müssen die
Eingänge des Motortreiberbausteins in dieser Zeit auf Masse gezogen werden. Diese
Aufgabe übernehmen Pull-Down Widerstände, die zwischen den Eingängen des Motortreiberbausteins und Masse liegen (R1 und R2 im Schaltplan). [4]
Die Schaltung enthält einen Komperator, der die Betriebsspannung überwacht und
bei zu niedriger Betriebsspannung eine Fehlermeldung an den Mikrocontroller weitergibt. Eine Zener-Diode sorgt dafür, dass an dem einen Eingang des Komperators
konstante 2,4 V liegen, während der andere Eingang über einen Spannungsteiler die
Betriebsspannung abgreift. Durch die Beschaltung wird der Ausgang des
Praxisprojekt
SS12
Daniel Klose
3 Hardwareerweiterung
19
Komperators bei etwa 5,6 V5 Betriebsspannung auf „Low“ geschaltet, so dass der
Mikrocontroller ebenfalls ein „Low“-Signal anliegen hat. Bisher ist das Signal mit
dem Fehlersignal des Servo-Antriebs durch eine Disjunktion verknüpft gewesen,
wodurch der Mikrocontroller die Signale nicht unterscheiden konnte. In dem geänderten Schaltplan werden beide Signale getrennt behandelt. Außerdem ist der Widerstand vor der Zener-Diode von 1 kΩ auf 620 Ω gesenkt worden, da sie mit dem 1 kΩ
Widerstand nicht ausreichend Strom für die Zener-Spannung erhält, wodurch die
Spannung bei lediglich 2,2 V liegt und nicht bei den geforderten 2,4 V. Das Fehlersignal ist in einem Test der neuen Hardware mit 2500 mAh Akkus 30 Minuten vor
dem Erschöpfen der Akkus ausgelöst worden. Um der Umgebung mitteilen zu können, dass die Akkus/Batterien erschöpft sind, ist eine rote LED im Schaltplan hinzugefügt worden, die über einen weiteren P-Kanal FET (BS250) geschaltet werden
kann.
Abbildung 13: Beschaltung der roten LED (siehe Schaltplan im Anhang)
Die Beschaltung des Klappensensors und der Lichtschranke des Transportfachs sind
in der Originalschaltung miteinander verflochten. Durch das Schalten des FETs für
die Aktivierung des Klappensensors wird auch die Infrarot-LED des Transportfachs
beschaltet. Auch wenn die LED erst durch die Beschaltung des Empfängers IS471F
aktiviert wird, weil der die LED steuert, ist es verwirrend und undurchschaubar. In
der überarbeiteten Version der Schaltung ist dies modifiziert worden, so dass durch
das Schalten des FETs der Klappe nur der Klappensensor aktiviert wird und durch
das Schalten des FETs der Lichtschranke die beiden Elemente der Lichtschranke
(Empfänger und IR-LED) aktiviert werden. Die Beschaltung des Empfängers der
5
Inklusive dem Spannungsabfall der Schottky-Diode SB140, die als Schutzdiode vorgeschaltet ist.
Praxisprojekt
SS12
Daniel Klose
3 Hardwareerweiterung
20
Lichtschranke ist um einen Kondensator ergänzt worden, der die Spannungsversorgung für den Empfänger stabilisieren soll [16].
3.2 Platinenmodellierung und Realisierung
3.2.1 Hauptplatine
Die neue und geänderte Schaltung der Hauptplatine ist durch ein neues
Platinenlayout realisiert worden, welches mit der Software OrCAD der Firma
Cadence erstellt worden ist. Bei der Umsetzung ist die Position einiger Bauelemente
wichtig gewesen. Die Fotowiderstände, durch die eine Lichtquelle ausgemacht werden kann, sind wie schon bei der Originalplatine an deren Front zu finden. Die Stiftleisten sind an ähnlicher Stelle symmetrisch angeordnet, damit die untere Ebene
durch die gleichen Kabel mit der Hauptplatine verbunden werden kann. Der Empfänger für die Fernsteuerung ist im hinteren Bereich platziert, wo ihn die Signale
erreichen können. Des Weiteren ist die Höhe unter dem CardS12 Modul eingeschränkt, so dass manche Bauelemente wie zum Beispiel Elektrolytkondensatoren
keinen Platz an dieser Stelle haben. Hinzu kommen noch Ausschnitte für den ServoAntrieb und die Transportklappe, die es zu beachten gibt. Letzterer Ausschnitt ist im
Vergleich zum Vorgänger kleiner geworden, was aber kein Problem im Bezug auf
die Transportklappe ist.
Das neue Layout ist mittels des Ätzverfahrens erstellt worden, welches die Leiterbahnbreite bereits auf ein Minimum von 0,4 bis 0,5 mm beschränkt. Aus diesem
Grund sind alle Leiterbahnen der Platine 0,5 mm breit, welche bei einer Kupferschicht von 35 µm bei normalen Bedingungen Stromstärken bis 2 A bewältigen können [11][15]. Durch die große Leiterbahndichte ist ein Auskommen mit einer Seite
der Platine unmöglich, wodurch einige Bahnen auf der oberen Seite geführt werden
müssen. Da für ein zweiseitiges Platinenlayout eine Verbindung zwischen der Oberseite und der Unterseite mittels Durchkontaktierungen erforderlich ist, aber kein Verfahren dafür zur Verfügung steht, sind die Verbindungen auf der oberen Seite durch
Drahtbrücken realisiert worden.
Die Form der Hauptplatine hat sich von einer runden Platine mit 120 mm Durchmesser zu einem Achteck geändert und ist etwas größer als sein Vorgänger. Für die MonPraxisprojekt
SS12
Daniel Klose
3 Hardwareerweiterung
21
tage auf den Trägern des mobilen Roboters sind zwei Polyamid-Unterlegscheiben
vorgesehen, die einen Kontakt zu den Trägern verhindern.
Abbildung 14: Neu erstellte Hauptplatine (Quelle: Autor)
3.2.2 Linien-/Positionssensor Platine
Der neue Positionssensor und die dafür erforderliche neue Schaltung erhalten ebenfalls eine neue Platine und ein neues Design. Anders als bei der originalen Platine
des Projekts, sind die Bauelemente bis auf einen Widerstand und die beiden Liniensensoren auf der oberen Seite bestückt. Letzt genannte Liniensensoren sind der
Grund für die Verwendung einer zweiseitigen Platine, bei der die Problematik der
fehlenden Möglichkeit für Durchkontaktierungen gelöst werden muss. Die Beschaltung der Liniensensoren löst dieses Problem jedoch schon fast selbst, indem vier der
sechs Stellen, an denen eine Durchkontaktierung erforderlich ist, mit Widerständen
bestückt werden, dessen Drähte die Verbindung zwischen den beiden Ebenen herstellen. Auch an den restlichen zwei Stellen ist das Problem ähnlich gelöst worden, so
dass der Kontakt zwischen den Leiterbahnen auf der Ober- und Unterseite sichergestellt ist. Wie bei der Hauptplatine sind auch hier, aufgrund des Ätzverfahrens, alle
Leiterbahnen 0,5 mm breit und können unter normalen Bedingungen bis zu 2 A aushalten [11][15].
Damit die Bauelemente auf der Oberseite bestückt werden können und die Platine
dennoch so nah wie möglich an der Grundplatte montiert werden kann, sind die Bauelemente der Schaltung so angeordnet worden, dass sie in die Aussparung der
Praxisprojekt
SS12
Daniel Klose
3 Hardwareerweiterung
22
Grundplatt passen (siehe Abbildung 15). Nur der Widerstand R4 befindet sich außerhalb dieser Aussparung und ist deswegen von unten auf die Platine bestückt worden.
Dadurch kann die Platine höher montiert werden und ist nur von zwei PolyamidUnterlegscheiben von der Grundplatte entfernt (1 mm). Die neue Bodenfreiheit von
2,5 mm kann durch Montierung der Platine mittels Senkkopfschrauben noch auf bis
zu 3,5-4 mm erhöht werden, wodurch die Liniensensoren der dem Boden am nächst
gelegene Teil des Roboters werden.
Abbildung 15: Ober- und Unteransicht der neuen Positionssensorplatine
(Quelle: Autor)
Der Positionssensor sitzt wie bei dem Vorgänger nicht in der Mitte des Roboters,
sondern auch etwas im hinteren Teil, so dass auch Rotationsbewegungen erkannt
werden können. Wie in Abbildung 16 zu erkennen ist, liefert der Positionssensor bei
dieser Bestückung bei Vorwärtsfahrt des Roboters negative Werte und in Rückwärtsrichtung positive Werte. Auch die Werte für Rechts und Links sind entgegengesetzt
eines normalen Koordinatensystems. Dies kann später durch eine Inversion der Werte in der Software angepasst werden.
Abbildung 16: ACX-1001 Positionssensor im Roboter (Ansicht von oben) [6]
Praxisprojekt
SS12
Daniel Klose
4 Mechanik
4
23
Mechanik
4.1 Akkuhalterung
Die Akkus oder auch Batterien werden in ein dreier und ein zweier Fach eingelegt
und in Reihe miteinander verbunden. Die beiden Fächer, die bisher noch nicht in den
Roboter integriert sind, sollen zwischen den Getriebemotoren mit zwei Klettverschlüssen befestigt werden (siehe Abbildung 17).
Abbildung 17: Vorgesehene Befestigung der Akkufächer [17]
Ohne die Akkus/Batterien kippt der Roboter sehr leicht nach vorne, da er das Gewicht der Akkus/Batterien für einen sicheren Stand braucht. Für die Integrierung der
Akkufächer in den überarbeiteten Roboter ist eine Halterung aus Aluminium konstruiert worden, die am hinteren Träger befestigt wird (siehe Abbildung 18). Dadurch
steht der Roboter auch ohne eingelegte Akkus/Batterien sicher und hat auch optisch
einen größeren Reiz. Die Akkufächer werden von beiden Seiten mit Senkkopfschrauben befestigt und sind damit fest mit dem Roboter verbunden. (Zeichnung der
Halterung befindet sich im Anhang)
Abbildung 18: Neue Befestigung der Akkufächer (Quelle: Autor)
Praxisprojekt
SS12
Daniel Klose
4 Mechanik
24
4.2 Transportklappe
In einem Erweiterungspaket der Zeitschrift c’t ist eine Transportklappe für den Roboter erhältlich, mit der die Aussparung verschlossen werden kann, so dass Sachen
wie z.B. einen Tischtennisball darin ohne Verlust transportiert werden können. Die
vorgesehene Transportklappe, die bisher nicht montiert ist, besteht aus einer Art „D“förmigen Träger, an dem ein rechteckiges Metallstück angebracht wird (siehe Abbildung 19). Der Sensor für die Transportklappe sitzt unterhalb der Hauptplatine und
wird beim Öffnen und Schließen vom „D“-förmigen Träger verdeckt bzw. nicht verdeckt. Ein Nachteil an dieser Konstruktion ist, dass der Stecker des rechten Abstandssensors entfernt werden muss und die Kabel direkt eingelötet werden müssen,
damit die Klappe daran vorbeikommt.
Abbildung 19: Transportklappe aus dem Erweiterungspacket [12]
Durch die Neugestaltung der Hauptplatine ist das Anbringen des Sensors schwierig,
da ein Auflöten auf der Unterseite der Platine durch das einseitige Layout nicht vorgesehen ist. Des Weiteren sitzt der Servo-Antrieb, durch den die Klappe betätigt
wird, tiefer als bei der Originalplatine, da unterhalb des CardS12 Moduls nur wenig
Platz ist. Aus diesem Grund ist eine neue Transportklappe aus Aluminium entwickelt
worden, die damit keine Probleme hat und wodurch der Stecker des Abstandssensors
nicht entfernt werden muss.
Die neue Klappe wird durch zwei Winkel hinter den vorderen Trägern gehalten und
wird mit einer vertikalen Bewegung geöffnet oder geschlossen. Die Kraft des ServoAntriebs wird mittels einer Stange und eines Hebels auf die Transportklappe übertragen. Der Sensor, der erkennt ob die Transportklappe geöffnet oder geschlossen ist,
sitzt nun seitlich auf einem Stück Lochrasterplatine und wird über Kabel mit der
Praxisprojekt
SS12
Daniel Klose
4 Mechanik
25
Hauptplatine verbunden. Da die neue Transportklappe nur ein geringes Gewicht hat,
entsteht keine Kippgefahr beim Roboter. (Zeichnung im Anhang)
Sensor
Abbildung 20: Neue Transportklappe (Quelle: Autor)
Praxisprojekt
SS12
Daniel Klose
5 Zusammenfassung
5
26
Zusammenfassung
Ziel dieses Projektes war die Funktion aller Sensoren des Roboters der c’t zu überprüfen und gegebenenfalls zu verbessern oder diese zu ersetzen. Besonders der Positionssensor einer optischen Maus sollte durch eine Alternative ersetzt werden. Außerdem sollte der Mikrocontroller des Roboters durch den leistungsstärkeren Mikrocontroller des Typs 68HCS12 ersetzt werden und die Hardware dafür verändert werden. Dabei sollte auch die bis dahin noch nicht implementierte Hardware für eine
Fernsteuerung und den Akku-Betrieb berücksichtigt und getestet werden.
Die Werte der Distanzsensoren wurden durch Isolierung des Gehäuses und durch
Kondensatoren stabilisiert und wurden deswegen auch präziser. Der Positionssensor
wurde durch einen Sensor einer Lasermaus ersetzt, wodurch der Roboter nun seine
zurückgelegte Strecke berechnen kann und seine Position kennt. Die restlichen Sensoren mussten teilweise nur besser justiert oder versetzt werden, aber hatten keine
weiteren Änderungen nötig. Der neue Mikrocontroller (68HCS12) ist durch das
CardS12 Modul und eine neue Leiterplatte integriert worden. Dabei wurde die alte
Schaltung an einigen Stellen verbessert und geändert, wodurch einige kleine Probleme beseitigt wurden und der Betrieb des Roboters mit einer Spannungsbreite von 67,5 V ermöglicht wurde. Bei der Herstellung der neuen Leiterplatte wurde auch die
Hardware der Fernbedienung berücksichtigt und zudem der Servo-Antrieb für die
Transportklappe integriert. Die Transportklappe wurde zusätzlich neu gestaltet und
auch der Akku-Betrieb durch eine Halterung sichergestellt. Da die Low Drop Spannungsregler auch noch bei einer niedrigen Spannung von bis zu 5,2 V6 ausreichend
Versorgungsspannung liefern, ist eine Akkulaufzeit von über 3 Stunden möglich.
Abbildung 21: Überarbeiteter c’t-Bot mit 68HCS12 Controller
6
Da an der Schottky-Diode (D1) etwa 0,3 V abfallen, liegt die Betriebsspannung der Akkus dann bei
etwa 5,5 V.
Praxisprojekt
SS12
Daniel Klose
6 Ausblick
6
27
Ausblick
Für den mobilen Roboter der c’t sind noch Erweiterungspakete erhältlich, die z.B.
das Abspeichern von Daten auf einer SD-Karte oder die drahtlose Kommunikation
über einen WLAN-Port ermöglichen. Es ist auch denkbar, den Roboter mit einer
Kamera auszustatten, durch die er seine Umgebung besser wahrnehmen kann und
Objekte erkennen kann. Eine integrierte Ladeeinrichtung für die Akkus wäre praktisch und könnte so gebaut werden, dass der Roboter bei Bedarf selbst den Kontakt
der Ladestation findet. Weiter wäre eine Kommunikation unter mehreren c’t-Bots
denkbar, die über eine Bluetooth-Verbindung kommunizieren. Mit einer passenden
Mechanik für eine Schussvorrichtung könnte dann eine Art Fußball gespielt werden.
Dazu wäre es aber notwendig, die Hardware der Hauptplatine zu ändern, denn diese
Funktionen sind in diesem Projekt vernachlässigt worden. Zudem wäre dazu eine
Leiterplatte herzustellen, die nicht mit dem Ätzverfahren erstellt wird, denn auch
schon bei diesem Projekt waren die Möglichkeiten dadurch eingeschränkt. Denkbar
wäre auch, dass durch die Bestückung von SMD Bauelementen mehr Platz auf der
Hauptplatine geschaffen wird und auch der Mikrocontroller 68HCS12 direkt integriert wird und nicht über ein Modul.
Praxisprojekt
SS12
Daniel Klose
7 Danksagung
7
28
Danksagung
An dieser Stelle möchte ich mich bei der Firma Jacob Schaltschränke GmbH & Co.
KG bedanken, insbesondere bei Alexander Golz und Gerhard Klose, die die Realisierung der Akkuhalterung und Transportklappe ermöglichten.
Praxisprojekt
SS12
Daniel Klose
8 Anhang
29
Register des ACX-1001
Address
Name
R/W
Default
Data Type
0x00
Product_ID
R
0x30
0x01
Product_ID
R
0x00
0x02
0x03
Motion_Status
Delta_X
R
R
-
0x04
Delta_Y
R
-
0x057
0x067
Operation_Mode R/W
Configuration
R/W
Eight bits [11:4] number with the
product identifier
Four bits [3:0] number with the
product identifier
Reserved[3:0] number is reserved
for further
Bit field
Eight bits 2’s complement number
Eight bits 2’s complement number
Bit field
Bit field
0xD0
0x01
Nutzung der Register, um einen Bewegungswert auszulesen:
Die Register „Delta_X“ und „Delta_Y“ enthalten die Positionsveränderung seit dem
letzten Auslesen. Um die beiden Register auszulesen, wird zunächst im Register
„Motion_Status“ das „Motion Bit“ (7te Bit) abgefragt. Erst wenn dieses „1“ ist, hat
eine Bewegung stattgefunden und „Delta_X“ und „Delta_Y“ können ausgelesen
werden. Es folgen die Erklärungen zu den Registern, die zum Auslesen nötig sind.
Register Erklärung [6]:
0x00
Bit
Field
Usage
Product_ID1
4
3
2
1
0
PID[11:4]
The value in this register can’t change. It can be used to verify that the
serial communications link is OK.
0x01
Bit
Field
Usage
Product_ID2
6
5
4
3
2
1
0
PID[3:0]
Reserved[3:0]
The value in this register can’t change. PID[3:0] can be used to verify that
the serial communications link is OK. Reserved[3:0] is a value between
0x0 and 0xF, it can’t be used to verify that the serial communication.
7
6
5
7
7
Die Register „Operation_Mode“ und „Configuration“ wurden nicht getestet und werden mit den
„Default“-Werten betrieben, die für den Mausbetrieb implementiert wurden.
Praxisprojekt
SS12
Daniel Klose
8 Anhang
0x02
Bit
Field
Usage
Notes
30
Motion_Status
7
6
5
4
3
2
1
0
Motion Reserved[3:2] DYOVF DXOVF Reserved[1:0]
RES
Register 0x02 allows the user to determine if motion has occurred since the
last time it was read. If so, then the user should read registers 0x03 and
0x04 to get the accumulated motion. It also tells if the motion buffers have
overflowed since the last reading. The current resolution is also shown.
Reading this register freezes the Delta_X and Delta_Y register values. Read
this register before reading the Delta_X and Delta_Y registers. If Delta_X
and Delta_Y are not read before the motion register is read a second time,
the data in Delta_X and Delta_Y will be lost.
Field Name
Description
Motion
Motion since last report or PD
Reserved[3:2]
DYOVF
DXOVF
Reserved[1:0]
RES
0 = No motion (Default)
1 = Motion occurred, data ready for reading in
Delta_X and Delta_Y registers
Reserved for future use
Motion Delta Y overflow, ∆Y buffer has overflowed
since last report
0 = No overflow (Default)
1 = Overflow has occurred
Motion Delta X overflow, ∆X buffer has overflowed
since last report
0 = No overflow (Default)
1 = Overflow has occurred
Reserved for future use
Resolution in counts per inch
0 = 1600
1 = 800
0x03
Bit
Field
Usage
Delta_X
7
6
5
4
3
2
1
0
X7
X6
X5
X4
X3
X2
X1
X0
X movement is counts since last report. Absolute value is determined by
resolution. Reading clears the register. Report range –128 ~ +127.
0x04
Bit
Field
Usage
Delta_Y
7
6
5
4
3
2
1
0
Y7
Y6
Y5
Y4
Y3
Y2
Y1
Y0
Y movement is counts since last report. Absolute value is determined by
resolution. Reading clears the register. Report range –128 ~ +127.
Praxisprojekt
SS12
Daniel Klose
8 Anhang
31
Portbelegung 68HCS12
Port A (Digital Out)
PA0
Enable Radencoder
PA1
Enable Abstandssensoren
PA2
Enable Liniensensoren
PA3
Enable Kantensensoren
PA4
Enable Lichtschranke Transportfach
PA5
Enable Klappensensor Transportfach
PA6
Enable Rote LED
PA7
Port B (Digital In)
PB0
Akku Low
PB1
Fehler Transportklappe
PB2
Lichtschranke Transportfach
PB3
Klappensensor Transportfach
PB4
PB5
PB6
PB7
Port H (Digital Out)
PH0
Motor links (Richtung)
PH1
Motor rechts (Richtung)
PH2
PH3
PH4
PH5
PH6
PH7
Indikator LED CardS12 (blau)
Port K (SDIO Interface)
PK0
Positionssensor SDIO DATA
PK1
Positionssensor SCLK
PK2
PK3
PK4
PK5
PK6
PK7
Praxisprojekt
SS12
Daniel Klose
8 Anhang
32
Port T (Timer)
PT0
Radencoder links
PT1
Radencoder rechts
PT2
Infrarot-Receiver (Fernsteuerung)
PT3
PT4
PT5
PT6
PT7
Port P (PWM)
PP0
Motor links (Geschwindigkeit)
PP1
Motor rechts (Geschwindigkeit)
PP2
PP3
PP4
Servo-Antrieb Klappe Transportfach
PP5
PP6
PP7
Port ATD0 (Analog-Digital)
PAD00
Abstandssensor links
PAD01
Abstandssensor rechts
PAD02
Liniensensor links
PAD03
Liniensensor rechts
PAD04
Kantensensor links
PAD05
Kantensensor rechts
PAD06
Helligkeitssensor links
PAD07
Helligkeitssensor rechts
Praxisprojekt
SS12
Daniel Klose
8 Anhang
Praxisprojekt
33
SS12
Daniel Klose
8 Anhang
Praxisprojekt
34
SS12
Daniel Klose
8 Anhang
35
Stückliste Hauptplatine
Item
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Quantity
3
8
1
1
1
1
1
1
2
1
1
1
2
1
7
2
4
3
1
2
2
5
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
Praxisprojekt
Reference
C1,C8,C10
C2,C3,C4,C5,C7,C11,C12,C13
C6
C9
C14
D1
D2
D3
D4,D5
J1
J2
J3
LDR1,LDR2
P1
Q1,Q2,Q3,Q4,Q5,Q6,Q7
R1,R2
R3,R12,R13,R18
R4,R15,R17
R5
R6,R25
R7,R22
R8,R9,R10,R11,R19
R14,R16
R20,R21
R23
R24
R26
R27
ST1
ST2
ST3
ST4
ST5
ST6
SW1
U1
U2
U3
U4,U7
U5
U6
U8
U9
SS12
Part
100uF
100nF
4,7uF
0,33uF
10uF
SB140
ZD 2,4V
LED
1N4148
Servo1
CARD12 X6
CARD12 X5
MPY54C569
LUM NEB 1R
BS250P/TO
10k
47k
39k
620R
4k7
100R
180R
6k2
470k
3k3
75k
160R
1R
Akkupack
MotorL
MotorR
Sensoren links
Sensoren rechts
Sensoren Boden
SW SPDT
L293D
74HC14
L4940V5/TO
LM311
TSOP34836
CNY70
LM2940/5V
LM2937/3,3V
Footprint
cap196
capck05
cap196
cap196
cap196
dio400
dio400
led
dio400
jumper3
conn50
conn50
ldr
lumneb1r
to92
res400
res400
res400
res400
res400
res400
res400
res400
res400
res400
res400
res400
res400
st2
st2
st2
st10
st10
st10
switch
dip16_3
dip14_3
to126v
dip8_3
to126
cny70
to126v
to126v
Daniel Klose
8 Anhang
36
Stückliste Linien-/Positionssensorplatine
Item
1
2
3
4
5
6
7
8
9
10
11
12
Quantity
2
2
1
1
1
1
1
2
2
1
2
1
Praxisprojekt
Reference
C1,C2
C3,C6
C4
C5
D1
J1
R1
R2,R3
R4,R5
U1
U2,U3
Y1
Part
10pF
100nF
10uF
1uF
LASER DIODE
CON10
150R
47k
180R
ACX-1001
CNY70
27MHz
SS12
Footprint
capck05
capck05
cap196
cap196
jumper2
con10
res400
res400
res400
acx-1001
cny70
quarz1
Daniel Klose
8 Anhang
37
Bestückungsplan der Hauptplatine
Praxisprojekt
SS12
Daniel Klose
8 Anhang
38
Layout der Hauptplatine (Bestückungsseite)
Praxisprojekt
SS12
Daniel Klose
8 Anhang
39
Layout der Hauptplatine (Lötseite)
Praxisprojekt
SS12
Daniel Klose
8 Anhang
40
Bestückungsplan der Linien-/Positionssensorplatine
/Positionssensorplatine
Layout der Linien-/Positionssensorplatine
Linien
(Bestückungsseite)
Praxisprojekt
SS12
Daniel Klose
8 Anhang
41
Layout der Linien-/Positionssensorplatine
Linien /Positionssensorplatine (Lötseite)
Praxisprojekt
SS12
Daniel Klose
8 Anhang
42
Zeichnung der Transportklappe
Praxisprojekt
SS12
Daniel Klose
8 Anhang
Praxisprojekt
43
SS12
Daniel Klose
8 Anhang
44
Zeichnung der Akkuhalterung
Praxisprojekt
SS12
Daniel Klose
8 Anhang
45
E-Mail Schriftverkehr mit der Firma PixArt
Re: [**轉自原相網頁**] Datasheet of ACX-1001(20120503151525)
fae_service@pixart.com.tw
An:
Daniel Klose
Dear Sir:
ACX-1001 is a customizing product ,we can't offer the datasheet to you. Sorry.
==============================================
|| FAE & Sales Contact
|| PixArt Imaging Inc.
|| http://www.pixart.com.tw
|| 5F,No.5, Innovation Road I, Hsin-Chu Science Park,
|| Hsin-Chu, Taiwan, R.O.C.
==============================================
<daniel.klose@stud.hs-owl.de>
2012/05/03 03:15 PM
To: <fae_service@pixart.com.tw>
cc:
Subject: [**轉自原相網頁**]
Datasheet of ACX-1001(20120503151525)
聯絡我們
主旨: [**轉自原相網頁**] Datasheet of ACX-1001(20120503151525)
姓名: Daniel Klose
e-mail: daniel.klose@stud.hs-owl.de
收件部門: 客戶服務
Good afternoon,
I am student of a University of Applied Science in Germany and working on my
thesis in electrical engineering. In my project I want to use the ACX-1001 device of
you, but I can not find any datasheet of the device.
Is it possible to get a datasheet of the ACX-1001 from you?
I would be happy about an answer of you.
Kind regards,
訊息內容:
Daniel Klose
daniel.klose@stud.hs-owl.de
Hochschule Ostwestfalen-Lippe
University of Applied Science
Liebigstr. 87
32657 Lemgo
Germany
http://www.hs-owl.de
Praxisprojekt
SS12
Daniel Klose
Literaturverzeichnis
46
Literaturverzeichnis
[1]
http://www.wiki.ctbot.de, [Stand: 03.07.2012]
[2]
SHARP: Datenblatt GP2Y0A21YK, Sharp Corporation, 2005
[3]
Thorsten Thiele, „Untersuchung zum Abstandssensor GP2D12“, 06.02.2006.
http://www.segor.de/L1Bausaetze/gp2d12.shtml [Stand: 17.05.2012]
[4]
Heise Zeitschriften Verlag, „Hardware Modifikationen“, 07.03. – 10.06.2006.
http://www.heise.de/ct/projekte/machmit/ctbot/wiki/ct-Bot-Modifikationen
[Stand: 31.05.2012]
[5]
Testberichte.de Redaktion, „Logitech LS1 Laser Mouse“, 13.08.2010.
http://www.testberichte.de/p/logitech-tests/ls1-laser-mouse-testbericht.html
[Stand: 14.05.2012]
[6]
PixArt: Datenblätter Maussensoren „PAW3601DH“, PAW3602DH“,
„PAW3603DH“, PixArt Imaging Inc., Taiwan, 03.2010.
http://www.pixart.com.tw/product_data.asp?ToPage=1&productclassify_id=1
&productclassify2_id=5 [Stand: 07.05.2012]
[7]
Fabian Greif, „Liniensensor mit CNY70“, 13.01.2007.
http://www.kreatives-chaos.com/artikel/liniensensor-mit-cny70
[Stand: 30.05.2012]
[8]
Atmel: Datenblatt ATmega32, Atmel Corporation, San Jose, 02.2011
[9]
CardS12: Benutzerhandbuch CardS12 V1.1, ELMICRO Computer GmbH &
Co. KG, Leipzig, 09.08.2007
[10]
Benjamin Benz, „Spielgefährten”, c’t Magazin 2/2006, S.130, Heise Zeitschriften Verlag, 2006
[11]
http://www.mikrocontroller.net, [Stand: 01.06.2012]
[12]
Heise Zeitschriften Verlag, Projektseite „c’t-Bot und c’t-Sim“,
http://www.heise.de/ct/projekte/c-t-Bot-und-c-t-Sim-284119.html
[Stand: 04.07.2012]
[13]
Vishay: Datenblatt TSOP34836, Vishay Semiconductor GmbH, Heilbronn,
23.06.2003
[14]
Sprut.de, „IR-Fernbedienung –der RC-5 Code“, 16.07.2009.
http://www.sprut.de/electronic/ir/rc5.htm [Stand: 13.06.2012]
[15]
http://www.rn-wissen.de, [Stand: 15.06.2012]
Praxisprojekt
SS12
Daniel Klose
Literaturverzeichnis
47
[16]
SHARP: Datenblatt IS471F, Sharp Corporation
[17]
Holger Thiele, „c’t-Bot“, 2010. http://www.hthiele.de/ctbot6.html
[Stand: 15.07.2012]
[18]
Kraig Mitzner, „Complete PCB Design Using OrCAD® Capture and PCB
Editor“, Elsevier Inc., 2009
Praxisprojekt
SS12
Daniel Klose