В одной из прошлых статей довольно много вопросов возникло из-за такой, уже, в общем-то не совсем современной, платформы, как Ардуино. Для начала давайте оговоримся, что же это ардуино такое, потому, что иначе любая дискуссия станет контрпродуктивной.
Сразу оговоримся, что по нашему мнению, сама платформа ничем не виновата и не в чем ни примечательна. И до Ардуино и в ближайшем будущем все производители микропроцессорной техники выпускали (и, соответственно, будут выпускать далее) демонстрационные платы своих контроллеров, где, в зависимости от возможностей и богатства фантазии разработчиков, находился минимальный или, наоборот, максимальный комплект обвесных элементов, которые позволяли микросхеме контроллера превратиться из просто куска кремния в пластике во что-то хоть немного полезное.
Не итальянская компания Ардуино первой придумала размещать на одной плате контроллер и программатор, не она первой придумала бутлоадер, и уж тем более это было первое IDE для контроллеров. В чем же причина такой популярности этого, изначально чисто учебного, комплекта у разного уровня радиолюбителей?
А причина этого проста - компания Ардуино первой предложила набор библиотек, резко снизивший "порог вхождения". До сих пор при программировании микроконтроллеров Вы должны были знать архитектуру перефирийных устройств и основы системы команд (даже в случае использования С++ определенные моменты требовалось учитывать), то теперь предлагался некий диалект С, в котором можно было думать исключительно о логике работы устройства, не задумываясь о том, как микроконтроллер будет выполнять Вашу программу. Изначально предполагалось, что будет покупаться сначала основной комплект, потом стандартные шилды, к которым есть готовые библиотеки. Т.е. устройство предполагалось строить буквально из кубиков, причем и аппаратно и программно.
Эта идея понравилась всем, желающим приобщиться к микропрограммному управлению, так как платформа изначально была открытая, китайцы быстро уронили цены, было выпущено много шилдов и огромное количество стандартных библиотек. В то же время профессиональные разработчики к данной платформе отнеслись более чем скептически и основания для этого у них были. Первое, с чем столкнулись и "продвинутые" любители и профессионалы - скорость. Так как инициализация периферии и всякие ваши тайминги в Ардуино от пользователя хорошо изолированы, то любая библиотека при каждом действии должна проверять - все ли сделано как надо или надо исправить ошибку глупого пользователя. Второй большой недостаток напрямую вытекал из первого - объем нерационально расходуемой памяти. Такой подход был вполне простителен на компьютере, но для микроконтролера и время исполнения и память - ресурсы весьма дефицитные.
Оптимизирующий компилятор, возможно, решил бы большинство проблем, но в изначальном варианте для чисто учебной среды об этом сильно не задумывались. В результате у многих профессиональных разработчиков сложилось впечатление, что на Ардуино что-то серьезнее мигалки для новогодней ёлки или светофора со сложным алгоритмом работы сделать вообще нельзя. Еще больше впечатление испортили появившиеся "специалисты", которые искренне полагали, что программирование Ардуино заключается в том, чтобы подобрать шилды и библиотеки и скомпилировать это в одном скетче (а, желательно, вообще найти готовый).
Однако является ли Ардуино порочной идеей само по себе или это все-таки инструмент, который каждый волен использовать как считает нужным? Мы однозначно считаем, что само по себе Ардуино - вполне удачная платформа, пригодная для решения далеко нетривиальных задач.
Во первых в настоящий момент при использовании среды, Вы вообще не обязаны использовать стандартные библиотеки и классы и, при желании, можете всю работу прописать в коде. Более того, в случае, если Ваша задача сделать устройство с нормальным быстродействием это чуть ли не единственно возможный вариант. Если скорость нужна не запредельная, но выше стандартной, имеется множество альтернативных библиотек. При работе с ними, естественно, нужно быть более аккуратным. Кроме того, максимальное использование возможностей Ардуино-совместимых плат с другими микроконтроллерами, не позволяет просто перенести скетч с одной платформы на другую.
Во вторых, в связи со снижением цены, в практике радиолюбителей появляется достаточно много задач, которые не требуют максимального быстродействия или очень объемной логики. Естественно, при этом не получится собрать устройство только на стандартных деталях, но ведь настоящих радиолюбителей это не только не пугает, но и наоборот, радует возможностью технического творчества.
Так, что не стоит бояться Ардуино или считать его инструментом отупления, ведь один и тот же компьютер может быть использован для управления технологическими режимами производства лекарств и для игры в Fallout.
Ставьте лайки, делайте репосты и не забывайте заземлять!
Подписывайтесь на наш канал!
Всем читателям нашего блога - Скидка в нашем интернет-магазине по промокоду ZENPROFIT