Как стать автором
Обновить

Комментарии 9

Я являюсь участником проекта Маяк, и как раз одним из разработчиков части кода под Ардуино. У нас ранее была реализована мажоритарная логика, когда в системе управления было три чипа, два ATmega88, которые программировались низкоуровнего в AVR-Studio, и один ATMega32U4 который программировался на С++. Последний играл как раз важную роль в проекте, как показатель направления в развитии кубсатов, в которых возможно и целесообразно применять именно комплекс Ардуино, и даже серийные платы, без переделки. У нас как раз использовалась серийная Pro Micro.
К статье у меня, к сожалению, миллион замечаний, прямо по каждому абзацу. Не то, чтобы я был полностью не согласен, но это как смотреть на проблему с противоположной стороны. Вроде сами факты вы излагаете совершенно корректно, но вместо того, чтобы поставить плюс, вы почему-то ставите минус…

Вот, пожалуй, два ярких замечания.
  1. Ардуино, это не плата с FTDI (или без него), и не IDE со своими недостатками. И нет никаких «несовместимых» или «совместимых» с «Ардуино» плат. Нет вообще никаких Ардуино-плат. Ардуино — это комплекс аппаратно-программных средств, в которых реализована определенная парадигма. Это своего рода концепция, при которой программирование микроконтроллеров переводится с низкого уровня на высокий уровень абстракции. На сегодняшний день — на уровень абстракций С++ (да, AVR-gcc поддерживает С++, ограниченно, но поддержка может быть самостоятельно расширена до требуемого уровня). И разработана эта концепция с одной простой целью, позволить программировать чипы не только низкоуровневым программистам, но и высокоуровневым (не путать с умственными уровнями), позволить и последним реализовывать интересные проекты — что и дало резкий пинок IoT. Так вот как вы правильно сказали, одним из основных звеньев этой концепции является загрузчик — бутлоадер. Загрузчик можно написать в теории под любой чип, другое дело что сейчас количество чипов с бутлоадерами вот такой, завтра может стать больше. Но каждый из этих чипов вы можете программировать и в AVR-Studio, например, удалив бутлоадер. Т.е. ни сами чипы, ни готовые платы для прототипирования к Ардуино прямого отношения не имеют, вы можете использовать их как вам будет угодно, т.е. смотря на чем вы привыкли писать код. Но, ДА!, есть нюанс, программируя на высоком уровне абстракций вы не знаете фактически результирующий код для вашего процессора, вы можете лишь предполагать, как будет скомпелирована программа, как уборщик мусора отчистит память, как будет реализована память динамически и т.д. И да, текущие бутлоадеры не позволяют вам пока использовать все прелести JTAG, но для STM есть уже попытки.
    Но так ли это все плохо? Да нет, скажу я вам. Нам, например, удалось добиться одинаково стабильной работы обеих типов микросхем, и более того, простота написания кода на С позволила за тоже самое врем разработки реализовать в программе большее количество защит, проверок и ветвлений в случае обнаружения ошибок.
  2. Загрузка бутлоадера не обязательно занимает время, и в этом случае нет необходимости во внешних поддтягиающих резисторах и пр… Вот так сейчас реализуется запуск бутлоадера. Основная программа стартует практически мгновенно. IDE Ардуино знает об этой особенности и сама передергивает плату дважды при заливке прошивки.

Также хочется отметить, что сейчас существуют плагины для прошивки Ардуино не только для IDE ARV-Studio, но и для Eclipse и CLion. А это превращает разработку уже просто в удовольствие.
Разумеется, когда вы собрали свой проект и отладили софт, вам никто не мешает перейти для серийного производства на одну плату, пересобрав все шилды и переферию в одну схему — т.е. нет никаких лишних деталей и микросхем на платах прототипирования и шилдах, и нет никакой лишней стоимости, это всего лишь инструмент для разработки, удобный и практичный. И разумеется, для единичных экземпляров можно использовать и платы с шилдами, там стоимость не играет никакой роли, там нужен единичный результат, например, чтобы провести испытания, проверить гипотезу.

Вот пример: это наш стенд для испытания тяги химического двигателя спутника. Он весь собран на Ардуино-шилдах и АрдуиноМЕГА2560. Получилась прекрасное изделие, которое на 150% оправдало затраты на разработку. Кстати, стенд общается с внешним миром по WiFi, и отдает управляющую программу с видеопотоком прямо в браузер, на любое устройство. Вы можете проводит эксперимент в Москве, а управлять и получать результаты во Владивостоке, после чего скачать файл с логом прямо из браузера. И это все заслуга именно концепции Ардуино и удобства высокоуровнего программирования.
1. Видимо, мы не конца поняли друг друга, когда я писал об А, то имел в виду именно исходную реализацию с FTDI и прочее, следовало это точнее отметить, Вы правы, осталось поле для трактовок, полностью согласен с замечанием.
2. А вот тут поспорю, на А, которые я смотрел, был другой загрузчик и там время до запуска целевой программы было порядка единиц мсек, что неприемлемо в ряде случаев, поэтому безопасное состояние при помощи подтяжек безусловно необходимо, но оно необходимо и вообще всегда.
3. И я никак не против А в принципе, я это подчеркивал, почему Вы решили, что я против, я так и не понял.
«имел в виду именно исходную реализацию с FTDI», т.е. статья писалась лет 6 назад? Я сто лет уже не встречал Ардуин с FTDI, какая-нибудь Uno первой ревизии, разве…
Посмотрите на оригинальный сайт и на фотографии плат на нем.
На какие конкретно?
А вот тут поспорю, на А, которые я смотрел

Ну невозможно такое читать. Сходу совершенно непонятно, где «А» — это союз, а где — сокращение от «Ардуино». С «В» то же самое. Выделение «А» и «В» очень помогло бы восприятию текста:

А вот тут поспорю, на А, которые я смотрел
А вот тут поспорю, на (А), которые я смотрел
Об Ардуино хватит — и так много информации.

Даёшь статью об двигателях спутника! С фотками и кучей подробностей!!!
Я несколько отрицательно отношусь к конструкторам. Хотя arduino не совсем оное.
Тут было много тезисов и все верные. (сужу по полемике)
А теперь вопрос, как оптимизировать память? «Писать» во флеш на асме я умею, а если дать сыновьям и показать им скетчи, то глубокая печаль. 328Мега может и потянет, а из старых(которые дешевле)?
Оптимизировать память… Какую? Скетчи «не влезают»? Стека не хватает? Куча маленькая? Медленно работает? Адресация не удобная?..

Минут 5 пытался понять ваш ход мыслей.

Раз в код заглядывают сыновья — значит устройство не серийное, не коммерческое, соответственно нет смысла экономить несколько долларов на МК с большей памятью.
Сам факт «писания во флеш на ассемблере» (кстати, что под этим подразумевается?) не является оптимизацией. Ни 328 ни 168 Атмеги не являются ни старыми не новыми, у них просто разные объемы памяти, соответственно и цена.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории