FCL (Flight Contol Language) - пользовательский язык для управления автопилотом
скриптовое решение задачи занимает слишком много ресурсов, разработчик автопилота обязан будет предусмотреть контроль за временем исполнения скрипта, выделением памяти и прочими гадостями, в итоге изобретет свою собственную RTOS для поддержки вашего собственного интерпретатора
Не думаю, что понадобится слишком много ресурсов и проверок. Здесь нет сложных механизмов выделения памяти и т.п. Тред скрипта крутится параллельно с остальными процессами АП и четко квантуем - взять под себя больше ресурсов, чем нужно у него не выйдет. А вот прервать можно в любой момент по команде РУ или иным условиям самомго АП.
то вместо изобретения попробовать реализовать уже готовое. скриптово-событийных систем для самопальных роботов уже столько, что глаза разбегаются.
У меня ощущение, что если я начну щас искать готовое а потом портировать это в AVR СИ, времени уйдет больше, чем просто написать интерпретатор с нуля. 😃
а когда вы напишете интерпретатор для AVR, сколько времени займет его портирование под ARM, к примеру?
предлагаю авантюру. есть такой симулятор AeroSIMRC, умеет выдавать практически все полетные данные и принимать команды на управление (или даже напрямую менять положение модели). для этого сима я делал HITL-плагин для CopterControl-а (по-русски), плата полностью переключалась на данные от симулятора и рулила виртуальными сервами/моторами.
авантрюра вот в чем, я переношу всю логику CopterControl-а в сам плагин (исключаем железо), он получает данные от сима и стабилизирует модель (на худой конец можно просто использовать стабилизаторы в самом симуляторе). а вы реализуете поддержку скриптов и требуете необходимые структуры/переменные/данные. для “посмотреть что получится” по-моему вполне достаточно.
используется там чистый C (даже не плюсы), в принципе, можете использовать прилагаемый пример демо-плагина и прикрутить к нему все остальное сами.
а когда вы напишете интерпретатор для AVR, сколько времени займет его портирование под ARM, к примеру?
Сам интерпертатор будет на Си - и не вылезет за рамки обычных конструкций, то есть будет портироваться на любое стандартное подмножество. Другое дело привязка к конкретному АП. Здесь могут быть трудности. Поживем - увидим. 😃
предлагаю авантюру.
Интересное предложение. Давайте так, у меня по плану все равно сначла написание интрепретатора на СИ для ПК, плюс создание некой отладочной среды, а затем уже перенос на AVR Си и привязка к коду АП (совместно с Тимофеем). Возможно на этапе реализации отладочной среды предлагаемый симулятор будет весьма кстати…
AVR Си
Александр, там вы под ОСД хотите интерпретатор написать? Ибо автопилот Тима всё же на ARMе, а не на AVR. Под какой компилятор планируете?
Ибо автопилот Тима всё же на ARMе, а не на AVR.
Откуда инфа?
АП от Smalltim лежит передо мной. Там стоит AT90USB1287, и это 8-ми разрядный микроконтроллер.
На ARM от ST (STM32) сделано новое IMU (только IMU), подключаемое к этому АП.
Под какой компилятор планируете?
Atmel AVR Studio 5.0.
Там стоит AT90USB1287, и это 8-ми разрядный микроконтроллер.
Тьфу ты, чёрт, попутал. У меня их AT91SAM7S128 AU, а это ARM7 вот я с дуру и думал, что АТ90 просто младшая версия. Прошу прощения.
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"434ad7083df955007778ed0d":{"_id":"434ad7083df955007778ed0d","hid":9563,"name":"ukkr","nick":"ukkr","avatar_id":null,"css":""},"4826ee483df955007777b0e0":{"_id":"4826ee483df955007777b0e0","hid":34364,"name":"HikeR","nick":"HikeR","avatar_id":null,"css":""},"48f982623df955007777670c":{"_id":"48f982623df955007777670c","hid":39565,"name":"baychi","nick":"baychi","avatar_id":null,"css":""}},"settings":{"can_see_ip":false,"can_report_abuse":false,"can_see_hellbanned":false,"forum_can_view":true,"forum_can_reply":false,"forum_edit_max_time":30,"forum_can_close_topic":false,"forum_show_ignored":false,"forum_mod_can_delete_topics":false,"forum_mod_can_hard_delete_topics":false,"forum_mod_can_see_hard_deleted_topics":false,"forum_mod_can_edit_posts":false,"forum_mod_can_pin_topic":false,"forum_mod_can_edit_titles":false,"forum_mod_can_close_topic":false,"can_vote":false,"forum_mod_can_add_infractions":false,"forum_topic_title_min_length":10,"forum_reply_old_post_threshold":30,"votes_add_max_time":168,"forum_show_post_interval":7,"can_see_deleted_users":false},"section":{"_id":"61c9a54c3df9550077bb5186","hid":90,"title":"Полёты по камере, телеметрия","parent":"61c9a54c3df9550077bb50fc","description":"Бортовые видеокамеры, передатчики видео, видеоочки, обсуждение полётов по камере.","is_category":false,"is_votable":true,"is_writable":true,"cache":{"topic_count":3154,"post_count":433349,"last_post":"67c49a8a6bffb2a544859fe2","last_topic":"543597903df95500770055b6","last_topic_hid":381157,"last_topic_title":"Mini Talon - носитель Fpv","last_ts":"2025-03-02T17:51:06.283Z","last_user":"5469d13d3df9550077723996"}},"topic":{"_id":"4f7c0c053df95500773aa49f","hid":273212,"title":"FCL (Flight Contol Language) - пользовательский язык для управления автопилотом","views_count":2234,"last_post_counter":23,"cache":{"post_count":23,"first_post":"4f7c0c053df95500773aa8ca","first_ts":"2012-04-04T08:53:25.000Z","first_user":"48f982623df955007777670c","last_post":"4f7cb5c83df95500773aa8f6","last_post_hid":23,"last_ts":"2012-04-04T20:57:44.000Z","last_user":"434ad7083df955007778ed0d"},"st":1,"section":"61c9a54c3df9550077bb5186"},"subscription":null,"pagination":{"total":23,"per_page":25,"chunk_offset":17},"posts_list_before_post":["paginator","datediff"]},"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"}
We use cookies and web analytics services. By continuing to use our
website, you consent to the use of cookies or similar technologies on
this website, including third-party statistics and web analytics services,
which may in some cases collect and process information about your visit
and activity. To find out more, see rules of this website.