Werbung
Das Bild vom Antrieb hat übrigens nur 594 Pixel Breite.Bilder mit mehr als 600 Pixel Breite ...
Dem kann ich weitgehend zustimmen. Das Interessante am Nibo ist der große Speicher des ATmega128 und die Unterstützung durch die beiden ATtiny44 (Motorcontroller, IR-Controller). Das könnte - vom ASURO kommend - interessante Perspektiven eröffnen.für Quereinsteiger aus der Elektronik oder Mechanik bestens geeignet aber nicht für nen Schüler oder kompletten Anfänger der noch gar keine Erfahrung besitzt.
Testsoftware und über den ATmega128 programmierte Firmware für die beiden ATtiny44 steht nun incl. Beschreibung zur Verfügung:
http://nibo.editthis.info/wiki/Software
Das von mir getestete System funktionierte wie beschrieben.
Passende C-Bibliothek wird von nicai-systems zur Verfügung gestellt: http://sourceforge.net/projects/nibo/
Die Bibliothek ist logisch und klar aufgebaut, also ein brauchbares Fundament.
Beim Verbinden des Atmel STK500 Starter Kit mit dem 6-Pin-ISP-Stecker des Nibo muss man auf die korrekte Ausrichtung des Steckers achten, da man diesen drehsymmetrisch falsch einstecken kann. Hier die korrekte Verbindung, falls das jemand machen will:
Externes Bild anzeigen
@steveLB: Ich stimme dir ja in vielen zu nur bei folgendem Punkt nicht:
Es gibt genügend Institutionen bei der perfekte Rechtschreibung, Gramatik und Form gefordert werden aber ich finde man kann auch mal drüberweg sehen wenn der Macher eines guten Produktes hier nicht soviel Wert drauf legt als auf das Produkt selbst. Mir wäre es Schnurz wieviel Rechtschreibfehler in einer Produktbeschreibung sind solange die gut verständlich und sachlich ok ist. Letzteres kann ich hier nicht beurteilen da ich diese nicht gelesen habe. Aber ich finde es unangemessen eine aufwenige Arbeit wegen ein paar Schreibfehlern nieder zu reden. In meinen Dokus sind garantiert auch genug drin, einfach weil in erster Linie das basteln das Hobby und die Stärke ist und nicht das geschreibe. Ich weiss das jetzt innerlich einige aufschrein - aber wir sollten diesen Thread nicht noch weiter mit Grundsatzdiskussionen zerstören. Jedenfalls sehe ich es nicht gerne wenn im Roboternetz wegen Schreibfehlern gelästert wird - so nörgelig soll es hier nun doch ncht werden, das sollen andere Foren übernehmen. Was nicht heißt das ich es nicht schön finde wenn zumindest die Betreffs fehlerfrei im Forum stehenZitat von steveLB
![]()
Gruß Frank
Und zur Rechtschreibung, eine Doku macht mehr her wenn keine Fehler drinn sind ,...
... da sollte es für ein Produkt was man verkaufen möchte Pflich sein.
das ich auch fehler mache ist klar , danke robo.fr![]()
@ Frank
ist meine meinung , ich mach da keinen nieder weger der rechtschreibung, wollt damit nur sagen das man da achten soll, und das rechtschreibprogramm von Word kann man ja mal drüber lassen.
ich hab seine anleitung auch noch nicht gelesen, hatte keine zeit, da ich bis heute prüfungen hatte![]()
und *JUHU* sie sind rum *freu*
<-- macht Ferien
EDIT : ich weiß auch das Basteler wie wir lieber ihr Wunderwerk schnell und mit vielen Details und vor allem Inhalt presentieren , da bleibt die Rechtschreibung mal auf der Strecke, ich mach das auch so , nur wenn ich etwas abgeben muss ( für eine Note, oder um es zu Verkaufen) dann wird die Rechtschreibung mal eingeschaltet.
Gruß
[X] <-- Nail here for new Monitor
extra für ehenkes : Rechtschreibung *gg*
habs jetzt die Doku überflogen, sieht sauber aus , denk ich könnt den auch Aufbauen *fg*
Gruß
[X] <-- Nail here for new Monitor
Die Dokumentation ist noch im Fluss. Meine Erfahrungen und Probleme beim Aufbau und Testen - und meine Rechtschreibkünste - lasse ich dem Entwickler selbstverständlich zukommen, was sich in einer weiteren Verbesserung der Dokumentation nieder schlagen wird. Wichtig ist auch das Wiki zum Nibo, das ständig wächst und gedeiht. Wenn man mit dem ASURO beginnt und sich damit einige Erfahrung aneignet, kann man sich auch an den Nibo heran trauen. Die Struktur der Programmbibliothek in C wird euch sicher gefallen, ist sehr ordentlich.
Allerdings kämpfe ich momentan noch mit zwei Punkten in der Elektronik. Die Odometrie und die Abgrundsensoren funktionieren nicht wie erwartet. Nun ist die Frage, ob es an der Elektronik oder dem Testprogramm liegt. Da fehlen einfach noch die Erfahrungen. Momentan muss man Anfängern daher vom Nibo abraten, bis genügend Erfahrungen mit Problemfällen und/oder Abweichungen vorliegen. Das System ist komplex.
EDIT1:
Thema Odometrie ist gelöst. Es war eine schlechte Lötstelle am 10-Pin-Wannenstecker. Darauf kommt man allerdings nicht so schnell, weil das 10-Pin->2*5-Pin-Kabelsystem kompliziert ist und man den Fehler eher dort vermutet.
Man sollte nun 20 (= 4 Löcher * 5-fach Untersetzung) Zählimpulse pro Radumdrehung beobachten können. Bei den mitgelieferten Gummirädern mit 37 mm Durchmesser entspricht dies 3,1416 * 37 mm / 20 Zähler = 5,8 mm / Zähler (c't-Bot: 3 mm/Zähler, RP6: 0.25 mm/Zähler ).
EDIT2:
Thema Abgrundsensoren (CNY70) vorne rechts/links ist hoffentlich auch gelöst. Problem war offensichtlich ein Kurzschluss der Beinchen der Liniensensoren (unter der Platine, Beinchen oben eingelötet und abgezwickt) gegen die Rückseite des darüber platzierten Spannungsreglers 7805. Da fehlt noch eine professionelle elektrische Isolierung! Ich hatte vorsichtshalber Isolierband aufgeklebt, aber das wird sicher leicht durchstoßen von abgezwickten Beinchen. Wäre z.B. Nachlöten notwendig geworden, hätte ich Nibo wieder mühsam "zerpflücken" müssen. Das ist beim Aufbau/Testen ein konstruktiver Schwachpunkt des Nibo, weil man nicht mehr an die Lötpunkte der Liniensensoren heran kommt. Dieses Thema muss in der Dokumentation ausführlicher besprochen werden und eine passende mechanisch stabile Isolation sollte mitgeliefert werden.
Seit heute morgen steht die erste offizielle Bibliothek (C/C++) für den Roboterbausatz Nibo zum Download bereit:
https://sourceforge.net/project/show...kage_id=239101
Zur Beachtung: Mit AVR Studio (kostenlos bei Atmel) Version 4.12 unbedingt das Service Pack verwenden (ansonsten hängt sich der Compiler/Linker aus unerklärlichen Gründen auf), noch besser ist es, die aktuelle Version 4.13 einzusetzen. Diese zeigt zusätzlich den durch das Programm belegten Speicherplatz im ATmega128 an.
Zum Eingewöhnen eine erste Firmware für den Nibo:
Die sechs Status-LEDs sind von 0 bis 5 nummeriert, wie man es analog einem C-Array erwartet. Solche Feinheiten finde ich z.B. wichtig, damit die Programmierung intuitiv auf Anhieb gelingt. Das helle vorne sind die beiden "Scheinwerfer" ( vgl. http://www.nicai-systems.de/images/niboAtNight_320.jpg ), die die daneben liegenden Status-LEDs im Dunkeln überstrahlen.Code:#include <avr/interrupt.h> #include "nibo/niboconfig.h" #include "nibo/delay.h" #include "nibo/pwm.h" #include "nibo/display.h" #include "nibo/bot.h" #include "nibo/gfx.h" #include "nibo/bot.h" #include "nibo/gfx.h" #include "nibo/leds.h" int main() { sei(); // enable interrupts bot_init(); leds_init(); pwm_init(); display_init(); gfx_init(); leds_set_displaylight(600); gfx_move(10,10); gfx_print_text("Nibo sagt:", 0); gfx_move(10,30); gfx_print_text("Hallo Welt!", 0); int i,j; for(i=0;i<10;++i) { for(j=0;j<6;++j) { leds_set_status(LEDS_RED,j); delay(500); } leds_set_headlights(256); for(j=0;j<6;++j) { leds_set_status(LEDS_ORANGE,j); delay(500); } leds_set_headlights(512); for(j=0;j<6;++j) { leds_set_status(LEDS_GREEN,j); delay(500); } leds_set_headlights(1024); } while(1); return 0; }
Externes Bild anzeigen
Ich kann den Nibo nur mit Grafikdisplay empfehlen. Gerade die Initializer-Software, die die beiden ATtiny44 mit Firmware und den ATmega128 mit Testsoftware versorgt, visualisiert für erste Prüfungen nach dem Aufbauen wichtige Messdaten zu Odometrie, Abgrund- und Liniensensoren, fünffache IR-Abstandsmessung (nach vorne und zur Seite) und RC5-Codes.
Für wenige Daten ist dies einfach bequemer und autonomer als die IR-Kopplung an einen PC mit Terminal-Software.
Was mir gut gefällt, ist die einfache Textausgabe auf dem internen "Terminal". Das ist anfängergerecht.![]()
Man kann die Funktionen gfx_move(...) und gfx_print_text(...) auch in eine WinAPI-analoge Funktion umbauen:
Das erleichtert bei mehrzeiligen Ausgaben die Übersicht im Programm.Code:void textout(int x, int y, char* str, int ft) { gfx_move(x,y); gfx_print_text(str,ft); }
Eine detaillierte Untersuchung der Programmiermöglichkeiten werde ich hier beschreiben: http://www.henkessoft.de/Roboter/Nibo.htm
Hier noch ein Beispiel zur Ausgabe der Batteriespannung:
Beim Flashen mit dem STK500 sieht man mit diesem Programm die von diesem Board anliegende Spannung, da das Programm nach dem Flashen sofort startet: 4,70 VoltCode:#include <avr/interrupt.h> #include "nibo/niboconfig.h" #include "nibo/delay.h" #include "nibo/pwm.h" #include "nibo/display.h" #include "nibo/leds.h" #include "nibo/bot.h" #include "nibo/gfx.h" #include "nibo/bot.h" /* float round(float zahl, int stellen) { float v[] = { 1, 10, 1e2, 1e3, 1e4 }; return floor(zahl * v[stellen] + 0.5) / v[stellen]; } */ void float2string(float value, int decimal, char* valuestring) { int neg = 0; char tempstr[20]; int i = 0; int j = 0; int c; long int val1, val2; char* tempstring; tempstring = valuestring; if (value < 0){ neg = 1; value = -value; } for (j=0; j < decimal; j++) {value = value * 10;} val1 = (value * 2); val2 = (val1 / 2) + (val1 % 2); while (val2 !=0){ if ((decimal > 0) && (i == decimal)){ tempstr[i] = (char)(0x2E); i++; } else{ c = (val2 % 10); tempstr[i] = (char) (c + 0x30); val2 = val2 / 10; i++; } } if (neg){ *tempstring = '-'; tempstring++; } i--; for (;i > -1;i--){ *tempstring = tempstr[i]; tempstring++; } *tempstring = '\0'; } float SupplyVoltage(void) { bot_update(); return(0.0166 * bot_supply - 1.19); } void textout(int x, int y, char* str, int ft) { gfx_move(x,y); gfx_print_text(str,ft); } void Init(void) { sei(); // enable interrupts bot_init(); leds_init(); pwm_init(); display_init(); gfx_init(); } int main() { Init(); leds_set_displaylight(1000); float Ubatt = SupplyVoltage(); char text[6]; float2string(Ubatt,2,text); textout(4,10,"Versorgungsspannung:",0); textout(4,24,text,0); textout(60,24,"Volt",0); while(1); return 0; }
Die Spannung des Nibo liegt mit geladenen Akkus über 10 Volt. [/code]
Lesezeichen