תוכן עניינים:
- שלב 1: מרחב צבע RGB
- שלב 2: הספינה הטובה Lissajous
- שלב 3: המתן - כיצד נוכל להניע LED עם גל סינוסי?
- שלב 4: בואו לבנות תבנית 3D LIssajous
- שלב 5: לשים את כל זה יחד על Arduino
- שלב 6: מה הלאה?
וִידֵאוֹ: חקר מרחב הצבעים: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
עינינו קולטות אור דרך קולטנים הרגישים לצבעים אדומים, ירוקים וכחולים בספקטרום החזותי. אנשים השתמשו בעובדה זו כדי לספק תמונות צבע באמצעות סרט, טלוויזיה, מחשבים והתקנים אחרים במהלך מאה השנים האחרונות בערך.
בתצוגה של מחשב או טלפון, תמונות מוצגות בצבעים רבים על ידי שינוי עוצמת נוריות זעירות אדומות, ירוקות וכחולות שנמצאות זו לצד זו על המסך. ניתן להציג מיליוני צבעים שונים על ידי שינוי עוצמת האור מהנוריות האדומות, הירוקות או הכחולות.
פרויקט זה יעזור לך לחקור את מרחב הצבעים האדום, הירוק והכחול (RGB) באמצעות Arduino, LED RGB ומעט מתמטיקה.
אתה יכול לחשוב על עוצמות שלושת הצבעים, אדום, ירוק וכחול, כקואורדינטות בקוביה, כאשר כל צבע הוא לאורך ציר אחד, וכל שלושת הצירים בניצב זה לזה. ככל שאתה קרוב יותר לנקודת האפס, או מוצא הציר, כך פחות הצבע הזה מוצג. כאשר הערכים של כל שלושת הצבעים נמצאים בנקודת האפס, או המוצא, אז הצבע הוא שחור ונורית ה- RGB כבויה לחלוטין. כשהערכים לשלושת הצבעים גבוהים ככל שהם יכולים (במקרה שלנו, 255 לכל אחד משלושת הצבעים), נורית ה- RGB דולקת לחלוטין, והעין תופסת את שילוב הצבעים הזה כלבן.
שלב 1: מרחב צבע RGB
תודה לקנת מורלנד על האישור להשתמש בתדמיתו הנחמדה.
ברצוננו לחקור את פינות קוביית החלל הצבע תלת -ממדית באמצעות LED RGB המחובר לארדואינו, אך גם רוצים לעשות זאת בצורה מעניינת. נוכל לעשות זאת על ידי קינון של שלוש לולאות (אחת כל אחת לאדום, לירוק ולכחול), וריצה בכל שילוב צבעים אפשרי, אבל זה יהיה ממש משעמם. מופע אור לייזר? בהתאם להגדרות, דפוס Lissajous יכול להיראות כמו קו אלכסוני, עיגול, דמות 8 או דפוס דמוי פרפר מחודד לאט. דפוסי Lissajous נוצרים על ידי מעקב אחר האותות הסינוסידיים של שני מתנדים (או יותר) המתווים על צירים x-y (או במקרה שלנו x-y-z או R-G-B).
שלב 2: הספינה הטובה Lissajous
הדפוסים המעניינים ביותר של Lissajous מופיעים כאשר תדרי האותות הסינוסיאליים שונים בכמות קטנה. בתצלום האוסילוסקופ כאן התדרים משתנים ביחס של 5 ל -2 (שניהם מספרים ראשוניים). דפוס זה מכסה את הריבוע שלו די טוב, ונכנס לפינות יפה. מספרים ראשוניים גבוהים יותר יעשו עבודה טובה עוד יותר בכיסוי הריבוע וחיטוט עוד יותר בפינות.
שלב 3: המתן - כיצד נוכל להניע LED עם גל סינוסי?
תפסת אותי! אנו רוצים לחקור את מרחב הצבעים התלת -ממדי הנע בין כבוי (0) למצב מלא (255) עבור כל אחד משלושת הצבעים, אך גלים סינוסים משתנים מ -1 ל -1. אנחנו הולכים לעשות קצת מתמטיקה ומתכנתים כאן כדי להשיג את מה שאנחנו רוצים.
- הכפל כל ערך ב- 127 כדי לקבל ערכים שנעים בין -127 ל- +127
- הוסף 127 ועגל כל ערך כדי לקבל ערכים שנעים בין 0 ל -255 (קרוב מספיק ל -255 מבחינתנו)
ערכים הנעים בין 0 ל -255 יכולים להיות מיוצגים על ידי מספרים של בתים בודדים (סוג הנתונים "char" בשפת התכנות ארדואינו דמוית C), כך שנחסוך זיכרון על ידי שימוש בייצוג של בתים בודדים.
אבל מה עם זוויות? אם אתה משתמש במעלות, זוויות בטווח סינוסואיד מ 0 עד 360. אם אתה משתמש ברדיאנים, זוויות נעות בין 0 ל 2 פעמים π ("pi"). אנחנו הולכים לעשות משהו ששומר שוב על הזיכרון בארדואינו שלנו, ונחשוב על עיגול המחולק ל 256 חלקים, ויהיו לו "זוויות בינאריות" שנעים בין 0 ל -255, כך שה"זוויות "לכל אחד מהצבעים יכולות להיות מיוצג על ידי מספרים בודדים, או תווים, גם כאן.
הארדואינו די מדהים בדיוק כפי שהוא, ולמרות שהוא יכול לחשב ערכים סינוסים, אנחנו צריכים משהו מהיר יותר. אנו מחשבים את הערכים מראש ונכניס אותם למערך ארוך של 256 ערכים של ערכי יחיד או בתים בתוכנית שלנו (עיין בהצהרת SineTable […] בתוכנית Arduino).
שלב 4: בואו לבנות תבנית 3D LIssajous
כדי לעבור בין הטבלה בתדירות שונה עבור כל אחד משלושת הצבעים, נשמור אינדקס אחד לכל צבע, ונוסיף קיזוזים ראשוניים יחסית לכל אינדקס תוך כדי מעבר בין הצבעים. נבחר 2, 5 ו -11 כקיזוזים הראשוניים יחסית לערכי המדד האדום, הירוק והכחול. יכולות המתמטיקה הפנימיות של הארדואינו יעזרו לנו על ידי התעטפות אוטומטית כאשר נוסיף את ערך הקיזוז לכל אינדקס.
שלב 5: לשים את כל זה יחד על Arduino
לרוב הארדואינים יש מספר ערוצי PWM (או אפנון רוחב דופק). נזדקק לשלושה כאן. UNO ארדואינו מצוין לכך. אפילו מיקרו-בקר Atmel קטן של 8 סיביות (ATTiny85) עובד בצורה מופלאה.
כל אחד מערוצי PWM יניע צבע אחד של ה- RGB LED באמצעות הפונקציה "AnalogWrite" של Arduino, כאשר עוצמת הצבע בכל נקודה סביב המחזור הסינוסי מיוצגת על ידי רוחב דופק, או מחזור הפעלה, מ -0 (הכל כבוי) ל -255 (הכל מופעל). עינינו תופסות את רוחבי הדופק המשתנים האלה, החוזרים על עצמם מספיק מהר, כעוצמות שונות, או בהירות, של ה- LED. שילוב של כל שלושת ערוצי PWM המניעים כל אחד משלושת הצבעים ב- RGB LED, מקבלים את היכולת להציג 256*256*256, או למעלה משישה עשר מיליון צבעים!
יהיה עליך להגדיר את Arduino IDE (סביבת פיתוח אינטראקטיבית) ולחבר אותו ללוח ה- Arduino שלך באמצעות כבל ה- USB שלו. הפעל מגשרים מיציאות PWM 3, 5 ו- 6 (סיכות מעבד 5, 11 ו -12) לשלושה נגדים של 1 KΩ (אלף אוהם) בלוח הפרוטו או במגן הפרוטו שלך, ומהנגדים ל- LED R, G, וסיכות B.
- אם נורית ה- RGB היא קתודה נפוצה (מסוף שלילי), הפעל חוט מהקטודה בחזרה אל סיכת ה- GND שבארדואינו.
- אם נורית ה- RGB היא אנודה נפוצה (מסוף חיובי), הפעל חוט מהאנודה לאחור לפין +5V בארדואינו.
המערכון של Arduino יעבוד בכל מקרה. במקרה השתמשתי במנורת קתודה נפוצה של SparkFun Electronics / COM-11120 RGB (בתמונה למעלה, מאתר SparkFun). הסיכה הארוכה ביותר היא הקתודה הנפוצה.
הורד את מערכון RGB-Instructable.ino, פתח אותו עם ה- Arduino IDE ובדוק אותו. הקפד לציין את הלוח או השבב היעד של Arduino היעד, ולאחר מכן טען את התוכנית לתוך Arduino. זה צריך להתחיל מיד.
אתה תראה את מחזור ה- RGB LED בכמה צבעים שאתה יכול למנות, ומיליונים שאתה לא יכול!
שלב 6: מה הלאה?
רק התחלנו לחקור את מרחב הצבעים RGB עם Arduino שלנו. כמה דברים אחרים שעשיתי עם הרעיון הזה כוללים:
כתיבה ישירה לרשמים על שבב, במקום להשתמש ב- AnalogWrite, כדי להאיץ באמת את העניינים
- שינוי המעגל כך שחיישן קרבה של IR מאיץ או מאט את המחזור בהתאם למידת ההתקרבות שלך
- תכנות מיקרו-בקר 8 פינים Atmel ATTiny85 עם מטען האתחול של Arduino והסקיצה הזו
מוּמלָץ:
מיון הצבעים של M&M: 3 שלבים
סדרת הצבעים של M&M: בתחילת פרויקט זה יצאנו למיין אוטומטית סוכריות בצבעים שונים לקערות נפרדות בקצב יעיל. קיבלנו השראה לראשונה מהרעיון הזה כשראינו פוסט באתר https://howtomechatronics.com/projects/arduino-col
מרחב IR מרחוק (חלק 2): 3 שלבים
הרחבה מרחוק IR (חלק 2): שלום חבר'ה! חזרתי עם חלק 2 של הרחבה מרחוק IR להוראה. לחבר'ה שלא קראו את החלק הראשון לחץ כאן. נתחיל
חקר Windows 8.1 !!: 12 שלבים
חקר Windows 8.1 !!: מדריך זה ייתן לך סקירה מהירה של Windows 8.1, כל התכונות והתוכניות שלו אנא הירשם לערוץ שלי תודה
KerbalController: לוח בקרה מותאם אישית למשחק רקטות תוכנית שטח מרחב: 11 שלבים (עם תמונות)
KerbalController: לוח בקרה מותאם אישית למשחק רקטות תוכנית Kerbal Space: מדוע לבנות בקרבל בקר? ובכן, כי לחיצה על כפתורים והשלכת מתגים פיזיים מרגישה הרבה יותר משמעותית מלחיצה על העכבר. במיוחד כשמדובר במתג בטיחות אדום גדול, שבו אתה צריך לפתוח את המכסה תחילה, להעיף את המתג
לוח תאורה מותאם אישית לביש (קורס חקר טכנולוגיה - TfCD - Tu Delft): 12 שלבים (עם תמונות)
לוח תאורה מותאם אישית לביש (קורס חקר טכנולוגיה - TfCD - Tu Delft): במדריך זה תלמד כיצד ליצור תמונה מוארת משלך שתוכל ללבוש! זה נעשה על ידי שימוש בטכנולוגיית EL המכוסה במדבקת ויניל והצמדת להקות אליו כך שתוכל לענוד אותו סביב זרועך. אתה יכול גם לשנות חלקים מדף זה