Оглавление:
- Запасы
- Шаг 1. Различные модули
- Шаг 2: Сборка, часть 1
- Шаг 3: сборка, часть 2
- Шаг 4: Соединяем глаза
- Шаг 5: Подключение ИК-датчика и модуля
- Шаг 6: MP3-плеер и усилитель
- Шаг 7: Заключительная сборка
- Шаг 8: КОРПУС
Видео: Опора для страшных глаз на Хеллоуин: 8 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
За годы работы над различными проектами был
целая коллекция различных модулей, которые просто валялись неиспользованными, и я хотел использовать хотя бы некоторые из них для чего-то, что было бы весело и творчески одновременно.
Просматривая «Сайт 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
Идея заключалась в том, чтобы объединить все эти модули и создать реквизит для Хэллоуина, который будет активироваться всякий раз, когда кто-то пересекает его перед реквизитом. Для этого я подключил источник питания 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
После того, как у вас есть 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-плеер, который я использовал, не требует нажатия какой-либо кнопки для включения, как только на него подается соответствующее напряжение, он автоматически начинает воспроизведение. Мне нужна была только одна дорожка, поэтому я нашел SD-карту с наименьшим объемом памяти, который мог (4 ГБ, потому что в наши дни практически невозможно получить карту с меньшей емкостью). Звуки, которые я загрузил из Интернета, на самом деле было загружено несколько звуковых эффектов, и все они были скомпилированы в одну дорожку MP3 с помощью программного обеспечения для редактирования звука. Я использовал «Wave Editor» и, наконец, загрузил этот единственный трек на SD-карту. SD-карта была установлена в модуле MP3-плеера, а выход был подключен к модулю усилителя для получения звука из динамика.
См. Изображение
Чип усилителя LM386 требует очень мало внешних компонентов и обеспечивает довольно хороший звук из небольших динамиков. Схема довольно проста в сборке из перфорированной платы, и мне потребовалось около 15-20 минут, чтобы собрать ее. Картина говорит сама за себя.
Шаг 7: Заключительная сборка
Перед тем, как установить все в корпус, я хотел все протестировать, разложил модули в соответствии с требованиями и сделал окончательные соединения. После я остался доволен работой деталей. Я закрепил их внутри корпуса для карт, сделанного для этой цели.
Прикрепляю видео после финальной сборки опоры.
Шаг 8: КОРПУС
Вложение
Ограждение было сделано из старой картонной коробки, выкрашенной в красный цвет. Место для глаз и датчика PIR было вырезано острым лезвием. На коробку наклеили отпечаток черепа, глаза и т. Д.вырезали соответственно, и контур был перерисован черным перманентным маркером. Я сделал волосы из использованных бутылок с водой, нарезал их тонкими полосками и приклеил их термоклеем на голове и по бокам. Я установил 2 светодиода, меняющих цвет по бокам, и они были подключены к выходу платы контроллера PIR.
Для динамика были проделаны небольшие отверстия, и все детали были закреплены с помощью горячего клея на внутренней стороне коробки. Шнур питания был вынут из задней части коробки и на этом все.
Надеюсь, вам понравится делать этот реквизит на Хэллоуин для детей!
Я скоро прикреплю аудиоклип, используемый в этом проекте.
Поздравляю всех с Хеллоуином !!
Рекомендуемые:
Гроб на Хеллоуин: 5 шагов
Хеллоуинский гроб: этот гроб является декоративным предметом для Хэллоуина, но не просто … Чтобы настроить его и хорошо провести время с пользователем, который с ним взаимодействует, мы представили Arduino, который сделает опыт более приятным и устрашающим. . С одной стороны
Маска для глаз, спящая музыка: 5 шагов
Eye Mask Sleeping Music: этот проект позволит вам лучше спать по ночам, полагаясь на медленную версию рождественской песни на маске для глаз
Светодиодное мигание глаз для робота: 6 шагов
Светодиодное мигание глаз для робота: это руководство посвящено миганию глаз робота с использованием светодиодной точечной матрицы
Опора для поющего бюста: 7 шагов
Опора поющего бюста: Вы когда-нибудь задумывались, как работают Поющие бюсты в Особняке с привидениями, или даже хотели попробовать сделать их хорошо, эта инструкция покажет вам, как их сделать, и это действительно просто
Опора робота в натуральную величину: 6 шагов
Опора для роботов в натуральную величину: Лиза Трейнер за эти годы придумала несколько довольно крутых вещей. Вот одно из ее многочисленных творений, которое, что неудивительно, начинается с простой идеи. Наслаждайтесь :) Хорошо, ребята, я вижу проблему. Нет, я не занимаюсь плагиатом, Лиза друг, и