Моя первая программа на Arduino. Это мигилка на 4 светодиода и 13 различных световых эффектов. Кому понравилось вот тут можете скачать скетч https://yadi.sk/d/tGwW3vOPvpaT7
Видео Arduino автомат световых эффектов канала TheTHILIM
Показать
Информация о видео
16 июня 2014 г. 15:52:20
00:03:07
Поделиться
const unsigned long fadeTimeout = 3000;
////////////////////////////////////////////////////////////
//
void setup() {
UART_Init(115200);
SPI.begin();
SPI.setBitOrder(MSBFIRST);
SPI.setDataMode(SPI_MODE0);
SPI.setClockDivider(SPI_CLOCK_DIV8);
blackoutAll();
delay(1);
lastTime = millis();
}
////////////////////////////////////////////////////////////
//
void loop() {
uint8_t data;
UART_SendByte(«R»); // Byte «We»re ready»
bool valid = false;
data = uartRead(valid);
if (valid) {
uint16_t pix_num = data * 3; // Total following bytes
for(uint16_t i=0; i fadeTimeout)
blackoutAll();
}
////////////////////////////////////////////////////////////
// Turn off all possible 256 leds
void blackoutAll() {
for (int16_t i = 0; i Тут всё предельно просто:
- Посылаем сигнал, что мы готовы принять данные о подсветке;
- В течение небольшого промежутка времени ожидаем данные;
- Если данные пришли, то первый байт из этих данных — число диодов, которые обслуживаются. Умножаем на 3 (RGB) для того, чтобы узнать количество последующих байт;
- Переправляем принимаемые данные в ленту;
- Обновляем метку времени о последнем обновлении ленты (это нужно для тайм-аута и гашения всех пикселей ленты).
Программа для PC
Вроде бы есть готовые решения для этого, но то, что я видел, мне не понравилось категорически, и вообще это неспортивно, зря что ли ардуино используется. Поэтому, пожевывая бутерброд, левой ногой была написана программа для захвата областей экрана, обработки их и передачи нужных данных в ленту. Вся программа с потрохами доступна на гитхабе по адресу github.com/sergrt/pixie (за код не пинайте).
Используется Qt 5.0.1 — интереса ради, никаких особенных вещей, присущих именно этой версии, не задействовано, так что вполне хорошо заработает и на 4 последние правки сделаны с использованием новых классов, так что теперь с версией 4 исходный код несовместим. Поскольку большую часть своих развлечений я проделываю под Windows, проект сделан под неё — Visual Studio 2012, захват GDI или DirectX. Я честно пытался генерировать.pro файлы для Qt Creator, но этот процесс страшно глючит с новым VS Qt Add-in, в итоге сходу эти файлы не заработали, разбираться не стал.
Но всё можно без проблем скомпилировать под linux, см. UPD #3.
Настройки программы
Основная настройка — это указание количества светодиодов по вертикали и горизонтали, а также задание размеров захвативаемых областей. В мои 22″ поместилось 10 шт по вертикали и 17 по горизонтали:
Ограничение частоты кадров разумно установить около 30. Значение «0» используется для работы с максимально возможной скоростью.
Также нужно правильно указать порт для обмена с Arduino и скорость обмена. Скорость в скетче по умолчанию 115200:
Для настройки яркости, порога срабатывания и ограничителя сделана отдельная вкладка «Обработка». Параметры, там представленные, регулируются в реальном времени:
Для удобства работы с программой можно настроить на автозапуск захвата при старте, а также запускать свернутой в область уведомлений.
Немного про внутренности софта для интересующихся
Основная идея состоит в запуске потока, хватающего области по заданному механизму, с подстраиваемым fps, и передающий эти области на обработку и последующую передачу ленте. Области захватываются в соответствии с настройками (кто бы мог подумать), цвет пикселя определяется простым средним по трем каналам RGB соответствующей области экрана. Опционально можно включить (директивами препроцессора) преобразование в Lab и усреднение его силами, но этот кусок кода не оптимизирован никак (взят как есть с просторов интернета), тормозит, поэтому по умолчанию выключен. Более того, каких-то особенных преимуществ Lab не заметно в контексте данной задачи, так что это не повод печалиться.
Обработка областей осуществляется по вертикалям и горизонталям, а на ленту отсылается последовательность цветов, начиная с левого нижнего угла и далее по периметру по часовой стрелке (так, как мы наматывали ленту на монитор при сборке).
Захват DirectX по скорости примерно равен захвату с GDI, при том, что в первом случае захватывается экран целиком, а во втором — только нужные куски. Вероятно, тут есть запас по оптимизации.
Обильное использование memcpy связано в первую очередь со скоростью работы — все остальные методы показали себя медленнее в той или иной степени.
Выводы и впечатления
Запас яркости у ленты просто огромный, что хорошо — можно пользоваться даже при наличии других источников света. В полной темноте лучше подвигать бегунками и сделать помягче. Сама лента вполне может служить самостоятельным источником освещения, нужно лишь переделать скетч.
Полагаю, немалое значение имеет диагональ монитора/телевизора. Чем больше — тем лучше.
Также следует устанавливать экран так, чтобы поблизости не было поверхностей, от которых отражаются светодиоды (в моём случае это боковые поверхности колонок) — это не особо критично, но лучше, чтобы резко выделяющихся пикселей не было видно совсем — так как между ними изрядное расстояние, это не лучшим образом влияет на картинку.
Что понравилось:
Просмотр видео и игры с такой подсветкой субъективно разгружают глаза — пропадает жесткий фокус на картинке монитора. Ощущение усталости глаз наступает позже, если не переусердствовать с яркостью. Смотреть видео как минимум необычно, для полноты эффекта лучше делать это с некоторого расстояния.
Что не понравилось:
К самой системе подсветки как таковой особенных претензий нет, но, как уже говорилось, для полноты удовольствия нужно правильное окружение — отстутсвие бликующих поверхностей, равномерный цветовой фон за экраном, etc. В процессе эксплуатации выяснилось, что дизайнерские изыски моего монитора несколько мешают нормальной работе ленты — передняя панель выполнена из прозрачного пластика и выступает над задней крышкой по всему периметру на несколько миллиметров, особенно выдаваясь в нижней части. Поэтому несмотря на то, что лента закреплена относительно далеко, на гранях этой панели видны отдельные светодиоды. Полагаю, мало кто с таким столкнется, но всё же пусть информация будет доступна заранее.
Ниже — ролик, как это выглядит в динамике. Оператор приносит свои извинения за заваленный горизонт.
Телевизоры с динамической подсветкой вокруг рамки дисплея — одна из фирменных фишек компании Philips. И в отличие от многих других она работает. Однако за всё приходится платить, и телевизоры с Ambilight и повышенным эффектом присутствия стоят дороже многих других моделей.
Российские разработчики предложили способ, который позволит оснастить динамической подсветкой и мониторы любого производителя. Для этого даже не придётся везти устройство в сервисный центр: потребуется только немного времени и усидчивости.
Вообще, подобную подсветку можно приобрести в виде радиодеталей и сконфигурировать самостоятельно. Но, как показывает практика, это практически сравнимо с готовыми вариантами от PaintPack.
Предлагается две основные модели: версия для монитора (30 светодиодов) и версия для телевизора (60 светодиодов). Есть и совсем простая — на 10 светодиодов, но она подходит только для самых маленьких мониторов.
Версия для телевизоров оборудована внешним блоком питания. Также в её пользу говорит большее количество светодиодов, что даёт большую площадь подсветки (будет светиться шире и выше, другими словами). Если подобные варианты не подходят по каким-либо соображениям, можно связаться с разработчиками: за небольшую доплату они предложат модифицированный вариант.
mindrunway.ru
PaintPack, по сути, представляет собой небольшой корпус, к которому с двух сторон подключаются съёмные светодиодные ленты. Коробочка с начинкой несёт на себе индикаторы и разъём питания, а также microUSB для соединения с ПК. Есть ещё мастер-разъём (проприетарный) для последовательного подключения двух устройств.
Корпус устройства размещается на задней панели телевизора или монитора. Затем прокладываются LED-ленты в соответствии с инструкцией, подключается питание и начинается колдовство. При соединении PaintPack с компьютером через USB-разъём необходимо установить драйверы и произвести настройку устройства в комплектной программе.

Настройка производится при помощи пакета AmbiBox . Необходимо перейти в меню «Интеллектуальная подсветка», выбрать способ захвата экрана и один из предложенных в программе режимов работы:
- Статический фон — устанавливается любой цвет, регулируется свечение светодиодов.
- Цветомузыка — подсветка будет мигать в такт звучанию музыки. Цвет подсветки устанавливается на зелёно-жёлтый.
- Динамический фон — плавное перетекание одного цвета в другой.
- Захват экрана — основной режим работы.
В этом режиме возможен захват цвета из просматриваемых фильмов и игр. Цвет подсветки будет меняться в соответствии с изображением на экране, разделяясь на верхнюю, нижнюю и боковые зоны (каждая в отдельности).
Работает PaintPack немного медленнее, чем официальный аналог от Philips. Но с учётом разницы в стоимости и возможности модернизации любого устройства выбор очевиден.
Ниже представлен проект изготовления подсветки Ambilight для телевизора или монитора. В предыдущей статье «Динамическая подсветка ТВ » использовался простой подход с использованием четырех RGB светодиодных лент, что позволяло отображать на каждой стороне ТВ только один цвет.
В данном статье мы усовершенствуем нашу подсветку, использовав для этого RGB LED пиксели, которые позволяют управлять каждым RGB-светодиодом. Подробнее читайте здесь: .
Итак, что нам понадобится:
— лента цифровых на основе нового контроллера WS2801. Одной такой ленты (25 светодиодов) вполне хватит на обычный среднестатический монитор. Расстояние между RGB-модулями около 10 см. Для большого телевизора могут понадобиться 2 такие ленты
— стабилизированный источник питания 5В для питания RGB LED. Максимальный ток БП нужно подбирать исходя из энергопотребления RGB LED модулей. Если будет использоваться одна лента (25 RGB LED), то ток БП нужен 1.5А, если 2 ленты, то соответственно 3А.
— контроллер Arduino, разъемы и др. мелочи.
Для облегчения подключения к Arduino и БП с лентой были произведены небольшие доработки. Для линии data и clock ленты, были припаяны соединительные коннекторы, чтобы их можно было надежно вставить в разъемы Arduino. Для подключения блока питания припаяли разъем. От разъема, к Arduino припаяли общую «землю». На фото ниже я думаю все вполне понятно:
В Arduino 13-ый пин использовался для clock, а 11-ый пин для data. Плюс, не забудьте «землю».
Теперь, надо определиться как будет все это крепиться на задней стенке телевизора или монитора. Здесь вариантов много, и можно тупо прикрепить светодиоды скотчем сзади монитора, а можно вырезать красивый шаблон или оргстекла. Наш шаблон бы сделан из тонкого пластика, со всеми необходимыми вырезами под монитор и крепления:
Затем, необходимо равномерно расположить 25 LED RGB светодиодов. У меня вышло расстояние между светодиодами около 50мм.
Когда будете изготавливать шаблон, не закрывайте вентиляционные отверстия на мониторе, если таковые имеются.
После того, как все RGB LED пиксели закреплены, осталось прикрепить контроллер Arduino. Для этих целей лучше всего подойдет двухсторонний скотч. Подсоединяем USB кабель к Arduino и источник питания 5В к RGB LED ленте.
Программное обеспечение
Все необходимое ПО вы можете скачать с GitHub . В папке Arduino->LEDstream находится скетч для Arduino. Скомпилируйте его и загрузите в контроллер.
Для компьютера используется ПО под Processing IDE, который необходимо скачать и установить отдельно (не путать с Arduino Processing!). Если в вашей конфигурации не 25 RGB LED, то в скетч необходимо будет внести изменения. Также, необходимо выбрать COM-порт, к которому подключен контроллер Arduino, чтобы передавать данные (см. скриншот ниже).
Программа работает следующим образом: после запуска, программа работает в фоновом режиме и постоянно делает скриншоты экрана и анализирует цвета отдельных точек по периметру. Потом вычисляет среднее цвета для точек и передает данные в контроллер Arduino. И не важно, что запущенно на компьютере — медиаплеер, браузер с роликом с youtube или еще что-то.
Код программы рассматривать не будем, т.к. он хорошо комментирован. Кстати в папке Colorswirl находится небольшой пример демо-скетча, который выводит на RGB светодиоды радугу.
Некоторое старое железо, может не справиться с нагрузкой (к примеру первые Atom»ы на нетбуках), т.к. постоянно делаются скриншоты. В этом случае может помочь уменьшение разрешения, к примеру 800х600.
Компания Philips в 2007 году запатентовала невероятно простую, но, без преувеличения, потрясающую технологию фоновой подсветки ТВ . С такой адаптивной подсветкой меньше устают глаза при просмотре в темноте, увеличивается эффект присутствия, расширяется область отображения и пр. Ambilight применима не только к видео и фото контенту, но и играм. Ambilight превратилась в визитную карточку телевизоров Philips. С тех пор компания Philips пристально бдит, чтобы никто из крупных производителей и думать не смел посягать на святое, создавая что-то подобное. Наверное, лицензировать эту технологию можно, но условия какие-то запредельные, и другие игроки рынка не особо горят желанием это делать. Небольшие компании тоже пытались (и сейчас есть компании, которые это делают) внедрять аналогичную технологию в виде отдельных комплектов, но кара от Philips была неизбежна. Так что в лучшем случае, если компания не продлит каким-то образом патент или его производную, другие производители лишь в 2027 году смогут выпускать что-то похожее.
Но нас, обычных потребителей, такая кара не касается. Мы вольны для себя делать то, что считаем нужным. Сегодня я расскажу в деталях, как самостоятельно сделать адаптивную фоновую подсветку для ТВ или монитора по типу Philips Ambilight (далее просто Ambilight). Для некоторых статья ничего нового в себе содержать не будет, т.к. таких проектов десятки, а статей написано сотни на разных языках, и людей, которые себе уже сделали подобное, тысячи. Но для многих это всё может оказаться очень интересным. Никаких особых навыков вам не потребуется. Только базовые знания физики за 8 класс средней школы. Ну, и совсем чуть-чуть пайки проводов.
Чтобы вы лучше понимали, о чём я говорю, приведу свой пример того, что получилось. Реальные затраты на ТВ 42″ — около 1000 рублей и 2 часа работы.
Видео не передаёт всех ощущений и эффекта целиком, но дети в первый раз сидели с открытыми ртами.
Возможные варианты реализации
Существует несколько вариантов вариантов реализации Ambilight. Зависят они от источника видеосигнала.
Самый дешёвый, простой и эффективный вариант — источником сигнала выступает ПК с Windows, Mac OS X или Linux. Сейчас очень распространены Windows-боксы на процессорах Atom, которые стоят от 70$. Все они идеально подходят для реализации Ambilight. Я уже несколько лет использую разные Windows-боксы (в тумбе под ТВ) в роли медиаплеера, написал небольшую кучку обзоров и считаю их самыми лучшими ТВ-приставками для медиаконтента. Аппаратная реализация этого варианта едина для всех перечисленных операционных систем. Именно об этом варианте я расскажу в статье
. Программная часть будет относиться к Windows системе, в роли универсальной управляющей программы будет выступать AmbiBox. С Mac OS X и Linux можно использовать .
Второй вариант — источником сигнала выступает медиаприставка на базе Android, коих тоже огромное количество. Этот вариант самый проблемный. Во-первых, подсветка будет работать только в медиакомбайне Kodi (и в ответвлениях этого проекта). Во-вторых, в подавляющем большинстве случаев всё работает только с отключённым аппаратным декодированием видео, что для большинства боксов неприемлемо. Аппаратная реализация проекта тоже накладывает определённые требования. Я его затрагивать не буду, но если что-то интересует конкретное, то постараюсь ответить в комментариях.
Третий вариант — независимое от источника сигнала решение. Это самое затратное, но абсолютно универсальное решение, т.к. сигнал снимается прямо с HDMI кабеля. Для него вам понадобится достаточно мощный микрокомпьютер (типа Raspberry Pi), HDMI сплиттер (разветвитель), конвертер HDMI-RCA AV, USB 2.0 устройство захвата аналогового видео. Только с таким вариантом вы сможете гарантированно задействовать Ambilight с любой ТВ-приставкой/ресивером, Android-боксами, Apple TV, игровыми приставками (например, Xbox One, PlayStation 4) и пр. устройствами, которые имеют выход HDMI. Для варианта с поддержкой 1080p60 стоимость компонентов(без светодиодной ленты) будет около 70$, с поддержкой 2160p60 — около 100$. Это вариант очень интересный, но по нему нужно писать отдельную статью.
Аппаратная часть
Для реализации понадобится три основных компонента: управляемая светодиодная RGB лента, блок питания, микрокомпьютер Arduino.
Сначала небольшое количество объяснений.
WS2811 — это трёхканальный канальный контроллер/драйвер (микросхема) для RGB светодиодов с управлением по одному проводу (адресация к произвольному светодиоду). WS2812B — это RGB светодиод в корпусе SMD 5050, в который уже встроен контроллер WS2811.
Подходящие для проекта светодиодные ленты для простоты так и называют — WS2811 или WS2812B.
WS2812B лента — это лента, на которой последовательно размещены светодиоды WS2812B. Лента работает с напряжением 5 В. Существуют ленты с разной плотностью светодиодов. Обычно это: 144, 90, 74, 60, 30 на один метр. Бывают разные степени защиты. Чаще всего это: IP20-30 (защита от попадания твёрдых частиц), IP65 (защиты от пыли и водяных струй), IP67 (защита от пыли и защита при частичном или кратковременном погружении в воду на глубину до 1 м). Подложка чёрного и белого цвета.
Вот пример такой ленты:
WS2811 лента — это лента, на которой последовательно размещены WS2811 контроллер и какой-то RGB светодиод. Есть варианты, рассчитанные на напряжением 5 В и 12 В. Плотность и защита аналогичны предыдущему варианту.
Вот пример такой ленты:
Ещё встречаются WS2811 «ленты» с большими и мощными светодиодами, как на фотографии ниже. Они тоже подходят для реализации Ambilight для какой-нибудь огромной панели.
Какую ленту выбрать, WS2812B и WS2811?
Важный фактор — питание ленты, о чём я расскажу чуть позже.
Если у вас дома окажется подходящий по мощности блок питания (часто дома от старой или испорченной техники остаются блоки питания), то выбирайте ленту, исходя из напряжения блока питания, т.е. 5 В — WS2812B, 12 В — WS2811. В этом случае вы просто сэкономите деньги.
От себя могу дать рекомендацию. Если общее количество светодиодов в системе будет не более 120, то WS2812B. Если более 120, то WS2811 с рабочим напряжением 12 В. Почему именно так, вы поймёте, когда речь зайдёт о подключение ленты к блоку питания.
Какое уровень защиты ленты выбрать?
Для большинства подойдёт IP65, т.к. с одной стороны она покрыта «силиконом» (эпоксидной смолой), а с другой есть самоклеющаяся поверхность 3M. Эту ленту удобно монтировать на ТВ или монитор и удобно протирать от пыли.
Какую плотность светодиодов выбрать?
Для проекта подойдут ленты с плотностью от 30 до 60 светодиодов на метр (конечно, можно и 144, никто не запрещает). Чем выше плотность, тем больше будет разрешение Ambilight (количество зон) и больше максимальная общая яркость. Но стоит учитывать, чем больше светодиодов в проекте, тем сложнее будет устроена схема питания ленты, и понадобится более мощный блок питания. Максимальное количество светодиодов в проекте — 300.
Покупка ленты
Если ваш ТВ или монитор висит на стене, и все 4 стороны имеют рядом много свободного пространства, то ленту лучше всего разместить сзади по периметру на все 4 стороны для максимального эффекта. Если ваш ТВ или монитор установлен на подставку, или снизу мало свободного пространства, то ленту надо размещать сзади на 3-х сторонах (т.е. низ без ленты).
Для себя я выбрал белую ленту WS2812B IP65 с 30 светодиодами на метр. Подходящий блок питания на 5 В у меня уже был. Решал, 60 или 30 светодиодов на метр, но выбрал последнее после пересмотра видео с готовыми примерами реализации — яркость и разрешение меня устроили, да и питание легче организовать, меньше проводов. На Алиэкспресс огромное количество лотов лент WS2812B. Я заказывал 5 метров за 16$. Для моего ТВ (42″, 3 стороны) нужно было только 2 метра, т.е. можно было купить за 10$, оставшиеся три метра для друга. Цены часто меняются у продавцов, предложений много, так что просто выберите на Алиэкспресс дешёвый лот с высоким рейтингом (ключевые слова для поиска — WS2812B IP65 иди WS2811 12V IP65).
Покупка блока питания для ленты
Блок питания подбирается по мощности и напряжению. Для WS2812B — напряжение 5 В. Для WS2811 — 5 или 12 В. Максимальная потребляемая мощность одного WS2812B светодиода 0,3 Вт. Для WS2811 в большинстве случаев аналогично. Т.е. мощность блока питания должна быть не ниже N * 0,3 Вт, где N — количество светодиодов в проекте.
Например, у вас ТВ 42″, вы остановились на ленте WS2812B с 30 светодиодами на метр, вам нужно 3 метра ленты все 4 стороны. Вас понадобится блок питания с напряжением 5 В и максимальной мощностью от 0,3 * 30 * 3 = 27 Вт, т.е. 5 В / 6 А. В моей реализации используются только 3 стороны, всего 60 светодиодов (если быть точным, то 57) — мощность от 18 Вт, т.е. 5 В / 4 А.
У меня давно уже лежит без дела многопортовая USB-зарядка ORICO CSA-5U (8 А), оставшаяся после старого обзора. Питание портов у неё запараллельно (это критически важно), мне это ЗУ идеально подходит в роли БП, т.к. подключать ленту я буду через 2 параллельных соединения (объяснения будут чуть позже в статье).
Если бы этого ЗУ у меня не было, то я бы выбрал (есть информация, что именно в этот БП ставят внутренности на 2,5 А, так что надо детальней изучить этот вопрос у продавца, или посмотреть другие модели).
Покупка микрокомпьютера
Управлять Ambilight будет микрокомпьютер Arduino. Arduino Nano на Алиэкспресс стоит около за штуку.
Затраты на мой вариант (для ТВ 42″):
10$ — 2 метра WS2812B IP65 (30 светодиодов на метр)
4$ — блок питания 5 В / 4 А (денег на БП не тратил, привожу стоимость для ясности)
2,5$ — Arduino Nano
————
16,5$
или 1000 рублей
Реализация аппаратной части
Самое главное — это правильно организовать питание ленты. Лента длинная, напряжение просаживается при большом токе, особенно при 5 В. Большинство проблем, которые возникают у тех, кто делает себе Ambilight, связаны именно с питанием. Я пользуюсь правилом — нужно делать отдельную подводку питания на каждые 10 Вт потребляемой максимальной мощности при 5 В и 25 Вт потребляемой мощности при 12 В. Длина подводки питания (от блока питания до самой ленты) должна быть минимальной (без запаса), особенно при 5 В.
Общая схема подключения выглядит следующим образом (на схеме отображено подключение питания для моего варианта):
К ленте с обоих концов подведено питание — два параллельных подключения. Для примера, если бы я делал подсветку на все 4 стороны, а лента была по 60 светодиодов на метр (т.е. максимальная мощность 54 Вт), то я бы сделал такой подвод питания:
Провода подводки нужно использовать соответствующие, чем меньше калибр (AWG), тем лучше, чтобы их с запасом хватало для расчётной силы тока.
К Arduino от ленты идут два контакта. GND, который нужно подключить к соответствующему пину на Arduino. И DATA, который нужно подключить к шестому цифровому пину через резистор 300-550 Ом (лучше 470 Ом). Если резистора у вас нет, то в большинстве случаев всё будет прекрасно работать и без него, но лучше, чтобы он был. Резистор можно купить за пару копеек в любом радиомагазине. Сам микрокомпьютер Arduino можете разместить в любом удобном корпусе, многие используют для этого яйцо Киндер-сюрприза. Arduino нужно размещать как можно ближе к ленте, чтобы подводка DATA имела минимальную длину.
Припаивать провода к ленте просто. Главное правило — время контакта с паяльником должно быть минимальным, «возюкать» паяльником нельзя.
В моём случае получилось вот так:
Два чёрных качественных USB кабеля пошли на питание, а белый для подключение к компьютеру. Белые термоусадочные трубки у меня закончились, я использовал красные. Не так «красиво», но меня устраивает (всё равно это спрятано за ТВ).
Важный вопрос — как изгибать ленту под прямым углом? Если у вас лента на 60 светодиодов, то ленту нужно разрезать и соединять короткими проводами (разместив всё это в термоусадочной трубке). Можете купить специальные угловые коннекторы на три контакта для светодиодных лент (на снимке 4 контакта, просто для примера):
Если у вас лента на 30 светодиодов, то расстояние между светодиодами большое, вы легко можете сделать угол без резки. Удаляете кусочек «силиконового» покрытия, изолируйте (можно даже «скотчем») контактную площадку и сгибаете по схеме:
Я отрезал кусок ленты, чтобы практиковаться. Главное, не нужно переусердствовать — слегка согнули один раз и всё. Тюда-сюда перегибать не нужно, сильно сдавливать линию изгиба не нужно.
Вот вид сзади ТВ, все провода через отверстие уходят внутрь тумбы:
Программная часть
Это самое простое.
Подключаем микрокомпьютер Arduino по USB. Драйвер (последовательного интерфейса CH340) установится автоматически. Если этого не произошло, то в папке Arduino IDE есть папка Drivers со всем необходимым.
Запускаем Arduino IDE и открываем файл Adalight.ino.
Изменяем количество светодиодов в коде. У меня 57.
Инструменты > Плата > Arduino nano
Инструменты > Порт > Выбираете COM-порт (там будет нужный вариант)
Нажимаем кнопку «Загрузить»:
Программа проинформирует, когда загрузка будет завершена (это буквально пара секунд).
Готово. Нужно отключить Arduino от USB и подключить заново. Лента загорится последовательно красным, зелёным и синим цветом — Arduino активировался и готов к работе.
Загрузите и установите программу . В программе нажмите «Больше настроек» и укажите устройство — Adalight, COM-порт и количество светодиодов. Выберите количество кадров для захвата (до 60).
Далее, нажмите «Показать зоны захвата» > «Мастер настройки зон». Выберите конфигурацию вашей ленты.
Нажмите «Применить» и «Сохранить настройки». На этом базовые настройки заканчиваются. Потом вы сможете поэкспериментировать с размерами зон захвата, сделать цветокоррекцию ленты и пр. В программе много разных настроек.
Чтобы активировать профиль, достаточно два раза мышкой нажать на соответствующую иконку (профилей AmbiBox) в области уведомлений Windows. Лента сразу загорится. Отключается тоже двойным нажатием.
Вот в принципе и всё. Результат вы видели в начале статьи. Ничего сложного, дёшево и здорово. Уверен, что у вас получится лучше, так что делитесь своими поделками в комментариях.
На этот раз я поведаю о том, как сделать Ардуино своими руками, да еще и без паяльника. Схема этого простого Ардуино-клона называется Shrimp . Самодельный Shrimp полностью совместим с Arduino IDE, так что можно легко запускать на нем любые скетчи.
Сразу следует отметить, что для создания Shrimp с нуля потребуется рабочая плата Ардуино. Она необходима для установки загрузчика на пустой микроконтроллер. Если под рукой нет Ардуино, то можно приобрести уже прошитый микроконтроллер и сразу прыгнуть к разделу 2.
Для создания Shrimp нам потребуется:
- микроконтроллер ATMEGA328P-PU;
- резистор 10 кОм;
- конденсатор 10-100 мкФ, электролитический;
- конденсатор 22 пФ, керамический — 2 шт;
- конденсатор 100 нФ, керамический — 4 шт;
- кнопка тактовая;
- кварц 16 МГц;
- макетная плата;
- набор перемычек для макетной платы;
- USB — UART конвертер на основе FT232R, CP2102 или CH340.
1. Копирование загрузчика на чистый микроконтроллер
Обычно, чтобы записать программу в микроконтроллер требуется использовать отдельное устройство — программатор. Ардуино же хороша тем, что программатор ей не нужен. Вместо него, используется особая микропрограмма, называемая загрузчиком (bootloader). Этот загрузчик умеет принимать программы из вне и записывать их во флеш-память микроконтроллера.
Так вот, загрузчик записывается в микроконтроллер на заводе. И чтобы заставить наш Shrimp работать, мы должны повторить эту процедуру. Вот здесь-то нам и потребуется другая плата Ардуино, о которой упоминалось в самом начале. Процедура установки загрузчика состоит из трёх шагов.
Шаг 1. Установка на рабочую плату Ардуино специальной программы — OptiLoader
Открытая программа OptiLoader
позволяет прошить загрузчик optiboot в микроконтроллер нашего Shrimp. На момент написания статьи OptiLoader поддерживал микроконтроллеры: ATmega8, ATmega168, ATmega168P, ATmega168PB, ATmega328, ATmega328P, ATmega328PB. Качаем архив по одной из ссылок:
- из официального репозитория: https://github.com/WestfW/OptiLoader
- с нашего сайта:
Распаковываем архив и открываем скетч в Arduino IDE. Загружаем скетч в рабочую плату Ардуино. Отключаем Ардуино от питания USB.
Примечание.
Если скачать программу с github, то нужно будет переименовать папку «optiLoader-master» в просто «optiLoader»
Шаг 2. Подключение чистого микроконтроллера
Соединяем рабочую плату Ардуино с чистым микроконтроллером по приведенной схеме. Здесь все очень просто. Внимательно смотрим на картинку, вставляем проводки, семь раз проверяем.
Принципиальная схема
Внешний вид макета

Теперь подключим Ардуино к питанию через USB. Сразу после включения, программа начнет копирование загрузчика на чистый микроконтроллер. При это будут активно мигать светодиоды RX и TX. Как только светодиоды перестанут мигать — копирование окончено.
Если что-то пошло не так и светодиоды не мигают, можно открыть COM-монитор. OptiLoader отображает весь процесс копирования загрузчика. В случае успеха, отчет о процедуре будет выглядеть следующим образом.
2. Загрузка программ на Shrimp
Итак, теперь у нас есть самодельный Arduino с прошитым загрузчиком. Чтобы залить на него какой-нибудь скетч, нам потребуется частично разобрать предыдущую схему, и дополнить её новыми элементами.В частности, добавляется кнопка сброса, и защитные цепи питания.
Часть № 1. Предисловие
Идея и
направление
проекта
Всем передаю своё огромное приветствие и желаю того, чтобы прочтение моей учебной статьи не потратило ваше драгоценное время впустую. В этой статье (уроке) я хочу предложить каждому читателю один из многих дешёвых способ изготовления своей arduino платформы в домашних условиях своими руками, какими бы они ни были. Также представлю несколько плат дополнений к нашему микроконтроллеру.
Все радиолюбители и профессионалы когда-то начинали учиться паять, мастерить небольшие устройства, читать электрические схемы, ну и другое. Например, я, узнав об arduino и её возможностях, практически сразу же собирался её купить, но, понимая, в какую копеечку мне это обойдётся, я решил приобрести все химические средства и реактивы для изготовления собственной печатной платы, так как она является самой удачной перспективой в данном случае. Собственные печатные платы можно делать быстро, удобно, и за дешёвые стоимость химических компонентов.
Часть № 2. Разработка и проектирование проекта
Способом изготовления печатных плат является в нашем случае (лазерно-утюжная технология изготовления печатных плат). Тем самым необходимо составить список того, чего необходимо:
1) Стеклотекстолит (100×200 мм на все случаи жизни);
2) Флюс для пайки с тонкой кисточкой;
3) Хлорное железо (250 г.);
4) Жидкое олово (100 мл или больше, неважно, его намного хватает);
5) Лазерный принтер (желательно с новым картриджем);
6) Обычная бумага тонкая A4;
7) Сверло для сверления отверстий в плату;
8) Паяльник мощностью 25 — 30 Вт;
9) Утюг, лучше всего, советский.
В целом, все эти компоненты, не считая конечно принтер, будут стоить вам около двухсот рублей, но этих компонентов хватит на 15-20 небольших плат, если, конечно, экономить.
Теперь же необходимо обсудить детали насчет деталей для сборки самого микроконтроллера:
1) — ATmega328P PU;
2) — Светодиоды, кнопки, штырьки на плату (все дешевые) и прочее (для удобства);
3) — Программатор.
Все эти компоненты тоже будут теоретически стоить около 200 — 300 рублей. В итоге, можно сказать, что, чтобы собрать собственный arduino микроконтроллер, надо потратиться примерно в сумме 300-400 рублей (конечно же считая сколько химических компонентов необходимо для изготовления одного микроконтроллера).
Следующим шагом будет являться разработка и проектирование проекта микроконтроллера, то есть такие её стадии, как:
- Подготовка всех компонентов на своём рабочем столе;
- Изготовление шаблона печатной платы и очистка стеклотекстолита очистителем или растворителем;
- Распечатка шаблона печатной платы на стеклотекстолите при помощи лазерного принтера;
- Обработка и травление, собственно, печатной платы;
- Снова же очистка и обработка печатной платы очистителем или растворителем (я использую уайт-спирит);
- Обработка печатной платы в растворе солей олова(лужение дорожек печатной платы необходимо для того, чтобы схема оставалась рабочей на долгое время);
- Сверление отверстий сверлом;
- Установка в отверстия печатной платы электронных компонентов;
- Обработка отверстий флюсом и разогревание паяльника;
- Пайка компонентов;
- И, наконец, подготовка к работе компьютера и микроконтроллера и прошивка arduino ide.
Впрочем, весь процесс может проходить в течении 2-3 часов, смотря на то, какие у кого навыки в изготовлении собственных печатных плат и к пайке электронных компонентов. Итак, пришло время сказать вот такое выражение: » В теории всё понятно, а как на деле». А то мы, радиолюбители и профессионалы, не только ради теорий и знаний занимаемся электроникой.
Часть № 3. Реализация проекта
Все этапы работы я покажу по фото и опишу их с помощью комментариев.
Также необходимо начертить схему для печатной платы.
Кнопка потребуется для сброса системы,светодиод присоединен к выводам 13-ый пин ATmega328P PU и земля для индикации состояния микроконтроллера, кварцевый резонатор нужен именно 16 МГц, так как при меньшей частоте микроконтроллер либо будет работать медленно и даже очень, либо вовсе работать не будет. Пять проводов находящихся на верхней стороне схемы необходимы для программирования через программатор или arduino uno. Питаться схема может по двум проводам либо на дне печатной платы, на двух штырьках, либо два крайних штырька на её поверхности.
Теперь начну подробнее описывать аспекты каждого из этапов.
1) На этом этапе необходимо подготовить все компоненты для создания печатной платы. Ножницы необходимы для того, чтобы разрезать стеклотекстолит. Перчатки, соответственно, для чистоты рук и гигиены. На рисунке также имеется уже готовая печатная плата с необработанной поверхностью. Тряпка нужна для обработки печатной платы (на втором этапе). Стол лучше, конечно, выбрать другой, по ровнее.
2) Уайт-спирит наливаем в контейнер объемом, как крышка, выливаем на тряпку, не ждём, пока она засохнет, и переходим к следующему действию. А затем очищаем и обрабатываем стеклотекстолит, если уж очень грязно, то придётся задействовать шкурку (бумага). Он будет готов к дальнейшей работе только после того, как он станет очищен на 100%. После оставляем будущую печатную плату высыхать, чтобы бумага со схемой не намокла и не испортила нам настроение.
3)
По моему мнению, схема получилась довольно таки красивая. Все аккуратно и четко стоит на своём месте. Для того, чтобы распечатать схему на стеклотекстолите необходимо ровно положить шаблон на очищенный текстолит и начинать утюжить.
Утюг стоит двигать равномерно по всей площади печатной платы, в течение времени равной не менее трёх минут. Надо ждать до того момента, когда абсолютно весь чернильный рисунок расплавит
с
я. И тогда отличный результат будет неизбежен.
После этой процедуры надо дождаться того, пока печатная плата, точней её температура, достигнет комнатной и опустить плату в ёмкость с тёплой или горячей водой. Несколько минут подождать, и потом, держа в ладони печатную плату, только большим пальцем снимать приклеенную бумагу. После очистки надо убрать воду с печатной платы.
4) На этом этапе меньше всего будет хлопот. Потребуется только лишь ваше терпение и время. Опустите печатную плату в пластиковую ёмкость с раствором хлорного железа. Растворить в ёмкости хлорное железо в воде надо в соотношении 12, то есть 100 мл воды теплой и 50 г. хлорного железа.Вылить в плоскую пластмассовую миску. Этим раствором можно будет пользоваться достаточно много. В течение 30-60 минут необходимо ждать, опустив печатную плату в раствор хлорного железа, пока плата протравиться, то есть лишняя медь уйдет с стеклотекстолита. Контролируйте ход травления плату. Вынимать следует при помощи пластмассового пинцета. Если процесс травления идёт долго то можно увеличить температуру раствора до 50-70 градусов, или добавить в раствор ещё хлорного железа.
5) После травления печатной платы стоит протереть её, избавив от остатков раствора и, и снова же обработать и очистить шаблон с платы, так как он нам уже не понадобится. В итоге, должно получится основа стеклотекстолита и медные дорожки, соответствующие дорожкам в нашей схеме.
6) Процесс на этом этапе то не является сложным, так как тут тоже требуется лишь терпение и время. Необходимо просто положить печатную плату в раствор солей олова,но не затягивать, всего лишь держать в растворе 10 минут, если передержать половину дня, то вся схема может просто отшелушится и растворится. Вообще, раствор предназначен для быстрого покрытия оловом печатных плат или медных деталей простым и технологичным способом для предотвращения окисления и подготовки поверхности под пайку в домашних условия. Раствор же использовать при комнатной температуре в полиэтиленовой посуде. Деталь надо предварительно зачистить и обезжирить, и при этом толщина покрытия составит 1 мкм. В одном литре раствора можно залудить до 50 км дм поверхности возможно многократное использование. Не рекомендуется совместное хранение свежего и отработанного раствора. Срок годности состава без ухудшения свойств до двух лет.
7) Отверстия следует делать очень тонким сверлом чтобы умело и точно можно было бы припаивать электронные компоненты. Желательно чаще пользоваться флюсом или канифолью (сосновой) , так как с помощью них можно отлично паять.
8) Только лишь точная установка всех компонентов может с успехом повлиять на удобство пайки компонентов. Необходимо чётко все разместить, чтобы место осталось свободное на печатной плате и к тому же чтобы помочь самому себе, то есть тебе легче будет припаивать компоненты, если будет свободное пространство.
9) Этот пункт нет смысла описывать, так как в нём всё ясно
10) Паяйте как можно аккуратнее, если хотите получить отличный мини аналог Arduino Uno.
11) После всех предыдущих этапов я надеюсь у вас уже есть стоящий прототип и теперь можно приступать к настройке компьютера и программирования микроконтроллера.
Необходимо подключить провода именно так:
Мини аналог RST RX TX +5V GND (считая слева направо на правой картинке.)
Arduino Uno RST RX TX +5V GND
И после этого можно легко программировать микроконтроллер прямо с Arduino IDE ка Arduino Uno.
Часть № 4. Заключение
Микроконтроллерные платы получились я надеюсь у всех читателей отличными. Все эти печатные платы можно использовать для создания и разработки многих устройств или даже роботов.
Тут представлен стабилизатор напряжения на lm7805ct (5 вольт). Если он будет перегреваться, всё тепло будет идти на стеклотекстолит.
Из этого урока можно сделать вывод, что arduino можно сделать и за более дешёвую сумму чем в магазинах и я надеюсь, что эта статья не позволила вам потратить ваше время зря. Всем кто читал — спасибо, а кто будет комментировать и учитывать мои промахи, тем двойное спасибо, так как я буду признавать свои ошибки и, надеюсь, в будущем буду исправлять их.
Список радиоэлементов
| Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
|---|---|---|---|---|---|---|
| МК AVR 8-бит | ATmega328P | 1 | DIP | В блокнот | ||
| Зарубежные | Светодиод | 2 | Зелнный и синий |
На мой взгляд собирать UNO именно в том виде, в котором она представлена в оригинале нет смысла. Я всегда пользуюсь вот этой схемой:
Тут все вообще без гемора – просто 1 микросхема и кварц. Правда, в отличие от Arduino UNO, нет защиты по питанию и USB – соответственно заливка скетчей немного сложнее. Давайте разбираться.
Копируем Arduino uno – питание
Во-первых в этой схеме только одно напряжение – то, которым питаешь микроконтроллер. В arduino uno есть стабилизатор – ей подаешь 5 вольт, она еще и 3.3 выдает на соседний пин. За всю мою практику мне ни разу не понадобилось сразу и 5, и 3.3 вольта в одной схеме. То есть используется либо 5, либо 3.3, но никогда вместе. Все девайсы, экраны и датчики, рассчитанные на 3.3, всегда втыкались 5 вольт и все работало. Естественно надо прочитать даташит (документацию) на эти самые датчики, возможно у вас что-то мегачувтсвительное к входному напряжению и ему реально нужно 3.3 вольта. Тогда можно поставить стабилизатор напряжения и снизить до 3.3 вольт. Как обычно есть пара способов:
Вообще с питанием много всяких извращенных схем, но это основные подходы.
USB для нашего UNO
Тут тоже есть два подхода. Есть такая штука, называется ISP:
Это такой разъем)) Для того, чтобы заставить работать наш новый UNO, нужен микроконтроллер. Если ты просто пойдешь в магаз и купить Atmega326 ты конечно будешь молодец, но работать сразу это все не будет – в нее надо зашить загрузчик Arduino. для этого как ни странно нужна вторая Arduino. Уже рабочая Хз где ты ее достанешь, купишь в Китае или попросишь у друга погонять. В принципе подойдет любая. Назовем ее условно программатор. А подключать надо так:
pin name: not-mega: mega(1280 and 2560)
reset: 10: 53
MOSI: 11: 51
MISO: 12: 50
SCK: 13: 52
| pin reset MOSI MISO SCK |
Если вы достали где-то в качестве программатора Arduino Mega то используйте для подключения последний столбец. Если программатором служат другие ардуины – тогда второй. В первом столбце указаны ноги вашей новой купленной атмеги. Далее в рабочую ардуино (программатор) заливаем скетч из образцов с названием ArduinoISP:
И вот тут у нас два варианта:
- Можно прошить загрузчик и тогда в дальнейшем наш микроконтроллер можно прошивать через Serial порт и вторая ардуина-программатор нам больше не нужна.
- Либо можно прошивать через программатор сразу наш скетч без загрузчика – и тогда у нас после запуска будет все работать быстрее на пару секунд. Это делается с помощью меню файл –> загрузить через программатор
Если с вторым вариантом все ясно.. То первый требует разъяснений. Жмем Инструменты – Программатор – Arduino. А потом Инструменты – Записать загрузчик.
После этого отключаем Arduino и теперь нам понадобится USB to ttl serial Converter. После того, как мы его достали, его надо подключить к reset, d0 (rx), d1(tx) нашей только что прошитой атмеги.
Суть та же, только не забудьте добавить резистор и конденсатор на reset (см. первый вариант).
После этого все будет прошиваться точно так же, как и обычная ардуина.
Arduino — это универсальная платформа для самоделок на микроконтроллерах. К ней есть множество шилдов (плат расширения) и датчиков. Это многообразие позволяет сделать целый ряд интересных проектов, направленных на улучшение вашей жизни и повышение её комфорта. Сферы применения платы безграничны: автоматизация, системы безопасности, системы для сбора и анализа данных и прочее.
Из этой статьи вы узнаете, что можно сделать интересного на Ардуино. Какие проекты станут зрелищными, а какие полезными.
Что можно сделать с помощью Arduino
Робот пылесос
Уборка в квартире — рутинное занятие и малопривлекательное, тем более на это нужно время. Сэкономить его можно, если часть хлопот по дому возложить на робота. Этого робота собрал электронщик из г. Сочи — Дмитрий Иванов. Конструктивно он получился достаточно качественным и не уступает в эффективности .
Для его сборки вам понадобятся:
1. Arduino Pro-mini, или любая другая подобная и подходящая по размерам…
2. USB-TTL переходник, если вы используете Pro mini. Если вы выбрали Arduino Nano, то он не нужен. Он уже установлен на плате.
3. Драйвер L298N нужен для управления и реверсирования двигателей постоянного тока.
4. Маленькие двигателя с редуктором и колесами.
5. 6 ИК-датчиков.
6. Двигатель для турбины (побольше).
7. Сама турбина, а вернее крыльчатка от пылесоса.
8. Двигателя для щеток (небольшие).
9. 2 датчика столкновения.
10. 4 аккумулятора 18650.
11. 2 преобразователя постоянного напряжения (повышающий и понижающий).
13. Контроллер для работы (заряда и разряда) аккумуляторов.
Система управления выглядит следующим образом:
А вот система питания:
Подобные уборщики развиваются, модели заводского изготовления обладают сложными интеллектуальными алгоритмами, но вы можете попытаться сделать свою конструкцию, которая не будет уступать по качеству дорогим аналогам.
Способны выдавать световой поток любого цвета, в них обычно используются светодиоды в корпусе которых размещено три кристалла светящиеся разным цветом. Для их управления продаются , их суть заключается в регулировании тока подаваемого на каждый из цветов светодиодной ленты, следовательно — регулируется интенсивность свечения каждого из трёх цветов (отдельно).
Вы можете сделать своими руками RGB-контроллер на Ардуино, даже более того, в этом проекте реализовано управление через Bluetooth.
На фото приведен пример использования одного RGB-светодиода. Для управления лентой потребуется дополнительный блок питания на 12В, тогда будут управлять затворами полевых транзисторов включенных в цепь. Ток заряда затвора ограничен резисторами на 10 кОм, они устанавливаются между пином Ардуино и затвором, последовательно ему.
С помощью микроконтроллера можно сделать универсальный пульт дистанционного управления управляемый с мобильного телефона.
Для этого понадобится:
Arduino любой модели;
ИК-приемник TSOP1138;
ИК-светодиод;
Bluetooth-модуль HC-05 или HC-06.
Проект может считывать коды с заводских пультов и сохранять их значения. После чего вы можете управлять этой самоделкой через Bluetooth.
Веб-камера устанавливается на поворотный механизм. Её подключают к компьютеру, с установленным программным обеспечением. Оно базируется на библиотеке компьютерного зрения — OpenCV (Open Source Computer Vision Library), после обнаружения программой лица, координаты его перемещения передаются через USB-кабель.
Ардуино даёт команду приводу поворотного механизма и позиционирует объектив камеры. Для движения камеры используется пара сервоприводов.
На видео изображена работа этого устройства.
Следите за своими животными!
Идея заключается в следующем — узнать, где гуляет ваше животное, это может вызвать интерес для научных исследований и просто для развлечения. Для этого нужно использовать GPS-маячок. Но чтобы хранить данные о местоположении на каком-нибудь накопителе.
При этом габариты устройства здесь играют решающую роль, поскольку животное не должно ощущать от него дискомфорт. Для записи данных можно использовать для работы с картами памяти формата Micro-SD.
Ниже приведена схема оригинального варианта устройства.
В оригинальной версии проекта использовалась плата TinyDuino и шилды к ней. Если вы не можете найти такую, вполне можно использовать маленькие экземпляры Arduino: mini, micro, nano.
Для питания использовался элемент Li-ion, малой ёмкости. Маленького аккумулятора хватает примерно на 6 часов работы.
У автора в итоге все поместилось в обрезанную баночку из-под тик-така. Стоит отметить, что антенна GPS должна смотреть вверх, чтобы получать достоверные показания датчика.
Взломщик кодовых замков
Для взлома кодовых замков с помощью Ардуино понадобятся серво- и шаговый двигатель. Этот проект разработал хакер Samy Kamkar. Это достаточно сложный проект. Работа этого устройства изображена на видео, где автор рассказывает все подробности.
Конечно, для практического применения такое устройство вряд ли подойдет, но это отличный демонстрационный.
Ардуино в музыке
Это скорее не проект, а небольшая демонстрация какое применение нашла эта платформа у музыкантов.
Драм машина на Ардуино. Примечательна тем, что это не обычный перебор записанных сэмплов, а, в принципе, генерация звука с помощью «железных» приспособлений.
Номиналы деталей:
Транзистор NPN-типа, например 2n3904 — 1 шт.
Резистор 1 кОм (R2, R4, R5) — 3 шт.
330 Ом (R6) — 1 шт.
10 кОм (R1) — 1 шт.
100 кОм (R3) — 1 шт.
Электролитический конденсатор 3.3 мкФ — 1 шт.
Для работы проекта потребуется подключение библиотеки для быстрого разложения в ряд Фурье.
Это достаточно простой и интересный проект из разряда «можно похвастаться перед друзьями».
3 проекта роботов
Робототехника — одно из интереснейших направлений для гиков и просто любителей сделать что-нибудь необычное своими руками, я решил сделать подборку из нескольких интересных проектов.
BEAM-робот на Ардуино
Для сборки четырёхногого шагающего робота вам понадобятся:
Для движения ног нужны сервомоторчики, например, Tower Hobbies TS-53;
Кусок медной проволоки средней толщины (чтобы выдерживала вес конструкции и не гнулась, но и не слишком толстой, т.к. не имеет смысла);
Микроконтроллер — AVR ATMega 8 или плата Ардуино любой модели;
Для шасси в проекте указано, что использовалась Рамка Sintra. Это что-то вроде пластика, он сгибается в любую форму при нагревании.
В результате вы получите:
Примечательно то, что этот робот не ездит, а шагает, может перешагивать и заходить на возвышения до 1 см.
Этот проект мне, почему-то, напомнил робота из мультфильма Wall-e. Его особенностью является использование для зарядки аккумуляторов. Он перемещается подобно автомобилю, на 4-х колесах.
Его составляющие детали:
-
Перемычки мама-папа;
Солнечная панель с выходным напряжением в 6В;
В качестве донора колес, двигателей и других деталей — машинка на радиоуправлении;
Два сервопривода непрерывного вращения;
Два обычных сервопривода (180 градусов);
Держатель для батареек типа АА и для «кроны»;
Датчик столкновений;
Светодиоды, фоторезисторы, постоянные резисторы на 10 кОм — всего по 4 штуки;
Диод 1n4001.
Пластиковая бутылка подходящего размера;
Вот основа — плата Ардуино с прото-шилдом.
Вот так выглядят запчасти от — колеса.
Конструкция почти в сборе, датчики установлены.
Суть работы робота заключается в том, что он едет на свет. Обилие нужно ему для навигации.
Это скорее ЧПУ станок, чем робот, но проект весьма занимательный. Он представляет собой 2-х осевой станок для рисования. Вот перечень основных компонентов, из которых он состоит:
(DVD)CD-приводы — 2 шт;
2 драйвера для шаговых двигателей A498;
сервопривод MG90S;
Ардуино Уно;
Источник питания 12В;
Шариковая ручка, и другие элементы конструкции.
Из привода оптических дисков используется блоки с шаговым двигателем и направляющей штангой, которые позиционировали оптическую головку. Из этих блоков извлекают двигатель, вал и каретку.
Управлять шаговым двигателем без дополнительного оборудования у вас не выйдет, поэтому используют специальные платы-драйверы, лучше, если на них будет установлен радиатор двигателя в момент пуска или смены направления вращения.
Полный процесс сборки и работы показан на этом видео.
Смотрите также 16 лучших Arduino проектов от AlexGyver:
Заключение
В статье рассмотрена лишь малая капля из всего того, что вы можете сделать на этой популярной платформе. На самом деле всё зависит от вашей фантазии и задачи, которую вы ставите перед собой.
С практической точки зрения – проще купить готовую плату и не заморачиваться, но навыки, полученные при изготовлении данной поделки,
в дальнейшем могут пригодиться.
Процесс изготовления любой самоделки
начинается с подготовки материально-технической базы.
Радиодетали:
- ATmega328;
- 2 электролитических конденсатора ёмкостью 10 uf (микрофарад);
- 2 конденсатора в круглом керамическом корпусе ёмкостью 22 pf (пикофарада);
- регулятор напряжения L7805;
- кварцевый резонатор 16 MГц;
- тактовая кнопка;
- светодиоды;
- панелька для микросхемы;
- регулятор напряжения LM1117T-3.3 (по желанию);
- 2 танталовых конденсатора ёмкостью 10 uf (микрофарад) (по желанию).
Инструменты:
- Паяльник;
- Мультиметр.
После того, как приобрели все радиодетали, пришло время произвести монтаж, но перед этим нужно сказать пару слов насчёт atmega328. Существуют два типа микросхем: с boot-loader (бутлоударом, он же загрузчик) и без него. Разница в цене микросхем не значительная, но если приобретёте «микруху» с бутлоударом, то сможете проскочить несколько шагов из данной статьи. Если же купите без загрузчика, то необходимо в точности выполнить всё, что описано в последующих шагах.
Загрузчик необходим для загрузки кода с Arduino IDE в микросхему.
Для этого шага будет нужна плата Arduino UNO. Следуя схеме, припаяем радиодетали на монтажную плату. На данной этапе, нет необходимости включать в схему регуляторы напряжения, так как Arduino обеспечит необходимое напряжение.
Настроим плату Аrduino UNO, как ISP. Это нужно сделать для того, чтобы плата прошила микроконтроллер ATmega, а не саму себя. Не подключайте ATmega, пока идёт загрузка кода.
- Подключим Arduino к ПК;
- Откроем Arduino IDE;
- Откроем > Примеры > Arduino ISP;
- Загрузим прошивку.
После того, как все элементы схемы соединены воедино, открываем IDE.
- Выбираем Arduino328 из Tools > Board
- Выбираем Arduino, как ISP из Tools > Programmer
- Выбираем Burn Bootloader
После успешной записи, вы получите «Done burning bootloader».
После прошивки загрузчика, завершим изготовлении платы. Регулятор напряжения L7805 – это важная деталь схемы. Распиновка следующая (смотрим на лицевую сторону): крайняя левая нога – вход, центральная нога – земля, а крайняя правая нога – выход.
Следуя схеме присоединим регулятор напряжения к arduino.
Данный шаг выполняется по желанию. Регулятор используется только для питания внешних шилдов/модулей, которым нужно 3.3В.
Как только завершим сбоку, пришло время загрузить первый код. Для прошивки удалим родной микроконтроллер ATmega 328 с платы UNO и заменим его новой микрухой. Как только загрузим код, поменяем микросхемы местами.
На этом всё! Спасибо за внимание!
Всем привет!
Учитывая популярность предыдущей статьи про цветомузыку я решил сделать вторую версию.
Основной упор был сделан на то, чтобы упростить схему, так как прошлая версия требовала сборки усилительного каскада на транзисторе, а также его настройки и это для многих явилось препятствием.
Для второй версии цветомузыки я решил использовать доступный к покупке модуль микрофона со встроенным усилителем на микросхеме MAX9814. Он обладает большим усилением 60 дБ и автоматической регулировкой усиления(АРУ). В коде так же были внесены программные улучшения.
В новой версии цветомузыки, добавил несколько световых эффектов и два светильника с регулировкой яркости все тем же потенциометром.
Режим выбирается как и раньше кнопкой Pattern, то есть в схеме не будет изменений.
И даже у того кто собрал первую версию цветомузыки, все дополнения тоже будет работать после перепрошивки, без каких либо изменений в схеме.
Код написан под схему с делителем из двух резисторов на ARef
и для правильной работы аналогового входа в старой схеме, нужно в процедуре void setADCFreeRunning()
закомментировать или удалить строку // analogReference(EXTERNAL);
и раскомментировать строку ADMUX |= _BV(REFS0);
Все режимы перебираются как и раньше кнопкой «Pattern»
Белое свечение — это все режимы которые относятся к цветомузыке.
Красное свечение — это режим цветомузыки с рандомным переключением режимов.
Синие свечение — это режимы бегущих огней, последние два из них светильники.
Яркость некоторых режимов регулируется потенциометром.
Помните, что чувствительность в отличие от регулировки яркости увеличивается против часовой стрелки. Если потенциометр на минимуме, то для для регулировки чувствительности аудио входа это максимум, а для регулировки яркости это минимум.
Схема цветомузыки
Требуемые компоненты
Arduino Nano
Светодиодная лента на WS2812B
Микрофон MAX9814
Потенциометр 20кОм
Код для Ардуино
В архиве вложены дополнительные библиотеки. Устанавливать их не требуется, важно, что бы они лежали в папке со скетчем
Скачать Ардуино скетч для цветомузыки
tolegs
11 декабря 2017 в 17:58
С наступающим! Приближается Новый год, а значит, пора срочно создавать настроение! Ну и как всегда в это время года рождаются десятки электронных схем различных цветомузыкальных установок.
Чего только самобытные мастера не придумают. От трехцветных моргалок до лазерных многолучевых установок с управлением по MIDI интерфейсу.

Как большой поклонник, так называемых адресных светодиодов, хочу показать вам очень простую и удивительную цветомузыку. Я вообще такой ни разу не видел. Пока не собрал за один вечер. Итак, визуализатор звука!
Инструкция
Схема очень простая!
Вам понадобятся Arduino Nano, или Uno. Или какая там у вас есть? Два потенциометра, пять резисторов, пару конденсаторов и линейка (лента) из 180 светодиодов WS2812b. Всё! Светодиодов в линейке может быть 60, 120 или 180.
В визуализаторе с помощью алгоритма быстрого преобразования Фурье выделяются 8 частот (порог чувствительности на каждую частоту свой, снижается от 1 к 8), преобразуются в цвет и выводятся на линейку светодиодов по одному из восьми алгоритмов. Скетч писал Майкл Крампас, парни из Чип и Дипа добавили функционал, а библиотека для светодиодов и быстрого преобразования Фурье (FFT) написана в Адафрут для проекта Piccolo. Библиотека FFT для 128 точек, адаптированная для AVR микроконтроллеров написана на ассемблере.
Сам скетч и библиотеку FFT нужно скачать здесь и здесь.
Не теряйте время на разбор алгоритмов, просто соберите, залейте скетч и наслаждайтесь шоу.
Это всего лишь развлечение!
В момент первого включения нужно сделать пару настроек:
Яркость: удерживайте кнопку color при включении питания. На первых 8 светодиодах будет отображаться радуга светодиодов. С помощью ручки param измените яркость. По завершении нажмите кнопку color еще раз, и ваша конфигурация будет сохранена в памяти.
Длина светодиодной полосы: удерживайте кнопку pattern при включении питания. Отобразится один, два или три красных светодиода. Используйте ручку param, чтобы выбрать длину светодиодной полосы в зависимости от количества красных светодиодов:
1=60 светодиодов
2=120 светодиодов
3=180 светодиодов
По завершении нажмите кнопку pattern еще раз, и ваша конфигурация будет сохранена в памяти.
Алгоритмы
Танцы плюс: пики звуковых сигналов испускаются из центра полосы и исчезают по мере приближения к концам. Скорость пика пропорциональна величине звукового сигнала этого пика.
Танцы минус: то же, что и Dance Party, но пики сигналов испускаются с одного конца.
Импульс: пики сигналов отображаются как яркие импульсы, которые поступают из центра полосы. Ширина импульса зависит от уровня сигнала.
Световая полоса: в пиках освещается вся полоса.
Цветные полоски: пики сигналов отображаются как цветные полосы, которые исчезают.
Цветные полоски 2: подобно цветные полоски, но каждая полоска сжимается и исчезает.
Вспышки: пики сигналов отображаются в виде светодиодной вспышки в случайном месте. Начальный цвет белый, а затем исчезает через другой цвет.
Светлячки: пики сигналов отображаются как одиночные светодиоды в случайном месте, и они перемещаются влево или вправо и исчезают. Их скорость зависит от величины сигнала.
Цветовые схемы
Случайная двухцветная схема: выбраны два случайных цвета и только они используются для отображения пиков сигнала. Со временем будут выбраны новые цвета. Используйте param, чтобы настроить скорость изменения цветовой схемы. Если ручка потенциометра «параметры» в верхнем положении, цвета будут меняться часто и каждый пик сигнала будет иметь новый цвет. Рекомендую установить ручку в средину.
Радуга: все пики сигналов отображаются как один и тот же цвет (с небольшим количеством случайных вариаций) и этот цвет меняется как радуга с течением времени. Скорость изменения цвета устанавливается потенциометром param.
Цветные частоты: в этом режиме каждый пик сигнала окрашивается в зависимости от частотной полосы где он находится. Самая низкая полоса красного цвета, и дальше вверх по спектру. Есть 8 полос частот: красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый, белый. Этот цветовой режим наиболее интересен, когда частотная характеристика настроена на все полосы частот.
Диапазон частот: вы можете управлять тем диапазоном частот, на который откликается цветомузыка. Чтобы установить диапазон нажмите и удерживайте обе кнопки. Используйте ручку param, чтобы выбрать, сколько из восьми частотных диапазонов будет показываться. Если вы хотите выделить бас и ритм музыки, установите частотную характеристику только на самые низкие 2 или 3 полосы. Если вы хотите показать все частоты в музыке (например, вокал и более высокие инструменты), выберите все полосы частот.
Это видеоинструкция по настройке и она же демонстрация визуализатора в работе. Там в конце две музыкальные композиции с разными алгоритмами.
Ещё одна композиция
Парни! И дамы конечно. Я очень хочу, чтобы вы успели сделать эту простую конструкцию к новогоднему празднику. Не пожалеете! Гости будут в шоке!
С наступающим 2018 годом!
Добавлено 15.12.2017 Эпилог или разбор полётов
1. Как изменить подсветку в паузах?
2. Можно ли изменить динамику?
3. Как подключить ленту с количеством светодиодов отличным от 60/120/180?
Плюс опубликована обновленная схема. Не волнуйтесь, добавили всего один резистор.
Осталось две недели до Нового года. Успеете собрать?
Добавлено 09.06.2018
Сделал настройки подсветки:
скетч и схема.
Пользуемся так.
Фоновая подсветка:
В паузах включается фоновая подсветка т.е вся линейка будет светится выбранным вами цветом и с выбранной яркостью.
Цвет: установите ручку потенциометра PARAM2 в среднее положение и один раз нажмите кнопку Background. Светодиодная линейка зажжется. Вращайте потенциометр PARAM2, цвет линейки будет меняться от красного до фиолетового. Выберите цвет и ещё раз нажмите кнопку Background.
Яркость: установите потенциометр в минимальное положение (ручку до упора по часовой) и нажмите кнопку Background. Линейка погаснет. Медленно вращая ручку потенциометра PARAM2 выберите требуемую яркость подсветки и ещё раз нажмите кнопку Background. Значения яркости запишется в память микроконтроллера.
Всем привет.
Имеются прямые руки, запас знаний по электронике, а также Arduino Due, текстовый ЖКИ с «квадратной» i2c шиной (тут, слава Богу, разобрался), 16-канальная плата ШИМ расширения выходов по i2c, энкодер (с ним мы тоже подружились), светодиоды, кнопки, ну, и желание СДЕЛАТЬ ЭТО. По факту должен получиться неплохой автомат типа «бегущих огней» с весьма расширенными возможостями.
BEGIN // Я знаком с программингом, но не Wire и не С++, поэтому за какие-то элементарные (на ваш взгляд) вопросы сильно не пинайте. Сразу объявлю константу, что перед каждым вопросом был поиск в гугеле с невнятными или отрицательными результатами. И ещё одну: я не прошу написать для меня код. Мне нужно понять, как составить чёткую последовательность действий, и разобраться с не задокументированными фичами.
OUTPUT // На 16 ШИМ-выходах платы имею желание получать попеременные наборы сигналов (будем выбирать их из массива) с частотой переключения наборов, регулируемой энкодером. Как управлять скоростью переключения (через энкодер) без delay — пока ума не приложу.
Каждый массив — это «программа» бегущего огня.
Для простоты возьмём не 16, а 4 ШИМ выхода. Тогда массив бегущего в одну сторону огня будет выглядеть так:
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
«Бегущая тень» — соответственно, инверсия предыдущего массива:
0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0
Когда массив заканчивается — возвращаемся снова к первой строке. То есть бесконечный цикл, пока мы кнопкой или энкодером (через прерывание) не подсунем основному лупу другой массив. Базовый набор массивов будет «вшит» жёстко, но будет ещё возможность пользовательской записи «пресетов», управляемой энкодером и контролируемой на ЖКИ (2004). Область записи пресетов — EEPROM (ну, или SD — жизнь покажет).
Для чего ШИМ?
Ну, во-первых, эконом-вариант расширения пинов по i2c. Во-вторых, возможность регулировки общей и поканальной яркости. В-третьих, возможность создавать, к примеру, «бегущую искру» — т.е. каждый выход впыхивает, плавно гаснет, затем переключается на следующий шаг.
Теперь, собственно, основной вопрос на данный момент *(как бы базовый). Есть серии импульсов, завёрнутые в массивы. Как правильно нужно сформировать интервал между ними (регулировка энкодером, значения которого будут например от 0 до 64, при этом каждому значению энкодера можно было бы подбирать чёткую визуальную частоту), не прибегая к прямым задержкам (delay)? То есть сформировать шаг между бегущими огнями? Понимаю, что надо что-то делать с миллисами, но как — не могу понять… Подтолкните плз!












































































