Оглавление:

Rgb-светодиоды, управляемые беспроводным акселерометром: 4 шага
Rgb-светодиоды, управляемые беспроводным акселерометром: 4 шага

Видео: Rgb-светодиоды, управляемые беспроводным акселерометром: 4 шага

Видео: Rgb-светодиоды, управляемые беспроводным акселерометром: 4 шага
Видео: 🔥Добываем огонь из светодиодной ленты 2024, Ноябрь
Anonim
Rgb-светодиоды, управляемые беспроводным акселерометром
Rgb-светодиоды, управляемые беспроводным акселерометром
Rgb-светодиоды, управляемые беспроводным акселерометром
Rgb-светодиоды, управляемые беспроводным акселерометром

МЭМС (микроэлектромеханические системы) Акселерометры широко используются в качестве датчиков наклона в мобильных телефонах и камерах. Простые акселерометры доступны как в виде микросхем, так и дешевых печатных плат для разработки.

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

Приемник с RGB-светодиодом
Приемник с RGB-светодиодом
Приемник с RGB-светодиодом
Приемник с RGB-светодиодом
Приемник с RGB-светодиодом
Приемник с 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-битное разрешение, что снижает количество теоретических цветов до тысяч. Но по-прежнему невозможно ощутить какой-либо шаг в изменении цвета. Я вставил приемник в ИКЕА-лампу и сфотографировал ниже разных цветов. Еще есть видео (правда ужасного качества)

Рекомендуемые: