Wie Programmiere ich in der Roboter-AG???
Dieses File soll dir Helfen mit den Programmierstrategien in der
Roboter-AG vertraut zu werden.
Im Hauptordner deines USB-Sticks diese EXE-Datei ausführen. (auf die Dateigröße achten)
Die Maschine „Roboter-Linux“ auswählen und auf Starten klicken
1.
2.
Sich als „Roboter“ mit dem Passwort „roboter“ anmelden.
1.
2.
3.
Der Ursprüngliche Editor aus der Anleitung
Hier werden die „Projekte“ gespeichert
Über das Terminal kann man das Flashtool aufrufen
Das ist die Asuro-Bibliothek
Mit diesem Programm programmiert man
- Um ein neues Projekt zu beginnen, öffnet man zuerst den Ordner „Projekte Asuro“.- Am Anfang findet man hier den Ordner „FirstTry“. -Dieser darf nicht gelöscht werden sonst ist das Programmgerüst weg und man muss dieses neu schreiben, was auch keine schlechte Übung ist.-Man legt einen Ordner mit dem Namen an, wie später das eigeneProjekt heißen soll. Bsp: „StatusLedYellow“-In diesen Ordner kopiert man noch nichts.-Jetzt muss man diesen Ordner minimieren und AVR-Studio 4 starten.-Dies dauert ein bisschen d.h. nicht wild rumklicken sonst dauert es noch länger.
New Project wählen
Denn Pfad anpassen.
Auf Edit Configuration klicken
Alle Werte wie sie hier stehen eingeben
Denn Pfad anpassen.
Die Libary hinzufügen.
Den Pfad anpassen.
Den lib Ordner aus der Libary hinzufügen
Bei den Sourcefiles noch asuro.c aus der LibaryHinzufügen.Jetzt kann man anfangen zu Programmieren…
Um alles zusammenzufügen unter Build auf Build klicken.Das kann man auch mit F7 machen.
So sieht es aus wenn man nichts falsch gemacht hat.Das hex-File wurde im Ordner „default“ unter StatusLedYellow gespeichert
Über das Terminal kann man das FlashTool starten indem man einfach „asuroflash“ eingibt.Man muss nur das Hex-File auswählen und die Schnittstelle und dann einfach auf „Flash Asuro“klicken
Um die Maschine auszuschalten muss man nicht einmal die Programme schließen. !?!
Einfach auf das Kreuz rechts oben klicken.!! <- ahaa
Es erscheint ein kleine Fenster. Nun wählt man aus: den Zustand der virtuellen Maschine speichern. Dann klickt man auf OK.
Beim nächsten Start der Maschine wird gleich weitergearbeitet, d.h. die offenen Programme werden wiederhergestellt.
Programmieren in C I• Standard-Gerüst, welches immer vorhanden sein muss.
#include “asuro.h”int main(void) {Init(); // Die Ports des Asuros werden initialisiert
/*Hier kommt das ganze Programm rein*/
while(1); //Endlosschleifereturn 0; //Ende}
Programmieren in C II• void StatusLED(unsigned char color)
#include “asuro.h”int main(void) {Init();
StatusLED(YELLOW); //GREEN, RED, YELLOW, OFF
while(1); //Endlosschleifereturn 0; //Ende}
Hier wird die LED in der Mitte von ASURO angesteuert werden. Sie hat drei Farben (Grün, Rot und Gelb).
Programmieren in C III• void FrontLED(unsigned char status)
#include “asuro.h”int main(void) {Init();
FrontLED(ON); //ON, OFF
while(1); //Endlosschleifereturn 0; //Ende}
Hier wird die LED an der Unterseite von ASURO angesprochen. Sie wird meistens für die Linienverfolgung eingesetzt.
Programmieren in C IV• void BackLED(unsigned char left, unsigned char right)
#include “asuro.h”int main(void) {Init();
BackLED(ON,OFF); //ON, OFF jeweils für li und re
while(1); //Endlosschleifereturn 0; //Ende}
Die BackLEDs sind die LEDs neben dem Batteriepack.
Programmieren in C V• void Sleep(unsigned char time72kHz)
#include “asuro.h”int main(void) {Init();
Sleep(216); //0…255 basiert auf 72kHz (0.003s/1/72kHz=216)
while(1); //Endlosschleifereturn 0; //Ende}
Sleep(216) ist ein Befehl der 3 Millisekunden keine weiteren Befehle zulässt.
Programmieren in C VI• void MotorDir(unsigned char left_dir, unsigned char right_dir)
#include “asuro.h”int main(void) {Init();
MotorDir(FWD,RWD); //FWD, RWD, FREE, BREAK
while(1); //Endlosschleifereturn 0; //Ende}
Die zwei Motoren haben 4 Möglichkeiten angesteuert zu werden: FWD(Vorwärts), RWD(Rückwärts), FREE(Leerlauf), BREAK(Bremse). Die beiden Motoren können in zwei verschiede Richtungen laufen.
Programmieren in C VI• void MotorSpeed(unsigned char left_speed, unsigned char right_speed)
#include “asuro.h”int main(void) {Init();
MotorSpeed(120,255); //0…255 jeweils für li und re
while(1); //Endlosschleifereturn 0; //Ende}
Nach MotorDir folgt MotorSpeed. Es gibt die Geschwindigkeit der Motoren an.
Programmieren in C VII• void SerWrite(unsigned char *data, unsigned char length)
#include “asuro.h”int main(void) {Init();
SerWrite(„Test“,4); //sendet „Test“ über IR, 4 die Anzahl Ziffern
while(1); //Endlosschleifereturn 0; //Ende}
Asuro sendet einen beliebigen Text. Die Zahl die nach diesem Text folgt ist die Anzahl der Ziffern des Textes.
Programmieren in C VIII• void SerRead(unsigned char *data, unsigned char length, unsigned int timeout)
#include “asuro.h”int main(void) {char daten[8]; //Speicher bereitstellenInit();
SerRead(daten,8,0); //empfängt 8 Zeichen, kein Timeout
while(1); //Endlosschleifereturn 0; //Ende}
Asuro
Programmieren in C IX• void LineData(unsigned int *data)
#include “asuro.h”int main(void) {unsigned int data[2];Init();
LineData(data); //sendet „Test“ über IR, 4 die Anzahl Ziffern
while(1); //Endlosschleifereturn 0; //Ende}
Asuro
Programmieren in C X• void OdometrieData(unsigned int *data)
#include “asuro.h”int main(void) {unsigned int data[2];Init();
OdometrieData(data); //ließt Helligkeitswerte der Lichtschranken aus
while(1); //Endlosschleifereturn 0; //Ende}
Asuro
Programmieren in C XI• unsigned char PollSwitch(void)
#include “asuro.h”int main(void) {unsigned char taste;Init();
taste = PollSwitch(); //“taste“ bekommt den Wert von Pollswitch
while(1); //Endlosschleifereturn 0; //Ende}
Asuro