Для удобства пользования форумом и поиска информации прошу придерживаться правила: 1 тема = 1 вопрос.
К примеру, если обсуждается настройка передатчика, а у вас вопрос про подключение такого же передатчика к симулятору или вопрос про другую модель передатчика - создавайте новую тему. Если вы новичок в авиамоделизме, рекомендуется прочитать статью Новичку и ссылки с нее.
Исключение только в разделе Вопросы и обсуждения по статьям
Как выложить фото, Как опубликовать видео
С уважением,
Константин.
Fail Safe своими руками
Re: Fail Safe своими руками
alldn,
Здравствуйте, если не секрет на чем пишете?
- PSergey
- Пилот
- 225 Сообщений
-
- alldn
- Александр (г.Тамбов)
- 2863 Сообщений
-
Re: Fail Safe своими руками
alldn,
Уважаю, сам писал на ассме, только недавно начал вникать в GCC,
может просто взять за основу код ардупилота?
- PSergey
- Пилот
- 225 Сообщений
-
Re: Fail Safe своими руками
PSergey,
Не знаю, я загадывать не хочу. Несколько раз начинал писать на С, но после нескольких дней мучений обычно плевал на все и переписывал на ассемблере. Я им занимаюсь уже около 30 лет, он мне ближе. Да и с ним микросхему кишками чувствуешь, а С - я не понимаю, что там контроллер делает в каждый конкретный момент времени.
Начну на ассемблере. Как реализовать FS мне довольно понятно, а что будет получаться с автопилотом - посмотрим. Никто меня не гонит, в любом случае я это делаю для собственного удовольствия.
- alldn
- Александр (г.Тамбов)
- 2863 Сообщений
-
Re: Fail Safe своими руками
alldn,
Блин, ну точно мой случай!, но GCC подкупает тем что допустим математику на нем проще организовать, для GPS придется работать с тригонометрией
ну а на асме конечно приятнее работать с портами, прерываниями легче учитывать время выполнения и т.д.
- PSergey
- Пилот
- 225 Сообщений
-
Re: Fail Safe своими руками
Терпения Вам и вдохновения )
- PSergey
- Пилот
- 225 Сообщений
-
Re: Fail Safe своими руками
Спасибо за пожелания. Да, тригонометрия конечно усложняет задачу. Но и это можно решить. Во-первых можно попробовать упростить задачу, ведь нам нужен конкретный случай обработки, ну в крайнем случае напишем свое. Когда я был молодой стьюдент, дипломная работа у меня была именно библиотека прикладных программ на ассемблере, в которую входили различные функции, в том числе и тригонометрия, экспоненты, логарифмы и прочее... И все это умещалось в 2 килобайта и работало на процессоре 8080, да еще и с плавающей точкой. Да если покопаться наверное можно и кучу готовых решений найти.
Бум работать.
- alldn
- Александр (г.Тамбов)
- 2863 Сообщений
-
Re: Fail Safe своими руками
alldn,
Как вариант можно посмотреть код OSD от Smalltima в части направления домой, на мой взгляд сам код написан аккуратно
- PSergey
- Пилот
- 225 Сообщений
-
Re: Fail Safe своими руками
PSergey,
У меня есть немного материала по этим темам, но я еще не начинал работать и вникать в проблему. Собственно я не отклоняю и вариант написать все это на Ардуино. Там все просто и дешево. Библиотеки для работы с серваи и GPS есть готовые. Уже готовые функции рассчитать курс есть. Там и думать-то не нужно.
В Ардуино мне пока не понятно как реализовать нужное мне прерывание, как-то это там описано невнятно и упрощенно.
- alldn
- Александр (г.Тамбов)
- 2863 Сообщений
-
Re: Fail Safe своими руками
alldn,
В маленьком ардупилоте вход и выход PPM организован на отдельном мк tiny45 если не ошибаюсь, на мой взгляд очень оправдано, т.к. основной проц не должен дергаться на обработку прерываний от каждого канала, а заниматься исключительно вычислениями. Вот только линий там всего 4 или 5, т.е. необходимо расширить поставить вместо Т45 допустим ту же Т2313 или 26-ю а лучше что-нибудь с аппаратным TWI. Да и код для PPM контроллера аккуратно написать на асме. Кстати режим фейлсейф на ардупилоте тоже зашит в тиньку.
- PSergey
- Пилот
- 225 Сообщений
-
Re: Fail Safe своими руками
PSergey,
Сергей, я и не собираюсь заниматься вычислением длительности каждого канала. Это мне совершенно не интересно.
Алгоритм такой:
5 входов с каналов задействуются в прерывание по изменению состояния любого порта.
Как только что-то изменилось на любом из этих выводов, я по прерыванию копирую эти 5 входов в соответствующие 5 выходов.
Т.е. выходы всегда повторяют состояние входов, получается прозрачное управление с приемника сервами.
Еще есть ячеечка памяти, которая всегда в этом прерывании обнуляется.
Это что касается прерывания. Далее:
В основном цикле программа крутится и постоянно пытается инкрементировать эту ячейку памяти, и проверить, не равна ли она FF. Но достичь этого не получается, потому что прерывание постоянно сбрасывает ее в 0.
Если вдруг пропадает управление от приемника - обрыв связи, то через некоторое время основной цикл досчитает-таки до FF и по этому поймет, что связи нет, и перейдет в процедуру неспешной выдачи в каждый канал нужного импульса. Для установки рулей в нужные положения (и остановки мотора).
Ну и далее можно будет неспешно обсчитат координаты и делать выводы куда лететь.
Так что рваться и каждый импульс замерять длину, да потом формировать на выходе точно такой же нет никакой надобности.
Да, как только связь восстановится, опять начнут наботать прерывания, опять будет повторяться состояние входов на выходы (восстановится управление) и по ячейке=0 программа перейдет в режим ожидания.
- alldn
- Александр (г.Тамбов)
- 2863 Сообщений
-
Re: Fail Safe своими руками
- nikolaypet
- Николай (Красногорск М.О.)
- Пилот
- 2719 Сообщений
-
Информация
- Статистика форума:
- Всего тем:
- 9948
- Всего опросов:
- 79
- Всего сообщений:
- 183174
- Всего сообщений сегодня:
- 1
- Пользователи форума:
- Всего пользователей:
- 10173
- Последним зарегистрировался:
- urus_vp
- Пользователи онлайн:
- 1
- Гостей онлайн:
- 1455
- Самые активные пользователи:
- konst, carpenter, kompmen, cnyx, Dragony, maks_dg, Goby, Student, alldn, nikolaypet
- Онлайн:
- GAZ