ARDUINO. Плюсы и минусы

Arduino_Uno_Angle-660x495 
Впервые начав разбираться с микроконтроллерами я столкнулся с тем, что под каждую конкретную модель нужна была своя, отличная от других среда программирования. 15 лет назад это был в основном ассемблер. И даже загрузить программу в микроконтроллер скомпилированный для одного в другой, с минимальными отличиями (чуть больше памяти при таких же командах) уже было нельзя. По правде загрузить-то можно, а вот работать оно не будет. Так что спалил я таким образом несколько штук МК однократного программирования и на время забыл об этих «игрушках».

Вторично начал с появлением микроконтроллеров фирмы Atmel с перезаписываемой памятью на борту. Это было значительно лучше. Флеш память позволяет до 1000 раз записывать на кристалл программу. Да и самой памяти стало гораздо больше, что позволило, без серьезных потерь, перейти на языки программирования высокого уровня.
Но при всех плюсах, были и минусы — куча различных программаторов, непонятные фьюзы, которые в разных программах надо было выставлять по разному… В общем для того чтобы повторить какой-либо понравившийся проект, приходилось или большинство додумывать самому или использовать программатор и программу автора проекта, которые не всегда есть под рукой. Да и железо программаторов было довольно капризно — рассчитанные на COM или LPT порты можно было использовать только в Windows XP, другие системы не позволяли работать с портами напрямую. Немного лучше стало с появлением USB-программаторов, но чтобы запрограммировать сам программатор все равно нужно было иметь хоть какой-нибудь другой программатор. Курица и яйца, что было первым?

Все изменилось с появлением Arduino. Кроме самой платы, представляющей собой собственно микроконтроллер с минимальной обвязкой (кварц и кнопка сброса минимум), в наличии была среда разработки со своим языком, основанным на языке Си++, которая была единой для всей линейки поддерживаемых микроконтроллеров и плат на их основе. Никакого сравнения с «голым» мк, программа для которого могла быть написана на любом из доброго десятка языков программирования, начиная от бейсика, паскаля, си, причем даже один язык мог иметь различные компиляторы и программы написанные для одного не всегда работали в другом.

Вторым плюсом стала некоторая стандартизация периферии, итальянцы использовали так называемые шилды, под которые писали стандартные библиотеки, но никто не мешал использовать все по отдельности. Для меня это стало еще одним гвоздем в крышку гроба «голого» МК. Каждый разбирался с имеющимся в наличии железе сам, и проекты писал под это имеющиеся железо, а в результате оказывалось что для повторения интересного проекта надо не много ни мало а распотрошить на запчасти например кассовый аппарат. В последнее время вся периферия выпущенная и имеющая библиотеки под Ардуино без проблем можно купить в китайских интернет магазинах, по очень небольшим ценам, зачастую на порядок меньшую чем в местных оффлайновых магазинах.

И еще один момент — многие ругают Ардуино за не очень хороший редактор Arduino IDE, громоздкий исполняемый код, лишние 2к памяти которые занимает загрузчик и так далее… Но если вы или ваш проект перерос среду разработки Ардуино, это не значит что надо менять все «железо»! Просто перейдите на чистый AVRGCC и пишите на нем. Как я писал выше Ардуино это по сути все тот-же МК, только в комплекте с уже распаянным кварцем (остальные железяки на плате представляют в большинстве своем защиту от дурака и всяческие фишечки и рюшечки для более приятной работы)

Комментариев нет:

Отправить комментарий