สารบัญ:

ดวงตา LED ที่ควบคุมด้วยรีโมทและเครื่องดูดควัน: 7 ขั้นตอน (พร้อมรูปภาพ)
ดวงตา LED ที่ควบคุมด้วยรีโมทและเครื่องดูดควัน: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ดวงตา LED ที่ควบคุมด้วยรีโมทและเครื่องดูดควัน: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ดวงตา LED ที่ควบคุมด้วยรีโมทและเครื่องดูดควัน: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: เครื่องดูดควันแบบกระโจมกระจกโค้ง ขนาด 90 ซม. MEX รุ่น KV737X90-1 2024, กรกฎาคม
Anonim

โดย bekathwiaBecky Sternติดตามเพิ่มเติมโดยผู้เขียน:

เว็บแคม ความเป็นส่วนตัว เพื่อน
เว็บแคม ความเป็นส่วนตัว เพื่อน
เว็บแคม ความเป็นส่วนตัว เพื่อน
เว็บแคม ความเป็นส่วนตัว เพื่อน
เทปวัดเสาอากาศยากิพร้อมข้อต่อพิมพ์ 3 มิติ
เทปวัดเสาอากาศยากิพร้อมข้อต่อพิมพ์ 3 มิติ
เทปวัดเสาอากาศยากิพร้อมข้อต่อพิมพ์ 3 มิติ
เทปวัดเสาอากาศยากิพร้อมข้อต่อพิมพ์ 3 มิติ
จักรราศีเย็บปักถักร้อย
จักรราศีเย็บปักถักร้อย
จักรราศีเย็บปักถักร้อย
จักรราศีเย็บปักถักร้อย

เกี่ยวกับ: การทำและการแบ่งปันเป็นสองความสนใจที่ใหญ่ที่สุดของฉัน! โดยรวมแล้ว ฉันได้เผยแพร่บทแนะนำหลายร้อยเรื่องเกี่ยวกับทุกอย่างตั้งแต่ไมโครคอนโทรลเลอร์ไปจนถึงการถักนิตติ้ง ฉันเป็นนักบิดในนิวยอร์กซิตี้และเป็นแม่สุนัขที่ไม่สำนึกผิด ว้าวของฉัน… More About bekathwia »

แฝดจาวาส! ดับเบิ้ลออร์โก้! สองพ่อมดผีจาก Bubble-Bobble! ฮูดเครื่องแต่งกายนี้สามารถเป็นสิ่งมีชีวิตที่มีตา LED ใดๆ ที่คุณเลือกได้เพียงแค่เปลี่ยนสี ฉันสร้างโปรเจ็กต์นี้ครั้งแรกในปี 2015 ด้วยวงจรและโค้ดที่เรียบง่าย แต่ในปีนี้ฉันต้องการสร้างเวอร์ชันที่อัปเกรดพร้อมการควบคุมแอนิเมชันในเครื่องแต่งกายสองชุดพร้อมกัน วงจรนี้ใช้รีโมต RF ระยะใกล้ที่เรียบง่ายเพียงตัวเดียวเพื่อควบคุมเครื่องรับสองตัวบนความถี่เดียวกัน และโค้ด Arduino ที่ใช้การขัดจังหวะเพื่อให้เกิดการเปลี่ยนแปลงภาพเคลื่อนไหวที่ตอบสนองตามโค้ดสอนของ Bill Earl

สำหรับโครงการนี้ คุณจะต้อง:

  • อัญมณี NeoPixel สองชิ้น
  • GEMMA M0 ไมโครคอนโทรลเลอร์
  • เครื่องรับสัญญาณไร้สาย 315MHz ชนิดสลัก
  • รีโมท RF ไร้สาย 315MHz ในการกำหนดค่าปุ่มสี่ สอง หรือปุ่มเดียว
  • ลวดเกลียวเคลือบซิลิโคน (แนะนำ 30awg)
  • หัวแร้งและหัวแร้ง
  • เครื่องปอกสายไฟ
  • เครื่องตัดฟลัช
  • แหนบ
  • เครื่องมือช่วยมือที่สาม (อุปกรณ์เสริม)
  • หมุดเย็บผ้า
  • ชอล์กของช่างตัดเสื้อ (ไม่จำเป็น)
  • ลวดเหล็กชุบสังกะสี 19awg
  • ผ้าหนาสำหรับหมวก/ผ้าคลุม (สำหรับรุ่นนี้ ฉันใช้ผ้ายาสูบสีขาว 2 ชั้นและผ้าขาว 1 ชั้น จากนั้นบุด้านในของหมวกด้วยสีดำสนิทเพื่อป้องกันแสง)
  • ผ้าสีดำโปร่งแสงสำหรับแผงหน้าปัด
  • จักรเย็บผ้า
  • กรรไกร
  • เข็มและด้าย
  • เครื่องพิมพ์ 3 มิติพร้อมเส้นใยยืดหยุ่น (อุปกรณ์เสริม)

เพื่อให้ทันกับสิ่งที่ฉันทำอยู่ ติดตามฉันบน YouTube, Instagram, Twitter, Pinterest และสมัครรับจดหมายข่าวของฉัน ในฐานะที่เป็น Amazon Associate ฉันได้รับรายได้จากการซื้อที่เข้าเงื่อนไขที่คุณทำโดยใช้ลิงก์พันธมิตรของฉัน

ก่อนที่คุณจะเริ่มต้น คุณอาจต้องการอ่านข้อกำหนดเบื้องต้นต่อไปนี้:

  • ขอแนะนำ Gemma M0
  • NeoPixel Uberguide
  • เวอร์ชันโปรเจ็กต์เครื่องดูดควันรุ่นแรก (สร้างขึ้นในปี 2015 พร้อม Gemma แบบคลาสสิกและไม่มีการควบคุมแบบไร้สาย)
  • มัลติทาสกิ้ง Arduino pt 3

ขั้นตอนที่ 1: แผนภาพวงจรและรหัส

แผนภาพวงจรและรหัส
แผนภาพวงจรและรหัส

การเชื่อมต่อวงจรมีดังนี้:

  • Gemma D2 เป็นเครื่องรับสัญญาณไร้สาย D0
  • Gemma D0 ไปยังเครื่องรับไร้สาย D1
  • Gemma 3V เป็นเครื่องรับสัญญาณไร้สาย +5V
  • Gemma GND ไปยังเครื่องรับไร้สาย GND และอัญมณี NeoPixel GND
  • ข้อมูลอัญมณี Gemma D1 ถึง NeoPixel IN
  • Gemma Vout สู่อัญมณี NeoPixel PWR
  • ข้อมูลอัญมณี NeoPixel ออกไปยังข้อมูล NeoPixel Jewel อื่นๆ IN

ดูขั้นตอนถัดไปสำหรับบันทึกการประกอบ

โค้ดอิงจากการทำงานแบบมัลติทาสกิ้งของ Arduino Sketch โดย Bill Earl และดัดแปลงเพื่อควบคุมอัญมณี NeoPixel สองชิ้นด้วยอินพุตดิจิตอลสองช่อง ดังนั้นคุณจึงไม่จำเป็นต้องใช้เครื่องรับแบบไร้สาย คุณสามารถใช้ปุ่มต่างๆ บนวงจรแทนได้ ดาวน์โหลดไฟล์โค้ด Arduino นี้จากไฟล์แนบของขั้นตอนนี้ หรือคัดลอกและวางจากที่นี่ลงในร่าง Arduino เปล่า:

#รวม "Adafruit_NeoPixel.h"

// รองรับประเภทรูปแบบ: รูปแบบ enum { NONE, RAINBOW_CYCLE, THEATER_CHASE, COLOR_WIPE, SCANNER, FADE }; // สนับสนุนทิศทางของพ่อ: ทิศทาง enum { ไปข้างหน้า ย้อนกลับ }; // NeoPattern Class - มาจากคลาสคลาส Adafruit_NeoPixel NeoPatterns: public Adafruit_NeoPixel { สาธารณะ: // ตัวแปรสมาชิก: รูปแบบ ActivePattern; // รูปแบบใดที่กำลังวิ่ง ทิศทาง Direction; // ทิศทางในการรันรูปแบบ unsigned long Interval; // มิลลิวินาทีระหว่างการอัปเดตที่ไม่ได้ลงนาม longlastUpdate; // อัปเดตตำแหน่งล่าสุด uint32_t Color1, Color2; // ใช้สีอะไร uint16_t TotalSteps; // จำนวนขั้นตอนทั้งหมดในรูปแบบดัชนี uint16_t; // ขั้นตอนปัจจุบันภายในรูปแบบเป็นโมฆะ (*OnComplete)(); // โทรกลับเมื่อรูปแบบเสร็จสมบูรณ์ // ตัวสร้าง - เรียกตัวสร้างคลาสฐานเพื่อเริ่มต้นแถบ NeoPatterns (พิกเซล uint16_t, พิน uint8_t, ประเภท uint8_t, เป็นโมฆะ (* โทรกลับ) ()):Adafruit_NeoPixel (พิกเซล, พิน, ประเภท) { OnComplete = โทรกลับ; } // อัปเดตรูปแบบ void Update() { if((millis() - lastUpdate)> Interval) // เวลาที่จะอัปเดต { lastUpdate = millis(); สวิตช์ (ActivePattern) { กรณี RAINBOW_CYCLE: RainbowCycleUpdate (); หยุดพัก; กรณี THEATER_CHASE: TheaterChaseUpdate(); หยุดพัก; กรณี COLOR_WIPE: ColorWipeUpdate(); หยุดพัก; กรณี SCANNER: ScannerUpdate(); หยุดพัก; กรณี FADE: FadeUpdate(); หยุดพัก; ค่าเริ่มต้น: แตก; } } } // เพิ่มดัชนีและรีเซ็ตเมื่อสิ้นสุด โมฆะ Increment () { if (Direction == FORWARD) { Index++; ถ้า (ดัชนี >= TotalSteps) { ดัชนี = 0; ถ้า (OnComplete != NULL) { OnComplete(); // เรียกการเรียกกลับแบบสมบูรณ์ } } } อื่น // Direction == REVERSE { --Index; ถ้า (ดัชนี <= 0) { ดัชนี = TotalSteps-1; ถ้า (OnComplete != NULL) { OnComplete(); // เรียกการเรียกกลับแบบสมบูรณ์ } } } } // เรียกรูปแบบย้อนกลับเป็นโมฆะ ย้อนกลับ () { ถ้า (ทิศทาง == ไปข้างหน้า) { ทิศทาง = ย้อนกลับ; ดัชนี = TotalSteps-1; } อื่น ๆ { ทิศทาง = ไปข้างหน้า; ดัชนี = 0; } } // เริ่มต้นสำหรับ RainbowCycle void RainbowCycle (ช่วง uint8_t, dir ทิศทาง = FORWARD) { ActivePattern = RAINBOW_CYCLE; ช่วงเวลา = ช่วง; TotalSteps = 255; ดัชนี = 0; ทิศทาง = ผบ; } // อัปเดตรูปแบบ Rainbow Cycle void RainbowCycleUpdate() { สำหรับ (int i=0; i< numPixels(); i++) { setPixelColor(i, Wheel(((i * 256 / numPixels()) + Index) & 255)); } แสดง(); เพิ่มขึ้น (); } // เริ่มต้นสำหรับ Theatre Chase void TheaterChase (uint32_t color1, uint32_t color2, uint8_t interval, dir dir = FORWARD) { ActivePattern = THEATER_CHASE; ช่วงเวลา = ช่วง; TotalSteps = numPixels (); สี1 = สี1; สี2 = สี2; ดัชนี = 0; ทิศทาง = ผบ; } // อัปเดตรูปแบบการไล่ล่าโรงละครเป็นโมฆะ TheaterChaseUpdate () { สำหรับ (int i = 0; i< numPixels (); i++) { if ((i + Index) % 3 == 0) { setPixelColor (i, Color1); } อื่น ๆ { setPixelColor(i, Color2); } } แสดง(); เพิ่มขึ้น (); } // เริ่มต้นสำหรับ ColorWipe โมฆะ ColorWipe (สี uint32_t, ช่วง uint8_t, dir ทิศทาง = ไปข้างหน้า) { ActivePattern = COLOR_WIPE; ช่วงเวลา = ช่วง; TotalSteps = numPixels (); Color1 = สี; ดัชนี = 0; ทิศทาง = ผบ; } // อัปเดต Color Wipe Pattern เป็นโมฆะ ColorWipeUpdate () { setPixelColor (ดัชนี, Color1); แสดง(); เพิ่มขึ้น (); } // เริ่มต้นสำหรับเครื่องสแกนโมฆะของ SCANNNER (uint32_t color1, uint8_t interval) { ActivePattern = SCANNER; ช่วงเวลา = ช่วง; TotalSteps = (numPixels() - 1) * 2; สี1 = สี1; ดัชนี = 0; } // อัปเดตรูปแบบสแกนเนอร์เป็นโมฆะ ScannerUpdate () { สำหรับ (int i = 0; i > 1, เขียว(สี) >> 1, น้ำเงิน(สี) >> 1); ส่งคืน dimColor; } // ตั้งค่าพิกเซลทั้งหมดเป็นสี (พร้อมกัน) void ColorSet (uint32_t color) { สำหรับ (int i = 0; i > 16) & 0xFF; } // ส่งคืนองค์ประกอบสีเขียวของสี 32 บิต uint8_t Green (สี uint32_t) { return (สี >> 8) & 0xFF; } // ส่งคืนองค์ประกอบสีน้ำเงินของสี uint8_t แบบ 32 บิตสีน้ำเงิน (สี uint32_t) { สีส่งคืน & 0xFF; } // ป้อนค่า 0 ถึง 255 เพื่อรับค่าสี // สีเป็นการเปลี่ยน r - g - b - กลับ r. uint32_t Wheel (ไบต์ WheelPos) { WheelPos = 255 - WheelPos; ถ้า (WheelPos <85) { return Color (255 - WheelPos * 3, 0, WheelPos * 3); } else if (WheelPos <170) { WheelPos -= 85; ส่งคืนสี(0, WheelPos * 3, 255 - WheelPos * 3); } อื่น ๆ { WheelPos -= 170; ส่งคืนสี (WheelPos * 3, 255 - WheelPos * 3, 0); } } }; เป็นโมฆะ JewelsComplete(); // กำหนด NeoPatterns บางอย่างสำหรับสองวงและแท่ง // รวมถึงรูทีนการสำเร็จบางอย่าง NeoPatterns Jewels(14, 1, NEO_GRBW + NEO_KHZ800, &JewelsComplete); const int ความสว่าง = 50; // เริ่มต้นทุกอย่างและเตรียมเริ่มต้นการตั้งค่าเป็นโมฆะ () { Serial.begin (115200); โหมดพิน (2, อินพุต); โหมดพิน(0, INPUT); // เริ่มต้นพิกเซลทั้งหมด Jewels.setBrightness(BRIGHTNESS); อัญมณี.begin(); // เริ่มต้นรูปแบบ Jewels. TheaterChase(Jewels. Color(255, 50, 0), Jewels. Color(0, 0, 0, 50), 100); } // Main loop void loop () { // อัปเดตอัญมณี Jewels. Update(); // สลับรูปแบบเมื่อกดปุ่ม: if (digitalRead(2) == HIGH) // กดปุ่ม # 1 แล้ว { Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = จาง; Jewels. TotalSteps = 100; Jewels. Interval = 1; } else if (digitalRead (0) == HIGH) // ปุ่ม #2 กด { Jewels. Color1 = Jewels. Color (255, 0, 0); Jewels. ActivePattern = เครื่องสแกน; Jewels. TotalSteps = Jewels.numPixels (); Jewels. Interval = 100; } อื่น // กลับสู่การทำงานปกติ { // คืนค่าพารามิเตอร์รูปแบบทั้งหมดเป็นค่าปกติ Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = THEATER_CHASE; Jewels. TotalSteps = Jewels.numPixels (); Jewels. Interval = 100; } } //---------------------------------------------------------- -------------- //เสร็จสิ้นกิจวัตร - รับการเรียกเมื่อรูปแบบเสร็จสมบูรณ์ //---------------------- -------------------------------------- // Jewels Completion Callback เป็นโมฆะ JewelsComplete () { // การเปลี่ยนสีแบบสุ่มสำหรับการสแกนครั้งต่อไป //Jewels. Color1 = Jewels. Wheel(random(255)); Jewels. Reverse(); }

