Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: Probleme mit der Programmierung

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    23.08.2011
    Beiträge
    27
    du musst es halt durch testen herausfinden. Wenn er eine linkskurve fährt musst du zb die werte von (120,120) auf (120,110) ändern sodass er links schneller fährt und dadurch geradeaus fährt. Wenn er eine rechtskurve macht dann genau anders rum. durch öfteres testen kannst du die differenz immer genauer bestimmen und auch bei deinem nächsten programm berücksichtigen.

    Eine Frage: Welche Version der Asuro-Libary verwendest du?? Wenn du die neuste verwendest (2.80) kannst du die differenz direkt in myasuro.h eintragen und brauchst dir dann keinen Kopf mehr darüber zumachen ob der Asuro jetzt links oder rechts fährt.

    mfG Mattze

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    23.04.2012
    Beiträge
    7
    Es soll doch auch irgendwie mit den sensoren die am getriebe sind gehen (deswegen wurden doch die felder auf das zahnrad geklebt).

    Ich benutze die standartsoftware die auf der disk war, weiß gar nicht wie man was anderes nutzt

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    23.08.2011
    Beiträge
    27
    hab grad keine zeit deshalb fass ich mich kurz:

    Die sensoren heißen Odometer:

    Hier ein Prog: Ist bei den Erweiterungsbändern dabei:

    Code:
    // *******************************************
    // * Odometrie für ASURO                     *
    // * Fährt exakt geradeaus                   *
    // *                                         *
    // *                                         *
    // * (c) 2007 Robin Gruber                   *
    // * Details zum Code in:                    *
    // * "Mehr Spaß mit ASURO, Band II"          *
    // *******************************************
    
    #include "asuro.h"
    
    // Schwellwert fr die Hell/Dunkel-Unterscheidung
    // Eventuell muss damit etwas variiert werden
    #define TRIGGERLEVEL 600
    #define HYSTERESIS 10
    #define LOW 0
    #define HIGH 1
    
    int main(void)
    {
        unsigned int data[2];
        signed int status[2]={0,0};
        signed int difference=0;
        Init();
        MotorDir(FWD, FWD);
        while(1) {
            // Helligkeitswerte der Lichtschranken auslesen
            OdometrieData(data);
            // Wechsel linker Sensor von niedrig auf hoch?
            if ((status[0]==LOW) && (data[0]>TRIGGERLEVEL+HYSTERESIS)) {
                status[0]=HIGH;
                difference++;
            }
            // Wechsel linker Sensor von hoch auf niedrig?
            if ((status[0]==HIGH) && (data[0]<TRIGGERLEVEL-HYSTERESIS)) {
                status[0]=LOW;
                difference++;
            }
            // Wechsel rechter Sensor von niedrig auf hoch?
            if ((status[1]==LOW) && (data[1]>TRIGGERLEVEL+HYSTERESIS)) {
                status[1]=HIGH;
                difference--;
            }
            // Wechsel rechter Sensor von hoch auf niedrig?
            if ((status[1]==HIGH) && (data[1]<TRIGGERLEVEL-HYSTERESIS)) {
                status[1]=LOW;
                difference--;
            }
            // zur Sicherheit: verhindern, dass der Differenzz�ler
            // den erlaubten Wertebereich verl�st
            if (difference<-255) difference=-255;
            if (difference>255) difference=255;
            
            // Status-LED noch entsprechend der erkannten Segmente
            // aufleuchten lassen, grn fr links, rot fr rechts
            StatusLED(status[0]+status[1]*2);
            
            // Z�ldifferenz passend auf die Motoren verteilen
            if (difference>0) MotorSpeed(255-difference,255);
            else MotorSpeed(255,255+difference);
            
        }
        return 0;
    }

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    23.04.2012
    Beiträge
    7
    Danke für das Prog. habe die geschwindigkeitswerte auf 120 gesetzt und er ist auch einigermaßen gradeaus gefahren aber hat noch immer einen rechtsdrall. werde das nochmal mit dem öl versuchen, vielleicht reiben die ja echt zu sehr.

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.049
    Eine kleine Kurve bei gerade aus fahren ist normal wenn man nicht die Motorkraft (MotorSpeed) anpasst mit die Odometrie-zahlung. Das ist weil die Motorenleistung, Reibung, Rad große, Rad Abstand zu mitten des PCB., H-brücke Transistoren Verlust usw. immer nicht gleich genau sind. Deshalb haben die beide Motoren immer eine kleine unterschiedliche Drehzahl bei gleichen MotorSpeed werten. Und dann ist es immer noch möglich das es ein Drehzahl unterschied gibt bei andere werten des MotorSpeed-bereich. Mann kann es nur (einfach) verringern durch reduzieren der Getriebe Reibung, Rad große und Rad Abstand.

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    05.04.2012
    Beiträge
    18
    hallo,
    also ich hab folgendes problem ich hab meinen asuro fertig gebaut flashen,etc klappt eigentlich auch, aber ich hab ein problem mit dem programm. ich hab mir 2 ideen überlegt um ein projekt mit dem asuro zu starten: 1.der asuro soll eine art wohnung absuchen. dafür wollte ich eine wohnung als modell bauen und sie weiß anstreichen oder so damit er an der wand entlang fährt und in dem raum einen schwarzen gegenstand oder einen schwarzen fleck auf dem boden sucht. ich wollt ihn in einer art halbkreisbahn an der wand entlang laufen lassen und sobald er mit einem taster aufkommt fährt er etwas zurück oder dreht sich und fährt noch einen halbkreis und so weiter.
    2. er soll als eine arte einparkroboter funktionieren und mithilfe von annäherungssensoren oder ähnlichem in eine parklücke fahren
    zu dieser idee hab ich gleich mal ein paar fragen: ist es schwer? hat jemand erfahrungen damit gesammelt? wie würde ich da preislich liegen?
    zu meiner 1. idee hab ich schon 2 programme geschriebe aber da hab ich auch probleme xD bei dem ersten fährt er nur im kreis, die version war allerdings auch nur eine rohfassung die hab ich sofort abgebrochen:
    #include <asuro.h>
    #include <myasuro.h>

    int main ()
    {

    Init();

    while(1)
    {
    MotorDir(FWD,FWD);
    MotorSpeed(120,90);
    Msleep(300);

    unsigned char taste;
    taste= PollSwitch();
    if(taste=32)
    { MotorDir(BREAK,FWD);
    MotorSpeed(BREAK,100);
    Msleep(100);
    }
    else if(taste!=32)
    {
    MotorDir(RWD,FWD);
    MotorSpeed(100,100);
    Msleep(100);
    }
    else
    {}

    }
    return (0);

    }

    bei meinem 2ten programm steht er nur da die statusled leuchtet gelb dir vordere und die backled leuchten stark:
    #include <asuro.h>
    #include <myasuro.h>

    int main (void)
    {

    unsigned int data [2];
    Init();
    FrontLED(ON);
    while(1)
    {
    LineData(data);
    if(data[0]==data[1])
    {
    MotorDir(FWD,FWD);
    MotorSpeed(150,110);
    Msleep(300);

    unsigned char taste;
    taste= PollSwitch();
    if(taste=32)
    {
    MotorDir(BREAK,FWD);
    MotorSpeed(BREAK,100);
    Msleep(100);
    }
    else if(taste!=32)
    {
    MotorDir(RWD,FWD);
    MotorSpeed(100,100);
    Msleep(100);
    }
    else
    {
    return 0;
    }
    }
    else
    {
    while(10)
    {
    BackLED(ON,OFF);
    BackLED(OFF,ON);
    StatusLED(YELLOW);
    }
    }

    }


    return 0;

    }
    bitte helft mir oder gebt mir anregungen was ich sonst noch aus meinem asuro mache kann es ist ein schulprojekt ich kenn mich nicht so wirklich damit aus und verzweifle weil mir nichts mehr einfällt

  7. #17
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.049
    Zitat Zitat von maikel510 Beitrag anzeigen
    hallo,
    also ich hab folgendes problem ich hab meinen asuro fertig gebaut flashen,etc klappt eigentlich auch, aber ich hab ein problem mit dem programm. ich hab mir 2 ideen überlegt um ein projekt mit dem asuro zu starten: 1.der asuro soll eine art wohnung absuchen. dafür wollte ich eine wohnung als modell bauen und sie weiß anstreichen oder so damit er an der wand entlang fährt und in dem raum einen schwarzen gegenstand oder einen schwarzen fleck auf dem boden sucht. ich wollt ihn in einer art halbkreisbahn an der wand entlang laufen lassen und sobald er mit einem taster aufkommt fährt er etwas zurück oder dreht sich und fährt noch einen halbkreis und so weiter.
    2. er soll als eine arte einparkroboter funktionieren und mithilfe von annäherungssensoren oder ähnlichem in eine parklücke fahren
    zu dieser idee hab ich gleich mal ein paar fragen: ist es schwer? hat jemand erfahrungen damit gesammelt? wie würde ich da preislich liegen?
    zu meiner 1. idee hab ich schon 2 programme geschriebe aber da hab ich auch probleme xD bei dem ersten fährt er nur im kreis, die version war allerdings auch nur eine rohfassung die hab ich sofort abgebrochen:

    Code:
    #include <asuro.h>
    #include <myasuro.h>
    
    int main () 
    {
    
    Init();
        
    while(1)
    {
            MotorDir(FWD,FWD);
            MotorSpeed(120,90);
            Msleep(300);
    
    unsigned char taste;
    taste= PollSwitch();
    if(taste=32)
    {        MotorDir(BREAK,FWD);
            MotorSpeed(BREAK,100);
            Msleep(100);
    }
    else if(taste!=32)
    {
    MotorDir(RWD,FWD);
    MotorSpeed(100,100);
    Msleep(100);
     }
    else   // Diese Möglichheit besteht nicht: taste ist 32, oder es ist nicht 32. Eine andere Wahl gibt es nicht.
     {}
        
    }
    return (0);
    
       }
    Als erste Program Versuch ist das OK. Ich sehe hier kein problem.

    bei meinem 2ten programm steht er nur da die statusled leuchtet gelb dir vordere und die backled leuchten stark:
    Code:
    #include <asuro.h>
    #include <myasuro.h>
    
    int main (void) 
    {
    
        unsigned int data [2];
        Init();
        FrontLED(ON);
        while(1)
        {
            LineData(data);
            if(data[0]==data[1])   // data[links] ist fast immer nie gleich an data[rechts]! Nur in sehr seltsamme fallen.
            {
                MotorDir(FWD,FWD);
                MotorSpeed(150,110);
                Msleep(300);
    
                unsigned char taste;
                taste= PollSwitch();
                if(taste=32)
                {        
                MotorDir(BREAK,FWD);
                MotorSpeed(BREAK,100);
                Msleep(100);
                }
                else if(taste!=32)
                {
                MotorDir(RWD,FWD);
                MotorSpeed(100,100);
                Msleep(100);
                } [color=red][b]
                else //Wieder eine Wahl das nicht existiert! Weglassen
                {
                return 0;
                }
            }
            else  // hier ist data[0]!=data[1] (nicht gleich). Deshalb geht er hier fast immer in einer Endloss-schleife und fläckert ganz schnell die BackLeds an/aus! Und kommt nie wieder raus. Weil 10 nicht 0 ist.        {
            while(10)
            {
            BackLED(ON,OFF);
            BackLED(OFF,ON);
            StatusLED(YELLOW);
            }
             } 
    
        }
    
    
    return 0;
        
     }
    bitte helft mir oder gebt mir anregungen was ich sonst noch aus meinem asuro mache kann es ist ein schulprojekt ich kenn mich nicht so wirklich damit aus und verzweifle weil mir nichts mehr einfällt
    Deine letzte Code geht gleich in einer Endloss schleife weil de Responz von die Linien Phototransistoren verschiedene werten liefern bei gleichen Beleuchtung. Du muss erst diese sensoren zu einander Kalibrieren bis du darauf entscheidungen macht.
    Geändert von Valen (03.05.2012 um 20:30 Uhr)

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. [ERLEDIGT] Probleme mit Programmierung von RN-AVR Universal
    Von alex2603 im Forum Controller- und Roboterboards von RobotikHardware.de
    Antworten: 13
    Letzter Beitrag: 19.03.2012, 15:17
  2. Probleme bei Programmierung
    Von freekwave im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 17
    Letzter Beitrag: 30.12.2011, 10:40
  3. Probleme bei AVR Butterfly-Programmierung
    Von Youngtimer im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 21.11.2007, 18:01
  4. Probleme bei der Programmierung des Butterflys
    Von Heiko R. im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 19
    Letzter Beitrag: 28.10.2005, 08:21
  5. Probleme mit IR/RC5 Programmierung
    Von Lutz im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 8
    Letzter Beitrag: 09.03.2005, 17:31

Berechtigungen

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