настройка ambibox windows 10
Делаем адаптивную фоновую подсветку для ТВ или монитора по типу Philips Ambilight за 1000 рублей
Компания Philips в 2007 году запатентовала невероятно простую, но, без преувеличения, потрясающую технологию фоновой подсветки ТВ Ambilight. С такой адаптивной подсветкой меньше устают глаза при просмотре в темноте, увеличивается эффект присутствия, расширяется область отображения и пр. 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 можно использовать Prismatik.
Второй вариант — источником сигнала выступает медиаприставка на базе 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 м). Подложка чёрного и белого цвета.
Вот пример такой ленты:
Вот пример такой ленты:
Важный фактор — питание ленты, о чём я расскажу чуть позже.
Если у вас дома окажется подходящий по мощности блок питания (часто дома от старой или испорченной техники остаются блоки питания), то выбирайте ленту, исходя из напряжения блока питания, т.е. 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 параллельных соединения (объяснения будут чуть позже в статье).
Покупка микрокомпьютера
Управлять Ambilight будет микрокомпьютер Arduino. Arduino Nano на Алиэкспресс стоит около 2,5$ за штуку.
Затраты на мой вариант (для ТВ 42″):
10$ — 2 метра WS2812B IP65 (30 светодиодов на метр)
4$ — блок питания 5 В / 4 А (денег на БП не тратил, привожу стоимость для ясности)
2,5$ — Arduino Nano
————
16,5$ или 1000 рублей
Реализация аппаратной части
Самое главное — это правильно организовать питание ленты. Лента длинная, напряжение просаживается при большом токе, особенно при 5 В. Большинство проблем, которые возникают у тех, кто делает себе Ambilight, связаны именно с питанием. Я пользуюсь правилом — нужно делать отдельную подводку питания на каждые 10 Вт потребляемой максимальной мощности при 5 В и 25 Вт потребляемой мощности при 12 В. Длина подводки питания (от блока питания до самой ленты) должна быть минимальной (без запаса), особенно при 5 В.
Общая схема подключения выглядит следующим образом (на схеме отображено подключение питания для моего варианта):
К Arduino от ленты идут два контакта. GND, который нужно подключить к соответствующему пину на Arduino. И DATA, который нужно подключить к шестому цифровому пину через резистор 300-550 Ом (лучше 470 Ом). Если резистора у вас нет, то в большинстве случаев всё будет прекрасно работать и без него, но лучше, чтобы он был. Резистор можно купить за пару копеек в любом радиомагазине. Сам микрокомпьютер Arduino можете разместить в любом удобном корпусе, многие используют для этого яйцо Киндер-сюрприза. Arduino нужно размещать как можно ближе к ленте, чтобы подводка DATA имела минимальную длину.
Припаивать провода к ленте просто. Главное правило — время контакта с паяльником должно быть минимальным, «возюкать» паяльником нельзя.
В моём случае получилось вот так:
Два чёрных качественных USB кабеля пошли на питание, а белый для подключение к компьютеру. Белые термоусадочные трубки у меня закончились, я использовал красные. Не так «красиво», но меня устраивает (всё равно это спрятано за ТВ).
Важный вопрос — как изгибать ленту под прямым углом? Если у вас лента на 60 светодиодов, то ленту нужно разрезать и соединять короткими проводами (разместив всё это в термоусадочной трубке). Можете купить специальные угловые коннекторы на три контакта для светодиодных лент (на снимке 4 контакта, просто для примера):
Программная часть
Загружаем и распаковываем Arduino IDE. Загружаем библиотеку FastLED и кладём папку FastLED в папку libraries (Arduino IDE). Запускаем Arduino IDE и закрываем её. В папке Документы будет создана папка Arduino. В ней создаём папку Adalight и копируем тут скетч Adalight.ino.
Подключаем микрокомпьютер Arduino по USB. Драйвер (последовательного интерфейса CH340) установится автоматически. Если этого не произошло, то в папке Arduino IDE есть папка Drivers со всем необходимым.
Запускаем Arduino IDE и открываем файл Adalight.ino.
Нажимаем кнопку «Загрузить»:
Готово. Нужно отключить Arduino от USB и подключить заново. Лента загорится последовательно красным, зелёным и синим цветом — Arduino активировался и готов к работе.
Загрузите и установите программу AmbiBox. В программе нажмите «Больше настроек» и укажите устройство — Adalight, COM-порт и количество светодиодов. Выберите количество кадров для захвата (до 60).
Вот в принципе и всё. Результат вы видели в начале статьи. Ничего сложного, дёшево и здорово. Уверен, что у вас получится лучше, так что делитесь своими поделками в комментариях.
Часто задаваемые вопросы
1. Возможно вы выключили зоны когда двигали их
2. Неисправны светодиоды.
Ответ: Начиная с PlayClaw 4, AmbiBox может захватывать изображение с полноэкранных приложений, т.е. программы в полноэкранном режиме используют монитор в монопольном доступе (игры, видеоплееры), в этом режиме запрещается захватывать изображение с экрана и выводить изображение на экран. Чтобы захватить изображение экрана в полноэкранном режиме необходим сложный алгоритм захвата экрана для каждой программы, у разработчика AmbiBox нет таких ресурсов для поддержки захвата для всех программ, зато она есть у специализированной программы по захвату видео с экрана PlayClaw. Поэтому AmbiBox может через PlayClaw может захватывать изображения с экрана. PlayClaw 5 оптимизирована для работы с AmbiBox.
Ответ: Такое бывает в зависимости от игры. В одних играх при максимальных настройках FPS не проседает, а в других при максимальных настройках проседает сильно. Частично эту проблему можно решить если запускать игру в оконном режиме, а не в полноэкранном режиме. Некоторые игры поддерживают запуск в оконном режиме, а другие нет. Чтобы запустить игру в оконном режиме для тех игр которые не могут запускаться в оконном режиме скачайте и попробуйте программу:
Особенно хорошо это работает в Windows 8, когда в AmbiBox выставлен метод захвата Windows 8.
Ответ: Эта другая цветомузыка находится если выбрать режим плагины.
Ответ: Неправильно настроена цветокоррекция, для исправления нажмите кнопки
Ambientlight подсветка своими руками
На картинке изображен наш 40” телевизор с Ambientlight подсветкой, сделанной собственными руками. Подсветку по трем сторонам обеспечивают 50 светодиодов, которые управляются при помощи платы Arduino. Что касается программного обеспечения, то работает подсветка при помощи ПО Ambibox и библиотеки FastLED для Arduino.
Материалы
Предупреждение!
Данный проект очень дешев, но работает только при помощи ПК. Вы не сможете использовать данный проект на автономном ТВ, так как для его работы необходимо ПО, работающее в фоновом режиме на ПК.
Linux или Mac не поддерживается. Программное обеспечение Ambibox доступно только на Windows.
Светодиоды отлично работают на рабочем столе и при просмотре фильмов и фотографий. С играми другая история. Если запущена игра в полноэкранном режиме, программа может быть не в состоянии захватить изображение.
Необходимые светодиоды
Светодиоды являются одной из самых важных частей нашего проекта. Но какие именно светодиоды вы будете использовать – не столь важно. Главное, чтобы они поддерживались библиотекой FastLed.
Наиболее распространенными являются светодиоды WS2811 или WS2812, так как они дешевы и достаточно просты в использовании. Можно использовать как отдельные светодиоды, так и светодиодные ленты.
Мы выбрали отдельные светодиоды, так как в этом случае шаг и расположение светодиодов можно устанавливать на свой выбор. Но у ленты есть одно существенное преимущество – крепить ее намного проще. Если вы выберите для своего проекта ленту, то создавать рамку, над которой мы будем работать дальше, вам не придется.
Теперь необходимо рассчитать количество необходимых светодиодов. Мы использовали шаг в 30мм между светодиодами. При такой расстановке 50 светодиодов хватает для четырехстороннего расположения на 27” экране или трехстороннего на 40”.
Рамка для светодиодов
Так как нами для проекта были выбраны отдельные светодиоды, а не лента, их необходимо как-то упорядочить и закрепить. Для этого мы и построим данную рамку.
Для создания рамки мы выбрали алюминий. Необходимо вырезать три полосы по размеру экрана и собрать их воедино. Напомню, что в нашем случае будет использоваться трехсторонняя подсветка, так как ТВ стоит на столе. Если же в вашем случае ТВ закреплен на стене, лучше использовать подсветку по всем четырем сторонам.
Arduino Nano
Для управления светодиодами нужен контроллер. Именно в этой роли и выступает плата Arduino Nano. Для подключения нам понадобится разъем USB, один цифровой контакт и заземление.
Питание
Для работы светодиодов необходимо подать на них питание. Обычно это 5V. Лучше всего купить отдельный блок питания, который будет подходить по мощности. Можно конечно использовать 5V, от блока питания на ПК, но этот вариант намного сложней и требует определенных знаний и опыта. Поэтому я его не советую.
Подключение
Если вы используете светодиоды WS2811/12, вам необходимо произвести всего 3 соединения.
ПО для Arduino Nano
Первым делом необходимо установить библиотеку http://fastled.io/.
Код можно написать самостоятельно или же использовать готовый.
Возможно вам будет необходимо изменить некоторые данные кода:
ПО Ambibox для Windows
Данное ПО является бесплатным и его можно без проблем скачать с сайта производителя.
После установки следует изменить один файл. Путь: C: \ Program Files (x86) \ AmbiBox \ SerialPortConfig.ini. Изменяем скорость передачи данных на «Adalight 50000». Так как нам нужны одинаковые значения и в коде Arduino, и здесь. После изменения сохраняем файл и перезапускаем программу.
Основные настройки
Самые важные для нас настройки находятся в графе «Дополнительных настроек». Здесь мы устанавливаем количество светодиодов и другие основные параметры.
Область захвата
Как несложно догадаться, здесь мы выбираем область экрана для захвата изображения. Нам необходимо захватить весь экран, поэтому выбираем «Wizard capture zones» и выделяем весь экран. Далее сохраняем и закрываем настройки.
Ну вот и все! Наша подсветка полностью готова!
И снова Ambilight своими руками
В принципе, технология изготовления полностью описана @CableGuy и @Fresta в их постах, но кое-какие отличия все же имеются. Во-первых, в качестве источника света была выбрана светодиодная лента на черной подложке и двустороннем скотче:
Думаю, многие согласятся, что такой вариант монтажа несколько практичней крепления на картонное основание. И, собственно, сам процесс изготовления и тестирования:
Во-вторых была использована усиленная система питания из двух USB-кабелей (с каждого конца), так как полевые испытания показали, что на полной яркости лента из 49 диодов (монитор 24 дюйма) ест почти 3 ампера.
Далее, был загружен скетч, установлен весь необходимый софт и произведена настройка. Отдельная благодарность @chupsss за его комментарий #comment_61406165
По цене вышло примерно в 1,5 тысячи рублей, 2 метра ленты + ардуино, и, поверьте, оно того стоит.
Так это выглядит при настройке:
Пара слов о играх на весь экран и Windows 10. PlayClaw отказался работать с AmbiBox. По моим наблюдениям, игры с поддержкой DirectX 9 и ниже прекрасно работают с методом захвата Windows 8, а остальные придется запускать в окне. Хотя, Fallout 4, при выставлении в настройка оконного режима, запустился на весь экран и подсветка при этом работала.
Стандартная визуализация Aimp’а
Производительность: на Core i5-4670k работы AmbiBox’а не заметно, максимум загрузки 1-5%
Крайне рекомендуется к изготовлению. Всем, спасибо за внимание и хороших выходных!
Если клеить диоды не параллельно плоскости монитора, а чуть под углом, площадь освещения увеличится?
тоже делал себе но не пойму почему зон подсветки мало, т.к. в скетче 33 светодиода поставил а работают только 11 зон с ними и пришлось играться. моник 22″ и у меня почему-то не белый свет я синевато-фиолетовый. остальные вроде нормально передаются. такие дела
автор, если не трудно, нарисуй схему подключения с доп питанием как у тебя, мне на 28 дюймов оно вероятнее всего тоже потребуется
в интернете схемы подключения с доп питанием только через rgb-усилитель
Че то дергается все. Ты б плавность то подкрутил.
как ты определил что они едят 3 Ампера?
Прокачайте и мой монитор за деньги )) готов оплатить)
Ребят, привет. По случайности заказал вот эти диоды http://www.aliexpress.com/snapshot/7392435187.html?orderId=7. там мк Ws281, кто-нибудь изменял скэтч под этот мк? есть идеи? проблема в том что, тут 3 выходы: 1-gnd, 2-vcc, 3-data. А скетч написан для 4 проводного мк(
Косячный Arduino CNC Shield v4. Полное восстановление работоспособности
Купил я себе Arduino CNC Shield v4. Как оказалась данный шилд косячный, и про эту проблему известно давно, а китайские производитель так и продают их с данным браком. Но я решил не выбрасывать данную плату, а реанимировать.
Первое что нужно сделать, это настроить прошивку, так как при разводке платы перепутаны местами контакты step и dir.
Второе что не работает это деление шага. Чтобы сделать максимальное деление шага можно припаять 3 перемычки. Внимание джамперы ставить в данном случае нельзя, ЗАМКНЕТ!
Если вам нужно выставлять деление шага можно перерезать дорожки и припаять 5 перемычек. Подробнее про данный способ читайте на сайте.
Что меня удивляет это факт того, что CNC Shield v4 стоит дороже чем его не бракованный брат Arduino CNC Shield v3. Почему так?
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!
Детская игровая кухня своими руками
Собрав ребенку кукольный домик из каркаса выкатного ящика от дивана, выкинутого на свалку, решил сделать ребенку кухню, так как покупная пластиковая кухня для дочки стала мала, сгибается в три погибели.
Пока созревал план-банан, шерстил бескрайние просторы всемогущего интернета, и вот зацепил меня один проект. Евгений собрал для своей дочки чудо-кухню, и готовит, и стирает, пени поёт, а еще и сказки рассказывает. Ух как мне понравилось, аж прям загорелось всё ярким пламенем (внутри). Вот ссылка на проект кухни Евгения.
И вот, по прошествии некоторого времени разродился проект, который вам и предоставляю.
Общий вид кухни, уже оккупированной нетерпеливой шеф-поваром =)
Имитация кухонной мойки. По задумке к смесителю будет подключён сенсорный датчик (жду с али), при касании будет воспроизводиться звук льющейся воды в раковину.
Кухонная плита и духовой шкаф. В духовке еще не установлены решетки, но они будут, куда ж без них =) Имитация работы конфорок и духовки плавно регулируются. Конфорки имеют звуковое сопровождение шкварчащей сковороды и бульканья воды при кипении. Выключатели включают общий свет на кухне (рабочая зона) и свет в духовом шкафу.
А вот некоторые моменты обратной стороны медали =)
Здесь находится основное управление космическим кораблём кухней, плеер, реле управления светом, датчик температуры и влажности, усилитель, дисплей и энкодер. Энкодер позволяет регулировать громкость в обычном режиме, и имеет возможность переходить в служебный режим для осуществления настроек.
При включении кухня приветствует ребенка разными фразами, в зависимости от времени суток, причём, фразы выбираются рандомно. Для каждого времени суток я записал по 3 фразы, чтобы не надоедало =)
Здесь живёт крутилка и шумелка, а так же пищалка, которая озвучивает нажатия кнопок на матрице (можно отключать в настройках энкодера)
Тут расположены усилители и голосовые модули с записанными звуками для плиты, духовки и смесителя. Динамики приклеены с обратной стороны, поближе к органам управления. Справа виден драйвер для управления двигателем микроволновки и яркостью плиты и духовки.
И, наконец, общий вид ЦПУ =)
Небольшой обзорчик работы кухни =)
Всем спасибо за внимание и радуйте своих детей =)
Сенсорный кодовый замок своими руками
Сегодня расскажу, как сделать сенсорный кодовый замок своими руками. На подобии тех, что были популярны в фильмах лет 7-10 назад. Тему контроля доступа я уже затрагивал в одной из предыдущих публикаций. А сегодня в меню кодовый замок.
Кодовый замок отлично подойдёт, если вы храните заначку в «Банке» и у вас есть желание ограничить доступ к ней. Чтобы жена и теща не могли без вашего ведома опустошить ваши накопления.
Вот так это выглядит у меня.
Правда, это всего лишь стенд для проекта. Но в планах установить что-то подобное на шкафчик, где хранятся документы. Просто надоедает открывать и закрывать его ключом, которого постоянно нет под рукой.
А с кодовым замком ничего искать не нужно. Главное пароль не забыть!
Скачать исходные материалы к проекту можно тут.
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!
Подключение энкодера к Ардуино и полнофункциональный код обработки для него
Собирая один из проектов с использованием encoder. Я не смог найти код для Ардуино выполняющий все мои условия. Так как для проекта нужно обрабатывать следующие команды: «Вращение без нажатия», «Вращение с нажатием», «Нажатие» и «Длинное нажатие», а так же требуется стабильная работа энкодера. Скетчи использующие один пин с прерыванием INT0 или INT1, работают отвратительно и при вращении вала энкодера вылетает очень много ошибок. Код без использования прерываний работает стабильно, но он не работает в фоновом режиме, его нужно встраивать в тело основной программы, что в свою очередь приводит к не своевременному срабатыванию обработчика и пропускам при вращении энкодера. Еще хуже обстоят дела с обработкой нажатия с вращением вала энкодера и обычным с нажатием. Пришлось написать свой код обработки, который исключает описанные выше проблемы. С дребезгом контактов я не стал бороться программно, так как это приводит к задержкам обработки. Проще и надежней использовать керамические конденсаторы.
Схема подключения энкодера к Ардуино
Для считывания сигналов с выходов EC-11, нужно использовать три цифровых входа Arduino. В схеме подключения я использовал редко используемые мной в своих проектах выводы Arduino(A1, A2 и A3). Внешние подтягивающие резисторы отсутствуют, так как я использовал внутреннюю подтяжку микроконтроллера. Конденсаторы нужны для гашения импульсов дребезга контактов. Если у вас новый и хороший энкодер, то можно обойтись и без них. Но на кнопку в любом случае потребуется конденсатор, так как ее дребезг неизбежен.
Используемые в схеме компоненты:
Код обработчика при каждом срабатывании записывает в переменную lastcomb состояние входов, к которым подключен энкодер. И ждет состояние когда выходы A и B будут замкнуты на GND, это гарантированный сигнал того, что энкодер вращается. После того как этот сигнал получен, обработчик проверяет в какую сторону было вращение. Для этого он сравнивает его предыдущее значение из переменной lastcomb и в зависимости от фазы сдвига определит в какую сторону был поворот ротора. Как я писал ранее, сложнее всего отслеживать нажатие кнопки.
Так как использовать определенные тайминги я не планировал, потому, что они неизбежно приводят длительным задержкам работы обработчика и основной программы, или требуют использование таймера, которых в микроконтроллере всего 3 шт. их, как правило никогда не хватает. Собственно проблема состояла в том, чтобы разделить «нажатие с последующим вращением» от простого нажатия. В итоге как вы уже можете убедиться, я решил эту задачу. Оптимизацией кода я не стал заниматься, потому как все работает и меня все устраивает. Для наглядности в коде все действия с энкодером, отображаются в Serial мониторе программы Adruino IDE.
/*
При публичном размещении кода ссылка на первоисточник обязательна.
*/
#define btn_long_push 1000 // Длительность долинного нажатия кнопки
volatile uint8_t lastcomb=7, enc_state, btn_push=0;
volatile int enc_rotation=0, btn_enc_rotate=0;
volatile boolean btn_press=0;
volatile uint32_t timer;
//********************************
void setup()
<
pinMode(A1,INPUT_PULLUP); // ENC-A
pinMode(A2,INPUT_PULLUP); // ENC-B
pinMode(A3,INPUT_PULLUP); // BUTTON
PCICR = 0b00000010; // PCICR |= (1 btn_long_push) // проверяем сколько прошло миллисекунд
<
enc_state=4; // было длинное нажатие
> else <
enc_state=3; // было нажатие
>
btn_press=0; //обнулить статус кнопки
>
timer = millis(); //сброс таймера
lastcomb = comb; //сохраняем текущее состояние энкодера
>
Результат работы кода меня порадовал и теперь я могу продолжить работу над своим новым проектом, который скоро здесь выложу. Надеюсь эта короткая статья вам понравилась и вы сможете воспользоваться моей наработкой в своих самоделках.
Если у Вас остались вопросы и замечания, пишите их в комментариях. Я с удовольствием на них отвечу.
Делаем сенсорную клавиатуру для компьютера своими руками
Для удобства использования бывает, нужно сделать выносную компьютерную клавиатуру с различным набором функций. Сегодня рассмотрим, как можно сделать сенсорную клавиатуру для компьютера своими руками.
Понятно, что использовать дисплей Nextion приемлемо в том случае, если вы делаете красивую внешнюю клавиатуру для вашего бизнеса, где вашему клиенту нужно вводить пароль, например, полученный по СМС или другую информацию.
Но для домашнего применения дисплей Nextion дороговат. Поэтому вместо дисплея можно использовать более дешёвые сенсорные дисплеи или матричную клавиатуру 4х4, как с ней работать читайте тут.
Результат получаем вот такой.
Количество клавиш и их функционал можно изменять. Или сделать что-то на подобии этого.
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!
4xiDraw: самодельный плоттер на Arduino
Решил я собрать еще один плоттер. Но не из карандашей, как собирал в предыдущий раз. А на валах и линейных подшипниках.
Не смотря на то, что все делал из готовых комплектующих, без применения нестандартных комплектующих не обошлось.
Сделал 4 ролика из пластиковых втулок. А также из двух гвоздей сделал шпильки, по которым ездить механизм нанесения рисунка.
В итоге получил вот такой результат.
Это первый запуск. Планирую сделать пару доработок, что получится, обязательно расскажу. Не забудь подписаться, чтобы не пропустить!
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!
Быстрое и красивое оформление интерфейса на дисплее Nextion
Недавно делал проект на Arduino и дисплее Nextion. В котором нужно было сделать сложный фон для оформления интерфейса управления. Реализовать теми методами про которые я рассказывал в предыдущих уроках про дисплей Nextion достаточно сложно. Поэтому появился повод снять еще одни урок по данной теме.
Создать дизайн данного интерфейса, можно используя всего 2 изображения.
Пассивное состояние кнопки
Активное состояние кнопок.
В рамках урока реализовал вывод и скрытие текста новым методом. Для этого понадобится два дополнительных изображения.
В ближайшее время будет проект по данному уроку. Подпишитесь, чтобы не пропустить!
Исходные материалы для урока можно скачать тут.
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!
Передаем данные с Arduino на компьютер и строим график по полученным данным
Управление реле с компьютера делал на Processing. Но, к сожалению, когда реши сделать боле сложные проекты, Processing мне не подошел. Решил я прейти на Visual Studio C#. И реализовал небольшой проект по получению температуры и построению графика по полученным данным.
Интерфейс приложения Windows Forms.
• Автоматический вывод Com-портов при запуске программы.
• Закрытие используемого Com-порта при закрытии программы.
• Обновление списка портов.
• Вывод текущей температуры.
• Вывод графика изменения температуры.
• Имение диапазона времени выводимой информации на графике.
Это мое первое приложение C# Windows Forms, прошу строго не судить.
Исходные материалы можно скачать тут.
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!
Давайте делать крутые уникальные DIY-проекты, а не очередные ардуино-кликеры. Идей всем, разбирайте!
А можно я накидаю идеек для таких DIY-проектов для тех, у кого руки чешутся что-то такое соорудить? А-то, как уже сказали, кликер покупной дешевле этой самоделки выходит и продается на каждом шагу. Так почему бы не сделать что-то уникальное?
1. Электронные булавки для карты.
Идея в том, чтобы наделать светодиодных булавок для карты, а потом с компа управлять их свечением и миганием разными цветами.
2. Кораблики.
Контроллер со светодиодом как в прошлом проекте, но корпуса нарезаются из пенопласта горячей проволокой по кондуктору, добавляются два маленьких моторчика с удлиненными валами и гребными винтами и драйвер для управления ими. Весь кораблик примерно размером с палец. Идея в том, чтобы этих корабликов было несколько десятков. Пускаем их на воду, а с берега или моста смотрим на них обычной веб-камерой и светим инфракрасным сетодиодным прожектором с модуляцией сигнала.
Камера отслеживает огоньки и математически определяет координаты корабликов. Чтобы понимать где какой именно, можно давать сигнал конкретным корабликам выключить или переключить свет на долю секунды. Далее трекать уже по свечению. Динамическим управлением корабликам можно задавать произвольные траектории, делать из них красивые узоры и построения. Это как шоу дронов, только на воде.
Фактически это микрофон с кнопкой на петличку. Его задача непрерывно писать звук вокруг, иметь внутри часы и в специальном файлике запоминать когда нажималась кнопка.
Идея в том, чтобы не приходилось ничего записывать в блокнотик. Просто ставим закладку кнопкой на записи и говорим (опционально) заголовок. Прибор сливает записанное во время зарядки через USB на комп. В это время работает на запись другой такой же прибор. При записи можно шифровать звук ассиметричным ключом так, чтобы завладев неправомерно петличкой с нее нельзя было получить звук. На компе при зарядке речь распознаётся и индексируется для текстового поиска. Можно в веб-интерфейсе видеть весь таймлайн с метками и заголовками, можно прослушать произвольные куски, пометить их ненужными, важными или прочитанными.
Такой девайс очень недооценён в походах, сплавах, путешествиях, когда путевые записи делать некогда, но непрерывно возникает необходимость делать какие-то пометки для отчета. Это цены за проезд и пирожки, это какие-то ориентиры, это номера телефонов и адреса, это разъяснения местных как докуда-то добраться (возможно на малознакомом языке), это комментарии о порогах и завалах на маршруте. По временнЫм меткам запись четко привязывается к GPS-треку, который записывается каким-то другим устройством.
Смартфоны, к сожалению, пока что не могут выполнять такую функцию непрерывной записи, нужно более энергоэффективное специализированное устройство.
4. Контроллер для интеграции дешевой бытовой техники в умный дом.
Проблема. Есть, к примеру, хорошая недорогая, но качественная стиральная машина. Как интегрировать её в «умный дом»?
Делаем небольшое типовое устройство на базе ESP с вайфаем. Питаться оно может от внутреннего низковольтного БП стиральной машины, должно иметь несколько входов, заточенных на подключение параллельно индикаторным светодиодам стиральной машины и управляющим кнопкам без фиксации. Можно предусмотреть индуктивный датчик тока на основе токового трансформатора в виде петли вокруг силового кабеля для детекции нагрузки тэна, например.
Такое устройство сможет запустить стирку в заданное время, даже если машина изначально не имела таймера. Позволит отдавать статус её работы в контекст умного дома. Можно спросить у Алисы закончилась ли стирка, можно попросить ее напомнить по окончании или получить уведомление на смартфон.
5. Умный плеер для мягких игрушек.
6. Походный сетевой коммуникатор.
Устройство, объединяющее в себе приёмо-передатчик в гражданском диапазоне, КВ-пейджер, GPS-трекер и GSM-шлюз.
Идея в том, чтобы объединять группы людей на пересеченной местности просто и прозрачной связью. Дать возможность адресно обмениваться короткими текстовыми и голосовыми сообщениями в реальном времени и режиме почтового ящика. Устройства связываются со всеми такими же устройствами по всем каналам, по каким могут достучаться, синхронизируют передачи друг с другом, имеют блютус\wifi, которые позволят со смартфона видеть на карте другие устройства. Удобно размещать такое в базовом лагере как ретранслятор, удобно ставить стационарно такие устройства в экспедиционном автомобиле с хорошей антенной, удобно раздавать такие отделяющимся группам для стыковки и координации.
Конструктивно это водозащищенный кирпич с мелким экономичным ЖК-экранчиком для текстовых сообщений и гнездом для сменных аккумуляторов 18650.