Manus Blog twitter
Manus Blog Rss

Der Linienkurs

Veröffentlicht von Manu in Computer, Hardware, Pololu 3pi am 30-07-2009

0

Hi,

ich hab heute mal einen Linienkurz für den Roboter gezeichnet.

Der Kurs soll später mal auf 2 Meter x 2 Meter großes Papier geplottet werden, wo ich das mache, steht allerdings noch in den Sternen.

Linienkurs Das Originalbild, hier ist nur eine verkleinerte Version, ist, wie gesagt, 2 Meter mal 2 Meter groß, was bei 300 DPI ca.6000×6000 Pixel bedeuten. Die Linie ist 1,9cm breit, was einem dreiviertel Zoll entspricht. Die dreiviertel Zoll kommen von der Website von Pololu. Ich denke, damit wird man ganz gut fahren.

Zum Parcours selbst: Bei Punkt A wird der Roboter beginnen. Nach ca. 30cm geradeaus, folgt die erste 90° Wende nach links. Die Linien bis zum Punkt B sind jeweils 30cm lang. Bei Punkt B ist die erste Kurve zu überwinden. Die Kurve hat einen Radius von ca. 15cm. Nach zwei weiteren Wenden, folgt bei Punkt C eine scharfe 45° Wende nach links. Nach weiteren Wenden und Kurven, ist bei Punkt D eine Wende direkt nach einer Kurve. Interessant wird nun der Zickzack bei Punkt E. Die Linien sind dort jeweils 15cm lang. Hat er das geschafft, folgt ein weiterer Zickzack mit Linienlänge von 10cm bei Punkt F. Ist dieser hinter sich gebracht, kann der Roboter bei Punkt G zeigen, wie schnell er ist. Satte 1,5,m Geradeausfahrt steht an. Bei Punkt H stehen nun ein paar Kurven mit Radius von ca. 15cm an. Der interessanteste und wohl auch schwerste Part, dürfte nun bei Punkt I liegen. Bei diesem Zickzack sind die Linien nur noch 5cm lang, da bin ich gespannt, ob er hier durchkommen wird. Weiter geht’s bei Punkt K (ja, ich weiß, es fehlt ein Punkt J und ja, ich kann das Alphabet…) mit weiteren Kurven mit 7cm Radius. Sind auch diese bewältigt, ist das Ziel bei Punkt L erreicht. Nach so einer Fahrt, warten dort natürlich ein paar gekühlte Getränke auf den Roboter. ;-)

Als nächstes gilt es, den Kurs irgendwo plotten zu lassen, ansonsten darf ich mir den aus 80 DIN A4 Seiten selbst zusammenschnibbeln…

Heute werde ich noch ein paar Vorüberlegungen zum Algorithmus machen, den ich mit Glück am Wochenende programmieren werde.

In diesem Sinne: Stay tuned!

Das erste eigene Programm

Veröffentlicht von Manu in Computer, Hardware, Pololu 3pi, Programmierung am 25-07-2009

0

Hi,

gestern habe ich mich doch noch kurz dran gesetzt und schrieb mein erstes, winziges Programm für den Roboter. Das Ziel: Im Kreis herum fahren. :)

Um das zu erreichen, braucht man nur recht wenig Code, die 3pi API bietet schon einiges:

/*******************************************************
* CircleDrive                                          *
*                                                      *
* Author:  Manuel Rauber                               *
*                                                      *
* Date: 25.07.2009                                     *
*                                                      *
* Purpose: Let 3pi drive a little circle               *
*                                                      *
* Usage:                                               *
*      Press Button B to start the program             *
********************************************************/

// Include 3pi API
#include <pololu/3pi.h>

int main() {
  // Wait for the user. He has to press the B Button to start
  while (!button_is_pressed(BUTTON_B));
  wait_for_button_release(BUTTON_B);
  delay_ms(2000);

  // Infinite loop
  while (1) {
    // Drive 2 secs straight on
    set_motors(40, 40);
    delay_ms(2000);

    // Do a 90 Degree turn to the left
    set_motors(-80, 80);
    delay_ms(180);
  }
}

Der erste Test

Veröffentlicht von Manu in Computer, Hardware, Pololu 3pi am 24-07-2009

0

Hi,

die Pololu AVR Library bringt ein paar Testprogramme für den Roboter mit. Um das ganze einfach mal auszuprobieren, folgte ich dem User’s Guide und spielte ein simples Testprogramm auf den Roboter.

Zuerst lud ich das Programm simple-test.aps im AVR Studio. Per Build :arrow: Build (F7) ließ ich das Programm erzeugen. Per Tools :arrow: Program AVR :arrow: Connect… erscheint ein Dialog, in dem man den AVR Programmer auswählen muss. Ich hab hier einen AVRISP mkII, welcher per USB angeschlossen wird. Also fix aus der Liste ausgewählt, auf Connect… gedrückt. Danach öffnet sich das Programmierprogramm vom AVRISP mkII. Laut User’s Guide muss man nur noch die Hex-Datei laden und aufspielen, aber das wollte bei mir nicht direkt. Im Programm war noch nicht hinterlegt, welcher Microcontroller genutzt wird. Also fix auf den Reiter “Main” gewechelt, dort gibt es eine Auswahlliste, in dem man den ATmega 168 einstellen konnte. Gesagt, getan. Danach wieder zum Reiter “Program” gewechselt, Hex-Datei ausgewählt und auf “Program” gedrückt, allerdings quittierte das Programm den Versuch mit der Meldung:

ISP frequency must be 5 kHz or above when programming EEPROM or FLASH!

Hmm, wieder zurück zum Reiter “Main”, dort stand die ISP frequency auf etwas mehr als 1 kHz. Der Knopf “Settings…” hilft aber, das Problem zu beseitigen. Dort kann man aus verschiedenen Presets eine ISP frequency auswählen. Ich hab dort einfach mal 6.48 kHz ausgewählt, dass war das erste Preset, dass am nächsten an 5 kHz dran ist. Kurz bestätigen und schwupps klappte das Aufspielen vom Programm. :-) Lustiges blinken der LEDs und ein kurzer Ton bestätigte, dass alles erfolgreich ablief.

Dann will ich mal ein bisschen mit dem Kleinen herumspielen und ihn mal ein bisschen im Kreis fahren lassen. :-)

Die ersten Vorbereitungen: Installation der benötigten Software

Veröffentlicht von Manu in Computer, Hardware, Pololu 3pi am 24-07-2009

0

Hi,

von Atmel gibt es eine IDE mit dem Namen AVR Studio 4, welche ich heruntergeladen und installiert habe. Praktischerweise soll sie auch in einer 64-Bit Umgebung funktionieren, da werde ich wohl gegen später noch den Laptop einschalten und den auch soweit hinbiegen, dass ich über diesen den Roboter programmieren kann.

Nach dem Registrieren auf der Seite von Atmel.com, sonst kommt man ja leider nicht an den Download, stehen ca. 150MB Download an. Einmal das AVR Studio in der Version 4.16 (Build 628) und das SP1 (Build 638). Der Download wird auf 300kb/s begrenzt, was für DSL 16.000 natürlich nervend ist.

Die Installation von Programm und SP lief ohne Probleme auf Vista Ultimate SP 2 32-Bit, welches ich auf meinem Desktop PC habe. Bei der Installation auf dem Laptop, welches mit einem Vista Ultimate SP1 64-Bit läuft, bekam ich eine kryptische Fehlermeldung mit dem Inhalt “@Windows Vista Service Pack 1″. So wie es ausschaut, muss ich wohl auf SP2 updaten. Komischerweise wurde es mir nicht per Windows Update angezeigt, deswegen machte ich es von Hand. Jedoch bekam ich nun die Meldung “@ Windows Vista Service Pack 2″. Im Nachhinein stellte sich heraus, dass es nicht am Service Pack lag, sondern, dass die Datei nicht vollständig vom Desktop auf den Laptop kopiert wurde. Nunja, hab ich wenigstens SP2 auf dem Laptop drauf. :)

Damit man das AVR Studio nutzen kann, muss man noch WinAVR installieren. WinAVR beinhaltet den GNU GCC Compiler für C und C++, einen Programmer (avrdude) und einen Debugger (avr-gdb).

Zu guter letzt braucht man die noch Pololu AVR Library. Da bei mir die Install.bat nicht funktionieren wollte, muss man die Lib von Hand installieren, was aber kein Problem darstellt:

Zuerst extrahiert man alle Dateien aus der heruntergeladenen Zip-Datei. Danach kopiert man die Dateien libpololu_atmega48.a, libpololu_atmega168.a und libpololu_atmega328p.a in den Ordner $WinAVR\avr\lib. $WinAVR ist der Installationordner von dem vorher installierten WinAVR. Allerdings muss man aufpassen, direkt im WinAVR-Ordner gibt es einen Ordner namens lib, das ist aber nicht der richtige, man muss zuerst in den Ordner avr, welcher wiederum einen Ordner namens lib beinhaltet.
Zum Schluss wird der komplette Unterordner pololu unter $WinAVR\avr\include kopiert.

Bitte den Roboter nicht lecken!

Veröffentlicht von Manu in Allerlei, Computer, Hardware, Pololu 3pi am 24-07-2009

0

Hi,

da les ich gerade etwas im User’s Guide vom 3pi und sehe folgendes:

The 3pi robot contains lead, so follow appropriate handling procedures, such as not licking the robot and washing hands after handling.

:mrgreen: Wer, um alles in der Welt, kommt auf die Idee, an seinem Roboter herumzulecken? :mrgreen:

Wobei, wenn man “licking” mit Prügel übersetzt, macht es doch noch etwas Sinn, aber lustig bleibt es allemal.

Ein zackiger, kleiner Sportsfreund: Der Pololu 3pi

Veröffentlicht von Manu in Computer, Hardware, Pololu 3pi am 24-07-2009

Tags: , , , , , ,

2

Hi,

unser Lehrer hatte uns mal ein Video von dem kleinen Sportsfreund Pololu 3pi gezeigt. Da wir selbst gerade in Informationstechnik einen Linieverfolgungsroboter bauten, war ich sichtlich angetan von dem kleinen Kerl und ließ verlauten, dass ich, sobald ich das nötige Kleingeld (kostet ca. 150€ alles zusammen) dafür habe, mir diesen kleinen Knaben holen möchte, um mich zu Hause damit zu beschäftigen. Mein Lehrer meinte darauf hin, dass er sowieso mal einen über die Schule bestellen will, was er auch getan hat. Heute drückte er mir eine Plastiktüte in die Hand, in dem das kleine Etwas drin steckte, nebst dem USB-Programmer, den man zum Programmieren braucht.