- Labornetzteil AliExpress         
Ergebnis 1 bis 6 von 6

Thema: frage zu IR fernseuerung für ASURO

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2007
    Ort
    Heidelberg
    Alter
    32
    Beiträge
    9

    frage zu IR fernseuerung für ASURO

    Anzeige

    Powerstation Test
    Hallo,
    ich bin noch ein totaler Anfänger in Robotik und im Programieren.
    Und ich wollte fragen ob man den ASURO mit den Grundkentnissen aus
    der Anleitung fernsteuern kann.
    Ich hab mal nur zum Spaß was geschrieben,
    und leider (wie zu erwarten) funktioniert es nicht.
    Code:
    #include "asuro.h"
    
    char text[2],w[2],s[2],a[2],d[2];//Variablen für forwärts, rückwärts, rechts, links, und steuerung.
    
    char i[2];                            //Variable für die Motorsynkronisation
    
    unsigned int b;                  // Variable fürs zählen
    
    char o[2];                          //Variable für die Motorsynkronisation
    
    int main(void){                    //Start der main funktion
    
    Init();                           
    
    Synkronisation();                   //Synkronisieren
    
    while(1){                           //endlosschleife
    
    SerRead(text,1,1);{                 //einlesen der variable fürs steuern
    
    if (text[2] == w[2]){MotorDir(RWD,RWD);MotorSpeed(255,255);for(b=0;b<1000;b++)Sleep(72);}  //wenn text gleich variable für forwärts dann motor auf follspeed
    
    else if (text[2] == s[2]){MotorDir(FWD,FWD);MotorSpeed(225,225);}//wenn text gleich variable für rückwärts dann motor auf follrückwärtsspeed
    
    else if (text[2] == a[2]){MotorDir(FWD,RWD);MotorSpeed(100,200);}
    
    else if (text[2] == d[2]){MotorDir(RWD,FWD);MotorSpeed(200,100);}
    
    else {MotorDir(FREE,FREE);MotorSpeed(0,0);}}
    
    }
    
    while(1);
    
    return 0;}
    
    int Synkronisation(){
    
    StatusLED(GREEN);for(b=0;b<400;b++)Sleep(72);StatusLED(OFF);
    
    SerWrite("\n\rSynkronisation\n\r",16);
    
    SerWrite("\n\rTasten\n\r",8);for(b=0;b<800;b++)Sleep(72);
    
    SerWrite("\n\rbitte drucken sie nacheinander die Steuerungstasten fur:\n\r",57);
    
    for(b=0;b<500;b++)Sleep(72);
    
    SerWrite("\n\rforwerts ,  ruckewerts ,  links und rechts.\n\r",46);
    
    SerRead(w,1,0);
    
    SerWrite("\n\rOK \n\r",5);
    
    SerRead(s,1,0);
    
    SerWrite("\n\rOK \n\r",5);
    
    SerRead(a,1,0);
    
    SerWrite("\n\rOK\n\r",5);
    
    SerRead(d,1,0);
    
    SerWrite("\n\rOK \n\r",5);
    
    SerWrite("\n\ruberprufung der Tasten\n\r",25);
    
    for(b=0;b<800;b++)Sleep(72);
    
    SerWrite("\n\rforwarts   \n\r",13);
    
    SerWrite(w,1);for(b=0;b<800;b++)Sleep(72);
    
    SerWrite("\n\rruckwarts   \n\r",14);
    
    SerWrite(s,1);for(b=0;b<800;b++)Sleep(72);
    
    SerWrite("\n\rlinks   \n\r",10);
    
    SerWrite(a,1);for(b=0;b<800;b++)Sleep(72);
    
    SerWrite("\n\rrechts   \n\r",11);
    
    SerWrite(d,1);for(b=0;b<800;b++)Sleep(72);
    
    SerWrite("\n\rFalls eine der Taste nicht richtig ist bitte Neustarten\n\r",57);
    
    for(b=0;b<5000;b++)Sleep(72);
    
    SerWrite("\n\rSynkronisation abgeschlossen\n\r",30);
    
    return 0;}
    bitte kann mir jemand sagen was da falsch ist.
    danke

    Nicolai

    nicolainessenius@arcor.de





  2. #2
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    zuerst einmal: du solltest kleiner anfangen. hast du dich mal mit der programmiersprache c auseinandergesetzt? die funktion synkronisieren (was man übrigens mit ch anstelle von k schreibt) exisitiert in deinem programm nichz.. ausserdem sind viele andere fehler drin.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2007
    Ort
    Heidelberg
    Alter
    32
    Beiträge
    9
    sorry kein wunder das is das alte programm
    ich hab das schon überarbeitet hab aber im moment meinen pc nicht zur
    verfügung und kann deshalb die aktuelle version nicht reinstellen
    sorry




    Nicolai

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2007
    Ort
    Heidelberg
    Alter
    32
    Beiträge
    9
    Das is jetzt die (vieleicht ) richtige Version:

    Code:
    #include "asuro.h"
    
    char text[2],w[2],s[2],a[2],d[2];
    
    unsigned int b; 
    
    int main(void){     
               
    Init();                           
    
    Synkronisation();      
    
    while(1){           
    
    SerRead(text,1,1);{       
    
    if (text[2] == w[2]){MotorDir(RWD,RWD);MotorSpeed(255,255);for(b=0;b<1000;b++)Sleep(72);} 
    
    else if (text[2] == s[2]){MotorDir(FWD,FWD);MotorSpeed(225,225);}
    
    else if (text[2] == a[2]){MotorDir(FWD,RWD);MotorSpeed(100,200);}
    
    else if (text[2] == d[2]){MotorDir(RWD,FWD);MotorSpeed(200,100);}
    
    else {MotorDir(FREE,FREE);MotorSpeed(0,0);}}
    
    }
    
    while(1);
    
    return 0;}
    
    int Synkronisation(){
    
    StatusLED(GREEN);for(b=0;b<400;b++)Sleep(72);StatusLED(OFF);
    
    SerWrite("\n\rSynkronisation\n\r",16);
    
    SerWrite("\n\rTasten\n\r",8);for(b=0;b<800;b++)Sleep(72);
    
    SerWrite("\n\rbitte drucken sie nacheinander die Steuerungstasten fur:\n\r",57);
    
    for(b=0;b<500;b++)Sleep(72);
    
    SerWrite("\n\rforwerts ,  ruckewerts ,  links und rechts.\n\r",46);
    
    SerRead(w,1,0);
    
    SerWrite("\n\rOK \n\r",5);
    
    SerRead(s,1,0);
    
    SerWrite("\n\rOK \n\r",5);
    
    SerRead(a,1,0);
    
    SerWrite("\n\rOK\n\r",5);
    
    SerRead(d,1,0);
    
    SerWrite("\n\rOK \n\r",5);
    
    SerWrite("\n\ruberprufung der Tasten\n\r",25);
    
    for(b=0;b<800;b++)Sleep(72);
    
    SerWrite("\n\rforwarts   \n\r",13);
    
    SerWrite(w,1);for(b=0;b<800;b++)Sleep(72);
    
    SerWrite("\n\rruckwarts   \n\r",14);
    
    SerWrite(s,1);for(b=0;b<800;b++)Sleep(72);
    
    SerWrite("\n\rlinks   \n\r",10);
    
    SerWrite(a,1);for(b=0;b<800;b++)Sleep(72);
    
    SerWrite("\n\rrechts   \n\r",11);
    
    SerWrite(d,1);for(b=0;b<800;b++)Sleep(72);
    
    SerWrite("\n\rFalls eine der Taste nicht richtig ist bitte Neustarten\n\r",57);
    
    for(b=0;b<5000;b++)Sleep(72);
    
    SerWrite("\n\rSynkronisation abgeschlossen\n\r",30);
    
    return 0;}
    Oder sag mir mal jemand ne gescheite seite wo C von anfang an erklärt wird.

    Nicolai

  5. #5
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.063
    c wird hier ganz gut erklärt:

    http://www.pronix.de/pronix-4.html

    ansonsten fällt mir spontan auf: die funktion Synkronisation() (die man immer noch mit ch schreibt) muss deklariert werden, BEVOR sie benutzt wird. das bedeutet, sie muss über der main-funktion stehen.

    was funktioniert denn nicht? der ablauf? dann beschreibe was nicht geht. das kompilieren? dann poste im code-fenster den output vom compiler.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    07.02.2007
    Ort
    Heidelberg
    Alter
    32
    Beiträge
    9
    Danke das wars son leichtsinsfehler ..
    den hab ich echt net gesehen

    Nicol@i

Berechtigungen

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

12V Akku bauen