- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 18

Thema: Probleme mit der Programmierung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    23.04.2012
    Beiträge
    7
    Zitat Zitat von Mattze96 Beitrag anzeigen
    Hallo,

    hab hier mal die beiden Motoren mit mittlerer Geschwindigkeit fahren lassen:
    Code:
    #include “asuro.h”
    int main(void) 
    {
    Init();		
    
    MotorDir(FWD,RWD);	//Parameter sind FWD, RWD, FREE, BREAK, jeweils für li und re
    MotorSpeed(120,120); //0…255 jeweils für li und re 
    while(1);			//Endlosschleife
    return 0;			//Ende
    }
    ich hoffe es hat dir geholfen

    mfG Mattze
    Danke für die mühe aber hat leider nicht geholfen denn wie ich die motoren ansteuer weiß ich nur nicht wie das programm aussehen muss das er auch wirklich gradeaus fährt, also beide räder gleich schnell sind, da wenn man beiden Motoren den selben wert gibt das nicht gewärleistet ist

  2. #2
    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

  3. #3
    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

  4. #4
    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;
    }

  5. #5
    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.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    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.

  7. #7
    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

  8. #8
    Benutzer Stammmitglied Avatar von Spacy Bar
    Registriert seit
    10.05.2014
    Beiträge
    34
    Was mich auch wundert ist, dass bei dir das Init() fehlte, du nur die Anführungszeichen geändert hast und es jetzt klappt.
    Kannst du dir/mir das erklären?

    LG
    Spacy Bar
    Geändert von radbruch (06.06.2014 um 17:33 Uhr) Grund: veraltet

Ähnliche Themen

  1. [ERLEDIGT] Probleme mit Programmierung von RN-AVR Universal
    Von alex2603 im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.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
  •  

12V Akku bauen