Hallo, ich habe hier eine Routine geschrieben die die Beleuchtung am Copter bei einer bestimmten Volt-Zahl blinken lässt. Die Beleuchtung muss mit einem RC-Schalter an einen Ausgang eurer Wahl angeschlossen werden, der Ausgang an der Servoschiene muss mit 96 gekennzeichnet werden (SERVO(X)_FUNKTION s.Bild).
Der Parameter SCR_ENABLE muss auf 1 gesetzt werden so das LUA Schripts ausgeführt werden können, das Script kommt in das Flightcontroller SD Karten Verzeichnis APM/SCRIPTS und muss die Endung .lua erhalten (Name egal), das Verzechnis SCRIPTS muss selbst angelegt werden wenn nicht schon vorhanden.
Der Ausgang auf die Servoschiene wird nach dem Armen und angeschlossenem Akku Aktiviert.
(Das Script ist getestet und kommt an meinem Alien zum Einsatz)
Voraussetzungen:
- Arducopter ab 4.0.0
- Flight Controler mindestens FMUv3 (z.B. Pixhawk 4)
Im Header der Routine lässt sich das ganze Konfigurieren, ich denke das ist selbsterklärend:
--**********************************************************************************
bttmin=22.2 -- Blinken startet bei Volt
fr=50 -- Blinkfrequen * 10 Millisekunden (muss größer 20 sein)
actext=1 -- Textausgabe Mission Planner 1=an 0=aus
--**********************************************************************************
blk=0
function update()
chan = SRV_Channels:find_channel(96)
if not chan then
gcs:send_text(6, "Servoschiene nicht festgelegt")
return
end
chan = chan + 1
btt=battery:voltage(0)
if btt>=bttmin then
servo.set_output_pwm(96, 2000)
if actext==1 then
gcs:send_text(0, "Battery OK, "..btt.." Volt (Output S.Schiene: "..chan..")")
end
end
if btt<bttmin and blk<=(fr/2) then
servo.set_output_pwm(96, 1000)
if actext==1 then
gcs:send_text(0, "Batt Warnig! "..chan.." Voltage="..btt)
end
blk=blk+1
end
if btt<bttmin and blk>(fr/2) then
servo.set_output_pwm(96, 2000)
if actext==1 then
gcs:send_text(0, "Batt Warnig! "..chan.." Voltage="..btt)
end
blk=blk+1
end
if blk>=fr then blk=0 end
return update, 10
end
return update()
Alles anzeigen