Moin, kurz Hintergrundinfos: Wir entwickeln zurzeit einen Autopiloten für Modellboote. In den ersten Versionen möchten wir noch die Möglichkeit haben mit einer normalen RC-Fernbedienung einzugreifen. Also sollen die Signale vom RC-Empänger auf dem Boot vorgezogen werden. Wir haben uns überlegt, dass der Mikrocontroller das Kommando übernehmen kann, wenn er einen Pin auf 1 setzt. Dann sollen nicht die Signale vom RC-Empfänger sondern, vom AVR genommen werden. Ist der Pin wieder auf 0, soll es wieder andersherum sein. Unsere Idee: Normale Relais sind zu groß, weil es dann doch schon so 6-7 Stück sein müssten. Deswegen haben wir uns überlegt, AND-Gatter mit jeweils 2 Eingängen zu nehmen. An den einen kommt, die Leitung mit dem PWM Signal des AVRs/RC-Empfängers, und an den anderen die Leitung vom AVR, durch die mit 1 und 0 die Signal Quelle geregelt werden soll. Vor die AND-Gatter vom RC-Empfänger kommen noch NOT-Gatter, der dann die Leitung vom AVR von 1 in 0, oder andersherum wandelt. Durch diese Schaltung kommen die Signale bei AVR Pin = 0, vom RC-Empfänger und bei AVR Pin = 1 vom AVR. Kann ich das so machen? Oder habt ihr andere Ideen? Welche AND/NOT IC's würdet ihr empfehlen? Die Spannungen sind überall 5V. Die PWM Signale vom AVR/RC-Empfänger sind auch 5V. MfG Philipp
Philipp Maricek schrieb: > Welche AND/NOT IC's würdet ihr empfehlen? AND = 74HC08 NOT = 74HC04 NAND = 74HC00 NOR = 74HC02 OR = 74HC32 3 fach NAND = 74HC10 4 fach NAND = 74HC20 Sollte damit funktionieren.
Ich nehme an, es geht um ein Failsave? Sollte das so sein, würde ich bei einer PPM18/10 o. ä. -Fernsteuerung, das Signal mit einem Input-Capture im Controller überwachen. Sollte das Signal ungültig werden(Abreißen oder 2 bis 20 ms verlassen) oder einen bestimmten Wert einnehmen, übernimmt der Controller.
Moin, danke erstmal. Failsafe soll es werden, aber nicht um die Fernbedinung abzusichern, sonder den Controller, sollte der sich z.B. aufhängen, oder irgendwo (z.B. while schleife) stecken bleiben, wegen Programmierfehlern, wird der mit Wachdog neu gestartet, und das Kommando der Fernbedienung übergeben. Das ganze ist sozusagen, zum Debugging da. Da wo der Controller steckenbleibt, wird außerdem noch geloggt. MfG Philipp
Und wenn man mit einem Schaltkanal der Fernsteuerung zwei Gates eines Linedrivers entgegenschaltet (74126/125)? Je nach Schalterstellung wird der Controller angeflanscht oder aber die Fernsteuerung.
Würde daraus einen HC 157 machen. Kann mit allen Pegeln umgehen. Störsicherer.
Moin, auch wenn der Thread schon älter ist. Ich probiers erstmal mit Logikdattern, weil ich noch welche rumliegen habe und nicht schon wieder bestellen möchte. Eine kurze Frage hätte ich da noch. Ich benutzte den 74HC08N und den 74HC02N. Muss ich für das PWM Signal einen Treiber dahinterschalten? Der max. Outputstrom für ein gatter ist bei ca. 70mA aber ich weiß nicht, wieviel das PWM Signal braucht? MfG Philipp
Philipp Maricek schrieb: > Der max. > Outputstrom für ein gatter ist bei ca. 70mA Falsch. Das ist der absolute Grenzwert und kein Betriebswert. Die Betriebswerte fuer das Gatter liegen wesentlich darunter bei so rund 20mA. Willst du also mehr treiben solltest du einen Treiber dazwischen schalten.
Aber wieviel mA zieht das PWM Signal eigentlich. Die Servos verweden ja serarat mit Strom versorgt.
> auch wenn der Thread schon älter ist. Ich probiers erstmal mit > Logikdattern, Euer Ansatz ist blöd. Ihr habt doch einen uC, der hat Millionen von Logikgattern. Speist einfach das Signal der Fernbedienung in den uC. Der entscheidet selbst, ob er SEINE Steuerimpulse oder die Steuerimpulse der Fernbedienung weiterleitet an die Servos und Fahrregler. Und das geht einfach per Software: Wenn Fernsteuerimpulse ankommen, verwendet die, sonst fahrt nach Autopilot (der seinerseits eine Watchdog haben sollte um festzustellen, ob er nicht abgestürzt ist). Damit ist auch das Umschalten ganz einfach, erfordert keinen extra Kanal und keinen extra Knopf an der Fernbedienung: Einfach den Sender ausschalten, wenn ihr die Kontrolle nicht haben wollt.
MaWin schrieb: >> auch wenn der Thread schon älter ist. Ich probiers erstmal mit >> Logikdattern, > > > Euer Ansatz ist blöd. > > Ihr habt doch einen uC, der hat Millionen von Logikgattern. > > Speist einfach das Signal der Fernbedienung in den uC. > > Der entscheidet selbst, ob er SEINE Steuerimpulse oder die Steuerimpulse > der Fernbedienung weiterleitet an die Servos und Fahrregler. > > Und das geht einfach per Software: Wenn Fernsteuerimpulse ankommen, > verwendet die, sonst fahrt nach Autopilot (der seinerseits eine Watchdog > haben sollte um festzustellen, ob er nicht abgestürzt ist). > > Damit ist auch das Umschalten ganz einfach, erfordert keinen extra Kanal > und keinen extra Knopf an der Fernbedienung: Einfach den Sender > ausschalten, wenn ihr die Kontrolle nicht haben wollt. Mir gehts aber genau darum, dass ich zum Fahren nicht auf den uC angewiesen bin. Sollte damit etwas sein (z.B. Wasserim Boot usw. oder irgentwas anderes) kann ich das Boot nicht mehr zurück holen, auch nicht mit der normalen Fernbedienung. Ich möchte damit einfach erreichen, dass ich uC unabhänig mit der Fernbedienung fahren kann. MfG Philipp
> Mir gehts aber genau darum, dass ich zum Fahren nicht auf den uC > angewiesen bin. Sollte damit etwas sein (z.B. Wasserim Boot usw. oder > irgentwas anderes) > kann ich das Boot nicht mehr zurück holen, auch nicht mit der normalen > Fernbedienung. Ich möchte damit einfach erreichen, dass ich uC unabhänig > mit der Fernbedienung fahren kann. Wenn Wasser im Boot ist, gehen auch Empfänger, Servos etc. nicht mehr. Und die Umschaltlogik, z.B. CD4053 für 3 Kanäle, könnte ja auch unter Wasser stehen oder der ersoffene uC seinen entscheidenden Ausgang "falschrum" halten. Das ist also nur halb durchdacht.
Eigentlich ist doch eher ein "Manual Override" gewünscht. D.h. das Signal welches zwischen µC und Fernbedienung umschaltet sollte von der Fernbedienung kommen und nicht vom µC. Andersrum ist es irgendwie sinnlos. Auch der Watchdog ist nicht immer eine gute Lösung. z.B. wenn sich das Programm immer gleich am Anfang aufhängt, da hat man nicht viel Zeit, um mit der Fernbedienung auch nur irgendwas zu machen und bis der Watchdog zuschlägt dauert es dann wieder.
Noah schrieb: > Eigentlich ist doch eher ein "Manual Override" gewünscht. D.h. das > Signal welches zwischen µC und Fernbedienung umschaltet sollte von der > Fernbedienung kommen und nicht vom µC. Andersrum ist es irgendwie > sinnlos. Auch der Watchdog ist nicht immer eine gute Lösung. z.B. wenn > sich das Programm immer gleich am Anfang aufhängt, da hat man nicht viel > Zeit, um mit der Fernbedienung auch nur irgendwas zu machen und bis der > Watchdog zuschlägt dauert es dann wieder. Ja, so wars gedacht. Das Autopilot Programm ist realtiv komplex und ich hätte einfach nur gerne eine Absicherung, dass wenn irgentwas sein sollte, ich das Boot mit der Fernbedienung zurück holen kann. Ich möchte, besonders an kälteren Tagen nicht umbedingt im Mittellandkanal schwimmen gehen. Außerdem ist da auch noch die Berufsschifffahrt, und die halten nicht für so ein kleines Boot an. MfG Philipp
Moin, zumindest bei den Atmegas steht im Status-Register der Auslöser vom letzten Reset. Du könntest in deinem Programm ganz zu Anfang dieses Register auswerten. Wenn der Watchdog zugeschlagen hat geht der Controller in eine Endlosschleife. Die Umschalt-Logik könntest du zusätzlich mit einem Taktsignal absichern: Wenn der Takt fehlt (= Controller hängt) wird auf die Fernbedienung geschaltet. Selbst wenn der Controller sich in der 1. Zeile vom Programm aufhängt und den Pin auf +5V festhält wertet die Logik das nicht als Umschalt-Signal. Den Takt solltest du dann natürlich nicht mit einem Timer erzeugen lassen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.