FrSky Taranis - Максимум возможностей за минимальные деньги.
Плата приемника визуально без повреждений.
если воняет горелым, плата не может быть без повреждений… смотри внимательнее…
2.0.19 новая прошивка. Там легко могли это поправить вместет с 2.1.
поставил компашку 2.0.3
результат тот же…
иди в отпуск 😃
😃
Посыпаю голову пеплом…
До встречи на Гаваях!!! 😁
Хотя погодите…
Выдержка из русской инструкции.
параметр длительности ‘Duration’ (минимальное время, в течение которого пользовательский
переключатель будет активным, даже если его условия на короткое время станут ложными)
Еще инструкция наглоязычная.
Так как она должна работать-то???
Вроде как весьма недвусмысленно описана работа функции.
Есть ли вариант вернуть приемник к жизни или забыть/забить? Плата приемника визуально без повреждений.
Если поврежден МК, то шансов нет. Никто фирменного загрузчика на приемник не имеет. А прошивка на приемник скремблирована. Без загрузчика ее не залить. А загрузчик производитель не даст, ибо сразу же появятся самодельные клоны приемников и передающие модули со всеми вытекающими…А зачем это производителю.
параметр длительности ‘Duration’ (минимальное время, в течение которого пользовательский переключатель будет активным, даже если его условия на короткое время станут ложными)
именно так и работает, вне зависимости от активности…
в моём примере: сработало условие - свич активировался, условие дёргаю туда сюда а свич всё так же активен… по прошествии заданного времени (3 секунды) свич деактивируется…
я только что настроил задержку выключения записи лога используя Delay
оказываться эта настройка хоть и работает нормально, но включает запись лога при каждом включении аппы на 10 сегунд
L1 a>x RSSI 0dB --- --- ---
L2 AND !L1 --- --- --- 10.0
SF1 !L2 SD Logs 0.3s
что-бы от этого избавиться - нужно добавить еще два свича 😦
L1 a>x RSSI 0dB --- --- ---
L2 AND !L1 --- --- --- 10.0
L3 AND --- --- --- 4.0 ---
L4 AND !L2 !L3 --- --- ---
SF1 L4 SD Logs 0.3s
при включении аппы запись лога теперь не включается автоматически, но она и не сможет включится если наступит условие в L1 в течении 10 секунд 😮
в общем решил остаться на первом варианте настройки и забить 10 секундное на включение лога при включении аппы
но думаю что настал момент посмотреть как работают Lua скрипты, возможно всю эту логику можно будет задавать в виде кода, тогда это будет на много гибче и легче
Добрый день.
Правильно понимаю,что ценника вкуснее,чем “первая покупка” на банггуд нет?
Всем привет! После продолжительных исследований программирования наконец-то готов и мой вариант переключателя. Программа написана на баскоме, т.е. с нуля. В устройстве используется графический дисплей OLED 128*64.
Немного внутренностей:
Отверстие в корпусе пульта и панелька из оргстекла делались на самопальном чпу-станке.
Трепанация Тараниса
А тут как это работает:
Менюшку с выбором типа летательного аппарата сделал просто так, может пригодится, когда начну осваивать самолёты и полётные режимы будут другими. Пока у меня только коптер, поэтому после выбора того или другого программа попадает в коптерный список режимов. Это опционально и всегда можно удалить.
Также есть вариант программы под символьный дисплей 16*2, но встроенного решения с ним уж точно не получится))
сразу же взгляд со стороны:
гораздо удобнее было бы, если бы при переключении нужный режим подсвечивался бы инверсией, а не как сейчас, надпись по центру… её хрен прочитаешь…
а по моему было бы гораздо информативнее…
После продолжительных исследований программирования наконец-то готов и мой вариант переключателя.
то есть весь этот труд и красота - всего лишь дискретный переключатель? т.е. на каком-то канале меняется значение с заданным шагом?
сразу же взгляд со стороны:
гораздо удобнее было бы, если бы при переключении нужный режим подсвечивался бы инверсией, а не как сейчас, надпись по центру… её хрен прочитаешь…
а по моему было бы гораздо информативнее…
да, возможно в этом что то есть, как то не думал над таким вариантом отображения инфы, а если ещё и шрифт увеличить, то совсем должно быть хорошо
то есть весь этот труд и красота - всего лишь дискретный переключатель? т.е. на каком-то канале меняется значение с заданным шагом?
именно всего лишь переключатель;), и да, на одном канале меняется шим, значения каждого из шести режимов выставлены по центрам диапазонов Mission Planner
понемногу разбираюсь с lua скриптами, возник вопрос:
в микс скриптах dsbeach.gitbooks.io/…/mix.html выходные переменные (output) отображаются с одним знаком после запятой, а в экранах телеметрии - вообще без знака
т.е. если получить значение (например 15.73) и его же возвратить назад - результат будет 15.7 а на экране телеметрии вообще 15
а вот если писать скрипты телеметрии dsbeach.gitbooks.io/…/telemetry.html и выводить данные на свой экран телеметрии - данные выводятся в том же формате в котором был оригинал, т.е. 15.73 выводится как 15.73
кстати, немного допилил стандартную Змейку, теперь она управляется правым стиком, а стиком газа регулируется ее скорость (mode2)
--------------------------------------------------------------
-- Classic snake game
--
-- 2009 Led Lab @PUC-Rio
-- Dado Sutter
-- Ives Negreiros
-- To Benjamin
-- modified by korvin8
-- chenge direction control: ail, ele
-- add speed control: thr
---------------------------------------------------------------
local speed = 0;
local xMax = math.floor( 212 / 6 ) - 1
local yMax = math.floor( 64 / 8 ) - 1
local game_map = {}
local Head = {}
local Tail = {}
local highscore = 0
local size = 3
Tail.x = 1
Tail.y = 1
Head.x = Tail.x + ( size - 1 )
Head.y = Tail.y
local Food = {}
Food.x = false
Food.y = false
Head.dx = 1
Head.dy = 0
Tail.dx = Head.dx
Tail.dy = Head.dy
local direction = "right"
local score = 0
local function create_food()
Food.x, Food.y = math.random( xMax - 1), math.random( yMax - 1)
while game_map[ Food.x ][ Food.y ] do
Food.x, Food.y = math.random( xMax - 1 ), math.random( yMax - 1 )
end
game_map[ Food.x ][ Food.y ] = "food"
lcd.drawText( Food.x * 6, Food.y * 8+2, "@", 0 )
end
local function eat_food()
playFile("/SCRIPTS/snake.wav")
lcd.drawText( Head.x * 6, Head.y * 8, " ", 0 )
game_map[ Head.x ][ Head.y ] = nil
create_food()
score = score + 1
end
local function check_collision()
if Head.x < 0 or Head.x > xMax then
return true
elseif Head.y < 0 or Head.y > yMax then
return true
elseif ( ( game_map[ Head.x ][ Head.y ] ) and ( game_map[ Head.x ][ Head.y ] ~= "food" ) ) then
return true
end
return false
end
local function move()
if game_map[ Tail.x ][ Tail.y ] == "right" then
Tail.dx = 1
Tail.dy = 0
elseif game_map[ Tail.x ][ Tail.y ] == "left" then
Tail.dx = -1
Tail.dy = 0
elseif game_map[ Tail.x ][ Tail.y ] == "up" then
Tail.dx = 0
Tail.dy = -1
elseif game_map[ Tail.x ][ Tail.y ] == "down" then
Tail.dx = 0
Tail.dy = 1
end
game_map[ Head.x ][ Head.y ] = direction
Head.x = Head.x + Head.dx
Head.y = Head.y + Head.dy
if Head.x < 0 or Head.x > xMax or Head.y < 0 or Head.y > yMax then
return
elseif game_map[ Head.x ][ Head.y ] == "food" then
eat_food()
else
lcd.drawText(Tail.x * 6, Tail.y * 8, " ", 16)
game_map[ Tail.x ][ Tail.y ] = nil
Tail.x = Tail.x + Tail.dx
Tail.y = Tail.y + Tail.dy
end
lcd.drawText(Head.x * 6, Head.y * 8, "*", 0)
end
local function init()
food = false
lcd.lock()
lcd.clear()
size = 3
score = 0
Tail.x = 1
Tail.y = 1
Head.x = Tail.x + ( size - 1 )
Head.y = Tail.y
Head.dx = 1
Head.dy = 0
Tail.dx = Head.dx
Tail.dy = Head.dy
direction = "right"
for i = 0, xMax, 1 do
game_map[ i ] = {}
end
for i = 0, size - 1, 1 do
game_map[ Tail.x + ( i * Tail.dx ) ][ Tail.y + ( i * Tail.dy ) ] = direction
lcd.drawText( ( Tail.x + ( i * Tail.dx ) ) * 6, ( Tail.y + ( i * Tail.dy ) ) * 8, "*", 0 )
end
create_food()
end
local snakeCounter = 0
local function run(event)
if event == nil then
raise("Cannot be run as a model script!")
end
if event == EVT_EXIT_BREAK then
return 2
end
lcd.lock()
snakeCounter = snakeCounter + 1
if snakeCounter < speed then
local dir = direction
if getValue('ail') > 20 and direction ~= "left" then
dir = "right"
Head.dx = 1
Head.dy = 0
end
if getValue('ail') < -20 and direction ~= "right" then
dir = "left"
Head.dx = -1
Head.dy = 0
end
if getValue('ele') > 20 and direction ~= "down" then
dir = "up"
Head.dx = 0
Head.dy = -1
end
if getValue('ele') < -20 and direction ~= "up" then
dir = "down"
Head.dx = 0
Head.dy = 1
end
direction = dir
return 0
end
snakeCounter = 0
speed = 30 - (getValue('thr') + 1024)/79
move()
if check_collision() then
return 1
end
return 0
end
return { init=init, run=run }
еще вопрос
при использовании playNumber() в спецификации сказано:
dsbeach.gitbooks.io/…/playNumber.html
0 or not present plays integral part of the number (for a number 123 it plays 123)
PREC1 plays a number with one decimal place (for a number 123 it plays 12.3)
PREC2 plays a number with two decimal places (for a number 123 it plays 1.23)
сделал пример для теста:
...
local batteryVoltage = 14.95
...
local batt100 = batteryVoltage * 100
playNumber(batt100, 1)
playNumber(batt100, 1, PREC1)
playNumber(batt100, 1, PREC2)
ожидаю:
тысяча четыреста девяносто пять
сто сорок девять точка пять
четырнадцать точка девяносто пять
получаю:
тысяча четыреста девяносто пять
сто сорок девять точка пять
четырнадцать точка девять
в чем может быть подвох? PREC2 должен последние 2 разряда целой части числа произнести как сотые части, а он хоть и берет два разряда но округляет их до десятой
У меня точка взлета практически всегда одна и та же с заданными координатами. На дроне стоит GPS-сенсор FrSky. Можно ли в аппе считать расстояние от точки взлета до дрона? Может кто-то уже решал такую задачу?
с документацией по LUA как то все странно
единственный полный и актуальный документ, который я смог найти это dsbeach.gitbooks.io/…/content/
но и он не соответствует действительности
например, функция lcd.drawText(x, y, text [, flags]), в описании параметров сказано: x,y (positive numbers) starting coordinate dsbeach.gitbooks.io/…/drawText.html т.е. это координаты на экране с которых начинается вывод текста
а вот функция которая выводи числа lcd.drawNumber(x, y, value [, flags]) у которой тоже в описании сказано: x,y (positive numbers) starting coordinate dsbeach.gitbooks.io/…/drawNumber.html, но это уже не координаты начала текста, а координаты конца текста (что, согласитесь, странно)
т.е. фактически все приходится проверять методом тыка 😦 (еще пример не соответствия несколькими постами выше с функцией проговаривания текста)
и что самое главное - не понятно, это баги прошивки и не верная работа движка скриптов или не точная документация
Всем привет пришел мне таранис . хочу на него русский голос поставить подскажете как ?
Звуковые сообщения на различных языках
rcsearch.ru/wiki/FrSky_TARANIS
Пытаюсь совместить контроллер naze 32 SP racer F3 и x4rsb. Ситуация такова все подключил, но приемник еще не биндил с передатчиком. В клинфлае все пашет на передатчике красный диод мигает. Пытаюсь за биндить x4r sb с передатчиком пропадает питание на коптере все гаснет, тухнут диоды на контроллере , и тухнет диод на приемнике . Отключаю акум , выключаю пульт . Включаю акум , все диоды светятся , включаю пульт все гаснет. Куда копать что смотреть.
Пытаюсь совместить контроллер naze 32 SP racer F3 и x4rsb. Ситуация такова все подключил, но приемник еще не биндил с передатчиком. В клинфлае все пашет на передатчике красный диод мигает. Пытаюсь за биндить x4r sb с передатчиком пропадает питание на коптере все гаснет, тухнут диоды на контроллере , и тухнет диод на приемнике . Отключаю акум , выключаю пульт . Включаю акум , все диоды светятся , включаю пульт все гаснет. Куда копать что смотреть.
Упростите свою схему. Подайте с регулятора с беком, если есть, либо с контроллера питание и только. Привяжите приемник к аппе. Проверьте что все работает используя серву в один из первых четырех каналов, ну или если с отдельным регом, то его в, как правило, 3 канал и к нему двигатель. Ну а потом по своей схеме, там уж в cleanflight все еще раз проверите.
Упростил от бека тоже как пульт включаю диод на приемнике гаснет и все
Упростил от бека тоже как пульт включаю диод на приемнике гаснет и все
Мн-да, ну если все по инструкции делаете, то получается проблема в приёмнике (. Хотя такого в любом случае быть не должно. Насколько понимаю, в первом случае, у вас контроллер питание берет с приёмника и при включении передатчика на приёмнике что-то происходит и питание отрубается?
Контролер берет питание с бека и питает передатчик.