Оглавление:

Зеркало Arduino Infinity (Bluetooth и звук): 9 шагов (с изображениями)
Зеркало Arduino Infinity (Bluetooth и звук): 9 шагов (с изображениями)

Видео: Зеркало Arduino Infinity (Bluetooth и звук): 9 шагов (с изображениями)

Видео: Зеркало Arduino Infinity (Bluetooth и звук): 9 шагов (с изображениями)
Видео: Проверка китайца на безопасность #blondinkadrive 2024, Июль
Anonim
Image
Image
Зеркало Arduino Infinity (Bluetooth и звук)
Зеркало Arduino Infinity (Bluetooth и звук)
Зеркало Arduino Infinity (Bluetooth и звук)
Зеркало Arduino Infinity (Bluetooth и звук)

Я создал Infinity Mirror для школьного проекта с Arduino, которым вы можете управлять со своего телефона или планшета с помощью Bluetooth. Зеркало также имеет встроенный микрофон, который улавливает звук / музыку и соответствующим образом реагирует, генерируя привлекательные световые вспышки в такт музыке! Просто запустите приложение, подключитесь к Bluetooth и увидите, как происходит волшебство!

В этой инструкции я покажу вам, как сделать это зеркало бесконечности. Итак, приступим!

Шаг 1. Соберите материалы

Собирать материалы
Собирать материалы

Для изготовления этого зеркала бесконечности вам потребуются следующие материалы:

1) Arduino Uno (30 долларов)

Вы также можете использовать другой тип Arduino, но это полностью зависит от вас.

2) Мини-макетная плата или печатная плата (5 долларов США)

Я использовал макетную плату для прототипирования, а затем припаял все к монтажной плате / стрипбору.

3) Светодиодная лента WS2813 Digital 5050 RGB - 144 светодиода (1 метр) (25 долларов США)

Вы также можете использовать другую светодиодную ленту, но убедитесь, что все светодиоды адресуются индивидуально. Также убедитесь, что светодиодная лента дает «лишнее» напряжение 5 В на каждый метр светодиодов. Это связано с тем, что напряжение на полосе падает, и ток в начале может значительно увеличиваться. (и, возможно, сжечь начало светодиодной ленты!) Подробнее об этом можно прочитать здесь: Работа с неопикселями.

4) Прототип проводов (3 $)

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

5) Кабель USB A - B (4 доллара США)

Это будет использоваться для загрузки вашего кода Arduino на плату Arduino Uno.

6) Импульсный источник питания Mean Well - 5 В, 10 А (15 долларов США)

Он будет использоваться для поддержки светодиодной ленты с внешним напряжением 5 В, потому что сама Arduino недостаточно мощна, чтобы зажечь все светодиоды. Вы также можете использовать сетевой адаптер питания, но убедитесь, что он работает от 5 В.

7) Кабель питания 230 В с вилкой (3 доллара США)

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

8) Bluetooth-модуль HC-06 RF-трансивер Slave 4-PIN (8 долларов США)

Этот модуль будет использоваться для отправки данных с вашего телефона или планшета на Arduino. Этот модуль bluetooth может служить только в качестве ведомого устройства. Стандартный пин-код / пароль Bluetooth - 1234.

9) Модуль датчика обнаружения звука с 3 контактами (3 доллара США)

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

10) Резистор 220 Ом (0,25 $)

Это будет использоваться для управления напряжениями светодиодов. Если вы не используете это, светодиоды в конечном итоге сильно нагреются. Резистор 220 Ом имеет красные, красные и коричневые полосы в указанном порядке. Последняя полоса представляет собой допуск. Золото означает ± 5%. Подробнее здесь: Резистор 220 Ом.

11) Электролитический конденсатор 1000 мкФ 16 В (0,25 доллара США)

Это будет использоваться для добавления и сохранения емкости (энергии) вашей цепи. Подробнее здесь: Электролитические конденсаторы.

Коробка и зеркало:

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

12) Стекло 25 x 25 см (толщиной 3 мм) (5 долларов США)

Стекло будет использоваться как одностороннее отражающее зеркало, для которого вам понадобится односторонняя оконная пленка для зеркала (см. 13). Вы также можете купить одностороннее зеркало / полупрозрачное зеркало, которое достаточно велико, чтобы поместиться в вашей коробке. Стеклорезом можно резать самостоятельно (см. 22), но я рекомендую проконсультироваться со специалистами, которые сделают это за вас, а еще лучше просто купить стекло нужных размеров.

13) Тонировка односторонней оконной пленки зеркала 30 х 30 см (5 $)

Чтобы воспроизвести одностороннее зеркало, вам понадобится стекло и рулон тонированной пленки для одностороннего зеркала, которая будет нанесена на стекло водой с мылом (см. 29). Причина, по которой он немного больше стекла, заключается в том, что со временем оно сжимается. Если вы решите купить одностороннее зеркало вместо упомянутого выше, то оно вам не понадобится.

14) Зеркало 25 x 25 см (толщина 3 мм) (5 долларов США)

Обычное зеркало, такое как в ванной. Он будет использоваться вместе с односторонним зеркалом для создания эффекта «бесконечности».

15) 2x толстые деревянные планки 25 x 10 x 2 см (2 доллара)

Две деревянные планки сверху и снизу ящика.

16) 2x толстые деревянные планки 27 x 10 x 2 см (2 доллара)

Две деревянные планки для правой и левой стороны ящика.

17) 2 тонких деревянных планки 25 x 2,5 x 0,5 см (1 доллар)

Две деревянные планки для верхней и нижней части внутренней части ящика (на которые будут опираться зеркала и на которые наклеены светодиоды).

18) 2 тонких деревянных планки 24 x 2,5 x 0,5 см (1 доллар)

Две деревянные планки для правой и левой стороны внутренней части ящика (на которые будут опираться зеркала и на которые наклеены светодиоды).

19) Черная краска / баллончик

Я использовал это, чтобы покрасить свой ящик в черный цвет, чтобы он больше гармонировал с темной темой.

Инструменты:

Вот инструменты, которые вам понадобятся для создания коробки, а также зеркала:

20) Измерительная лента (3 доллара)

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

21) Измерительный квадрат (5 $)

Также используется для измерения вашей коробки / материалов. На самом деле не требуется, но может пригодиться.

22) Кусачки / стриппер (5 долларов)

Используется для зачистки и резки проводов. В качестве альтернативы вы также можете использовать кухонный нож или обычный нож. Подробнее здесь: Как зачистить провод.

23) Стеклорез (5 долларов)

Используется для резки стекла и зеркал. В качестве альтернативы вы можете использовать бриллиант, но я не рекомендую это делать. Подробнее здесь: Как вырезать витражи.

24) Отвертка / дрель (2 доллара)

Используется для заворачивания шурупов и сверления отверстий. Подробнее здесь: Как управлять деревянным винтом.

25) Молоток (5 долларов)

Используется для забивания гвоздей. Подробнее здесь: Как безопасно пользоваться молотком.

26) Клей для дерева (5 $)

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

27) Пила (5 $)

Используется для распиловки дерева. Подробнее здесь: Как распилить дерево ручной пилой.

28) Гвозди (3 $)

Используется для соединения частей, в нашем случае навсегда.

29) Винты (3 $)

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

30) Вода и мыло

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

31) Наждачная бумага (1 доллар)

Используется для обработки острых краев стекла и дерева.

Паяльные инструменты (по желанию):

32) Паяльник (15 $)

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

33) Припой 0,6мм - 100гр (5,50 $)

Используется для спайки проводов между собой.

34) Проволока для распайки - 1 мм 1,5 м (1,50 доллара США)

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

35) Термоусадочные трубки (2 доллара)

Используется для безопасного хранения спаянных проводов вместе.

36) 1x 3-контактный разъем, гнездовой (0,10 доллара США)

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

37) 1x 4-контактный разъем, гнездовой (0,10 доллара США)

На самом деле не требуется, но это может быть удобно, если вы не хотите напрямую припаивать модуль bluetooth к проводам.

Шаг 2: подключение макетной платы

Image
Image
Соединения с макетной платой
Соединения с макетной платой
Соединения с макетной платой
Соединения с макетной платой

После того, как вы собрали материалы, пора сделать свой первый прототип с помощью макета. Всего на макете четыре колонки. Первые два и последние два синих и красных столбца разделяют соединение по вертикали, представляя соединения + 5V (красный) и заземление / GND (синий). В двух столбцах посередине будут размещены ваши основные компоненты. Вы можете узнать больше о макетных платах здесь.

Итак, что вы хотите сделать, это подключить ваш Arduino к макетной плате, используя несколько прототипных проводов. Как я уже упоминал ранее, цвета не имеют значения, но они могут вам пригодиться. Например, я использовал красные провода для обозначения + 5V и белые провода для обозначения GND. Также не имеет значения, где вы разместите свои контакты, если они остаются в одной цепи.

Затем вы хотите подключить светодиодную ленту к макетной плате. Вы заметите, что у него 3-6 проводов, в зависимости от того, какой у вас тип. Белый представляет вход GND / мин, красный представляет вход +5 В, зеленый представляет ПИН-код ввода данных, а синий представляет ПИН-код ввода резервных данных (не подключайтесь, если не подключен светодиод). Подключите внешнее питание 5V и подключите его к светодиодной ленте. Не забудьте также подключить резистор и конденсатор, как показано на рисунке выше, иначе вы можете сжечь светодиоды!

Наконец, вы хотите подключить модуль Bluetooth и датчик обнаружения звука к макетной плате. Назначьте датчик обнаружения звука на контакт A0 (аналоговый). Что касается модуля Bluetooth, вы заметите, что он имеет один вывод RXD и один вывод TXD. Они предназначены для отправки и получения сигналов. ПРИМЕЧАНИЕ: подключите вывод TXD модуля к выводу RXD на Arduino, а вывод RXD модуля - к выводу TXD на Arduino. Не к тем же булавкам!

Шаг 3: закодируйте Arduino

Запрограммируйте Arduino
Запрограммируйте Arduino

Итак, следующим шагом будет кодирование Arduino. Для этого вам понадобится программа Arduino IDE, которую вы можете скачать здесь. После загрузки IDE откройте новый документ, скопируйте и вставьте следующий код в окно проекта:

#включают

// Контакты, которые подключены к Arduino

const int PIN = 6; // Входной вывод светодиодной ленты int NUMPIXELS = 144; // Количество пикселей, которые будут гореть const int SOUNDSENSOR = A0; // Входной контакт звукового датчика

int ButtonState = 0; // Состояние, назначенное кнопке в приложении Bluetooth

int volume = 0; // Состояние, которое проверяет, есть ли сигнал в микрофоне или нет

// Цветовые переменные

логический PrimBlue = false; логическое PrimGreen = false; логическое PrimRed = false; логическое значение PrimWhite = false; логическое значение PrimYellow = false; логический PrimOrange = false; логическое PrimPink = false; логическое PrimPurple = false;

// Световые и звуковые переменные

логический SoundDetect = false; логическое FullLight = false;

Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup () {

pinMode (ЗВУКОВОЙ ДАТЧИК, ВХОД); // Ввод звукового датчика pinMode (PIN, OUTPUT); // Ввод светодиодной ленты

Serial.begin (9600);

strip.setPixelColor (0, 0, 0, 0); strip.setBrightness (0); strip.begin (); // Это инициализирует библиотеку NeoPixel strip.show ();

}

void loop () {

// Определяем величину яркости в соответствии с байтом ползунка яркость = analogRead (A0) / 4; Serial.println (яркость); если (Serial.available ()> 0) {ButtonState = Serial.read (); }

// Включение или отключение светодиода и обнаружения звука

если (FullLight == 1 && SoundDetect == 0) {strip.setBrightness (ButtonState); strip.show (); } иначе, если (FullLight == 0 && SoundDetect == 0) {strip.setBrightness (0); strip.show (); } иначе, если (FullLight == 0 && SoundDetect == 1) {strip.setBrightness (яркость); strip.show (); } иначе, если (FullLight == 1 && SoundDetect == 1) {strip.setBrightness (0); strip.show (); }

////////////////////////// Переключатель светодиода ////////////////////// ////

если (ButtonState == 'а') {primaryColors (); FullLight = 1; SoundDetect = 0; }

if (ButtonState == 'b') {

FullLight = 0; SoundDetect = 0; }

////////////////////////// Переключатель обнаружения звука ///////////////////// /////

если (ButtonState == 'c') {primaryColors (); SoundDetect = 1; FullLight = 0; }

if (ButtonState == 'd') {

SoundDetect = 0; FullLight = 0; }

////////////////////////// Основные цвета ////////////////////// ////

если (ButtonState == '1') {primaryColors (); PrimBlue = 0; PrimGreen = 0; PrimRed = 1; PrimWhite = 0; PrimYellow = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; }

if (ButtonState == '2') {

primaryColors (); PrimGreen = 1; PrimBlue = 0; PrimRed = 0; PrimWhite = 0; PrimYellow = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; }

if (ButtonState == '3') {

primaryColors (); PrimRed = 0; PrimBlue = 1; PrimGreen = 0; PrimWhite = 0; PrimYellow = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; } если (ButtonState == '4') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 1; PrimYellow = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; } если (ButtonState == '5') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 0; PrimYellow = 1; PrimOrange = 0; PrimPink = 0; PrimPurple = 0; } если (ButtonState == '6') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 0; PrimYellow = 0; PrimOrange = 1; PrimPink = 0; PrimPurple = 0; } если (ButtonState == '7') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 0; PrimYellow = 0; PrimOrange = 0; PrimPink = 1; PrimPurple = 0; } если (ButtonState == '8') {primaryColors (); PrimRed = 0; PrimBlue = 0; PrimGreen = 0; PrimWhite = 0; PrimYellow = 0; PrimOrange = 0; PrimPink = 0; PrimPurple = 1; }}

void primaryColors () {

для (int я = 0; я <ЧИСЛО; я ++) {если (PrimBlue == 1) {strip.setPixelColor (я, 0, 0, 255); } иначе, если (PrimGreen == 1) {strip.setPixelColor (i, 0, 255, 0); } иначе, если (PrimRed == 1) {strip.setPixelColor (i, 255, 0, 0); } иначе, если (PrimWhite == 1) {strip.setPixelColor (i, 255, 255, 255); } иначе, если (PrimYellow == 1) {strip.setPixelColor (i, 255, 255, 0); } иначе, если (PrimOrange == 1) {strip.setPixelColor (i, 255, 102, 0); } иначе, если (PrimPink == 1) {strip.setPixelColor (i, 255, 0, 255); } иначе, если (PrimPurple == 1) {strip.setPixelColor (i, 102, 0, 204); } else {strip.setPixelColor (i, 255, 255, 255); }} strip.show (); }

Если вам будет предложено установить библиотеку Adafruit NeoPixel, сделайте это, выбрав Sketch> Import Library> Adafruit NeoPixel.

Шаг 4. Создайте приложение Bluetooth

Image
Image
Построить коробку
Построить коробку

Теперь перейдем к самому интересному - созданию вашего приложения! Для этого я решил использовать стороннее программное обеспечение под названием MIT App Inventor 2. Если вы хотите загрузить файлы проекта (.aia) и внести изменения в приложение, вы можете скачать его ниже. Но вы также можете сразу загрузить само приложение (.apk), ничего не кодируя. Вам нужно только установить его на свое устройство.

Шаг 5: соберите коробку

Постройте коробку
Постройте коробку
Построить коробку
Построить коробку
Постройте коробку
Постройте коробку

На этом этапе мы построим коробку / рамку для бесконечного зеркала.

Внешний каркас

Сначала вырежьте толстую планку для внешнего каркаса (см. Рисунки выше). Вам понадобятся две части длиной 27 см (для верхней и нижней) и две части длиной 25 см (для левой и правой стороны). Теперь прибейте их вместе, забив гвозди в углы коробки (по 4 с каждой стороны), но убедитесь, что края идеально подходят. Вы также можете склеить их вместе, но это зависит от вас.

Внутренний каркас

Затем вырежьте тонкую планку для внутреннего каркаса (снова см. Рисунки выше). Вам понадобятся две части длиной 25 см (для верхней и нижней) и две части длиной 24 см (для левой и правой стороны). Теперь вы хотите прибить их примерно на 0,5 см ниже верхней части внешней рамки, используя по 2 гвоздя с каждой стороны. Я также применил немного столярного клея, чтобы сделать их более прочными. ПРИМЕЧАНИЕ: убедитесь, что одностороннее зеркало идеально вписывается в раму!

Сверление отверстия для микрофона

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

Раскрашивание рамы

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

Шаг 6: припаяйте электронику к печатной плате

Image
Image
Припаяйте электронику к печатной плате
Припаяйте электронику к печатной плате
Припаяйте электронику к печатной плате
Припаяйте электронику к печатной плате

На этом этапе мы припаяем электронику к печатной плате, которую позже мы установим на обратной стороне зеркала. Пайка не является обязательной, но я настоятельно рекомендую делать это, чтобы электроника оставалась на месте. Я припаял все по шагам по "компоненту" к сетке, чтобы не допустить ошибок. Поэтому я сначала припаял звуковой модуль к плате, затем модуль bluetooth и, наконец, светодиодные ленты. Я рекомендую оставить некоторое свободное пространство между компонентами, которые не могут напрямую касаться друг друга, такими как входные провода + 5V и входные провода GND (см. Рисунки выше).

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

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

Шаг 7: Установите электронику сзади

Установите электронику сзади
Установите электронику сзади

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

Шаг 8: соберите зеркала с коробкой

Соберите зеркала с коробкой
Соберите зеркала с коробкой
Соберите зеркала с коробкой
Соберите зеркала с коробкой
Соберите зеркала с коробкой
Соберите зеркала с коробкой

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

Одностороннее зеркало

Одностороннее зеркало будет размещено на самой раме, тонированной стороной вниз к зеркалу и светодиодам. Чтобы сделать это зеркало самостоятельно, вам понадобится стеклянная пластина и тонированная оконная пленка. Сначала обрежьте оконную пленку нужного размера, но оставьте примерно 2-5 см с каждой стороны. Далее вы хотите полностью очистить окно и удалить всю пыль. Затем накройте окно небольшим количеством воды с мылом и осторожно снимите пластик с оконной пленки (вы можете приклеить ленту с каждой стороны, чтобы легко ее удалить). Теперь вы также можете покрыть липкую сторону оконной пленки водой с мылом, чтобы она не прилипала к себе. Все, что вам теперь нужно сделать, это положить его на стекло и плотно прижать к месту (см. Рисунки выше). Дайте ему высохнуть около суток и удалите оставшуюся оконную пленку.

Прикрепите светодиоды к коробке

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

Поместите зеркала и закончите

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

Шаг 9: проверьте свое зеркало бесконечности

Все, что вам нужно сделать, это проверить, все ли работает. Вот и все! Теперь у вас есть собственное управляемое и звукореактивное зеркало бесконечности с функцией Bluetooth!: D

Не стесняйтесь спрашивать в разделе комментариев, если у вас есть какие-либо вопросы.

Спасибо и получайте удовольствие!

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