PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit Nibo2



freekwave
11.01.2011, 18:49
Hallo Leute,
ich habe zu Weihnachten den Nibo2 bekommen, habe jetzt aber ein Problem. Die Tutorial Programme die mitgeliefert wurden funktionierten alle bis auf das Letzte in dem der Nibo2 fahren soll.
Im AVR-Studio läuft alles in der Simulation, doch wenn ich es auf den Nibo2 lade passiert nichts. Könnt ihr mir helfen, oder vielleicht ein Programm geben mit dem es funktionieren müsste?

Das ist das Programm


#include <nibo/niboconfig.h>
#include <nibo/display.h>
#include <nibo/gfx.h>
#include <nibo/copro.h>
#include <nibo/delay.h>
#include <nibo/iodefs.h>
#include <nibo/bot.h>
#include <avr/interrupt.h>
#include <nibo/spi.h>
#include <stdio.h>
int main() {
sei();
bot_init();
spi_init();
display_init();
gfx_init();
gfx_move(62, 0);
gfx_set_proportional(1);
gfx_print_text("motion");
gfx_set_proportional(0);
gfx_move(5, 0);
gfx_print_char('R');
gfx_move(118, 0);
gfx_print_char('L');
delay(50);
copro_ir_startMeasure();
copro_setSpeedParameters(5, 6, 7);
int counter=0;
while (1==1) {
delay(10);
char text[20]="";
bot_update();
float volt = 0.0166 * bot_supply - 1.19;
sprintf(text, "%3.1fV", (double)volt);
gfx_move(25, 0);
gfx_print_text(text);
switch(++counter) {
case 200:
copro_setSpeed(20, 20);
break;
case 400:
copro_stop();
break;
case 600:
copro_setSpeed(-20, -20);
break;
case 800:
copro_stop();
counter=0;
break;
}
}
return 0;
}

mfg freekwave

Achim S.
11.01.2011, 20:43
Hallo
Begrüsse dich erst mal herzlich auf dieser Seite. Die Anzahl der Nibo Fans steigt weiter. Finde ich richtig gut.
Nun zu deinem Problem. Habe deine Datei mit dem Original verglichen. Scheint alles korrekt zu sein. In der Überschrift zu dieser Datei steht aber das du einige Datein einbinden sollst. Es sind -WI, -u und vfprintf. Wenn du diese nicht drin hast geht garnichts. Zu Anfang musst du dich genau dran halten. Später kannst du ja eigene Sachen machen. Viel Spass mit dem Nibo. Hoffe öfters was von dir zu hören. Kannst auch ins Nibo 2 Bot) magazin schauen.
Achim

freekwave
11.01.2011, 21:24
Vielen dank für deine schnelle Antwort. Ich habe es noch mal ausprobiert, aber irgendwie funktioniert es nicht ](*,). Kannst du mir vielleicht einen einfachenCode geben damit mein nibo2 einfach nur gerade aus fährt?
mfg freekwave

elektrolutz
11.01.2011, 22:22
Hallo freewave,

das Arbeiten mit Studio4 ist leider nicht wirklich gut dokumentiert.
Leider reicht schon eine falsche Reihenfolge bei der Eingabe der Setting-Parameter, damit ein Projekt nicht funktionert.

Auf der Homepage http://www.roboter.cc findest du einen Online-Compiler. Hier musst du dich nur um deinen C-Code kümmern, den Rest übernimmt der Online-Compiler. Das compilierte Programm wird dann per RoboDude (dessen Installation wird auf der Seite beschrieben) per USB auf den Nibo2 übertragen.
Auf dieser Seite findest du die Tutorial-Programme schon fertig zu direkten Laden.
So hast du schon mal die Möglichkeit zu testen, ob dein Nibo2 von der Hardwareseite richtig funktioniert. Wenn dieser Test bestanden ist und dein Nibo2 so einwandfrei mit deinem Programm läuft, dann kann man mal schauen, was bei deinen Einstellungen im Studio4 fehlgeschlagen ist.

freekwave
12.01.2011, 17:34
Auch dir danke für die Antwort. Ich hab das auch ausprobiert, aber es hat nicht funktioniert. Ich hab einfach mal den Jumper 2 eingesteckt und es dreht sich konstant das linke Rad. Also an dem kann es nicht liegen.
mfg freekwave

elektrolutz
12.01.2011, 18:59
Hallo freekwave,

die Programmierung des Co-Prozessors entsprechend "Bauanleitung Roboterbausatz Nibo2", Kapitel 3.2 auf Seite 38 und das Testen der Motorregelung entsprechend "Bauanleitung Roboterbausatz Nibo2", Kapitel 3.4 auf Seite 40 haben einwandfrei funktioniert?

Ich frage dieses, denn es ist ersteinmal wichtig zu wissen, ob deine Hardware OK war / ist.

Wenn z.B. das Tutorial-Programm 8 aktiv ist und JP2 ist gesteckt, sind dann beide Motore aus?

Nur das Programm "NIBO2 - C Tutorial K9" lässt deinen Nibo2 nicht richtig fahren?
Das 9. Tutorial bewirkt eigentlich, dass dein Nibo2 ein Stück geradeaus vorwärts und anschliessend wieder geradeaus rückwärts fährt.

freekwave
12.01.2011, 20:39
Hi elektrolutz,
Also die Programmierung des Co-Prozessors war ohne Probleme. Der Nibo2 ist auch gefahren beim Motortest. Aber bis jetzt ist er bei keinem Programm was ich aufgespielt hab, gefahren.
--> Egal was für ein Programm ich aufspiele, beim JP2 dreht sich immer nur das linke Rad. Könnte es vielleicht an der Lötstelle am Motor oder der Platine liegen??
mfg freekwave

workwind
12.01.2011, 21:34
Du solltest nocheimal das initializer2.hex Programm aufspielen und die letzten Schritte der Bauanleitung (Inbetriebnahme) durchführen - verhält sich der Roboter dabei wie beschrieben?

freekwave
13.01.2011, 21:12
Hallo workwind,
also irgendwie macht der nicht mehr dass, was er mahl gemacht hat. Es drehen beide Räder nicht gleichzeitig.
Ganz am Anfang dreht das linke Rad super schnell. So als ob volle 12 Volt am Motor anliegen würden. Nach so ca 30 sekunden hört das linke auf zu drehen und es dreht das rechte Rad aber relative langsam, mehrmals vor und zurück.
mfg freekwave

workwind
13.01.2011, 21:18
Dann ist vermutlich links der Odometriesensor nicht mehr in Ordnung. Im günstigsten Fall ist nur die rosa IR-LED nicht richtig ausgerichtet...

freekwave
13.01.2011, 21:52
aber sollte dann der nibo2 nicht trotzdem fahren. Denn er fährt ja bei den Programmen überhaupt nicht. oder muss dabei immer der JP2 gesteckt sein?
Ich überprüf das mal mit dem Odometreisystem.

elektrolutz
13.01.2011, 23:11
Hallo freekwave,

wenn JP2 nicht gesteckt ist, dann werden die Motorbrücken nicht mit Spannung versorgt. (Siehe Schaltplan Blatt 2 von 6.)
Also, zum Fahrbetrieb immer JP2 gesteckt lassen!

freekwave
14.01.2011, 22:33
also ich bin momentan der Meinung das mein rechtes Odometriesystem defekt ist. Ich habe alle Lötstellen noch mal nachgelötet wegen vll. kalten Lötstellen. Aber der linke Motor dreht immer noch volle kanne und der rechte überhaupt nicht.
Deswegen denke ich, das an der Hauptplatine liegen muss denn wenn man auf die Motorkontakte der Odometrieplatine Strom gibt dreht der Rechte Motor.

elektrolutz
14.01.2011, 22:38
Hallo freekwave,

prüfe mal mit einer Digitalkamera, ob die Sende-IR-LEDs funktionieren.

freekwave
14.01.2011, 22:56
auf das wär ich nicht gekommen, dass zu überprüfen. Aber sie funktionieren, dass kann man sogar ohne Kamera sehen, sie glimmen leicht rötlich.

elektrolutz
14.01.2011, 23:01
Hallo freekwave,

ich meine die Odometrie-IR-LEDs, bei meinem Nibo2 glimmen die nicht.

freekwave
14.01.2011, 23:07
achso die ^^, nein die lecuhten nicht. Also liegt es vll. daran?!

elektrolutz
14.01.2011, 23:12
Hallo freekwave,


...So als ob volle 12 Volt am Motor anliegen würden...
Ich hoffe doch, dass du NiMH-Akkus benutzt und nicht alkaline Batterien.

Auf jeden Fall solltest du die IR-Leds und die Empfägner-Dioden der Odometrie mal vorsorglich vorsichtig reinigen. Wenn du die Achsen etwas geölt hast, kann eventuell ein kleiner Öltropfen die Optik empfindlich stören, selbst ein unglücklicher Fingeabdruck kann da schon ausreichen und zu Fehlfunktionen führen.

freekwave
14.01.2011, 23:15
nein noch betreib ich meinen nibo2 mit alkaline, hatte noch keine zeit NiMH Akkus zu kaufen. Kommen aber bald :-)

elektrolutz
14.01.2011, 23:19
Hallo freekwave,


achso die ^^, nein die lecuhten nicht. Also liegt es vll. daran?!

Da eine Achse (die die langsam dreht) ja offensichtlich funktioniert, solltest du zumindest an dieser Achse mit eine Digitalkamera einen Lichtschein an der Sende-LED erkennen können.

Zum Testen kannst du an der langsam drehenden Achse mal einen Papierstreifen zwischen IR-LED und Zahnrad halten, dann sollte auch diese Achse mit FullSpeed laufen. Wenn die Odometrieauswertung keine Impulse wahrnimmt, dann gibt die Elektronik mehr Power auf den Antrieb, damit dieser zum Drehen angeregt wird, das zeigt sich durch max. Drehzahl.

elektrolutz
14.01.2011, 23:27
Hallo freekwave,

hast du die Anleitung nicht gelesen? Alkaline Batterien haben eine deutlich höhere Spannung gegenüber NiMH-Akkus.
Eine frische alkaline Battrie hat ca. 1,8V; 8*1,8V=14,4V.
Ein frisch geladener NiMH-Akku hat ca. 1,4V; 8*1,4V=11,2V.

Weiter Versuche mit deinem Nibo2 solltest du unbedingt verschieben, bis dass du passende Akkus besorgt hast. Die Elektronik des Nibo2 kann durch die hohe Batteriespannung geschädigt werden. Die höhere Versorgungsspannung bewirkt z.B. in den LED einen höheren Strom, der u.U. die LED zerstört.

freekwave
15.01.2011, 12:05
also, ich hab jetzt nochmal das initilizer2 programm aufgespielt. Und das mit dem Papier versucht. Bei dem Programm dreht sich jetzt einmal immer nur das rechte Rad, was sich sonst nie gedgreht hat. Und das linke dreht sich nicht. Wenn ich das Papier dazwischen halte, dann dreht der Motor auch hoch. Also muss es dann eigendlich am Co-Prozessor liegen, denn denn beide Odometriesystem funktionieren ja. ABER nur nicht gleichzeitig.
Das Kapitel über die Batterien muss ich wohl in meiner übereifer überlesen haben ](*,) . Aber die Spannungsanzeige hat immer 11 Volt oder so angezeigt.
mfg freekwave

elektrolutz
15.01.2011, 13:52
Hallo freekwave,

vertraue bitte nicht der Spannungsanzeige über das Display, dazu sind leider unterschiedliche Umrechnungsfunktionen im Einsatz, die sehr abweichende Batteriespannungen anzeigen. Da du wie ich aus der Automatisierungstechnik kommst, gehe ich davon aus, dass du ein brauchbares Messgerät zur Verfügung hast.
Benutze unbedingt Akkus, du läufst Gefahr, dir die Elektronik des Nibo2 kaputt zu grillen!!!


OK, schaffen wir erst mal eine gemeinsame Basis.

Mit welcher NiboLib arbeitest du auf deinem PC?
Du siehst deinen aktuellen Lib-Versionsstand im Display, wenn du das PGM "initializer2" auf deinen Nibo2 aufspielst und mindestens JP1 gesteckt ist. In der obersten Zeile des Displays sollte die derzeit aktuelle Lib 2.9 angezeigt werden.
Hast du eine ältere Version im Einsatz, dann solltest du dir ersteinmal die aktuelle Lib-Version aus dem Internet laden und installieren.
Siehe: http://sourceforge.net/projects/nibo/files/nibo/nibolib-2.9-20101210/ - die"*.msi"-Datei installieren.
Lade dir auch die "*.zip"-Datei und entpacke diese, hier findest du ein paar zusätzliche Datei zum Schmökern in den Verzeichnissen.

Egal ob du eine neue Lib-Version installiert hast oder nicht, führe auf jeden Fall nochmal die Programmierung des Co-Proz durch.
Aktuelle "initializer2"-Datei auf Nibo2 übertragen, Nibo2 ausschalten und bei gedrückter Taste S3 wieder einschalten, Wie in Kapitel 3.2 der Bauanleitung beschrieben.

Nun sollte dein Nibo2 funktionieren. Die Odometrie-IR-LEDs hast du richtig justiert und mit einer Digitalkamera geprüft? Das geht auch mit einer Handykamera!

workwind
15.01.2011, 15:14
Besitzt Dein Nibo ein Display? Falls ja, kannst Du dort sehen ob der jeweilige Odometriezähler funktioniert...

freekwave
15.01.2011, 16:15
Naja ganz aus der Automatisierungstechnik komme ich noch nicht, hab grad erst meine Ausbildung angefangen. Aber wieder zum Nibo2, meine Lib ist 2.9. Wenn Ich die Zahnräder drehe, dann zählt auf der Conter auf dem Display, bei beiden Räder.
Wenn der Nibo2 nur das Rechte Rad dreht, und ich am linken Motor drehe, dann fängt dieser an sich auch zu drehen. Was auch immer das bedeuten mag.

workwind
15.01.2011, 16:32
Dann sind vielleicht die Anschlussdrähte der Motoren falsch herum angelötet?

freekwave
15.01.2011, 18:52
Nein tut mir leid, leider sind die richtig rum.

freekwave
17.01.2011, 15:12
Das mit dem andrehen war irgend wie so eine einmalige Sache.
Wenn ich den nibo jetzt anschalte, dreht das linke Rad volle kanne, bis der Bootvorgang beendet ist. Dann hört es auf und das rechte Rad dreht sich, so wie es soll. Nur das linke steht die ganze Zeit. Das Odometriesystem vom Linken Rad kann es aber auch nicht sein, da wenn ich das Zahnrad von Hand drehe, der Zähler auf dem Display mitzählt.

elektrolutz
17.01.2011, 15:22
Hallo freekwave,

zu jeder Motorseite gehören jeweils 2 SMD-LEDs (grün und orange) die der jeweiligen Motorseite zugeordnet sind.
Wenn das Rad in Vorwärtsrichtung dreht, dann leuchten die grüne und die orangene LED, dreht das Rad in Rückwärtsrichtung, dann leuchtet nur die grüne LED.
Ist das bei dir so?

freekwave
17.01.2011, 17:50
Ja, auf beiden Seiten leuchten die Rote und die Grüne LED.

elektrolutz
17.01.2011, 19:38
Hallo freekwave,

ich meine nicht ROT, ich meine ORANGE.
Rot/grün leuchten die Doppel-LEDs die du selbst beim Zusammenbau eingelötest hast.
Die Antriebs-LEDs sind auf der Basisplatine am hinteren Rand und waren schon als SMD-Bauteil aufgelötet. Im Schaltplan sind das LED10 bis LED13 auf Blatt 2/6.
Diese LEDs werden zusammen mit den Motorbrücken angesteuert. Wenn diese LEDs irgendwie leuchten und der jeweilige Motor läuft nicht, dann blockert das jeweilige Getriebe irgendwie.

Wenn die Motore bei grün/orange die Räder in Vorwärtsrichtung drehen und bei grün in Rückwärtsrichtung drehen und du auch noch mal ordentlich die Co-Prozessor-Programmierung entsprechend Anleitung durchgeführt hast und der Fehler entsprechend deiner Bescheibung immer noch vorhanden ist, dann wird dein Nibo2 einen Hardwarefehler habe. Da wird dir wohl nur übrig bleiben, deinen Nibo2 gut einzupacken und an den Hersteller (workwind) zur Reparatur zu senden. Der Fehler wird dann wohl am/im Co-Proz liegen und den kann man nur mit Spezial-Lötwerkzeugen wechseln.
Vorher aber die Rücksendung absprechen und die Kosten klären! (Eventuell Garantie ?)

BenMan
23.02.2011, 11:07
Ich habe mir kürzlich einen Nibo2 zugelegt, mit Zubehör nds3.

Genau dieses Zubhör Teil habe ich mir nun versaut: während es für die Inbetriebnahme noch funktioniert hat (180° Scan beim Einschalten), habe ich beim Programmieren wohl das atmega128 hex file direkt auf den attiny84 Prozessor geschreiben - seit dieser Aktion meldet er sich überhaupt nicht mehr!

Werde mir demnächst einen neuen attiny84 besorgen und erneut und etwas vorsichtiger versuchen.

Hat schon mal jemand eigene Programme mit avrStudio direkt auf den attiny84 von der nds3 Erweiterung geschrieben?

workwind
23.02.2011, 11:13
Hier ein paar Informationen als Zitat... ;-)
Ich denke bei dem ATtiny84 sind nur die Fuse-Bits verstellt!

"Im hex-Verzeichnis sollte eine Datei nds3.hex existieren, das ist die Firmware für den ATtiny84 des NDS3. Die Programme nds3_test.hex und nds3_calib.hex sind für den ATmega128 bestimmt. "

"Die Fuse-Bits des ATtiny müssen wie folgt gesetzt werden:
EFUSE = 0xff
HFUSE = 0xdf
LFUSE = 0xe2

Während des Firmware-Updates ist es besser den Servo abzustecken, da er sonst das MISO-Signal als Stellsignal bekommt... "

BenMan
23.02.2011, 11:28
danke workwind

das denke ich auch, nur müsste er sich doch eigentlich melden, wenn ich zum ATtiny84 connecten versuche! Oder muss ich die Fusebits schon vor dem connect so einstellen?