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

אור נשימה הנשלט על ידי פטל פטל: 5 שלבים
אור נשימה הנשלט על ידי פטל פטל: 5 שלבים

וִידֵאוֹ: אור נשימה הנשלט על ידי פטל פטל: 5 שלבים

וִידֵאוֹ: אור נשימה הנשלט על ידי פטל פטל: 5 שלבים
וִידֵאוֹ: אבושש בא לי ארטיק #קראנץקורנפלקס 2024, יולי
Anonim
אור נשימה הנשלט על ידי פי פטל
אור נשימה הנשלט על ידי פי פטל

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

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

האור עובר במעגלים החוזרים על עצמם המורכבים מארבעה שלבים: מעבר ירוק (עליון) לאדום (תחתון), שלב אדום בלבד, מעבר אדום לירוק ושלב ירוק בלבד. אורך שלבים אלה מוגדר על ידי קבועים הניתנים לשינוי על ידי פוטנציומטרים. ניתן להתחיל את התהליך, להשהות, לחדש ולעצור אותו על ידי לחיצה על כפתורי לחיצה. נוריות LED מציינות את השלב הנוכחי. הוא מבוסס על הדוגמה "אור גחלילית" מאת פימורוני (ראה כאן). בדומה ל"אור גחלילית "הוא דורש פטל פטל (אפס), פימורוני אקספלורר pHAT (או HAT) ושתי שרשראות אור LED של איקאה SÄRDAL. המאוחרים יותר מחוברים לשני יציאות PMW/מנוע של ה- pHAT. במקום להשתמש בצנצנת, הנחתי את הלדים בתוך מסגרת תמונות של איקאה. ניסיתי לייעל מעט את סקריפט הפיתון המקורי של "אור גחליליות", יישמתי פונקציית סינוס אופציונלית לשינויי בהירות/ רוחב הדופק והצגתי שני שלבי "החזק" בין שלבי העמעום. תוך כדי שינוי הפרמטרים למציאת דפוס בהיר שמרגיש נוח יותר, גיליתי שהמכשיר יכול לעזור לתמוך בדפוס נשימה קבוע ומוגדר מאוד. לפיכך, חלק מכם עשוי למצוא "אור נשימה" זה מועיל למטרות מדיטציה או אימון. מכיוון של- pHAT של Explorer יש ארבע כניסות דיגיטליות וארבע אנלוגיות, קל מאוד לווסת עד ארבעה פרמטרים שונים באמצעות פוטנציומטרים של שקופיות או סיבוביות, ולהציג פונקציות התחלה/הפעלה מחדש/עצירה של הנורות באמצעות לחצני לחיצה. זה יאפשר לך להשתמש במכשיר ולייעל את הפרמטרים לצרכים שלך מבלי שצריך לחבר צג ל- Pi.

בנוסף ה- Explorer pHAT מגיע עם ארבע יציאות דיגיטליות, המאפשרות להוסיף נוריות LED או זמזם, בתוספת שתי יציאות 5V ושתי קרקע ושתי יציאות PWM למנועים או התקנים דומים. אנא ודא שאתה משתמש בנגדים הנכונים כדי להפחית את המתח עבור נוריות ה- LED שלך.

ספריית הפייתונים של Pimoroni Explorer pHAT עושה את זה פשוט מאוד לשלוט בכל יציאות הקלט/פלט האלה.

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

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

גרסאות מעודכנות 28 בדצמבר 2018: נוספה גרסת 'ארבעה פוטנציומטרים וארבעה לחצני לחיצה'. 30: קוד לגרסת 4-poti ותמונות פריצה נוספו.

שלב 1: חומרים משומשים / נדרשים

חומרים משומשים / נדרשים
חומרים משומשים / נדרשים
חומרים משומשים / נדרשים
חומרים משומשים / נדרשים
חומרים משומשים / נדרשים
חומרים משומשים / נדרשים

- Raspberry Pi Zero (4.80 GBP ב- Pimoroni, בריטניה), וכרטיס מיקרו SD (> = 8 GB) עם Raspian

- pHAT של פימורוני אקספלורר (10 ליש ט בפימורוני, בריטניה). אופציונלי: כותרת בשורה אחת, כבלי מגשר

- מנורות שרשרת LED של איקאה SÄRDAL עם 12 נוריות (2 x, 3.99 € כל אחת באיקאה גרמניה), או כל שרשרת LED דומה דומה של 3-5V.- מסגרת תמונה של איקאה RIBBA (13 x 18 ס מ, 2.49 € באיקאה גרמניה).

- חתיכת קצף PU (2 x 18 x 13.5 ס מ), להחזיק את הלדים. לחלופין ניתן להשתמש בקצף סטרו.

- חתיכת פלסטיק אטום (18 x 13.5 ס מ), המתפקד כמפזר.

- שני גיליונות נייר שקוף צבעוני (9 x 13.5 ס מ כל אחד). השתמשתי באדום וירוק.

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

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

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

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

  1. כ 140 אוהם עבור 5.2 -> 2, 2 V (צהוב, כתום, אדום; כמה נוריות ירוקות),
  2. בערך 100 אוהם עבור 5.3 -> 3.3 וולט (כמה נוריות ירוק, כחול ולבן)

- כבלי מגשר וקרש לחם

אופציונלי לגרסה מונעת סוללות:

  • 5V מיקרו-USB, או
  • משטח Pimoroni Zero LiPo וסוללת LiPo

שלב 2: התפרצות והרכבה

התפרצות והרכבה
התפרצות והרכבה
התפרצות והרכבה
התפרצות והרכבה
התפרצות והרכבה
התפרצות והרכבה

הרכיב את ה- pHAT של Explorer כמתואר על ידי היצרן. הוספתי כותרת נקבה בשורה אחת לחיבור פשוט של כבלי מגשר ליציאות ה- I/O של pHATs. הגדר את ה- Pi שלך והתקן את ספריית Pimoroni עבור ה- Explorer HAT/pHAT, כפי שתואר על ידי Pimoroni. כבה את ה- Pi והצמד את ה- pHAT אל ה- Pi. הסר את חבילות הסוללה משרשראות ה- LED על ידי חיתוך החוטים והדקת קצה החוטים. חותכים שני כבלי מגשר זכר 2x באמצע, מהדקים את קצה החוטים. הלחם את כבלי המגשר לשרשראות ה- LED, ובודד את נקודות ההלחמה באמצעות סרט הדבקה או צינור כיווץ. לפני הלחמה, בדוק אילו מהחוטים צריכים להיות מחוברים ליציאות פלוס או קרקע, וסמן אותם בהתאם. השתמשתי בחוטי מגשר עם צבעים שונים. גזור את הקצף בכדי להחזיק את הלדים, המפזר וגיליונות המסך בגודל המתאים. על צלחת החזקת ה- LED סמנו את המיקומים שבהם יש להציב את הלדים והניחו חורים של 3-5 מ"מ לתוך הקצף. לאחר מכן הכנס את 24 הנוריות במיקומים הנתונים. מניחים את הניירות הצבעוניים ולוחות המפזר על צלחת ה- LED (ראו תמונות), הם ממקמים את המסגרת מעל האריזה. תקן את שכבות הקצף במסגרת, למשל. באמצעות סרט דבק. חבר את כבלי רצועות הלד ליציאות "המנוע" של ה- pHAT של Explorer. עבור הגרסה המתכווננת, הצב פוטנציומטרים, כפתורי לחיצה, נוריות שליטה (ו/או זמזמים) ונגדים על לוח הלחם וחבר אותם עם היציאות המתאימות ב- pHAT Explorer.

הפעל את ה- Pi והתקן את הספריות הנדרשות, כמתואר באתר Pimoroni, ולאחר מכן הפעל את הסקריפט Python 3 המסופק. אם אחת משרשראות ה- LED אינה פועלת היא עשויה להיות מחוברת בכיוון הלא נכון. לאחר מכן תוכל לשנות את חיבורי הפלוס/מינוס ב- pHAT או לבצע שינוי בתוכנית, למשל. שנה את "eh.motor.one.backwards ()" ל- "… קדימה ()".

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

שלב 3: סקריפטים של פייתון

ספריית ה- Python של פימורוני עבור ה- Explorer HAT/pHAT הופכת את זה לפשוט מאוד להתייחס לרכיבים המחוברים ליציאות הקלט/פלט של ה- HATs. שתי דוגמאות: "eh.two.motor.backwards (80)" מניע את המכשיר המחובר ליציאת PWM/מנוע 2 בעוצמה מקסימלית של 80% בכיוון לאחור, "eh.output.three.flash ()" מחבר נורית LED כדי להוציא יציאה מספר שלוש פלאש עד שהוא נעצר. יצרתי כמה וריאציות של האור, בעצם הוספת רמות שליטה הולכות וגוברות על ידי הוספת עד ארבעה לחצני לחיצה ופוטנציומטרים. מצורף אתה מוצא תוכנית פייתון בשם "נשימה קבועה אור קבוע.py "שבו יש לשנות את כל ארבע הגדרות הפרמטרים בתוך התוכנית. בנוסף גרסה בשם "Breathing light var lin cosin.py" שבה ניתן להתאים את אורך שני שלבי העמעום באמצעות שני פוטנציומטרים והגרסה המפורטת ביותר "Breathing light var lin cosin3.py" עבור ארבעת הפוטנציומטרים ולחיצת כפתור הלחיצה. התוכניות כתובות ב- Python 3.

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

- שלב "שאיפה", שבו נוריות הלמעלה העליונות מעומעמות נמוכות והנורות התחתונות מגבירות את עוצמתן

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

- שלב ה"נשיפה ", שבו נוריות ה- LED התחתונות מעומעמות נמוכות והנורות העליונות מגבירות את עוצמתן

- שלב "להישאר בנשיפה", שבו נוריות ה- LED התחתונות כבויות והנוריות העליונות נדלקות באופן מקסימלי.

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

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

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

# מנורת "הנשימה": גרסת שני כפתורים ושתי גרסאות פוטנציומטר

# שינוי של דוגמת הגחלילית ל- pHAT של פימורוני אקספלורר # כאן: עלייה/ירידה סינודית של ערכי מנוע/PWM # עבור פונקציה ליניארית ביטול השתקה של פונקציית קונוס קו השתקה # גרסה זו "var" קוראת כניסות אנלוגיות, עוקפת הגדרות מוגדרות מראש # קוראת קלט דיגיטלי, לחצני התחלה ועצירת "" "כדי להתחיל עם הפעלת ה- Pi אתה יכול להשתמש ב- Cron: Cron היא תוכנית יוניקס המשמשת לתזמון עבודות, ויש לה פונקציית @reboot נוחה המאפשרת לך להריץ סקריפט. בכל פעם שהפי שלך מתחיל. פתח מסוף והקלד crontab -e כדי לערוך את crontab שלך. גלול עד לתחתית הקובץ, עבר את כל השורות שמתחילות ב- #, והוסף את השורה הבאה (בהנחה שהקוד שלך נמצא ב- /home/pi/firefly.py): @reboot sudo python /home/pi/filename.py & סגור ושמור את crontab שלך (אם אתה משתמש ב- nano לחץ על control-x, y והיכנס כדי לצאת ולשמור). "" "זמן ייבוא explorerhat as eh יבוא מתמטיקה ערכים קבוע #sinus xmax = 316 צעד = 5 # רוחב צעד, למשל 315/5 נותן 63 צעדים/מחזור start_button = 0 # זה מגדיר את המצב של כפתור לחיצה המחובר ליציאת קלט מס '1 stop_button = 0 # זה מגדיר את המצב של כפתור לחיצה המחובר ליציאת הכניסה no 3 pause_1 = 0.02 # אורך סטים של הפסקות בשלבים בשלב "שאיפה", ובכך עליית קצב ומשך הפסקה_2 = 0.04 # קובע קצב השתלבות "נשיפה" הפסקה_3 = 1.5 # הפסקה בין שלבי שאיפה לנשיפה (שמור על שאיפה) הפסקה_4 = 1.2 # הפסקה בסוף הנשיפה שלב (שמור על נשיפה) max_intens = 0.9 # עוצמה מקסימלית/בהירות max_intens_100 = 100*max_intens # אותו הדבר ב- % # עשוי לאפשר לייעל את הרושם ה"נשימתי "של נוריות LED ולהפחית הבהובים. l_cosin = # רשימה עם ערכים נגזרים מקוסינוס (100> = x> = 0) l_lin = # רשימה עם ערכים ליניאריים (100> = x> = 0) # צור רשימת פונקציות קוסינוס עבור i בטווח (0, 316, 3): מס '315 קרוב ל- Pi*100, 105 שלבים # הדפסה (i) n_cosin = [(((math.cos (i/100))+1)/2)*100] # הפקת ערך # הדפסה (n_cosin) l_cosin = l_cosin + n_cosin # הוסף ערך לרשימה # הדפס (l_cosin) # צור רשימה לינארית עבור i בטווח (100, -1, -1): # ספירה לאחור מ -100 לאפס n_lin = l_lin = l_lin + n_lin # הדפסה (l_lin) # מציגה הדפסה ברשימה משעממת () הדפסה ("" "כדי להתחיל את מחזורי התאורה, לחץ על כפתור" התחל "(קלט אחד)" "") הדפס () הדפס ("" "לעצירה את הנורה, לחץ לחיצה ממושכת על לחצן "עצור" (קלט שלוש) "" ") הדפס () # המתן עד לחיצת כפתור ההתחלה בעוד (start_button == 0): start_button = eh.input.one.read () # קריאה כפתור מספר אחד eh.output.one.blink () # מהבהב נורית מספר אחת פעם אחת. שינה (0.5) # קריאה פעמיים בשנייה # ריצה נרות בעוד (stop_button == 0): # קריאת כניסות אנלוגיות אחת ושתי, הגדר הגדרות set_1 = אה.אן alog.one.read () # מגדיר את קצב העליה אדום -> ירוק pause_1 = set_1*0.02 # ערכים ינועו בין 0 ל- 0.13 שניות/הדפסה שלבים ("set_1:", set_1, " -> השהה _1:", הפסקה_1) set_2 = eh.analog.two.read () # מגדיר ירוק -> אדום עליית קצב הפסקה_2 = set_2*0.02 # ערכים ינועו בין 0 ל- 0.13 שניות/הדפסה שלבים ("set_2:", set_2, " -> השהה _2: ", pause_2) # שלב" שאיפה "eh.output.one.on () # עשוי להניע LED או ביפר '' 'עבור x בטווח (len (l_lin)): fx = max_intens*l_lin [x] # עקומה לינארית eh.motor.one.backwards (fx) eh.motor.two.backwards (max_intens_100-fx) time.sleep (pause_1) eh.output.one.off () '' 'עבור x בטווח (len (l_cosin)): fx = max_intens*l_cosin [x] # עקומה לינארית eh.motor.one.backwards (fx) eh.motor.two.backwards (max_intens_100-fx) time.sleep (pause_1) eh.output.one.off () # בדוק אם נלחץ על לחצן עצור stop_button = eh.input.three.read () # הפסקה של "שמור על הנשימה" בסוף שלב השאיפה eh.output.two.on () # הדלק נורית שניים eh.motor.one.לאחור (0) eh.motor.two.backward (max_intens_100) time.sleep (pause_3) eh.output.two.off () # בדוק אם לחצן עצור stop_button = eh.input.three.read () # שלב "נשיפה" eh.output.three.on () # הפעל נורית שלוש '' 'עבור x בטווח (len (l_lin)): fx = max_intens*l_lin [x] # עקומה לינארית eh.motor.one.backwards (max_intens_100-fx) eh.motor.two.backwards (fx) time.sleep (pause_2) '' 'עבור x בטווח (len (l_cosin)): fx = max_intens*l_cosin [x] # עקומה לינארית eh.motor.one.backwards (max_intens_100-fx) eh.motor.two. אחורה (fx) time.sleep (pause_2) eh.output.three.off () # בדוק אם לחצן עצור stop_button = eh.input.three.read () # השהיה בין שלבי "נשיפה" ל"שאוף "אה. output.four.on () eh.motor.one.backwards (max_intens_100) eh.motor.two.backwards (0) time.sleep (pause_4) eh.output.four.off () #בדוק אם לחצן עצור נלחץ stop_button = eh.input.three.read () # כיבוי, הפעל את כל יציאות הפלט eh.motor.one.stop () eh.motor.two.stop () eh.output.one.off () eh.output.two.off () eh.output.three.off () eh.output.four.off () הדפסה () הדפס ("ביי ביי")

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

שלב 4: דוגמאות וידאו

בשלב זה תמצאו מספר סרטונים המציגים את האור תחת נורמליות (כלומר כל הערכים> 0, #1) ותנאים קיצוניים, כאשר כל הערכים מוגדרים לאפס (#2), מתגברים רק (#3 ), וללא שיפור (#5 ).;

שלב 5: כמה הערות

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

מוּמלָץ: