Доброго времени суток, Хабр. Запускаю цикл статей, которые помогут Вам в знакомстве с Arduino. Но это не значит, что, если Вы не новичок в этом деле – Вы не найдёте ничего для себя интересного.
Введение
Было бы не плохо начать со знакомства с Arduino. Arduino – аппаратно-программные средства для построения систем автоматики и робототехники. Главным достоинством есть то, что платформа ориентирована на непрофессиональных пользователей. То есть любой может создать своего робота вне зависимости от знаний программирования и собственных навыков.
Начало
Создание проекта на Arduino состоит из 3 главных этапов: написание кода, прототипирование (макетирование) и прошивка. Для того, чтоб написать код а потом прошить плату нам необходима среда разработки. На самом деле их есть немало, но мы будем программировать в оригинальной среде – Arduino IDE. Сам код будем писать на С++, адаптированным под Arduino. Скачать можно на официальном сайте. Скетч (набросок) – программа, написанная на Arduino. Давайте посмотрим на структуру кода:
Важно заметить, что обязательную в С++ функцию main() процессор Arduino создаёт сам. И результатом того, что видит программист есть:
Давайте разберёмся с двумя обязательными функциями. Функция setup() вызывается только один раз при старте микроконтроллера. Именно она выставляет все базовые настройки. Функция loop() — циклическая. Она вызывается в бесконечном цикле на протяжении всего времени работы микроконтроллера.
Первая программа
Для того, чтоб лучше понять принцип работы платформы, давайте напишем первую программу. Эту простейшую программу (Blink) мы выполним в двух вариантах. Разница между ними только в сборке.
Принцип работы этой программы достаточно простой: светодиод загорается на 1 секунду и тухнет на 1 секунду. Для первого варианта нам не понадобиться собирать макет. Так как в платформе Arduino к 13 пину подключён встроенный светодиод.
Прошивка Arduino
Для того, чтоб залить скетч на Arduino нам необходимо сначала просто сохранить его. Далее, во избежание проблем при загрузке, необходимо проверить настройки программатора. Для этого на верхней панели выбираем вкладку «Инструменты». В разделе «Плата», выберете Вашу плату. Это может быть Arduino Uno, Arduino Nano, Arduino Mega, Arduino Leonardo или другие. Также в разделе «Порт» необходимо выбрать Ваш порт подключения (тот порт, к которому вы подключили Вашу платформу). После этих действий, можете загружать скетч. Для этого нажмите на стрелочку или во вкладке «Скетч» выберете «Загрузка» (также можно воспользоваться сочетанием клавиш “Ctrl + U”). Прошивка платы завершена успешно.
Прототипирование/макетирование
Для сборки макета нам необходимы следующие элементы: светодиод, резистор, проводки (перемычки), макетная плата(Breadboard). Для того, чтоб ничего не спалить, и для того, чтоб всё успешно работало, надо разобраться со светодиодом. У него есть две «лапки». Короткая – минус, длинная – плюс. На короткую мы будем подключать «землю» (GND) и резистор (для того, чтоб уменьшить силу тока, которая поступает на светодиод, чтоб не спалить его), а на длинную мы будем подавать питание (подключим к 13 пину). После подключения, загрузите на плату скетч, если вы ранее этого не сделали. Код остаётся тот же самый.
На этом у нас конец первой части. Спасибо за внимание.
В этой статье я решал собрать полное пошаговое руководство для начинающих Arduino. Мы разберем что такое ардуино, что нужно для начала изучения, где скачать и как установить и настроить среду программирования, как устроен и как пользоваться языком программирования и многое другое, что необходимо для создания полноценных сложных устройств на базе семейства этих микроконтроллеров.
Тут я постараюсь дать сжатый минимум для того, что бы вы понимали принципы работы с Arduino. Для более полного погружения в мир программируемых микроконтроллеров обратите внимание на другие разделы и статьи этого сайта. Я буду оставлять ссылки на другие материалы этого сайта для более подробного изучения некоторых аспектов.
Что такое Arduino и для чего оно нужно?
Arduino — это электронный конструктор, который позволяет любому человеку создавать разнообразные электро-механические устройства. Ардуино состоит из программной и аппаратной части. Программная часть включает в себя среду разработки (программа для написания и отладки прошивок), множество готовых и удобных библиотек, упрощенный язык программирования. Аппаратная часть включает в себя большую линейку микроконтроллеров и готовых модулей для них. Благодаря этому, работать с Arduino очень просто!
С помощью ардуино можно обучаться программированию, электротехнике и механике. Но это не просто обучающий конструктор. На его основе вы сможете сделать действительно полезные устройства. Начиная с простых мигалок, метеостанций, систем автоматизации и заканчивая системой умного дома, ЧПУ станками и беспилотными летательными аппаратами. Возможности не ограничиваются даже вашей фантазией, потому что есть огромное количество инструкций и идей для реализации.
проекты на Arduino
Стартовый набор Arduino
Для того что бы начать изучать Arduino необходимо обзавестись самой платой микроконтроллера и дополнительными деталями. Лучше всего приобрести стартовый набор Ардуино, но можно и самостоятельно подобрать все необходимое. Я советую выбрать набор, потому что это проще и зачастую дешевле. Вот ссылки на лучшие наборы и на отдельные детали, которые обязательно пригодятся вам для изучения:
Базовый набор ардуино для начинающих:
Купить
Большой набор для обучения и первых проектов:
Купить
Набор дополнительных датчиков и модулей:
Купить
Ардуино Уно самая базовая и удобная модель из линейки:
Купить
Беспаечная макетная плата для удобного обучения и прототипирования:
Купить
Набор проводов с удобными коннекторами:
Купить
Комплект светодиодов:
Купить
Комплект резисторов:
Купить
Кнопки:
Купить
Потенциометры:
Купить
Среда разработки Arduino IDE
Для написания, отладки и загрузки прошивок необходимо скачать и установить Arduino IDE. Это очень простая и удобная программа. На моем сайте я уже описывал процесс загрузки, установки и настройки среды разработки. Поэтому здесь я просто оставлю ссылки на последнюю версию программы и на статью с подробной инструкцией.
Версия
Windows
Mac OS X
Linux
1.8.2
Язык программирования Ардуино
Когда у вас есть на руках плата микроконтроллера и на компьютере установлена среда разработки, вы можете приступать к написанию своих первых скетчей (прошивок). Для этого необходимо ознакомиться с языком программирования.
Для программирования Arduino используется упрощенная версия языка C++ с предопределенными функциями. Как и в других Cи-подобных языках программирования есть ряд правил написания кода. Вот самые базовые из них:
Подробнее о типах данных, функциях, переменных, операторах и языковых конструкциях вы можете узнать на странице по программированию Arduino. Вам не нужно заучивать и запоминать всю эту информацию. Вы всегда можете зайти в справочник и посмотреть синтаксис той или иной функции.
Все прошивки для Arduino должны содержать минимум 2 функции. Это setup() и loop().
Функция setup
Функция setup() выполняется в самом начале и только 1 раз сразу после включения или перезагрузки вашего устройства. Обычно в этой функции декларируют режимы пинов, открывают необходимые протоколы связи, устанавливают соединения с дополнительными модулями и настраивают подключенные библиотеки. Если для вашей прошивки ничего подобного делать не нужно, то функция все равно должна быть объявлена. Вот стандартный пример функции setup():
В этом примере просто открывается последовательный порт для связи с компьютером и пины 9 и 13 назначаются входом и выходом. Ничего сложного. Но если вам что-либо не понятно, вы всегда можете задать вопрос в комментариях ниже.
Функция loop
Функция loop() выполняется после функции setup(). Loop в переводе с английского значит «петля». Это говорит о том что функция зациклена, то есть будет выполняться снова и снова. Например микроконтроллер ATmega328, который установлен в большинстве плат Arduino, будет выполнять функцию loop около 10 000 раз в секунду (если не используются задержки и сложные вычисления). Благодаря этому у нас есть большие возможности.
Макетная плата Breadbord
Вы можете создавать простые и сложные устройства. Для удобства я советую приобрести макетную плату (Breadbord) и соединительные провода. С их помощью вам не придется паять и перепаивать провода, модули, кнопки и датчики для разных проектов и отладки. С беспаечной макетной платой разработка становится более простой, удобной и быстрой. Как работать с макетной платой я рассказывал в этом уроке. Вот список беспаечных макетных плат:
Макетная плата на 800 точек с 2 шинами питания, платой подачи питания и проводами:
Купить
Большая макетная плата на 1600 точек с 4 шинами питания:
Купить
Макетная плата на 800 точек с 2 шинами питания:
Купить
Макетная плата на 400 точек с 2 шинами питания:
Купить
Макетная плата на 170 точек:
Купить
Соединительные провода 120 штук:
Купить
Первый проект на Arduino
Давайте соберем первое устройство на базе Ардуино. Мы просто подключим тактовую кнопку и светодиод к ардуинке. Схема проекта выглядит так:
Управление яркостью светодиода
Обратите внимание на дополнительные резисторы в схеме. Один из них ограничивает ток для светодиода, а второй притягивает контакт кнопки к земле. Как это работает и зачем это нужно я объяснял в этом уроке.
Для того что бы все работало, нам надо написать скетч. Давайте сделаем так, что бы светодиод загорался после нажатия на кнопку, а после следующего нажатия гас. Вот наш первый скетч:
В этом скетче я создал дополнительную функцию debounse для подавления дребезга контактов. О дребезге контактов есть целый урок на моем сайте. Обязательно ознакомьтесь с этим материалом.
ШИМ Arduino
Широтно-импульсная модуляция (ШИМ) — это процесс управления напряжением за счет скважности сигнала. То есть используя ШИМ мы можем плавно управлять нагрузкой. Например можно плавно изменять яркость светодиода, но это изменение яркости получается не за счет уменьшения напряжения, а за счет увеличения интервалов низкого сигнала. Принцип действия ШИМ показан на этой схеме:
Когда мы подаем ШИМ на светодиод, то он начинает быстро зажигаться и гаснуть. Человеческий глаз не способен увидеть это, так как частота слишком высока. Но при съемке на видео вы скорее всего увидите моменты когда светодиод не горит. Это случится при условии что частота кадров камеры не будет кратна частоте ШИМ.
В Arduino есть встроенный широтно-импульсный модулятор. Использовать ШИМ можно только на тех пинах, которые поддерживаются микроконтроллером. Например Arduino Uno и Nano имеют по 6 ШИМ выводов: это пины D3, D5, D6, D9, D10 и D11. В других платах пины могут отличаться. Вы можете найти описание интересующей вас платы в этом разделе.
Для использования ШИМ в Arduino есть функция analogWrite(). Она принимает в качестве аргументов номер пина и значение ШИМ от 0 до 255. 0 — это 0% заполнения высоким сигналом, а 255 это 100%. Давайте для примера напишем простой скетч. Сделаем так, что бы светодиод плавно загорался, ждал одну секунду и так же плавно угасал и так до бесконечности. Вот пример использования этой функции:
Аналоговые входы Arduino
Как мы уже знаем, цифровые пины могут быть как входом так и выходом и принимать/отдавать только 2 значения: HIGH и LOW. Аналоговые пины могут только принимать сигнал. И в отличии от цифровых входов аналоговые измеряют напряжение поступающего сигнала. В большинстве плат ардуино стоит 10 битный аналогово-цифровой преобразователь. Это значит что 0 считывается как 0 а 5 В считываются как значение 1023. То есть аналоговые входы измеряют, подаваемое на них напряжение, с точностью до 0,005 вольт. Благодаря этому мы можем подключать разнообразные датчики и резисторы (терморезисторы, фоторезисторы) и считывать аналоговый сигнал с них.
Для этих целей в Ардуино есть функция analogRead(). Для примера подключим фоторезистор к ардуино и напишем простейший скетч, в котором мы будем считывать показания и отправлять их в монитор порта. Вот так выглядит наше устройство:
Подключение фоторезистора к Ардуино
В схеме присутствует стягивающий резистор на 10 КОм. Он нужен для того что бы избежать наводок и помех. Теперь посмотрим на скетч:
Вот так из двух простейших элементов и четырех строк кода мы сделали датчик освещенности. На базе этого устройства мы можем сделать умный светильник или ночник. Очень простое и полезное устройство.
Вот мы и рассмотрели основы работы с Arduino. Теперь вы можете сделать простейшие проекты. Что бы продолжить обучение и освоить все тонкости, я советую прочитать книги по ардуино и пройти бесплатный обучающий курс. После этого вы сможете делать самые сложные проекты, которые только сможете придумать.
19 комментариев
дело в том, что легче написать новую прошивку, чем разбираться в прошивке, а для этого надо понимать, как работает ваше устройство! т.е. надо работать вместе программист, и пользователь! иначе никак! илли 2 способ- изучите программирование, и пишите сами что вам надо! поверьте- это не так сложно!
Хороший сайт. Спасибо.
Благодарен автору за полезное дело. Помогать учиться, это самое лучшее занятие для человека.
Arduino (Ардуино) — аппаратная вычислительная платформа, основными компонентами которой являются плата ввода-вывода и среда разработки. Arduino может использоваться как для создания автономных интерактивных объектов, так и подключаться к программному обеспечению, выполняемому на компьютере.
Преимущество плат Arduino перед аналогичными платформами — относительно невысокая цена и массовое распространение среди любителей и профессионалов робототехники и электротехники.
Мы собрали для вас полный список онлайн-курсов и уроков по Arduino. В основном они бесплатные, но есть и платные программы с преподавателями.
Udemy
В данном курсе Вы познакомитесь с программированием на языке C++ для микроконтроллеров Arduino.
Пройдя этот курс, вы не только будете знать основы программирования, но и сможете создать свой собственный проект.
После прохождения курса вы сможете самостоятельно писать логику ваших первых проектов. Если вы хотите писать программы и воплотить свои самые интересные проекты на Arduino, вам точно стоит записаться на этот курс.
BangBangEducation
Этот практический курс посвящен основам работы с контроллерами из семейства Arduino. Вы узнаете, как быстро и просто прототипировать, используя контроллер и датчики Arduino в любой доступной вам среде, и собирать интерактивные объекты для рекламных событий, умного дома или семейных праздников.
Широкий спектр датчиков и актуаторов позволит добавить интерактивности практически в любую систему, а основы взаимодействия и работы, изучаемые на курсе, позволят сделать это просто, используя системы визуального программирования.
Курс состоит из нескольких модулей. Первый — вводный, его необходимо пройти всем: на нем слушатели подготовят контроллер для дальнейшей работы.
Все последующие модули также рекомендуется пройти, но можно начать с той среды программирования, которая вам близка или уже знакома. Разбираемые среды программирования: TouchDesigner, Ableton (Max), Max/MSP, PureData и Processing.
Кому подойдет курс: всем, кто решил начать изучать Arduino, но пока не хочет программировать на C++.
Для обучения на базе плат расширения нам понадобятся детали/модули:
• Arduino UNO / Mega • соответствующий вашей плате кабель USB • Плата расширения* • Аналоговый модуль потенциометра* • Модуль кнопка* Опционально: • Сервопривод • Блок питания для сервопривода • Датчик уровня шума* • Инфракрасный дальномер Sharp (10−80 см)
AlexGyver
Сайт для любителей техники предоставляет бесплатные текстовые уроки — максимально подробные уроки по программированию Arduino с разбором всех тонкостей и особенностей языка.
Есть также бесплатные видеоуроки. Цикл охватывает все стандартные операторы и функции Ардуино и построен таким образом, что от выпуска к выпуску у зрителя идёт плавное формирование “базы”, каждый последующий урок (видео урок) содержит в себе информацию из предыдущих, то есть уроки усложняются и становятся комплексными.
Что узнает ребенок:
И это еще не все. 16 видеоуроков расскажут все нюансы о программировании на Arduino.
All-Arduino
Программирование микроконтроллеров Arduino осуществляется на языке программирования C++. Этот язык является низкоуровневым, поэтому считается сложным и имеет высокий порог вхождения. Но для программирования Arduino используется упрощенная версия этого языка программирования.
Этот сайт содержит уроки для обучения новичков. Здесь собранны уроки по Arduino для начинающих. Так же будут уроки и по более сложным аспектам программирования ардуино.
Почти все уроки содержат видео для наглядного получения информации, а также текстовую интерпретацию, ссылки на необходимые компоненты и архив с исходниками урока. Так вы сможете не только посмотреть и послушать урок, но и без труда повторить его для приобретения практических навыков.
После прохождения курса вы сможете реализовать проекты любой сложности. Курс по работе с arduino для новичков рассчитан на 8 часов.
EduRobots
Проект «Занимательная робототехника» представляет учебный курс «Arduino для начинающих». Серия представлена 10 уроками, а также дополнительным материалом. Уроки включают текстовые инструкции, фотографии и обучающие видео.
В каждом уроке вы найдете список необходимых компонентов, листинг программы и схему подключения. Изучив эти 10 базовых уроков, вы сможете приступить к более интересным моделям и сборке роботов на основе Arduino.
Курс ориентирован на новичков, чтобы к нему приступить, не нужны никакие дополнительные сведения из электротехники или робототехники.
Академия IT
Бесплатный и доступный онлайн-курс «Уроки Ардуино / Arduino». Пройдя данный курс, вы сделаете первый шаг к серьезному обучению и сможете чётко определиться с направлением ваших интересов.
На уроках вы познакомитесь с Ардуино:
На платформе Академии можно найти и другие курсы по программированию Ардуино, а также радиотехнике и электронике.
Arduino+
На сайте представлены текстовые и видеоуроки по Ардуино. Большая часть из них бесплатная. Подойдут даже совсем новичку, который первый раз слышит об Ардуино.
Автор подробно и довольно понятно рассказывает, что такое Ардуино, как его использовать и как программировать. Из уроков также ребенок или взрослый может узнать, как подключать и управлять датчиками, как подключить микроконтроллер к компьютеру.
Из следующего курса учащийся узнает, как программировать на Python, как выглядит программное обеспечение Ардуино, как использовать внешние компоненты и макетную плату и многое другое.
Arduino Master
Бесплатные онлайн уроки научат вас собирать роботов и управлять ими с помощью Ардуино. Для этого вам понадобится сама плата и программа для написания кода.
За время прохождения уроков вы научитесь:
«Робототехника Ардуино»
Уроки по Ардуино для начинающих — это развитие творческого и конструкторского мышления, вовлечение детей в технические кружки. Программа уроков Arduino разбита на модули по 16 занятий и рассчитана на детей и взрослых с нулевыми знаниями в электротехнике и программировании. По окончании каждого модуля у вас остается робот или «умное» устройство, полностью сделанное своими руками.
Что дают уроки для начинающих по Ардуино? Arduino UNO — это электронный конструктор, пользующийся огромной популярностью благодаря простоте программирования и возможностью создавать устройства, выполняющие разнообразные функции. Программирование производится на языке C++ или при помощи языка визуального программирования Scratch for Arduino.
ITrobo
Курс по Ардуино включает в себя:
Основы работы с Arduino: установка, структура программы, подключение светодиодов, проверка датчиков, создание сигнализации.
Мобильные роботы с Ардуино: motor shild, повороты, движение по линии, управление с телефона, перевороты.
Подключение датчиков и устройств: сервопривод, реле, радиомодуль, клавиатура, ЖК-дисплей, фоторезистор, датчики движения, влажности и света.
Уроки предоставляются бесплатно. Оформлены доступным текстом и иллюстрациями — уроки будут понятны и детям, и взрослым.
Центр при МГТУ им. Баумана
Платформа Arduino имеет открытую архитектуру и простой язык программирования. Она легко программируется через USB. Подключая к платформе разные датчики, вы можете получать информацию об окружающем мире (к примеру, температуру воздуха в разных частях города), отправлять данные на компьютер, а также управлять другими подключенными элементами.
Зная механизм работы устройств на Arduino, можно конструировать робототехнику и разную электронику. Изучение платформы помогает понять, по какому принципу работает «умный» дом.
Во время занятий вы получите базовые представления о программировании микроконтроллеров, робототехнике и электронике. Вы увидите, что представляют собой простейшие программы для микроконтроллеров и соберете рабочие схемы ЖК-дисплеев, температурных датчиков, систем светодиодов и многого другого. Лабораторные работы занимают 70% занятий – у вас будет много времени на увлекательные эксперименты и открытия.
Курс будет полезен:
eSchool
Это начальный курс по программированию микроконтроллеров Arduino. Рекомендуется к изучению в 6-8 классах. В качестве программной среды будет выступать Arduino IDE с установленным плагином ArduBlock.
Перед прохождением данного курса, настоятельно рекомендуется изучить курсы по программированию в Scratch, так как программирование с использованием визуальной оболочки ArduBlock очень схоже с программированием в среде Scratch.
Для самостоятельного изучения курса понадобится набор Arduino upgraded learning KIT.
Курс состоит из 13 базовых занятий. Внутри курса есть памятки по каждому из компонентов используемого набора Arduino и рекомендации по работе с ними. В конце курса приведены полезные и интересные проекты для самостоятельной реализации. Раздел самостоятельных проектов постоянно пополняется.
Coursera
Курс по Arduino состоит из серии практических задач про создание вещей, которые работают сами: изучают мир, принимают решения и действуют – двигаются, обмениваются данными друг с другом и с человеком, управляют другими устройствами.
Пройдя этот курс, вы сможете создавать устройства, которые считывают данные о внешнем мире с разнообразных датчиков, обрабатывают информацию, получают и отправляют данные на ПК, в Интернет, на мобильные устройства, управляют индикацией и движением.
Создание устройств будет включать проектирование, изучение компонентов, сборку схем, написание программ, диагностику. Попутно с созданием самих устройств вы сделаете визуализацию на ПК, создадите веб-страницу, которую будет демонстрировать одно из ваших устройств, а также разберетесь с устройством и работой FDM 3D-принтера.
Курс не требует специальных знаний у слушателей, доступен даже ученикам старших классов средней школы. Плюсом будут навыки программирования и владение английским языком на уровне чтения технической документации, однако обязательным это не является.
Весь курс посвящен практике и самым лучшим решением для вас будет раздобыть электронику, повторять показанные примеры и экспериментировать самостоятельно.
Coursehunter
Курс ардуино (Arduino) — вы узнаете много информации об Arduino, как программировать микроконтроллер и использовать различные датчики для создания большого количества проектов и изучения основ информации о плате Arduino.
После обучения в этом курсе вы сможете работать с ардуино и создавать проекты, которые вам нужны. Множество датчиков, которые вы изучите здесь, позволят вам улучшить свои навыки.
Codim
Arduino позволяет детям и взрослым выйти за рамки виртуального компьютерного мира в физический и взаимодействовать с ним. Устройства на базе Arduino могут получать информацию об окружающей среде посредством различных датчиков, а также могут управлять различными устройствами.