Allerdings scheint er leicht behindert zu sein: ab und zu knallt er durch und fährt im Kreise, wo er doch nur 50 cm geradeaus fahren sollte und dann stehenbleiben. Ist da irgendwas mit der PID-Regelung?
Ja, da stimmt etwas nicht. Bei mir kommen da zu wenige Encoder-Ticks an (wahrscheinlich eine Grenzwert-Festlegung bei den Fototransistoren). Das habe ich dem Entwickler bereits mitgeteilt. Bisher ist das Problem noch nicht gelöst. Daher verwende ich eine MotCo-Firmware, die ich am 18.07.2007 erhalten habe und die super funktioniert (nur leichte Schlangenlinie aber sehr gerade!). Ich lege diese Initializer.hex auf meine Page, damit wir die gleiche haben: http://www.henkessoft.de/Roboter/ini...18Juli2007.zip
Mit dieser Firmware fährt er genau 50 cm, wenn Du auf die Rad-Daten kalibrierst. Ich habe das mal so gelöst:
Code:
void Go(int dist, int cm_pro_sec)
{
const float TICKS_PER_CM = 1.75f;
motco_resetOdometry(0,0);
motco_update();
int limit = dist * TICKS_PER_CM;
int pwm = cm_pro_sec * 80;
if (pwm > 1024) pwm = 1024;
if (pwm < -1024) pwm = -1024;
motco_setPWM(pwm,pwm);
motco_setSpeed(cm_pro_sec * TICKS_PER_CM , cm_pro_sec * TICKS_PER_CM);
motco_update();
do
{
motco_update(); /* geradeaus fahren */
}
while(motco_ticks_l < limit);
}
Ansonsten können wir ja eine neue Highlevel-Bibliothek entwickeln. Ich setze allerdings inzwischen auf C++, da ich dann eigene Klassen einsetzen kann. Dies macht vor allem wegen der Kapselung und Wiederverwendbarkeit Sinn. Das SRAM des ATmega128 ist mit 4096 Bytes ausreichend groß.
Die LEDs kann man sehr schön lichtorgeln.
Das ist richtig! Die LEDs sind in Verbindung mit den herrlichen "Scheinwerfern" das Charakteristischste am Nibo. Freut mich, dass Dir das auch so gut gefällt.
Ich empfehle Dir unbedingt das Graphikdisplay nachzurüsten. Mit 8 Zeilen je 21 Charakter ist das einsame Spitze. Allerdings musst Du dann einen 20-Pin-Stecker herstellen (im Schraubstock leicht) und 20 Lötstellen am Display fertigen (nervig!). Allerdings belegt das Display auch massig I/O des ATmega128 (siehe: http://nibo.editthis.info/wiki/Haupt-Controller).
Die IR-Kommunikation war ja schon beim ASURO nicht sonderlich praktisch wegen der zu kurzen Reichweite. Wenn schon, dann müsste man mit Funk nachrüsten. Durch die I²C-Schnittstelle kein wirkliches Problem.
Lesezeichen