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

חיישן צבע DIY פשוט מ- Magicbit: 5 שלבים
חיישן צבע DIY פשוט מ- Magicbit: 5 שלבים

וִידֵאוֹ: חיישן צבע DIY פשוט מ- Magicbit: 5 שלבים

וִידֵאוֹ: חיישן צבע DIY פשוט מ- Magicbit: 5 שלבים
וִידֵאוֹ: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, נוֹבֶמבֶּר
Anonim
Image
Image

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

אספקה

  • מג'יקביט
  • כבל USB-A למיקרו USB

שלב 1: סיפור

התקנת חומרה
התקנת חומרה

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

שלב 2: תיאוריה ומתודולוגיה

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

שלב 3: התקנת חומרה

זה פשוט מאוד. חבר את מודול ה- RGB שלך ליציאה הימנית העליונה של Magicbit. למודול זה יש WS2812B Neopixel LED. למנורת LED זו יש 4 סיכות. שניים עבור כוח ושניים עבור נתונים פנימה והחוצה. מכיוון שאנו משתמשים בלד אחד, אנו זקוקים רק לסיכות חשמל ונתונים בסיכה. אם אין לך את המודול הזה אתה יכול לקנות מודול Neopixel. אם קנית מודול מסוג זה עליך לחבר סיכות חשמל ונתונים בפין ל- Magicbit. זה מאוד קל. חבר את VCC ו- GND של ה- Magicbit לפיני החשמל של מודול RGB ופין D33 לפין הנתונים.

שלב 4: התקנת תוכנה

החלק העיקרי נעשה על ידי התכנות. אנו משתמשים ב- Arduino IDE כדי לתכנת את ה- Magicbit שלנו. בקוד אנו משתמשים בכמה ספריות. הם ספריית Adafruit Neopixel לשליטה ב- Neopixel LED וספריית Adafruit OLED לידית OLED. בהתקנה אנו מגדירים את הכניסות והיציאות שלנו. הגדר גם את תצוגת OLED המובנית ב- Magicbit. בלולאה אנו בודקים שלחיצת הלחיצה ביד שמאל נלחצת או לא של ה- Magicbit. אם הוא לוחץ, אות הקלט הוא 0. מכיוון שהוא כבר נמשך על ידי הלוח. אם זה לחץ אז אנחנו עושים בדיקת צבעים. אם לא אז המסך יציג הצהרת "ללא צבע". כאשר לוחצים על הכפתור ואז מדליקים אוטומטית נורות אדומות, ירוקות וכחולות אחת אחת ושומרות את כמות ההשתקפות של הצבעים לשלושה משתנים. לאחר מכן השווינו את הערכים האלה ובחרנו את צבע הערך המרבי לתצוגה כצבע הפלט.

אז חבר כבל מיקרו USB ל- Magicbit ובחר כראוי סוג לוח ויציאות com. עכשיו תעלה את הקוד. אז הגיע הזמן לבדוק את החיישן שלנו. כדי לבדוק זאת, שמור על נייר או על גבי גליון אדום, ירוק או כחול על מודול LDR ו- RGB ולחץ על לחצן הלחיצה השמאלי. לאחר מכן תצוגת OLED תראה מהו צבע המשטח. אם זה לא בסדר הסיבה היא לצבע כלשהו בעל עוצמת אור גבוהה. כדוגמה בכל משטח ירוק הפלט אדום אז עליך להפחית את בהירות האור האדום מכמות מסוימת. כי לאור האדום יש בהירות גבוהה מאוד במקרה זה. אז יש להם השתקפות גבוהה. אם אינך יודע כיצד לשלוט בהירות, עיין במדריך בקישור למטה.

magicbit-arduino.readthedocs.io/en/latest/

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

שלב 5: קוד חיישן הצבעים של ארדואינו

#לִכלוֹל

#הגדר LED_PIN 33

#define LED_COUNT 1 Adafruit_NeoPixel LED (LED_COUNT, LED_PIN, NEO_RGB + NEO_KHZ800); #include #include #include #define OLED_RESET 4 תצוגת Adafruit_SSD1306 (128, 64); #define LDR 36 #define Button 35 int R_value, G_value, B_value; הגדרת חלל () {LED.begin (); LED.show (); pinMode (LDR, INPUT); pinMode (לחצן, INPUT); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.display (); עיכוב (1000); display.clearDisplay (); Serial.begin (9600); } לולאת void () {if (digitalRead (Button) == 0) {// אם לוחצים על הלחצן LED.setPixelColor (0, LED. Color (0, 50, 0)); // על הצבע האדום LED.show (); עיכוב (100); R_value = analogRead (LDR); // לקבל אדום הר LED.setPixelColor (0, LED. Color (150, 0, 0)); // על greencolour LED.show (); עיכוב (100); G_value = analogRead (LDR); // get green mount LED.setPixelColor (0, LED. Color (0, 0, 255)); // על LED.show בצבע כחול (); עיכוב (100); B_value = analogRead (LDR); // לקבל הר כחול אם (R_value> G_value && R_value> B_value) {// אדום משתקף ביותר ("אדום", 3); } אחרת אם (G_value> R_value && G_value> B_value) {// ירוק משתקף ביותר תצוגה ("ירוק", 3); } אחר אם (B_value> R_value && B_value> G_value) {// כחול משתקף ביותר (Display "BLUE", 3); } Serial.print ("RED ="); Serial.print (R_value); Serial.print ("GREEN ="); Serial.print (G_value); Serial.print ("BLUE ="); Serial.println (B_value); } אחרת {LED.setPixelColor (0, LED. Color (0, 0, 0)); // כבוי RGB LED.show (); תצוגה ("ללא צבע", 2); }} תצוגת void (מחרוזת קומונד, גודל int) {// נתוני תצוגה display.clearDisplay (); display.setTextSize (גודל); // רגיל 1: 1 פיקסל בקנה מידה display.setTextColor (לבן); // צייר טקסט לבן display.setCursor (0, 20); // התחל בפינה השמאלית העליונה display.println (קומונד); display.display (); }

מוּמלָץ: