Автопилот Arduplane - открытое ПО

Artie
Панкратов_Сергей:

Есть ли смысл в Ардуино - или лучше сразу Си и не терять времени, про ассемблер не спрашиваю?

Дык, оно на сях и сделано (вернее, даже на плюсах, что для данного конкретного применения - скорее минус, чем плюс (“Калабур-с, господа !” 😃)

На самом деле, насколько я успел понять, ардуино - это “комплект” из следующих трех вещей:

  1. Готовая платка с однокристаллкой, в которую зашит загрузчик. - Позволяет ничего не паять (точнее, паять только то, что ты вешаешь снаружи), и не заботиться о программаторе.
  2. Оболочки для avr-gcc (написанной на жабе, поэтому тупой и тормозной). - Позволяет в один клик скомпилить программу и залить ее в однокристаллку.
  3. Библиотек, “абстрагирующих” пишущего от всего железа и дающих некий набор более высокоуровневых функций, вроде обмена по I2C, работы с индикаторами, шаговыми двигателями, сервомашинками, и даже с ethernet’ом.

Непосредственно программы пишутся на сях/плюсах, да и ассемблерные вставки тоже не заказаны, благо все это - не “фича” самого адруино, а возможности совершенно штатного gcc.

Насколько Ардуино ограничит возможности?

Как составная часть некоего законченного продукта (например, то же автопилота) - с моей точки зрения, оно никуда не годится (сразу по многим причинам), но вот именно для обучения эмбеддерству (не профессиональному, а так, “для дома, для семьи”) - я считаю, что это платформа практически идеальная.
… Поскольку для начала, эффективность кода - вещь, в общем, не самая важная, а вот возможность практически с первого же дня начать крутить какой-нибудь сервой или ШД, измерить какое-нибудь напряжение и выбросить его значение в красивом текстовом виде в терминалку (встроенную в оболочку), не вдаваясь в изучение периферии однокристаллки, ее ассемблера, процедуры ее программирования, и так далее, - для начинающего штука достаточно ценная…

Самое же правильное в ардуино именно то, что при всей простоте освоения, оно позволяет учиться писать сразу на нормальном языке, а не на разнообразных ублюдках, вроде пикбэйсика, а в дальнейшем - по мере обучения - ничто не мешает отказаться от оболочки и от “плохих” функций работы с железом, благо в основе у него - полноценный кросскомпайлер и открытые сорсы тех же библиотек.
(Например, мне не понравилось то, что в сериальной библиотеке нельзя проконтролировать переполнение приемного буфера или проверить ошибки приема. - Можно было, разумеется, и написать все эти функции с нуля, и портировать их из какого-нибудь старого проекта, но это заняло бы, как минимум, полдня. А так - три минуты на поиск сорсов, еще три на правку, - и у класса HardwareSerial появился новый метод - status…)

Панкратов_Сергей

Спасибо,понятно.
Меня смущало наличие

некий набор более высокоуровневых функций

Больше плюсов в этом или минусов?
Что более быстро можно обучиться - это ясно.
А вот не послужит ли это тормозом в дальнейшем в написании более эффективных кодов, без использовании этих высокоуровневых функций?
Теперь сомнения сняты.😃

Artie
Панкратов_Сергей:

Что более быстро можно обучиться - это ясно.
А вот не послужит ли это тормозом в дальнейшем в написании более эффективных кодов, без использовании этих высокоуровневых функций?

Нет, конечно.
Библиотеки - это такие штуки, которыми можно не пользоваться, если не хочешь. 😁
А когда они еще и открытые, то переход (в любую сторону) становится вообще настолько плавным, насколько пожелаешь.

smalltim

Не понимаю, для чего столько траха с памятью, попытками вычистить чужой корявый код и прочим на ардуино, когда можно взять набор
ATUSBKEY с AT90USB1287 на борту - 128к памяти, 8к оперативки, 2к EEPROM, 16 МБ внешней памяти, нативный USB интерфейс, USB бутлоадер, и ничего паять не надо. Все Атмеговские прелести в виде 8 каналов АЦП, SPI, USART и прочая и прочая - в наличии. AVR GCC и стопицот сторонних библиотек, если надо - в наличии.

Artie
smalltim:

Не понимаю, для чего столько траха с памятью, попытками вычистить чужой корявый код и прочим на ардуино, когда можно взять набор ATUSBKEY с AT90USB1287 на борту - 128к памяти, 8к оперативки, 2к EEPROM, 16 МБ внешней памяти, нативный USB интерфейс, USB бутлоадер, и ничего паять не надо. Все Атмеговские прелести в виде 8 каналов АЦП, SPI, USART и прочая и прочая - в наличии. AVR GCC и стопицот сторонних библиотек, если надо - в наличии.

Если разговор о собственно железяке, то вот лично мне USB нафиг не нужен, а ничем более принципиальным оно не отличается. И “гигазы” памяти мне тоже не нужны.
С точки же зрения софта, это - готовый open-source проект (пусть и кривой, но все-таки работающий), с которого многим значительно проще начинать делать что-то свое.

Лично я купил эту платку только потому, что это значительно дешевле и быстрее, нежели заказывать изготовление такой же своей собственной, и чуть аккуратнее, чем на макетке МГТФом. А про то, что такое ардуино, я узнал уже после того, как приехала плата 😛 (бо мне это было достаточно пофигу).
Кому нужно - могут почистить что хотят, кому не нужно - могут пользоваться тем, что есть. А “трах с памятью” возникает только у тех, кто хочет в старую плату с “мелкой” однокристаллкой залить новую версию кода…

PS: У благородного дона переполнена личка.

smalltim

Личку ща почищу.

Ну я как бы совсем не против ардуино, просто всяк кулик свое болото хвалит, и я, как взял по совету Dikoy ATUSBKEY, так и остаюсь ему сильно благодарен, а приобретением жутко доволен. Всё это, разумеется только с точки зрения железа. По софту ничего сказать не могу.

Artie

Ну, они просто под разные задачи. Ардуино (именно в виде этих самых “трех источников, трех составных частей”) - это хорошая учебная платформа, удобная для тех, что начинает с нуля. И его “комплектные” библиотеки - просто для ускорения старта.
… А персонально я брал ардупайлот главным образом как “плату с двумя микрухами за $24”, - для экономии времени (и мысли 😃).

USBKEY же - это уже нормальный девкит, “для тех, кто понимает”. И начинать на нем учиться писать стоит только в том случае, если нужен именно USB.

Панкратов_Сергей
Artie:

… А персонально я брал ардупайлот главным образом как “плату с двумя микрухами за $24”, - для экономии времени (и мысли 😃).
.

Там же есть платы,на основе которых быстро и задешево можно собрать ту-же
телеметрию от благородного дона 😁
Только бутербродиком на нее посадить платку с датчиками и и селектором синхроимпульсов.
www.sparkfun.com/commerce/product_info.php?product…

Artie

А вот в этом смысла уже никакого, поскольку для телеметрии - всей остальной развеснухи в разы больше, чем ног у однокристаллки. Так что, с ней паять “бутербродик”, или без нее - разницы почти нет…

Панкратов_Сергей

Под датчики плату на коленке много проще сделать.
Была б готовая плата от smalltim-а , то вопроса и не возникало.
А так и не дорого и для конструкторских маневров поле.
Некоторые датчики вообще имеет смысл на отдельных вынесенных платах делать.

Artie
Панкратов_Сергей:

Под датчики плату на коленке много проще сделать.

И в чем, собственно, отличие датчиков от однокристаллки ?
Кроме того, помимо датчиков и процессоров, - не помню уж чего там добавил или убрал Тим, но у меня стоит еще с полсотни разной “развесной” мелочевки… - Почему-то считается, что их паять (или - пуще того - разводить) легче, чем одну “сороконожку”. 😆
А на закуску - прикиньте, сколько “соплей” придется тащить с платы на плату - и вопрос, imho, отпадет сам собой…

Была б готовая плата от smalltim-а , то вопроса и не возникало.

Дык, чего уж проще: купите…
Врядли голая плата с мегой у Тимофея будет стоить сильно дороже, чем то же самое у спаркфана, плюс пересылка из-за бугра. И эта плата будет значительно более подходящей под задачу, и ее существенно меньше придется “дорабатывать напильником”.

Панкратов_Сергей

Купить не получилось.
С полгода назад написал пару писем.
Две недели не было ответа, а затем получил письмо, видимо, от его торгового агента из Казани, типа - а напишите мне - что Вам нужно?
В это время с Штатов посылка уже была между Москвой и Бузулуком:)

Да, собственно вопрос отпал сам собой.
Вижу необходимость для себя в телеметрии с голосовыми сообщениями.
И для экспериментов та плата, на которую дал ссылку - вполне пригодна.

13 days later
gensek

Неделю как получил девайс, какие можно ставить датчики, на www.fmadirect.com/Detail.htm?item=1778§ion=20 Co Pilot Sensor Module появится 15 августа и то не факт, может в наших магазинах подходящие датчики можно прикупить?

Expert

на fmadirect рус кредит кард не берут, ваер из россии туды просто так не уйдет, не пройдет фин контроль без должного оформления

1 month later
alex-ber

[QUOTE=Панкратов Сергей;1295115]Почти наигрался:).
Стали понятны направления куда двигаться.
Понятно стало что должна представлять из себя модель для беспилотника и какие изменения в программе нужны.
Плата автопилота и программа не требует никаких изменений для применения на планере . Функция автовозврата с несколькими режимами, функция передачи телеметрической информации на базовую станцию ( в случае установки радиомодема).

Очень хотелось бы получить более подробную информацию про настройку и отладку данного автопилота - сегодня получил платку с 328 и FDTI програматор, плата согласования на подходе. но пока не паялся хотел бы узнать побольше инфы.
если не сложно - поделитесь ВСЕ кто пользовал или использует данный автопилот!!!
СПАСИБО!

Панкратов_Сергей

Используйте переводчик - и во всем разберетесь сами.
А писать подробную инструкцию - это получится нетонкая брошюрка.
Потому пробуйте сами - а на возникшие вопросы постараюсь ответить…

alex-ber
Панкратов_Сергей:

Используйте переводчик - и во всем разберетесь сами.
А писать подробную инструкцию - это получится нетонкая брошюрка.
Потому пробуйте сами - а на возникшие вопросы постараюсь ответить…

спасибо за ответ!
переводчиком пользуюсь…
вопрос пока один (из главных) - раньше до того как пришла платка на сайте была инструкция подключения платы без щита расширения и голов от ко-пилота (версия прошивок 1х и 2.0)
а теперь только версии 2.3
вот и интересует если я припояю выводы как по новой версии то для проверки (пока нет пироголов) смогу ли я использовать прошивку версии 1.х - у меня кристал 328?
Спасибо!

alex-ber
alex-ber:

спасибо за ответ!
переводчиком пользуюсь…
вопрос пока один (из главных) - раньше до того как пришла платка на сайте была инструкция подключения платы без щита расширения и голов от ко-пилота (версия прошивок 1х и 2.0)
а теперь только версии 2.3
вот и интересует если я припояю выводы как по новой версии то для проверки (пока нет пироголов) смогу ли я использовать прошивку версии 1.х - у меня кристал 328?
Спасибо!

Ладно ответов на свой вопрос не получил.😃
но хочется попробывать и потому методом научного втыка (кое где с помощью перевода) собрал пока платку. подключил програматор попытка залить прогу и первый облом!
оказывается просто не тот порт выбрал…😉
короче прогу (версия 1.0) я всетаки залил - по индикаторам на плате вроде все работает. теперь дело за тестом на земле и настройками а вот тут и засада!😮
может всеже кто поможет и разжует мне недотепе где и как их править?
т.е. как я примерно уже понял а вот в какой проге?
и может ктото будет любезен для образца скинет свои настройки для изика или глибера?
Извините за приставание…😍
Спасибо!

alex-ber

Продолжаю приставать!
тема меня торкнула - впервые чтото получается…
итак сегодня провел пешеходные тесты - пилот работает!
Но возникли новые вопросы -
1 Работать то он работает (по крайней мере на точку старта он меня вроде бы как вывел с точностью метров 3-4), но работает както очень уж дискретно - че в настройках править, чтоб чуствительности добавить?
Вообще то я еще грешу на слабый сигнал спутника - ходил пешком по плащадке на работе - рядом вышка МТС и наша станция ватт на 50.
2 тут в теме человек менял в версии 1.0 управление по высоте с газа на руль высоты, а меня при включении возврата на базу машинка на руле высоты принимает то положение в котором я ее оставил и как бы защелкивается, те не управляется совсем, хотя хвостом рулит (но дискретно - рывком влево- пауза -ровно - пауза и т.д.)
Так и должно быть или я что-то не правильно делал?
Буду очень признателен за ответы и помощь!

8 days later
Expert

Я пока забросил автопилот, видел как у ТАЛАНТА (Арти) он (Ardupilot) убил изистар.
народная мудрость - чем меньше проводов тем лучше
а руль высоты- я там менял еще и расходы и код, почти полностью скопировал от руля направления