Wie Programmiere ich in der Roboter-AG??? Dieses File soll dir Helfen mit den Programmierstrategien...

Preview:

Citation preview

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

Recommended