Projektpraktikum Künstliche Intelligenz und Roboterbau

Carl von Ossietzky Universität Oldenburg
Sommersemster 2003
Dozent Dr. Achim Kittel

Home

Erste Vorstellung
Theorie
Hardware
   - Baugruppen
Software
   - Entwicklung
   - Quellcode
Ergebnis
Das Team
Quellen und Links

Softwareentwicklung

Die Softwareentwicklung nahm am meisten Zeit in Anspruch, da eine Einarbeitung in Assembler und hardwareseiteitiger Programmierung erforderlich war. Die notwendigen Informationen nahmen wir fast ausschließlich aus den von Atmel geschriebenen Dokumenten.
Durch die hardwarenahe Programmierung ist es erforderlich, die roboterspezifischen Daten zu erläutern, um eine Portierung auf ähnliche Roboter zu ermöglichen. Im Folgenden seinen nun die softwarerelevanten Werte dargestellt:

Daten und Meßwerte der Softwareentwicklung

Durch den Anschluß eines Funktionsgenerators ermittelten wir durch Versuche den Frequenzbereich der Motoransteuerung. Unsere minimale Schrittfrequenz, bei der der Roboter anfuhr, lag bei 490 Hz. Die maximale Schrittfrequenz beträgt 1010 Hz.
Unser ATmega32 wird extern mit 11 Mhz getaktet. Für eine Frequenz von 500 Hz liegt die obere Grenze des Hardwarecounters bei 170. Für 1000 Hz liegt die obere Schranke bei 90. In diesem Frequenzbereich haben wir gearbeitet.
Ein Radumfang beträgt 21,2 cm. Bei einem Radabstand von 10,1 cm ergibt sich ein Drehkreis der Länge 63,5 cm. Der Motor macht 600 Schritte für eine Radumdrehung. Daraus errechnet man leicht die Schrittanzahl pro zu fahrenden Vollkreis. Somit ergibt sich für die Drehung um 1 Grad 4,995 Schritte. Wir können also als Faustformel sagen, daß ein Drehwinkel einem Zehntel des Streckenregisters entspricht.
Aus den Daten läßt sich dann auch leicht berechnen, daß das Streckenregister 5660 betragen muss, um einen Meter zurückzulegen. Bei unserem 16-bit-Register erhalten wir eine maximale Reichweite von ca. 11,5 Meter, ohne ein erneutes Schreiben des Streckenregisters durchführen zu müssen.

Kontrollflussdiagramm

Das Kontrollflussdiagramm ist eine graphische Darstellung des von uns programmierten Quellcodes. Wir haben darauf verzichtet, uns in die genauen Definitionen und Darstellungsformen von solchen Diagrammen einzuarbeiten. Dennoch ist der Assemblercode einfach genug gehalten, daß er spätestens mit diesem Diagramm verständlich sein wird.
Wir haben Sprungstellen und deren folgenden Codesegmente als Funktionen aufgefasst, und diese in Kästen gezeichnet. Schleifen wurden mit Rauten symbolisiert. Verzweigungen sind mit Trennlinien abgegrenzt und tragen blaue Entscheidungsmarken. Wir haben das Navistatusregister in das Diagramm aufgenommen, da es eine entscheidene Rolle im Code spielt und zum Verständnis notwendig ist.
Kontrollflussdiagramm Das Kontrollflussdiagramm