- LiTime Speicher und Akkus         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Programmstart mit Hindernissen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied Avatar von basteluwe
    Registriert seit
    15.11.2012
    Beiträge
    131

    Programmstart mit Hindernissen

    Anzeige

    Praxistest und DIY Projekte
    Ich hatte vor Kurzem in meinem I2C Thema am Ende schon mal diese Frage gestellt, aber leider keine Antwort mehr bekommen.
    Hier also noch ein Versuch:

    Auf der Base des RP6 läuft "RP6Base_I2CSlave" und auf der M256-WiFi läuft "Example_10_Move"
    Die Programme sind unverändert aus dem Ordner "RP6_Examples_20120725". Der RobotLoader ist Version 2.5a

    Nach dem Start vom Button auf der Base läuft das Programm so, wie es ursprünglich soll: Der Robby fährt fröhlich umher, ACS ist aktiv (die LED zappeln) und er weicht Hindernissen aus und auch die Bumper reagieren.
    Nach dem Start vom WiFi Loader tut er "nur beinahe" das gleiche, aber das ACS ist nicht aktiv! Die entsprechenden LEDs zeigen keine Action und er weicht auch nicht aus. Die Bumper funktionieren aber!
    Fakt ist, die installierten Programme reagieren unterschiedlich, je nachdem ob der Start von der Base oder vom WiFi Loader erfolgt.

    SlyD hatte im I2C Thema schon erklärt, dass da eigentlich kein Unterschied sein soll/kann.
    Irgendwelche Ideen? Kann das vielleicht jemand mit dem gleichen Setup testen?

    Gruß Uwe

    P.S. Ich hatte hier ursprünglich geschrieben, dass 09-Move auf dem M256 ist, das war falsch! Es ist 10-Move drauf. Hab ich im Text oben nachträglich geändert!
    Geändert von basteluwe (03.03.2014 um 10:08 Uhr)

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi Uwe,

    ich hatte dich ja auch schon an SlyD verwiesen, der den RP6 konstruiert und die Software dafür geschrieben hat.
    Er hatte ja Timing-Probleme erwähnt, an die ich auch glaube.

    Bei mir läuft das mit dem Example_09_Move so, dass ich nach dem Wifi-Start die Meldung:
    Code:
    Moving...
    
    I2C ERROR - TWI State: 0x
    
    Moving Forwards...
    
    I2C ERROR - TWI State: 0x
    ... bekomme. Der RP6 bewegt sich nicht und ich muss mit Reset abbrechen.
    Mit dem Start-Button auf dem RP6 klappt alles gut.

    Wenn er bei dir nach dem Wifi-Start rumfährt, ist das also schon so, wie es sein soll.
    Das ACS und die Bumper sind bei der Demo ja sowieso nicht in Betrieb, da kannst du weder eine Funktion noch Nichtfunktion beobachten.

    Letztlich müßte SlyD das Problem eingrenzen.
    Gruß
    Dirk

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied Avatar von basteluwe
    Registriert seit
    15.11.2012
    Beiträge
    131
    Hi Dirk,
    Ich muß mich korrigieren (echt doof)! Ich habe auf der M256 natürlich NICHT das Programm 09_Move, sondern 10_Move. Deshalb hatte ich auch von ACS und Bumpern geschrieben.
    09_Move reagiert bei mir exakt genauso, wie bei dir. Bei Start über WiFi bekomme ich den selben Error-Code im terminal wir du und die Base fährt nicht! Bei Start über Base-Button ist alles OK.
    Könntest du vielleicht das gleiche mit 10_Move testen? Über WiFi Start müsste er zwar fahren und auch die Bumper reagieren, aber ACS geht NICHT.
    Über Base-Start funktioniert bei mir alles.
    Wäre schön, wenn du das bestätigen könntest, bitte.

    Gruß Uwe

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi Uwe,
    habs getestet mit demselben Ergebnis wie bei dir:
    Nach Wifi-Start funktioniert das ACS beim Example_10_Move2 nicht, wohl aber nach dem Programmstart mit dem Start-Button. Immerhin fährt der RP6 herum und reagiert auf die Bumper.
    Die Ausgaben sehen aus wie vorgesehen, es gibt auch keine I2C-Fehlermeldungen.
    Gruß
    Dirk

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied Avatar von basteluwe
    Registriert seit
    15.11.2012
    Beiträge
    131
    Zitat Zitat von Dirk Beitrag anzeigen
    Hi Uwe,
    habs getestet mit demselben Ergebnis wie bei dir:
    Nach Wifi-Start funktioniert das ACS beim Example_10_Move2 nicht, wohl aber nach dem Programmstart mit dem Start-Button. Immerhin fährt der RP6 herum und reagiert auf die Bumper.
    Die Ausgaben sehen aus wie vorgesehen, es gibt auch keine I2C-Fehlermeldungen.
    OK, genau so sieht's bei mir auch aus. Danke für deinen Test!
    Das ist dann ja aber wohl ein Fehler, denn wie SlyD in meinem I2C-Thema geschrieben hatte:

    "...normalerweise sollten immer alle Controller gestartet werden, wenn einer davon startet (Signal über den I2C Bus wird von allen Bootloadern beim Start gesendet / empfangen). Also auch wenn das Programm vom RobotLoader aus gestartet wird. Ist das nicht so läuft irgendwas verkehrt.

    Frage also: WAS ist verkehrt? Es scheint ja ein genereller Fehler zu sein, der mehrere User betrifft!

    Gruß Uwe

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Hallo,

    bin diesen Monat leider extrem beschäftigt - werde mir das nächsten Monat genauer anschauen.

    Als Workaround: Pack einfach mal die Initialisierung für ACS usw
    // ---------------------------------------
    // Setup ACS power:
    I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_ACS_POWER, ACS_PWR_MED);
    // Enable Watchdog for Interrupt requests:
    I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT, true);
    // Enable timed watchdog requests:
    I2CTWI_transmit3Bytes(I2C_RP6_BASE_ADR, 0, CMD_SET_WDT_RQ, true);
    nochmal vor die Pausen am Anfang also direkt vor die Ausgabe auf dem Display (Zeile 699),
    ggf. auch zweimal mit weiterer Pause dazwischen (200ms).
    Könnte dann funktionieren.

    MfG,
    SlyD

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied Avatar von basteluwe
    Registriert seit
    15.11.2012
    Beiträge
    131
    Zitat Zitat von SlyD Beitrag anzeigen
    Als Workaround: Pack einfach mal die Initialisierung für ACS usw. nochmal vor die Pausen am Anfang also direkt vor die Ausgabe auf dem Display (Zeile 699),
    ggf. auch zweimal mit weiterer Pause dazwischen (200ms).
    Könnte dann funktionieren.

    MfG,
    SlyD
    Danke SlyD.
    Mal sehen, ob ich das hinkriege. Der RP6 ist mein erster Einstieg in C (bisher nur Bascom). Ich fang also ganz klein an!
    Das wird wohl spannend

    Gruß Uwe

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Hallo Uwe,

    ah OK - naja ist keine große Sache: wirklich einfach nur den Text da oben in die genannte Zeile kopieren (der steht dann also zweimal im Programm getrennt durch die Pausen und Display ausgaben) und dann neu compilieren.

    Dann nochmal probieren.


    Ich habs noch nicht getestet daher ohne Garantie dass es was ändert.

    MfG,
    SlyD

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied Avatar von basteluwe
    Registriert seit
    15.11.2012
    Beiträge
    131
    Ich hole dieses Thema noch mal hoch, weil ich gerade mal wieder drüber gestolpert bin. Aus meiner Sicht ist es immer noch nicht gelöst.
    Zitat Zitat von SlyD Beitrag anzeigen
    Als Workaround: Pack einfach mal die Initialisierung für ACS usw
    nochmal vor die Pausen am Anfang also direkt vor die Ausgabe auf dem Display (Zeile 699),
    ggf. auch zweimal mit weiterer Pause dazwischen (200ms).
    Könnte dann funktionieren.
    SlyD
    Das hab ich versucht, bringt leider gar nichts. Wundert mich aber auch nicht, weil ja nicht nur Move10 sondern auch Move9 nicht fehlerfrei vom WiFi-Loader starten, und Move9 arbeitet ja nicht mit ACS. Mit dem ACS hat das also nichts zu tun.
    Es muß irgendwie an der Startroutine beider Prozessoren über I2C liegen.

    Uwe

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Hallo,

    es geht dabei auch nicht um das ACS - es geht darum irgendwas beliebiges über den I2C Bus zu senden weil das den Start auslöst (kannst auch an Adresse 0, daten 0 senden ist egal).
    Das normale Programm braucht am Anfang evtl. zu lange bis der Bus reagiert und dann kommt es eben zu den "slave antwortet nicht" 0x20 Fehlern oben.
    Also möglichst früh senden, dann eine lange Pause machen. Dann sollte es normal laufen.

    MfG,
    SlyD

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Ortung in einem Raum mit Hindernissen
    Von Checker108 im Forum Software, Algorithmen und KI
    Antworten: 14
    Letzter Beitrag: 14.03.2010, 14:59
  2. Hindernissen Ausweichen -> Fehlfunktion
    Von JeyBee im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 2
    Letzter Beitrag: 15.11.2008, 14:51
  3. Wo u. wie, Compilerstart, und Programmstart? (Windows-XP)
    Von mechat im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 3
    Letzter Beitrag: 07.08.2008, 22:18
  4. Gesicherte Daten im eram bei Programmstart verwenden
    Von mat-sche im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 26.03.2008, 18:06
  5. LED-Darstellungs Idee mit ein paar Hindernissen
    Von Strahleman im Forum Elektronik
    Antworten: 51
    Letzter Beitrag: 24.01.2007, 16:20

Berechtigungen

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

LiTime Speicher und Akkus