Новогоднее волшебство или магическая коробочка на arduino

Новогоднее волшебство или магическая коробочка на Arduino

Волшебная коробочка

Скоро Новый Год – время магии и волшебства. Почему бы не сделать волшебную коробочку, чтобы порадовать семью и друзей? Заодно разберемся с еще одним видом беспроводной связи – ИК, а так же научимся работать со звуком на Arduino с помощью MP3 плеера.

Давайте сделаем коробку-загадку. Для того чтобы разгадать секрет, нужно будет угадать шифр, который предварительно записывается в устройство с помощью пультов. Когда шифр будет разгадан, загорится гирлянда и заиграет музыка.

Нам понадобятся

Arduino UNO

Будет мозгом нашего устройства.

Troyka shield

Его надеваем на UNO. К нему проще простого подключить все датчики и MP3.

DF MP3 плеер

Этот небольшой плеер и сам способен играть, но мы его подключим к Arduino и команды о запуске посылать будем с контроллера. К нему нужно подключить динамик.

Динамик

Берем динамик в соответствии с нашими потребностями. К DF можно подключить динамик мощностью до 3 Ватт.

ИК приемник

Немного рассыпухи

  • Резистор 1КОм
  • Три кнопки
  • Соединительные провода “МАМА-ПАПА”
  • Соединительные провода “ПАПА-ПАПА”
  • Макетная плата
  • Пять светодиодов

MP3

Начнем, пожалуй, с плеера. Для запуска нам нужна карта micro SD и динамик. На micro SD запишем звуки. Записывать надо хитро – в корневой директории создать папку MP3, а в нее закидывать файлы с названием 0001….mp3, 0002….mp3.

Теперь подключаем плеер по этой схеме. Распиновка плеера есть ниже.

Для первого подключения достаточно использовать контакты VCC, RX, TX, SPK_1, GND и SPK_2.

  • SPK – к ним подключается динамик
  • VCC и GND – питание
  • RX и TX – обмен данными с Arduino

Я использовал еще два контакта – IO_1 и IO_2. К этим контактам подключаются кнопки. Короткое нажатие – следующая или предыдущая композиция, длинное – прибавить/убавить громкость.

Теперь нужно скачать библиотеку. Скачать. Распаковываем архив в папку с библиотеками и запускаем этот скетч.

Этот плеер можно использовать и без Arduino. Для управления есть контакты, которые мы не использовали. Мы пока не будем туда лезть. Полную документацию можно найти тут. Идем дальше.

ИК

ИК (инфракрасный канал) связь – это беспроводная связь, которую мы применяем для передачи данных в прямой видимости и на небольшой(5 – 10 Мбит/с) скорости. Переключая каналы телевизора, мы пользуемся этой самой ИК связью. Кстати, многие путают Мбит и МБ. Мбит – это Мегабиты, а МБ — Мегабайты. 1 МБ = 8 Мбит

Связь происходит за счет инфракрасного передатчика и приемника. Передатчиком является светодиод, который излучает свет в инфракрасном диапазоне. Наш глаз не может увидеть такой свет, а вот ИК приемник – запросто.

Камера тоже может видеть ИК диапазон. Если включить камеру, навести ее на светодиод пульта от телевизора и ткнуть кнопку, то можно увидеть, как светодиод мигнет. Этот способ так же поможет узнать самую частую причину того, что телевизор не переключает каналы – сели батарейки.

Вернемся к Arduino. Есть классная библиотека. Называется IR Remote. Скачать ее можно тут. После установки библиотеки запускаем этот скетч.

При выводе данных в Serial мы задали дополнительный параметр – HEX. Он говорит о том, что данные должны быть выведены в шестнадцатеричной системе счисления. Так же можно выводить в десятичной DEC, восьмеричной OCT и двоичной BIN.

Теперь можно побегать по дому и разыскать всякие пульты, научиться считывать их показания и применять в различных местах. Роботом управлять, например. А можно сделать универсальный пульт, который при входе в дом включает вашу любимую музыку или кондиционер.

Сборка устройства

Теории пока хватит. Пришло время практики. Внимание на схему.

Крайняя левая кнопка отвечает за режим записи. После нажатия на нее раздастся сигнал, который сообщит о начале записи. Средняя кнопка – за убавление звука, правая – за прибавление.

Я сделал корпус, чтобы коробочка стала коробочкой.

Светодиоды и ИК приемник выведены на лицевую сторону коробки. Для пущей праздничности можно нарисовать снежинки, снеговика и елочку. Ну и обмотать мишурой, конечно.

Динамик, светодиоды и ИК приемник прикрепляем с помощью термоклея.

Стоит позаботиться о питании. Компьютера с USB рядом может не оказаться. Первой идеей была установка “Кроны”, но напряжение проседало, и из динамика раздавался треск. Тогда я сделал такую конструкцию. 4 аккумуляторных батареи, DC-DC преобразователь и 2.1 мм разъем. Преобразователь нужен чтобы обеспечить Arduino нужным напряжением.

Можно еще подсоединить большую гирлянду, но так как работа с высоким электричеством требует кристального понимания и трезвого рассудка, а Новый год не очень подходит для этого, то я решил отказаться. Кто все же хочет добавить размаха – я закомментировал части кода, отвечающие за включение и выключение реле.

Код

Код можно найти ниже, в прикрепленных файлах.

Видео

На видео показан процесс записи и расшифровки. После расшифровки замигали светодиоды и, заиграла мелодия, но ее, почему то не слышно. Стоило прибавить звук. Благо для этого предусмотрены кнопки.

Итог

Сегодня мы разобрались с еще одним видом беспроводной связи, послушали музыку и помигали светодиодами. А объединив все это, можно создать реальную магию – магию микроконтроллеров.

С Новым Годом, Паяльник и его обитатели! Пусть сбываются все мечты, а новый год приносит только радость! До встречи в 2017!

Новогоднее настроение из Arduino и палок

Вместо пролога

2019 год подходит к концу, не за горами новогодняя ночь и перевернутый лист календаря. На просторах интернета, мне попалась одна фотография, а дальше как в тумане, решил повторить.

Этап 1 аля проектирование

Чертеж

Долго, дня три, искал их чертеж данного изделия, так как никогда не резал фанеру, обратился на форумы. Читал, вникал, изучал. В итоге на задворках был найден файл, который был передан владельцу станка ЧПУ с лазерным прицелом для выжигания.

Получив первые образцы нарезанной фанеры и поняв, что напильник это наше все, принял решение, все-таки подправить эскиз. Подогнав все размеры, расположение отверстий и прочего я получил вторую версию своих нарезанных фанерок. Все подошло, все крепко, идем дальше.

Электронные мозги

Так как обратная часть засветки в моей задумке должна быть светодиодная и чувство мании величия заставило меня управлять каждым диодом, то мой выбор пал на ws2812b. А чем управлять этими диодами? Правильно! Arduino-й. Благо, великий и могучий AlexGyver все подробно объясняет и еще картинки выкладывает.

Собрав знания на листочек, нарисовав схему и составив список запчастей мой путь был направлен во «ВсёКомпоненты.ру» за всеми компонентами для данного изделия.

Схема

Как я говорил выше, схема не моя, она скопирована и под редактирована в моих интересах, но принципиально верная и упрощенная:

Сборка

И вот принеся все детали моего пазла домой и как положено освободив кухонный стол, налив кружку горячего чая, в то время когда за окном началась сибирская вьюга я начал собирать.

Читайте также  Подключаем ps/2 клавиатуру к pic

Медленно вскрывая упаковку ленты с припаянными разноцветными лампочками.

Я начал примерять, отмерять и нарезать куски ленты.

Дальше в ход пошел термопистолет, стреляющий термоклеем.

Спустя несколько минут в ход пошел паяльник и провода

Шло время и началась сборка конструкции. Первый пошел Олень

Потом другая и третья.

А после этого настал этап укладки проводов

Спустя некоторое время, и несколько чашек чая, конструкция была собрана.

Подключив USB кабель к ПК, залив скетч я понял, вот и пришло новогоднее настроение!

И как результат смотрится на своем месте:

м

Вместо эпилога

Делать руками, это всегда прикольно интересно и затягивающие. С наступающим, да прибудет с вами новогоднее настроение.

Электронный «Магический» бильярдный шар

Приветствую всех на сайте «В гостях у Самоделкина». Я думаю все Вы видели в зарубежных фильмах, а возможно, даже имели лично, такую игрушку как «Магический шар». Это довольно интересная по конструкции игрушка в виде черного бильярдного шара номер 8, внутри которого в темной жидкости определенной плотности плавает сложной формы геометрическая фигура с 20-ю гранями — икосаэдр. На каждой грани этой фигуры имеется какой-либо ответ. В этой статье предлагаю Вам рассмотреть, как сделать подобную игрушку на Arduino. Она основана на реальном «магическом шаре», после встряски шара на экран выводиться случайный ответ, которые Вы можете запрограммировать сами, а помимо того шар играет мистическую музыку и воспроизводит ответ голосом, из заранее записанных аудио файлов. Так как автор проекта иностранец — то текстовые сообщения и аудифайлы конечно же на английском языке, однако при желании Вы без особого труда сможете переделать всё на русский или свой язык, текст прописывается в коде, а голосовые файлы Вы можете записать сами использую микрофон или используя генератор голоса, коих в интернете сейчас вагон и маленькая тележка. И так, давайте посмотрим, как это сделать.

ЧАСТЬ 1 — Что нам нужно

Список деталей довольно прост и не имеет сложно доступных, в наши дни, компонентов. Всем будет управлять Arduino. Чтобы определить угол поворота и узнать, когда шар встряхивают, схема использует гироскопический модуль MPU6050 совмещенный с акселерометром (датчиком ускорения). Для вывода текста нам понадобится OLED-дисплей, а для воспроизведения звуков будем использовать модуль DFplayer с SD-картой и небольшим динамиком. Для питания потребуется аккумулятор 18650 (или другой) и модуль контроля заряда/разряда TP4056, а для получения 5В потребуется небольшой повышающий DC/DC преобразователь MT3608. Нам также понадобится клей и небольшие провода.

Необходимое:

1 х 3D файлы для печати (архив в конце статьи)
1 х Arduino NANO
1 х OLED дисплей
1 х Модуль акселерометра и гироскопа MPU6050
1 х Модуль MP3 плеера DFplayer
1 х Карта памяти microSD любая старая, хватит и 256 МБ
1 х Динамик 6 Ом
1 х Зарядный/защитный модуль TP4056
1 х Переключатель
1 х Повышающий DC/DC преобразователь MT3608
1 х Аккумулятор 18650
Провода соединительные

ЧАСТЬ 2 — Схема

ЧАСТЬ 3 — Сборка

ЧАСТЬ 4 — Код

Код довольно прост. Как я уже говорил — выводимые ответы можно заменить на русские. Но тут есть один нюанс. Убедитесь, что дисплей который Вы купили поддерживает кириллицу. Если это так — проблем не будет, просто замените фразы в скобках на желаемые на русском языке. Если дисплей кириллицу не поддерживает — это хуже, но не значит, что невозможно решить эту проблему. В таком случае символы можно выводить попиксельно, то есть прописать матрицу для каждого символа отдельно. Это займет больше места в памяти и значительно увеличит размер кода, но к счастью вручную прописывать каждый пиксель не нужно, в интернете есть готовые калькуляторы, в который достаточно ввести желаемый символ или слово, на что он выдаст ответ в виде готовой матрицы для этого символа. Достаточно скопировать её и вставить на место нужного ответа. Голосовые фразы можно записать при помощи генератора голоса, как уже писалось в начале статьи. Программ для этого в интернете тоже большое множество. Ну или есть третий вариант — выучить английский

Видео работы можно посмотреть тут:

Ну а на этом всё, и всем удачи в творчестве!

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.

Читайте также  Начинающим программистам микроконтроллеров pic

Время: 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 инфракрасных датчиков, турбина с двигателем и щётками и аккумулятор. Ещё у робота есть датчики столкновения, которые помогают объезжать препятствия, и контроллер аккумулятора, который следит за уровнем батарей и предупреждает о том, что пылесос надо зарядить.

Arduino

Умная новогодняя гирлянда

Подготовка

Когда наскучили китайские однотипные гирлянды — почему бы не сделать свою? Она будет ярче светить и иметь ничем не ограниченное количество режимов работы. Ну кроме вашего воображение и размера памяти платы Arduino 🙂

Вот что нам понадобится для ее изготовления (не считая компьютера с IDE и usb-кабеля):

  • Arduino Nano: 123
  • 3D-принтер: 1, 23
  • адресная RGB-лента WS2812B: 123
  • Блок питания на 5 вольт (3А): 123
  • 3 потенциометра: 123
  • кнопка: 123
  • выключатель: 123
  • резистор на 220 Ом: 123
  • провода и паяльник думаю в вас уже, если нет — это можно найти в каталоге

Так как корпус будет небольшой, Arduino Nano плату следует взять без распаянных пинов на ней. К тем, которые мы будем использовать, мы припаяем провода напрямую.

Если 3D-принтера у вас нет — подойдет любой корпус размером от 10х10см 3см толщиной. Если принтер есть — вот 3D-модель корпуса. Но я на всякий случай приложил ссылку на очень неплохой 3D-принтер — вдруг вы именно сейчас выбираете, какой купить. Советую купить именно такой — он не требует сборки и имеет закрытый корпус, что позволяет без проблем печатать не только PLA, но и ABS пластиком.

Я спроектировал корпус так, чтобы он не требовал никаких специальных креплений и винтов: крышка задвигается ио направляющим и имеет отверстия для крепления — можно прикрепить шурупами к стене или хомутом — куда будет удобно. Корпус имеет упор для Arduino — плата встает в распор и не требует крепления.

Потенциометры подойдут любые, я взял простые 3х-контактные. Кнопка обычная, чуть больше стандартной. Выключатель нужен для того, чтобы обесточить плату при ее перепрошивки, при использовании он не требуется. Если вы не планируете дорабатывать код, то можно обойтись и без него.

Лента RGB подойдет не любая, а только адресная. Именно она позволит нам управлять каждым светодиодом по отдельности, зажигая его любым из 16 миллионов цветов. Код проекта рассчитан на ленту WS2812B на 50 светодиодов. Такие ленты могут иметь разную плотность (разное расстояние между светодиодами), имеют три контакта — два для питания и один управляющий, а также их можно резать на любое количество частей, или, наоборот, спаивать.

Мощность блока питания зависит от количества светодиодов ленты, напряжение — 5 вольт. На каждые 50 светодиодов нужно 3 ампера. Так что для 150-ти светодиодов вам понадобится уже 9-10 амперный блок питания.

Техническая часть

Паяем все детали по следующей схеме:

Батарейный блок обозначает подключение блока питания. В итоге должно получится примерно вот так:

Прошивка

Скачиваем код с сайта проекта на github: https://github.com/arduinotech/new_year_rgb. Если вы используете PlatformIO IDE — вам потребуется оба файла: platformio.ini и src/main.ino, а в platformio.ini нужно будет заменить usb-порт на тот, к которому у вас подключена плата. Если же для прошивки будет использоваться Arduino IDE, тогда достаточно будет скопировать код из файла src/main.ino и установить библиотеку FastLED (очень рекомендую перейти на PlatformIO или хотя бы попробовать).

Сам код довольно простой, реализовано несколько режимов работы гирлянды, переключаться между режимами кнопкой, подключенной к пину BUTTON_PIN . Ну и при необходимости нужно заменить кол-во светодиодов в ленте, если у вас их не 50 — это LED_COUNT . LED_PIN — пин, к которому подключен управляющий контакт ленты, а ENCODER_1_PIN , ENCODER_2_PIN и ENCODER_3_PIN — пины подключения потенциометров.

На данный момент реализовано 5 простых эффектов в качестве примера. Я специально не стал реализовывать больше, чтобы вы использовали код в качестве примера и реализовали сами то, что вам больше понравится.

Читайте также  Автомат, включающий нагрузку по свистку на pic

Доработки и идеи

Полученный девайс можно намотать на елку, повесить на стену или куда-то еще, при наличии мощного блока питания можно довольно неплохо осветить небольшое помещения, нарастив длину ленты. А можно, напротив, уменьшить длину ленты до 5-10 диодов, для питания которых вполне хватит батарейного блока, и собрать светящуюся елочную игрушку.

Довольно интересно, создавая новые варианты мерцания ленты, использовать потенциометры для изменения скорости мерцания, яркости и цвета. При желании можно даже придумать и реализовать простенькие игры. В общем, я надеюсь, статья будет кому-то полезна.

Говорящая Arduino шапка Деда Мороза

Общие сведения:

В этом уроке мы создадим шуточное устройство, которое можно использовать как украшение новогоднего стола, а именно говорящую Arduino-шапку Деда Мороза, реагирующую на движение в зоне видимости датчика расстояния и читающую стихи (но вы можете заставить её делать практически всё, что угодно).

Видео:

Нам понадобится:

  • 1х Шапка Деда Мороза;
  • 1х Arduino / Piranha UNO;
  • 1х Battery Shield;
  • 1х Trema Shield;
  • 2х Trema-модуль Адресный светодиод NeoPixel;
  • 1х датчика расстояния HC-SR04;
  • 1х MP3-плеер;
  • 1х Карта памяти MicroSD;
  • 1х Динамик;
  • 1х Сервопривод;
  • 2х нейлоновые стойки;
  • 1х ПВХ-конструктор 1;
  • 1х ПВХ-конструктор 2;
  • 1х ПВХ-конструктор 3;
  • 1х Крепёж;
  • 14х Провода типа «мама-мама»;

Для реализации проекта нам необходимо установить библиотеки:

  • DFPlayer Mini mp3 Arduino Library V1.3 — для работы с плеером;
  • iarduino_HC_SR04_int — для работы с ультразвуковыми датчиками расстояния;
  • iarduino_NeoPixel — для работы с адресными светодиодами NeoPixel;
  • Servo — входит в стандартный набор библиотек Arduino IDE и не требует дополнительной установки;

О том, как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki — Установка библиотек в Arduino IDE.

Описание работы устройства:

После подачи питания говорящая Arduino-шапка готова к работе.

Для того, чтобы включить анимацию, достаточно поднести руку к датчику на указанное расстояние.

Схема сборки:

Arduino / Piranha UNO:

Batery Shield:

Во время установки Battery Shield должен быть в выключенном состоянии!

Trema Shield:

MP3-плеер:

Так как выводы 0 и 1 зарезервированы под RX и TX, перед загрузкой скетча необходимо отключить плеер от платы, а после загрузки и перед использованием подключить обратно.

Датчик расстояния

Сервопривод

Адресные светодиоды:

Trema-модули NeoPixel соединены друг c другом, а первый модуль можно подключить к любому выводу Arduino (в скетче используется вывод D4 ). Чем больше модулей в цепи, тем больше тока она потребляет, поэтому в схеме используется стабилизированный источник питания Battery Shield на 5В постоянного тока.

ПВХ-конструктор

Так как проект не предполагает использования готовых корпусов, для изготовления всех необходимых элементов корпуса воспользуемся готовыми пластинами №1, №2 и №3 из которых, используя любой режущий инструмент, можно вырезать детали необходимого размера. Более подробно о том, как это сделать, вы можете увидеть в видео выше.

В данном проекте мы сделали следующие детали (размер одной «пустой» клетки 5х5мм, размеры приведены по количеству «сквозных» клеток):

  • 1х пластина для основания 12х13;
  • 1х пластина для крепления Piranha Uno 12х9;
  • 4х опоры 5х3;
  • 2х пластина для крепления сервопривода 11х4;
  • 1х узкая пластина для крепления верхней «губы» 8х4;
  • 1х широкая пластина для имитации верхней «губы» 8х7;
  • 1х широкая пластина для имитации нижней «губы» 7х5;
  • 2х квадрат для крепления модуля NeoPixel 5х5;
  • 1х перемычка для крепления двух модулей NeoPixel 12х3;
  • 1х пластина для крепления ультразвукового датчика расстояния 12х10;

Код программы (скетч):

Алгоритм работы скетча:

До кода void setup() определяются переменные, подключаются необходимые библиотеки.

В коде void setup() инициализируется MP3-плеер, адресные светодиоды NeoPixel, датчик расстояния, сервопривод, выключаются светодиоды, если до этого они горели.

Код void loop() делится 2 части:

  • ЧАСТЬ 1: Проверяется, обнаружил ли датчик расстояния препятствие в указанной зоне:
    • Если да, то запускается трек с мелодией (который при каждом следующем срабатывании увеличивается на 1), ставится флаг flg_moroz или flg_terminator в данной зоне (в зависимости от трека, который будет играть), обнуляется счётчик времени timer1 , фиксирующий наступление события, чтобы в следующий раз оно сработало через время hcsr_waiting_time_near , настраивается время action time для каждого конкретного трека;
  • ЧАСТЬ 2: Проверяется, был ли установлен флаг наличия препятствия:
    • Если был установлен флаг flg_moroz :
      • Проверяем, истекло время выполнения анимации timer1 + action_time или нет;
        • Если не истекло, то задаём режим работы светодиодных модулей (строки 60 — 73 ) и сервопривода (строки 75 — 202 );
        • Для того, чтобы соотнести слова трека и движение сервопривода, применён следующий метод:
          • на букве «А» сервопривод отклоняется на 45 градусов;
          • на всех гласных, кроме «А», сервопривод отклоняется на 20 градусов;
          • на всех согласных сервопривод не отклоняется (0 градусов);
          • Помимо этого, вам понадобится любой аудиоредактор, чтобы можно было определить время произнесения тех или иных букв с точностью до миллисекунд;
        • Если истекло, то гасим все светодиоды и сбрасываем флаг;
    • Если был установлен флаг flg_terminator :
      • Проверяем, истекло время выполнения анимации timer1 + action_time или нет;
        • Если не истекло, то задаём режим работы светодиодных модулей (строки 216 — 226 ) и сервопривода (строки 228 — 235 );
        • Для того, чтобы соотнести слова трека и движение сервопривода, применён следующий метод:
          • на букве «А» сервопривод отклоняется на 45 градусов;
          • на всех гласных, кроме «А», сервопривод отклоняется на 20 градусов;
          • на всех согласных сервопривод не отклоняется (0 градусов);
          • Помимо этого, вам понадобится любой аудиоредактор, чтобы можно было определить время произнесения тех или иных букв с точностью до миллисекунд;
        • Если истекло, то гасим все светодиоды и сбрасываем флаг;

Про треки:

Для того, чтобы плеер верно мог воспроизвести ваши треки, их необходимо разместить на SD-карте следующим образом:

  1. Переименуйте все ваши треки, которые вы хотите воспроизвести с плеера, используя следующую форму: 000Х.mp3, где Х — порядковый номер трека;
  2. Создайте в основной директории карты новую папку и переименуйте её в «mp3»;
  3. Скопируйте ваши переименованные файлы с компьютера на карту памяти;

Готово! Теперь, зная количество и названия треков, внесите изменения в скетче там, где указывается порядковый номер трека и условия его воспроизведения (строки 43 — 53 )

В данном проекте для примера был использован случайный трек. Вы же, используя вышеуказанные методы, можете «научить» шапку произносить тот текст, который сами захотите.