18.11.2011

Arduino и журнал Радио

Я стараюсь регулярно просматривать свежую прессу по практике радиолюбительства, и, конечно же, подписан на легендарное Радио. Когда брал свежий номер в руки, сначала даже не поверил своим глазам:




Однако, по мере прочтения этой весьма небольшой статьи (чуть больше одного журнального разворота), эйфория сошла на нет. Мало того, возникло желание поделиться впечатлениями с уважаемыми читателями. Итак, автор - г-н Стародубцев из Екатеринбурга, решил сравнить Arduino и MSP-430G2231, дабы читатель смог в полной мере оценить их преимущества и недостатки.

Первая пара абзацев посвящена комплектации. Хотя на обложке изображена Duemilanova, вместо нее в сравнении принимает участие... Freeduino 2009 (это практически точная копия - оправдывается автор - здесь и далее цитаты из его статьи даны курсивом). И первым делом автор отмечает низкое качество сборки Freeduino - при ближайшем рассмотрении видно, что трассировка печатных проводников выполнена довольно небрежно. В то время как MSP ...имеет продуманную трассировку печатных проводников... мелочи, вроде высококачественной панельки под микроконтроллер.

Тут надо согласиться, но с оговоркой - если брать современные Arduino, то они сейчас даже в цветные коробочки упаковываются. Раньше такого не было, но теперь  - да, красиво. В основном эта красота - следствие борьбы против китайско-российских клонов, которые безжалостно копируют оформление и название. Freeduino на этом фоне выглядит вполне демократично: они чужое имя не монетизируют. И я почему-то сомневаюсь, что TI заботится о комплектации и внешнем виде своих изделий по тем же причинам...

Далее, возникает сравнительная таблица Arduino на ATmega328  и MSP430G2231, и которой становится понятно: практически по всем пунктам ATmega "сделала" TI, ибо 32К флеш-памяти - это больше чем 2К, объем ОЗУ в 2К - это больше, чем 128 байт, а 1K EEPROM - больше чем совсем ничего. Правда, MSP может "похвастаться" 16-разрядностью, но при таком скупом размере памяти программ это становится скорее недостатком, чем серьезным преимуществом. Также TI "обделил" свой чип USART-ом, но в классических Arduino USART используется для загрузки скетчей - так что сравнение по этому параметру выглядит скорее ничьей.

Автор признает слабость MSP, но пишет: необходимо заметить, что зачастую стоимость модулей расширения сопоставима или даже превышает стоимость самой дорогой микроконтроллерной платы. Ну... эээ... да, но часто это обоснованно. Зависит от функционала этой платы - например, если брать GPRS-шилд или GPS-шилд - получается не очень дешево. Но ведь для того и придумали платы расширения - не всем же нужен сразу функционал, который они предлагают (в том числе и по соображениям уменьшения стоимости материнской платы). И вменять этот принцип в качестве недостатка... как-то неправильно, мне кажется.

Есть в статье и попытка сравнения прилагаемого к платам ПО:

Успех Arduino-совместимых плат во многом обязан наличию одноименной среды разработки. Она очень проста в освоении и использовании. Язык программирования близок к C/C++.

И тут приходиться согласиться: действительно, всё просто. Именно за эту простоту Arduino обычно и ругают профи (ну, или те, кто себя ими считает ;). Но одна "простая, как палка" IDE успех еще не гарантирует. Важно коммьюнити - сообщество, которое генерирует идеи и развивает проект. 

...для LauchPad предлагается на выбор среда CCS (разработка Texas Instruments), либо бесплатная, ограниченная по объему исполняемого кода версия IAR MSP.

Действительно, на сайте TI можно скачать этот CodeComposerStudio evolution - будет работать минимум 30 дней. Автор почему-то не упоминает, что CCS тоже имеет лицензию "Code Limited" - она ограничена 16К, и вот как раз она-то абсолютно бесплатна и идеально подходит для MCU с 2К памяти. Замечу, что и Arduino тоже можно программировать с помощью бесплатного инструментала AVRStudio - и только для аппаратной отладки нужна плата с поддержкой 1-wire debug (самый дешевый вариант AVR Dragon должен стоить от 50 USD).

... у LaunchPad есть преимущество, поскольку среда IAR очень распространена среди программистов, пишущих на для семейства MSP430, и проблем с адаптацией будет меньше.

Это звучит примерно как "для тех, кто знает, как программировать MSP430, не будет проблем с очередной платой с MCU из этого семейства". Трудно спорить с очевидными фактами! Но опытных программистов такими поделками не заинтересуешь - у них наверняка уже есть какая-то отладочная плата посерьезней, да и мыслят они иными категориями,  чем начинающие и DIY-любители.

После всего прочего автор предлагает скомпилировать Blink для Arduino и аналогичный фрагмент на C для MSP, констатируя выигрыш последнего в размере. Ну да, в статье же нет ни слова о ядре Arduino - той невидимой для скетчеписателя библиотеке, в которой, например, считаются тики по таймеру. Я в принципе не согласен с таким подходом - надо было брать точно такой же фрагмент и компилить avrgcc. Не думаю, что сильно будет отличаться.

Затрагивает автор и тему стоимости: Плата LauchPad примерно в восемь раз дешевле! Это кажется невероятным, но ее цена с доставкой - 124 рубля ... причина такой разницы, конечно же, в том, что для производителей Arduino-совместимых плат их продажа - источник дохода, а для фирмы TexasInstruments плата LaunchPad - всего лишь реклама микроконтроллеров. 

Я попробовал зарегистрироваться на сайте TI и купить эту плату online. Все замечательно идет до того момента, пока не выяснится, что вы из России - дальше веб-сайт начинает сообщать о неожиданно возникших ошибках и процесс обламывается (update - со второй попытки все получилось, свой LaunchPad я получил). Гораздо проще поискать ее на складах российских поставщиков, но стоить она будет на пару-тройку долларов дороже. Реклама? Да, безусловно. Сколько она будет продолжаться? Какова будет ценовая политика? Неизвестно. Будет ли совместимость у будущих плат со старыми? При почти полном отсутствии шилд-плат к LaunchPad-у - думаю, производителя эти вопросы не волнуют ;)

Последнюю колонку автор посвящает подведению итогов, признавая трудность сравнения: при внешней схожести, платы разные и в той или иной ситуации преимущество будет то за одной, то за другой. Для LaunchPad автор указывает на экономичность и возможность запитаться от двух элементов AA (это правда: Vcc у LauchPad-а 1.8..3.6В, Arduino потребуется на один AA больше). Для Arduino все еще интереснее - если же требуется довольно мощный вычислитель с большим объемом памяти (например, для автономного веб-сервера), то здесь выигрыш будет за Arduino.  Я бы не советовал использовать Arduino в качестве веб-сервера - попробуйте Apache или Cherokee на худой конец ;)

Ну и финальный абзац про то, что сторонники Arduino-совместимых плат очень часто описывают их преимущества, однако много ли реальных изделий они собрали и используют в виде законченных конструкций? Попробовать и разработать - это одно. А довести разработку до конца - совсем другое. Довольно высокая стоимость платы Arduino зачастую может поставить крест на задумке. Тогда как дешевизна LaunchPad может побудить создать пусть и несложное, но реально используемое изделие. 

Тут мы видим, что автор путается в понятиях - не хочу приписывать ему лишних слов, но наверное "одно" - это прототипизация устройства, а "другое" - это законченное изделие. Наконец, он ошибочно полагает, что путь от прототипизации до готового устройства может преградить 900 рублей (без доставки!). Вот тут-то я с ним никак не могу согласиться - Arduino придумали для того, чтобы максимально упростить прототипизацию, т.е. сократить путь от момента появления идеи до ее материального воплощения. Получив положительные результаты, новички спешат ими похвастаться, а профессионалы - начинают взвешивать пути внедрения. Но если во время прототипизации возникает какая-то сложность (программная или аппаратная), в ней можно увязнуть и потерять вообще всякое желание продолжать попытки. Именно для этого придумали шилд-платы и библиотеки - они позволяют воспользоваться результатами работы и не мастерить велосипед. Кроме того, жесткое соединение шилд-плат с платой Arduino можно использовать для создания весьма живучего прототипа - я таким образом собрал матери термометр для наблюдения за температурой в холодильнике. Под руками оказалась MKBoard R1 (стоит она, кстати, 400 рублей), протошилд, дисплей WH1602, датчик DS18B20 и батарейный бокс. Все вместе довольно просто соединилось в монолитную конструкцию за часа полтора (включая пайку и программирование). И это так, простейший эпизод, который я даже не стал выкладывать в блог. 

Собственно, почему я прицепился к этой статье? Нет ничего хуже обманутых надежд. Я везде и всегда говорю, что чем больше различных вариантов, тем лучше, но в отношении этого материала... Ничего личного, но для почетного места на обложке и заявленного "сравнительного анализа" - откровенно слабовато. Если объем статьи поджимал, стоило пожертвовать пространными рассуждениями о комплектации и качестве трассировки плат и вместо этого упомянуть про язык Wiring, дать характеристику набору инструментальных утилит, рассказать подробно - платные они или нет, и если частично - то как можно потом использовать свою работу, на них основанную. С Ардуино-то давно все понятно - лицензия CC на устройства на его основе, лицензия GNU GPL на исходники и LGPL на библиотеки (только само имя "Arduino" нельзя использовать, ибо зарегистрированная торговая марка). А вот коварные производители - они готовы с вами поделиться исходниками, но... под собственной лицензией, которую будет диктовать вам, как пользоваться их наработками. Кто-то, помнится,  говорил, что свобода - лучше, чем несвобода? 

И еще - создалось ощущение, что это может быть даже завуалированная реклама производителя.

13 комментариев:

  1. Вообще, в журнальной статье немного странное сравнение.
    Имхо, платка от TI - это тупо маркетинг. Ни для чего особо серьезного она не годна, когда ардуино - вполне себе платфома (особенно с шилдами).

    ОтветитьУдалить
  2. При всём уважении, я заказывал именно с сайта TI в Россию уже 5 штук ланчпадов, ни разу никаких проблем не было.

    ОтветитьУдалить
  3. Arduino UNO на dealextreme 23$. Пришла за 2 недели. Отличное качество. Не прикопатся. + Они забыли упомянуть о нулевом пороге вхождения в мир микроконтроллеров для Ардуино. Я начал с Arduino Single-Sided Serial, собрал за неделю попутно освоив ЛУТ. Достаточно было статьи в ЛинуксФормат и pdf-ки с arduino.cc.

    ОтветитьУдалить
  4. Некорректное сравнение. По плотности кода AVR проигрывает MSP430 раза в три - четыре наверное, по разрядности, а значит и скорости доступа как в ОЗУ, так и к регистровой памяти MSP выигрывает довольно таки ощутима тратя на доступ в ОЗУ все те же 2 такта и захватывая шире в два раза, на потреблении опять же сильный выигрыш соревнуется с pico-power достаточно успешно. Удобство управления клоком и потреблениями не сравнимо, возможность исполнять из ОЗУ - огромный плюс, возможность шить через загрузчик по RS232 в большинстве случаев. Цена МК сравнима.
    Согласен по средствам разработки имеет только GNU GCC остальное либо ограничено размером кода (что не очень существенно для малых ядер) либо триально.
    Пишу статью про планировку задач для МК в том числе собираюсь сравнить MSP30 и АВР, хотя в некоторых случаях не очень корректно сравнивать 16 разрядов с 8 разрядами, в принципе позиционно они равны.

    ОтветитьУдалить
  5. Alexeys, с удовольствием размещу ссылку на Вашу статью у себя ;)

    ОтветитьУдалить
  6. Это статьи из разряда... чем бы пустой номер заполнить.... Я бы с удовольствием прочитал что-то практическое (особенно про ардуино)... так как сравнителей, ценителей и др у нас полный Интернет (не говоря об обзорах в печатных изданиях). А книжки нормальной про ардуино по русски (хоть авторской, хоть переводной) почему-то нет ни одной....

    ОтветитьУдалить
  7. Если бы нашлось такое издательство, которое решится опубликовать про практический Arduino, я бы взялся за книжку, просто из принципа! И соавторов бы позвал обязательно.

    Но такового издательства в России пока не объявилось :(

    ОтветитьУдалить
  8. Что ж Вы хотите ...

    Это 20-30 лет назад "Радио" был вне конкуренции.

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

    ОтветитьУдалить
  9. все эти лончпады и ардуины моментально меркнут перед stm32f4discovery

    ОтветитьУдалить
  10. Илья, лет 20 назад, журнал Радио охотно публиковал циклы тематических статей, как правило, 5..6 номеров на статью. Может попробовать таким образом опубликовать книгу про Ардуино?

    ОтветитьУдалить
  11. У радиожурналов какой-то бум на Ардуино.

    Вот и в Радиолоцамане появилась статья об истории создании Arduino:
    http://www.rlocman.ru/book/book.html?di=112311

    ОтветитьУдалить
  12. Плюсы и минусы Lauchpad в сравнении с Adruino вполне прозрачны (собственно из плюсов по-настоящему только низкое энергопотребление (которым еще надо уметь воспользоваться), и отчасти цена - отчасти потому что почти в любом законченном устройстве стоимость корпуса, блока питания, датчиков, разьемов и других дополнительных элементов нивелирует сэкономленный выигрыш).

    После выхода обновленного Lauchpad (rev. 1.5 ) возможности установленного микроконтроллера по сравнению с Arduino в значительной степени выровнялись (msp430G2553 уже имеет 16 GPIO, 16К Flash, 512 Byte RAM и USCI с поддержкой USART )

    Однако другие минусы остались и они более существенны.

    Коммюнити Launchpad гораздо менее многочисленное и в основном только англоязычное. Порог вхождения получается заметно выше.

    Из простых и доступных инструментов для работы с Launchpad вполне достаточно текстового редактора, msp430-gcc и mspdebug. Но есть и свои тонкости при переносе кода для CCS в gcc - синтаксис отличается.

    Библиотеки Arduino вполне можно портировать и использовать Wiring и с Launchpad, но в настоящее время Lauchpad заметно сложнее в освоении и скорее интереснее для студента или разработчика, чем для начинающего радиолюбителя.

    ОтветитьУдалить
  13. Случайно наткнулся на давно отмеченную ссылку : https://github.com/chrishulbert/friendly_launchpad

    Тема довольно интересна, но не получила должного развития.. возможно по причине отсутствия аппаратной интеграции.

    ОтветитьУдалить