Микроконтроллер представляет собой микросхему, которая используется для управления электронными устройствами. Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ и (или) ПЗУ. По сути, это однокристальный компьютер, способный выполнять относительно простые задачи. Не стоит путать с микропроцессором, так как он не содержит в себе периферийных устройств.
Под периферийными устройствами обычно понимают порты входа/выхода, ШИМ-модуляторы, таймеры, радиочастотные приёмники и так далее.
Что такое Arduino?
Arduino — эффективная аппаратно-программная платформа для проектирования и создания новых устройств, состоящая из самой платы и программного обеспечения.
Программирование Ардуино с нуля. Arduino для начинающих.
Arduino применяется для создания электронных устройств с возможностью приема сигналов от различных цифровых и аналоговых датчиков, которые могут быть подключены к нему, и управления различными исполнительными устройствами. Проекты устройств, основанные на Arduino, могут работать самостоятельно или взаимодействовать с программным обеспечением на компьютере.
Arduino Uno — есть эталонная модель платформы типа Arduino.Существуют и другие модели, такие как Arduino Nano и Arduino Mega.
Его состав следующий:
- количество цифровых входов и выходов составляет 14 (а шесть из них имеют возможность использовать как выходы ШИМ; для ШИМ используются выводы за номерами 3,5, 6, 9,10,11).
- число аналоговых входов составляет шесть (A0 – A5).
- 16 МГц – кварцевый резонатор.
- имеется разъём для питания.
- есть разъём, предназначенный для ICSP-программирования внутри самой схемы.
- присутствует кнопка для сброса (вывод Reset).
Как программировать Arduino?
Микроконтроллер Arduino программируется на специальном языке программирования, основанном на C/C ++. Язык программирования Arduino является разновидностью C++ и называется Wiring, другими словами, отдельного языка программирования для Arduino не существует.
C++ — компилируемый, статически типизированный язык программирования общего назначения. Код на таком языке состоит из отдельных блоков, называемых методами и функциями.
В программах для Arduino существуют две обязательные функции setup и loop . Их присутствие обязательно в любой программе на C++ для Arduino. Они могут ничего и не делать, но должны быть написаны. Так как любая программа состоит из отдельных блоков, то начало блока в C/C++ обозначается левой фигурной скобкой < , а конец-правой фигурной скобкой >.
void setup() pinMode(3, OUTPUT); > void loop() digitalWrite(3, HIGH); >
Ardublockly — это графический язык программирования для Arduino, предназначенный для новичков. Он прост в использовании.
Интерфейсы подключения
У микроконтроллерной платформы Arduino существует два типа интерфейсов входов/выходов(I/O ports) — аналоговые и цифровые порты, так же называемые пинами. Эти пины настраиваются как входы или как выходы, чтобы, соответственно, считывать информацию в виде электрического напряжения или передавать её в виде напряжения на определенный источник.
Цифровые порты
Цифровые порты 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 позволяют подключить к Arduino различные датчики, сенсоры и прочие микросхемы. Цифровой порт имеет всего два значения для приёма/передачи: HIGH(высокий) и LOW(низкий). Они же соответственно 5V и 0V.
Аналоговые порты
Arduino Uno имеет на своей плате шесть
float Step = 5.0F / 1024; // Вычисляем шаг Uопорн / на градацию void setup() Serial.begin(9600); // Задаем скорость работы монитор порта > void loop() int analogValue = analogRead(0); // Задаем переменную analogValue для считывания показаний float voltageValue = analogValue * Step; // Переводим в вольты (показание * шаг) Serial.println(voltageValue); // Выводим значение в вольтах в порт delay(500); // Ждем пол секунды//
Первый опыт работы на Arduino
Что такое светодиод?
Простейшей задачей для новичков работы с Arduino можно назвать подключение светодиода к 5V.
Светодиод — это полупроводниковый прибор, способный излучать свет за счет того, что через него проходит электрический ток в прямом направлении от анода к катоду. Светодиоды можно разделить по цветам (желтый, зеленый, голубой, красный), а также по номинальному количеству потребляемого тока. Широко
распространены модели с током потребления 10 миллиампер (мА) и 20 мА.
Как подключить светодиод?
Первым делом вставляем светодиод в макетную плату. Затем подключаем к катоду ( короткая ножка светодиода) последовательно резистор. Далее первый провод одним концом подключаем к аноду (длинная ножка светодиода) , а другим концом к 5 пину на Arduino. Второй провод подключаем к резистору и к GND на Arduino
Код для примера
void setup() pinMode(5, OUTPUT); > void loop() digitalWrite(5, HIGH); delay(1000); digitalWrite(5, LOW); delay(1000); >
Скопируйте его в Arduino IDE, подключите Arduino к компьютеру и нажмите кнопку «Загрузить».
Источник: robolab.fandom.com
Что такое Arduino и что с ним можно сделать
Зачем это нужно? Давайте рассмотрим такой наглядный пример. Если подключить к цифровому выводу Arduino светодиод и подать на вывод логическую «1», то светодиод загорится с максимальной яркостью; если подать «0» – светодиод погаснет. Никаких промежуточных вариантов нет. Если светодиод подключить к аналоговому выводу, то яркостью светодиода можно управлять плавно.
На практике к аналоговым выводам чаще всего подключаются какие-либо аналоговые датчики.
4 Чем может управлять Arduino
В итоге такое количество «рук» у Arduino позволяет подключать к нему огромное количество различных периферийных устройств. Среди них, например:
- кнопки, герконы и джойстики,
- светодиоды и фотодиоды,
- микрофоны и динамики,
- электродвигатели и сервоприводы,
- ЖК дисплеи,
- считыватели радиометок (RFID и NFC),
- bluetooth, WiFi и Ethernet модули,
- считыватели SD карт,
- радиоприёмники и радиопередатчики,
- GPS и GSM модули…
А также десятки различных датчиков:
- освещённости,
- магнитного поля,
- ультразвуковые и лазерные дальномеры,
- гироскопы и акселерометры,
- датчики дыма и состава воздуха,
- датчики давления, температуры и влажности…
И ещё многое, многое другое
Всё это превращает Arduino в универсальное ядро системы, которое может быть сконфигурировано совершенно разнообразными способами. Хотите сделать радиоуправляемую кормушку для питомца? Пожалуйста! Хотите чтобы при начале дождя у вас на лоджии закрывалось окно? Пожалуйста!
Хотите управлять яркостью освещения в комнате со смартфона? Запросто! Хотите получать уведомления на e-mail, если почва комнатных растений стала слишком сухой? И это можно!
На фотографии показана лишь крохотная часть периферийных устройств, которые можно подключить к Arduino. На самом деле их гораздо, гораздо больше.
5 Общение с Arduino
Как же процессор узнаёт, что именно ему следует делать? Вы должны рассказать ему это. Написание сообщений для Arduino называется программирование. Существует язык для общения с микроконтроллером, упрощённый и адаптированный специально для Arduino. Освоить этот язык совсем не сложно при желании и определённой настойчивости, даже если вы никогда раньше не программировали.
И для упрощения этого процесса разработана специальная программная среда – Arduino IDE. В её состав включены десятки примеров хороших, работающих программ. Изучив их, вы очень быстро многое узнаете о языке общения с Arduino.
Arduino позволит вашим программам выйти из виртуального мира в мир реальный. Вы сможете увидеть, как написанные вами программы заставляют мигать светодиод или вращать вал двигателя, а затем делать и более сложные и полезные вещи. Arduino позволит вам узнать много нового и интересного и в электронике, и в программировании. В итоге это может послужить вам отличным хобби, увлекательным занятием с детьми, замечательным и полезным времяпровождением.
Вы можете заказать Arduino и множество разнообразных датчиков для него в китайском онлайн-магазине Али-Экспресс. Здесь цены ниже, но доставка занимает время от 3 недель до 1,5 месяцев. Можно заказать Arduino в магазине электроники Voltiq.ru. Здесь цены чуть выше, чем в китайских интернет-магазинах, но не придётся ждать целый месяц. Ещё один хороший магазин электроники и робототехники – FastNVR.ru.
Ну и напоследок, посмотрите, какие разные и замечательные проекты можно воплотить с помощью Ардуино!
Источник: soltau.ru
Урок №1. Экосистема Ардуино
Вы решили попробовать свои силы с ардуино или пока просто присматриваетесь к этой платформе? Тогда Вы пришли на нужную страницу!
Прежде чем мы напишем нашу первую программу (скетч) для Ардуино и соберем первую схему, давайте сначала быстренько пробежимся по «экосистеме» Ардуино.
Кто уже знаком с экосистемой Ардуино, знает из чего она состоит и готов уже написать первую программу, тот смело может переходить к следующему уроку .
Экосистема Ардуино
Конечно, главное в экосистеме Ардуино – это, конечно же, сама плата Ардуино. Она может выглядеть по-разному.
Но сюда же входят:
- Среда программирования – Arduino IDE
- Базовая программная библиотека Ардуино
- Внешние программные библиотеки
- Шилды – платы расширения
- Различные модули и компоненты
Коротко обо всем по порядку…
Плата Ардуино
- Легенда гласит, что название платы происходит от местечка в Италии, где, считается, и зародилась первая версия платы в 2003-2005 году.
- Теперь существует огромное количество различных плат Ардуино, отличающихся друг от друга своими возможностями, габаритами и конечно же ценой.
- Среди них есть как официальные модели, так и множество различных клонов, производимых главным образом в Китае.
- Официальные модели лицензированы проектом Ардуино, что гарантирует их полную совместимость,
- Производители клонов не могут дать гарантии полной совместимости, хотя в большинстве своем они все прекрасно работают и составляют, пожалуй, самую многочисленную группу плат на руках мейкеров.
Микроконтроллер
Многие ошибочно называют плату ардуино микроконтроллером. Ядром платы Ардуино действительно является микроконтроллер – Atmega. На него-то и записывается программа. А все остальное на плате – это т.н. обвязка микроконтроллера, упрощающая работу с ним и дающая быстрый старт в разработке нового устройства, точнее, его прототипа.
Кстати, в конечной версии устройства, предполагающего хоть какое-то серийное производство, сама плата Ардуино обычно не используется: микроконтроллер и все необходимые компоненты обычно размещаются на одной плате. Так выходит гораздо компактнее и дешевле в производстве.
Ну, а мы же, простые мейкеры, кустари и домашние умельцы, в своих проектах чаще используем Ардуино как готовый модуль в составе нашего устройства.
Какую же плату купить?
Как я говорил ранее, на сегодняшний день существуют десятки модификаций Ардуино:
- С интегрированными сенсорами и кнопками
- С дополнительной памятью и портами ввода-вывода, для больших проектов
- С поддержкой Ethernet и WiFi
(Что актуально в проектах «Интернет вещей»,) - Есть платы со встроенным GSM
- плата, предлагаемая для сборки 3D-принтеров и сложных роботов
- для обработки видео и распознавания звука
- для проектов c применением Android
- Есть специальная плата для отладки проектов. Ее используют продвинутые мейкеры. Ведь отладка сложных проектов Ардуино – весьма непростой процесс.
- Наконец, есть миниатюрные версии, для создания носимых устройств, например умной одежды.
Для изучения Ардуино подойдет любая из этих плат. Но я рекомендую начать с платы начального уровня – UNO или Nano.
Если вы новичок в Ардуино, приобретайте именно их. А недостающую функциональность… после компенсируете дополнительными модулями.
Uno или Nano?
Пожалуй, главное отличие между эими платами– это размер.
Я лично предпочитаю Nano, потому что эта плата, как минимум:
- компактнее, что важно при сборке конечного продукта,
- может быть размещена прямо на макетной плате, и у вас будет на порядок меньше лапши из проводов,
- кроме того Nano имеет гораздо более распространённый разъем питания – mini-usb,
- а также клоны Nano существенно дешевле своего большого брата.
Есть небольшие отличия в расположении пинов, но кол-во портов ввода-вывода у них совершенно одинаковое.
К преимуществам UNO можно отнести:
- наличие шилдов (недешевое удовольствие, откровенно говоря)
- простота ремонта,
- возможность замены микроконтроллера, который рассчитан, хоть и на значительное, но все-таки ограничеенное число прошивок.
Однако на практике, данные преимущества в нашей время мало актуальны. Клоны UNO R3, как правило, имеют припаенный микроконтроллер, а их стоимость такова, что ремонт имеет сомнительную эономическую целесообразность.
Arduino IDE
Теперь о программировании Ардуино.
Arduino IDE – это инструмент, в котором вы (пишите программу для Ардуино, загружаете на плату (т.е. «прошиваете» контроллер на плате) и отлаживаете программу.
«IDE» расшифровывается как «Integrated Development Environment» – Интегрированная среда разработки. Но я ее буду называть и не по-английски, и не по-русски, а просто ИДЕ.
С помощью этой среды вы также взаимодействуете с платой через последовательный порт: получаете отладочную информацию и даже можете управлять платой.
Альтернативные IDE
Справедливости ради, надо отметить, что Arduino IDE – далеко не единственная среда программирования Ардуино, и уж точно далеко не самая лучшая.
Надо сказать, программу для Ардуино можно писать практически в любом текстовом редакторе, хоть в Nodepad++, хоть VIM – гиковском редакторе программистов.
Правда, вам потребуется настроить скрипты прошивки, в чем новичкам разобраться будет совсем непросто.
Многие профессионалы Ардуино предпочитают даже продвинутые среды профессиональных программистов, например, Microsoft Visual Studio. Но это недешевое удовольствие, особенно если вы занимаетесь коммерческой деятельностью.
В ходе этого курса, мы будем использовать только Arduino IDE. Потому что она бесплатна, проста для начинающих и наиболее распространена.
Скачать ее можно с официального сайта https://www.arduino.cc/
Но я в одном из будущих видео планирую сделать обзор альтернативных сред разработки, где, в том числе, я покажу как веду разработку лично я.
Скетч
Программа для Ардуино называется «скетч», что переводится с английского как «эскиз», «набросок».
Этим как бы подчеркивается, что все что вы делаете с Ардуино – это создаете прототип будущего изделия … в итеративной форме, подвергая свою программу по кругу испытанию и доработке, пока не получите готовую версию устройства.
Язык программирования для Ардуино – это Си, точнее С++. Поэтому знание C++ приветствуются для прохождения данного курса, хоть и не обязательно, поскольку мы будет постигать основы этого языка по ходу данного курса.
Пример скетчка Вы можете видеть ниже:
// инициализация платы и компонентов void setup() < // инициализировать пин 13 на вывод: pinMode(13, OUTPUT); >// главный цикл программы void loop() < digitalWrite(13, HIGH); // зажечь LED delay(1000); // задержка в 1 сек. digitalWrite(13, LOW); // погасить LED delay(1000); // задержка в 1 сек. >
Кстати, а вы знакомы с программированием? Пожалуйста, напишите в комментариях умеете ли вы уже программировать и на каких языках.
Базовая библиотека
Arduino IDE дает базис для разработки: определяет структуру программы, допустимые типы данных, дает набор встроенных констант, функций и объектов.
Например, если нужно получить значение с аналогового входа №1, вы вызываете функцию analogRead(1), а если вам надо подать 5V на цифровой вывод №7, надо вызывать функцию digitalWrite(7, HIGH).
Внешние библиотеки
Вместе с Arduino IDE поставляется набор библиотек. Часть из них разработана проектом Ардуино, но их относительно немного. .Другие разработаны контрибьюторами и одобрены Ардуино.
Но главный кладезь библиотек Ардуино – это конечно, Интернет…
И, пожалуй, большинство контрибьюторов ведут свои проекты на github – популярном ресурсе для хранения проектов с открытым кодом.
Вы можете и сами разработать библиотеку и выложить ее в открытый а то и платный доступ.
Двери в сообщество всегда открыты.
Шилды
Иногда определенная функциональность становится настолько популярной и востребованной, что многие производители создают готовое решение в виде отдельной платы, которая устанавливается прямо в плату Ардуино без каких-либо проводов.
Такие компоненты называется Shields – шилды.
Использование шилдов, обычно хорошо окупается. Ведь вам уже не нужно тратить кучу времени на решение проблем, которые давно решены другими.
Есть, например, шилд, покрывающий практически любую потребность в управлении двигателями при разработке робота или гоночного автомобиля.
А если надо подключить много USB-устройств, вам поможет шилд “USB Host”.
Если требуется собрать небольшую схему из радиоэлементов, вы можете разместить ее прямо на плате Ардуино, используя «PROTO SHIELD».
На рынке представлено множество шилдов – как от Ардуино, так и других производителей.
Шилды легко вставляются в плату, а также друг в друга, и в итоге может получиться целый «пирог» из шилдов.
Однако, нагромождение более чем из 2х шилдов довольно редки, и собираются, скорее, лишь для прикола и красивой фотографии, нежели ради реального дела.
Компоненты и модули
В любом проекте обязательно потребуются компоненты и модули.
Это маленькие кирпичики устройства, которые вставляются в макетную плату и подключаются к Ардуино с помощью проводов-перемычек.
К таким устройствам относятся:
- обычные радиоэлементы, такие как резисторы, кондекнсаторы, диоды и т.п.,
- различные датчики: освещенности, температуры, движения, влажности, цвета, вибраций и т.д.
Они могут быть как в виде отдельных элементов, так и готовых модулей – с расширенной функциональностью и различным способом подключения.
- Многие сложные задачи решаются с помощью микросхем
Например, (сдвиговые регистры, позволяют подключать к Ардуино больше устройств, а модули памяти потребуются, когда вам не хватит памяти Ардуино для хранения большего объема данных.
Для устройства могут потребоваться дисплеи – светодиодные и жидкокристаллические, с различными характеристиками и различнм способом подключения.
•Шаговые моторы, сервоприводы, соленоиды
и многие другие компоненты. Всех не перечислить.
Заключение
На этом всё для первого урока.
Теперь Вы знаете что такое Ардуино, какие платы бывают и из чего состоит «экосистема» Ардуино.
На следующем занятии мы перейдем от слов к делу, и напишем нашу первую программу, традиционно называемую «Hello World!» (т.е. «Привет, Мир!»).
Обязательно пройдите тест к этому уроку!
Видео-версия урока