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

מנורת מגע לקסדת צלילה: 5 שלבים
מנורת מגע לקסדת צלילה: 5 שלבים

וִידֵאוֹ: מנורת מגע לקסדת צלילה: 5 שלבים

וִידֵאוֹ: מנורת מגע לקסדת צלילה: 5 שלבים
וִידֵאוֹ: מנורת מגע עם 3 נורות לד Behinam.co.il 2024, נוֹבֶמבֶּר
Anonim
מנורת מגע לקסדת צלילה
מנורת מגע לקסדת צלילה
מנורת מגע לקסדת צלילה
מנורת מגע לקסדת צלילה
מנורת מגע לקסדת צלילה
מנורת מגע לקסדת צלילה
מנורת מגע לקסדת צלילה
מנורת מגע לקסדת צלילה

בהנחיה זו

אתה תצטרך

  1. קסדת צלילה או שווה ערך
  2. טבעת LED תואמת Neopixel (השתמשתי בטבעת עם 38 נוריות)
  3. לוח Wemos ESP32 (או שווה ערך)
  4. מדפסת תלת מימד

שלב 1: הדפס חלקים אלה

חלקים אלה עשויים להזדקק להתאמה אם אתה משתמש בקסדת צלילה אחרת, למדתי שהחלק שיש לי הוא נפוץ למדי

שלב 2: העלה את הקוד

הכנס את ה- ssid והסיסמה שלך לקוד ואז העלה ללוח שלך. זה שם כדי לאפשר OTA להעלות קוד חדש לאחר הרכבת הפרויקט. יהיה עליך להתקין את NeoPixelBus by Makuna הזמין כאן https://github.com/Makuna/NeoPixelBus יהיה עליך גם להתקין את הגדרות לוח ESP32 בסביבת הארדואינו על מנת להשתמש בלוח זה.

// Wifi Jazz #include #include #include #include bool wifi_timout = 0; const char* ssid = "SSID"; const char* password = "סיסמה"; // Neopixel jazz #include const uint16_t PixelCount = 38; const uint8_t PixelPin = 19; int colorSaturation = 50; int בהירות = 50; int R = 0; int G = 0; int B = 0; int Pulse = 1600; // חצי מהזמן בין הפעימות RgbColor שחור (0); // כפתור ג'אז צף Button1_total = 0; int החלקה = 50; const int debounce = 5; כפתור צף 1 [debounce]; בול PWR = 0; טבעת NeoPixelBus (PixelCount, PixelPin); הגדרת חלל () {Serial.begin (115200); Serial.println ("אתחול"); WiFi.mode (WIFI_STA); WiFi.begin (ssid, סיסמא); while (WiFi.waitForConnectResult ()! = WL_CONNECTED) {Serial.println ("החיבור נכשל!"); עיכוב (5000); //ESP.restart (); } OTA_init (); touch_pad_init (); touchSetCycles (0x6000, 0x6000); // touch_pad_set_cnt_mode (0, TOUCH_PAD_SLOPE_7, TOUCH_PAD_TIE_OPT_HIGH); ring. Begin (); ring. Show (); } לולאת חלל () {if (millis () <600000) {ArduinoOTA.handle ();} אחרת אם (wifi_timout == 0) {ArduinoOTA.end (); wifi_timout = 1; WiFi.mode (WIFI_OFF); btStop (); } אם (button1_capture () == 1) {ring. ClearTo (שחור); ring. Show (); PWR =! PWR; } if (millis () <1500) {PWR = 0;} if (ring. CanShow () && PWR == 1) {Light (0);} עיכוב (10); } בטל OTA_init () {ArduinoOTA.onStart ( () {סוג מחרוזת; אם (ArduinoOTA.getCommand () == U_FLASH) type = "sketch"; אחר // סוג U_SPIFFS = "מערכת קבצים"; // הערה: אם עדכון SPIFFS זה המקום לבטל את ההתקנה של SPIFFS באמצעות SPIFFS.end () Serial.println ("התחל בעדכון" + סוג);}).onEnd ( () {Serial.println ("\ nEnd");}).onProgress ( (התקדמות int שנחתמה, סך הכול לא חתומה) {Serial.printf ("התקדמות:%u %% / r", (התקדמות / (סה"כ / 100)));}).onError ( (ota_error_t שגיאה) {Serial.printf ("שגיאה [%u]:", שגיאה); אם (error == OTA_AUTH_ERROR) Serial.println ("אימות נכשל"); אחרת אם (error == OTA_BEGIN_ERROR) Serial.println ("בגין נכשל "); אחרת אם (error == OTA_CONNECT_ERROR) Serial.println (" חיבור נכשל "); אחרת אם (error == OTA_RECEIVE_ERROR) Serial.println (" התקבל נכשל "); אחרת אם (error == OTA_END_ERROR) סידורי. println ("סיום נכשל");}); ArduinoOTA.begin (); Serial.println ("מוכן"); Serial.print ("כתובת IP:"); Serial.println (WiFi.localIP ()); } int button1_capture () {for (int i = 0; i <(debounce-1); i ++) {Button1 = Button1 [i+1]; } Button1 [debounce-1] = (touchRead (T0)); זרם צף = MaxArray (Button1); float Button1_smooth = Button1_total/החלקה; // זרם צף = AveArray (Button1); Serial.print (Button1_smooth); Serial.print (""); Serial.print (הנוכחי); Serial.print (""); Serial.println (Button1 [debounce-1]); אם (הנוכחי <(0.85*Button1_smooth)) {Button1_total = 0; // פועל כתשואת ניפוח 1; } אחר {Button1_total = current +Button1_total -Button1_smooth; } החזר 0; } float MaxArray (float MaxMe ) {float mxm = MaxMe [0]; float mnm = MaxMe [0]; עבור (int i = 0; imxm) {mxm = MaxMe ; }} החזר mxm; } float AveArray (float AveMe ) {float total = 0; float ave = 0; עבור (int i = 0; i

שלב 3: הרכבה

הַרכָּבָה
הַרכָּבָה

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

הרשת המחוברת ל'ידית 'תפעל ככפתור מגע. בלוח שלי ה- ESP32 T0 מחובר ל- D4. יהיה עליך לבדוק זאת אם אתה משתמש בלוח אחר.

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

שלב 4: הרכיב את החלקים לתוך הקסדה

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

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

חבר את סיכת הכפתור לאחד מברגי הידיות באמצעות מחבר כיווץ.

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

שלב 5: חבר את החשמל

Image
Image
חבר את החשמל
חבר את החשמל

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

ניתן להשתמש בכל ספק כוח של 5V DC במקום זאת אך מטענים usb יש בשפע בבית שלי. השתמשתי בכבל USB קלוע כדי לחקות פלקס ישן ולהשלים את המראה.

זהו, סיימת.

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

מוּמלָץ: