Контроллер ардуино что это
Что такое платформа Ардуино и для чего она нужна
Ардуино представляет собой готовую аппаратно-программную платформу, главными компонентами которой являются небольшая плата-контроллер ввода/вывода и среда разработки на основе Processing/Wiring.
Первый прототип контроллера был выпущен еще в 2005 году, когда Массимо Банци разработал его для студентов Института проектирования взаимодействий города Ивреа, Италия. Название устройства происходит от имени короля Ардуина, правившего Италией всего два года в начале XI века, в честь которого был назван и пивной бар «ди Ре Ардуино», принадлежащий Массимо Банци, и расположенный на том самом месте, где по преданию родился король Ардуин.
Цель Ардуино – создать доступную среду для разработчиков программного обеспечения, которая позволит им войти в мир программирования микроконтроллеров. Программирование контроллеров данный фирмы происходит в простой и интуитивно понятной среде программирования – Arduino IDE. Эта среда удобна как и для начинающих пользователей, так и для опытных. Используется язык программирования С++, который дополнен множеством библиотек, что упрощает работу с устройством.
Ардуино произвела настоящую революцию международного масштаба в сфере разработки электронных устройств. Как схемы, так и исходные коды бесплатно доступны, благодаря чему Ардуино и получила столь широкую популярность. Готовую плату можно приобрести всего за несколько долларов, или собрать ее самому.
Плата Ардуино обладает собственным процессором и памятью, снабжена множеством вводов и выводов, к которым могут быть подключены различные датчики, а также исполнительные устройства и механизмы. На данный момент доступно более 20 основных модификаций плат Ардуино.
Микроконтроллеры платформы Ардуино
Особенность Ардуино в том, что для работы с ней не нужно быть программистом, не требуется специальных знаний о том, как работает микроконтроллер, чтобы построить простой проект. Стандартные библиотеки Ардуино открывают простор для творчества в плане автоматизации чего-либо.
Программирование здесь осуществляется через специальную программную оболочку (IDE), которую можно бесплатно скачать на сайте Arduino. Написанная на Java, дружелюбная оболочка работает под Windows, Mac OS X, и Linux, она содержит текстовый редактор, менеджер проектов, препроцессорный компилятор, а также инструменты для загрузки программы непосредственно в микроконтроллер.
Используемые в Ардуино микроконтроллеры уже имеют прошитый загрузчик (bootloader), поэтому программатор не нужен, достаточно соединить плату с компьютером через USB или через переходник UART-USB, и загрузить программу.
Имеется на плате и возможность прошить загрузчик в микроконтроллер самостоятельно с помощью программатора, в Arduino IDE встроена поддержка наиболее популярных дешевых программаторов, есть штыревой разъем для внутрисхемного программирования (ICSP для AVR, JTAG для ARM).
В большинстве устройств Ардуино используются микроконтроллеры Atmel AVR ATmega328, ATmega168, ATmega2560, ATmega32U4, ATTiny85 с частотой тактирования 16 или 8 МГц. Есть также платы на процессоре ARM Cortex M.
Плата Arduino UNO R3
Для подключения любых электронных компонентов (светодиоды, моторы, датчики и т.д.) к плате контроллера используются порты ввода/вывода. Их также называют пинами. Это цифровые, аналоговые или цифро-аналоговые интерфейсы, имеющие свою собственную функцию.
Как следует из названия, на цифровых пинах у нас цифровой сигнал. Они могут выдавать только два значения: логический ноль (0, LOW) и логическую единицу (1, HIGH).
Аналоговые – похожи на цифровые, с той разницей, что их основная цель – подключение аналоговых датчиков.
Цифро-аналоговые порты (или ШИМ – входы/выходы с функцией широтноимпульсной модуляции) – более «умный» интерфейс. Они всегда готовы к приему/передаче данных и не требуют предварительной инициализации. Главным их достоинством является возможность передавать значения в диапазоне от 0 до 255, что позволяет гораздо более
точно вмешиваться в работу подключенных элементов. Такие порты обозначены на плате (и в документации) как PWM или знаком «
Цифровые и аналоговые пины – порты коммутации (подключения). ШИМ – порты управления. При необходимости изменять параметры работы радиоэлемента, следует подключать его к ШИМ. Если достаточно просто включать/выключать элемент схемы – можно использовать любой порт Arduino.
Другим и последним важным критерием портов платы Arduino, является их физическая составляющая. Следует помнить, что каждый пин: имеет напряжение на выходе 5В. Может дать максимальное количество тока 0.02А
Это небольшие критерии, о которых важно помнить, чтобы сэкономить множество времени.
Чтобы освоить базу программирования для Ардуино новичку, нужно всего несколько часов, ибо в сети уже есть огромное количество видео уроков, тематических публикаций, заметок и статей на тему разработки для Ардуино. Основа — C++, дополненный простыми функциями управления вводами/выводами платы, и более въедливые пользователи смогут работать хоть в Visual Studio, хоть в Eclipse, или даже через командную строку.
Внешние устройства и платы-расширения
Практически Ардуино предоставляет огромные возможности для создания любых устройств, можно подключать датчики, замки, моторы, дисплеи, роутеры, да хоть чайники. Можно расширять изделие дополнительными платами — шилдами, например для работы с GPS, для соединения по локальной сети или интернету, для bluetooth, Wi-Fi и т. д. Особенно популярна Ардуино в робототехнике.
Удобно то, что для подключения расширений не нужен паяльник, используются простые штыревые соединения, что позволяет легко конструировать макеты, усложнять их так, как хочется, в общем, простор для творчества безграничен.
Платы-расширения (шилды) уже продаются для множества разных функций, их можно соединять подобно бутерброду, благодаря удобному устройству разъемов. Это могут быть платы беспроводной коммуникации, платы управления шаговым двигателем, и любые другие контроллеры различных назначений.
Почему так популярно использование Ардуино
Платформа Ардуино получила широкое признание у разработчиков новых электронных устройств, преподавателей и студентов инженерных направлений подготовки, а так же школьников в кружках технического творчества.
Использование Ардуино упрощает процесс работы с микроконтроллерами. По техническому оснащению она идеально подходит для образовательного процесса по проектированию различных мехатронных систем и роботов, благодаря понятной среде программирования и возможности наблюдения физических процессов в реальном времени, а также благодаря понятной среде программирования и ряду других преимуществ.
Она может использоваться в качестве средства обучения и исследования в цифровой обработке сигналов, электронике, схемотехнике, робототехнике, автоматике и др. Более мощные платы Ардуино применимы для решения сложных технических задач, связанных с разработкой больших проектов и их комплексной автоматизацией.
Ардуино – это наиболее популярная тенденция, делающая микроконтроллеры доступными для понимания и использования большому количеству людей, даже не специалистов в данной отрасли. При помощи этой популярной платформы можно сделать большое количество интересных и полезных проектов.
Огромное количество всевозможной периферии: кнопки, датчики, светодиоды, ЖК-индикаторы, и другие органы взаимодействия с окружающим миром, доступны для работы с Ардуино.
В интернет уже доступны сотни программ для Ардуино, способные помочь как начинающим, так и опытным пользователям для реализации их проектов.
Если Вам понравилась эта статья, поделитесь ссылкой на неё в социальных сетях. Это сильно поможет развитию нашего сайта!
Подписывайтесь на наш канал в Telegram!
Просто пройдите по ссылке и подключитесь к каналу.
Не пропустите обновления, подпишитесь на наши соцсети:
Знакомство с Arduino
Введение
Торжественно открываю новый блог на Хабре, посвящённый Arduino! Блог об универсальном opensource-микроконтроллере Arduino, который будет интересен всем любителям микроэлектроники, самодельных гаджетов и всем, кто не боится взять в руки паяльник.
Arduino представляет собой линейку электронных блоков-плат, которые можно подключать к компьютеру по USB, а в качестве периферии — любые устройства от светодиодов до механизмов радиуоправляемых моделей и роботов. Программы для него пишутся на простом и интуитивно понятном си-подобном языке Wiring (c возможностью подключения сторонних библиотек на C/C++, например, для управления LCD-дисплеями или двигателями), компилируются и загружаются в устройство одной кнопкой, после чего вы тут же получаете работающий автономный гаджет. Никакого ассемблера, никаких лишних проводов и дорогущих деталей и программаторов — чистое творчество, включай и работай!
Применение
После короткого рассказа друзьям и знакомым про Arduino («это типа электронного конструктора, микро-ЭВМ, в который можно загрузить любую программу и получить любое другое устройство») самый часто задаваемый вопрос «А зачем это всё?» или «Какая мне от этого выгода?» Скучные люди, не правда ли? Неужели среди ваших знакомых нет ни одного радиолюбителя, а может вы и сами радиолюбитель?
Применение Arduino очень простое — не забавы ради, а развития мозга для. Интересно же линуксоидам ковыряться в коде ядра? Какая от этого польза? Почему бы вам не заняться «железным» (в противовес «софтовому») творчеством? Вот прямо сейчас рядом со мной сидит коллега-дизайнер и разбирается… с нейронными сетями. В общем что говорить, забыт дух технического творчества, забыты радиокружки и авиамодельные клубы. Все только сидят у своих компьютеров и сделать ничего путного в железе, кроме как воткнуть вилку в розетку, не могут 🙂 Соберите свой веб-сервер, цветомузыкальную установку или прикольного робота!
Сообщество любителей Arduino уже знает об успешных примерах: GPS-трекер с записью на SD-карту, простой аудиоплеер, Twitter-дисплей, электронные игры с дисплеем и тачскрином… Попробуйте купить радиодеталей и сделать что-то своё! Есть даже готовый набор для создания четырёхъядерного Arduino-кластера.
Технические характеристики
Arduino Diecimila представляет собой небольшую электронную плату (далее просто плата) ядром которой является микроконтроллер ATmega168. На плате есть: 14 цифровых входов/выходов, 6 из которых могут работать в режиме ШИМ (PWM) (а следовательно управлять аналоговыми устройствами вроде двигателей и передавать двоичные данные), 6 аналоговых входов (исходной информацией служат не логические 0/1, а значение напряжения), тактовый генератор на 16 МГц, разъёмы питания и USB, ICSP-порт (что-то вроде последовательного интерфейса для цифровых устройств), несколько контрольных светодиодов и кнопка сброса.
Этого вполне достаточно, чтобы подключить плату к USB-порту компьютера, установить нужный софт и начать программировать.
Питание
Питание платы осуществляется двумя способами: по кабелю USB (при этом никаких других ухищрений делать не нужно, используется в процессе отладки), либо по специальному разъёму вроде того, что у ноутбуков. В радиомагазине можно купить такой разъём и присоединить к нему аккумулятор или 9-тивольтовую батарейку типа «Крона». Источники питания можно менять перемычкой на плате.
Преимущества и недостатки
Что такое Arduino?
Содержание
Содержание
На сегодняшний день про платформу Arduino слышали многие, но что это и зачем? Arduino — это самая динамично развивающаяся и доступная платформа с низким порогом вхождения, которая доступна как для начинающих и делающих первые шаги в программировании, так и для профессионалов. А как она работает и почему так популярна — разбираемся.
Возможности
Платформа Arduino представляет собой комбинацию среды быстрой разработки Arduino IDE и модулей для прототипирования на базе микроконтроллеров. Фактически, Arduino это — простейший электронный конструктор для создания готовых устройств из отдельных модулей. Arduino пользуется огромной популярностью во всем мире из-за контроллеров, модулей и шилдов.
Arduino — это не просто универсальный микроконтроллер, который можно адаптировать под любой проект за минимальное время. Это простейшая и доступная для изучения среда разработки Arduino IDE, которая служит для вовлечения в программирование и робототехнику, а также для быстрой разработки проектов. На основе Arduino можно собрать 3D-принтер или станок с ЧПУ. Все это происходит благодаря тому, что у платформы Arduino одно из самых больших сообществ, а также доступно огромное количество примеров, руководств и готовых библиотек для разработки.
Модули Arduino
Модули базовых контроллеров Arduino получили широкое распространение благодаря своей универсальности. Популярные платы Arduino Uno и Leonardo имеют достаточный набор периферии, а платы Mega и Due — расширенный. Даже компактные модули типа Pro, Micro и Nano подойдут для собственного проекта. В последнее время появились модули Mega сразу с установленным SoC ESP8266 и беспроводной связью Wi-Fi на борту.
Модули Arduino представляют собой платы со встроенным процессором, памятью и периферией, которая позволяет реализовать базовый функционал посредством одной всего платы. Для расширения возможностей служат дополнительные модули-шилды, которые работают с двигателями и сенсорами различных типов, а также способны читать и писать на карты памяти и накопители, поддерживают USB Host, умеют работать с Ethernet, Bluetooth и Wi-Fi. Модули расширения уровня Industrial имеют гальваническую развязку, а модули для умного дома подойдут с целью прототипирования устройств IoT ( «интернета вещей»). Вы даже можете сделать свой собственный web-сервер на основе Arduino.
На сегодняшний день существует множество оригинальных разновидностей и популярных клонов, а также огромное количество совместимых модулей-шилдов. Обратите внимание на приведенную Arduino Nano — это компактный модуль с 8-битным контроллером, на борту которого размещается приличный набор периферии (аналого-цифровые преобразователи, ШИМ-генераторы и таймеры, последовательные интерфейсы и так далее).
Для прототипирования и обучения доступен огромный арсенал периферии. Это разнообразные сенсоры, большинство типов датчиков и исполнительных механизмов, различные дисплеи, буферные и усилительные модули, драйверы двигателей, модули для беспроводной связи и управления. Модули комбинируются с основной платой-контроллером и затем конфигурируются в среде Arduino IDE.
Для создания проектов не требуется специальных навыков, так как для создания скетчей-программ (прошивок) для микроконтроллеров Arduino, а также для подключения, загрузки кода и мониторинга обмена данными служит специальная программная оболочка Arduino IDE, которая постоянно обновляется сообществом. На сегодняшний день Arduino IDE имеет качественные дополнения и расширения, в том числе позволяющие программировать 32-битные микроконтроллеры. Для работы с платами Arduino не требуется специальный загрузчик-отладчик или программатор, вся основная работа осуществляется средствами платформы Arduino.
Робототехнические наборы электронного конструктора Arduino дают начальные представления о принципах работы и управления, обратной связи и об обработке сигналов с сенсоров — это идеальный вариант для первых шагов в робототехнике и обучению программированию простейших алгоритмов.
Базовый механизм можно создать, имея всего две серво-машинки и два аналоговых источника сигнала для управления. Для прототипа даже не понадобятся паяльные принадлежности — весь проект собирается на монтажных беспаечных платах Arduino.
Таким образом, Arduino может стать доступной платформой для первых шагов с целью изучения программирования: для детей и взрослых существует множество интересных наборов модулей и базовых проектов.
Что может быть лучше и интереснее, чем собрать за вечер управляемого робота или автомобиль? Одновременно, возможности среды Arduino позволяют профессионалам разрабатывать прикладные проекты для промышленной автоматики и для умного дома. Arduino — это открытая платформа, и вы тоже можете стать разработчиков, создать собственный проект и присоединиться к сообществу Arduino.
Как мы узнали — это “аппаратная вычислительная платформа”, а по-русски — контроллер.
А что такое контроллер?
Для тех кто немного в курсе: не путать с микроконтроллером — МК это atmega, PIC и прочие “микросхемы” – однокристальные микро-ЭВМ,а контроллер это плата такая, на которую этот самый МК запаян.
Для тех кто совсем не в курсе: контроллер это такое электронное устройство которое что- нибудь контролирует — то есть реагирует на изменения одних параметров изменением других. Ну вот например кондиционер на стене видишь? (я тоже не вижу, но у кого-то он наверняка есть) так вот там тоже стоит умная плата-контроллер включающая/выключающая подогрев/охлаждение/осушение/увлажнение воздуха когда нужно.
Кондиционер, mp3 плеер, велокомпьютер, сигнализация, мобильник, навигатор — всё это (грубо говоря) специализированные контроллеры. А вот комп настольный это контроллер универсальный, да ещё и расширяемый, и с его помощью всё вышеперечисленное можно реализовать. Нужны будут только соответствующие платы расширения и софт.
Системы сбора данных (чёрный ящик для аквариума – пишет температуру раз в 5 минут)
Таймеры-Счётчики событий (сколько раз и во сколько кот подходил к пустой миске)
Сигнализации-Извещатели (кот превысил разрешенное количество подходов к миске, температура в аквариуме ниже 0, кто-то покинул туалет не выключив свет/не смыв/не опустив стульчак =)
В таком духе. Cкучновато конечно. Прям как древний пустой комп — ну клава, ну моник, ну часы, ну пасьянс какой-нибудь… А вот если воткнуть звуковушку, модем, мышь с джойстиком, да тв-тюнер с веб-камерой присобачить… уже больший полёт фантазии можно наблюдать.
Так же подключая к ардуино различные устройства – шилды(shields) добавляем различные функции — так можно управлять всякими двигателями, сервомашинками, сетевой нагрузкой наконец (свет, обогреватель, чайник и т.п.). Можно подключить GPS или GSM модуль и получать координаты со спутника или отправлять данные на свой телефон – координаты своей машины которую кореш взял покататься, или угнали не дай бог, или в командировке узнать что твой любимый кактус никто не поливает. Можно воткнуть Ethernet-модуль и выпустить свой девайс в интернет — пусть шлёт данные на твой сайт, или пусть пишет всё на SD-карту воткнутую в соответствующий шилд. Можно добавить каналы связи – ИК, радиоканал, а то и вообще Bluetooth, со всеми вытекающими.
Ещё примеры что в голову приходит:
Автокормушка для домашних животных
Контроллер аквариума
Дебаггер для машины (все температуры, давления, обороты твоего жигуля на красивом экранчике, расшифровка блинк-кодов)
Системы удалённой телеметрии
Велокомпьютер
Элементы умного дома (управление светом, шторами, вентиляцией, кондиционированием, отоплением, прочими электроприборами)
Элементы хобби-чпу
Простые промышленные контроллеры
Ну и конечно робототехника! (для этого сайта — основное направление развития =)
И всё это в произвольных комбинациях — ограничивает только фантазия и владение железом/софтом.
Почему ардуино? Да, есть ещё немало универсальных контроллеров и плат развития позволяющих осуществлять и более амбициозные проекты. Но! Ардуино имеет ряд преимуществ:
Не нужен программатор
Не нужны особо глубокие познания в программирования микроконтроллеров
Проект ардуино полностью открытый
Платформа набирает популярность — куча сайтов с библиотеками, схемами и проектами
Стандартизация расположения выводов — это делает её привлекательной для производителей – появляются всё новые шилды
Кроссплатформенная среда разработки
Вообще полазив по интернету возникает ощущение что ардуино становится стандартом для целого класса хоум-мейдеров=)
О платформе
Что же такое Arduino? Формально это – торговая марка, под которой выпускаются официальные платы и софт. Название Ардуино идёт от одноименного названия рюмочной в Италии, где создатели платформы любили пропустить по рюмочке. Предлагаемая Arduino платформа включает в себя железо (сами платы) и софт (среда разработки).
Семейство Ардуино – несколько моделей так называемых отладочных плат. Отладочная плата представляет собой как ни странно печатную плату, в сердце которой стоит микроконтроллер – та самая штука, которую мы будем программировать. Микроконтроллер это микросхема, содержащая в себе микропроцессор, интерфейсы ввода-вывода, память (оперативную и постоянную), таймеры и другие штуки. Да, микропроцессор – это другое, микропроцессор по сути может только выполнять вычисления (как процессор в компьютере), а микроконтроллер – это практически полноценный компьютер, размещенный в одном кристалле микросхемы. В большинстве плат Arduino используются микроконтроллеры серии ATmega от производителя AVR.
Железо
Помимо микроконтроллера на отладочной плате стоит обвязка, необходимая для его работы: это кварцевый генератор, задающий частоту работы процессора, и “рассыпуха” – конденсаторы и резисторы, выполняющие фильтрующие и подтягивающие функции.
Давайте так: что нужно сделать для того, чтобы собрать устройство на микроконтроллере? Нужно подключить к выходам микроконтроллера необходимые устройства (далее – “железо”), загрузить на микроконтроллер прошивку, которая будет управлять этим железом, и обеспечить всё это дело стабильным питанием. Цель разработчиков ардуино была совместить вышеуказанное с простотой и удобством работы и модульностью, тем самым превратив разработку электронных устройств в мощный универсальный конструктор. Эта цель была достигнута так: на плате, вместе с микроконтроллером, разместили “программатор” для загрузки прошивки, usb порт и стабилизатор питания, позволяющий питать плату от широкого диапазона постоянных напряжений: 5-19 вольт. Микроконтроллеру нужно 5 вольт, что стабилизатор ему и обеспечивает.
Загрузка прошивки
Что касается так называемого программатора: изначально способом загрузки прошивки в микроконтроллер является загрузка посредством ISP (in-system programming) программатора, который загружает прошивку напрямую в память микроконтроллера. Это способ хорош и надёжен, но он дороже и не такой универсальный как тот, который используется в Ардуино. Работает это так: вместо ISP программатора на плате стоит USB-TTL преобразователь, который позволяет Ардуино (на её стороне TTL – транзистор-транзистор логика) буквально общаться с компьютером (на его стороне – USB) и обмениваться данными. Но просто общаясь с компьютером загрузить прошивку не получится, поэтому в памяти микроконтроллера “живёт” загрузчик (он же bootloader), который умеет ловить данные, идущие с компьютера и загружать их во Flash память микроконтроллера. При каждом запуске микроконтроллера загрузчик ждёт команду от компьютера, мол желает ли тот загрузить новую прошивку. Если никто ему не отвечает какое-то время, он запускает уже имеющуюся в памяти МК прошивку. Отсюда вытекает несколько минусов:
Оба этих минуса решаются частично или полностью:
Возвращаясь к USB-TTL преобразователю: почему именно такой способ загрузки прошивки выбрали разработчики Arduino? Да всё очень просто: микросхема USB-TTL преобразователя стоит дешевле микросхем, могущих в ISP (роль оных обычно выполняют микроконтроллеры), что прилично удешевляет платформу. Но самое главное – использование USB-TTL преобразователя добавляет нам возможность общаться с платой при помощи компьютера (смартфона, планшета) без использования дополнительного железа, т.е. мы можем как управлять какими-то устройствами (если это заложено в коде прошивки), так и получать от Ардуино данные, например показания с датчиков. Но самое-самое главное – это позволяет отлаживать код, вручную, но все таки отлаживать.
Что касается программной части, предоставленной Arduino, то это Arduino IDE (Integrated Development Environment – интегрированная среда разработки), включающая в себя редактор кода, компилятор и всё остальное необходимое для загрузки прошивки в плату. Подробнее о ней поговорим в отдельном уроке
Модели Ардуино
Вот мы и добрались до самих плат Ардуино, которых на данный момент появилось великое множество благодаря открытости платформы: все схемы и исходные коды находятся в открытом доступе, и вы можете сделать свою версию платы и продавать её, чем активно занимаются китайцы. Единственный пункт: слово Arduino – зарегистрированная торговая марка, и свою плату вам придется назвать как-то по-другому, отсюда и появились всякие Искры, Бузины и прочие так называемые Arduino совместимые платы.
Разновидностей плат очень много, но используют они одни и те же модели микроконтроллеров. От модели микроконтроллера зависит объем памяти и количество ног, ну и есть некоторые специальные фишки. На большинстве моделей Arduino стоят 8-битные МК от AVR с кварцевым генератором на 16 МГц (либо ниже), то есть по производительности платы на ATmega не отличаются, отличаются только объемом памяти, количеством ног и интерфейсов/таймеров. Модели Ардуино с МК от производителя ARM, например Arduino DUE, в разы мощнее своих собратьев за счёт 32-битного процессора, но это совсем другая история.
Параметр | ATtiny85 | ATmega328 | ATmega32u4 | ATmega2560 |
Кол-во ног | 8 | 32 | 44 | 100 |
Из них доступны | 5 | 23 | 24 | 86 |
Flash память | 8 Kb | 32 Kb | 32 Kb | 256 Kb |
EEPROM память | 512 bytes | 1 Kb | 1 Kb | 4 Kb |
SRAM память | 512 bytes | 2 Kb | 2.5 kB | 8 Kb |
Каналов АЦП | 3 (4 с rst) | 6 (8 в SMD корпусе) | 12 | 16 |
Каналов PWM | 3 | 6 | 7 | 15 |
Таймеры | 2х 8bit | 2х 8bit | 2х 8bit | 2х 8bit |
1х 16bit | 2х 16bit | 4х 16bit | ||
Аппаратный Serial | Нет | х1 | х1 | х4 |
Внешние прерывания | 1 (+6 PCINT) | 2 (+23 PCINT) | 5 (+44 PCINT) | 8 (+32 PCINT) |
Платы на его основе | Digispark, LilyTiny | Uno, Nano, Pro Mini, Lilypad, Strong | Leonardo, Micro, Pro Micro, BS Micro | Mega, Mega Pro |
Таким образом вы должны сразу понять, что, например, Ардуино Уно=Нано=Про Мини=Лилипад по своим возможностям и взаимозаменяемости. Или Леонардо=Про Микро. Ссылки на недорогие китайские Ардуины вы можете найти у меня на сайте. Точно там же вы найдёте ссылки на кучу датчиков, модулей и другого железа, которое можно подключить к Arduino. О возможностях ардуино по работе с другими железками поговорим в одном из следующих уроках.
Программирование
Ардуино программируется на языке программирования C/C++ с соответствующим ему синтаксисом. Встроенный сборщик, препроцессор и компилятор (avr-gcc или Win-AVR) прощают большое количество ошибок и делает многое за пользователя автоматически, мы даже об этом не знаем и не задумываемся. Базовые функции для управления выводами и интерфейсами микроконтроллера, математика и некоторые другие функции/макросы взяты из открытого фреймворка для работы с микроконтроллерами под названием Wiring. Именно из него состоит базовый набор инструментов Ардуино. В связи с этим сами разработчики Ардуино называют язык “упрощённым c++”, и даже дали ему отдельное название – Arduino Wiring.
Тут следует отделить мух от котлет: “из коробки” в Arduino IDE нам доступна огромная куча различных функций и инструментов:
Если вы научитесь свободно прогать на Ардуино и вдруг перейдете к разработке программ на том же C++ в более взрослых средах разработки, вы будете неприятно удивлены большим количеством дополнительного кода, который придется писать руками. И наоборот, если умеющий в плюсы (си-плюс-плюсы) человек посмотрит на типичный ардуино-код, он скажет “да как это вообще работает то?”. Компилятор в Arduino IDE настроен на максимальную всеядность и прощение ошибок, потому что это обучающая платформа.
Сейчас вернёмся к такому понятию, как библиотека. Жизнь рядового ардуинщика неразрывно связана с библиотеками, потому что огромное комьюнити за годы своего существования сделало огромное количество этих самых библиотек на все случаи жизни и для всех продающихся датчиков и модулей. Библиотека это набор файлов, в которых содержится дополнительный код, которым мы можем пользоваться просто ознакомившись с документацией или посмотрев примеры. Такой подход называется “черным ящиком”, мы можем даже не догадываться, какой ужас и кошмар (в плане сложности кода) содержится в библиотеке, но с лёгкостью пользоваться возможностями, который этот код даёт. Купили модуль – нашли библиотеку – открыли пример – всё, результат достигнут…
Писать без библиотек?
Очень многие считают, что эффективный код нужно писать без библиотек, чистым полотном. Это полнейшая чушь, потому что:
Возможности
Зачем учиться работать с ардуино и электроникой в целом?
Хейтеры платформы
В мире серьезных программистов и разработчиков очень не любят Ардуино. Почему? Рассмотрим несколько популярных негативных комментариев о платформе.
Что ещё хочется сказать по поводу негатива от “профессионалов” – в большинстве случаев они просто завидуют: в “их время” для создания даже простенького проекта на базе микроконтроллера нужно было потратить огромное количество времени на изучение документации на английском языке на конкретную модель МК, на все остальные железки и микросхемы в проекте, научиться работать в недружелюбной среде разработки, развести и спаять плату, купить дорогой программатор и прочее прочее. А в наше время можно купить плату за 150р, воткнуть её в USB, запустить программу уровня “блокнот с кнопкой Загрузить” и начать кодить с использованием огромного количества готовых библиотек и примеров для практически любых железок на рынке, а на любой вопрос найти ответ в гугле. Реально, у ребят просто пригорает =)