- 3D-Druck Einstieg und Tipps         
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 markusj Beitrag anzeigen
    Irgendwo Verklemmungen in der Mechanik? Abweichungen zwischen den beiden Seiten sind normal (und können via Software ausgebügelt werden)

    mfG
    Markus
    wenn ich die räder von hand drehe merke ich kein großen unterschied und sind meiner meinung nach aus recht leichtgängig. vielleicht werde ich die motoren nochmal ab machen und neu ankleben vielleicht bringt das dann was. Wie müsste das Programm zum gradeausfahren denn aussehen?

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    23.08.2011
    Beiträge
    27
    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

    Edit:
    Versuch mal die Motoren ein bisschen nachzuölen. Wenn diese einen hohen Piepston "aussenden" laufen sie meist zu schwer.
    Ich habe mir die Arbeit gemacht und eine kleine Präsentation über die Befehle gestaltet. Bei Fehlern oder Anregungen bitte eine PN, danke!
    Angehängte Dateien Angehängte Dateien
    Geändert von Mattze96 (24.04.2012 um 15:06 Uhr) Grund: Datei angefügt

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

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

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

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

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

  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
  •  

fchao-Sinus-Wechselrichter AliExpress