10 интересных вещей, которые можно сделать на Arduino
Красивые, полезные и странные — всё как мы любим.
Если у вас есть тяга к технологиям (или ребёнок с такой тягой), рассмотрите Arduino. Эта штука озадачит вас и ребёнка на много часов, а на выходе получатся удивительные проекты.
Что за Arduino
Arduino — это программируемый микроконтроллер. То есть это плата, на которую можно записать вашу программу, и эта плата сможет управлять другими штуками: например, зажечь лампочку, издать звук, включить электроприбор, измерить температуру, отправить СМС.
На самом базовом уровне Arduino просто отправляет и считывает электрические импульсы. Например, можно подключить к нему термометр, и Arduino сможет считать температуру в комнате. А потом, в зависимости от программы, отправить сигнал на устройство, которое включит вентилятор.
Или можно подключить к Arduino датчик углекислого газа. Arduino можно научить считывать показания датчика каждые пять минут и, когда уровень углекислого газа превышает норму, запищать, замигать лампочкой или с помощью серии моторчиков открыть окно.
К Arduino есть много плат расширения и датчиков. Сферы применения платы почти безграничны: автоматизация, системы безопасности, умный дом, музыка, робототехника и многое другое. Вот что можно делать на этой умной итальянской плате и на её российских и зарубежных клонах.
1. Робот-бармен с Bluetooth-управлением
Сложность: 4/5.
Время: 5/5.

Незаменимое устройство для любой вечеринки: работает от восьми батареек, готовит много коктейлей и управляется без проводов. В основе механического бармена — плата Arduino, приводы для позиционирования шейкера и подачи напитков, датчики положений.
Главная сложность при изготовлении — инженерная. Нужно точно прикрутить все детали и соединить их между собой, чтобы ёмкость оказывалась точно под нужными бутылками.
2. Светящийся куб на 512 светодиодов
Сложность: 3/5.
Время: 3/5.

Красивая штука, которая может светиться в такт музыке как трёхмерный эквалайзер и показывать 3D-анимацию. А ещё это может работать как необычный ночник.
Для сборки понадобится деревянное шасси с отверстиями, чтобы каждый ярус был таким же по размеру и форме, что и остальные. Число светодиодов в каждой грани выбрано не случайно: 8 ламп = 8-битная логика, самая простая в программировании и управлении через контроллер.
3. Взломщик кодовых замков
Сложность: 5/5.
Время: 4/5.

Этот проект разработал хакер Сэми Камкар, и мы приводим его только в демонстрационных целях. Для взлома, кроме платы Arduino, автор взял серво- и шаговый двигатели для перебора комбинаций и соединил всё на самодельном шасси из алюминия. В основе алгоритма — простой перебор всех комбинаций, но робот это делает быстрее человека.
4. Nod Bang — киваем головой и делаем бит
Сложность: 2/5.
Время: 3/5.

Идея в том, чтобы не просто кивать в такт музыке, а кивками самому генерировать звук. Эндрю Ли сделал специальное устройство, которое следит за положением головы и в момент наклона воспроизводит нужный звук.
В наушники он встроил акселерометр, кнопки отвечают за выбор звука, а Arduino — за воспроизведение звука на компьютере через MIDI-интерфейс. Чтобы всё выглядело эффектнее, у кнопок есть подсветка, и они тоже делают бит.
5. Поющее растение
Сложность: 2/5.
Время: 2/5.

По сути это терменвокс, который сделали в виде растения. Все остальные принципы работы остались теми же: звук возникает при движении рук, и разные движения генерируют разную мелодию.
Плата регистрирует изменение амплитуды сигнала, для чего автор использует самодельный сенсорный детектор для анализа прикосновений к цветку. Кроме этого понадобилась плата расширения Gameduino и сам цветок.
6. Замок, который открывается на секретный стук
Сложность: 3/5.
Время: 2/5.

Интересная вещь для тех, кто хочет поиграть в шпионов или пускать в комнату только своих друзей. Замок распознаёт стук по двери и сравнивает его с базовым звучанием, которое установил владелец. Если совпадает — приводы отодвигают замок и дверь открывается, если нет — ничего не происходит, можно постучать заново.
Чтобы установить новый стук на открытие, нужно зажать кнопку на ручке и постучать по двери новым способом. Пьезосенсор распознаёт вибрации и записывает их в память платы.
7. Горшок для цветов с автополивом
Сложность: 4/5.
Время: 3/5.

Полезный горшок для тех, кто забывает полить цветы перед отъездом или просто не знает, как часто надо их поливать. Вся электроника, насосы и ёмкость для воды находятся внутри горшка. Для каждого растения можно запрограммировать свой режим полива в каждом горшке.
Основные характеристики чудо-горшка:
8. Драм-машина
Сложность: 1/5.
Время: 2/5.

Простая драм-машина на Arduino. Проект интересен тем, что это не обычный перебор записанных семплов, а настоящая генерация звука с помощью встроенного железа. Ещё здесь есть анализатор спектра звука: через видеовыход можно посмотреть на диаграммы и частотные характеристики.
Математическая основа этого устройства — разложение в ряд Фурье, которое решается подключением стандартной библиотеки.
9. Шагающий робот
Сложность: 2/5.
Время: 1/5.

Простой в изготовлении четырёхногий робот, который шагает и самостоятельно преодолевает препятствия в сантиметр высотой.
Чтобы его сделать, вам понадобятся сервомоторы для ног, немного проволоки и любой пластик, из которого делается шасси. Для питания — аккумулятор любой модели, который крепится на спине робота.
10. Робот-пылесос
Сложность: 4/5.
Время: 5/5.

Дмитрий Иванов из Сочи собрал настоящий робот-пылесос, который делает всё то же самое, что и промышленные устройства, только с возможностью тонкой настройки под себя и свою квартиру.
Основные детали — плата Arduino, 6 инфракрасных датчиков, турбина с двигателем и щётками и аккумулятор. Ещё у робота есть датчики столкновения, которые помогают объезжать препятствия, и контроллер аккумулятора, который следит за уровнем батарей и предупреждает о том, что пылесос надо зарядить.
Аrduino для начинающих
В этой статье я решал собрать полное пошаговое руководство для начинающих Arduino. Мы разберем что такое ардуино, что нужно для начала изучения, где скачать и как установить и настроить среду программирования, как устроен и как пользоваться языком программирования и многое другое, что необходимо для создания полноценных сложных устройств на базе семейства этих микроконтроллеров.
Тут я постараюсь дать сжатый минимум для того, что бы вы понимали принципы работы с Arduino. Для более полного погружения в мир программируемых микроконтроллеров обратите внимание на другие разделы и статьи этого сайта. Я буду оставлять ссылки на другие материалы этого сайта для более подробного изучения некоторых аспектов.
Что такое Arduino и для чего оно нужно?
Arduino — это электронный конструктор, который позволяет любому человеку создавать разнообразные электро-механические устройства. Ардуино состоит из программной и аппаратной части. Программная часть включает в себя среду разработки (программа для написания и отладки прошивок), множество готовых и удобных библиотек, упрощенный язык программирования. Аппаратная часть включает в себя большую линейку микроконтроллеров и готовых модулей для них. Благодаря этому, работать с Arduino очень просто!
С помощью ардуино можно обучаться программированию, электротехнике и механике. Но это не просто обучающий конструктор. На его основе вы сможете сделать действительно полезные устройства.
Начиная с простых мигалок, метеостанций, систем автоматизации и заканчивая системой умного дома, ЧПУ станками и беспилотными летательными аппаратами. Возможности не ограничиваются даже вашей фантазией, потому что есть огромное количество инструкций и идей для реализации.

Стартовый набор Arduino
Для того что бы начать изучать Arduino необходимо обзавестись самой платой микроконтроллера и дополнительными деталями. Лучше всего приобрести стартовый набор Ардуино, но можно и самостоятельно подобрать все необходимое. Я советую выбрать набор, потому что это проще и зачастую дешевле. Вот ссылки на лучшие наборы и на отдельные детали, которые обязательно пригодятся вам для изучения:
| Базовый набор ардуино для начинающих: | Купить |
| Большой набор для обучения и первых проектов: | Купить |
| Набор дополнительных датчиков и модулей: | Купить |
| Ардуино Уно самая базовая и удобная модель из линейки: | Купить |
| Беспаечная макетная плата для удобного обучения и прототипирования: | Купить |
| Набор проводов с удобными коннекторами: | Купить |
| Комплект светодиодов: | Купить |
| Комплект резисторов: | Купить |
| Кнопки: | Купить |
| Потенциометры: | Купить |
Среда разработки Arduino IDE
Для написания, отладки и загрузки прошивок необходимо скачать и установить Arduino IDE. Это очень простая и удобная программа. На моем сайте я уже описывал процесс загрузки, установки и настройки среды разработки. Поэтому здесь я просто оставлю ссылки на последнюю версию программы и на статью с подробной инструкцией.
| Версия | Windows | Mac OS X | Linux | |||||||||
| 1.8.2 |
| Макетная плата на 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 для начинающих. Часть 1
Предисловие
Доброго времени суток, Хабр. Запускаю цикл статей, которые помогут Вам в знакомстве с 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.ru
Проекты на Arduino
Электромеханическая бит-машина на Arduino
Что такое цифровая драм-машина или иначе бит-машина слышали наверное все. Совсем другое дело электромеханическая драм-машина, созданая норвежским композитором Koka Nikoladze. В ней звук формируется за счет механического воздействия. Машинка работает под управлением Arduino, который позволяет запрограммировать мелодию для исполнения.
Программирование Arduino-совместимой платы на Javascript
Вы слышали про Arduino и вам хочется поскорее разобраться с ней, чтобы сделать свое устройство, робота или что там еще придумали. Помигать светодиодом вы сможете уже в первый вечер, но на создание более сложного гаджета уйдет куда больше времени. Впереди долгие недели и даже месяцы изучения программирования на C, поиск совместимых библиотек и модулей, костылей и превозмогания трудностей. Как ускорить процесс? Начните с Arduino совместимой платы, которую можно программировать на JavaScript.
Компания Амперка создала Arduino совместимую плату Iskra JS, которая программируется на JavaScript прямо из-под браузера. Многие находят, что JavaScript куда более дружелюбен к новичкам нежели хардкорный C. Объектно-ориентированная природа JavaScript отлично ложится в концепцию создания не только сайтов, но и настоящих гаджетов.
Собираем кубик Рубика за 0.887с
Система Sub1 установила новый рекорд по скоростной сброрке кубика Рубика. Новый рекорд 0.887с.
Что из себя представляет система Sub1? Кубик удерживается 6-тью высокоскоростными шаговыми моторами, по одному на каждую сторону. По команде с двух камер убираются шторки и они делают по 3 снимка. Данные передаются на компьютер, где рассчитывается решение с помощью двухфазного алгоритма Коцембы. После чего отдаются команды на Arduino-совместимый микроконтроллер, управлающий моторами. К сожалению, других подробностей не известно.
Контроль влажности в подвале

OLED дисплей + ChipKit MAX32
Автор: Юрис Гризанс, 2014
Возникла необходимость в небольшом жидкокристаллическом дисплее. В одном Интернет магазине нашел просто изумительный вариант[1]. Во-первых, продукт в виде модуля со штыревым разъемом, что облегчает работу. Во-вторых, всего за 5 долларов. В результате купил сразу три штуки. Однако, подключив устройство, убедился в тезисе, что наличие официального описания не гарантирует приятной и легкой работы. В процессе освоения всплыли различные мелкие нюансы, без учета которых положительного результата не получить. Вот об этом я в статье и расскажу.
О производстве Arduino

Саму статью на русском можно найти здесь http://habrahabr.ru/post/149855/.
На фотографии готовые печатные платы для Leonardo
Arduino в руках художников. Простая и очень красивая инсталляция на базе Arduino
Вот такую штуку ребята собрали для выставки «ПСП: Притащи свой проектор», которую сами же организовали на минувших выходных в Москве на Красном Октябре. Сама сборка очень простая, Ардуино + MotorShield. Код можно посмотреть внизу
Оправка смс через Siemens S45 c помощью Arduino, а также Zyxel Keenetic 4G, Arduino и датчика температуры ds18b20
А
В своем примере Rimidalw отправляет команду через Serial-monitor на Arduino, который в свою очередь осуществляет отправку SMS через телефон.
Робот, балансирующий на шаре
Двухколесный балансирующий робот на Arduino
Шон Крэмтон (Shaun Crampton) продемострировал свой прототип двухколлесного балансирующего робота ArduRoller.
Анализатор спектра звука на Arduino
Интересный проект представил Paul Bishop — Arduino как анализатор звукового спектра с выводом спектрограммы на телевизор. На самом деле не телевизор, а экран DVD-плеера, но способ вывода абсолютно тот же. Для вывода была использована Arduino библиотека TVout, которая позволяет выводить сигнал на телевизор через RCA коннектор в формате PAL или NTSC. Картинка черно-белая и идет с разрешением 128х96. При таком разрешение на экран можно вывести 12 строк по 16 символов при размере шрифта 8х8.
Paul использовал контроллер Adafruit Boarduino, но подойдет любой 5 вольтовый, кроме самых старых моделей Arduino на Atmel ATmega168, так как у них просто недостаточно памяти.
Робот, управляемый по Wi-Fi, на базе роутера и Arduino

Оригами лампа с емкостным сенсором
Роботизированная рука под управлением Arduino
Arduino, самодельная перчатка с 5-тью зашитыми датчиками изгиба, 5 сервоприводов HITEC HS-81 и механическая рука. Как все это работает можно посмотреть на видео. Arduino cчитывает данные с датчиков изгиба и управляет сервомоторчиками так, чтобы механическая рука повторяла движения кисти человека. Кстати, в первом видео автор использует готовый набор механики руки, который можно купить на ebay, правда без электронных компонентов и приводов. В другом проекте автор сделал подобную руку из подручных материалов.
Arduino и RGB светодиодная матрица 8х8

Более подробно об использовании 74HC59 с Arduino можно почитать в инструкции Использование сдвигового регистра 74HC595 для увеличения количества выходов.
Один регистр дает нам 8 выходов, так как у нашей матрицы 32 входа, в проекте использована техника каскадирования сдвиговых регистров. Нам понадобится 4 регистра 74HC59, при этом количество подключений к Arduino не изменится и будут задействованы 3 выхода на Arduino.
Пишем в воздухе светодиодами

В конструкции, о которой пойдет речь, автором был использован акселерометр на монтажной плате с планкой светодиодов и Arduino Diecimila для управления. Питание осуществляется по USB, но можно подключить и автономное.
Остановить мгновение. Фототриггер на Arduino
Cтрого говоря, Arduino будет управлять не затвором камеры, а фотовспышкой. К сожалению, задержка реакции камеры на сигнал — в районе 20 миллисекунд, что для человеческого глаза не заметно, но все же дольше, чем можно себе позволить при съемке лопнувшего шарика. Поэтому съемка производится в темной комнате с выдержкой 10 секунд, а вот вспышка срабатывает именно в нужный момент. Так как в комнате практически нет освещения, то всё экспонирование фотографии произойдет именно в момент работы вспышки (около 1 миллисекунды).
Управление фотовспышкой с помощью Arduino контроллера




