AP_Scripting: applets: add Hexsoon LEDs script
This commit is contained in:
parent
65a1b0cb56
commit
c801f12a78
69
libraries/AP_Scripting/applets/Hexsoon LEDs.lua
Normal file
69
libraries/AP_Scripting/applets/Hexsoon LEDs.lua
Normal file
@ -0,0 +1,69 @@
|
||||
-- Hexsoon EDU 450 LED script
|
||||
-- LEDs will be fixed colour when disarmed, when armed LEDs will also strobe
|
||||
|
||||
--[[ INSTRUCTIONS:
|
||||
LEDs have two servo headers, plug into AUX 5 and 6 on cube.
|
||||
Note white is ground, black and brown are signal
|
||||
black into AUX 5 and brown into AUX 6
|
||||
Other aux pins could be used but 5 and 6 make best use of the available groups
|
||||
BRD_PWM_COUNT must be 6
|
||||
Aux 5 and 6 are servo outs 13 and 14
|
||||
SERVO13_FUNCITON 132 Profi LED Clock
|
||||
SERVO14_FUNCTION 94 Script 1
|
||||
setup scripting:
|
||||
SCR_ENABLE 1
|
||||
SCR_HEAP_SIZE 88032
|
||||
Reboot
|
||||
Use MP config tab -> MAVFtp to place this script in 'APM/scripts' folder
|
||||
Reboot
|
||||
Check messages tab should see:
|
||||
LEDs strip left: chan=14
|
||||
RCOut: PWM:1-12 ProfiLED:13-14
|
||||
Note that 1-12 might not be PWM, all than matters is: ProfiLED:13-14
|
||||
If not check for scripting error messages.
|
||||
LEDs should now work!, if not try swapping AUX 5 and 6, either by physically swapping or by swapping the servo functions and rebooting
|
||||
To get colours to match either change the ordering in "local led_map =" below or swap headers round on the LED distribution board
|
||||
If using 6 les add two extra colours to "local led_map =" e.g: "local led_map = {red, red, red, green, green, green}"
|
||||
--]]
|
||||
|
||||
-- helper colours, red, green, blue values from 0 to 255
|
||||
local red = {255, 0, 0}
|
||||
local green = {0, 255, 0}
|
||||
local blue = {0, 0, 255}
|
||||
|
||||
-- led map giving the colour for the LEDs plugged in
|
||||
local led_map = {red, red, green, green}
|
||||
|
||||
-- number of ms to strobe white, can be 0 for no strobe
|
||||
-- strobe only active when armed
|
||||
local strobe_on_time = 100
|
||||
|
||||
-- number of ms to hold colour set in led_map
|
||||
local colour_map_time = 900
|
||||
|
||||
local led_chan = assert(SRV_Channels:find_channel(94),"LED: channel not set") + 1
|
||||
gcs:send_text(6, "LED strip: chan=" .. tostring(led_chan))
|
||||
assert(serialLED:set_num_profiled(led_chan, 8),"Failed LED setup")
|
||||
|
||||
local timer = false
|
||||
function update_LEDs()
|
||||
local armed = arming:is_armed()
|
||||
if armed and timer and strobe_on_time > 0 then
|
||||
timer = false
|
||||
-- all white
|
||||
serialLED:set_RGB(led_chan, -1, 255, 255, 255)
|
||||
serialLED:send(led_chan)
|
||||
return update_LEDs, strobe_on_time
|
||||
else
|
||||
timer = armed
|
||||
for led_num = 1,#led_map do
|
||||
-- each LED module has two LEDs, set both to colour map colour
|
||||
serialLED:set_RGB(led_chan, ((led_num-1)*2)+0, led_map[led_num][1], led_map[led_num][2], led_map[led_num][3])
|
||||
serialLED:set_RGB(led_chan, ((led_num-1)*2)+1, led_map[led_num][1], led_map[led_num][2], led_map[led_num][3])
|
||||
end
|
||||
serialLED:send(led_chan)
|
||||
return update_LEDs, colour_map_time
|
||||
end
|
||||
end
|
||||
|
||||
return update_LEDs()
|
45
libraries/AP_Scripting/applets/Hexsoon LEDs.md
Normal file
45
libraries/AP_Scripting/applets/Hexsoon LEDs.md
Normal file
@ -0,0 +1,45 @@
|
||||
# Hexsoon EDU 450 LED script
|
||||
LEDs will be fixed colour when disarmed, when armed LEDs will also strobe
|
||||
|
||||
# INSTRUCTIONS
|
||||
LEDs have two servo headers, plug into AUX 5 and 6 on cube.
|
||||
|
||||
Note white is ground, black and brown are signal
|
||||
|
||||
black into AUX 5 and brown into AUX 6
|
||||
|
||||
Other aux pins could be used but 5 and 6 make best use of the available groups
|
||||
BRD_PWM_COUNT must be 6
|
||||
|
||||
Aux 5 and 6 are servo outs 13 and 14
|
||||
```
|
||||
SERVO13_FUNCITON 132 (Profi LED Clock)
|
||||
SERVO14_FUNCTION 94 (Script 1)
|
||||
```
|
||||
|
||||
-setup scripting:
|
||||
```
|
||||
SCR_ENABLE 1
|
||||
SCR_HEAP_SIZE 88032
|
||||
```
|
||||
- Reboot
|
||||
|
||||
- Use MP config tab -> MAVFtp to place this script in 'APM/scripts' folder
|
||||
|
||||
- Reboot
|
||||
|
||||
- Check messages tab should see:
|
||||
```
|
||||
LEDs strip left: chan=14
|
||||
RCOut: PWM:1-12 ProfiLED:13-14
|
||||
```
|
||||
|
||||
Note that 1-12 might not be PWM, all than matters is: ProfiLED:13-14
|
||||
|
||||
If not check for scripting error messages.
|
||||
|
||||
LEDs should now work!, if not try swapping AUX 5 and 6, either by physically swapping or by swapping the servo functions and rebooting
|
||||
|
||||
To get colours to match either change the ordering in "local led_map =" below or swap headers round on the LED distribution board
|
||||
|
||||
If using 6 les add two extra colours to "local led_map =" e.g: "local led_map = {red, red, red, green, green, green}"
|
Loading…
Reference in New Issue
Block a user