Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
Door de jaren heen was er bij het maken van verschillende projecten een
een hele verzameling verschillende modules die gewoon ongebruikt rondslingerden en ik wilde er tenminste enkele gebruiken voor iets dat tegelijkertijd leuk en creatief zou zijn.
Toen ik door de "instructables.com-site" voor ideeën ging, kwam ik een paar projecten tegen waarvan ik dacht dat ze door elkaar konden worden gemengd om iets te maken voor deze "Halloween".
Ik moet Steve Quinn, Unexpected Maker, bedanken voor het gebruik van hun ideeën.
Benodigdheden
GEBRUIKTE ITEMS EN MODULES
Gebruikte modules
1 alleenstaand Atmega8-bord
2 PIR-gebaseerde controllerkaart voor 5 volt-uitgang
3 LM386 Versterkerkaart
4 Algemene MP3-spelermodule
5 MAX7219 8x8 LED-modules
6 PIR-module (algemeen)
7 4 4 Ohm luidspreker
Andere materialen
A. Lege kartonnen doos
B. Lege waterflessen voor eenmalig gebruik
C. Kleur veranderende LED 5V
NS. Diverse Draden
e. Lijmpistool
F. Soldeerbout
G. Diverse gereedschappen en frezen
H. 12V 1A step-down transformator
Belangrijk
1 Arduion-IDE
2 Programmeerbord voor AVR-chips
3 Programmeer (Brand) Software
Stap 1: De verschillende modules
Eerst zullen we kijken naar het maken van de verschillende modules, We
zou zeker maar één PCB kunnen maken voor alle elektronica en het project prima laten werken, maar voor mij was het idee om de verschillende items die ik eerder al had gemaakt te gebruiken voor verschillende projecten en nu de behoefte eraan voorbij was, Ik wilde die items gewoon hergebruiken.
Het ATMega8-bord
Ik gebruik de ATmega8-chip zonder extern kristal. Eigenlijk zijn deze borden gemaakt om enkele P10 16x32 LED-modules te laten werken en ik had er nog een paar over van dit project. De afbeelding van het bord en de PCB-lay-out is als volgt (zie afbeeldingen). Er zijn talloze artikelen over het maken van je eigen Arduino-bord op "instructables". Je kunt gewoon elk oud Arduino-bord gebruiken dat je misschien hebt liggen.
PIR-controllerkaart
Dit PIR-bord is gemaakt om enkele kleine op LED gebaseerde festivaldecoraties aan en uit te zetten en nu lag het gewoon rond en ik besloot het te gebruiken. De Circuit Lay-out wordt getoond in de foto's:
DE LM 386 Versterkerkaart
Dit is de versterkermodule die de geluidsuitvoer van de MP3-spelermodule versterkt. de lay-out en het circuit is vrij eenvoudig en de foto's zeggen alles. de lay-out van het circuit en de afbeelding van het voltooide bord spreken voor zich.
De MP3-spelermodule
Ik heb de MP3-spelermodule gebruikt die op de afbeelding wordt getoond. Het is direct beschikbaar op Amazon enz., Het is goedkoop en gemakkelijk te gebruiken. Het beste van deze specifieke module is dat er geen extra commando of verbinding nodig is om te beginnen met spelen. Op het moment dat de juiste stroom aan het bord wordt geleverd, begint het zijn werk te doen.
MAX7219 8x8 LED-modules
Deze 8x8 LED-displaymodules zijn direct beschikbaar op Amazon enz. Foto's van degene die ik heb gebruikt, worden verstrekt.
PIR-module
Ik heb de gemakkelijk verkrijgbare PIR-sensormodule gebruikt. Het is beschikbaar op Amazon enz., Het is goedkoop en gemakkelijk te gebruiken. De foto's zijn bedoeld ter referentie.
Stap 2: Het montagedeel 1
Het concept was om al deze modules te combineren en een Halloween-rekwisiet te maken die geactiveerd zou worden wanneer iemand voor de rekwisiet oversteekt. Hiervoor heb ik de 12volt voeding aangesloten op de PIR Control Board, die op zijn beurt de spanning verlaagd naar 5V DC met behulp van de 7805 IC en deze 5V DC Spanning werd doorgegeven aan de PIR Sensor en verder naar de andere modules, het ATmega8-bord, de versterkermodule en de MP3-spelermodule wanneer iemand voor de PIR-sensor kwam. Het stroomschema zegt het allemaal.
Zoals we kunnen zien, activeert de PIR-sensor het ATmega8-bord, de versterkermodule en de MP3-spelermodule, de ATmega8 bestuurt de LED-matrix "Ogen", de MP3-speler speelt de geluidseffecten af en de versterkermodule stuurt het signaal naar de luidspreker.
De Arduino-code is een directe lancering van de instructable van Steve Quinn, behalve dat de tijd in de code is gewijzigd. De gebruikte code is hieronder weergegeven. Het INO-bestand is ook bijgevoegd.
De code
// D10 = Digitale O/P CS-pin
// D11 = Digitale O/P Klok Pin
// D12 = Digitale O/P-gegevenspin
//
#erbij betrekken
#erbij betrekken
const int numDevices = 2; // aantal gebruikte MAX7219's
const int dataPin = 12;
const int clkPin = 11;
const int csPin = 10;
LedControl lc = LedControl (dataPin, clkPin, csPin, numDevices);
// Zet deze code in de Arduino-ontwikkelomgeving
#define LeftEye1 0
#definieer RightEye1 1
#define LeftEye2 2
#definieer RightEye2 3
#definieer LeftEye3 4
#definieer RightEye3 5
#definieer LeftEye4 6
#definieer RightEye4 7
#define LeftEye5 8
#definieer RightEye5 9
#define LeftEye6 10
#definieer RightEye6 11
#definieer LeftEye7 12
#definieer RightEye7 13
#definieer LeftEye8 14
#definieer RightEye8 15
#definieer LeftEye9 16
#definieer RightEye9 17
#define LeftEye10 18
#define RightEye10 19
#define LeftEye11 20
#definieer RightEye11 21
#define LeftEye12 22
#definieer RightEye12 23
#define LeftEye13 24
#definieer RightEye13 25
#define LeftEye14 26
#definieer RightEye14 27
#define LeftEye15 28
#definieer RightEye15 29
#define LeftEye16 30
#definieer RightEye16 31
#define LeftEye17 32
#define RightEye17 33
#define LeftEye18 34
#define RightEye18 35
#define LeftEye19 36
#definieer RightEye19 37
#define LeftEye20 38
#definieer RightEye20 39
typedef struct {
const unsigned char array1[8];
}
binairArrayType;
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, B0100000, B01011010, B01011010, B0100000, B00111100, B00000000
}, { // RightEye2, 3
B00000000, B00111100, B0100000, B01011010, B01011010, B0100000, B00111100, B00000000
}, { // Linkeroog3, 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, B0100000, B0100000, B0100000, B01011010, B00111100, B00000000
}, { // RightEye14, 27
B00000000, B00111100, B0100000, B0100000, B0100000, 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; // indexaanwijzer in binaryArray die animatieframe aangeeft
int frameDelay; // Ongeveer vertraging in milliseconden om dit geanimeerde frame vast te houden
int frameLuminantie; // 0 … 15, De intensiteit van de led-matrix voor een bepaald frame
} Frame type;
frameType film =
{
// Knipperen
{LeftEye1, 1000, 1}, {LeftEye2, 5, 1}, {LeftEye3, 10, 1}, {LeftEye4, 10, 1}, {LeftEye17, 100, 1}, {LeftEye4, 10, 1}, {LeftEye3, 10, 1}, {Linkeroog2, 5, 1}, // Weer volledig breed
{Linkeroog1, 1500, 2}, // Frons
{LeftEye5, 5, 3}, {LeftEye6, 5, 4}, {LeftEye7, 5, 5}, {LeftEye8, 1000, 11}, {LeftEye7, 5, 5}, {LeftEye6, 5, 4}, {LeftEye5, 5, 3}
};
ongeldige vertragingMillis (int milliseconden)
{
voor (int i = 0; i < milliseconden; i++)
vertraging Microseconden (1000);
}
ongeldige setup() {
voor (int x = 0; x < numDevices; x++) {
lc.shutdown(x, false); // De MAX72XX staat bij het opstarten in de energiebesparende modus
lc.setIntensity(x, 1); // Stel de helderheid in op de standaardwaarde
lc.clearDisplay(x); // en wis het scherm
}
}
lege lus() {
lc.setIntensity(0, 3);
lc.setIntensity(1, 3);
terwijl (waar) {
for (int a = 0; a < (sizeof(movie) / sizeof(frameType)); a++)
{
voor (int i = 0; i < 8; i++)
{
lc.setRow(0, i, binaryArray[film[a].frameCount].array1);
lc.setRow(1, i, binaryArray[film[a].frameCount + 1].array1);
lc.setIntensity(0, film[a].frameLuminance);
lc.setIntensity(1, film[a].frameLuminance);
}
delayMillis(film[a].frameDelay);
}
}
}
Stap 3: Montage deel 2
Zodra u de Arduino IDE in gebruik hebt, moet u de code kopiëren en de code compileren/verifiëren. Wanneer u de code compileert, wordt het HEX-bestand gemaakt in de map TEMP van de computer. Voordat je de Arduino IDE sluit, kun je het HEX-bestand kopiëren uit de tijdelijke map en dit bestand is wat we in de ATmega8-chip moeten branden om het te laten werken.
Tijdens het compileren van de code heb ik het bord gekozen als "Arduino NG of ouder" en processor als "ATmega8" en na het compileren heb ik het HEX-bestand gekopieerd uit de Temp-map van de computer, voordat ik de Arduino IDE sloot.
Dit HEX-bestand is met een externe AVR-brander op de ATmega8-chip gebrand. Ik heb hiervoor de software "Extreme Burner_AVR" en een AVR Burner Board gebruikt. De foto van het bord is bijgevoegd. U kunt elke AVR-programmeersoftware gebruiken waarmee u vertrouwd bent.
De reden voor het gebruik van een externe programmer was dat ik de bootloader niet op de Atmega8-chips wilde branden en zonder de bootloader zouden ze niet werken op het gewone Arduino-bord of met de Arduion IDE. Het is vrij eenvoudig om de HEX-bestanden uit te pakken als je de code eenmaal hebt gecompileerd met de Arduino IDE en dat is wat ik deed.
OPMERKING
HET IS ZEER BELANGRIJK om de juiste instellingen van de zekeringbit te kiezen bij gebruik van een externe programmer.
In dit geval, aangezien we geen extern kristal gebruiken en vertrouwen op de interne klok van de ATmega8-chip, is het belangrijk dat we de zekeringbits dienovereenkomstig configureren. Ik heb de volgende zekeringinstellingen gekozen.
Lfuse- E4
Hzekering - D9
WAT DIT BETEKENT
Betekent dat we geen extern kristal of resonator gebruiken
De klok is ingesteld op 8mHz interne klok
Nadat de ATmega8-chip was geprogrammeerd, was het tijd om het project in elkaar te zetten en uit te testen.
Stap 4: De ogen aansluiten
De MAX7219 8x8 LED Matrix is aangesloten zoals hieronder.
ATMega8-kaart NAAR MAX7219 Matrix
IO Pin D10 NAAR CS PIN
IO Pin D11 NAAR CLK PIN
IO Pin D12 NAAR DIN PIN
VCC NAAR VCC
GND NAAR GND
Zie afbeelding
Stap 5: De PIR-sensor en -module aansluiten
Vervolgens werd de PIR-sensor aangesloten op de PIR-controller
Board, de aansluitingen zijn als volgt:
PIR-controllerkaart naar PIR-sensor
VCC naar VCC
CTRL naar CTRL
GND naar GND
Raadpleeg diagram
Dit is het deel dat het allemaal mogelijk maakt. De PIR-sensor pikt de beweging van elk heetbloedig wezen op en schakelt de voeding naar alle verschillende circuits/modules in. de tijd op de PIR-sensor is aangepast aan de vereisten en in dit geval is het ongeveer 40 - 45 seconden. Het stuurt 5 volt gelijkstroom naar alle circuits die erop zijn aangesloten gedurende een periode van ongeveer 40 -45 seconden.
Stap 6: De MP3-speler en de versterker
VOLGENDE de MP3-spelermodule en de versterkermodule.
De MP3-speler die ik heb gebruikt, hoeft niet op een knop te worden gedrukt om in te schakelen, op het moment dat de juiste spanning wordt geleverd, begint hij automatisch te spelen. Ik had maar één track nodig, dus ik vond de SD-kaart met het laagste geheugen dat ik kon (4 GB omdat het tegenwoordig bijna onmogelijk is om een kaart met minder capaciteit te krijgen). De geluiden die ik van internet heb gedownload, in feite waren er een aantal geluidseffecten die werden gedownload en ze werden allemaal gecompileerd om een enkele MP3-track te maken met behulp van de geluidseditor-software. Ik gebruikte "Wave Editor" en heb uiteindelijk dit enige nummer op de SD-kaart geladen. De SD-kaart was in de MP3-spelermodule gemonteerd en de uitgang was verbonden met de versterkermodule om het geluid uit de luidspreker te krijgen.
Zie afbeelding
De LM386 Amplifier Chip vereist zeer weinig externe componenten en levert redelijk goed geluid uit kleine luidsprekers. Het circuit is vrij eenvoudig te monteren van een perfboard en het kostte me ongeveer 15-20 minuten om deze te monteren. Het plaatje is vrij duidelijk.
Stap 7: De eindmontage
Voordat ik alles in de behuizing plaatste, wilde ik alles testen en de modules naar wens indelen en de laatste verbindingen maken. Nadat ik tevreden was met de werking van de onderdelen. Ik heb ze bevestigd in de Card Board Enclosure die voor dit doel is gemaakt.
Ik voeg een video toe na de definitieve montage van de prop.
Stap 8: DE BEHUIZING
de behuizing
De behuizing is gemaakt van een oude kartonnen doos, rood geverfd. De plek voor de ogen en de PIR-sensor werd uitgesneden met een scherp mes. Er is een afdruk van de schedel op de doos geplakt en de ogen etc.dienovereenkomstig uitgesneden en de omtrek werd opnieuw getekend met een zwarte permanente markeerstift. Ik maakte het haar van weggegooide waterflessen, knipte ze in dunne reepjes en plakte ze met de Hot Melt Glue op het hoofd en de zijkanten. Ik heb 2 van kleur veranderende LED's aan de zijkanten bevestigd en deze werden aangesloten op de uitgang van de PIR-controllerkaart.
Er werden kleine gaatjes gemaakt voor de luidspreker en alle items werden bevestigd met behulp van Hot Melt Glue aan de binnenkant van de doos. Het netsnoer is uit de achterkant van de doos gehaald en dat is het dan ook.
Ik hoop dat je geniet van het maken van deze Halloween Prop voor de kinderen !!
Ik zal binnenkort de audioclip bijvoegen die in dit project wordt gebruikt.
Fijne Halloween allemaal!!
Aanbevolen:
Een IoT Halloween-pompoen - Bedien LED's met een Arduino MKR1000 en Blynk-app ???: 4 stappen (met afbeeldingen)
Een IoT Halloween-pompoen | Bedien LED's Met een Arduino MKR1000 en Blynk App ???: Hallo allemaal, Een paar weken geleden was het Halloween en volgens de traditie heb ik een mooie pompoen uitgesneden voor op mijn balkon. Maar toen ik mijn pompoen buiten had, realiseerde ik me dat het best vervelend was om elke avond de deur uit te moeten om de kaars aan te steken. En ik
Halloween-pompoen met een bewegend animatronic-oog - Deze pompoen kan zijn ogen rollen! 10 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Halloween-pompoen met een bewegend animatronic-oog | Deze pompoen kan zijn oog rollen!: In deze Instructable leer je hoe je een Halloween-pompoen maakt die iedereen bang maakt als zijn oog beweegt. Stel de triggerafstand van de ultrasone sensor in op de juiste waarde (stap 9) en je pompoen zal iedereen die het aandurft om snoep te nemen versteenen
ArduBand - Save Your Eyes!: 6 stappen (met afbeeldingen)
ArduBand - Save Your Eyes!: Hallo, in de huidige situatie werken veel mensen thuis, daarom brengen we veel meer tijd door achter computers of smartphones. Soms kunnen we enkele uren voor het scherm zitten, waarbij we onze ogen kapot maken en onze rug krommen. We kunnen wel een de
AI Aids Eyes (een computervisiesysteem om operators eraan te herinneren een veiligheidsbril te dragen): 4 stappen
AI Aids Eyes (een computervisiesysteem om operators eraan te herinneren een veiligheidsbril te dragen): Hier is een demo van het systeem. Wanneer het systeem detecteert dat een boor wordt opgepakt, geeft het automatisch een veiligheidsbrilwaarschuwing af. Om de aanwezigheid van de veiligheidsbrilwaarschuwingen weer te geven, is de rand van het RGB-beeld rood gekleurd in de demo v
Zingende buste prop: 7 stappen
Singing Bust Prop: Heb je je ooit afgevraagd hoe de Singing Busts in het Haunted Mansion werkten of zelfs wilde proberen ze goed te maken, deze Instructable laat je zien hoe je ze kunt maken en het is heel eenvoudig