สารบัญ:

ภาพเคลื่อนไหว Mood Light & Night Light: 6 ขั้นตอน (พร้อมรูปภาพ)
ภาพเคลื่อนไหว Mood Light & Night Light: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ภาพเคลื่อนไหว Mood Light & Night Light: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ภาพเคลื่อนไหว Mood Light & Night Light: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: LIGHT UP A NIGHT LIFE - ศักยภาพกล้อง Galaxy S6 เมื่อถ่ายในที่มืด 2024, กรกฎาคม
Anonim
Image
Image
แสงอารมณ์เคลื่อนไหว & แสงกลางคืน
แสงอารมณ์เคลื่อนไหว & แสงกลางคืน
แสงอารมณ์เคลื่อนไหว & แสงกลางคืน
แสงอารมณ์เคลื่อนไหว & แสงกลางคืน
แสงอารมณ์เคลื่อนไหว & ไฟกลางคืน
แสงอารมณ์เคลื่อนไหว & ไฟกลางคืน

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

แน่นอนว่าสามารถสร้างรูปทรงอื่นๆ ได้โดยใช้หลักการเดียวกัน

ต่อไปนี้คือแอนิเมชั่นบางส่วนที่ทำงานอยู่ในแสงไฟ

  • ไฟ
  • ฝน
  • งู (ย้อนยุค)
  • เกมแห่งชีวิต
  • ความผันผวนของรูปคลื่น
  • ประภาคาร
  • รูปแบบการปั่น (ร้านตัดผม)

ปัจจุบันแสงถูกสร้างขึ้นในสองขนาด - ขนาดเล็ก (96 LEDs) และขนาดใหญ่ (384 LEDs) แต่สามารถปรับขยายได้ตามต้องการ

เสบียง

WS2812B LEDs - AliExpress

PCBs - ALLPCB

พลาสติกตัดเลเซอร์สีดำ 3 มม. - ผู้ผลิตแผ่นพลาสติก

เส้นใยพิมพ์ 3 มิติสีขาว - Amazon

ชิ้นส่วนอิเล็กทรอนิกส์ - Farnell / Newark

M3 Bolts and Threaded Spacers - Amazon

หัวแร้ง

เตาอบเครื่องปิ้งขนมปัง - การประกอบชิ้นส่วนยึดพื้นผิว

ขั้นตอนที่ 1: แผง PCBs

แผง PCBs
แผง PCBs
แผง PCBs
แผง PCBs
แผง PCBs
แผง PCBs

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

ฉันสร้าง PCB สามตัวด้วยขนาดพิกเซลต่อไปนี้

  • 1 x 8 - 9 มม. x 72 มม.
  • 4 x 4 - 36 มม. x 36 มม.
  • 8 x 8 - 72 มม. x 72 มม.

สำหรับโครงการนี้ใช้เฉพาะบอร์ด 4x4 และ 8x8 เพื่อสร้างไฟ

ไฟ LED ถูกจัดเรียงในตารางขนาด 9 มม. ในขนาดทั้ง X และ Y ซึ่งค่อนข้างแน่น แต่มีพื้นที่เพียงพอที่จะใช้งานเมื่อพิจารณาตัวเชื่อมต่อขอบ PCB PCBs ถูกสร้างขึ้นเพื่อให้เมื่อเชื่อมต่อเข้าด้วยกัน กริด LED 9 มม. จะยังคงอยู่ PCBs เชื่อมต่อเข้าด้วยกันอย่างง่ายดายโดยใช้การบัดกรีที่ไหลจากบอร์ดหนึ่งไปยังอีกบอร์ดหนึ่ง

LED แต่ละตัวมีตัวเก็บประจุ 100nF ของตัวเองสำหรับการแยกไฟฟ้าและเพื่อช่วยจ่ายกระแสไฟให้กับ LED ตามความต้องการ

แสดงเป็นแผนผังสำหรับบอร์ด 4x4 พิกเซลพร้อมชั้นทองแดงด้านบนและทองแดงด้านล่างเพื่อแสดงทั้งเลย์เอาต์ LED และเลย์เอาต์ตัวเชื่อมต่อขอบ เครื่องหมายถูกเพิ่มลงในซิลค์สกรีนเพื่อให้เห็นทิศทางของการถ่ายโอนข้อมูลระหว่างตัวเชื่อมต่อที่ชัดเจน

บอร์ดยังมีรูยึด M3 ที่ระยะพิทช์ 18 มม. คูณ 18 มม. เพื่อทำให้การติดตั้งง่ายขึ้นและเสริมความแข็งแกร่งให้กับการเชื่อมต่อระหว่างบอร์ด

การเพิ่มแผ่นอะครีลิคสีขาวขุ่นขนาด 3 มม. ที่ตัดด้วยเลเซอร์ตามที่แสดงจะให้เอฟเฟกต์แบบกระจายที่ดีกับ LED

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

คำเตือน - ห้ามใช้เตาอบใดๆ ที่ใช้สำหรับปรุงอาหาร PCB เนื่องจากอาจทำให้อาหารปนเปื้อนได้ ฉันได้เตาอบเครื่องปิ้งขนมปัง PCB ในราคา 10 ปอนด์ (15 เหรียญสหรัฐ) บน eBay

ขั้นตอนที่ 2: ควบคุม PCB

ควบคุม PCB
ควบคุม PCB
ควบคุม PCB
ควบคุม PCB
ควบคุม PCB
ควบคุม PCB

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

นี่คือคุณสมบัติบางอย่างที่ฉันเพิ่มลงในบอร์ดควบคุมของฉัน

  • ไมโครคอนโทรลเลอร์ความเร็วสูงขึ้นพร้อม ROM และ RAM ที่มากขึ้น
  • FET ระดับลอจิกช่วยให้ฉันเปิดและปิดไฟ LED ได้ทั่วโลก - มีประโยชน์เมื่อเปิดเครื่องและสำหรับการทำงานที่ใช้พลังงานต่ำ
  • บัฟเฟอร์ความเร็วสูงเพื่อแปลงสัญญาณ 3V3 จากไมโครคอนโทรลเลอร์เป็น 5V เพื่อขับเคลื่อน LED
  • สลับเพื่อให้ผู้ใช้ควบคุมแสงได้
  • Photo Transistor - เพื่อปรับขนาดความสว่างของ LED เพื่อให้เหมาะกับระดับแสงโดยรอบ
  • การตรวจสอบแหล่งจ่ายไฟ - เพื่อให้แน่ใจว่าเราไม่ได้พยายามดึงกระแสไฟมากขึ้น แหล่งจ่ายไฟสามารถให้ได้
  • ขั้วต่อบลูทูธ - HC05/HC06.
  • ขั้วต่อ WIFI - ESP8266
  • ตัวเชื่อมต่อ I2C
  • ตัวเชื่อมต่อการขยายในอนาคต

แผนผังสำหรับบอร์ดแสดงเช่นเดียวกับชั้นทองแดงด้านบนและด้านล่าง เอกสาร BillOfMaterials ที่แนบมาแสดงรายการส่วนประกอบที่ฉันติดตั้งกับ PCB ควบคุม

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

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

PCB ใช้พลังงานจากแหล่งจ่ายไฟ DC 5V ซึ่งสามารถมาจากแหล่งจ่ายไฟหลักประเภท PSU หรือผ่านช่องเสียบเครื่องชาร์จ USB 2A

แสดงให้เห็นด้วยว่าเป็นความพยายามครั้งก่อนของฉันที่ใช้ Arduino

ขั้นตอนที่ 3: โครงกระดูกพิมพ์ 3 มิติ

โครงกระดูกพิมพ์ 3 มิติ
โครงกระดูกพิมพ์ 3 มิติ
โครงกระดูกพิมพ์ 3 มิติ
โครงกระดูกพิมพ์ 3 มิติ
โครงกระดูกพิมพ์ 3 มิติ
โครงกระดูกพิมพ์ 3 มิติ

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

ภายใน LED PCB หกตัวถูกยึดเข้าด้วยกันโดยใช้โครงกระดูกที่พิมพ์ 3 มิติ โครงกระดูกนี้เข้าไปในรู M3 ต่างๆ บน PCB ของจอแสดงผลโดยจับพวกมันไว้ในรูปแบบหกเหลี่ยมที่สวยงาม

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

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

นอกจากนี้ การใช้เครื่องพิมพ์ 3 มิติยังเป็นตัวเว้นวรรคเพื่อให้แผงตัดด้วยเลเซอร์ด้านบนและด้านล่างถูกยึดไว้อย่างสวยงาม

ไฟล์เครื่องพิมพ์ 3 มิติได้รับการออกแบบโดยใช้ Sketchup และแนบแหล่งที่มา

ขั้นตอนที่ 4: Laser Cut บนและล่าง

ชิ้นส่วนที่ตัดด้วยเลเซอร์เป็นรูปทรงหกเหลี่ยมที่เรียบง่าย โดยมีรูในตำแหน่งที่ถูกต้องสำหรับสลักเกลียว

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

ภาพวาดสำหรับชิ้นส่วนเหล่านี้รวมอยู่ในไฟล์ Sketchup ในขั้นตอนก่อนหน้า

ขั้นตอนที่ 5: เฟิร์มแวร์

เฟิร์มแวร์
เฟิร์มแวร์
เฟิร์มแวร์
เฟิร์มแวร์

ฉันเลือกอุปกรณ์ PIC24FJ256GA702 เป็นไมโครคอนโทรลเลอร์หลักของฉัน เนื่องจากทำงานค่อนข้างเร็วที่ความเร็วสูงสุด 32MHz โดยใช้ออสซิลเลเตอร์ภายใน และมีหน่วยความจำโปรแกรมและ RAM มากมายสำหรับการสร้างแอนิเมชั่นที่สวยงาม

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

ฉันใช้ PICkit 3 เพื่อตั้งโปรแกรม PIC บนบอร์ด PCB ควบคุมของฉัน สามารถรวมเข้ากับ Flowcode เพื่อคอมไพล์และโปรแกรมผ่าน PICkit ได้ด้วยการคลิกเมาส์เพียงครั้งเดียว คล้ายกับปุ่มดาวน์โหลดใน Arduino

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

มีการแนบโปรแกรม Flowcode ที่ฉันสร้างไว้ หน้าต่างคุณสมบัติช่วยให้คุณเลือกขนาดของบอร์ดแสดงผลที่ใช้ เช่น 4x4 หรือ 8x8 และตั้งค่าพารามิเตอร์ต่างๆ เช่น จำนวน LED ฯลฯ ที่ขับเคลื่อนภาพเคลื่อนไหวต่างๆ เพื่อให้โปรแกรมหนึ่งสามารถใช้กับจอแสดงผลทั้งสองขนาดได้

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

ต่อไปนี้คือโหมดแอนิเมชั่นต่างๆ ที่แสงสามารถทำได้กับเฟิร์มแวร์ปัจจุบัน

  1. สเมียร์สี - ผสมสีเป็นวงแหวน
  2. เกมแห่งชีวิต - การจำลองรูปแบบชีวิต
  3. รูปแบบการปั่น - รูปแบบภาพเคลื่อนไหว 2, 3 หรือ 4 สี
  4. เครื่องกำเนิดคลื่น - คลื่นไซน์สี
  5. สีคงที่ - แผงสีหมุนได้หกแผง
  6. โป๊ะโคม - สีแผงเคลื่อนไหว ทั้งหมด/เฉพาะบุคคล
  7. ประภาคาร - แผงเดียวหมุนได้
  8. แหวน - วงแหวนแนวนอนเคลื่อนไหว
  9. ไฟ - เอฟเฟกต์ไฟเคลื่อนไหว
  10. ฝน - เอฟเฟกต์ฝนสีเคลื่อนไหว
  11. ดอกไม้ไฟ - เอฟเฟกต์ดอกไม้ไฟสีเคลื่อนไหว
  12. Shifting - เอฟเฟกต์การเลื่อนแบบเคลื่อนไหว
  13. งู - การต่อสู้งูย้อนยุคเคลื่อนไหว
  14. งู - งูหมุนเคลื่อนไหว
  15. สุ่ม - โหมด 1 ถึง 14 พร้อมการเปลี่ยนแปลงช้า (ประมาณ 60 วินาที)
  16. สุ่ม - โหมด 1 ถึง 14 พร้อมการเปลี่ยนแปลงอย่างรวดเร็ว (ประมาณ 30 วินาที)

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

ขั้นตอนที่ 6: การเชื่อมต่อ

การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ

บอร์ดควบคุมเชื่อมต่อกับแหล่งจ่ายไฟโดยใช้สาย USB A หรือสายเต้ารับ DC ซึ่งทั้งสองอย่างนี้สามารถซื้อได้ในราคาที่ต่ำมากในเว็บไซต์เช่น eBay

บอร์ดควบคุมเชื่อมต่อกับซ็อกเก็ต IN ที่ไม่ได้เชื่อมต่อของบอร์ดแสดงผลโดยใช้ขั้วต่อขอบที่เข้าถึงได้และสายแพเซอร์โว 3 ทางแบบมาตรฐาน

จากนั้นแผ่นตัดด้วยเลเซอร์ด้านบนและด้านล่างจะถูกยึดในตำแหน่งโดยใช้สลักเกลียวหัวกระทะ M3 และตัวเว้นระยะเกลียว M3

การอัพเกรดในอนาคต

การมีตัวเลือกในการเพิ่มบลูทูธและ WIFI ให้กับแผงควบคุมของฉันทำให้สามารถอัปเกรดในอนาคตได้ เช่น การอัปเดตแอนิเมชั่นและการผสานการทำงานอย่างชาญฉลาดกับสิ่งต่างๆ เช่น Amazon Alexa ผ่านบริการออนไลน์ เช่น ITTT นี่คือสิ่งที่ฉันกำลังตรวจสอบอยู่

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

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

การประกวด Make it Glow
การประกวด Make it Glow
การประกวด Make it Glow
การประกวด Make it Glow

รองชนะเลิศการประกวด Make it Glow

แนะนำ: