Ah super! Werde ich morgen direkt (natürlich nach der Freigabe von SlyD ) testen!
Gruß, Morpheus
Ah super! Werde ich morgen direkt (natürlich nach der Freigabe von SlyD ) testen!
Gruß, Morpheus
Ich bin nicht sicher, ob das so funktioniert. Für einen schnellen Test könntest du den Start-Taster beim Einschalten gedrückt halten und erst nach dem Einschalten loslassen. Das Programm sollte dann starten. Möglicherweise mag es der Bootlader nicht, wenn Start/Stop schon beim Einschalten auf High-Pegel ist.
Plan B wäre den RP6 nicht auszuschalten, sondern in einen stromsparenden Sleep-Modus zu versetzen und per Interrupt wieder aufzuwecken.
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
ups, ich hatte mich wohl nicht klar genug ausgedrückt. "Plan A" entspricht etwa dem, was ich mit der Beschreibung meines fehlgeschlagenen Lösungsansatzes meinte
Bei Plan B gäbs Probleme.. da sich mein roboter nach dem "Reinigungsgang" wieder in Richtung der Ladestation bewegen sollte. ich bin mir zwar nicht sicher, aber bei einem sleep-Modus ist das Programm ja wahrscheinlich immer noch gestartet, also würde hier das Problem sein, dass der Roboter zum laden ja aus sein soll :/
Das müsste doch auch Softwareseitig gehen, oder?
z.B., indem man ohne Bootloader flasht. Also direkt das Programm aufspielt und den Bootloader löscht, dadurch sollte das Programm sofort ausgeführt werden!?
Das würde ich vermeiden!Also direkt das Programm aufspielt und den Bootloader löscht
Beim letzten Anlauf für die Ladestation sind wir ja leider auch nicht sehr weit gekommen (und ebenfalls am neustart des RP6 gescheitert):
https://www.roboternetz.de/community...l=1#post499798
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Hallo,
Du kannst den Hauptschalter komplett überbrücken - dafür gibts den EXT Anschluss hinten.
Gerade erst hier eine Frage dazu gewesen:
http://www.arexx.com/forum/viewtopic.php?f=19&t=2161
http://www.rn-wissen.de/index.php/RP6#EXT_Anschlu.C3.9F
Dann brauchst Du keine solche Servo Konstruktion sondern kannst MOSFETs oder Relais verwenden um den Akkulader und Versorgung automatisch nach dem Andocken um/zuzuschalten.
Wenn der Roboter eh an einer Ladestation hängt hat er ja Netzversorgung also kann der Controller auch einfach weiter versorgt werden.
> Autostart
ja leider hat der Bootloader keine Autostart Funktion - das können nur die RP6-M256 und M128 Module - die dann auch automatisch den Controller auf dem Mainboard über I2C starten. Damit wäre es also kein Problem.
Möglichkeiten das Programm ohne die Erweiterungsmodule zu starten:
- Taster drücken bzw. passend high puls auf den Eingang geben s.u.
- I2C Bus SDA kurz auf low ziehen
- "s" per UART senden
- es gar nicht erst stoppen sondern weiterlaufen lassen und den Standby nutzen
Das mit dem Kondensator wird so nicht funktionieren.
Der Bootloader prüft nicht den Pegel, sondern ob nach der Startverzögerung der Taster losgelassen ist und dann gedrückt und wieder losgelassen wird (ist notwendig weil ja im Programm normalerweise direkt danach auf den "Reset" Modus umgeschaltet wird).
Man könnte ganz klassisch eine kleine 555 Timer Schaltung (oder TTL Logik ICs) nutzen um einen einzelnen Low-Puls auf SDA zu erzeugen (Monoflop) - aber zum passenden Zeitpunkt also nach kurzer Startverzögerung.
Code:Also sowas: _______ _________________________.... |____| bzw. sowas am Start/Stop Signal: ____ _______| |_________________________....
An SDA muss es Open-drain / open-collector sein, nur einmal kurz aktiv low schalten nicht aktiv high! Pullup ist schon am Bus.
Am Start Taster Eingang wäre es umgekehrt high aktiv.
Hier ist ggf. sicherheitshalber noch ein kleiner Serienwiderstand erforderlich weil der GPIO aktiv low wird sobald der Start vollzogen ist...
MfG,
SlyD
@SlyD würde es dann so funktionieren,was die "Tastersteuerung" anbelangt ( siehe Anhang) ? Ist ja einfach die Monoflop-Schaltung, mit SDA als Eingang und dem Taster als Ausgang, wobei der Eingang ja im Normalfall high ist, und zu bestimmten Momenten auf low, während der Ausgang auf low steht, nur zu bestimmten Momenten auf high. Wie steuert man dies denn so eigentlich an, also besser gesagt, wie legt man diese " bestimmten Momente " fest? Setzt man dann einfach, wenn man das Programm starten will, SDA auf low direkt in meinem Programm, und dadurch bekommt dann der Taster einen kurzen High-Impuls, wodurch das Programm gestartet wird? Das wäre ja paradox, da das Programm ja dann schon laufen müsste, um es zu starten?!
http://www.elektronik-kompendium.de/...lt/0310121.htm
Lesezeichen