Steuerung der flatternden Flügel (Angry Bird)
Mein Angry Bird sollte flatternde Flügel bekommen, die ich über die Fernbedienung ein- und ausschalten konnte. Des Weiteren wollte ich die Flattergeschwindigkeit regeln können. Alles zusammen sollte auch noch über einen einzigen RC-Kanal laufen. Ich benutzte hierfür einen ATTiny 45, der einfach zwischen einen freien RC-Empfängerausgang und dem Flatterservo (HXT900) gesteckt wird.
Der Aufbau:
Der fertige Schaltplan ist ausgesprochen einfach: Außer dem Attiny selbst, werden nur ein Kondensator und evt. Stiftleisten für den Anschluss benötigt. Alternativ zu den Stiftleisten kann man auch ein Servo-Verlängerungskabel in der Mitte durchschneiden und die Kabel direkt an den Attiny (oder dessen Fassung) löten.
Der Programm-Code:
Mit meinen spärlichen Programmierkenntnissen bastelte ich mir dann diesen Bascom-Code zusammen:
Verlangt bitte nicht, dass ich jede Code-Zeile einzeln erkläre, ich versteh es auch kaum und bin immer wieder verwundert, wenn's dann doch funktioniert :-)
Zur Funktion:
Je nach Stellung des RC-Kanals reagieren die Flügel mit folgender Reaktion:
Bereich ca. 0-25 Prozent:
Flügel stehen in Neutralstellung. Diese Stellung wird für Start oder Landung
benötigt.
Bereich ca. 25-50 Prozent:
Flügel bleiben in der Stellung stehen, wo sie zuletzt waren. Das heißt: War der
RC-Kanal gerade im Bereich 0-25 Prozent, bleiben die Flügel nach wie vor in
Neutralstellung. War der RC-Kanal gerade über 50 Prozent, bleiben die Flügel in
der Stellung, wo sie in dem Moment waren, als der RC-Kanal unter die 50 Prozent
geschaltet wurde.
Bereich ca. 50-100 Prozent:
Das Servo fängt langsam an, von einer Seite zur anderen zu fahren und die Flügel
fangen an zu flattern. Die Geschwindigkeit erhöht sich, je weiter der RC-Kanal
Richtung 100 Prozent genommen wird.
Fällt der RC-Kanal (aus welchen Gründen auch immer) aus, resettet sich der Attiny nach ca. 1 Sekunde und bringt die Flügel in Neutralstellung.
Wichtig: Die
Neutralstellung kann nur im Code selbst geändert werden. Das heißt: Beim Nachbau
muss zunächst das Flatterservo mit angeschlossenem Attiny in die Neutralstellung
gebracht werden (Bereich 0-25 Prozent) und danach erst die Schubstangen auf richtige Länge zuschneiden
und montieren (ein Trimmen des Servos ist NICHT möglich).
Des Weiteren verarbeitet das Programm RC-Signale nur bis etwa 2ms Länge. Wird
das überschritten, gehen die Flügel wieder in Neutralstellung. Manche
Fernsteueranlagen überschreiten diese Grenze. In diesem Fall sollte man den
entsprechenden RC-Kanal mittels Dual Rate oder Servowegsbegrenzung etwas
reduzieren.
Mit der Version 2 des Bascomcodes wurde das Problem mit Signalen über 2ms
gelöst, nun sollte es keine Probleme mehr damit geben.
Die Fernbedienung:
Ich habe bei meiner Fernsteuerung den entsprechenden RC-Kanal auf ein Poti gelegt. So kann ich stufenlos die Geschwindigkeit regeln. Des Weiteren habe ich noch einen (leicht erreichbaren) Schalter der Fernbedienung zum Poti dazu gemixt. Wird dieser Schalter umgelegt, geht der RC-Kanal unabhängig vom Poti unter 25 Prozent. Dadurch ist es schnell möglich, die Flügel in Neutralposition zu bringen. Dies ist z.B. dann notwendig, wenn man mal wieder unerwartet abgestützt ist und das Flattern schnell beenden muss :-)