Оглавление:

Опора для страшных глаз на Хеллоуин: 8 шагов
Опора для страшных глаз на Хеллоуин: 8 шагов

Видео: Опора для страшных глаз на Хеллоуин: 8 шагов

Видео: Опора для страшных глаз на Хеллоуин: 8 шагов
Видео: БУ! ХЕЛЛОУИН УЖЕ СКОРО! || Крутые идеи жутковатого грима и костюмов от 123 GO! 2024, Июль
Anonim
Хэллоуин страшные глаза реквизит
Хэллоуин страшные глаза реквизит
Хэллоуин страшные глаза реквизит
Хэллоуин страшные глаза реквизит
Хэллоуин страшные глаза реквизит
Хэллоуин страшные глаза реквизит
Хэллоуин страшные глаза реквизит
Хэллоуин страшные глаза реквизит

За годы работы над различными проектами был

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

Просматривая «Сайт Instructables.com» в поисках идей, я наткнулся на несколько проектов, которые, как я думал, можно было бы объединить вместе, чтобы сделать что-нибудь для этого «Хэллоуина».

Я должен отдать должное Стиву Куинну, Unexpected Maker, за то, что он использовал их идеи.

Запасы

ИСПОЛЬЗУЕМЫЕ ИЗДЕЛИЯ И МОДУЛИ

Используемые модули

1 автономная плата Atmega8

Плата контроллера на базе 2 PIR для выхода 5 В

3 Плата усилителя LM386

4 Универсальный модуль MP3-плеера

5 светодиодных модулей MAX7219 8x8

6 Модуль PIR (общий)

7 4-дюймовый динамик с сопротивлением 4 Ом

Другие материалы

а. Пустая картонная коробка

б. Пустые одноразовые бутылки для воды

c. Светодиод с изменением цвета 5В

d. Ассорти из проводов

е. Клей-пистолет

f. Паяльник

грамм. Разные инструменты и фрезы

час Понижающий трансформатор 12В 1А

Важный

1 Arduion IDE

2 Плата для программирования микросхем AVR

3 Программное обеспечение для программирования (записи)

Шаг 1. Различные модули

Различные модули
Различные модули
Различные модули
Различные модули
Различные модули
Различные модули

Сначала мы рассмотрим создание различных модулей. Мы

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

Плата ATmega8

Я использую чип ATmega8 без внешнего кристалла. Фактически, эти платы были созданы для работы с некоторыми светодиодными модулями P10 16x32, и у меня остались некоторые из них, оставшиеся от этого проекта. Изображение платы и компоновка печатной платы выглядит следующим образом (см. Изображения). Существует бесчисленное количество статей о создании собственной платы Arduino на «инструкциях». Вы можете просто использовать любую старую плату Arduino, которая может у вас валяться.

Плата контроллера PIR

Эта плата PIR была создана для включения и выключения некоторых небольших фестивальных декораций на основе светодиодов, и теперь она просто валялась, и я решил использовать ее. Схема схемы показана на рисунках.

Плата усилителя LM 386

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

Модуль MP3-плеера

Я использовал модуль MP3-плеера, показанный на картинке. Его легко найти на Amazon и т. Д., Он дешев и прост в использовании. Самое лучшее в этом конкретном модуле - то, что он не требует дополнительных команд или подключения для начала игры. В тот момент, когда на плату подается соответствующее питание, она начинает выполнять свою работу.

Светодиодные модули MAX7219 8x8

Эти модули светодиодных дисплеев 8x8 легко доступны на Amazon и т. Д. Предоставляются изображения тех, которые я использовал.

Модуль PIR

Я использовал легко доступный модуль датчика PIR. Он доступен на Amazon и т. Д., Дешев и прост в использовании. Фотографии предоставлены для справки.

Шаг 2: Сборка, часть 1

Сборка Часть 1
Сборка Часть 1

Идея заключалась в том, чтобы объединить все эти модули и создать реквизит для Хэллоуина, который будет активироваться всякий раз, когда кто-то пересекает его перед реквизитом. Для этого я подключил источник питания 12 В к плате управления PIR, которая, в свою очередь, снизила напряжение до 5 В постоянного тока с помощью микросхемы 7805, и это напряжение 5 В постоянного тока было передано на датчик PIR и далее на другие модули., плату ATmega8, модуль усилителя и модуль MP3-плеера всякий раз, когда кто-то подходит к датчику PIR. Блок-схема говорит сама за себя.

Как мы видим, датчик PIR запускает плату ATmega8, модуль усилителя и модуль MP3-плеера, ATmega8 управляет светодиодной матрицей «Глаза», MP3-плеер воспроизводит звуковые эффекты, а модуль усилителя отправляет сигнал на динамик..

Код Arduino является прямым следствием инструкций Стива Куинна, за исключением того, что время было изменено в коде. Используемый код приведен ниже. Файл INO также прилагается.

Код

// D10 = Цифровой вывод CS

// D11 = вывод цифрового тактового сигнала O / P

// D12 = Цифровой вывод данных O / P

//

#включают

#включают

const int numDevices = 2; // количество используемых MAX7219

const int dataPin = 12;

const int clkPin = 11;

const int csPin = 10;

LedControl lc = LedControl (dataPin, clkPin, csPin, numDevices);

// Перетащите этот код в среду разработки Arduino

#define LeftEye1 0

#define RightEye1 1

#define LeftEye2 2

#define RightEye2 3

#define LeftEye3 4

#define RightEye3 5

#define LeftEye4 6

#define RightEye4 7

#define LeftEye5 8

#define RightEye5 9

#define LeftEye6 10

#define RightEye6 11

#define LeftEye7 12

#define RightEye7 13

#define LeftEye8 14

#define RightEye8 15

#define LeftEye9 16

#define RightEye9 17

#define LeftEye10 18

#define RightEye10 19

#define LeftEye11 20

#define RightEye11 21

#define LeftEye12 22

#define RightEye12 23

#define LeftEye13 24

#define RightEye13 25

#define LeftEye14 26

#define RightEye14 27

#define LeftEye15 28

#define RightEye15 29

#define LeftEye16 30

#define RightEye16 31

#define LeftEye17 32

#define RightEye17 33

#define LeftEye18 34

#define RightEye18 35

#define LeftEye19 36

#define RightEye19 37

#define LeftEye20 38

#define RightEye20 39

typedef struct {

const unsigned char array1 [8];

}

binaryArrayType;

binaryArrayType binaryArray [40] =

{

{// LeftEye1, 0

B01111110, B10000001, B10000001, B10011001, г.

B10011001, г.

B10000001, B10000001, B01111110

}, {// RightEye1, 1

B01111110, B10000001, B10000001, B10011001, г.

B10011001, г.

B10000001, B10000001, B01111110

}, {// LeftEye2, 2

B00000000, B00111100, г.

B01000010, г.

B01011010, B01011010, B01000010, г.

B00111100, г.

B00000000

}, {// RightEye2, 3

B00000000, B00111100, г.

B01000010, г.

B01011010, B01011010, B01000010, г.

B00111100, г.

B00000000

}, {// LeftEye3, 4

B00000000, B00111100, г.

B00100100, г.

B00110100, B00110100, B00100100, г.

B00111100, г.

B00000000

}, {// RightEye3, 5

B00000000, B00111100, г.

B00100100, г.

B00110100, B00110100, B00100100, г.

B00111100, г.

B00000000

}, {// LeftEye4, 6

B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00000000

}, {// RightEye4, 7

B00000000, B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00011000

}, {// LeftEye5, 8

B01111110, B10000001, B10000001, B10011001, г.

B10011001, г.

B10000001, B10000010, г.

B01111100

}, {// RightEye5, 9

B01111100, B10000010, г.

B10000001, B10011001, г.

B10011001, г.

B10000001, B10000001, B01111110

}, {// LeftEye6, 10

B01111110, B10000001, B10000001, B10011001, г.

B10011001, г.

B10000010, г.

B10000100, г.

B01111000

}, {// RightEye6, 11

B01111000, B10000100, г.

B10000010, г.

B10011001, г.

B10011001, г.

B10000001, B10000001, B01111110

}, {// LeftEye7, 12

B01111110, B11000001, г.

B10000001, B10011001, г.

B10011010, г.

B10000100, г.

B10001000, B01110000

}, {// RightEye7, 13

B01110000, г.

B10001000, B10000100, г.

B10011010, г.

B10011001, г.

B10000001, B11000001, г.

B01111110

}, {// LeftEye8, 14

B00111110, г.

B01000001, B10000001, B10011001, г.

B10011010, г.

B10000100, г.

B01001000, г.

B00110000

}, {// RightEye8, 15

B00110000, B01001000, г.

B10000100, г.

B10011010, г.

B10011001, г.

B10000001, B01000001, B00111110

}, {// LeftEye9, 16

B01111110, B10000001, B10000001, B10011001, г.

B10011001, г.

B10000001, B10000001, B01111110

}, {// RightEye9, 17

B01111110, B10000001, B10000001, B10011001, г.

B10011001, г.

B10000001, B10000001, B01111110

}, {// LeftEye10, 18

B01111110, B10000001, B10000001, B10000001, B10011001, г.

B10011001, г.

B10000001, B01111110

}, {// RightEye10, 19

B01111110, B10000001, B10000001, B10000001, B10011001, г.

B10011001, г.

B10000001, B01111110

}, {// LeftEye11, 20

B01111110, B10000001, B10000001, B10000001, B10011001, г.

B10011001, г.

B10000001, B01111110

}, {// RightEye11, 21

B01111110, B10000001, B10000001, B10000001, B10011001, г.

B10011001, г.

B10000001, B01111110

}, {// LeftEye12, 22

B01111110, B10000001, B10000001, B10000001, B10000001, B10011001, г.

B10011001, г.

B01111110

}, {// RightEye12, 23

B01111110, B10000001, B10000001, B10000001, B10000001, B10011001, г.

B10011001, г.

B01111110

}, {// LeftEye13, 24

B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10011001, г.

B01111110

}, {// RightEye13, 25

B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10011001, г.

B01111110

}, {// LeftEye14, 26

B00000000, B00111100, г.

B01000010, г.

B01000010, г.

B01000010, г.

B01011010, B00111100, г.

B00000000

}, {// RightEye14, 27

B00000000, B00111100, г.

B01000010, г.

B01000010, г.

B01000010, г.

B01011010, B00111100, г.

B00000000

}, {// LeftEye15, 28

B00000000, B00111100, г.

B00100100, г.

B00100100, г.

B00100100, г.

B00111100, г.

B00111100, г.

B00000000

}, {// RightEye15, 29

B00000000, B00111100, г.

B00100100, г.

B00100100, г.

B00100100, г.

B00111100, г.

B00111100, г.

B00000000

}, {// LeftEye16, 30

B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00000000

}, {// RightEye16, 31

B00000000, B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00011000, г.

B00011000

}, {// LeftEye17, 32

B00010000, г.

B00010000, г.

B00010000, г.

B00010000, г.

B00010000, г.

B00010000, г.

B00010000, г.

B00000000

}, {// RightEye17, 33

B00000000, B00010000, г.

B00010000, г.

B00010000, г.

B00010000, г.

B00010000, г.

B00010000, г.

B00010000

}, {// LeftEye18, 34

B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10001101, B01111110

}, {// RightEye18, 35

B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10001101, B01111110

}, {// LeftEye19, 36

B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10000111, г.

B01111110

}, {// RightEye19, 37

B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10000111, г.

B01111110

}, {// LeftEye20, 38

B01111110, B10000001, B10000001, B10000001, B10000001, B10000011, г.

B10000011, г.

B01111110

}, {// RightEye20, 39

B01111110, B10000001, B10000001, B10000001, B10000001, B10000011, г.

B10000011, г.

B01111110

}

};

typedef struct {

int frameCount; // индексируем указатель в binaryArray, обозначающий кадр анимации

int frameDelay; // Приблизительная задержка в миллисекундах для удержания отображения этого анимированного кадра

int frameLuminance; // 0… 15, интенсивность светодиодной матрицы для данного кадра

} frameType;

frameType movie =

{

// Мигаем

{LeftEye1, 1000, 1}, {LeftEye2, 5, 1}, {LeftEye3, 10, 1}, {LeftEye4, 10, 1}, {LeftEye17, 100, 1}, {LeftEye4, 10, 1}, {LeftEye3, 10, 1}, {LeftEye2, 5, 1}, // Снова на всю ширину

{LeftEye1, 1500, 2}, // Хмуриться

{LeftEye5, 5, 3}, {LeftEye6, 5, 4}, {LeftEye7, 5, 5}, {LeftEye8, 1000, 11}, {LeftEye7, 5, 5}, {LeftEye6, 5, 4}, {LeftEye5, 5, 3}

};

void delayMillis (int миллисекунды)

{

for (int i = 0; i <миллисекунды; i ++)

delayMicroseconds (1000);

}

void setup () {

for (int x = 0; x <numDevices; x ++) {

lc.shutdown (x, ложь); // MAX72XX находится в режиме энергосбережения при запуске

lc.setIntensity (x, 1); // Устанавливаем яркость по умолчанию

lc.clearDisplay (x); // и очищаем дисплей

}

}

void loop () {

lc.setIntensity (0, 3);

lc.setIntensity (1, 3);

while (true) {

for (int a = 0; a <(sizeof (фильм) / sizeof (frameType)); a ++)

{

для (int я = 0; я <8; я ++)

{

lc.setRow (0, я, binaryArray [фильм [a].frameCount].array1 );

lc.setRow (1, я, binaryArray [фильм [a].frameCount + 1].array1 );

lc.setIntensity (0, фильм [a].frameLuminance);

lc.setIntensity (1, фильм [a].frameLuminance);

}

delayMillis (фильм [a].frameDelay);

}

}

}

Шаг 3: сборка, часть 2

Сборка Часть 2
Сборка Часть 2

После того, как у вас есть IDE Arduino, вам нужно скопировать код и скомпилировать / проверить код. Когда вы компилируете код, HEX-файл создается в папке TEMP на компьютере. Перед закрытием Arduino IDE вы можете скопировать HEX-файл из временной папки, и этот файл нам нужно записать в чип ATmega8, чтобы он заработал.

При компиляции кода я выбрал плату как «Arduino NG или старше», а процессор - как «ATmega8», и после компиляции я скопировал HEX-файл из папки Temp на компьютере, прежде чем закрыть Arduino IDE.

Этот файл HEX был записан на чип ATmega8 с помощью внешнего устройства записи AVR. Для этой цели я использовал программу «Extreme Burner_AVR» и плату записи AVR. Изображение платы прилагается. Вы можете использовать любое удобное для вас программное обеспечение AVR.

Причина использования внешнего программатора заключалась в том, что я не хотел записывать загрузчик на чипы Atmega8, а без загрузчика они не работали бы на обычной плате Arduino или с Arduion IDE. Достаточно легко извлечь файлы HEX после компиляции кода с помощью Arduino IDE, и это то, что я сделал.

ПРИМЕЧАНИЕ

ОЧЕНЬ ВАЖНО правильно выбрать бит предохранителя при использовании внешнего программатора.

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

Lfuse- E4

Hfuse - D9

ЧТО ЭТО ЗНАЧИТ

Означает, что мы не используем внешний кристалл или резонатор.

Часы установлены на внутренние часы 8 МГц.

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

Шаг 4: Соединяем глаза

Соединяя глаза
Соединяя глаза
Соединяя глаза
Соединяя глаза

Светодиодная матрица MAX7219 8x8 была подключена, как показано ниже.

Плата ATmega8 для матрицы MAX7219

Вывод IO D10 К КОНТАКТУ CS

Вывод IO D11 К ПИН-каналу CLK

Контакт ввода-вывода D12 на контакт DIN

VCC К VCC

ЗЕМЛЯ К ЗЕМЛЕ

См. Изображение

Шаг 5: Подключение ИК-датчика и модуля

Подключение ИК-датчика и модуля
Подключение ИК-датчика и модуля
Подключение ИК-датчика и модуля
Подключение ИК-датчика и модуля
Подключение ИК-датчика и модуля
Подключение ИК-датчика и модуля
Подключение ИК-датчика и модуля
Подключение ИК-датчика и модуля

Затем датчик PIR был подключен к контроллеру PIR.

Плата, подключения следующие

Плата контроллера PIR к датчику PIR

VCC в VCC

CTRL в CTRL

GND к GND

См. Диаграмму

Это та часть, которая заставляет все это происходить. Датчик PIR улавливает движение любого горячего существа и включает питание всех различных цепей / модулей. время на датчике PIR было отрегулировано в соответствии с требованиями, и в этом случае оно составляет около 40–45 секунд. Он посылает 5 вольт постоянного тока на все подключенные к нему цепи в течение примерно 40-45 секунд.

Шаг 6: MP3-плеер и усилитель

MP3-плеер и усилитель
MP3-плеер и усилитель
MP3-плеер и усилитель
MP3-плеер и усилитель
MP3-плеер и усилитель
MP3-плеер и усилитель

ДАЛЕЕ: модуль MP3-плеера и модуль усилителя.

MP3-плеер, который я использовал, не требует нажатия какой-либо кнопки для включения, как только на него подается соответствующее напряжение, он автоматически начинает воспроизведение. Мне нужна была только одна дорожка, поэтому я нашел SD-карту с наименьшим объемом памяти, который мог (4 ГБ, потому что в наши дни практически невозможно получить карту с меньшей емкостью). Звуки, которые я загрузил из Интернета, на самом деле было загружено несколько звуковых эффектов, и все они были скомпилированы в одну дорожку MP3 с помощью программного обеспечения для редактирования звука. Я использовал «Wave Editor» и, наконец, загрузил этот единственный трек на SD-карту. SD-карта была установлена в модуле MP3-плеера, а выход был подключен к модулю усилителя для получения звука из динамика.

См. Изображение

Чип усилителя LM386 требует очень мало внешних компонентов и обеспечивает довольно хороший звук из небольших динамиков. Схема довольно проста в сборке из перфорированной платы, и мне потребовалось около 15-20 минут, чтобы собрать ее. Картина говорит сама за себя.

Шаг 7: Заключительная сборка

Image
Image
КОРПУС
КОРПУС

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

Прикрепляю видео после финальной сборки опоры.

Шаг 8: КОРПУС

КОРПУС
КОРПУС
КОРПУС
КОРПУС
КОРПУС
КОРПУС

Вложение

Ограждение было сделано из старой картонной коробки, выкрашенной в красный цвет. Место для глаз и датчика PIR было вырезано острым лезвием. На коробку наклеили отпечаток черепа, глаза и т. Д.вырезали соответственно, и контур был перерисован черным перманентным маркером. Я сделал волосы из использованных бутылок с водой, нарезал их тонкими полосками и приклеил их термоклеем на голове и по бокам. Я установил 2 светодиода, меняющих цвет по бокам, и они были подключены к выходу платы контроллера PIR.

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

Надеюсь, вам понравится делать этот реквизит на Хэллоуин для детей!

Я скоро прикреплю аудиоклип, используемый в этом проекте.

Поздравляю всех с Хеллоуином !!

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