- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 9 von 9

Thema: Asuro - Motoren spielen verrückt....

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.06.2005
    Beiträge
    16

    Asuro - Motoren spielen verrückt....

    Hallo Leute

    Ich habe ein ziemlich merkwürdiges Problem mit meinem Asuro. Er scheint es mit Fahrbefehlen nicht mehr sehr genau zu nehemen. Nach langem Suchen habe ich den Code auf dieses winzige Schnippsel zusammengestaucht:

    Code:
    #include "asuro.h"
    
    unsigned char SPEED_LEFT=255, SPEED_RIGHT=255; 
    int TIME_FORD=500, TIME_TURN=500;
    
    
    void LongSleep(int msec)
    {
    	int i;
    	for (i=0; i<msec; i++) Sleep(72);
    }
    
    
    int main(void)
    {	
    	Init();
    	StatusLED(RED);
    	
       	while(1)
       	{
    		MotorDir(RWD,FWD); // vorwärtsfahren, motoren sind vertauscht, daher RWD...
    		MotorSpeed (SPEED_LEFT,SPEED_RIGHT);
    		LongSleep(3000);
    		MotorSpeed (BREAK,BREAK);
    		LongSleep(3000);
    	}     
    	return 0;
    }
    Soweit ich das verstehe, sollte der Roboter alternierend 3s fahren und dann 3s stehen. Das tut er aber nur manchmal. Er haltet immer den 3s Takt ein, aber manchmal machen die Motoren überhaupt nichts und manchmal funktioniert alles. An den Batterien kann es nicht liegen, da der Asuro extern gespiesen wird. Ein Hardwaremangel ist auch unwahrscheinlich, da der Selftest zuverlässig funktioniert.
    Ich bin mit meinem Latein am Ende, hat irgendwer eine Idee?

    Ich wäre für Anregungen sehr dankbar
    Illuminon

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.11.2005
    Beiträge
    321
    schmelz den ausro ein...

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.08.2004
    Ort
    Zwolle
    Alter
    68
    Beiträge
    531
    Hallo Illuminon,

    Konnte es vielleicht sein das die Accu's oder Batterien nicht mehr ganz geladen sind?

    Wenn die beide Motoren zugleich mit maximalen Speed (255) gestartet werden dann konnte es sein dass die Versorgungsspannung ein bischen heruntersturtzt und damit die Asuro aufs neu Booted/Aufstartet.

    Wenn die Rote led Orange aufleuchtet ist die Asuro aufs neu gestartet worden.

    Gruss

    Henk

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    11.01.2006
    Ort
    Neubrandenburg
    Alter
    57
    Beiträge
    6

    Re: Asuro - Motoren spielen verrückt....

    Zitat Zitat von Illuminon
    Hallo Leute

    Ich habe ein ziemlich merkwürdiges Problem mit meinem Asuro. Er scheint es mit Fahrbefehlen nicht mehr sehr genau zu nehemen. Nach langem Suchen habe ich den Code auf dieses winzige Schnippsel zusammengestaucht:

    Code:
    #include "asuro.h"
    
    unsigned char SPEED_LEFT=255, SPEED_RIGHT=255; 
    int TIME_FORD=500, TIME_TURN=500;
    
    
    void LongSleep(int msec)
    {
    	int i;
    	for (i=0; i<msec; i++) Sleep(72);
    }
    
    
    int main(void)
    {	
    	Init();
    	StatusLED(RED);
    	
       	while(1)
       	{
    		MotorDir(RWD,FWD); // vorwärtsfahren, motoren sind vertauscht, daher RWD...
    		MotorSpeed (SPEED_LEFT,SPEED_RIGHT);
    		LongSleep(3000);
    		MotorSpeed (BREAK,BREAK);
    		LongSleep(3000);
    	}     
    	return 0;
    }
    Soweit ich das verstehe, sollte der Roboter alternierend 3s fahren und dann 3s stehen. Das tut er aber nur manchmal. Er haltet immer den 3s Takt ein, aber manchmal machen die Motoren überhaupt nichts und manchmal funktioniert alles. An den Batterien kann es nicht liegen, da der Asuro extern gespiesen wird. Ein Hardwaremangel ist auch unwahrscheinlich, da der Selftest zuverlässig funktioniert.
    Ich bin mit meinem Latein am Ende, hat irgendwer eine Idee?

    Ich wäre für Anregungen sehr dankbar
    Illuminon
    Diese Zeile
    Code:
    MotorSpeed (BREAK,BREAK);
    könte der Fehler sein.

    Korrekt wäre
    Code:
    MotorDir (BREAK,BREAK);
    MotorSpeed(0,0);
    Gruß Detlev

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.01.2005
    Beiträge
    130
    Für was dann BREAK, wenn man die Geschwindigkeit sowieso runterdrehen muss?

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    02.11.2005
    Ort
    Dortmund
    Alter
    31
    Beiträge
    1.641
    Es könnte übrigens auch sein, dass die Motoren einfach wackeln und sich dann manchmal so fest an die Zahnräder drandrücken, dass sie einfach nicht mehr drehen - aber das hört man dan auch an so einem leisen PIEPEN.
    o
    L_
    OL
    This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!

    http://de.youtube.com/watch?v=qV1cZ6jUeGE

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    11.01.2006
    Ort
    Neubrandenburg
    Alter
    57
    Beiträge
    6
    Zitat Zitat von Spessi
    Für was dann BREAK, wenn man die Geschwindigkeit sowieso runterdrehen muss?
    Man kann auch einfach die Geschwindigkeit auf 0 setzen, mit MotorDir(BREAK,BREAK) laufen die Moteren nicht so lange nach, da die Motoren über die H-Brücke quasi "kurzgeschlossen werden" - Motorbremse

    Gruß Detlev

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    26.06.2005
    Beiträge
    16
    Hallo Leute

    Vielen Dank für die zahlreichen Antworten. Zuerst einmal vorweg: Es funktioniert wieder... Es ist mir allerdings komplett schleierhaft warum. Ich habe den Code Schritt für Schritt wieder zusammengesetzt, bis ich beinahe den identischen Code wieder hatte. Der einzige Unterschied lag in der Position der Breaks:
    Code:
    for(i=0;i<100;i++)
    {
          MotorDir(FWD,FWD); 
          MotorSpeed (SPEED_LEFT,SPEED_RIGHT);
          LongSleep(3000); 
          MotorSpeed (BREAK,BREAK); 
    }
    MotorSpeed (BREAK,BREAK); // irgendwie scheint es dieses Break zu brauchen...
    Spannungsprobleme können es nicht sein, da der Roboter über ein Powersupply versorgt wird und da wir die Spannungen am Oszilloskop überwacht haben. Auch am Getriebe kann es nicht liegen, da wir in unserem Roboter nur noch die Asuroplatine verwenden. Das PWM Signal geht auf Maxonmotoren und mit Schneckentrieb auf die Räder. Die Aufhängung ist CNC gefrässt und daher sehr präzis.

    Ich traue langsam dem Chip nicht mehr. Nebst dem Motorenproblem hatten wir auf einmal noch ein zweites. Die SerRead Funktion wollte einfach beim zweiten Durchlauf nichts mehr einlesen. Und dies in einem Codeabschnitt, den ich nie angerührt hatte und der immer einwandfrei gelaufen ist. So mysteriös wie das Problem gekomment war, so still verschwand es auch wieder. Jetzt funktioniert im Moment alles, aber bezüglich des Fehlers tappe ich im Dunkeln...

    Trotzdem danke für eure Hilfe
    Gruss
    Illuminon

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    @Illuminon
    Wenn ich deinen letzten Beitrag richtig interpretiere, dann hast du den ASURO 'etwas' umgebaut. Ist es möglich, dass du eventuell an der Platine irgendwo eine Leiterbahn 'gekillt' hast und da ein Wackelkontakt entstanden sein könnte?
    Für so einen Fall könnte ich mir 2 Fehlermöglichkeiten vorstellen:
    1: Wurde schon mit dem Reset bei zu kleiner Spannung aufgeführt -> Gelbe LED leuchtet zwischendurch?
    2: Zeitweiliger Kurzschluss in der Motoransteuerung?

    Hoffentlich muss dein ASURO nicht zum Arzt.

    @super_castle
    Was ist los mit dir? Nur ein so kurzer 'aufbauender' Kommentar?
    Lieber Asuro programieren als arbeiten gehen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress