-         

Ergebnis 1 bis 5 von 5

Thema: Generelle Frage zur Programmierung (RobbyRP5)

  1. #1

    Generelle Frage zur Programmierung (RobbyRP5)

    Anzeige

    So hab zum Geburtstag nun den Robby RP5 begommen, und es macht auch einen wirklich großen Spaß den Roboter zu programmieren und so waren dann auch schnell die ersten Programme geschrieben und ausprobiert. Alles Bestens. Sobald ich allerdings versuche mehre Sachen miteinander zu koppeln stoße ich an meine Grenzen. So wollte ich zum Bsp. den autonomen Betrieb (mit ACS) durch eine IR-Fernbediehnung unterbrechen und gegebenen Falls wieder aufnehmen lassen. Dies Funktioniert bei meinem Programmcode aber nicht wirklich und ich denke, das dies an meinen verwendeten Befehlen liegt, da ich noch nicht so sehr viel programmiert habe. Es wäre also sehr nett wenn ihr mir ein paar Tipps geben könntet wo ich zB. Tutorials oder so zu diesem Thema finde oder mir ggf. sogar sagen könntet wo der Fehler in meinem Programmcode steckt.

    #Loop
    if ifautonom=1 then gosub autonom
    gosub IRDAT
    Goto Loop

    #IRDAT
    pause 2:SYS COMNAV_STATUS
    if IR_F =off then goto IRDAT
    gosub GET_IRDATA:goto EX_COMMAND

    #EX_COMMAND
    if LBYTE=2 then ifautonom=1
    if LBYTE=3 then ifautonom=0
    IR_F =off
    goto Loop

    #autonom
    pause 5:SYS COMNAV_STATUS
    '--------- LEDs ansteuern --------------------
    if ACSL_F=on then gosub LED4ON else gosub LED4OFF
    if ACSR_F=on then gosub LED1ON else gosub LED1OFF
    '--------- AUSWEICHMANÖVER EINLEITEN ---------
    if (ACSL_F and ACSR_F)=on then goto rotate
    if ACSL_F=on then goto move_right
    if ACSR_F=on then goto move_left
    SYS FWDR:SYS FWDL:SPEED_L=255:SPEED_R=255:goto Loop

    '-------- AUSWEICHEN NACH RECHTS -------------
    #move_right
    SPEED_R=0:SPEED_L=255:goto Loop
    '-------- AUSWEICHEN NACH LINKS -------------
    #move_left
    SPEED_L=0:SPEED_R=255:goto Loop
    '---------- ROTIEREN --------------------
    #rotate
    SPEED_L=150:SPEED_R=150:SYS ROTR:goto Loop
    '----------------------------------------------
    So kann ich meinen Robby zwar per Fernsteuerung starten aber leider nicht mehr stoppen

    PS: gibt es eine Möglichkeit mehrere Programme zu schreiben und vom Robby bearbeiten zu lassen (d.h. das Hauptprogramm ruft eine andere Datei auf), ich kenne dies aus PHP mit dem Befehl "include ..."


    mfg
    BananenFresser

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Für RP5 gibt's bessere, doch was mir auffällt ist, daß du keine "return" verwendest.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.10.2005
    Beiträge
    165
    also, andere dateien aknnst du damit nicht aufrufen lassen. und für das stoppen... vielleicht solltest du ihn per ruf stoppen können? also wenn du ne abfrage einbaust, die den schallpegel misst. und wenn er hoch genug ist, stoppt er eben *g*


    ach ja, und danke für den quellcodeschnipsel. könntest du vll. noch mal den gesamten code posten? mit treibern und portdefinition mein ich. den würd eich gern mal testen (hab den kleinen auch^^).


    gruß
    corone

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.07.2004
    Ort
    Fulda
    Alter
    30
    Beiträge
    183
    ich bin hier zwar auch nicht der programmier-murph, aber ich glaub du hast auch nirgends einen befehl, wo du die motoren wieder ausschaltest.
    wenn du die nämlich irgendwo im programm einschaltest bleiben die auch an bis der befehl zum ausschalten kommt.
    bei manchen anderen motorsteuerungen ist das glaub ich anders.
    in diesem sinne...
    MfG Jonas

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791

    Prog für Robby

    Hallo BananenFresser,

    wichtig ist, NIE in Unterprogramme heraus- oder hineinzuspringen (mit goto)!!!
    Es muss IMMER SO aussehen, sonst gibt es sehr merkwürdige Programme, die nicht tun, was man will:

    #Hauptproggi
    ' ... tut irgendwas ...
    gosub Unterproggi_1 'Verzweigt ins Unterproggi_1
    ' ... hier gehts dann nach dem Unterproggi_1 weiter!
    gosub Unterproggi_2 'Verzweigt ins Unterproggi_2
    ' ... hier gehts dann nach dem Unterproggi_2 weiter!
    end 'Hier ist ENDE des Hauptproggis

    '-------------------------------------------------------------
    'Ab hier stehen die Unterproggis:
    #Unterproggi_1
    ' ... tut etwas im Unterprog!
    return

    #Unterproggi_2
    ' ... tut etwas im Unterprog!
    return

    Wenn Du eine Endlos-Schleife proggen willst, geht das am besten im Hauptprogramm:

    #Schleife
    '... tut etwas ...
    gosub Unterproggi_1 'Verzweigt z.B. ins Unterproggi_1
    ' ... tut noch mehr ...
    goto Schleife

    Nur mit solchen klaren Strukturen wird ein Prog das tun, was Du willst!

    Gruß Dirk

Berechtigungen

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