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

מחולל כוכבים / חלקיקים RPi 3: 6 שלבים (עם תמונות)
מחולל כוכבים / חלקיקים RPi 3: 6 שלבים (עם תמונות)

וִידֵאוֹ: מחולל כוכבים / חלקיקים RPi 3: 6 שלבים (עם תמונות)

וִידֵאוֹ: מחולל כוכבים / חלקיקים RPi 3: 6 שלבים (עם תמונות)
וִידֵאוֹ: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2024, יולי
Anonim
Image
Image
הרכיבו את לוח הלדים
הרכיבו את לוח הלדים

האם אתה מרגיש משועמם עם ה- Raspberry Pi שלך? האם אתה מוכן לשלוט בכוחות היסודיים של היקום, לזמן ולבטל פוטונים כרצונו? האם אתה רק רוצה משהו מעניין לתלות בסלון שלך, או פרויקט מפואר לפרסם בפייסבוק כדי להראות לדניס שאתה מסתדר מצוין בימים אלה, תודה רבה לך? האם אתה לכוד בסימולציה ממוחשבת ושוחק את השעות עד שאתה משתחרר או נמחק? אם אחד או כל אלה מתארים אותך, אז [קול הקריין] ברוך הבא!

מדריך זה יראה לכם כיצד להרכיב ולהקים תצוגת מחולל חלקיקים באמצעות Raspberry Pi 3 וכמה לוחות מטריקס RGB. זה אמור לקחת לך בין שעה לשעתיים, והמוצר המוגמר יהיה בערך 30 "x8" (לא כולל ה- Pi) וניתן להתקנה על הקיר. הוא יוצר קישוט די מגניב לסלון, למשרד, לחדר משחקים או לכל מקום אחר שתרצו לשים אותו.

לפני שתתחיל, הנה מה שאתה צריך, ומה העלויות המשוערות:

  • Rpi 3 + כרטיס SD + מארז + ספק כוח: $ 70 (מ- Canakit, אבל אתה כנראה יכול לקבל את החלקים זולים יותר אם אתה קונה אותם בנפרד.)
  • 4x 32x32 RGB מטריקס LED (רצוי p6 פנימי עם 1/16 סריקה): $ 80- $ 100 נשלח ב- Alibaba או Aliexpress; 160 $ ב- Adafruit או Sparkfun.
  • כובע Adafruit RGB Matrix: 25 $
  • ספק כוח 5V 4A: 15 $
  • קליפים מודפסים בתלת -ממד: 1 ש"ח (אלה מיועדים לחיבור הפנלים ותלייתם על הקיר; אם אין לך גישה למדפסת תלת -ממד, תוכל להשתמש ברצועת פרווה כדי להחזיק אותם יחד ובמסגרות מסוימות מחנות החומרה עד לתלות אותו מהקיר. ניסיתי למצוא את קבצי העיצוב או ה-.stls עבור אלה, אך נראה שהם עברו מהאדמה. עם זאת, די קל לדגמן.)
  • 14x ברגים M4x10: 5 ₪
  • ארבעה כבלי 4x8 IDC ושלושה כבלי חשמל למטריצות RGB (אני לא יודע איך קוראים לזה!). אלה היו צריכים להיות כלולים בלוחות ה- LED שלך.
  • סה"כ: בסביבות 200 $, תן או קח.

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

זה גם מניח שיש לך ידע בסיסי כיצד לעשות דברים משורת הפקודה בלינוקס, והדרכת הקוד מניחה שאתה מכיר את היסודות של פייתון (אך - אינך צריך לעקוב אחר קוד ההדרכה כדי שתוכל לבנות הפעל את מחולל החלקיקים.) אם אתה נתקע באחד מהשלבים, אל תהסס לשאול שאלה או לפרסם ב- /r /raspberry_pi (וזה גם, אני מניח, הקהל העיקרי של ההנחיה הזו)

שלב 1: הרכבת לוח הלדים

הרכיבו את לוח הלדים
הרכיבו את לוח הלדים

ראשית, אתה הולך להרכיב את לוחות ה- 32x32 הנפרדים ללוח אחד בגודל 128x32. יהיה עליך להסתכל על הלוחות שלך ולמצוא את החצים הקטנים המצביעים על סדר החיבור; בשלי הם ממש ליד מחברי ה- IDC HUB75/2x8. וודא שהחיצים מצביעים מהמקום בו ה- Rpi יתחבר (ימינה בתמונה למעלה) לאורך הלוח.

יהיה עליך גם לחבר את כבלי החשמל. לרוב הכבלים הללו יש שני מחברים נקביים המתחברים ללוחות, וסט אחד של מסופי כף המתחברים למקור החשמל. הלוחות איתם אני עובד מחוונים כמעט 5V ו- GND מתחת למחברים עצמם, אך הכבלים מתחברים רק בכיוון אחד. תרצה לוודא שאתה מחבר את כל 5Vs יחד ואת כל ה- GND יחד, כי אם אתה מפעיל אותם לאחור אתה כמעט בטוח הולך לטגן אותם.

מכיוון שכבלי החשמל הכלולים בלוחות שלי היו כה קצרים, נאלצתי להאריך אותם על ידי הכנסת שיני מסוף הכף למחבר של אחר (זה די פשוט - ייתכן שיהיה עליך לכופף את מסופי האת מעט פנימה, אבל אני ' כללה תמונה ליתר ביטחון). בסופו של דבר קיבלתי שתי קבוצות של מסופי כף ומחבר IDC אחד 2x8 בצד ימין של לוח ה- LED המוארך שלי.

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

אז - לאחר שחיברת את כל הלוחות יחד עם קליפים, 2x8 כבלי IDC וכבלי חשמל, אתה מוכן להמשיך לשלב הבא!

שלב 2: הכינו את ה- Raspberry Pi

לאחר מכן, אתה הולך להניח את לוח ה- LED בצד (לעת עתה) ולהכין את ה- Pi 3 להפעיל אותו. אנו נשתמש ב- Raspbian Stretch Lite ובספריית המטריצות RGB של hzeller (ולא בספריית המטריצות של Adafruit, שהיא ישנה יותר ולא מתוחזקת.)

ראשית, תרצה לכתוב את תמונת ה- Raspbian Lite לכרטיס SD; לאחר שעשית זאת, המשך וחבר צג ומקלדת לפאי והפעל אותו. (אתה יכול גם לעשות את זה ללא ראש, או באמצעות ssh או מחבר סידורי, אבל אם זו הדרך שאתה הולך כנראה שאתה לא צריך שאגיד לך איך לעשות את זה.) תצטרך חיבור לאינטרנט בשביל זה; אם יש לך wifi, חבר את ה- Pi לרשת האלחוטית שלך על ידי עריכת /etc/wpa_supplicant/wpa_supplicant.conf והפעלת wpa_cli -i wlan0 מחדש. (אם מעולם לא עשית זאת, תוכל לקבל הוראות כאן).

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

עדכון sudo apt-get

sudo apt-get install git python-dev python-pil

שיבוט git

כעת עלינו לאסוף ולהתקין את קוד המטריצה. אז תיכנס לתיקייה המכילה את הספרייה:

cd rpi-rgb-led-matrix

ותרכזו (זה עשוי לקחת דקה):

make && make build-python

והתקן את קשרי הפיתון:

sudo עשה את ההתקנה-פייתון

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

יהיה עליך גם להשבית את פלט הקול של ה- Pi שלך (הצליל המשולב מפריע לקוד המטריצה) על ידי עריכה /boot/config.txt. חפש את השורה שאומרת dtparam = audio = on ושנה אותו ל- dtparam = audio = off.

אם הכל התאסף (תקבל כמה אזהרות לגבי Wstrict-protoypes) הפאי שלך אמור להיות מוכן להפעלת לוח המטריקס. קדימה, סגור אותו (כיבוי סודו עכשיו), נתק אותו, ונחבר את לוח התאורה לפאי בשלב הבא.

שלב 3: חבר את Pi + Matrix Hat + לוח LED

חבר את Pi + Matrix Hat + לוח LED
חבר את Pi + Matrix Hat + לוח LED

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

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

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

לאחר מכן, תרצה לחבר את מסופי האתרים עבור הכוח לתוך בלוק הטרמינל של כובע המטריצה. יש לך שני מחברי כף לכל צד, אבל שניהם צריכים להשתלב שם בסדר. שחרר קודם את הברגים ו - זה לא צריך להגיד - ודא שאתה שם את מסופי 5V בצד המסומן + (אלה צריכים להיות אדומים, אבל - שוב - בדוק שוב את המחברים שלך ואל תניח שהם יוצרו כהלכה) ו מסופי ה- GND (אלה צריכים להיות שחורים) בצד המסומן -. ברגע שהם שם, הידוק את הברגים בחלק העליון של בלוק המסוף, וכדאי שיהיה לך משהו שנראה כמו תמונת הכותרת לשלב זה.

עכשיו - אולי שמתם לב שהתצורה המסוימת הזו משאירה חצי ממסוף האדים משני הצדדים חשופים, מרחפים מילימטרים בלבד מעל כובע המטריצה (ולא הרבה יותר רחוקים אחד מהשני.) וגם - מסופי האכפים יהיו בקרוב מאוד נושאת מספר וולט וכמה אמפר של Raw Power. האם זו, (אני יכול לשמוע אותך שואל מהצד השני של המסך) באמת הדרך הנכונה לעשות זאת? האם, (אתה נשען קרוב יותר ולוחש), הוא רעיון טוב?

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

אבל - עטופים או לא עטופים - מסופי האתרים מחוברים לגוש הטרמינל, ואנחנו מוכנים להמשיך לשלב הבא.

שלב 4: בדוק את מטריצת RGB

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

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

לאחר האתחול של ה- Pi, אנו מוכנים לבדוק את המטריצות. עבור למקום שבו נמצאות דוגמאות הכריכה של פייתון (cd/rpi-rgb-led-matrix/bindings/python/samples) ונסה את מחולל הבלוקים המסתובבים באמצעות הפקודה הבאה:

sudo./rotating-block-generator.py -m adafruit-hat-שרשרת שרשרת 4

עליך להפעיל אותו כסודו מכיוון שספריית המטריצות זקוקה לגישה ברמה נמוכה לחומרה בעת האתחול. ה- -m מציין את אופן החיבור של הלוחות ל- pi (במקרה זה, כובע אדפרוט) והשרשרת -led- מציינת -ניחשתם נכון -כמה לוחות שרשרנו יחד. שורות ועמודות לכל לוח הן ברירת מחדל ל -32, אז טוב לנו שם.

עכשיו - לאחר שתבצע את התוכנית, אחד משניים (או, באמת, אחד מתוך שלושה) דברים עומד לקרות:

  • שום דבר לא קורה
  • אתה מקבל בלוק מסתובב נחמד באמצע לוח התאורה שלך.
  • לוח התאורה עובד, אני חושב, אבל זה נראה … מוזר (חצי ממנו ירוק, כמה שורות לא מוארות וכו ')

אם לא קורה כלום, או אם הלוח נראה מוזר, לחץ על ctrl+c כדי לצאת מהתוכנית לדוגמה, כבה את ה- pi ובדוק את כל החיבורים שלך (כבל IDC, מתח, ודא ששני ספקי החשמל מחוברים וכו '). כמו כן וודא שהכובע מחובר כהלכה; אם זה לא פותר את זה, הורד אותו ללוח אחד (הקפד להשתמש ב-שרשרת 1-כאשר אתה בודק אותו) ובדוק אם אחד הלוחות עלול להיות גרוע. אם זה לא עובד, עיין בטיפים לפתרון בעיות של hzeller. אם זה עדיין לא עובד, נסה לפרסם ב- /r /raspberry_pi (או בפורומים של Adafruit, אם קיבלת את הפאנלים שלך מ- Adafruit, או מחסנית החלפה וכו 'וכו')

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

שלב 5: שיעורי כפל וסריקה (או: הסחה רגעית בדרך לקבר)

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

כדי להבין מדוע זה, ניקח דקה להסתכל על פיל בורגס מתוך התיאור של Adafruit כיצד פועלים הפאנלים הללו. תוכל לציין כי בורג'ס מציין כי הלוחות אינם מאירים את כל נוריות LED שלהם בבת אחת - הם מאירים קבוצות של שורות. הקשר בין גובה הלוח בפיקסלים לבין מספר השורות שמוארות בבת אחת נקרא קצב סריקה. כך, למשל - בלוח 32x32 עם 1/16 סריקה, שתי שורות (1 ו -17, 2 ו -18, 3 ו -19 וכו ') מוארות בבת אחת, לאורך כל הלוח, ואז הבקר חוזר על עצמו. רוב הספריות שמניעות מטריצות RGB בנויות ללוחות שבהם קצב הסריקה הוא 1/2 מהגובה בפיקסלים - כלומר, הם מניעים שתי שורות של נוריות בבת אחת.

ללוחות חוץ (ולחלקים פנימיים - הקפד להסתכל על המפרט לפני ההזמנה) יש קצבי סריקה שהם 1/4 מהגובה בפיקסלים, מה שאומר שהם מצפים שיניעו ארבעה קווים בבת אחת. זה הופך אותם לבהירים יותר (וזה טוב) אבל גורם להרבה קוד סטנדרטי לא לעבוד איתם (וזה רע). בנוסף לכך, הם נוטים שהפיקסלים לא תקינים מבחינה פנימית, מה שמחייב שינוי ערכי x ו- y בתוכנה על מנת לתת מענה לפיקסלים הנכונים. מדוע המיוצרים כך? אין לי מושג. האם אתה יודע? אם כן, אנא ספר לי. אחרת זה רק צריך להישאר בגדר תעלומה.

אז אם יש לך אחד מהפאנלים החיצוניים המוזרים האלה, יש לך (כנראה) מזל! hzeller הוסיף לאחרונה תמיכה בתצורות נפוצות של לוחות מסוג זה לספרייה שלו. תוכל לקרוא עוד על כך בדף github לפרויקט, אך תוכל להעביר --led-multiplexing = {0, 1, 2, 3} לקוד לדוגמה (ייתכן שיהיה עליך להעמיד פנים כאילו יש לך שרשרת באורך כפול של לוחות באורך חצי) וזה אמור לעבוד.

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

def transformPixels (j, k): effJ = j % 32

effK = k % 32

modY = k

modX = j

#modX ו- modY הם ה- X ו- Y שהשתנו;

#effJ ו- effK וודא שאנו משתנים בתוך מטריצה 32x32 לפני הדחיפה

אם ((effJ)> 15):

modX = modX + 16

אם ((effK)> 7):

modY = modY - 8

modX = modX + 16

אם ((effK)> 15):

modX = modX - 16

אם ((effK)> 23):

modY = modY - 8

modX = modX + 16

#לאחר מכן, אנו דוחפים אותם למיקום הנכון (כל x+32 מעביר לוח אחד)

אם (j> 31):

modX += 32

אם (j> 63):

modX += 32

אם (j> 95):

modX += 32

החזרה (modX, modY)

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

שלב 6: תוכנית הכוכבים (או: חזרה למסלול ומוכן לפיקסל)

כעת, לאחר שהמטריצות שלך פועלות ומוכנות לצאת לדרך, כל שעליך לעשות הוא לשים את תוכנית הלוח על פיך ולהכין אותה לדרך. ודא שאתה נמצא בספריית הבית של משתמש pi (cd /home /pi) והפעל את הפקודה הבאה:

שיבוט git

אמורה להיות לך תיקייה חדשה, לוח, שמכילה שלושה קבצים: LICENSE.md, README.md ו- starboard_s16.py. נסה את תוכנית הלוח החוצה על ידי הפעלתה באמצעות פייתון:

sudo python./starboard_s16.py

ואתה צריך לגרום לחבורה של חלקיקים לנוע במהירויות שונות ולהתפרק בקצב שונה. כל 10, 000 קרציות בערך (אתה יכול להיכנס לסקריפט של פייתון כדי לערוך/לשנות זאת) הוא ישנה מצבים (ישנם ארבעה: RGB, HSV, קשת ואפור בגווני אפור).

לכן, הדבר היחיד שנותר לעשות הוא להפעיל את קוד הלוח בזמן ההפעלה. אנו נעשה זאת על ידי עריכה (עם sudo) /etc/rc.local. מה שאתה רוצה לעשות הוא להוסיף את השורה הבאה ממש לפני "יציאה 0" בתסריט:

python /home/pi/starboard/starboard_s16.py &

לאחר שתעשה זאת, הפעל מחדש את ה- pi - ברגע שהוא עובר את רצף האתחול, התסריט של starboard_s16.py אמור להתחיל מיד!

אם אתה רוצה להסתובב בתסריט, אל תהסס לעשות זאת - הוא מורשה תחת GNU GPL 3.0. אם התסריט לא יפעל עבורך, או אם אתה נתקל בבעיות איתו, אל תהסס להודיע לי או להגיש באג ב- github, ונראה מה אוכל לעשות כדי לתקן זאת!

הדבר האחרון (מאוד) שתרצה לעשות הוא להגדיר את SSH ב- pi, כך שתוכל להרחיק אותו ולבטל אותו בבטחה. אתה / בהחלט / רוצה לשנות את הסיסמה שלך (באמצעות הפקודה passwd), ותוכל למצוא כאן הוראות להפעלת ssh (גם משורת הפקודה).

מוּמלָץ: