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

רדיו בכיר - פטל פטל: 8 שלבים
רדיו בכיר - פטל פטל: 8 שלבים

וִידֵאוֹ: רדיו בכיר - פטל פטל: 8 שלבים

וִידֵאוֹ: רדיו בכיר - פטל פטל: 8 שלבים
וִידֵאוֹ: הביקורת החקירתית ומערכות המחשב - גיורא הרטוג, מנכ"ל אודיט בקרה וביקורת 2024, נוֹבֶמבֶּר
Anonim
רדיו בכיר - פטל פטל
רדיו בכיר - פטל פטל

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

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

הפונקציונליות המרכזית היא ב- Github, המאוחסנת בתוכנית python 3.7.3 הנקראת seniorRadio.py. הוא קורא וכותב קובץ json לאחסון מצב הרדיו, כך שכאשר תכבה אותו הוא יזכור את רמת השמע ואת התחנה הנוכחית שנבחרו. בנוסף, הוא קורא קובץ json מקוון שתוכל לשנות! זה מאפשר לך לעדכן את תחנות הרדיו מרחוק אם אתה נותן את זה למישהו אחר.

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

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

עבור המשתמש, הפונקציונליות פשוטה:

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

אספקה

מקושר לכל פריט הוא הפריט הספציפי בו השתמשתי. עלה לי בסך הכל 60 $ עם הרבה שאריות ציוד!

ידע בסיסי באלקטרוניקה ובלינוקס - להרכבה וניפוי באגים

Raspberry Pi Zero W (באפס WH יש כותרות מולחמות מראש וככל הנראה שימושיות)

כרטיס MicroSD -8 GB+ ויכולת o

מתאם מתח 5V MicroUSB - הקישור כולל גם מתאם microHDMI ומתאם OTG ל- USB A מסוג microUSB להתקנה אם תצטרך אותם

רמקול בלוטוס

כבלי מגשר M/F ו- M/M

2 מקודד רוטרי - אותו קישור לעיל

קרש לחם קטן

לחץ על הכפתור

LED (אופציונלי) - LED קנה + כפתור לחיצה למעלה

קופסה לאריזה

שלב 1: התקנה (ללא ראש) Raspberry Pi W

התקנה (ללא ראש) Raspberry Pi W
התקנה (ללא ראש) Raspberry Pi W

עלינו להתקין את מערכת ההפעלה על פטל הפאי שיפעיל את התוכנה. כל זה אינו ייחודי לפרויקט זה. לצורך איתור באגים, אני ממליץ להגדיר אותו כך שתוכל לגשת אליו גם במצב ללא ראש. המשמעות היא שאתה ניגש ל- Pi דרך רשת ה- WiFi שלך באמצעות GUI או מסוף SSH ואינך זקוק למקלדת, עכבר וצג כדי להשתמש בו בכל פעם. אתה יכול לעשות זאת מבלי שתצטרך להתחבר למסך/עכבר/מקלדת אי פעם אם אתה יותר מתמצא בטכנולוגיה. כמה הוראות לדוגמא כאן. עם זאת הוא פחות ישר קדימה, ולהלן דרך נוספת להגדיר אותו.

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

  • פטל פי W
  • מתאם כרטיס MicroSD לכרטיס SD [לכתיבת מערכת הפעלה לכרטיס SD]
  • כרטיס MicroSD (~ 8 GB+) [לאחסון מערכת ההפעלה והתוכנית שלנו]
  • כוח MicroUSB (5V)
  • MicroUSB ל- USB A [לעכבר/מקלדת]
  • מתאם מיני HDMI ל- HDMI [לפלט תצוגה]
  • מקלדת
  • עכבר
  • צג

ראשית, יהיה עליך להבהב את מערכת ההפעלה על כרטיס ה- micro SD של rPi.

השתמשתי ב- buster raspian, אתה מוריד את זה למחשב עם כרטיס/כותב כרטיס SD ואז מהבהב את מערכת ההפעלה raspian לכרטיס ה- SD. BalenaEtcher היא תוכנה קלה לעשות זאת

לאחר מכן הכנס את כרטיס ה- SD לחריץ ה- pi, חבר את הצג, המקלדת והחשמל. המשך בשלבי ההתקנה שה- raspian יבקש ממך, כולל חיבורו לרשת ה- WiFi שלך והתאמת רמקול ה- Bluetooth באמצעות ה- GUI. נוהג טוב יהיה לעדכן אותו באמצעות הפקודות הבאות

עדכון sudo apt-get

sudo apt-get upgrade

אם אתה רוצה לכלול את סימון ה- pi שלך ללא ראש, נצטרך קודם כל לתפוס את כתובת ה- ip של ה- pi. באמצעות מסוף אתה יכול למצוא אותו דרך

ifconfig

פקודה. לאחר מכן עליך להפעיל SSH ו- VNC על אפשרויות הממשק ב

sudo raspi-config

לאחר הפעלה מחדש, כעת תוכל לבדוק את הגישה ל- pi באמצעות SSH או VNC. SSH הוא רק ממשק מסוף, וייתכן שיהיה לך קל יותר להשתמש ב- GUI כדי להתאים רמקול Bluetooth. אתה יכול להשתמש בתוכנית כמו VNC connect כדי לגשת בקלות ל- pi שלך במחשב נפרד ברשת שלך. אתה יכול להשתמש בתוכנית כמו מרק ל- SSH לתוכה.

יתר על כן, תוכל להגדיר חשבון ענן VNC כך שתוכל לגשת למכשיר מחוץ לרשת במידת הצורך

שלב 2: התקן תוכנת רדיו בכירה

התקן תוכנת רדיו בכירה
התקן תוכנת רדיו בכירה

ניתן לעשות זאת מחלון מסוף של פטל הפטל. ראשית ודא שהתקנת git

sudo apt-get להתקין git

בהתאם למערכת ההפעלה שהתקנת, שלבים אלה עשויים להיות שונים כיוון שתצטרך להתקין חבילות נוספות, המערכת תגיד לך אם כן. ראשית עלינו להוריד את קוד הרדיו הבכיר מ- github. https://github.com/Bunborn/seniorRadio באופן אידיאלי, אתה מבצע ריפו משלנו, כך שתוכל לבצע שינויים ולשנות בקלות את תחנות הרדיו באותו אופן כמוני. מזלג את הריפו אם כן

עם זאת, אתה יכול להשתמש בשלי כמו שלי אין בעיה אם אתה רוצה לארח את קובץ json הרדיו שלך במקום אחר

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

בחזרה לחלון הטרמינל, git שיבוט

כעת אתה אמור לראות ספרייה נוספת בשם seniorRadio כאשר אתה מסתכל באמצעות ls. פַנטַסטִי!

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

שלב 3: התקן תוכנה נוספת

התקן תוכנה נוספת
התקן תוכנה נוספת

לפני שנמשיך למעגל ונבדוק אותו, עלינו גם להוריד את VLC ואת ה- python api עבורו. ייתכן שכבר מותקנת VLC. שתי הפקודות הראשונות יעדכנו את ה- pi, ושתי הפקודות האחרונות להלן יתקינו את VLC ולאחר מכן את ה- python api

עדכון sudo apt-get

sudo apt-get upgrade

sudo snap התקן VLC

sudo apt-get להתקין vlc-python

בנוסף, התקן גם gpiozero, בו נשתמש כדי להתממשק עם סיכות ה- GPIO של ה- pi. ייתכן שכבר מותקן אותו בהתאם למערכת ההפעלה שלך.

sudo apt-get להתקין gpiozero

שלב 4: מצא זרמי תחנות רדיו

מצא זרמי תחנות רדיו
מצא זרמי תחנות רדיו

הבא, אחד החלקים הכי מהנים! הגיע הזמן לבחור את כל הזרמים שאתה רוצה.

בקובץ internetStations.json שלי אתה יכול לראות את קישורי הזרם שלי, בעיקר עבור חדשות ומוזיקה. אבל יש המון תוכן מתארח בחוץ. המפתח כאן הוא למצוא את כתובת ה- URL של הזרם הישיר. לדוגמה, אתרי החדשות והמוזיקה של ה- BBC ניתן למצוא כאן בבלוג זה. לזרמים ישירים אלה לא יהיה ממשק גרפי ויפעילו את הזרם אוטומטית דרך נגן המדיה של הדפדפן שלך. אלה כתובות ה- URL הדרושות לנו כדי ש- VLC תוכל לקרוא אותן! אתה יכול לבדוק כל קישור במהירות בדפדפן האינטרנט שלך, או באמצעות VLC במחשב הרגיל שלך כדי להבטיח שהוא יעבוד על ה- pi.

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

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

בתחילת תוכנית הפיתון יש משתנה שנקרא url, פשוט שנה את זה ככתובת ה- URL של קובץ ה- json שלך עם קישורי כתובת ה- URL

אתה יכול לעקוב אחר אותו פורמט של קובץ internetStation.json שלי. אם אתה רוצה להשתמש גם ב- github, תוכל פשוט לזלף במאגר seniorRadio שלי ולערוך קובץ internetStation.json משלך ולהצביע על כתובת ה- URL "הגולמית" הזו. אתה יכול למצוא את זה למטה ב- Github GUI לאחר לחיצה על הקובץ.

שלב 5: צור מעגלים

צור מעגלים
צור מעגלים

כעת עלינו להתקין את המעגל. זה ישתנה בהתאם לציוד שלך, אך להלן אופן ההתקנה שלי.

pinout.xyz/ לעיון אילו סיכות הן. מכיוון שאנו משתמשים בספריית gpiozero, אנו עוסקים במספור סיכות BCM בלבד. שים לב שקניתי כמה מקודדים סיבוביים נוספים KY040 - החוגות - כדי לבדוק אותם מכיוון שלכולם לא אותו דיוק. לכל אחד יהיה פלט "מקפיץ", או פשוט לא נכון, אז בחרתי את הטוב מבין השניים שיש לי. בקוד תוכלו לציין שיש כמה צעדים להגביל גם את ההקפצה הזו.

חיברתי את כפתור הלחיצה שלי לסיכה 17 BCM ואדמה

הנורית שלי לנגד 1k אוהם ולאחר מכן סיכה 27 BCM ואדמה

למקודדים הסיבוביים KY040 שלי היה ה- + lead ל- 5V, ה- GND לאדמה ו- SW מנותק. אלה היו מחוברים על גבי לוח לחם מיני

מקודד סיבוב dt סיכה מחובר לסיכה BCM 21

סיכת CLK של מקודד סיבובי המחובר לסיכה BCM 20

מקודד סיבוב ברמת שמע סיכה מחובר לסיכה BCM 19

סיכת CLK מקודד ברמת שמע מחובר לסיכה BCM 16

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

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

שלב 6: בדוק את זה

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

cd seniorRadio

python3 seniorRadio.py

נכון לעכשיו, יש עיכוב של 45 שניות בתחילת התוכנית כדי לתת לו זמן למצוא את רמקול ה- Bluetooth בזמן ההפעלה. תוכל להגיב על השורה הזו אם אינך זקוק לה במהלך הבדיקה. התוכנית עשויה להגיד לך שאתה צריך להתקין חבילות נוספות, קדימה אם כן. ייתכן שיהיה צורך להתקין גרסה חדשה יותר של Python.

sudo apt-get להתקין python3.7

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

אני לא שומע שום קול

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

אודיו תקוע או חותך פנימה והחוצה

נסה לקרב את המכשיר לנתב ה- WiFi שלך. בנוסף, ודא שרמקול ה- Bluetooth נמצא בקרבת מקום. יכול להיות גם בעיה של מנהל התקן שמע

שלב 7: הכנס למארז קבוע

הכניסו למארז קבוע
הכניסו למארז קבוע

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

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

בדקתי את ההרכבה וודאתי שזה עובד, וואלה!

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

שלב 8: הגדרת תוכנית להפעלה בעת האתחול

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

באופן אישי, הגדרתי אותו באמצעות הדרך השנייה במדריך זה של SparkFun:

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

עכשיו אתה יכול לנסות לכבות ולהפעיל מחדש את הפאי שלך! לאחר כ- 90 שניות ה- Pi שלך אמור להתחיל לנגן שוב את זרמי הרדיו. עם לחיצה על כפתור זה ישהה/ינגן. הערה בהפעלה מחדש זו קוראת מחדש את קובץ ה- json של InternetStations כך שאם תשנה את התחנות שלך עליך להפעיל מחדש את המכשיר כדי שיעבוד. מזל טוב!

אם ביצעת זאת או שינית את הפרויקט, אנא יידע אותי!

דף Github:

מוּמלָץ: