Многие технические устройства вокруг нас оборудованы микроконтроллерами. Это небольшие управляющие компьютеры, сильно упрощённые для удешевления. Им не требуется обязательный набор периферии типа «клавиатура, мышь, монитор» или «сенсор, дисплей». Периферийные устройства — только те, которые требуются здесь и сейчас, для конкретной задачи.
- Микроволновка? Значит, кнопки, индикатор, вход для датчика двери и выходы на два реле.
- Калькулятор? Матрица кнопок и индикатор.
- Плюшевая игрушка с музыкой? Кнопка и громкоговоритель.
- И так далее…
Основные проблемы разработчиков прошивок для этих малюток — «зоопарк» несовместимых друг с другом платформ, а также необходимость иметь программатор. Или, если какая-то техника выпускается массово, в микроконтроллер ставят масочное ПЗУ, программу в которое записывают ещё в процессе изготовления. А ещё, если платформу надо сменить, требуется другая среда разработки, которую надо купить, освоить почти с нуля…
Arduino — это попытка внедрить в данном «зоопарке» единый стандарт. Не первая вообще, но первая успешная в таких масштабах.
Представьте, что в настоящем зоопарке все-все животные превратились в одинаковых, например, лошадей. Как же просто станет их содержать: одинаково кормить, одинаково ухаживать, одинаково лечить. Вот и здесь так же.
Помимо собственно микроконтроллера, в состав платформы входит плата, похожая на отладочную, но сравнительно недорогая и компактная — настолько, что микроконтроллер можно встраивать в различную технику вместе с этой платой. Программатор не требуется, так как ещё на предприятии-изготовителе платы в микроконтроллер зашили загрузчик — короткую программу, позволяющую получать программу пользователя от компьютера через COM-порт. А поскольку в новых компьютерах COM-портов нет, на современных Arduino-совместимых платах предусмотрены преобразователи USB-COM.
Само название «Arduino-совместимая плата» говорит о том, что на рынке присутствуют не только оригиналы, но и клоны. Неужели разработчики плагиат ушами прохлопали? Да они только рады, ведь это — открытое аппаратное обеспечение. По аналогии с открытым программным. Только назвать клон придётся не Arduino, а как-нибудь по-другому. Например, Iskra.
И независимо от того, у какого производителя вы приобрели плату, она будет совместима с Arduino IDE — единой и также открытой средой разработки для любых таких плат. Больше никакого переучивания после смены поставщика. Только уточнить, сколько у платы линий ввода-вывода, где и каких. И никаких споров о том, какой учебник по платформе выбрать. Можно выучиться по тому, который понравился.
А что если загрузчик «слетел», а программатора нет? Ничего страшного. Прошить его заново можно, воспользовавшись в качестве программатора другой, исправной Arduino-совместимой платой. Тем же способом можно прошивать загрузчик и в совместимые микроконтроллеры, расположенные вне плат. Нужно только добавить частотозадающие элементы, преобразователь USB-COM и необходимую периферию. Можно делать и свои совместимые платы не хуже готовых.
Arduino — не оптимальная платформа, но благодаря сравнительной простоте освоения она весьма широко применяется везде, где надо что-либо автоматизировать, а при необходимости — быстро внести изменения в алгоритм. Эту платформу изучают в школах, кружках, а многие — и у себя дома. Но применяют её в своих разработках не только любители, но и профессионалы.
...Вот почему я предлагаю сделать к/ф "о таких разных американцах" по мотивам книжки "Ну, что тебе сказать про СэШэА?" ...