- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 10

Thema: Start-Stop-Taster "Überbrücken"?

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.12.2010
    Ort
    Dörpen
    Alter
    26
    Beiträge
    120

    Start-Stop-Taster "Überbrücken"?

    Anzeige

    Praxistest und DIY Projekte
    Hallo
    Ich hab mich nun mal wieder mit dem Rp6 beschäftigt, und da habe ich mich besonders gefragt, ob es möglich ist, dass das im RP6 geladene Programm direkt gestartet wird, nachdem man den An-Aus-Schalter betätigt hat, ohne vorher den Start-Stop-Taster zu betätigen.
    Die erste Möglichkeit, die für mich direkt in Frage kam, war, einfach den Taster zu überbrücken.. doch schon der erste Test hat gezeigt, dass dies so nicht funktionieren wird, da, wenn man den Rp6 ausgeschaltet hat, dann den Taster gedrückt hält und gleichzeitig den Schalter, der Rp6 nicht das Programm startet, sondern ledeglich alle roten Leds an sind, wie es im Normalfall auch ist, nur eben nur eine Sekunde.
    Gibt es dennoch eine Möglichkeit, Programme ohne den Taster zu starten?

    Btw:
    Da der Sinn dieser Frage / dieses Problems sicherlich so gut wie niemandem klar sein wird, muss ich noch zusätzlich erwähnen, dass ich meinen Rp6 zu einem "Putzteufel" modifiziere, der dann zu bestimmten Zeiten automatisch angeschaltet werden soll, und das "Putzprogramm" selbstständig ausführen soll! ( Realisieren wollte ich dies mit einem Servo, der den An-Aus Schalter betätigt) Auch wenn in der Bedienungsanleitung ausdrücklich steht, man solle den Rp6 nicht "alleine lassen" während ein Programm gestartet ist, soll dies nicht das Anliegen dieses Themas werden, da ich mir schon diverse Schutzfunktionen für unwahrscheinliche, dennoch mögliche Worst-Case-Szenarien ausgedacht habe

    Mit freundlichen Grüßen,
    Morpheus

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Dass der RP6 nach dem Einschalten nicht startet scheint ja gelegentlich echt ein Problem zu sein. Über eine Lösung habe ich bisher noch nichts gelesen. Quick&Dirty würde ich zwischen ST1 und ST2 einen kleinen Kondensator schalten:

    Bild hier  

    Im Betrieb (und nach dem Einschalten) wird die Start/Stop-Leitung über R5 (100K) auf GND gezogen. Wenn der Starttaster gedrückt wird, dann wird der Pegel an Start/Stop high, weil MReset über R3 (10K) und den internen Reset-PullUp nach 5V gezogen wird. Ein parallel zum Start/Stop-Taster angeschlossener Kondensator würde beim Einschalten den Taster kurzschliesen und dann über R5 geladen werden. Wenn die Ladespannung am MReset als Highpegel erkannt wird (ca. 3V?), startet der Bootloader das Programm. Theoretisch, denn getestet habe ich das noch nicht.

    Über die Ladekurve, den Highlevel und die gewünschte Startverzögerung könnte man die erforderliche Größe des Kondensators errechen. Ich würde mal mit 4,7µ (+ an MReset) testen. Aber zuvor unbedingt die Freigabe von SlyD abwarten.

    Beim Flashen wird vom RST der MReset auf GND gezogen, der automatische Start würde das Flashen deshalb vermutlich nicht beeinflußen. Aber das muss man testen und gegebenenfalls den Kondensator beim Flashen wieder entfernen.

    Gruß

    mic
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken rp6-startstop.jpg  
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.12.2010
    Ort
    Dörpen
    Alter
    26
    Beiträge
    120
    Ah super! Werde ich morgen direkt (natürlich nach der Freigabe von SlyD ) testen!
    Gruß, Morpheus

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    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!

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.12.2010
    Ort
    Dörpen
    Alter
    26
    Beiträge
    120
    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 :/

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.11.2010
    Beiträge
    773
    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!?

  7. #7
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Also direkt das Programm aufspielt und den Bootloader löscht
    Das würde ich vermeiden!

    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!

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    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

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.12.2010
    Ort
    Dörpen
    Alter
    26
    Beiträge
    120
    @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?!

    Klicke auf die Grafik für eine größere Ansicht

Name:	Unbenannt.PNG
Hits:	7
Größe:	11,7 KB
ID:	25247
    http://www.elektronik-kompendium.de/...lt/0310121.htm

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    SDA tut von sich aus gar nix - das bringt am EINGANG der Monoflop Schaltung daher auch nichts

    Die beiden Möglichkeiten die ich da beschrieben habe sind Alternativen - Du musst nur entweder SDA ODER den Start/Stop Eingang nutzen, nicht beide.
    Der Taster wird auch nicht benutzt und hat nix damit zu tun, es geht um die Signalleitung / GPIO Start/Stop (bzw. SDA).

    Du musst für das was ich oben geschrieben habe keine einzige Zeile Programmcode schreiben das ist ne reine Hardwarelösung.
    Die Zeiten werden über Kondensatoren und Widerstände eingestellt, kann man berechnen oder durch trial+error ermitteln wenn man einige in etwa passende Werte in der Bastelkiste liegen hat.

    Wichtig ist noch die Startverzögerung - der Puls darf nicht sofort nach dem Einschalten kommen sondern sollte z.B. grob 1 Sekunde nach dem Anschalten erzeugt werden.

    MfG,
    SlyD

Ähnliche Themen

  1. Problem mit Start/Stop Taster
    Von Zizibee im Forum Robby RP6
    Antworten: 13
    Letzter Beitrag: 22.04.2010, 10:09
  2. L298: genaue Funktion des "Motor Stop" (Enable)
    Von Dolfo im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 26.08.2008, 11:38
  3. Woher "Taster - Bedienfeld" für Torantrieb?
    Von Lorenz im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 25.03.2007, 14:07
  4. Glasplatte als "Taster"
    Von Felix G im Forum Sensoren / Sensorik
    Antworten: 51
    Letzter Beitrag: 19.09.2005, 08:13
  5. Beim Pc-start "spinnt" die Relaiskarte
    Von RCO im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 30.06.2004, 22:26

Stichworte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress