-         

Ergebnis 1 bis 8 von 8

Thema: Neu in der Roboterwelt---> Ausuro

  1. #1

    Neu in der Roboterwelt---> Ausuro

    Anzeige

    Hallo zusammen,
    ich hab von meinem Physiklehrer einen Bausatz vom Asuro bekommen, da wir den für unser Wahlfach bekommen haben. Nun hab ich ihn mal zusammengebaut, und auch den Selbsttest gemacht, alles bestens.
    Nun komm ich zum meinem Problem, ich kenn mich in C überhaupt nicht aus würde aber natürlich gerne bisserl was rumprobieren und programmieren. Programierneuling bin ich nicht, ich kann PHP und HTML und bisserl Mysql. Nun wollte ich euch fragen ob ihr irgendwelche Tutorials kennt wo man sich langsam in C bezogen auf den Asuro einarbeiten kann. Oder habt ihr sonst irgendwelche Tipps wie man sich in dieses Gebiet einarbeitet?
    Gruß Fabian

  2. #2
    Es gibt einige gute C-Tutorials im Internet. Es reicht, wenn du die einfachen Befehle kannst. Die Funktionen der ASURO-Lib sind alle im Handbuch beschrieben und es gibt jede Menge Programme für den ASURO im Internet. Einfach mal anschauen.

  3. #3
    Ich hab jetzt mal dieses kleine Programm geschrieben:

    #include"asuro.h"
    int main(void)
    {
    MotorDir(FWD,FWD);
    MotorSpeed(120, 120);
    while(PollSwitch()==0)
    {
    StatusLED(RED);
    }
    MotorSpeed(0,0);
    }
    Und eig. dachte ich das er jetzt immer fahren müsste, außer er stößt irgendwo an, dann sollte er stehen bleiben. Nur leider macht mein Asuro gar nichts
    ein Programm hat er schon gemacht, das hat aber auch nur verändert, das die Statuslampe Rot statt Grün leuchtet.
    Einen Fehler beim Compilieren gabs auch nicht, ich weiß einfach nicht was los is...
    Gruß Fabian, der hofft geholfen zu werden*g*

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Der Aufruf der Funktion Init() fehlt. Sonst wird die Hardware nicht richtig initialisiert.

    Code:
    #include"asuro.h"
    int main(void)
    {
      Init();
      MotorDir(FWD,FWD);
      MotorSpeed(120, 120);
      while(PollSwitch()==0)
      {
        StatusLED(RED);
      }
      MotorSpeed(0,0);
    }

    Gruß m.a.r.v.i.n

  5. #5
    danke das war schonmal sehr hilfreich, nun hab ichs bisserl abgeändert:

    #include"asuro.h"
    int main(void)
    {
    Init();

    if(PollSwitch()==0)
    {
    MotorDir(FWD,FWD);
    MotorSpeed(120, 120);
    StatusLED(GREEN);
    }
    else
    {
    MotorSpeed(0, 0);
    }
    }

    Leider reagiert er aber nicht auf die Taster vorne.. An was kann denn das nun wieder liegen?
    Gruß Fabian

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    45
    Beiträge
    2.236
    Hallo, ist das jetzt alles am Programm?

    Du machst nur eine Abfrage nach den Taster und Ende, die Hauptschleife wird beendet und der Kontroller arbeitet irgendwas ab, was garnicht zum Programm gehört.

    Mach mal sowas:
    Code:
    while(1){
    
    while (Pollswitch() == 0){
    MotorDir(FWD,FWD);
    MotorSpeed(120, 120);
    StatusLED(GREEN); 
    } 
    MotorSpeed(0,0);
    
    }
    Mach Dir den Unterschied zwischen if und while klar.

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  7. #7
    super danke! tolles Forum!

    Wie kann ich denn einzellne Taster abfragen?
    einfach die Nummer in den Pollswitch(1) z.B.
    Gruß Fabian

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    45
    Beiträge
    2.236
    Wie kann ich denn einzellne Taster abfragen?
    einfach die Nummer in den Pollswitch(1)
    Nein, die Funktion Pollswich erwartet keinen Parameter deswegen hast Du oben Pollswitch() geschrieben.
    Mit Pollswich(1) würdest Du einen Parameter an die Funktion übergeben,
    aber Pollswich liefert Dir was zurück (ob es ein int oder char ist weiß ich jetzt auf die schnelle nicht genau, müßte mal nachgucken)
    wenn Du geschrieben hast
    Code:
    while (Pollswitch() == 0){
    fahr gerade aus
    }
    heißt es dann kein Taster -> Pollswitch liefert null zurück.
    Wenn ein Taster gedrückt wird kriegst Du halt eine andere Zahl.
    Das kannst Du selber rauskriegen weil:
    ich kenn mich in C überhaupt nicht aus würde aber natürlich gerne bisserl was rumprobieren und programmieren.
    und es macht viel mehr Spaß, wenn man selber drauf kommt.

    Als Anhaltspunkte werfe ich hier ein paar Begriffe in den Raum:
    pollswitch, serwrite, itoa, terminal.
    Durchsuch mal das Forum danach, Du wirst schon was brauchbares finden, wenn nicht, kannst Du immer noch nachfragen.

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

Berechtigungen

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