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

רספיטון: Jukebox קל לשימוש: 7 שלבים
רספיטון: Jukebox קל לשימוש: 7 שלבים

וִידֵאוֹ: רספיטון: Jukebox קל לשימוש: 7 שלבים

וִידֵאוֹ: רספיטון: Jukebox קל לשימוש: 7 שלבים
וִידֵאוֹ: Boney M. - Rasputin (Sopot Festival 1979) 2024, נוֹבֶמבֶּר
Anonim
רספיטון: Jukebox קל לשימוש
רספיטון: Jukebox קל לשימוש

שלום, הפרויקט הבא שלי הוא, כפי שאני נוהג לעשות, פרוייקט לא מאוד שימושי:

זהו תיבת ג'וקים המבוססת על פטל 3 B+

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

אבל לפרויקט שלי היו לי שני תנאים מוקדמים קשים:

רציתי להכין משהו "וינטאג '".

ובסך הכל, בהתחשב בעובדה שהגברת שלי חסרת תקווה בהחלט למחשב או לבלוטות 'או כל דבר אחר מהמאה ה -21, (ואפילו ה -20), הייתי צריך לעשות משהו פשוט מאוד לשימוש ………..

אז המפרט היה כדלקמן:

כפתור לחיצה אחד להפעלת המכונה

מסך מגע (פשוט מאוד) לניהול המוזיקה.

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

וכדי שיהיה צליל טוב ………

אספקה

לשם כך השתמשתי ב:

1 פטל 3 B+

קולנוע ביתי ישן אחד שהיה חסר תועלת עקב קורא DVD OOS (סמסונג 2.1 ישן עם וופר ו -2 רמקולים ששיניתי כך שיתאים לקופסה)

לוח HIFIBERRY DIGI+ (עם פלט אופטי עבור מגבר הכוח)

מסך מגע 1 קיבולי 7 אינץ '(שלי מתאים לפטל עם כניסת HDMI ומופעל באמצעות USB אבל כל מסך מגע HDMI צריך להיות תקין)

אספקת חשמל אחת 5V 5A

מגן ממסר אחד

1 ננו ארדואינו לניהול תהליך ההפעלה/כיבוי

1 IR הוביל להנעת הקולנוע הביתי (המונע על ידי טרנזיסטור NPN 2N2222)

מקלט IR 1 (עבור חלק הלמידה בקודי IR בפרויקט, אני מקבל את שלי מדיסק קשיח מולטימדיה ישן עם פקודה מרחוק)

3 לד

מתג אחד למצב תחזוקה

מתג אחד לעבודה על הארדואינו (במהלך ההעלאה הארדואינו מתאפס)

כמה מחברי JST ו- Dupont

ולגבי הקופסה

עץ ודיקט (אך לא אתאר לעומק את עשיית הקופסה). רק כדי לומר שבקשר לבומר בתוך הקופסה, דיקט 10 מ"מ ועץ 18 מ"מ הם חובה אם אתה לא רוצה לראות את הג'וקבוקס חוצה את הסלון תוך כדי משחק !!!!

שלב 1: תיאור חלק פטל:

Raspi צריך לנהל דברים שונים:

1) הפקודות לקולנוע הביתי (באמצעות שלט IR)

2) קבצי המוסיקה

3) מסך המגע

4) דופק הלב לארדואינו (שמנהל את Wdt (טיימר כלב השמירה))

התחלתי מהפצה של Raspbian על כרטיס 16 G SD (מכיוון שנקרא רק קבצים מכרטיס ה- SD, אין צורך בשימוש בכונן קשיח). לא אבזבז זמן על החלק הזה מכיוון שהאינטרנט מלא בהדרכה בנושא..

בואו לראות את החלקים השונים בשלבים הבאים….

שלב 2: קודי ה- IR מרחוק

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

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

היו לי כמה הבדלים, כנראה בגלל גרסה חדשה מכיוון שההוראות ישנות למדי, הקובץ hardware.conf כבר לא קיים (לפחות לא מצאתי)

נראה גם שהטרנזיסטור המשמש את הטוטו הוא טרנזיסטור PNP, מצידי השתמשתי ב- 2N2222 שהוא NPN אך התוצאה זהה. (למעט הכבלים !!!!!!!!)

הקצאת הסיכה ניתנת ב- /boot/config.txt:

#autorisation de lirc le 2019-07-08dtoverlay = lirc-rpi, gpio_out_pin = 22, gpio_in_pin = 23

נורית ה- IR תהיה כל כך מחוברת ל- pin22 של ה- Raspi.

הערה אחת חשובה: כאשר לומדים את הקודים ל- Raspi חובה להשתמש במילות המפתח המופיעות בפקודה

irrecord-רשימת שמות רשימה

להלן הקובץ שבניתי עבור תיבת ההגשה שלי:

pi@raspitone:/etc/lirc $ cat lircd.conf

# קח את הזמן לסיים קובץ זה כמתואר בכתובת # https://sourceforge.net/p/lirc-remotes/wiki/Check… # והפוך אותו לזמין לאחרים על ידי שליחתו ל- # #

# קובץ תצורה זה נוצר באופן אוטומטי

# שימוש ב- lirc -0.9.4c (ברירת מחדל) ביום ה 'ה -9 במאי 17:33:37 2019 # שורת הפקודה בשימוש: -d /dev /lirc0 /root/lircd.conf

# גרסת ליבה (uname -r): 4.14.98 -v7+ # # שם מרחוק (נכון לקובץ התצורה): jukebox

# מותג המכשיר המרוחק, הדבר שאתה מחזיק בידך: # דגם מכשיר מרוחק מספר:

# כתובת אתר מידע על מכשיר מרוחק:

# האם למכשיר מרוחק יש מכשיר לכידה מצורף e. ז., א

# פלאג USB?:

# למכשירי USB מצורפים: מזהה ספק USB, מזהה מוצר

# ומחרוזת התקנים (השתמש ב- dmesg או lsusb):

# סוג המכשיר נשלט

# (טלוויזיה, וידיאו, אודיו, DVD, לוויין, כבלים, HTPC, …):

# מכשירים נשלטים על ידי שלט זה:

להתחיל מרחוק

שם jukebox

סיביות 16

דגלים SPACE_ENC | CONST_LENGTH

eps 30

aeps 100

כותרת 4470 4496

אחד 542 1693

אפס 542 581

ptrail 553

16

pre_data 0xC2CA

פער 107863

מסכת toggle_bit_x 0

תדר 38000

להתחיל בקודים

KEY_POWER 0x807F

KEY_AUX 0x8877

KEY_VOLUMEUP 0xCC33

KEY_VOLUMEDOWN 0xDC23

קודי סיום

סיום מרחוק

כפי שאתה יכול לראות, אני רק צריך 4 פקודות כדי להניע את הקולנוע הביתי

כוח (הפעלה/כיבוי)

AUX => כדי לעבור לערוץ הקלט האופטי (מכיוון שה- HC תמיד מתחיל בקורא DVD)

ונפח +/-

הפקודות הקשורות מבוצעות באמצעות פקודות LIRC:

לדוגמה: "irsend SEND_ONCE jukebox KEY_VOLUMEUP"

שלב 3: תכנית ראשית

התוכנית הראשית כתובה בפייתון:

מכיוון שאני חדש ב- Python אני מניח שאפשר לעשות הרבה שיפור, אבל הוא פועל …

המפרט:

1) נהל את המסך הגרפי:

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

2) הפעל את קבצי mp3:

השתמשתי ב- mplayer עבור פייתון.

3) צור מספרים אקראיים למשחק במצב דשדוש:

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

פונקציית הרנדינט בפייתון אינה כל כך "אקראית" עד כמה שראיתי.

4) שלח את "פעימות הלב" לארדואינו

5) ניהול נגן קבצים:

מכיוון ש- Mplayer הוא אסינכרוני, כאשר הקובץ מופעל, אין דרך לדעת על פייתון כאשר הוא מסתיים (לפחות לא מצאתי דרך פשוטה)

כדי לפתור זאת השתמשתי בפקודות mplayer המספקות את אורך הקובץ וההתקדמות בקובץ הנוכחי

הן עבור 4 והן ב- 5 השתמשתי באפשרות שנתן Appjar ליצירת משימה תקופתית (מכיוון ש- appjar הוא תכנית אירועים זוהי דרך ליצור אירוע תקופתי). הפונקציה היא:

#******************* התחל איש משימות ********************* app.registerEvent (איש משימות)

p.setPollTime (1000)

איש משימות עבור "מנהל משימות" המהווה הגדרה בתוכנית המנהלת את כל מה שאינו אירועי מסך (סוף הקובץ שהושמע, מאכלס סרגל התקדמות, שלח פעימות לב לננו, …)

ברגע שהמסך נפתח המסך נראה כך:

תמונה
תמונה

להלן התוכנית: (ניתן לפתוח באמצעות Notepad ++ או Geany)

שלב 4: חלק פטל: הפעלה אוטומטית והוספת קבצים חדשים

אם אתה מסתכל על התוכנית אתה יכול לראות שאני משתמש בכמה קבצי bash:

1) Start_jukebox:

למעשה המטרה היא להפעיל את הקולנוע הביתי ולעבור לכניסת D. IN (קלט אופטי בקולנוע הביתי שלי)

pi@raspitone:/bin $ cat start_jukebox#!/bin/bash

שלח את SEND_ONCE jukebox KEY_POWER

לישון 7

שלח את SEND_ONCE jukebox KEY_AUX

לישון 2

2) stop_jukebox:

לכבות את הקולנוע הביתי

pi@raspitone:/bin $ cat_ stop_jukebox

#!/bin/bash

שלח את SEND_ONCE jukebox KEY_POWER

שני קבצי bash אלה נקראים על ידי Python באמצעות הפקודה os.system

כדי להתחיל את סקריפט Python עשיתי מחשב קטן

pi@raspitone: ~ $ cat dem_jukebox.bash#!/bin/bash

cd /home /pi

python jukebox_gui.py

לצורך ההפעלה האוטומטית במצב GUI שיניתי את הקובץ להפעלה אוטומטית ב-/etc/xdg/lxsession/LXDE-pi

pi@raspitone:/etc/xdg/lxsession/LXDE-pi $ cat start אוטומטית@lxpanel-פרופיל LXDE-pi

@pcmanfm-שולחן העבודה-פרופיל LXDE-pi

@xscarver -no -splash

@lxterminal --command = "dem_jukebox.bash"

נקודה-rpi

הוספת קבצי mp3 חדשים:

כדי להוסיף קבצים חדשים, העדפתי ליצור סקריפט ייעודי קטן לפייתון:

new_song_file.py

ראשית אסביר את ארגון קבצי המערכת:

כל הקבצים נמצאים ב- /home /pi

קבצי mp3 מאוחסנים בספריית/home/pi/מוסיקה

לכל אמן יש ספריית משנה משלו המארחת את קבצי ה- mp3 הקשורים

pi@raspitone: ~/מוסיקה/מייק_ולדפילד $ ls -סך הכל 760516

-rwxr ----- 1 pi pi 2254923 30 ביוני 2017 A_New_Beginning.mp3

-rwxr ----- 1 pi pi 2691736 30 ביוני 2017 הגעה.mp3

-rwxr ----- 1 pi pi 8383244 30 ביוני 2017 Ascension.mp3

-rwxr ----- 1 pi pi 5410816 30 ביוני 2017 Blue_Night.mp3

-rwxr ----- 1 pi pi 13125199 30 ביוני 2017 Castaway_ (אינסטרומנטלי).mp3

-rwxr ----- 1 pi pi 12903583 30 ביוני 2017 Castaway.mp3

-rwxr ----- 1 pi pi 2969869 30 ביוני 2017 Celt.mp3

-rwxr ----- 1 pi pi 9047745 30 ביוני 2017 מרכבות_ (אינסטרומנטלי).mp3

-rwxr ----- 1 pi pi 9403263 juin 30 2017 מרכבות.mp3

בספריית מסמכים אנו יכולים למצוא את רשימת הקבצים המובנים להפעלה.

pi@raspitone: ~/Documents $ cat list.txtFranz_Ferdinand/Michael_live.mp3

Franz_Ferdinand/evil_and_a_heathen.mp3

Franz_Ferdinand/Walk_Away_live.mp3

Franz_Ferdinand/love_and_destroy.mp3

Franz_Ferdinand/his_fffire.mp3

Franz_Ferdinand/eleanor_put_your_boots_on.mp3

Franz_Ferdinand/missing_you.mp3

Franz_Ferdinand/this_fire_ (playgroup_remix).mp3

פרנץ_פרדיננד/ז'קלין.mp3

אנו גם יכולים למצוא את נתוני רשימות ההשמעה (אך אלה נבנים על ידי סקריפט פייתון)

התסריט הקטן של פייתון מוסיף את השירים החדשים, השמורים במוזיקה, ברשימת list.txt לאחר שעיצב את הכותרות בפורמט UNIX.

להלן התסריט: (ניתן לפתוח אותו באמצעות פנקס רשימות ++ או Geany)

שלב 5: ניהול הכוח באמצעות Arduino Nano

מכיוון שרציתי שיהיה משהו פשוט להתחיל, החלטתי לעשות זאת על ידי ננו קטן:

העיקרון:

כאשר לוחצים על כפתור ההתחלה המכשירים כולם מופעלים, הננו מתחיל (1 או 2 שניות) ומשתלט על ניהול הכוח על ידי הפעלת ממסר אשר מסיר את מגעי כפתור הלחיצה.

ואז ננו ממתין 35 שניות כדי לקבל את פעימות הלב מפטל (פירושו שתהליך ההתחלה הושלם ותוכנית תיבת ההגשה פועלת).

כל עוד ננו מקבל את פעימות הלב הוא שומר על הממסר (טיימר כלב צפייה)

אם אין עוד דופק (פירושו שתוכנית תיבת הג'וקים מופסקת) ננו ממתין 20 שניות (כדי להיות בטוח שהרספי נעצר לחלוטין) כדי לשחרר את ממסר הכוח.

אז תיבת הג'וקס כבויה לגמרי

הוספתי מתג להפעלת קלט של הננו לציון מצב תחזוקה (אני משתמש בתיבת ההגשה לניהול שרתי ה- raspi האחרים שלי באמצעות ssh et vnc). לאחר מכן ננו מבטל את תהליך כלב השמירה

הֶעָרָה:

יש להסיר את הקלט לפעימות הלב מ- Raspi (אך 3.3V מ- Raspi נחשב לרמה גבוהה על ידי ננו)

אפשר לעשות את זה עם NE555 אבל אני עצלן ותמיד יש כמה ננו במגירה שלי !!!!

להלן תוכנית C הקצרה (ניתן לפתיחה עם פנקס רשימות ++)

שלב 6: הכבלים

הכבלים
הכבלים
הכבלים
הכבלים

עבור המסך:

כבל HDMI וכבל USB משמשים ב- Raspi כדי להפעיל את המסך ולהניע אותו.

ללוח הקדמי:

כבל USB מחובר גם מה- Raspi כדי להעלות קבצים חדשים או לבצע גיבויים.

כבל USB מחובר מה- Nano בכדי שניתן יהיה לגשת לרך (לשינויים במידת הצורך)

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

כאשר משתמשים בפטל וארדואינו, הכבלים פשוטים למדי.

הכל ממוקם על לוח מטריקס רצועה.

מהפטל 2 משתמשים ב- GPIO:

Pin22 עבור IR LED

סיכה 27 לדופק הלב לארדואינו

על ארדואינו

סיכה 2 משמשת כסיכת הפסקה לדופק הלב של רספי.

סיכות 3 עד 5 משמשות לנהיגה של הלדים (Start, Wdt, תחזוקה).

סיכה 6 מיועדת למתג התחזוקה.

סיכה 7 מופלט למגן ממסר.

להלן קובץ הטירוף:

שלב 7: הקופסה

התיבה
התיבה

לא אתאר הרבה מה עשיתי מכיוון שזה תלוי במגבר ההספק וברמקולים שבהם נעשה שימוש.

כמידע הקולנוע הביתי ממוקם בתחתית הקופסה.

קצת מעל הרמקולים:

וופר אחד

2 רמקולים בינוניים, ששיניתי כדי להכניס אותם לקופסה.

בחלקו העליון:

הפאנל הקדמי עם המסך, נוריות ה- LED, המתגים ותקעי ה- USB.

העץ:

עבור הרמקולים, הצד מחלק את החלק העליון והתחתון השתמשתי בקרש עץ בגודל 18 מ מ.

הצד הקדמי הוא דיקט 10 מ"מ עם ברגים 40 מ"מ.

כדי להקל על הכבלים ועל התחזוקה (במידת הצורך !!!) הנחתי את המעגל על מגירה מאחורי הפאנל הקדמי

כדי למנוע התחממות יתר, חור גדול נעשה בתחתית הפאנל האחורי והנחתי מאוורר 5V (8 ס מ) על הפאנל האחורי ממש ליד המעגל.

התמונה למעלה היא רק כדי לתת מושג.

אז זהו זה !!!!!!!!!

תודה שקראתם אותי

ונתראה בפעם הבאה להרפתקאות חדשות

מוּמלָץ: