- LiTime Speicher und Akkus         
Ergebnis 1 bis 4 von 4

Thema: "Lichtverfolgung" in "TV-Remote" einbaue

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773

    "Lichtverfolgung" in "TV-Remote" einbaue

    Anzeige

    Powerstation Test
    Hallo!
    Wieder einmal eine Frage
    Es geht um meinen (noch) RC5-Gesteuerten Robby. jedoch gibts bei dem hier eine kleinigkeit: meine Base hat eine Mischung aus Slave und Master aufgespielt. Soll heißen, alle Sensorwerte werden auf den I2C gelegt, aber dennoch kann sie selbst auf Bumper, RC5, ACS... reagieren oder Befehle von der M32 entgegennehmen.

    Ein Robot, der lediglich ferngesteuert wird ist ja kein Robot, sondern eher ein RC-Car, daher möchte ich folgendes:
    Auf einen bestimmten RC5-Code (sagen wir mal 32) soll der Robot komplett losgelöst von der RC5-Steuerung agieren und - nur als Beispiel - das Demoprogramm "Lichtverfolgung" aktivieren, und auf RC5-Code 33 das Demo "Move", später mal Linienverfolgung auf der 34 usw.
    In dieser Unterroutine bleibt er solange, bis ein definierter RC5-Code kommt (ich weiß grad nicht, was dort der Off-Button für eine Codenummer hat, sagen wir mal 10). Erst bei betätigen dieser Taste wird er wieder Fernsteuerbar.

    So, nun meine eigentliche Frage: Wie sieht das aus?
    In meinem Handler für RC5 müsste dann vielleicht der gesamte Programmcode unter "case 32" stehen? Oder lege ich hier so etwas wie eine neue "main" hinein? Und gliedere ganz normal die restlichen Funktionen (BumpersStateChangedHandler etc) aus?
    Gibt es so etwas - eine sub-main?

    Leider ist mein Gesamt-Code zu lange, aber der Handler für RC5 entspricht ja ziemlich dem des Bsp-Programms.

    Wenn jemand will, könnt ich die Hex oder die .C auch hochladen... Oder einen Programmteil.

    Ich weiß auch, dass es einen ähnlichen Thread gibt, aber der wurde irgendwann konfus...

    Danke euch schon mal
    Und ein Frohes Beschenkt-Werden morgen!!!
    Fabian

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Hmmm...
    Kann mir denn dabei keiner helfen?
    Oder ist momentan einfach zu viel Trouble hier im Forum?
    Haben scheinbar ne ganze Menge Leute den RP6 vom Christkind bekommen

    Gruß,
    Fabian

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Ganz grob umrissen:
    Du musst einfach nur eine Zustandvariable einführen und die entsprechend im RC5 Handler setzten.

    robot_state = JETZT_BIN_ICH_AUTONOM;
    oder
    robot_state = SKLAVE_OHNE_EIGENEN_WILLEN;


    Oder entsprechend mehr Zustände für verschiedene Programme.

    Das dann eben in der Main und im RC5 Handler abfragen (die Kontrollen sperren solange autonom) und dementsprechend das Programm in der Main ausführen.


    MfG,
    SlyD

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    Danke Dir, SlyD!
    Sag mir, wenn ich falsch liege:
    Mein RC5-Handler sieht dann in etwa so aus:
    case vorwärts // Taste 2 gedrückt
    ->Befehle für Vorwärts
    break;
    case ...
    ...
    break;
    case Lichtverfolgung // Code für Programmablauf "Lichtverfolgung" gedrückt
    robot_state = Lichtverfolgung;
    break;
    ...

    Und dann brauche ich außerhalb des Handlers noch eine eigene Funktion für den robot_state = Lichtverfolgung, in der quasi das gesamte Beispielprogramm "Light Following" drin steht mit einer while-Schleife am ende. Diese While-Schleife wird erst beendet, wenn z.B. das RC5-Signal zum Beenden kommt!?
    Oder muss im Handler oder der neuen Funktion eine sub-main stehen?

    Und wie sieht denn dann die while-Schleife aus? Denn ich will ja NUR auf das RC5-Signal zum beenden des Programms hören, nicht auf alle anderen Codes!

    Gruß,
    Fabian

Berechtigungen

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

LiTime Speicher und Akkus