Для чего применяется ардуино
О платформе
Что же такое 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, запустить программу уровня “блокнот с кнопкой Загрузить” и начать кодить с использованием огромного количества готовых библиотек и примеров для практически любых железок на рынке, а на любой вопрос найти ответ в гугле. Реально, у ребят просто пригорает =)
Видео версия
Arduino.ru
Что такое Ардуино?
Arduino – это инструмент для проектирования электронных устройств (электронный конструктор) более плотно взаимодействующих с окружающей физической средой, чем стандартные персональные компьютеры, которые фактически не выходят за рамки виртуальности. Это платформа, предназначенная для «physical computing» с открытым программным кодом, построенная на простой печатной плате с современной средой для написания программного обеспечения.
Arduino применяется для создания электронных устройств с возможностью приема сигналов от различных цифровых и аналоговых датчиков, которые могут быть подключены к нему, и управления различными исполнительными устройствами. Проекты устройств, основанные на Arduino, могут работать самостоятельно или взаимодействовать с программным обеспечением на компьютере (напр.: Flash, Processing, MaxMSP). Платы могут быть собраны пользователем самостоятельно или куплены в сборе. Среда разработки программ с открытым исходным текстом доступна для бесплатного скачивания.
Язык программирования Arduino является реализацией Wiring, схожей платформы для «physical computing», основанной на мультимедийной среде программирования Processing.
Почему Arduino?
Существует множество микроконтроллеров и платформ для осуществления «physical computing». Parallax Basic Stamp, Netmedia’s BX-24, Phidgets, MIT’s Handyboard и многие другие предлагают схожую функциональность. Все эти устройства объединяют разрозненную информацию о программировании и заключают ее в простую в использовании сборку. Arduino, в свою очередь, тоже упрощает процесс работы с микроконтроллерами, однако имеет ряд преимуществ перед другими устройствами для преподавателей, студентов и любителей:
Низкая стоимость – платы Arduino относительно дешевы по сравнению с другими платформами. Самая недорогая версия модуля Arduino может быть собрана в ручную, а некоторые даже готовые модули стоят меньше 50 долларов.
Кросс-платформенность – программное обеспечение Arduino работает под ОС Windows, Macintosh OSX и Linux. Большинство микроконтроллеров ограничивается ОС Windows.
Программное обеспечение с возможностью расширения и открытым исходным текстом – ПО Arduino выпускается как инструмент, который может быть дополнен опытными пользователями. Язык может дополняться библиотеками C++. Пользователи, желающие понять технические нюансы, имеют возможность перейти на язык AVR C на котором основан C++. Соответственно, имеется возможность добавить код из среды AVR-C в программу Arduino.
Аппаратные средства с возможностью расширения и открытыми принципиальными схемами – микроконтроллеры ATMEGA8 и ATMEGA168 являются основой Arduino. Схемы модулей выпускаются с лицензией Creative Commons, а значит, опытные инженеры имеют возможность создания собственных версий модулей, расширяя и дополняя их. Даже обычные пользователи могут разработать опытные образцы с целью экономии средств и понимания работы.
Всё об Ардуино: что это, области применения и полезные компоненты
Сегодняшняя статья будет посвящена Ардуино. В двух словах – это семейство электронных конструкторов, предназначенных для создания простых систем автоматики. Каждый из них состоит из печатной платы с микроконтроллером и из периферийных блоков – всевозможных датчиков, индикаторов, шаговых моторов и всего остального. А теперь обо всем по порядку.
Что такое Ардуино – давайте рассмотрим поближе
Несмотря на то, что в Ардуино имеется микроконтроллер, он рассчитан на непрофессиональных пользователей. Это позволяет освоить его и взрослым, далеким от основ электроники, и детям школьного возраста. У оболочки для программирования достаточно низкий порог вхождения. Программирование очень простое и интуитивно понятное. Оно не требуют каких-то особых знаний, не предполагает вникание в работу регистров микропроцессора и в прочую «черную магию».
Но при всей простоте Arduino богатый набор его периферии позволяет построить на нем достаточно интересные решения, которые можно использовать в робототехнике, всевозможных штуковинах системы «умный дом», да и просто для развлечения.
Где можно применить Arduino
Помимо простоты использования есть еще один важный момент. Комплектующие Arduino стоят очень дешево, поэтому конструктор стал достаточно популярным. Он часто используется в клубах юных техников для занятий с детьми, для проведения студенческих лабораторных работ. А для многих вполне зрелых и состоявшихся людей программирование Arduino стало хобби.
Заказал целый набор компонентов
Из-за этой массовости в сети появилось большое количество уроков и подробно описанных примеров, поэтому любой желающий, только получив в руки плату, может сразу же начать с ней работу и получить видимый результат. Для детей Ардуино это очень важно. Они видят, что у них все получается, что на их действие сразу же есть реакция. Можно просто включить-выключить светодиод, можно сделать это в определенной последовательности, можно что-нибудь написать или изобразить на дисплее.
Практически мгновенный результат приводит в восторг, поэтому занятия с Arduino быстро становятся не просто приятным времяпровождением, а полноценным хобби, которое развивает интерес к электронике. Кто знает, но дальнейшем такое хобби вполне может превратиться в интересную работу.
Комплектов Arduino достаточно много. Это и оригинальные конструкторы Arduino, и совместимые с семейством китайские клоны. Все они различного размера, комплектации и, соответственно, возможностей. Рассмотрим некоторые из них. Кстати, по качеству не уступает оригиналам.
Комплект для начинающих Ардуино UNO R3
Если нужно все и сразу, но без излишеств, то, наверное, это самый подходящий вариант. В набор входит плата с микроконтроллером, макетная плата типа Breadboard с комплектом проводов, позволяющая производить соединения без пайки, 4-разрядный семисегментный индикатор, LCD-дисплей, кнопочная панель, матрица светодиодов 8×8 элементов, джойстик, сервопривод с драйвером, реле, ИК-пульт и комплект светодиодов, кнопок, конденсаторов и резисторов россыпью.
Также в набор входят отдельные платки с датчиками:
Комплект позволяет поочередно освоить работу микропроцессора, его взаимодействие с индикаторами и с датчиками. Позволяет на своей основе построить такие интересные проекты, как дубликатор ключей от домофона, систему управления освещением, сделать игрушечный светофор или анимированную рекламную доску, организовать систему полива комнатных растений и многое другое.
Продвинутый набор Arduino UNO R3
Этот комплект отличается от предыдущего наличием дополнительных модулей расширения. Среди них ультразвуковой датчик расстояния, электронный гироскоп, электродвигатель постоянного тока вместе с микросхемой-драйвером, шаговый мотор и дополнительная макетная плата. Эти датчики могут оказаться полезными в качестве дополнения при управлении простыми роботами.
Еще одной особенностью этого набора является наличие большего числа «рассыпухи». Например, в комплекте можно найти сотню резисторов различных номиналов от 10 Ом до 1 МОм, диоды, пять видов транзисторов и несколько конденсаторов различных номиналов. Это дополнение предназначено для использования уже опытными людьми, освоившими базовые навыки построения электронных модулей и умеющих читать принципиальные схемы.
Обучающий набор Ардуино для детей и взрослых
Комплект-конкурент предыдущему набору. Внешний вид платы контроллера и плат датчиков несколько отличается, но их функциональность остается идентичной. Число составных элементов несколько большее. Например, имеется даже держатель для пальчиковых батареек.
Также имеются дополнительные датчики:
Дополнительные датчики позволяют построить с помощью конструктора некое подобие охранной сигнализации и продемонстрировать ее работу. На прилагающемся диске имеется руководство пользователя на английском языке и примеры проектов.
Оригинальный Arduino UNO R3
Это даже не набор, а просто одна плата UNO R3 с микроконтроллером, плюс USB-кабель и коробочка. Плата та же самая, какая использовалась в описанных выше комплектах.
Ее приобретение будет логичным, если в дополнительных датчиках и элементах россыпью необходимости нет. Например, если используются детали от других наборов, причем не обязательно Arduino.
Или если предполагается использовать платку в составе какой-то отдельной штуки со своей периферией. В общем, если нужен отдельно контроллер, то такая возможность тоже есть.
Самый дешёвый Arduino Nano
В случае, когда плата Ардуино UNO R3 избыточна, например, если не нужны лишние светодиоды, и элементы питания, или, если плата с контроллером должна быть меньших размеров, то решением может быть плата Nano. В отличие от UNO размером 69×54 мм, Nano занимает площадь всего в 19×42 мм. Кстати, стоит она тоже примерно в два-три раза дешевле.
Нюансом является то, что у используемого на плате Nano микропроцессора вдвое меньший объем флеш-памяти и оперативной памяти по сравнению с микропроцессором на UNO R3. Хотя, для большинства проектов, особенно, если это касается проектов начинающих, это не важно. Также в комплект не входит USB-кабель.
Комплект проводов для работы плат Ардуино
Опытные пользователи могут обратить внимание, что для реализации нескольких проектов одновременно на одной плате имеющихся в базовых наборов проводников может не хватать. Особенно это касается длинных проводов.
Но, что называется, трагедии нет – провода вполне достаются отдельно, причем именно те, которые нужны. Например, в этот набор на выбор можно скомплектовать проводники длинной 10 см, 20 см или 30 см. Доступны провода со штыревым и с гнездовым соединениями.
Сервоприводы
В базовые наборы Arduino входит по одному сервоприводу. Если одной штуки оказывается недостаточно, то недостающие гаджеты вполне можно скомплектовать отдельно. На выбор имеются как базовые SG90, так и более мощные MG90S.
Последняя модель отличается тем, что у нее редуктор сделан не из пластмассы, как у SG90, а с использованием металлических шестеренок. Это позволяет использовать механизм в системах, где предполагается большее усилие, а, значит, и большие нагрузки. Управление же и тем и другим сервоприводом одинаковое.
Модуль для беспроводного управления 433 МГц
Стандартный набор состоит из приемника и передатчика на 433 МГц, либо только из приемника или только из передатчика – на выбор. Штука оказывается полезной для организации беспроводной связи между разными платами. Например, одна может управлять другой, или передавать по радио данные с датчиков.
На основе этого модуля вполне можно организовать радиоуправление простенькой игрушкой. На одну плату ставится джойстик и передатчик, на другую двигатели и приемник. Можно организовать работу и по-другому, все зависит только личной от фантазии.
Wi-Fi модуль
Управление платой Arduino можно организовать и с помощью смартфона. Для этого понадобится расширение в виде Wi-Fi приемопередатчика. Платка-расширение очень простая и компактная.
Занимает всего 14×25 мм. А необходимые библиотеки для взаимодействия с ней главной платы Arduino вместе с примерами доступны в интернете, поэтому ее подключение также не составляет труда.
Модули реле
Для построения систем «умный дом» или для использования Arduino в составе автомобильной электросети важным элементом является реле. Этот элемент позволяет управлять системами с напряжением, большим, чем напряжение питания Arduino и сильноточными электрическими цепями без вреда плате. Без этого элемента не обойтись при управлении мощными электродвигателями или освещением.
На выбор доступны несколько модулей. С одним реле, точно таким же, какой входит в базовые комплекты UNO R3, с одним реле и индикационными светодиодами, с двумя реле, с четырьмя или с восемью. Каждое из них управляется сигналами напряжением 5 вольт, но рассчитано на коммутацию электрических цепей напряжением до 250 вольт при токе 10 ампер или до 125 вольт при токе 15 ампер.