Inhaltsverzeichnis I. Mechanik 1. Erforderliches Werkzeug 2. Mechanische Vorarbeiten 2.1. Motorritzel 2.2. Tischtennisball 2.3. Radsensoren II. Elektronik 3. Kleine Lötfi bel 3.1. Spitze, Zinn und Temperatur 3.2. Vorbereiten der Bauteile 3.3. Einlöten der Bauteile 3.4. Auslöten falsch eingebauter Teile 4. Bestückung 4.1.
Seite 4
6. Fehlersuche 6.1. RS232-IR-Transceiver geht nicht ! 6.1.1. Tastendruck und Zeichenausgabe stimmen nicht überein 6.1.2. Das Terminal-Programm gibt keine Zeichen aus 6.1.3. Es geht immer noch nicht 6.2. USB-Infrarot-Tranceiver funktioniert nicht 6.3. Back-LEDs (D15,D16) glimmen nach dem Einschalten nicht! 6.3.1. Keine der beiden Back-LEDs glimmt auf 6.3.2.
Seite 5
III. Informatik 8. Installation der Software und erste Schritte 8.1. Windows 8.1.1. Flash-Tool 8.1.2. Installation des programmeditors und des compilers 8.1.3. Beispielprogramme 8.2. Linux 8.2.1. Flash-Tool 8.2.2. Compiler 8.3. Flash - das ASURO-Programmier-Tool 8.3.1. Wie funktioniert das Flashen? 8.4. Flash Fehler 8.5.
Teil I. Mechanik 1. Erforderliches Werkzeug Um ASURO vernünftig zusammenbauen zu können, wird - außer den Bausatzteilen - folgendes Werkzeug und Verbrauchsmaterial benötigt: kleiner Schraubstock oder Dritte Hand: nicht immer sind zwei Hände ausreichend Teppichmesser oder Säge feine Zange Seitenschneider: ein kleiner für Elektronik evtl.
Mechanik 2. Mechanische Vorarbeiten Bevor die ersten Basteleien beginnen können, sollte unbedingt überprüft werden, ob alle erforderlichen Teile vorhanden sind. Das kann am einfachsten anhand der Stückliste in Anhang A geschehen. Bevor es an die Elektronik gehen kann, müssen noch ein paar mechanische Tätigkeiten durchgeführt werden.
Mechanik 2.3. Radsensoren Die Leuchtdiode und der Fototransistor (Refl exlichtschranke für die Odometrie), welche sich so vertrauensvoll Richtung erstem Getriebezahnrad wenden werden, wollen später nicht enttäuscht werden. Daher bringt man auf das jeweils erste Getriebezahnrad (das mit mit den 50 und 10 Zähnen) auf der Seite ohne Abtriebsritzel noch die selbstklebenden Musterscheiben an (siehe Abb.2.3.).
Teil II. Elektronik 3. Kleine Lötfi bel Obwohl ASURO vollständig mit bedrahteten Bauteilen aufgebaut ist und damit - im Gegensatz zu oberfl ächenmontierten SMD-Bauteilen (Abb. zeigt den Vergleich zwischen dem kleinsten und unserem Gehäuse, in dem ASUROs Prozessor erhältlich ist. Der eigentliche Siliziumchip ist in beiden Gehäusen der gleiche!) - geradezu hervorragen von Hand zu bestücken ist, sollten vor allem vom untrainierten Löter einige Hinweise beachtet werden.
Elektronik Abbildung 3.2.: Grundlage des Lötens Dämpfe, welche während des Lötprozesses entstehen sind langfristig eher ungesund und sollten nach Möglichkeit nicht eingeatmet, besser noch abgesaugt werden! Anderes Lötzinn als Elektroniklot oder säurehaltiges Flussmittel können die Schaltung zerstören! 3.2. Vorbereiten der Bauteile Jeder, der schon mal Elektronik gelötet hat, kennt das Problem: man hat eigentlich immer eine Hand zuwenig.
Elektronik Abbildung 3.3.: Bauteile mit passend gebogenen Beinchen Abbildung 3.4.: Herstellen einer sauberen Lötstelle 3.3. Einlöten der Bauteile Sind die Bauteile vorbereitet, werden sie durch die durchkontaktierten Bohrungen in der Leiterplatte gesteckt und - bei Teilen mit nur zwei oder drei Beinchen - diese auf der Unterseite der Platine direkt an der Bohrung etwas auseinandergebogen (ca.
Elektronik Sitzt das Bauteil fest, so erhitzt man mit der Lötkolbenspitze das Beinchen und das Lötauge gleichzeitig und gibt an diese Stelle etwas Lötzinn zu. Dieses schmilzt nun und läuft in die Bohrung. Es wird solange Zinn zugegeben, bis die Bohrung vollständig ausgefüllt ist (siehe Abb.3.4).
Elektronik 4. Bestückung Lötfi bel gelesen? Wirklich? Na gut, los geht’s! 4.1. Bestückung des RS232-Infrarot-Transceivers • IC1: Hier wird zunächst nur der 8-polige Sockel eingelötet. Dieser besitzt eine Richtungsmarkierung, welche mit der Markierung auf der Platine übereinstimmen muss. • D1, D2, D3: 1N4148, auf richtige Polung achten! Nicht verwechseln mit ZPD5.1 oder BZX55-C5V1 (Aufdruck)! •D4: ZPD5.1 oder BZX55-C5V1, auf richtige Polung achten! Nicht verwechseln mit 1N4148 (Aufdruck)!
Seite 14
Elektronik Abbildung 4.1.: Bestückung des RS232- Infrarot-Transceivers Nun nochmal mit kritischem Blick die Lötstellen auf gute Verbindung oder Kurzschlüsse überprüfen und ggf. nachbessern. Fertig!
Elektronik 4.2. Fertiggerät USB-Infrarot-Transceiver Optional ist ein USB-IR-Transceiver als Fertiggerät lieferbar. Abbildung 4.2.: USB Infrarot-Transceivers Abbildung 4.3.: Oberseite des USB Infrarot-Transceivers Abbildung 4.4.: Unterseite des USB Infrarot-Transceivers...
Elektronik 4.3. Bestückung der ASURO-Platine Die zwei längeren Achsen, die für die zweite Getriebestufe erforderlich sind, werden auf der Unterseite angelötet oder geklebt. Löten ist praktischer, denn Korrekturen sind einfacher möglich und abkühlen lassen geht schneller als warten, bis der Kleber fest ist. Die beiden kürzeren liegen auf der Oberseite und weiter Richtung Platinenmitte.
Elektronik Abbildung 4.6.: Bestückung ASURO Hauptplatine auf der Oberseite In folgender Reihenfolge wird bestückt: • IC1: erstmal nur der Sockel, hier werden entweder ein 28poliger (wenn vorhanden) oder zwei 14polige hintereinander eingebaut; auf richtige Polung achten (Kerbe zeigt in Richtung der Kerbe vom Bestückungsdruck auf der Platine)! •...
Seite 19
Elektronik Drei weitere Bauteile werden noch benötigt (sie ermöglichen das Folgen einer Linie), allerdings werden sie auf der Unterseite der Platine angebracht und von oben her eingelötet (siehe Abb.4.7.): • T9, T10: SFH300, Fototransistor 5mm, auf richtige Polung achten! Diese stehen leicht von der Platine ab. •...
Elektronik 4.4. Motormontage Wenn die Bestückung der ASURO-Platine abgeschlossen ist, müssen nur noch die Motoren mit Kabeln versehen und provisorisch befestigt werden. Zum Anschluss der Motoren wird je ein schwarzes und rotes ca. 70mm langes Kabel mit abisolierten und verzinnten Enden benötigt. Sind die beiliegenden Kabel noch nicht passend vorbereitet, so isoliert man die Enden ca.
Elektronik 5. Inbetriebnahme und Test Endlich ist alles zusammengebaut und der Fahrspaß kann beginnen. Zunächst müssen aber noch die zuvor eingebauten Fehler gesucht, gefunden und beseitigt werden, ohne dabei allzu großen Schaden anzurichten. 5.1. RS232-Infrarot-Transceiver Diese Inbetriebnahme gilt nur für den RS232-IR-Transceiver. Als erstes sollte der RS232-IR-Transceiver auf seine volle Funktionsfähigkeit überprüft werden, da dieser später für den Selbsttest des Fahrzeugs benötigt wird.
Der USB-Transceiver wird mit dem USB-Kabel an einer freien USB-Buchse angeschlossen. Es erscheint die Meldung: “Neue Hardware gefunden: AREXX ASURO USB-IR-Transceiver” Danach den USB-Treiber von der ASURO-CD installieren. Sollte der Treiber nicht automatisch gefunden werden, das Verzeichnis (D: steht hier für das CD-ROM-Laufwerk) D:\Windows\USB_ Driver”...
Elektronik 5.2.2 Linux Der USB-Transceiver wird mit dem USB-Kabel an einer freien USB-Buchse angeschlossen. Ein kurzes “Piep” ertönt, wenn Linux den Transceiver erkannt hat. Um zu überprüfen, ob das Gerät korrekt erkannt wurde, kann man sich den entsprechenden Eintrag im proc-Verzeichnis anschauen: foo@bar:/>cat /proc/tty/driver/usb-serial Was eine Ausgabe produzieren muss, die mindestens folgende Einträge aufweist (statt der “0:”...
Elektronik 5.3. Inbetriebnahme der ASURO-Platine Der Prozessor (IC1) ist zu diesem Zeitpunkt noch nicht eingebaut! Jetzt die Nackenhaare sträuben, und den Schalter auf ON stellen. Die beiden Back-LEDs (D15, D16) sollten nun beide leicht glimmen. Ist dies nicht der Fall den Hauptschalter sofort auf OFF stellen und in Abschnitt weiterlesen.
Elektronik Nur bei Akku-Betrieb Jumper (J1) stecken. Die Kerben der ICs müssen mit der Kerbe der hoffentlich richtig eingesetzten Sockel übereinstimmen. Der Prozessor ist bereits werksseitig mit einem Selbsttest vorprogrammiert und wird nach dem Einschalten alle Komponenten überprüfen. Damit es hierbei gleich keine Schwierigkeiten gibt, sollte man den folgenden Abschnitt einmal komplett lesen bevor man einschaltet und anschließend wieder hierher zurückkehren.
Elektronik Schalter ASURO steht still, alle Anzeigenelemente sind aus. Ein gutes Zeichen! Die Schalter werden nun überprüft (ca 15sec). Einfach mal ein bisschen rumdrücken, irgendetwas wird hoffentlich passieren. Die Zuordnung sollte wie folgt aussehen : K1 --> Status-LED (D12) leuchtet grün K2 -->...
Elektronik Besteht zwischen ASURO und dem Infrarot-Transceiver Sichtkontakt (ca. 50cm Abstand) sollte im Terminal-Programm regelmäßig ein ’T’ erscheinen bzw. die am PC gedrückte Taste erscheint einmal (vom Transceiver gesendetes und refl ektiertes Signal) gefolgt von dem im Alfabet folgenden (von ASURO gesendeten) Zeichen. z.B.: Taste “e”...
6. Fehlersuche 6.1. RS232-IR-Transceiver geht nicht ! 6.1.1. Tastendruck und Zeichenausgabe stimmen nicht überein Solange am Trimmer TR1 drehen bis Tastendruck und Zeichenausgabe übereinstimmen. 6.1.2. Das Terminal-Programm gibt keine Zeichen aus Ist das Timer-IC (IC1) montiert bzw. richtig herum (Kerbe zeigt in Richtung der drei Dioden) eingesteckt? Eine Infrarot-Fernbedienung eines beliebigen Gerätes (Videorecorder, Fernseher, Tuner, ...) nehmen, diese in Richtung des IR-Transceivers halten und einige Tasten drücken.
6. Fehlersuche 6.3.2. Nur eine der beiden LED’s glimmt auf Sind die Dioden (rosafarbenes Gehäuse) D13 (links) ,D14 (rechts), sowie die Fototransistoren (klares Gehäuse) T11 (links), T12 (rechts) an der richtigen Stelle (siehe Abb.4.3) und Polungsrichtig eingebaut? Haben folgende Widerstände den richtigen Wert R18, R19 (links) und R20, R21 (rechts)? 4,7KΩ...
6. Fehlersuche 6.4.3. Linke Back-LED D15 geht nicht Polung D15 prüfen. Widerstände R19, R18 überprüfen. 1KΩ (br,sw,or,gld) 4,7KΩ ( ge,vio,ro,gld) Ein einfacher Test besteht darin, den Prozessor (IC1) zu entfernen und eine Verbindung zwischen Pin7 (VCC) und Pin24 herzustellen, die linke Back-LED leuchtet rot. Ist dieser Test erfolgreich, liegt ein Defekt im Prozessor oder Schwinger vor, bzw.
6. Fehlersuche 6.6.2. Die Anzeige verhält sich so, als seien Schalter vertauscht worden Die Widerstände der jeweiligen Schalter sind vertauscht. Zu kontrollieren sind 1KΩ ( br,sw,sw,br,br) 2KΩ ( ro,sw,sw,br,br) 2KΩ ( ro,sw,sw,br,br) 8,2KΩ ( gra, ro,sw,br,br) 16KΩ ( br,bl,sw,ro,br) 33KΩ ( or,or,sw,ro,br) 68KΩ...
6. Fehlersuche 6.8. Ein Antrieb geht nicht 6.8.1. Kein Antrieb bewegt sich Polung und Einbaulage IC3 überprüfen. 6.8.2. Der linke Motor bewegt sich nicht bzw. nur in eine Richtung Hier ist die komplette Motorbrücke, bestehend aus Transistoren T1, T2, T3, T4 (sind die richtigen Transistoren an der richtigen Stelle eingebaut), den Dioden D1, D2, D3, D4 (Polung !) und den Widerständen R1, R2, R3, R4 zu kontrollieren.
6. Fehlersuche 6.9.3. Es geht immer noch nicht so richtig C8 polungsrichtig eingebaut ? 220 F/ mindestens 10V Kommt es bei der Übertragung von Daten vom PC zu ASURO immer wieder zu Schwierigkeiten, so muss ein wenig am Trimmer TR1 des Transceivers gedreht werden. Zweikomponentenkleber steht im Verdacht sensibilisierend zu wirken, was soviel heißt wie: man wird gegen immer mehr Zeug allergisch, er darf also keinesfalls mit der Haut in Berührung kommen.
7. Letzte Einstellarbeiten 7. Letzte Einstellarbeiten Die Achsen werden leicht eingefettet, das Getriebezahnrad mit dem schönen Schwarz-Weiß-Muster wird auf die kurze Achse gesteckt. Der Reifen wird auf das Getrieberad mit den 50 und 12 Zähnen gesteckt, dann zusammen auf die hintere Achse gesteckt und mit einem Stellring fi xiert, sodass es sich noch leicht drehen kann.
Teil III. Informatik 8. Installation der Software und erste Schritte Die ASURO-CD ins CDROM-Laufwerk einlegen, sie ist autostartfähig. Falls Autostart deaktiviert ist, kann man die CD auch mit dem Windows-Explorer öffnen. Nach der Auswahl der Sprache fi ndet sich im Abschnitt “Software”...
Seite 36
8. Informatik Folgendes Fenster erscheint: Klick auf [I Agree] Folgendes Fenster erscheint: Klick auf [Next] ASURO - 36 -...
Seite 37
8. Informatik Folgendes Fenster erscheint: Klick auf [Install] Folgendes Fenster erscheint: Warten… ASURO - 37 -...
Seite 38
8. Informatik …bis der Programmers Notepad 2 (PN2) Editor mit der Datei README.txt erscheint. Nun das Fenster ‘Programmers Notepad 2’ schließen. Auf dem Desktop erscheint das ‘Programmers Notepad 2’ Symbol: Der Programmeditor und der Compiler sind jetzt installiert. ASURO - 38 -...
8. Informatik 8.1.3. Beispielprogramme von CDROM auf die Festplatte kopieren. Von der CD den Ordner ‘ASURO_src’ in einen beliebigen Ordner (Z.B. ‘C:\ASURO_src’) auf der Festplatte kopieren. Durch Markieren der kopierten Dateien im Zielverzeichnis, Klicken mit der rechten Maustaste und Auswahl von Eigenschaften sicherstellen, dass der Schreibschutz deaktiviert ist. Im Programmeditor einen Menüeintrag zum Compilieren einrichten ‘Programmers Notepad 2’...
Seite 40
8. Informatik Auf der rechten Seite ‘C/C++’-Scheme auswählen. ‘C/C++’-Scheme ist ausgewählt. Auf [Add] klicken (…um ein neues Tool hinzuzufügen) ASURO - 40 -...
Seite 41
8. Informatik Das Fenster ‘New Tool’ erscheint. Folgende Einstellungen eintippen oder mit der Browse-Taste auswählen: Name: make Command: C:\ASURO_src\FirstTry\Test-all.bat Folder: C:\ASURO_src\FirstTry Klick auf [OK] Ein neues PN-Tool mit Namen make ist ab sofort im Tools-Hauptmenü verfügbar. (Wird das Tool aktiviert, so wird eine Batch-Datei mit Namen Test-clean.bat ausgeführt, welche das Programm test.c - zusammen mit asuro.c - compiliert und eine datei text.hex erzeugt) ASURO - 41 -...
Seite 42
8. Informatik Im Programmeditor einen Menüeintrag zum Aufräumen einrichten. Im Hauptmenü “Tools” wieder “Options” und dort wieder “C/C++-Scheme” auswählen: Auf [Add] klicken um ein weiteres Tool hinzuzufügen: ASURO - 42 -...
Seite 43
8. Informatik Das Fenster ‘New Tool’ erscheint. Folgende Einstellungen eintippen oder mit der Browse-Taste auswählen: Name: clean Command: C:\ASURO_src\FirstTry\Test-clean.bat Folder: C:\ASURO_src\FirstTry Auf [OK] klicken Ein neues PN-Tool mit Namen clean ist ab sofort im Tools-Hauptmenü verfügbar. (Wird das tool aktiviert, so wird eine Batch-Datei mit Namen Test-clean.bat ausgefuhrt, welche temporäre Dateien im Ordner C:\ASURO_src\FirstTry löscht.
Seite 44
8. Informatik Im Options-Fenster müssen jetzt die beiden Einträge für die Tools ‘make’ und ‘clean’ sichtbar sein. Wieder auf [OK] klicken. ASURO - 44 -...
Seite 45
8. Informatik Auf [Open] klicken. Nun zum Ausprobieren die Datei Datei ’C:\ASURO_src\FirstTry\test.c’ öffnen: ASURO - 45 -...
Seite 46
8. Informatik Datei test.c wird geöffnet. Wenn man Tools auswählt… …sieht man die neuen Tools make und clean als Menüeintrag. Nun make anklicken. ASURO - 46 -...
Seite 47
8. Informatik Die Dateien test.c (zusammen mit asuro.c) wird nun compiliert… …und wenn das Programm keine Fehler enthält (was zu erwaren ist, da gerade das Beispielprogramm geladen ist), erscheint unten die Meldung: Errors: none. Was ist passiert? Aus der Datei test.c (und asuro.c) ist eine Datei test.hex generiert worden. Diese Datei stellt das in Maschinencode übersetzte Programm dar, welches nun in ASUROs Speicher geladen (gefl asht) werden kann.
Seite 48
8. Informatik Das zu unserem Beispielprogramm gehörige makefi le ist so geschrieben, dass es eine Datei mit Namen test.c zusammen mit asuro.c (das einige vordefi nierte Funktionen enthält) compiliert und eine .hex-Datei erzeugt, die so auf ASURO geladen werden kann. Achtung! Das heißt auch, dass –...
Seite 49
8. Informatik Beim Öffnen… …kann man jetzt die generierten Dateien sehen… (Klick auf [Cancel]) …und nach dem Ausführen von ‘clean’… ASURO - 49 -...
Seite 50
8. Informatik …kann man sehen… …dass die generierten Dateien wieder gelöscht worden sind sind Wie hat’s funktioniert? Der Menüeintrag ‘clean’ hat die Batch-Datei Test-clean.bat aufgerufen, welche make mit dem Parameter ‘clean’ gestartet hat. Dadurch wird der Eintrag im makefi le namens clean ausgeführt und die ganzen inzwischen überfl üssigen Dateien wieder gelöscht.
8. Informatik 8.2. LINUX Für die Installation der Software sind root-Rechte erforderlich. Entweder ausloggen und als root einloggen oder eine shell öffnen und mit “su” root-Rechte erlangen. 8.2.1 Flash-Tool Die ASURO-CDROM einlegen, ggf. mounten und die beiden Flash-Tools “asurofl ash” und “asurocon”...
8. Informatik 8.2.2 Compiler Zur Installation des Gnu-Compilers für AVR-Prozessoren die ASURO-CDROM einlegen und aus dem Verzeichnis “/Linux/Compiler/” mindestens die folgenden Pakete in der angegebenen Reihenfolge installieren: 1. avr-binutils-..rpm 2. avr-gcc-..rpm 3. avr-libc-..rpm Die Installation ist denkbar einfach! Einfach in der Konsole mit root-Rechten den Befehl : rpm -i <paket>.rpm eingeben.
8. Informatik 8.3. Flash - das ASURO-Programmier-Tool Hierzu wird das Programm Flash (siehe Abb. 8.3) benötigt. Abbildung 8.3.: Flash-Tools für Windows und LINUX Damit das Flashen auch richtig gut klappt, muss natürlich der RS232- oder USB-IR-Transceiver angeschlossen werden. Danach das Programm starten und die Schnittstelle auswählen, welche auch bei der Inbetriebnahme funktioniert hat.
8. Informatik 8.4. Flash Fehler Folgende Fehler können während des Flashens auftreten: • • “c” Checksum Error. Es sind andere als die vom PC geschickten Daten bei ASURO angekommen. Das kann durch Störlicht (wie Leuchtstoffl ampen) kurze Unterbrechungen in der Sichtverbindung oder ähnliches passieren.
Seite 55
8. Informatik Das geladene Programm wird wie folgt abgeändert (Achtung, auf exakte Schreibweise auch Groß-/Kleinschreibung achten): #include “asuro.h” int main(void) { Init(); StatusLED(RED); while(1); return 0; Danach wieder im Menü Tools -> make auswählen (unter Linux: in einer Shell im Verzeichnis “~/ASURO/”...
9. C für ASURO Dieser Abschnitt beschäftigt sich mit der Programmiersprache C. Der Leser wird hierbei nur die für die Programmierung von ASURO notwendigen Bestandteile von C erklärt bekommen. Dies stellt also keinesfalls eine komplette Einführung in C dar. Hierfür gibt es bessere Bücher C wurde als Sprache gewählt, da dieser Standard weit verbreitet ist und für fast jeden Prozessor, zumindest ein C-Compiler existiert.
9. C für ASURO Will man einige Zeilen aus seinem Code auskommentieren so beginnt der Kommentarblock mit “/*” und endet mit “*/ ”. Um nur eine Zeile auzukommentieren genügt ein “//“ vor der betreffenden Zeile . Das Auskommentieren dient dazu, dass Textstücke vom Compiler nicht beachtet werden. Damit kann man Kommentare in das Programm einfügen, ohne dass beim Übersetzten des Programms dadurch Probleme entstehen.
Seite 58
9. C für ASURO Die Deklaration erfolgt entweder “außerhalb” der main()-Funktion als globale Variable, (das heißt, die Variable ist für das gesamte Programm verfügbar), innerhalb der main()-Funktion, (dann gilt sie nur für Programmcode, der in der main()-Funktion steht) oder innerhalb einer eigenen Funktion (dann ist sie nur hier gültig).
9. C für ASURO 9.1.3. Compilerdirektiven Sicher hat das #include “asuro.h” schon für Verwirrung gesorgt. Die #include-Direktive heißt nichts anderes, als dass Text, welcher in der angegebenen Datei steht in das Programm eingebunden und beim Compilieren mitübersetzt wird. Im vorliegenden Fall werden einige Routinen, welche für den Betrieb des Roboters erforderlich sind, verfügbar gemacht.
Seite 60
9. C für ASURO Will man eine Entscheidung unter mehreren Alternativen treffen, so kann man mehrere “else if”- Anweisungen verwenden. if (Bedingung 1) Anweisungsblock 1 else if (Bedingung 2) Anweisungsblock 2 else if (Bedingung 3) Anweisungsblock 3 else if (Bedingung 4) Anweisungsblock 4 else Anweisungsblock 5...
9. C für ASURO 9.1.5. Schleifen Schleifen dienen dazu, Anweisungen mehrmals auszuführen. In der “while”-Schleife wird eine Bedingung ausgewertet. Ist die Bedingung wahr, so wird der Anweisungsblock ausgeführt und die Bedingung erneut geprüft, bis diese falsch wird. Dannach wird das Programm hinter dem Anweisungsblock fortgesetzt. while( Bedingung) Anweisungsblock Beispiel:...
9. C für ASURO “while(1)” äquivalent zu “for(;;)” ist eine Endlosschleife, die niemals verlassen wird, da die Bedingung für den Abbruch niemals falsch (also 0) wird. Als weiteres Schleifekonstrukt gibt es die “do”-Schleife Anweisungsblock while( Bedingung); Im Gegensatz zur “while”-Schleife wird hier die Bedingung am Ende des Anweisungsblockes auf Ihren Wahrheitgehalt hin untersucht.
Seite 63
9. C für ASURO Nachdem die Datentypen bekannt sind und ein klein wenig über Funktionen geredet wurde, versuchen wir uns an einer kleinen Beispielfunktion, welche zwei 8-Bit-Zahlen multiplizieren und das Ergebnis zurückgeben soll. int Mult(char a, char b) /* Funktion liefert einen int-Wert zurück, hat den Namen Mult, und bekommt zwei char als Parameter übergeben */ // Beginn der Funktion int c;...
9. C für ASURO 9.1.7. Zeiger und Vektoren Zeiger und Vektoren werden hier nur soweit behandelt, wie diese zum Betreiben von ASURO notwendig sind. Werden die Linienfolgesensoren, bzw. die Sensoren der Odometrie ausgelesen, benötigt man Vektoren. Deren Deklaration ist denkbar einfach: int lData[2];...
9. C für ASURO Will man Zeichen empfangen, ist für ASURO die Funktion SerRead () defi niert. Der erste Parameter enthält die Zeichenkettenvariable, in welcher empfangen Zeichen abgespeichert werden, der zweite Parameter gibt an, wieviele Zeichen empfangen werden sollen, der dritte stellt ein Timeout dar.
9. C für ASURO 9.2.1. void Init(void) Der Mikrocontroller wird in seinen Grundzustand gebracht. Diese Funktion muss immer am Anfang eines Programms aufgerufen werden. Ohne den Aufruf dieser Funktion am Anfang weiß der Prozessor nicht mal, was er mit seinen Beinchen machen soll. Ein Programm für ASURO muss mindestens so ausschauen: #include “asuro.h”...
9. C für ASURO 9.2.3. void FrontLED(unsigned char status) Die Front-LED (D11) kann ein- bzw. ausgeschaltet werden. Mögliche Übergabeparameter sind ON bzw. OFF. Beispiel: Die Front-LED soll leuchten: FrontLED(ON); 9.2.4. void BackLED(unsigned char left, unsigned char right) Die Back-LEDs (D15 und D16) können ein- bzw. ausgeschaltet werden. Der erste Parameter beschreibt den Zustand der linken Back-LED (D15), der zweite Parameter den der rechten Back- LED (D16).
9. C für ASURO 9.2.7. void MotorSpeed(unsigned char left_speed, unsigned char right_speed) Hier wird die Geschwindigkeit der Antriebsmotoren vorgegeben. Der maximal mögliche Geschwindigkeitswert ist 255 (unsigned char). Der Motor fängt sich erst ab einem Wert von ca. 60 zu drehen an. (Hängt stark vom mechanischen Zusammenbau ab.) Der eingestellte Wert gibt eigentlich nur an, welche elektrische Leistung die Motoren erhalten sollen.
9. C für ASURO Beispiel: Die Zeichenkette „Fahr los“ soll empfangen werden. Dabei soll sichergestellt sein, dass alle Zeichen bei ASURO eingetroffen sind, bevor weitergemacht werden kann. Anmerkung: Es werden nur acht Zeichen empfangen. Eine Überprüfung ob auch wirklich ‘Fahr los’ angekommen ist, fi ndet nicht statt.
9. C für ASURO Jaja, diesmal wieder im ganzen Programm: #include “asuro.h” // Linienverfolgung auf die einfachste Art int main(void) { unsigned int data[2]; //Speicher bereitstellen Init(); FrontLED(ON); // Linienbeleuchtung einschalten MotorDir(FWD,FWD); // Beide Motoren auf vorwärts while(1){ // Endlosschleife, ASURO soll beliebig // lang einer Linie nachfahren LineData(data);...
9. C für ASURO 9.2.12. unsigned char PollSwitch(void) Die Taster (K1-K6) werden ausgewertet. Diese Funktion liefert ein Byte. In diesem Byte ist die Information enthalten, welche Taster gedrückt wurden. Dabei setzt Taster 1 das 5. Bit, Taster 6 das 0. Bit.
Teil IV. Anhänge A. Stückliste Zusätzlich zu einem Tischtennisball werden zum Aufbau eines ASUROs noch folgende Teile benötigt: 1x Platine ASURO 2x Motoren Typ Igarashi 2025-02 1x Diode 1N4001 8x Dioden 1N4148 4x Transistoren BC 327/40 oder BC 328/40 4x Transistoren BC 337/40 oder BC 338/40 1x Integrierter Schaltkreis CD 4081BE 1x Prozessor ATmega 8L-8PC (vorprogrammiert) 1x IR-Empfänger SFH 5110-36...