תוכן עניינים:

אביזר עיניים מפחידות ליל כל הקדושים: 8 שלבים
אביזר עיניים מפחידות ליל כל הקדושים: 8 שלבים

וִידֵאוֹ: אביזר עיניים מפחידות ליל כל הקדושים: 8 שלבים

וִידֵאוֹ: אביזר עיניים מפחידות ליל כל הקדושים: 8 שלבים
וִידֵאוֹ: האנשים הכי שמנים בעולם | טופטן 2024, יולי
Anonim
ליל כל הקדושים מפחיד עיניים
ליל כל הקדושים מפחיד עיניים
ליל כל הקדושים מפחיד עיניים
ליל כל הקדושים מפחיד עיניים
ליל כל הקדושים מפחיד עיניים
ליל כל הקדושים מפחיד עיניים
ליל כל הקדושים מפחיד עיניים
ליל כל הקדושים מפחיד עיניים

במהלך השנים, ביצירת פרויקטים שונים, היה א

אוסף שלם של מודולים שונים שפשוט שכבו ללא שימוש ורציתי להשתמש לפחות בחלקם למשהו שיהיה כיף ויצירתי בו זמנית.

כשעברתי על "אתר instructables.com" לרעיונות, הגעתי לכמה פרויקטים שחשבתי שאפשר לערבב אותם יחד כדי להכין משהו ל" ליל כל הקדושים "הזה.

אני חייב לתת קרדיט לסטיב קווין, יוצר בלתי צפוי על השימוש ברעיונות שלהם.

אספקה

פריטים ומודולים בשימוש

מודולים בשימוש

1 לוח עצמאי Atmega8

2 לוח בקר מבוסס PIR עבור פלט 5 וולט

3 לוח מגבר LM386

מודול נגן MP3 4 כללי

5 מודולי LED MAX7219 8x8

מודול PIR 6 (כללי)

רמקול 7 אינץ '4 אוהם

חומרים אחרים

א. קופסת קרטון ריקה

ב. בקבוקי מים ריקים לשימוש חד פעמי

ג. שינוי צבע LED 5V

ד. חוטים שונים

ה. אקדח דבק

ו. מלחם

ז. כלים וחותכים שונים

ח. שנאי למטה 12V 1A

חָשׁוּב

1 Arduion IDE

2 לוח תכנות לשבבי AVR

3 תוכנות תכנות (צריבה)

שלב 1: המודולים השונים

המודולים השונים
המודולים השונים
המודולים השונים
המודולים השונים
המודולים השונים
המודולים השונים

ראשית, נבחן את ייצור המודולים השונים, אנחנו

בהחלט יכול לייצר רק PCB אחד לכל האלקטרוניקה והפרויקט יעבוד בסדר גמור, אבל מבחינתי הרעיון היה להשתמש בפריטים השונים שכבר הכנתי קודם לפרויקטים שונים ועכשיו כשהצורך נגמר, אני רק רציתי להשתמש מחדש בפריטים האלה.

לוח ATmega8

אני משתמש בשבב ATmega8 ללא גביש חיצוני. למעשה, לוחות אלה נועדו להריץ כמה מודולי LED P10 16x32 ונשארו לי כמה מהפרויקט הזה. תמונת הלוח ופריסת ה- PCB היא כדלקמן (ראה תמונות). ישנם מאמרים רבים על הכנת לוח ארדואינו משלך על "מדריכים". אתה יכול פשוט להשתמש בכל לוח ארדואינו ישן שאולי ישבת.

לוח בקר PIR

לוח PIR זה נועד להדליק ולכבות כמה קישוטי פסטיבלים מבוססי LED קטנים ועכשיו הוא פשוט שכב והחלטתי להשתמש בו. פריסת המעגל מוצגת בתמונות

לוח המגברים LM 386

זהו מודול המגבר שמעצים את פלט הקול ממודול נגן ה- MP3. הפריסה והמעגל די פשוטים והתמונות אומרות הכל. פריסת המעגל ותמונת הלוח שהושלם מסבירים את עצמם.

מודול נגן MP3

השתמשתי במודול נגן MP3 המוצג בתמונה. הוא זמין באמזון וכו ', הוא זול וקל לשימוש. החלק הטוב ביותר במודול הספציפי הזה הוא שהוא אינו דורש שום פקודה או חיבור נוסף כדי להתחיל לשחק. ברגע שהכוח המתאים מסופק ללוח, הוא מתחיל לבצע את עבודתו.

מודולי LED MAX7219 8x8

מודולי תצוגת LED מסוג 8x8 זמינים באמזון וכו '. תמונות של אלה שבהן השתמשתי מסופקות.

מודול PIR

השתמשתי במודול חיישן PIR הזמין. הוא זמין באמזון וכו ', הוא זול וקל לשימוש. התמונות ניתנות לעיון.

שלב 2: ההרכבה חלק 1

האסיפה חלק 1
האסיפה חלק 1

הקונספט היה לשלב את כל המודולים הללו ולייצר אביזר ליל כל הקדושים שיופעל בכל פעם שמישהו יעבור מול האביזר. לשם כך חיברתי את ספק הכוח 12 וולט ללוח הבקרה של PIR, אשר בתורו הוריד את המתח ל -5 V DC בעזרת ה- 7805 IC ומתח 5V DC זה הועבר לחיישן PIR והמשך למודולים האחרים., לוח ATmega8, מודול המגבר ומודול נגן MP3 בכל פעם שמישהו הגיע מול חיישן ה- PIR. תרשים הזרימה אומר הכל.

כפי שאנו יכולים לראות, חיישן PIR מפעיל את לוח ה- ATmega8, את מודול המגבר ואת מודול נגן ה- MP3, ה- ATmega8 שולט על "עיני" ה- LED Matrix, נגן ה- MP3 משמיע את אפקטי הקול ומודול המגבר שולח את האות לרמקול..

קוד הארדואינו הוא הרחקה ישירה מההנחיות של סטיב קווין, אלא שהזמן השתנה בקוד. הקוד המשמש ניתן להלן. מצורף גם קובץ INO.

הקוד

// D10 = פין CS דיגיטלי O/P

// 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 עין שמאלית 5 8

#define RightEye5 9

#define עין שמאלית 6 10

#define RightEye6 11

#define LeftEye7 12

#define RightEye7 13

#define LeftEye8 14

#define RightEye8 15

#define LeftEye9 16

#define RightEye9 17

#define עין שמאלית 10 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 מערך char חסום 1 [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; // עיכוב בקירוב ב- MilliSeconds להחזקת הצגת מסגרת אנימציה זו

int frameLuminance; // 0… 15, עוצמת מטריצת ה- LED למסגרת נתונה

} סוג מסגרת;

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}

};

עיכוב חלל מיליס (אינטש אלפיות השנייה)

{

עבור (int i = 0; i <מילי שניות; i ++)

עיכוב מיקרו שניות (1000);

}

הגדרת בטל () {

עבור (int x = 0; x <numDevices; x ++) {

כיבוי lc. (x, false); // ה- MAX72XX נמצא במצב חיסכון בחשמל בעת ההפעלה

lc.setIntensity (x, 1); // הגדר את הבהירות לערך ברירת המחדל

lc.clearDisplay (x); // ונקה את התצוגה

}

}

לולאת חלל () {

lc.setIntensity (0, 3);

lc.setIntensity (1, 3);

בעוד (נכון) {

עבור (int a = 0; a <(sizeof (סרט) / sizeof (frameType)); a ++)

{

עבור (int i = 0; i <8; i ++)

{

lc.setRow (0, i, binaryArray [movie [a].frameCount].array1 );

lc.setRow (1, i, binaryArray [movie [a].frameCount + 1].array1 );

lc.setIntensity (0, סרט [a].frameLuminance);

lc.setIntensity (1, סרט [a].frameLuminance);

}

delayMillis (סרט [a].frameDelay);

}

}

}

שלב 3: הרכבה חלק 2

הרכבה חלק 2
הרכבה חלק 2

לאחר הפעלת Arduino IDE, עליך להעתיק את הקוד ולאסוף/לאמת את הקוד. כאשר אתה אוסף את הקוד, קובץ HEX נוצר בתיקיית TEMP של המחשב. לפני סגירת ה- Arduino IDE, תוכל להעתיק את קובץ HEX מתיקיית הטמפ 'וקובץ זה הוא מה שנצטרך לשרוף לתוך שבב ATmega8 כדי לגרום לו לפעול.

בעת חיבור הקוד בחרתי את הלוח כ- "Arduino NG או ישן" ומעבד כ- "ATmega8" ולאחר ריכזתי העתקתי את קובץ ה- HEX מתיקיית הטמפ 'של המחשב לפני סגירת ה- Arduino IDE.

קובץ HEX זה נשרף על שבב ATmega8 עם צורב AVR חיצוני. השתמשתי לשם כך בתוכנת "Extreme Burner_AVR" ולוח מבערי AVR. מצורפת תמונת הלוח. אתה יכול להשתמש בכל תוכנת תכנות AVR שנוח לך.

הסיבה לשימוש במתכנת חיצוני הייתה שלא רציתי לצרוב את מטען האתחול על שבבי Atmega8 וללא מטען האתחול, הם לא יעבדו על לוח ה- Arduino הרגיל או עם ה- Arduion IDE. זה די קל לחלץ את קבצי HEX ברגע שאתה אוסף את הקוד עם Arduino IDE וזה מה שעשיתי.

הערה

חשוב מאוד לבחור את הגדרות ביט הנתיך הנכונות תוך שימוש במתכנת חיצוני.

במקרה זה, מכיוון שאיננו משתמשים ב- am kristal חיצוני ומסתמכים על השעון הפנימי של שבב ATmega8, חשוב שנגדיר את פיסות הנתיכים בהתאם. בחרתי בהגדרות הנתיכים הבאות.

Lfuse- E4

Hfuse - D9

מה זה אומר

פירוש הדבר שאיננו משתמשים בגביש חיצוני או בתהודה

השעון מוגדר לשעון פנימי של 8 מגה -הרץ

לאחר שתוכנת שבב ה- ATmega8, הגיע הזמן להרכיב את הפרויקט ולבדוק אותו.

שלב 4: חיבור העיניים

חיבור העיניים
חיבור העיניים
חיבור העיניים
חיבור העיניים

מטריצת ה- LED MAX7219 8x8 חוברה כמפורט להלן.

לוח ATmega8 TO MAX7219 מטריקס

IO Pin D10 ל- PIN PIN

IO Pin D11 ל- CLK PIN

IO Pin D12 ל- DIN PIN

VCC ל- VCC

GND ל- GND

עיין בתמונה

שלב 5: חיבור חיישן ומודול PIR

חיבור חיישן ומודול PIR
חיבור חיישן ומודול PIR
חיבור חיישן ומודול PIR
חיבור חיישן ומודול PIR
חיבור חיישן ומודול PIR
חיבור חיישן ומודול PIR
חיבור חיישן ומודול PIR
חיבור חיישן ומודול PIR

לאחר מכן חיישן ה- PIR היה מחובר לבקר ה- PIR

לוח, החיבורים הם כדלקמן

לוח בקר PIR לחיישן PIR

VCC ל- VCC

CTRL עד CTRL

GND ל- GND

עיין בתרשים

זה החלק שגורם לכל זה לקרות. חיישן ה- PIR מרים את התנועה של כל יצור בעל דם חם ומפעיל את אספקת החשמל לכל המעגלים/המודולים השונים. הזמן בחיישן PIR הותאם בהתאם לדרישה, ובמקרה זה הוא כ- 40 - 45 שניות. הוא שולח 5 וולט DC לכל המעגלים המחוברים אליו לתקופה של כ- 40-45 שניות.

שלב 6: נגן ה- MP3 והמגבר

נגן ה- MP3 והמגבר
נגן ה- MP3 והמגבר
נגן ה- MP3 והמגבר
נגן ה- MP3 והמגבר
נגן ה- MP3 והמגבר
נגן ה- MP3 והמגבר

הבא את מודול נגן ה- MP3 ואת מודול המגבר.

נגן ה- MP3 בו השתמשתי לא צריך ללחוץ על כל כפתור כדי להפעיל אותו, ברגע שהמתח הנכון מסופק אליו, הוא מתחיל להתנגן אוטומטית. הייתי צריך רק מסלול אחד אז מצאתי את כרטיס ה- SD עם הזיכרון הנמוך ביותר שיכולתי (4 GB כי כמעט בלתי אפשרי להשיג כרטיס בעל קיבולת פחותה בימים אלה). הצלילים שהורדתי מהאינטרנט, למעשה היו מספר אפקטים קוליים שהורדו וכולם נאספו ליצירת רצועת MP3 אחת באמצעות תוכנת עורך הסאונד. השתמשתי ב"עורך גל "ולבסוף העמסתי את הרצועה היחידה הזו לכרטיס ה- SD. כרטיס ה- SD הורכב במודול נגן ה- MP3 והפלט היה מחובר למודול המגבר כדי לקבל את הצליל מהרמקול.

עיין בתמונה

שבב המגבר LM386 דורש מעט מאוד רכיבים חיצוניים ומספק צליל טוב למדי מתוך רמקולים קטנים. המעגל די קל להרכבה של לוח לוח ולקח לי בערך 15-20 דקות להרכיב אותו. התמונה די מסבירה את עצמה.

שלב 7: האסיפה הסופית

Image
Image
המכלול
המכלול

לפני שהתאים את הכל במארז, רציתי לבדוק הכל ולרשום את המודולים כנדרש וביצעתי את החיבורים הסופיים. לאחר שהייתי מרוצה מעבודת החלקים. תיקנתי אותם בתוך מארז לוח הכרטיסים שנועד למטרה זו.

אני מצרף סרטון לאחר ההרכבה האחרונה של האביזר.

שלב 8: המכלול

המכלול
המכלול
המכלול
המכלול
המכלול
המכלול

המארז

המארז עשוי מארז קרטון ישן, צבוע באדום. המקום לעיניים וחיישן PIR נחתך באמצעות להב חד. הדפסה מתוך הגולגולת הודבקה על הקופסה והעיניים וכו '.נחתך בהתאם והמתאר צייר מחדש בעזרת עט סמן קבוע שחור. עשיתי את השיער מבקבוקי מים שהושלכו, חתכתי אותם לרצועות דקות והדבקתי אותם עם הדבק חם להמיס על הראש והצדדים. תיקנתי 2 נוריות נוריות משתנות בצבעים ואלו היו מחוברות לשקע מלוח בקר ה- PIR.

נוצרו חורים קטנים לרמקול וכל הפריטים תוקנו בעזרת הדבק חם על החלק הפנימי של הקופסה. כבל החשמל הוצא מהחלק האחורי של הקופסה וזהו בערך.

אני מקווה שתיהנו להכין את אביזר ליל כל הקדושים הזה לילדים !!

בקרוב אצרף את קליפ האודיו המשמש בפרויקט זה.

ליל כל הקדושים שמח לכולם !!

מוּמלָץ: