Оглавление:
- Шаг 1. Передатчик с акселерометром
- Шаг 2: приемник с RGB-светодиодом
- Шаг 3: C-программирование
- Шаг 4: результат
Видео: Rgb-светодиоды, управляемые беспроводным акселерометром: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:54
МЭМС (микроэлектромеханические системы) Акселерометры широко используются в качестве датчиков наклона в мобильных телефонах и камерах. Простые акселерометры доступны как в виде микросхем, так и дешевых печатных плат для разработки.
Беспроводные микросхемы также доступны по цене и доступны в собранных схемах с согласованной антенной сетью и развязывающими крышками на борту. Подключите беспроводную плату и акселерометр к микроконтроллеру через последовательный интерфейс, и вы получите беспроводной контроллер с функциями nintendo-wii. Затем создайте приемник с беспроводным чипом того же типа и RGB-светодиодами с ШИМ-управлением, вуаля, у вас есть беспроводное цветное освещение комнаты с регулируемым наклоном. Держите плату передатчика горизонтально, макетной платой вверх, светодиод будет холодным синим цветом, активен только синий светодиод. Затем наклоните передатчик в одном направлении, и вы смешаете красный или зеленый цвет в зависимости от того, в каком направлении вы его наклоните. Наклоните полностью до 90 градусов, и вы пройдете через все смеси красного и синего или зеленого и синего, пока не станет активным только красный или зеленый при наклоне 90 градусов. Немного наклоните по осям x и y, и вы получите сочетание всех цветов. Под углом 45 градусов во всех направлениях свет представляет собой равное сочетание красного, зеленого и синего, другими словами, белый свет. Используемые детали можно приобрести в интернет-магазинах электроники для хобби. Должен быть идентифицирован по некоторым фотографиям.
Шаг 1. Передатчик с акселерометром
Передатчик построен на базе микроконтроллера Atmel avr168. Удобная красная плата с 168 - это плата Arduino с регулятором напряжения и схемой сброса. Акселерометр подключается к avr через шину i2c с битовой связью, а беспроводная плата подключается через аппаратный SPI (последовательный периферийный интерфейс).
Макет полностью беспроводной, под ней закреплен батарейный блок на 4,8 В. Беспроводная плата и Arduino Wee принимают напряжение до 9 В и имеют встроенный линейный регулятор напряжения, но акселерометру требуется 3,3 В от регулируемой шины.
Шаг 2: приемник с RGB-светодиодом
Ресивер основан на демонстрационной плате atmel avr169 под названием butterfly. У платы есть много функций, не использованных в этом проекте. Беспроводной трансивер подключен к PortB, а светодиод с ШИМ-управлением подключен к PortD. Питание подается на ISP-разъем, 4.5В вполне достаточно. Беспроводная плата может выдерживать напряжение 5 В на выводах ввода-вывода, но для этого требуется питание 3,3 В, которое обеспечивается встроенным регулятором.
Модифицированный соединительный кабель для RF-трансивера действительно удобен и соединяет беспроводную плату с питанием и аппаратным spi-контроллером на бабочке. Shiftbright - это контроллер широтно-импульсной модуляции с RGB-подсветкой, который принимает 4-байтовые команды, которые фиксируются, а затем фиксируются на выходных контактах. Действительно легко подключить последовательно. Просто переместите много командных слов, и первое смещенное слово окажется на последнем подключенном светодиоде в гирляндной цепи.
Шаг 3: C-программирование
Код написан на C, так как мне было наплевать на изучение «более простого» языка обработки, на котором основана Arduino. Я сам написал интерфейс SPI и rf tranceiver для обучения, но позаимствовал ассемблерный код i2c с avrfreaks.net. Интерфейс shiftbright имеет битовый код в C-коде. Одна из проблем, с которой я столкнулся, заключалась в небольших изменениях в выходном сигнале акселерометра, из-за которых светодиод сильно мерцал. Я решил это с помощью программного фильтра нижних частот. Скользящее средневзвешенное значение значений акселерометра. RF-трансивер поддерживает аппаратный контроль и подтверждение с автоматической ретрансляцией, но для этого проекта более важным было плавное обновление светодиодов в реальном времени. Не обязательно, чтобы каждый пакет со значениями акселерометра попадал к получателю в неизменном виде, если поврежденные пакеты отбрасываются. У меня не было проблем с потерянными радиочастотными пакетами в пределах 20 метров прямой видимости. Но дальше связь стала нестабильной, и светодиоды не обновлялись постоянно. Основной цикл передатчика в псевдокоде: initialize (); while (true) {Values = abs (получить значения акселерометра x, y, z ()); RF_send (значения); delay (20ms);} Основной цикл получателя в псевдокоде: initialize (); while (true) {newValues = blocking_receiveRF ()); rgbValues = rgbValues + 0,2 * (новые значения-rgbValues); напишите rgbValues в shiftbrigth;}
Шаг 4: результат
Я был поражен тем, насколько плавным и точным было управление. У вас действительно есть контроль точности цвета кончиками пальцев. Контроллер pwm-LED имеет разрешение 10 бит для каждого цвета, что дает миллионы возможных цветов. К сожалению, акселерометр имеет только 8-битное разрешение, что снижает количество теоретических цветов до тысяч. Но по-прежнему невозможно ощутить какой-либо шаг в изменении цвета. Я вставил приемник в ИКЕА-лампу и сфотографировал ниже разных цветов. Еще есть видео (правда ужасного качества)
Рекомендуемые:
Micro: bit Управление роботом с акселерометром: 4 шага
Управление роботом Micro: bit с помощью акселерометра: в этой статье мы собираемся использовать комплект BitCar от TinkerGen для создания робота Micro: bit и управления им с помощью акселерометра на другой плате Micro: bit. BitCar - это основанная на micro: bit система do-it- Сам робот предназначен для обучения STEM. Легко собрать, е
Сделай сам - Светодиодные плафоны RGB, управляемые Arduino: 5 шагов (с изображениями)
Сделай сам | Светодиодные плафоны RGB под управлением Arduino: Сегодня я собираюсь научить вас, как создавать свои собственные светодиодные очки RGB очень легко и дешево Это всегда было одной из моих самых больших мечтаний, и она наконец сбылась! Огромный привет NextPCB за спонсорство этот проект. Они производитель печатных плат
Shelly Sense - с беспроводным питанием (стандарт WPC Qi): 5 шагов (с изображениями)
Shelly Sense - с беспроводным питанием (стандарт WPC Qi): ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: следуя этому руководству, вы потеряете гарантию и рискуете нарушить работу Shelly Sense. Делайте это только в том случае, если вы знаете, что делаете, и если вы знаете о рисках. Shelly Sense - потрясающий продукт, позволяющий ощутить все
Управление движением с Raspberry Pi и LIS3DHTR, 3-осевым акселерометром, с использованием Python: 6 шагов
Управление движением с помощью Raspberry Pi и LIS3DHTR, 3-осевого акселерометра, с использованием Python: красота окружает нас, но обычно нам нужно прогуляться по саду, чтобы узнать это. - Руми Как образованная группа, которой мы кажемся, мы вкладываем большую часть своей энергии в работу над нашими компьютерами и мобильными телефонами. Поэтому мы часто позволяем нашему благополучию
Транспортное средство, управляемое мобильным акселерометром: 3 шага
Мобильное транспортное средство, управляемое акселерометром: это очень простой проект, который легко выполнить. Для этого требуется мобильный телефон Android. Каждый мобильный телефон Android имеет встроенный акселерометр, и мы будем использовать его для управления автомобилем через Bluetooth. Все, что нам нужно сделать, это наклонить мобильник, чтобы решить, что