ขั้นตอนที่ 2: ประกอบวงจร

ประกอบวงจร
ประกอบวงจร
ประกอบวงจร
ประกอบวงจร

ชุดอุปกรณ์ช่วยจับแบบมือที่สามทำให้กระบวนการบัดกรีสายไฟกับส่วนประกอบต่างๆ ตรงไปตรงมาและสนุกสนาน แต่อย่ากังวลหากคุณไม่มีชุด คุณสามารถใช้เทปหรือสีโป๊วโปสเตอร์เพื่อให้บอร์ดของคุณมั่นคงในขณะที่บัดกรี

ใช้เส้นลวดบาง ๆ (ความยาวประมาณ 6 นิ้ว/15 ซม.) สำหรับการเชื่อมต่อระหว่างอัญมณี NeoPixel สองชิ้น (แผนภาพในขั้นตอนก่อนหน้า) หากคุณใช้สายไฟที่สั้นเกินไป คุณจะไม่สามารถวางดวงตา LED ของคุณให้ห่างกันเพียงพอ และหากคุณใช้ลวดมากเกินไป ความหย่อนจะเข้าที่หน้าของคุณในขณะที่คุณสวมชุด

วงจรหลักจะอาศัยอยู่ในบริเวณปกเสื้อ (ที่หน้าอกของคุณบรรจบกับไหล่ของคุณ) ดังนั้นสำหรับการเชื่อมต่อระหว่างอัญมณี NeoPixel ตัวแรกในห่วงโซ่และ Gemma สายไฟจะยาวกว่ามาก คุณสามารถยึดลวดไว้กับบริเวณดวงตาแล้วดึงออกมาเพื่อวัดระยะทางที่ลวดควรเคลื่อนที่ จากนั้นเพิ่มอีกเล็กน้อยเพื่อความหย่อนและการประกัน

ในการเชื่อมต่อระหว่างเครื่องรับสัญญาณ Gemma กับเครื่องรับสัญญาณไร้สาย ฉันเลือกใช้สายการสร้างต้นแบบกับส่วนหัวของเพศหญิง เนื่องจากเครื่องรับสัญญาณไร้สายมีหมุดส่วนหัวติดอยู่แล้ว

ขั้นตอนที่ 3: พลังงานแบตเตอรี่

พลังงานแบตเตอรี่
พลังงานแบตเตอรี่
พลังงานแบตเตอรี่
พลังงานแบตเตอรี่

ในการจ่ายไฟให้กับวงจร ฉันใช้แบตเตอรี่ลิโปลีขนาด 500mAh หากใช้แบตเตอรี่ลิเธียม ก็ควรที่จะปกป้องแบตเตอรี่จากรอยขีดข่วน การเจาะ รอยถลอก การโค้งงอ และการใช้งานในทางที่ผิดอื่นๆ คุณสามารถห่อด้วยเทปผ้าที่แข็งแรงหรือทำที่ใส่เครื่องพิมพ์ 3 มิติสำหรับมัน

คุณสามารถใช้ที่ใส่ 3xAAA แทนได้อย่างง่ายดาย (พกติดตัวไว้ในกระเป๋าเสื้อแทนในปกเสื้อ)

ขั้นตอนที่ 4: รูปแบบการตัดเย็บและผ้าตัด

รูปแบบการตัดเย็บและผ้าตัด
รูปแบบการตัดเย็บและผ้าตัด

ฉันใช้รูปแบบเดียวกันกับที่ฉันสร้างสำหรับเวอร์ชันแรกของเครื่องแต่งกายนี้ ซึ่งเป็น PDF แบบหลายหน้าที่เรียงต่อกันเพื่อสร้างชิ้นส่วนลวดลาย

พับผ้า จัดขอบริมริมผ้าเพื่อจัดแนวลายผ้า และวาง/ปักลวดลายตามรอยพับตามที่ทำเครื่องหมายไว้ ติดตามค่าเผื่อตะเข็บนอกชิ้นส่วนลวดลาย (ยกเว้นส่วนพับ) ประมาณ 5/8 นิ้ว/3 ซม. โดยใช้ชอล์กทำเครื่องหมายหรือดินสอ เนื่องจากผ้าของฉันบาง ฉันจึงต้องการเพิ่มเป็นสองเท่า และเนื่องจากฉันทำหมวกสองชั้น ฉันจึงตัดชิ้นส่วนลวดลายแต่ละชิ้นสี่ชิ้นในผ้าหลัก จากนั้นอีกชั้นในผ้ากอซเนื้อโปร่งเพื่อเพิ่มเนื้อสัมผัสให้กับด้านนอก และสุดท้าย ชั้นของผ้าสีดำเป็นซับในเพื่อกันแสงที่เข้ามา ฉันคิดว่าถ้าฉันวางแผนล่วงหน้าสำหรับเรื่องนั้น ฉันสามารถทิ้งชั้นสีขาวชั้นแรกลงไปได้ และหมวกคลุมก็จะมีเพียงสามชั้นแต่ละชั้นแทนที่จะเป็นสี่ชั้น

ขั้นตอนที่ 5: ประกอบชิ้นส่วนผ้า

ประกอบชิ้นผ้า
ประกอบชิ้นผ้า
ประกอบชิ้นผ้า
ประกอบชิ้นผ้า
ประกอบชิ้นผ้า
ประกอบชิ้นผ้า
ประกอบชิ้นผ้า
ประกอบชิ้นผ้า

ปักหมุดและเย็บตะเข็บปาเป้า/ไหล่บนชิ้นส่วนลวดลายแต่ละชิ้น จากนั้นจัดแนวฮู้ดและเสื้อคลุมตามแนวตะเข็บคอโดยให้ด้านขวาชิดกัน เย็บตะเข็บ เช่นเดียวกับตะเข็บตรงที่ส่วนบนของฮู้ด

ลองบนฝากระโปรงหน้า พับและยึดขอบด้านหน้าดิบของฮูดแล้วเย็บลงไปเพื่อสร้างขอบที่เรียบร้อยและช่องสำหรับลวดที่จะผ่าน

ต่อจากนั้น ให้ตัดผ้าสีดำโปร่งชิ้นกลมๆ มาคลุมด้านหน้าของฮู้ด นี่คือสิ่งที่จะสนับสนุนวงจรและซ่อนใบหน้าของคุณ ปักหมุดให้เข้าที่ขณะสวมฮู้ดเพื่อให้พอดีที่สุด จากนั้นเย็บด้วยมือหรือเครื่องเพื่อเปิดฝากระโปรง

ขั้นตอนที่ 6: ติดตั้งวงจรใน Hood

ติดตั้งวงจรใน Hood
ติดตั้งวงจรใน Hood

ฉันสวมฮู้ด เปิดวงจร และใช้กระจกเงาเพื่อหาตำแหน่งที่ดีที่สุดสำหรับไฟ LED จากนั้นฉันก็ใช้หมุดเพื่อทำเครื่องหมายสถานที่และเย็บอย่างระมัดระวังโดยใช้ด้ายสีดำ โดยติดรูสำหรับติดตั้งบนอัญมณี NeoPixel เข้ากับแผงด้านหน้าสีดำล้วน ของฉันนั่งอยู่ใต้ดวงตาที่แท้จริงของฉันซึ่งทำให้มองเห็นได้ง่าย

ล้างและทำซ้ำหากคุณกำลังทำฮูดที่สอง

ขั้นตอนที่ 7: สวมมัน

สวมใส่มัน!
สวมใส่มัน!
สวมใส่มัน!
สวมใส่มัน!
สวมใส่มัน!
สวมใส่มัน!
สวมใส่มัน!
สวมใส่มัน!

เหล่านี้สนุกมากที่จะสวมใส่ มองเห็นได้ง่ายและไม่ง่ายที่คนอื่นจะเห็นหน้าคุณ ทั้งหมดนี้ก็ค่อนข้างสบายเช่นกัน ต้องขอบคุณฮูดขนาดใหญ่และโครงลวด ซึ่งช่วยให้ผ้าด้านหน้าไม่พาดพิงถึงใบหน้าของคุณ

แฟนของฉันและฉันสวมชุดเหล่านี้ไปเป็นดีเจในงานปาร์ตี้ฮัลโลวีนของแฮ็กเกอร์สเปซในปีนี้ และในขณะที่ฉันเห็นอินเทอร์เฟซสำหรับซอฟต์แวร์เลเซอร์โปรเจคเตอร์ เขาก็ไม่สามารถแยกแยะข้อความเล็กๆ ในอาเบลตันได้ เราจึงต้องปรับให้เขามี มุมมองที่ดีขึ้น ฉันถอดแผงผ้าสีดำออกจากส่วนบนของฮู้ด และพับส่วนที่เกินมา ในห้องมืด คุณไม่สามารถแยกความแตกต่างระหว่างทั้งสองได้จริงๆ แม้ว่าคุณจะเห็นมันในรูปของเราด้วยกันด้านบน

ขอบคุณที่อ่าน! หากคุณชอบโครงการนี้ คุณอาจสนใจโครงการอื่นๆ ของฉัน:

  • 13 ไอเดียสำหรับการกระจาย LEDs
  • ป้ายไฟ LED Strip แบบกระจายพร้อม Arduino/Bluetooth
  • เคาน์เตอร์สมาชิก YouTube พร้อม ESP8266
  • กระจกอินฟินิตี้ง่าย
  • 3 ข้อผิดพลาด Arduino สำหรับผู้เริ่มต้น

เพื่อให้ทันกับสิ่งที่ฉันทำอยู่ ติดตามฉันบน YouTube, Instagram, Twitter และ Pinterest

แนะนำ: