Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03
Z biegiem lat, przy tworzeniu różnych projektów, nie było
cała kolekcja różnych modułów, które po prostu leżały nieużywane i chciałem wykorzystać przynajmniej niektóre z nich do czegoś, co byłoby jednocześnie zabawne i kreatywne.
Przeglądając „stronę instructables.com” dla pomysłów, natknąłem się na kilka projektów, które, jak sądziłem, można pomieszać, aby zrobić coś na to „Halloween”.
Muszę przyznać, że Steve Quinn, Nieoczekiwany Twórca wykorzystał ich pomysły.
Kieszonkowe dzieci
WYKORZYSTYWANE ELEMENTY I MODUŁY
Używane moduły
1 samodzielna tablica Atmega8
2 płytki kontrolera oparte na PIR dla wyjścia 5 V
3 płyta wzmacniacza LM386
4 ogólny moduł odtwarzacza MP3
5 MAX7219 8x8 modułów LED
6 Moduł PIR (ogólny)
7 4” 4 omowy głośnik
Inne materiały
a. Puste pudełko kartonowe
b. Puste butelki na wodę jednorazowego użytku
C. Zmiana koloru diody LED 5V
D. Różne przewody
mi. Pistolet na klej
F. Lutownica
g. Różne narzędzia i frezy
h. Transformator obniżający napięcie 12V 1A
Ważny
1 IDE Arduiona
2 płytka programująca dla chipów AVR
3 Oprogramowanie do programowania (wypalania)
Krok 1: Różne moduły
Najpierw przyjrzymy się tworzeniu różnych modułów, We
z pewnością mógłbym zrobić tylko jedną płytkę drukowaną dla całej elektroniki i sprawić, by projekt działał dobrze, ale dla mnie pomysł polegał na użyciu różnych elementów, które wcześniej wykonałem w różnych projektach, a teraz, gdy ich potrzeba się skończyła, ja po prostu chciałem ponownie użyć tych przedmiotów.
Płyta ATmega8
Używam układu ATmega8 bez zewnętrznego kryształu. Właściwie te płytki zostały stworzone do obsługi niektórych modułów LED P10 16x32 i kilka zostało z tego projektu. Obraz płytki i układ PCB jest następujący (patrz zdjęcia). Istnieje niezliczona ilość artykułów na temat tworzenia własnej płytki Arduino na temat „instrukcji”. Możesz po prostu użyć dowolnej starej płytki Arduino, którą możesz leżeć.
Płytka kontrolera PIR
Ta tablica PIR została stworzona do włączania i wyłączania niektórych małych dekoracji festiwalowych opartych na diodach LED, a teraz po prostu leżała i postanowiłem ją wykorzystać. Układ obwodu pokazano na zdjęciach
Płyta wzmacniacza LM 386
Jest to moduł wzmacniacza, który wzmacnia wyjście dźwięku z modułu odtwarzacza MP3. układ i obwód są dość proste, a zdjęcia mówią wszystko. Układ obwodu i zdjęcie wypełnionej tablicy są oczywiste.
Moduł odtwarzacza MP3
Użyłem modułu odtwarzacza MP3 pokazanego na zdjęciu. Jest łatwo dostępny na Amazon itp., Jest tani i łatwy w użyciu. Najlepsze w tym konkretnym module jest to, że nie wymaga on żadnego dodatkowego polecenia ani połączenia, aby rozpocząć grę. W momencie dostarczenia odpowiedniej mocy do płyty, zaczyna ona wykonywać swoją pracę.
MAX7219 8x8 modułów LED
Te moduły wyświetlacza LED 8x8 są łatwo dostępne na Amazon itp. Dostarczono zdjęcia tych, których użyłem.
Moduł PIR
Użyłem łatwo dostępnego modułu czujnika PIR. Jest dostępny na Amazon itp., Jest tani i łatwy w użyciu. Zdjęcia są podane w celach informacyjnych.
Krok 2: Montaż Część 1
Koncepcja polegała na połączeniu wszystkich tych modułów i stworzeniu rekwizytu halloweenowego, który będzie aktywowany, gdy ktoś przejdzie przed rekwizytem. W tym celu podłączyłem zasilacz 12 V do płytki sterującej PIR, która z kolei obniżyła napięcie do 5 V DC za pomocą układu scalonego 7805 i to napięcie 5 V DC zostało przekazane do czujnika PIR i dalej do innych modułów, płytkę ATmega8, moduł wzmacniacza i moduł odtwarzacza MP3, gdy ktoś stanął przed czujnikiem PIR. Wykres przepływu mówi wszystko.
Jak widać czujnik PIR wyzwala płytkę ATmega8, moduł wzmacniacza i moduł odtwarzacza MP3, ATmega8 steruje matrycą LED „Oczy”, odtwarzacz MP3 odtwarza efekty dźwiękowe, a moduł wzmacniacza wysyła sygnał do głośnika.
Kod Arduino jest bezpośrednim odejściem od instrukcji Steve'a Quinna, z wyjątkiem tego, że czas został zmieniony w kodzie. Zastosowany kod podano poniżej. Załączony jest również plik INO.
Kod
// D10 = Cyfrowe złącze CS O/P
// D11 = Pin zegara cyfrowego wyjścia/wyjścia
// D12 = Cyfrowe pin danych O/P
//
#włączać
#włączać
const int numDevices = 2; // liczba użytych MAX7219
const int dataPin = 12;
const int clkPin = 11;
const int csPin = 10;
LedControl lc = LedControl (dataPin, clkPin, csPin, numDevices);
// Upuść ten kod do środowiska programistycznego Arduino
#define Lewe Oko1 0
#define Prawe Oko1 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
struktura typedef {
const unsigned char array1[8];
}
binarnyTypArray;
binaryArrayType binaryArray[40] =
{
{ // Lewe oko1, 0
B01111110, B10000001, B10000001, B10011001, B10011001, B10000001, B10000001, B01111110
}, { // Prawe oko1, 1
B01111110, B10000001, B10000001, B10011001, B10011001, B10000001, B10000001, B01111110
}, { // Lewe oko2, 2
B00000000, B00111100, B01000010, B01011010, B01011010, B01000010, B00111100, B00000000
}, { // Prawe oko2, 3
B00000000, B00111100, B01000010, B01011010, B01011010, B01000010, B00111100, B00000000
}, { // Lewe oko3, 4
B00000000, B00111100, B00100100, B00110100, B00110100, B00100100, B00111100, B00000000
}, { // Prawe oko3, 5
B00000000, B00111100, B00100100, B00110100, B00110100, B00100100, B00111100, B00000000
}, { // Lewe oko4, 6
B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00000000
}, { // Prawe oko4, 7
B00000000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000
}, { // Lewe oko5, 8
B01111110, B10000001, B10000001, B10011001, B10011001, B10000001, B1000010, B011111100
}, { // Prawe oko5, 9
B011111100, B1000010, B10000001, B10011001, B10011001, B10000001, B10000001, B01111110
}, { // Lewe oko6, 10
B01111110, B10000001, B10000001, B10011001, B10011001, B1000010, B10000100, B01111000
}, { // Prawe oko6, 11
B01111000, B10000100, B1000010, B10011001, B10011001, B10000001, B10000001, B01111110
}, { // Lewe oko7, 12
B01111110, B11000001, B10000001, B10011001, B10011010, B10000100, B10001000, B01110000
}, { // Prawe oko7, 13
B01110000, B10001000, B10000100, B10011010, B10011001, B10000001, B11000001, B01111110
}, { // Lewe oko8, 14
B00111110, B01000001, B10000001, B10011001, B10011010, B10000100, B01001000, B00110000
}, { // Prawe oko8, 15
B00110000, B01001000, B10000100, B10011010, B10011001, B10000001, B01000001, B00111110
}, { // Lewe oko9, 16
B01111110, B10000001, B10000001, B10011001, B10011001, B10000001, B10000001, B01111110
}, { // Prawe oko9, 17
B01111110, B10000001, B10000001, B10011001, B10011001, B10000001, B10000001, B01111110
}, { // Lewe oko10, 18
B01111110, B10000001, B10000001, B10000001, B10011001, B10011001, B10000001, B01111110
}, { // Prawe oko10, 19
B01111110, B10000001, B10000001, B10000001, B10011001, B10011001, B10000001, B01111110
}, { // Lewe oko11, 20
B01111110, B10000001, B10000001, B10000001, B10011001, B10011001, B10000001, B01111110
}, { // Prawe oko11, 21
B01111110, B10000001, B10000001, B10000001, B10011001, B10011001, B10000001, B01111110
}, { // Lewe oko12, 22
B01111110, B10000001, B10000001, B10000001, B10000001, B10011001, B10011001, B01111110
}, { // Prawe oko12, 23
B01111110, B10000001, B10000001, B10000001, B10000001, B10011001, B10011001, B01111110
}, { // Lewe oko13, 24
B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10011001, B01111110
}, { // Prawe oko13, 25
B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10011001, B01111110
}, { // Lewe Oko14, 26
B00000000, B00111100, B01000010, B01000010, B01000010, B01011010, B00111100, B00000000
}, { // Prawe oko14, 27
B00000000, B00111100, B01000010, B01000010, B01000010, B01011010, B00111100, B00000000
}, { // Lewe oko15, 28
B00000000, B00111100, B00100100, B00100100, B00100100, B00111100, B00111100, B00000000
}, { // Prawe oko15, 29
B00000000, B00111100, B00100100, B00100100, B00100100, B00111100, B00111100, B00000000
}, { // Lewe oko16, 30
B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00000000
}, { // Prawe oko16, 31
B00000000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000, B00011000
}, { // Lewe oko17, 32
B00010000, B00010000, B00010000, B00010000, B00010000, B00010000, B00010000, B00000000
}, { // Prawe oko17, 33
B00000000, B00010000, B00010000, B00010000, B00010000, B00010000, B00010000, B00010000
}, { // Lewe oko18, 34
B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10001101, B01111110
}, { // Prawe oko18, 35
B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B10001101, B01111110
}, { // Lewe oko19, 36
B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B100000111, B01111110
}, { // Prawe oko19, 37
B01111110, B10000001, B10000001, B10000001, B10000001, B10000001, B100000111, B01111110
}, { // Lewe oko20, 38
B01111110, B10000001, B10000001, B10000001, B10000001, B10000011, B10000011, B01111110
}, { // Prawe oko20, 39
B01111110, B10000001, B10000001, B10000001, B10000001, B10000011, B10000011, B01111110
}
};
struktura typedef {
int liczba ramek; // wskaźnik indeksu do binaryArray oznaczający klatkę animacji
int frameOpóźnienie; // Przybliżone opóźnienie w milisekundach, aby zatrzymać wyświetlanie tej animowanej klatki
int frameLuminancja; // 0 … 15, Intensywność matrycy led dla danej klatki
} typ ramki;
frameType film =
{
// Mrugnięcie
{LeftEye1, 1000, 1}, {LeftEye2, 5, 1}, {LeftEye3, 10, 1}, {LeftEye4, 10, 1}, {LeftEye17, 100, 1}, {LeftEye4, 10, 1}, {LeftEye3, 10, 1}, {LeftEye2, 5, 1}, // Znowu pełna szerokość
{Lewe Oko1, 1500, 2}, // Marszczyć brwi
{LeftEye5, 5, 3}, {LeftEye6, 5, 4}, {LeftEye7, 5, 5}, {LeftEye8, 1000, 11}, {LeftEye7, 5, 5}, {LeftEye6, 5, 4}, {LeftEye5, 5, 3}
};
void delayMillis (int milisekund)
{
for (int i = 0; i < milisekund; i++)
opóźnienieMikrosekund (1000);
}
pusta konfiguracja () {
for (int x = 0; x < liczbaUrządzeń; x++) {
lc.shutdown(x, fałsz); // MAX72XX jest w trybie oszczędzania energii podczas uruchamiania
lc.setIntensity(x, 1); // Ustaw jasność na wartość domyślną
lc.wyczyśćWyświetlacz(x); // i wyczyść wyświetlacz
}
}
pusta pętla () {
lc.setIntensity(0, 3);
lc.setIntensity(1, 3);
podczas (prawda) {
for (int a = 0; a < (sizeof(film) / sizeof(frameType)); a++)
{
dla (int i = 0; i < 8; i++)
{
lc.setRow(0, i, binaryArray[film[a].frameCount].array1);
lc.setRow(1, i, binaryArray[movie[a].frameCount + 1].array1);
lc.setIntensity(0, film[a].frameLuminance);
lc.setIntensity(1, film[a].frameLuminance);
}
delayMillis(film[a].frameDelay);
}
}
}
Krok 3: Montaż Część 2
Po uruchomieniu Arduino IDE należy skopiować kod i skompilować / zweryfikować kod. Podczas kompilacji kodu plik HEX jest tworzony w folderze TEMP komputera. Przed zamknięciem Arduino IDE możesz skopiować plik HEX z folderu temp i ten plik musimy wypalić w układzie ATmega8, aby działał.
Podczas kompilacji kodu wybrałem płytkę jako „Arduino NG lub starszy”, a procesor jako „ATmega8” i po kompilacji skopiowałem plik HEX z folderu Temp komputera, przed zamknięciem Arduino IDE.
Ten plik HEX został wypalony na chipie ATmega8 za pomocą zewnętrznego palnika AVR. Do tego celu użyłem oprogramowania „Extreme Burner_AVR” i płyty AVR Burner Board. W załączeniu zdjęcie tablicy. Możesz użyć dowolnego oprogramowania do programowania AVR, z którym czujesz się komfortowo.
Powodem użycia zewnętrznego programatora było to, że nie chciałem wypalić bootloadera na układy Atmega8 i bez bootloadera nie działałyby na zwykłej płycie Arduino lub z Arduion IDE. Wyodrębnienie plików HEX jest dość łatwe po skompilowaniu kodu z Arduino IDE i to właśnie zrobiłem.
NOTATKA
BARDZO WAŻNE jest, aby podczas korzystania z zewnętrznego programatora wybrać prawidłowe ustawienia bezpiecznika.
W tym przypadku, ponieważ nie używamy zewnętrznego kryształu i polegamy na wewnętrznym zegarze układu ATmega8, ważne jest, aby odpowiednio skonfigurować bity bezpiecznika. Wybrałem następujące ustawienia bezpieczników.
Lbezpiecznik- E4
Bezpiecznik - D9
CO TO ZNACZY
Oznacza to, że nie używamy zewnętrznego kryształu ani rezonatora
Zegar jest ustawiony na wewnętrzny zegar 8mHz
Po zaprogramowaniu układu ATmega8 nadszedł czas na złożenie projektu i przetestowanie go.
Krok 4: Łączenie Oczu
Matryca MAX7219 8x8 LED została podłączona jak poniżej.
Tablica ATmega8 do macierzy MAX7219
Pin IO D10 NA PIN CS
IO Pin D11 DO CLK PIN
IO Pin D12 DO DIN PIN
VCC DO VCC
GND DO GND
Patrz zdjęcie
Krok 5: Podłączanie czujnika i modułu PIR
Następnie czujnik PIR został podłączony do kontrolera PIR
Płyta, połączenia są następujące
Płytka kontrolera PIR do czujnika PIR
VCC do VCC
CTRL do CTRL
GND do GND
Patrz schemat
To jest ta część, która sprawia, że to wszystko się dzieje. Czujnik PIR wychwytuje ruch każdego gorącokrwistego stworzenia i włącza zasilanie wszystkich różnych obwodów/modułów. czas na czujniku PIR został dostosowany zgodnie z wymaganiami i w tym przypadku wynosi około 40 - 45 sekund. Wysyła napięcie 5 woltów prądu stałego do wszystkich podłączonych do niego obwodów przez okres około 40-45 sekund.
Krok 6: Odtwarzacz MP3 i wzmacniacz
KOLEJNY moduł odtwarzacza MP3 i moduł wzmacniacza.
Użyty przeze mnie odtwarzacz MP3 nie wymaga wciskania żadnego przycisku, aby się włączyć, w momencie podania odpowiedniego napięcia automatycznie rozpoczyna odtwarzanie. Potrzebowałem tylko jednego utworu, więc znalazłem kartę SD z najmniejszą pamięcią, jaką mogłem (4 GB, ponieważ w dzisiejszych czasach prawie niemożliwe jest uzyskanie jakiejkolwiek karty o mniejszej pojemności). Dźwięki, które pobrałem z Internetu, w rzeczywistości było wiele efektów dźwiękowych, które zostały pobrane i wszystkie zostały skompilowane w jeden utwór MP3 za pomocą oprogramowania do edycji dźwięku. Użyłem „Wave Editor” i w końcu załadowałem ten jedyny utwór na kartę SD. Karta SD została zamontowana w module odtwarzacza MP3, a wyjście zostało podłączone do modułu wzmacniacza, aby uzyskać dźwięk z głośnika.
Patrz zdjęcie
Układ wzmacniacza LM386 wymaga bardzo niewielu komponentów zewnętrznych i zapewnia dość dobry dźwięk z małych głośników. Układ jest dość łatwy do złożenia z płyty perforowanej, a złożenie tego zajęło mi około 15-20 minut. Obraz jest dość oczywisty.
Krok 7: Ostateczny montaż
Zanim wszystko zmieściłem w obudowie, chciałem wszystko przetestować i rozłożyć moduły zgodnie z wymaganiami i wykonać ostateczne połączenia. Po tym, jak byłem zadowolony z działania części. Umocowałem je w obudowie kartonowej wykonanej w tym celu.
Załączam filmik po ostatecznym montażu podpory.
Krok 8: OBUDOWA
Załącznik
Obudowa została wykonana ze starego kartonowego pudełka pomalowanego na czerwono. Miejsce na oczy i czujnik PIR wycięto ostrym ostrzem. Na pudełku i oczach wklejono odcisk czaszki itp.odpowiednio wycięto, a kontur ponownie narysowano czarnym pisakiem Permanent Marker. Włosy wykonałam z wyrzuconych butelek po wodzie, pocięłam je na cienkie paski i przykleiłam klejem Hot Melt na głowę i boki. Naprawiłem 2 diody LED zmieniające kolor po bokach i zostały one podłączone do wyjścia z płyty kontrolera PIR.
Wykonano małe otwory na głośnik, a wszystkie elementy zostały zamocowane za pomocą kleju Hot Melt Glue po wewnętrznej stronie pudełka. Kabel zasilający został wyjęty z tyłu pudełka i to wszystko.
Mam nadzieję, że spodoba ci się tworzenie tego rekwizytu na Halloween dla dzieci !!
Wkrótce dołączę klip audio użyty w tym projekcie.
Wesołego Halloween dla wszystkich !!
Zalecana:
Zdalnie sterowane oczy LED i maska kostiumowa: 7 kroków (ze zdjęciami)
Zdalnie sterowane oczy LED i maska kostiumowa: Twin Jawas! Podwójne Orko! Dwóch duchowych czarodziejów z Bubble-Bobble! Ten kaptur kostiumowy może być dowolnym stworzeniem o oczach LED, które wybierzesz, zmieniając tylko kolory. Po raz pierwszy wykonałem ten projekt w 2015 roku z bardzo prostym obwodem i kodem, ale w tym roku chciałem
Niezbyt inteligentne, ale bardzo zdrowe, ale nieco przerażające lustro: 5 kroków (ze zdjęciami)
Nie tak inteligentne, ale bardzo zdrowe, ale nieco przerażające lustro: Potrzebujesz lustra, ale nie chcesz dodać kolejnego inteligentnego obiektu do swojego domu? W takim razie to nie tak inteligentne, ale bardzo zdrowe, ale nieco przerażające lustro jest właśnie dla Ciebie
Halloweenowe lampki: 4 kroki (ze zdjęciami)
Halloween Cheerlights: W ostatni Halloween postanowiłem stworzyć projekt na sezon. Używając modelu 3D ducha, który wydrukowałem na Prusa i3 i projekcie Cheerlights, stworzyłem dekorację Halloween, która losowo zmienia kolor. Projekt Cheerlight to opera
Śmieszne / przerażające twarze na MS Paint: 5 kroków
Śmieszne / przerażające twarze na MS Paint: WIEM!!!!! WIEM, ŻE ZROBIŁEM WIELE INSTRUKCJI MS PAINT!:D Więc pokażę ci, jak zrobić śmieszne/przerażające twarze na farbie (Przeczytaj dużą wiadomość powyżej). Poniższy obrazek jest przykładem tego, czego zamierzam Cię nauczyć, jak zrobić.P.S. Proszę ocenić
Halloweenowe światło stop: 4 kroki
Halloween Stoplight: Moja córka naprawdę chciała być światłem stopu na Halloween, więc moja żona zapytała mnie, czy mógłbym go zapalić. Wymyśliliśmy światło stopu, które miało „normalny”; tryb, w którym światła zmienią się z zielonego na żółty na czerwony, a także ha