Устройство вроде простое и маленькое, но написание программы это цела песня. Точнее “взрыв мозга” на пару - тройку дней. Сейчас уверенно можно сказать - задача выполнена.
И что же мы имеем?
Проанализировав отзывы о других девайсах пришлось очень тщательно подойти к вопросам формирования сигналов управления. Вопросы совместимости с разными приемниками, установка нулевых точек, сбои в канале связи и т.п. должны быть полностью решены на программном уровне.
Входной сигнал от приемника проходит целую цепочку проверок на достоверность. Полярность сигнала от приемника определяется автоматически и на работу не влияет. Каждый поступивший импульс проверяется на длительность стандартного РРМ сигнала (от 600 до 2400 мкс). Не соответствующие импульсы отбрасываются.
Дополнительно входной сигнал проходит через цифровой фильтр. Это снижает влияние возможных помех и перебоев связи.
Выходной PWM формирую программно аппаратным методом. Как уже было замечено, при любом зависании выходного сигнала автоматически не будет.
Еще один критический блок софта - начальная инициализация. Система перейдет в режим готовности только при получении сотни одинаковых импульсов с длительностью нулевой скорости на регуляторе. Это значение запоминается и в дальнейшем именно оно будет использоваться для блокировки работы. Т.о. гарантированна остановка двигателя на любых возможных нестандартных настройках передатчиков.
Про высотомер уже писал. Время установки значения 25 мс, точность < 0.5 метра. За это время производится многократное измерение давления и температуры, цифровая фильтрация полученных результатов и пересчет давления в высоту по стандартной барометрической формуле с коррекцией по температуре.
В остальном функционал стандартен для устройств подобного типа:
Инициализация, определение нулевой высоты.
Разрешение взлета. Тут я не знаю как у других, а у меня мощность мотора можно регулировать стиком газа.
отсечка по высоте 200 м или по времени работы мотора 30 сек. Можно просто выключить мотор и отсечка сработает с этого момента.
фиксация максимальной высоты с момента старта до момента отсечки.
фиксация времени от момента старта до текущего момента.
фиксация времени работы мотора.
фиксация времени сколько модель находилась на высоте более 3 м. Это доп. фишка. Чисто себе сделал. Для примерных прикидок когда один в поле и без секундомера.
Еще фишка. Если моторное время менее 3-х сек, полет не засчитывается. Можно будет запустить мотор снова и все задержки будут считаться с нуля. Сделано для возможности “попробовать” работоспособность ВМГ перед стартом.
Повторное включение мотора запрещено. Но в программе есть константа времени запрета. Можно разрешить управлять двигателем например через ХХХ секунд с момента его блокировки. Этот параметр буду обсуждать с руководителями детских команд.
… Может еще что придумаю или другие посоветуют. Возможности модернизации ограниченны только желанием их выполнять ))):
И еще. Все режимы обозначаются миганием светодиода. По морганию можно определить в каком режиме находится лимитер и по какому событию была включена блокировка двигателя.
Comments
Согласно правил:
Запрещено задавать в качестве условия выключения двигателя набранную высоту модели. Т.е. 200м - это против правил.
Максимальная высота фиксируется с момента включения двигателя до момента выключения двигателя + 10 сек. Т.е. максимальная высота измеряется в течении 40 сек (макс) с момента включения двигателя!
фиксация времени сколько модель находилась на высоте более 3 м. Это доп. фишка. Чисто себе сделал. Для примерных прикидок когда один в поле и без секундомера.
Вообще бесполезная вещь.
Еще фишка. Если моторное время менее 3-х сек, полет не засчитывается. Можно будет запустить мотор снова и все задержки будут считаться с нуля. Сделано для возможности “попробовать” работоспособность ВМГ перед стартом.
Повторное включение мотора запрещено. Но в программе есть константа времени запрета. Можно разрешить управлять двигателем например через ХХХ секунд с момента его блокировки. Этот параметр буду обсуждать с руководителями детских команд.
Привыкните, потом поставите нормальный лимитер и реветь будете.
Не надо придумывать ничего, надо строго соблюдать правила.
По п 2. Так у меня и сделано.
По п. 1. Мое упущение. Видимо я неправильно думал. Получается не лимитер, а таймер мотора с фиксацией высоты. Придется эту штуку отключить. В любом случае спасибо за подсказку.
Все остальное на основной функционал не влияет, хочешь смотришь, хочешь нет. Просто цифры лишние. Могу давление атмосферное показать и/или температуру. По любому они измеряются. Вдруг кому интересно будет.
фиксация максимальной высоты с момента старта до момента отсечки.
Не нашел ни слова про "+10 сек к времени "
Официальные правила. Приложение А пункт в). Так что пока все верно.
В любом случае спасибо за критику 😃.
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"4439f4673df955007778bc22":{"_id":"4439f4673df955007778bc22","hid":13325,"name":"dENISCA","nick":"dENISCA","avatar_id":null,"css":""},"4d64dfaf3df9550077755a9e":{"_id":"4d64dfaf3df9550077755a9e","hid":81730,"name":"msl_272","nick":"msl_272","avatar_id":null,"css":""}},"settings":{"blogs_can_create":false,"blogs_mod_can_delete":false,"blogs_mod_can_hard_delete":false,"blogs_mod_can_add_infractions":false,"can_report_abuse":false,"can_vote":false,"can_see_ip":false,"blogs_edit_comments_max_time":30,"blogs_show_ignored":false,"blogs_reply_old_comment_threshold":30,"votes_add_max_time":168},"entry":{"_id":"591d46b19970730077116b97","hid":22798,"title":"Проект бюджетного лимитера для планеров F5B/7. Функционал.","html":"<p>Устройство вроде простое и маленькое, но написание программы это цела песня. Точнее “взрыв мозга” на пару - тройку дней. Сейчас уверенно можно сказать - задача выполнена.<br>\nИ что же мы имеем?<br>\nПроанализировав отзывы о других девайсах пришлось очень тщательно подойти к вопросам формирования сигналов управления. Вопросы совместимости с разными приемниками, установка нулевых точек, сбои в канале связи и т.п. должны быть полностью решены на программном уровне.<br>\nВходной сигнал от приемника проходит целую цепочку проверок на достоверность. Полярность сигнала от приемника определяется автоматически и на работу не влияет. Каждый поступивший импульс проверяется на длительность стандартного РРМ сигнала (от 600 до 2400 мкс). Не соответствующие импульсы отбрасываются.<br>\nДополнительно входной сигнал проходит через цифровой фильтр. Это снижает влияние возможных помех и перебоев связи.</p>\n<p>Выходной PWM формирую программно аппаратным методом. Как уже было замечено, при любом зависании выходного сигнала автоматически не будет.</p>\n<!--cut-->\n<p>Еще один критический блок софта - начальная инициализация. Система перейдет в режим готовности только при получении сотни одинаковых импульсов с длительностью нулевой скорости на регуляторе. Это значение запоминается и в дальнейшем именно оно будет использоваться для блокировки работы. Т.о. гарантированна остановка двигателя на любых возможных нестандартных настройках передатчиков.</p>\n<p>Про высотомер уже писал. Время установки значения 25 мс, точность < 0.5 метра. За это время производится многократное измерение давления и температуры, цифровая фильтрация полученных результатов и пересчет давления в высоту по стандартной барометрической формуле с коррекцией по температуре.</p>\n<p>В остальном функционал стандартен для устройств подобного типа:</p>\n<ul>\n<li>Инициализация, определение нулевой высоты.</li>\n<li>Разрешение взлета. Тут я не знаю как у других, а у меня мощность мотора можно регулировать стиком газа.</li>\n<li>отсечка по высоте 200 м или по времени работы мотора 30 сек. Можно просто выключить мотор и отсечка сработает с этого момента.</li>\n<li>фиксация максимальной высоты с момента старта до момента отсечки.</li>\n<li>фиксация времени от момента старта до текущего момента.</li>\n<li>фиксация времени работы мотора.</li>\n<li>фиксация времени сколько модель находилась на высоте более 3 м. Это доп. фишка. Чисто себе сделал. Для примерных прикидок когда один в поле и без секундомера.</li>\n<li>Еще фишка. Если моторное время менее 3-х сек, полет не засчитывается. Можно будет запустить мотор снова и все задержки будут считаться с нуля. Сделано для возможности “попробовать” работоспособность ВМГ перед стартом.</li>\n<li>Повторное включение мотора запрещено. Но в программе есть константа времени запрета. Можно разрешить управлять двигателем например через ХХХ секунд с момента его блокировки. Этот параметр буду обсуждать с руководителями детских команд.</li>\n<li>… Может еще что придумаю или другие посоветуют. Возможности модернизации ограниченны только желанием их выполнять ))):</li>\n</ul>\n<p>И еще. Все режимы обозначаются миганием светодиода. По морганию можно определить в каком режиме находится лимитер и по какому событию была включена блокировка двигателя.</p>\n","user":"4d64dfaf3df9550077755a9e","ts":"2017-05-18T07:01:05.000Z","st":1,"cache":{"comment_count":4,"last_comment":"591ef692997073007711fac0","last_comment_hid":4,"last_ts":"2017-05-19T13:43:46.000Z","last_user":"4d64dfaf3df9550077755a9e"},"views":1154,"bookmarks":0,"votes":0},"subscription":null},"locale":"en-US","user_id":"000000000000000000000000","user_hid":0,"user_name":"","user_nick":"","user_avatar":null,"is_member":false,"settings":{"can_access_acp":false,"can_use_dialogs":false,"hide_heavy_content":false},"unread_dialogs":false,"footer":{"rules":{"to":"common.rules"},"contacts":{"to":"rco-nodeca.contacts"}},"navbar":{"tracker":{"to":"users.tracker","autoselect":false,"priority":10},"forum":{"to":"forum.index"},"blogs":{"to":"blogs.index"},"clubs":{"to":"clubs.index"},"market":{"to":"market.index.buy"}},"recaptcha":{"public_key":"6LcyTs0dAAAAADW_1wxPfl0IHuXxBG7vMSSX26Z4"},"layout":"common.layout"}