สารบัญ:
- ขั้นตอนที่ 1: ข้อกำหนด
- ขั้นตอนที่ 2: แผนผัง & รหัส
- ขั้นตอนที่ 3: เอฟเฟกต์เสียง
- ขั้นตอนที่ 4: การออกแบบและสร้างคอนโซล
- ขั้นตอนที่ 5: แผนผังประสาน
- ขั้นตอนที่ 6: ส่วนขยาย 1: LED Matrix
- ขั้นตอนที่ 7: การกำหนดค่าและการตั้งค่า
- ขั้นตอนที่ 8: ส่วนขยาย 2: OpenProcessing
วีดีโอ: การแสดงภาพและเสียง LED: 8 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
โดย beckslelandsimpsonติดตามเพิ่มเติมโดยผู้เขียน:
[คำเตือน: ไฟกะพริบในวิดีโอ]
เมทริกซ์ RGB LED เป็นโครงการทั่วไปสำหรับมือสมัครเล่นที่ต้องการทดลองกับการแสดงแสง แต่มักจะมีราคาแพงหรือมีข้อจำกัดในด้านขนาดและการกำหนดค่า เป้าหมายของโปรเจ็กต์นี้คือการสร้างจอแสดงผลที่กำหนดค่าใหม่ได้ซึ่งสามารถใช้เป็นชิ้นส่วนเดี่ยวหรือเป็นจอแสดงผลแบบโต้ตอบที่ควบคุมโดยคอนโซลโดยใช้จอยสติ๊กและปุ่มต่างๆ จอแสดงผลสามารถจัดเรียงได้หลากหลายรูปแบบตั้งแต่การสร้างเมทริกซ์ไปจนถึงแถบเชิงเส้นสำหรับตกแต่งแบบคงที่มากขึ้น
ด้วยการติดเซนเซอร์เสียง ปุ่ม และจอยสติ๊กที่มีให้เลือกหลายแบบ ทำให้สามารถสลับการแสดงผลระหว่างโหมดโต้ตอบและโหมดอัตโนมัติด้วยสี เอฟเฟกต์ โหมด ความเร็ว ความสว่าง และรูปแบบที่กำหนดค่าได้
ผู้ใช้สามารถสลับระหว่างโหมดและการกำหนดค่าต่างๆ โดยใช้ปุ่ม MODE และ CONFIG โดยใช้จอยสติ๊กและปุ่ม SELECT เพื่อทำการเลือก ตัวเลือกปัจจุบันของผู้ใช้จะแสดงบนหน้าจอ LCD ขนาด 16x2 ที่กึ่งกลางคอนโซล
โปรเจ็กต์นี้เกี่ยวข้องกับแถบ LED ที่ประกอบด้วยไฟ LED 250 ดวง แต่รหัสสามารถเปลี่ยนแปลงได้ง่ายเพื่อให้เป็นแถบขนาดใดก็ได้
โหมด
- เกม: เกมสามารถเล่นได้โดยใช้เมทริกซ์นำเป็นหน้าจอ
- เสียงรบกวน: ไฟ LED จะสว่างขึ้นตามระดับเสียงและความถี่ของเสียงรบกวนจากสิ่งแวดล้อม
- สี: ไฟ LED ที่ใช้เป็นแสงแสดงจานสีที่กำหนดไว้ล่วงหน้า
- ฝน: เอฟเฟกต์แสงฝนที่ตกลงมา
การกำหนดค่าโหมด
-
สี - ตั้งค่าจานสีของแถบ
- Pride Flag - สายรุ้ง
- ธงชาติทรานส์ - ฟ้า ชมพู ขาว
- ไฟ - แดง ส้ม เหลือง
- แสง - สีขาว
-
สไตล์ - ตั้งค่าเอฟเฟกต์การแสดงแถบ
- บล็อก - หากอยู่ในโหมดสี สีของไฟ LED จะคงที่ ในสัญญาณรบกวนของโหมด จะทำให้ LED ทั้งหมดตั้งค่าสีของสัญญาณรบกวนล่าสุด ทำให้เกิดเอฟเฟกต์กะพริบ
- Shimmer - ไฟ LED สลับกันสั่น ซีดจางระหว่างเปิดและปิด
- แทร็ก - หากอยู่ในโหมดสี แบบแผนชุดสีของไฟ LED จะเคลื่อนที่ข้ามแถบ ในโหมดนอยส์ จะทำให้สีของสัญญาณรบกวนเคลื่อนที่ข้ามแถบเป็นคลื่นเคลื่อนที่
-
Rain Effect - วิธีสร้างรูปแบบฝน
- สุ่ม - แถบฝนใหม่จะถูกจัดตำแหน่งแบบสุ่ม และรูปแบบจะแตกต่างกันไป
- คงที่ - รูปแบบฝนซ้ำ
-
เกม - เกมไหนที่คุณสามารถเล่นบนเมทริกซ์
Snake - Viva la Nokia เล่นได้เฉพาะเมื่อแถบอยู่ในการกำหนดค่าเมทริกซ์
-
Effect Color - เอฟเฟกต์ใช้แหล่งที่มาของสีอะไร
- ชุดสี - เอฟเฟกต์ (เช่น ฝน) สุ่มสีจากชุดสีที่ตั้งไว้
- ความถี่เสียงรบกวน - เอฟเฟกต์เมื่อสร้างจะใช้สีที่สอดคล้องกับความถี่ของสัญญาณรบกวนปัจจุบัน
- Noise Vol - เอฟเฟกต์เมื่อสร้างจะใช้สีที่สอดคล้องกับระดับเสียงปัจจุบัน
-
ขนาด - การจัดวางจอภาพเป็นอย่างไร?
- 250x1 สตริป
- 50x5 เมทริกซ์
- 25x10 เมทริกซ์
ความเร็วและความสว่าง
ควบคุมผ่านโพเทนชิโอมิเตอร์แบบอะนาล็อกที่หมุนได้ เพื่อเปลี่ยนความสว่างของ LED และอัตราการอัปเดตการแสดงผล สิ่งนี้ส่วนใหญ่ส่งผลกระทบต่อความเข้มของเอฟเฟกต์แสงและความยากของเกม
สถานะแฟลชและไฟ LED
สวิตช์ด้านซ้ายบนของคอนโซลช่วยให้ปิดไฟ LED ได้ เป็นตัวเลือกเมื่อกำหนดค่าการแสดงผล สวิตช์ด้านซ้ายล่างจะเปิดเอฟเฟกต์ Strobe โดยจะกะพริบหน้าจอตามความเร็วที่ตั้งไว้
ขั้นตอนที่ 1: ข้อกำหนด
ส่วนประกอบ:
- เขียงหั่นขนม ~ 5 ปอนด์
- StripBoard ~ 10 ปอนด์สำหรับชุด 5
- Arduino Mega (โคลนอะไรก็ได้) ~ 20 ปอนด์
- ตัวต้านทานโพเทนชิโอมิเตอร์ 2x 1M
- แถบแอดเดรสแอดเดรสแยกได้ 300 RGB ~ 30 ปอนด์
- ส่วนหัวของพิน ~ £5
- 10x 10K, 1x 300 ตัวต้านทาน
- โมดูล LCD I2C ~ £5
- จอยสติ๊ก 4 สวิตช์ ~ 10 ปอนด์
- เซ็นเซอร์เสียง ~ 5 ปอนด์
- 1x 1μF, 1x 10μF, 1x 100nF ตัวเก็บประจุ
- ปุ่ม 3x (ชั่วขณะ) คำแนะนำ: อาร์เคด มินิ ~ 3 ปอนด์
- สวิตช์ 2x คำแนะนำ: สลับ ~ 5 ปอนด์
- เพาเวอร์แจ็ค
- กล่อง ~ 20x20x15 ซม. - กระดาษแข็งง่ายที่สุด แต่ถ้าคุณใช้เครื่องตัดเลเซอร์ได้ แสดงว่าคุณทำสำเร็จ
คำแนะนำจอยสติ๊ก/ปุ่มของฉันคือตัวเลือกโวหารอย่างแท้จริง หลังจากธีมอาร์เคด การเปลี่ยนแปลงชั่วขณะของธรรมชาติใด ๆ จะทำ สามารถรับจอยสติ๊กที่ถูกกว่าซึ่งรายงานตำแหน่งผ่านสัญญาณแอนะล็อกที่ผลิตโดยใช้โพเทนชิโอมิเตอร์ 2 ตัว (หนึ่งอันสำหรับแต่ละแกน) หากคุณพร้อมที่จะแก้ไขโค้ด คุณสามารถใช้นิ้วโป้งจอยสติ๊กแบบนี้ได้
ในขณะที่ฉันใช้พิน I/O ของ Arduino Megas เป็นเปอร์เซ็นต์ขั้นต่ำ แต่มันถูกเลือกเนื่องจากเป็นไดนามิกที่ใหญ่กว่าและขนาดหน่วยความจำของโปรแกรม ซึ่ง Arduino Uno พิสูจน์แล้วว่าไม่เพียงพอ
ทางเลือก LEDStrip
แถบ LED ที่ฉันใช้คือแถบยืดหยุ่น LED WS2813 LED ที่สามารถระบุแอดเดรสได้ 300 RGB WS2812 เวอร์ชันอัปเกรด รูปแบบนี้แม้ว่าจะมีราคาแพงกว่าเล็กน้อย แต่ปรับปรุงใน WS2812 ด้วยการส่งสัญญาณคู่ ซึ่งหมายความว่าหาก LED ดวงหนึ่งหยุดทำงาน แถบที่เหลือหลังจากที่ยังคงทำงานอยู่ ด้วยเหตุนี้จึงมี 4 พิน: 5V, GND, DI (อินพุตข้อมูล) และ BI (อินพุตสำรอง)
ค่าใช้จ่ายทั้งหมด: ~ 100
อุปกรณ์:
- หัวแร้ง + บัดกรี
- มัลติมิเตอร์ (อุปกรณ์เสริม แต่แนะนำ)
- เครื่องตัดและปอกสายไฟ
- ลวด: ควรใช้แกนเดี่ยวแบบยืดหยุ่น (LOTS)
- มีดผ่าตัด
- ไม้บรรทัด/ดินสอ
- แหล่งจ่ายไฟ 1x 5V
- ไขควงมือ
- เครื่องพิมพ์ A ถึง B สาย USB
ซอฟต์แวร์:
Arduino IDE
ทักษะ:
- บัดกรี
- Arduino บางส่วนมีประสบการณ์ทั้งหมด แต่จำเป็นอย่างยิ่ง
ขั้นตอนที่ 2: แผนผัง & รหัส
โปรเจ็กต์นี้ประกอบด้วยโพเทนชิโอมิเตอร์ 2 ตัว, เซ็นเซอร์เสียง 1 ตัว, แถบ LED 1 ดวง, ปุ่มชั่วขณะ 3 ปุ่ม, จอยสติ๊ก 1 ตัว (ปุ่มชั่วขณะ 4 ปุ่ม), โมดูล LCD 1 โมดูล และสวิตช์ 2 ตัว
ฉันแนะนำให้ตรวจสอบให้แน่ใจว่าคุณเข้าใจการเดินสายและตั้งค่าวงจรพื้นฐานบนเขียงหั่นขนม ก่อนบัดกรีอุปกรณ์อิเล็กทรอนิกส์กับแถบแถบในขั้นตอนต่อไปเพื่อความทนทานในระยะยาว อย่างน้อยที่สุดคุณควรจะสามารถเชื่อมต่อพิน Arduino ต่างๆ กับค่าเริ่มต้นของ HIGH(5V)/LOW(GND) และทดลองกับการตั้งค่าดั้งเดิมของ LEDStrip ที่แตกต่างกันในโค้ด (ซึ่งถูกทำเครื่องหมาย - ดูขั้นตอนโค้ด) เพื่อดู เอฟเฟกต์แสงเบื้องต้นบางส่วน
วงจรเสียง
วงจรเสียงจะกล่าวถึงในขั้นตอนต่อไป และจำเป็นเฉพาะถ้าคุณต้องการเอฟเฟกต์เสียง มิฉะนั้น คุณสามารถเชื่อมต่อพินอินพุตแบบอะนาล็อก AUDIO A0, A1 ถึง GND ผ่านตัวต้านทานแบบดึงลง (~300 โอห์ม) วงจรนี้พยายามแยกความถี่และระดับเสียงของเสียงที่วัดได้ โดยให้ค่าอินพุตสองค่าที่แตกต่างกันเพื่อควบคุมการแสดงภาพเสียง เช่น ความสูง (ปริมาตรปริมาตร) และสี (ความถี่)
แถบ LED
ฉันได้แนบแผ่นข้อมูลสำหรับแถบ WS2813 ซึ่งมีการเดินสายในอุดมคติ สามารถดึงพิน BI ผ่านตัวต้านทานลงกับพื้นได้ และควรเชื่อมต่อตัวเก็บประจุระหว่าง GND และ +5V และวางไว้ใกล้กับแถบ สิ่งนี้ทำให้การเปลี่ยนแปลงอย่างกะทันหันของความต้องการในปัจจุบันของแถบราบรื่นขึ้น ตัวอย่างเช่น หากมีการเพิ่มขึ้นอย่างมากอย่างกะทันหันเมื่อไฟ LED ทั้งหมดเปิดขึ้น ตัวเก็บประจุที่ใช้ประจุที่เก็บไว้สามารถจ่ายได้เร็วกว่า Arduino ซึ่งช่วยลดความเครียดบนส่วนประกอบบอร์ด
แถบถูกควบคุมโดยใช้ไลบรารี FASTLED (ดูขั้นตอนโค้ดสำหรับรายละเอียดเพิ่มเติม) และเชื่อมต่อกับพิน 5
โมดูล LCD
โมดูล LCD ที่ฉันแนะนำใช้วงจรภายในเพื่อให้ต้องใช้พินอินพุต 2 ตัวเท่านั้น ซึ่งจะช่วยลดความซับซ้อนของการบัดกรีลงในวงจรได้อย่างมาก มันเชื่อมต่อกับหมุด SCL, SDA
โพเทนชิโอมิเตอร์
โพเทนชิโอมิเตอร์เป็นตัวต้านทานแบบปรับค่าได้ ซึ่งช่วยให้คุณควบคุมแรงดันไฟฟ้าที่วัดได้ที่ขาภายใน Arduino สามารถอ่านค่านี้เป็นค่าแอนะล็อกได้ ฉันใช้สิ่งเหล่านี้เป็นวิธีการโต้ตอบเพื่อควบคุมความเร็วและความสว่างของจอแสดงผลด้วยตนเอง และพวกมันเชื่อมต่อกับพินอินพุตแบบอะนาล็อก: A3, A2
พลังงานภายนอก
สำหรับโครงการขนาดเล็ก (< 20 LEDs) Arduino สามารถขับเคลื่อนผ่าน USB เพียงอย่างเดียว แต่สำหรับกรณีการใช้งานที่ใหญ่กว่านี้ (250 LEDs) เนื่องจากความต้องการกระแสไฟขนาดใหญ่จำเป็นต้องมีแหล่งจ่ายไฟภายนอก +5V ฉันขับเคลื่อน Arduino ผ่านแจ็คภายนอกที่เชื่อมต่อกับ GND และ VIN ของ Arduino เมื่อใช้พลังงานผ่าน USB เท่านั้น สีของ LED จะบิดเบี้ยวและหน้าจอ LCD จะไม่สว่างเต็มที่
ปุ่ม/สวิตช์/จอยสติ๊ก
ในตำแหน่งที่เป็นกลาง หมุด INPUT ของปุ่มต่างๆ จะถูกดึงลงไปที่ GND และ Arduino จะอ่านค่า LOW แบบดิจิตอล แต่เมื่อกดลงไป หมุดจะเชื่อมต่อกับค่า +5V สำหรับการอ่านค่า high แบบดิจิตอล ดูตัวอย่างปุ่ม Arduino ทั่วไปที่นี่ ค่าที่อ่านเหล่านี้สามารถใช้เป็นค่าบูลีนแบบมีเงื่อนไขสำหรับโปรแกรม ทำให้เกิดการประมวลผลส่วนต่างๆ ของโค้ด ปุ่ม/สวิตช์เชื่อมต่อกับพินอินพุตดิจิตอลต่อไปนี้: โหมด/การกำหนดค่า: 3/2 จอยสติ๊ก L/R/U/D: 10/11/13/12 เลือก: 9
ขั้นตอนที่ 3: เอฟเฟกต์เสียง
ส่วนที่ซับซ้อนที่สุดของวงจรคือ ตัวแปลงแรงดันเสียง - ความถี่ ฉันทำตามแผนผังที่แสดงด้านบน (ดูข้อมูลเพิ่มเติมที่นี่) อาจต้องมีการปรับเปลี่ยนตัวเก็บประจุ ค่าความต้านทาน ขึ้นอยู่กับความแรงของสัญญาณเสียงของคุณ ตัวอย่างที่ให้มา โดยใช้สัญญาณสลับ 12V ฉันพบผลลัพธ์ที่ดีโดยใช้ 3.3V เป็นแรงดันไฟฟ้า และป้อน 5V เข้าไปในเซ็นเซอร์เสียง
สัญญาณสองสัญญาณที่ฉันดึงออกมาจากวงจรนี้คือความถี่ (VOUT) และระดับเสียง (V2 +)
หมายเหตุที่เป็นประโยชน์
ตัวเก็บประจุขนาดใหญ่กว่า (เกณฑ์ประมาณเหนือ 1µF โดยประมาณ ไม่ใช่เซรามิก) เป็นแบบโพลาไรซ์ ซึ่งรวมถึงตัวเก็บประจุด้วยไฟฟ้า กระแสไหลจาก + ไป - ข้าง บนไดอะแกรม ฉันได้สังเกตทิศทางที่ควรจัด
ทรานซิสเตอร์ที่ใช้ในวงจรนี้คือ PNP ทรานซิสเตอร์เหล่านี้ยอมให้กระแสไหลจากตัวปล่อยไปยังตัวสะสมเมื่อขั้วลบถูกนำไปใช้กับฐานที่สัมพันธ์กับตัวปล่อย
ความเศร้า #1
เดิมทีฉันพยายามป้อนเสียงเข้าสู่วงจรโดยใช้แจ็คเสียง ความฝันคือการเชื่อมต่อเสียงโดยตรงจากโทรศัพท์ของฉัน น่าเสียดายที่สัญญาณที่ผลิตออกมานั้นอ่อนเกินไป และหลังจากสัปดาห์ที่พยายามทำให้มันใช้งานได้ ฉันจึงหันไปใช้โมดูลเซ็นเซอร์เสียง ฉันแน่ใจว่ามีเทคนิคการขยายเสียงที่ฉันสามารถใช้ได้ และนี่เป็นปัญหาหลักสำหรับโครงการของฉันที่ฉันต้องการแก้ไขในอนาคต
ขั้นตอนที่ 4: การออกแบบและสร้างคอนโซล
การออกแบบคอนโซลของฉันได้รับแรงบันดาลใจจากเกมอาร์เคดสมัยก่อน โดยมีจอยสติ๊ก ปุ่ม และสวิตช์สลับแบบย้อนยุค ฉันสร้างมันขึ้นมาโดยใช้กล่องหูฟังที่เป็นกระดาษแข็งแบบเก่า (การกักตุนมีประโยชน์); สิ่งนี้มีประสิทธิภาพสูงเนื่องจากกล่องมีบุด้านในด้วยโฟม ดังนั้นเมื่อกลับเข้าด้านในออกมาก็จะได้เอฟเฟกต์ที่สวยงาม
- ร่างเค้าโครงทั่วไปของคอนโซลที่คุณต้องการ
- วัดและทำเครื่องหมายตำแหน่งของส่วนประกอบต่างๆ ที่ด้านบนของกล่อง ตรวจสอบให้แน่ใจว่าคุณวัดขนาดด้านในของปุ่ม/สวิตช์/จอยสติ๊ก เนื่องจากคุณต้องการให้ช่องว่างใหญ่พอที่จะกดส่วนประกอบผ่านเข้าไปได้ แต่ขอบด้านนอกของปุ่มเหล่านั้นยังติดอยู่ที่กระดาษแข็ง ฉันแนะนำให้ใช้มีดผ่าตัดเพื่อตัดรูเหล่านี้ แต่ควรใช้กรรไกรคมร่วมกับไขควงสำหรับรูกลม ตัดช้าๆ พยายามใส่ส่วนประกอบให้พอดี และค่อยๆ ขยายขนาดที่จับ ทำทีละส่วนประกอบ
- สำหรับส่วนประกอบที่มีขนาดใหญ่กว่า เช่น จอยสติ๊กและจอ LCD ฉันแนะนำให้ขันน็อต/สลักเกลียวผ่านด้านบนของคอนโซลเพื่อยึดเข้าที่อย่างแน่นหนา
- ตัดสามรูที่ด้านล่างของคอนโซล ใช้สำหรับอินพุตพลังงาน อินพุต USB เพื่อตั้งโปรแกรมขั้วต่อเอาต์พุต Arduino และ LEDStrip
เคล็ดลับ
ฉันแนะนำให้บัดกรีตัวเชื่อมต่อโลหะส่วนประกอบแต่ละชิ้นล่วงหน้าก่อนวางลงในคอนโซลเพื่อความสะดวกในการเข้าถึงและเพื่อลดความเสี่ยงที่กระดาษแข็งจะไหม้
ขั้นตอนที่ 5: แผนผังประสาน
คุณจะต้องใช้แผ่นกระดานสตริปอย่างน้อย 25 แถว คูณ 20 โคลส อย่างไรก็ตาม เมื่อเลือกอันที่ใหญ่กว่า คุณจะสามารถแท๊กไมโครคอนโทรลเลอร์ของคุณเป็นสีน้ำเงินบน Stripboard ข้างๆ สายไฟได้ ซึ่งหมายความว่าการเชื่อมต่อที่ไม่เสถียรเพียงอย่างเดียวคือการเชื่อมต่อระหว่าง Stripboard และส่วนประกอบที่ติดอยู่กับพื้นผิวคอนโซล สิ่งสำคัญในทุกขั้นตอนของกระบวนการนี้คือเมื่อสามารถลดความเครียดในการเดินสายได้ เพื่อให้แน่ใจว่าผลิตภัณฑ์ขั้นสุดท้ายจะมีอายุการใช้งานยาวนาน
ฉันใช้ส่วนหัวของพินเพื่อจัดระเบียบสายไฟให้เป็นกลุ่มและเชื่อมต่อกับ Arduino ในลักษณะที่สามารถถอดออกเพื่อแก้ไขจุดบกพร่องได้อย่างง่ายดาย
ฉันสนับสนุน Stripboard ที่ถือวงจรที่หนักที่สุดบางส่วนโดยใช้สตริง/ลวดเพื่อเชื่อมต่อกับผนังด้านในของกล่องกระดาษแข็ง
สายไฟหลักและสายไฟ LEDStrip ที่ออกจากคอนโซลมีขั้วต่อ midwire ซึ่งสามารถถอดออกได้ ซึ่งหมายความว่าสายไฟสามารถร้อยเกลียวผ่านรูที่ด้านล่างของคอนโซลและยังคงเปิดกล่องได้
เคล็ดลับการบัดกรี
แคลมป์สำหรับยึดสายไฟ/สตริปบอร์ดขณะบัดกรีจะทำให้กระบวนการง่ายขึ้นมาก ควรบัดกรีลวดแต่ละเส้นล่วงหน้าก่อนพยายามเชื่อมต่อเสมอ
เคล็ดลับเลย์เอาต์
สายไฟทั้งหมด (ไปทางหมุด Arduinos) อยู่ที่ขอบของบอร์ด
หากเป็นไปได้ การใช้ลวดสีต่างกันในแถวใกล้เคียงจะช่วยหลีกเลี่ยงความสับสนในการเดินสาย
GND, +3.3V, +5.5V ควรวางไว้ที่แถวขอบเสมอเพื่อให้ระบุได้ง่าย การวาง GND และ +3.3/5V ที่ขอบตรงข้ามช่วยป้องกันการลัดวงจรที่อาจเกิดขึ้น แต่โดยส่วนตัวแล้วฉันไม่ได้กังวลและวางไว้ใน 3 อันดับแรก แถว เลย์เอาต์ของคอนโซลสามารถกำหนดลำดับของแถวลวดได้บางส่วน ส่วนประกอบใกล้เคียงจะจับคู่กับแถวที่อยู่ใกล้เคียง หมายเลข PIN ใน Arduino IDE สามารถเขียนใหม่ได้เสมอ
ด้วยการบัดกรีหมุด +5V ของปุ่ม/ตัวต้านทานทั้งหมดเข้าด้วยกันที่ด้านหลังของคอนโซลเข้าด้วยกันในสายโซ่เดซี่ จำเป็นต้องมีสายไฟ +5V เพียงเส้นเดียวระหว่าง Stripboard และส่วนบนของคอนโซล ซึ่งช่วยลดจำนวนสายเชื่อมต่อที่มีช่องโหว่ได้อย่างมาก ตัวอย่างเช่น สำหรับสวิตช์ 4 ตัวของจอยสติ๊ก ฉันเชื่อมต่อขั้ว 5V ทั้งหมดเข้าด้วยกัน
จงใจกว้างกับความยาวของสายไฟที่ต่อระหว่าง Stripboard กับคอนโซล ซึ่งง่ายกว่ามากที่จะลดในภายหลัง มากกว่าพยายามเพิ่ม
หากเป็นไปได้ ให้ใช้สายที่ยืดหยุ่นระหว่างส่วนประกอบ Stripboard และคอนโซล ซึ่งจะทำให้เปิดและดีบักคอนโซลได้ง่ายขึ้นในภายหลัง
ขั้นตอนที่ 6: ส่วนขยาย 1: LED Matrix
ด้วยการเชื่อมต่อแถบ LED เช่นเดียวกับคอนโซล เอฟเฟกต์ฝน สี ไฟแฟลช และสัญญาณรบกวนส่วนใหญ่สามารถแสดงผลได้ แต่รูปแบบการแสดงภาพมีจำกัด รหัสช่วยให้สามารถกำหนดค่าการแสดงผลเพิ่มเติมในการจัดเรียง 250x1, 50x5 และ 25x10 ซึ่งช่วยให้สามารถสร้างภาพเมทริกซ์ได้ สัญญาณรบกวนสามารถแสดงเป็นคลื่นที่เคลื่อนที่ได้ สามารถเล่นเกมบนเมทริกซ์ได้เหมือนหน้าจอความละเอียดต่ำ การเลือกความยาวแถบแต่ละแถบ 25 พิกเซลเป็นเรื่องส่วนตัว และคุณสามารถเลือกสิ่งนี้เองและตั้งค่าในโค้ด สิ่งที่ฉันต้องการเหนือสิ่งอื่นใดคือความยืดหยุ่น ดังนั้นไม่ว่าเอฟเฟกต์กราฟิกใดก็ตามที่ฉันตัดสินใจเขียนโค้ดในภายหลัง ฉันสามารถประกอบ HW ในการจัดเรียงที่จำเป็นได้
ความเศร้า #2
ฉันมีความฝัน และต้องใช้หมึกนำไฟฟ้าเพื่อระบายสีวงจรต่อบนกระดาษแข็ง ซึ่งสามารถกดติดกับปลายแถบไฟ LED ที่ติดกันได้
ประโยชน์:
- ดูเท่สุดๆ และฉันสามารถใช้กระดาษแข็งสีต่างๆ ได้
- ฉันได้วาดวงจร
- การปรับแต่งขั้นสูงสุด คิดการจัดเรียงใหม่ เพียงแค่วาด
ข้อเสีย:
- มันไม่ได้ผล
- ไม่เลยสักนิด
- เหตุใดคุณจึงสามารถวาดสายไฟที่มีความแม่นยำเพียงพอด้วยมือ แล้วจึงใช้แรงกดที่แม่นยำและสม่ำเสมอเพียงพอกับวัสดุที่บีบอัดได้ เช่น กระดาษแข็ง
ฉันยืนยันว่าถ้ามันใช้งานได้มันคงจะเจ๋งจริงๆ และฉันเสียใจเพียงบางส่วนที่ใช้เวลา 2 ชั่วโมงที่จัดสรรให้กับความพยายามนี้
ทางออกที่แท้จริง
ฉันตัดสินใจใช้ระบบหัวต่อตัวผู้/ตัวเมียแบบเสียบได้ คล้ายกับที่ใช้เชื่อมต่อสาย Stripboard กับ Arduino โดยการวาง M/F ไว้ที่ปลายแต่ละด้าน คุณสามารถเลือกเสียบแถบแต่ละเส้นเข้าด้วยกันเพื่อสร้างแถบที่ไม่ได้เจียระไนเดิมขึ้นมาใหม่ได้ หรือสามารถใช้ขั้วต่อสายไฟแบบยืดหยุ่นระดับกลางได้ เพื่อให้สามารถพับแถบกลับเข้าหากันเพื่อสร้างเมทริกซ์หรือโครงแบบพิเศษอื่นๆ
- ตัด Led Strip ออกเป็นส่วนๆ ฉันเลือก 10 แถบยาว 25 เหลือ 50 LEDs สำรองสำหรับโครงการอื่น
- ประสานการเชื่อมต่อทองแดงแต่ละอันที่ปลายแต่ละด้านของแถบ ระวังอย่าให้พลาสติกละลาย ถ้าคุณซื้อแบบมีฝาปิดแบบกันน้ำ คุณจะต้องตัดส่วนบนเล็กๆ ที่ปลายแต่ละด้าน
- LEDStrip ของฉันมีตัวเชื่อมต่อ 4 ตัวที่ปลายแต่ละด้าน และ 10 แถบ ดังนั้นฉันจึงตัดส่วนหัว 10 ตัวผู้ 10 ตัวเมีย 10 ตัวต่อความยาว 4 ตัว สำหรับแต่ละแถบฉันบัดกรีตัวผู้กับปลายด้านหนึ่งและตัวเมียกับอีกด้านหนึ่ง ตรวจสอบให้แน่ใจว่าปลายแต่ละอันเป็นชาย/หญิง ซึ่งจะทำให้คุณสามารถเชื่อมต่อเข้ากับสายโซ่เดซี่ได้เหมือนแฟชั่น
- ทดสอบการเชื่อมต่อโดยเสียบแถบ 10 แถบเข้าด้วยกัน แก้ไขด้วยการบัดกรีเพิ่มเติมหากจำเป็น
- ตอนนี้เราต้องการขั้วต่อสายไฟ ซึ่งจะใช้เพื่อเชื่อมต่อแถบแต่ละเส้นเข้าด้วยกันเป็นการจัดเรียงที่ยืดหยุ่น ไม่ว่าระยะห่างจากกันหรือการประกอบเมทริกซ์ก็ตามคือเป้าหมาย ความยาวของพวกมันจะเป็นตัวกำหนดว่าคุณสามารถวางแต่ละส่วนต่อเนื่องของ LEDStrip ได้ไกลแค่ไหน ตัดลวดให้ยาวกว่าที่คุณต้องการเล็กน้อยเนื่องจากความยาวบางส่วนจะหายไปเมื่อเชื่อมต่อสายไฟ ตัดตัวผู้อีก 10 ตัว ส่วนหัวตัวเมีย 10 ท่อนที่มีความยาว 4. ตัดลวด 40 ชิ้น (ควรมีหลายสีและยืดหยุ่นได้) ดึงปลายแต่ละด้านออกและบัดกรีก่อน
- ในการสร้างการเชื่อมต่อแบบมีสาย ขั้นแรกให้ใช้สายไฟ 4 เส้น (ควรใช้สีที่แตกต่างกันเพื่อให้ระบุได้ว่าสายใดเชื่อมต่อกับพินใด) และประสานเข้ากับส่วนหัวของตัวผู้ จากนั้นคุณต้องการถักเปีย 4 เส้นนี้ ซึ่งจะทำให้การเดินสายเป็นไปอย่างเรียบร้อย เมื่อถักแล้ว (คุณภาพที่เราต้องการที่นี่เพียงพอแล้ว) คุณสามารถบัดกรีปลายอีกด้านเข้ากับขั้วต่อตัวเมียได้ ตรวจสอบให้แน่ใจว่าได้บัดกรีสายเดียวกันเข้ากับหมุดเดียวกัน หากลวดทั้งหมดของคุณมีสีเดียวกัน ให้ทำเครื่องหมายหรือใช้มัลติมิเตอร์เพื่อพิจารณาว่าเส้นลวดใดเป็นเส้นใด เนื่องจากหลังจากถักแล้วลวดจะไม่มีความชัดเจน ทำขั้นตอนนี้ซ้ำสำหรับการเชื่อมต่อแบบมีสายแต่ละครั้งที่คุณต้องการ
- ทดสอบการเชื่อมต่ออีกครั้ง โดยเชื่อมต่อแถบทั้งหมดด้วยการเชื่อมต่อแบบมีสาย ลองใช้การตั้งค่าขนาดคอนโซลและจัดเรียง LEDStrips ในรูปแบบเมทริกซ์ที่แตกต่างกัน เป็นการดีกว่าที่จะทำลายและระบุการเชื่อมต่อที่อ่อนแอก่อนหน้านี้มากกว่าในภายหลัง
ตอนนี้คุณมีแถบแยก 10 แถบ ซึ่งสามารถเชื่อมต่อโดยตรงเพื่อสร้างแถบยาวเดี่ยว หรือจัดเรียงใหม่ในรูปแบบเมทริกซ์
ขั้นตอนที่ 7: การกำหนดค่าและการตั้งค่า
เวอร์ชันล่าสุดสามารถพบได้ใน github ของฉันเสมอ: rs6713/leddisplay/ อย่าลังเลที่จะแยกมัน/ดาวน์โหลดและเล่น
ติดตั้ง Arduino IDE
ในกรณีอัศจรรย์ที่คุณทำแบบฝึกหัดนี้เสร็จสิ้นโดยที่ไม่มี Arduino Experience มาก่อน คุณสามารถดาวน์โหลด Arduino IDE ได้ที่นี่ เพียงติดตั้งและเปิดรหัสใน IDE เสียบบอร์ดผ่านสายเคเบิลเครื่องพิมพ์เข้ากับคอมพิวเตอร์ (คุณอาจต้องติดตั้งไดรเวอร์เพื่อให้คอมพิวเตอร์รู้จักบอร์ด Arduino แต่สิ่งนี้จะเกิดขึ้นโดยอัตโนมัติในครั้งแรกที่คุณเสียบ Arduino เข้ากับคอมพิวเตอร์ของคุณ) เลือกประเภทบอร์ด และเลือกพอร์ต COMM ที่ใช้งานอยู่ที่ Arduino เสียบอยู่
การกำหนดค่า
หากต้องการเปลี่ยนการตั้งค่าต่างๆ ของจอแสดงผล ไม่จำเป็นต้องมีความรู้ด้านการเขียนโปรแกรมที่ซับซ้อน
พื้นที่ในโปรแกรมที่ไวต่อการกำหนดค่าจะมีเครื่องหมาย /*** CONFIGURE ME ***/
คุณสามารถเปลี่ยน/กำหนดค่าพื้นที่ต่อไปนี้ของโปรแกรมได้อย่างง่ายดาย:
- หมุดที่ส่วนประกอบเชื่อมต่ออยู่
- ขนาดของแต่ละ LEDStrips
- จำนวนไฟ LED ทั้งหมดในแถบโดยรวม
- โหมดที่คุณต้องการอนุญาตสำหรับโปรแกรม
- ความยาวของเม็ดฝนสำหรับเอฟเฟกต์ฝน
หมุดและจำนวนไฟ LED ทั้งหมดมีความสำคัญในการทำให้โค้ดใช้งานได้กับรุ่นของวงจรอิเล็กทรอนิกส์ที่กล่าวถึงในขั้นตอนก่อนหน้านี้ นอกจากนี้ยังมีประโยชน์เพื่อให้คุณสามารถทดสอบโหมดการแสดงผลต่างๆ โดยการตั้งค่าระหว่างการเริ่มต้นโค้ด แทนที่จะต้องสร้างและเชื่อมต่อปุ่มควบคุม โหมด และการตั้งค่าทั้งหมด
ที่อัพโหลด
เมื่อคุณตั้งค่าหมายเลข PIN ที่ถูกต้องสำหรับส่วนประกอบ ขนาดสตริป และจำนวน LED แล้ว คุณสามารถอัปโหลดโปรแกรมไปยัง Arduino ได้โดยกดอัปโหลด หวังว่าคุณจะได้ทำสิ่งนี้ไปแล้วในขั้นตอนนี้แน่นอนในระหว่างการทดสอบ เสียบแหล่งจ่ายไฟภายนอก 5V และคุณน่าจะไปได้ดี
แก้จุดบกพร่อง
หาก LEDStrip/Console ไม่ทำงานตามที่คาดไว้ อาจมีสาเหตุหลายประการ
LEDStrip ปิดทั้งหมด/บางส่วน:
- ตรวจสอบว่าสวิตช์ LEDStrip ถูกตั้งค่าเป็นเปิด
- หากคุณต่อแถบไฟออก และส่วนปลายหลายส่วนสุดท้ายของ LEDStrip ไม่สว่าง อาจเป็นไปได้ว่าเกิดจากการเชื่อมต่อที่ผิดพลาด ตรวจสอบการเชื่อมต่อของคุณเพื่อหาข้อต่อแห้งและตัวเชื่อมต่อ ลองเปลี่ยนลำดับของแถบ และหากเป็นการเชื่อมต่อแบบมีสาย ให้ลองเปลี่ยนการเชื่อมต่อแบบมีสายหนึ่งเป็นอย่างอื่น
ความสว่างของหน้าจอ LCD ต่ำ/ สี LEDStrip ผิด:
- ตรวจสอบว่าการเชื่อมต่อสายไฟภายนอกเปิดอยู่/เชื่อมต่ออย่างถูกต้อง เมื่อพลังงานเหลือน้อย ไฟ LED RGB บางสีจะสว่างขึ้นอย่างสม่ำเสมอและหน้าจอ LCD จะพยายามให้แสงสว่างในตัวเอง
- สีอาจผิดได้หากกำหนดขนาดเช่น โปรแกรม 250x1 ไม่ได้สะท้อนการจัดเรียง LED ในชีวิตจริง
- สถานการณ์กรณีที่เลวร้ายที่สุดคุณสามารถเปลี่ยนโปรแกรมเพื่อลดจำนวนแถบสว่าง
ความน่ากลัวแบบสุ่ม
วิธีสุดท้ายคือการแสดงความคิดเห็น Serial.prints ถูกทิ้งไว้ตลอดทั้งโค้ด การไม่ใส่ความคิดเห็นจะให้ข้อเสนอแนะเกี่ยวกับส่วนประกอบต่างๆ และสถานะของโปรแกรมภายใน
สถานการณ์ที่น่าจะเป็นไปได้คืออินพุตที่ควรจะต่อสายดิน ถูกตัดการเชื่อมต่อ และปล่อยทิ้งไว้ ซึ่งจะสร้างทริกเกอร์เหตุการณ์ที่ผิดพลาด (การอ่านพินที่สั่นแบบสุ่มระหว่าง FALSE และ TRUE) และพฤติกรรมของโปรแกรมที่คาดเดาไม่ได้
การปรับเปลี่ยนโปรแกรม
ส่วนเพิ่มเติมของการเปลี่ยนแปลงที่เป็นไปได้มีเครื่องหมาย /** CHANGE ME **/
พื้นที่เหล่านี้เป็นตัวอย่างสำคัญที่คุณสามารถเพิ่มการปรับแต่งของคุณเองได้:
- เพิ่มตัวเลือกจานสีใหม่
- เพิ่มเอฟเฟกต์ใหม่เช่น ระยับ
- เพิ่มเกมใหม่
นี่เป็นเพียงคำแนะนำเท่านั้น คุณสามารถเปลี่ยนรหัสได้ตามต้องการ
ขั้นตอนที่ 8: ส่วนขยาย 2: OpenProcessing
** ในขณะที่เขียน คุณลักษณะนี้ยังคงไม่มีการดำเนินการ ดังนั้นขั้นตอนนี้มีขึ้นเพื่อเน้นแผน/การแสดงออกในอนาคตของโครงการนี้ และเพื่อเน้นความสำคัญของการขยาย LEDStrip เพื่อให้สามารถแสดงเมทริกซ์ **
เหตุผลหนึ่งที่ฉันตื่นเต้นมากที่การขยาย LEDStrip ทำให้สามารถจัดเรียงเป็นเมทริกซ์ได้ ก็คือการมีหน้าจอเปิดโอกาสมากมายในการแมปการแสดงภาพ 2D จากซอฟต์แวร์อื่นๆ ไปยัง Arduino HW
OpenProcessing เป็นชุมชนของกราฟิกเชิงโต้ตอบ 2D ตามภาษาการประมวลผล ด้วยการใช้ฟังก์ชัน Serial Print อย่างง่าย รูปลักษณ์ของแต่ละเฟรมสามารถส่งผ่านแบบพิกเซลต่อพิกเซลไปยัง Arduino ดังนั้นจึงอาจมีโหมดอนาคตสำหรับคอนโซล ซึ่ง Arduino เพียงแค่ฟังการเชื่อมต่อแบบอนุกรมและเพียงแค่อัปเดตเฟรม LED เมทริกซ์ทีละเฟรมตามแอนิเมชั่นที่ระบุโดยโปรแกรมการประมวลผล มีข้อดีหลายประการในการที่การประมวลผลเป็นภาษาที่เชี่ยวชาญด้านทัศนศิลป์และเรียนรู้ได้ง่าย ทำให้สร้างภาพศิลปะที่ซับซ้อนได้อย่างรวดเร็ว นอกจากนี้ยังย้ายหน่วยความจำและความซับซ้อนในการประมวลผลไปยังคอมพิวเตอร์ของคุณด้วย Arduino ที่มีหน่วยความจำ/การประมวลผลที่จำกัดโดยเปรียบเทียบเพียงแค่ต้องจัดการข้อมูลที่ส่งผ่านซีเรียลเท่านั้น
ด้วยการเอาท์ซอร์สการแสดงภาพ LED Display ของคุณไปยังไลบรารี 2D Graphic Effects ที่มีอยู่แล้ว ความเป็นไปได้ไม่มีที่สิ้นสุด ตรวจสอบแคตตาล็อก openprocessing.org เพื่อหาแรงบันดาลใจ
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
วิธีใช้ Neopixel Ws2812 LED หรือ LED STRIP หรือ Led Ring กับ Arduino: 4 ขั้นตอน
วิธีใช้ Neopixel Ws2812 LED หรือ LED STRIP หรือ Led Ring กับ Arduino: สวัสดีทุกคนเนื่องจาก Neopixel led Strip เป็นที่นิยมอย่างมากและเรียกอีกอย่างว่า ws2812 led strip เช่นกัน พวกเขาเป็นที่นิยมอย่างมากเพราะในแถบนำเหล่านี้เราสามารถระบุแต่ละ LED แยกจากกัน ซึ่งหมายความว่าหากคุณต้องการให้ไฟ LED สองสามดวงเรืองแสงเป็นสีเดียว
ESP8266 RGB LED STRIP WIFI ควบคุม - NODEMCU เป็นรีโมท IR สำหรับ Led Strip ที่ควบคุมผ่าน Wifi - RGB LED STRIP การควบคุมสมาร์ทโฟน: 4 ขั้นตอน
ESP8266 RGB LED STRIP WIFI ควบคุม | NODEMCU เป็นรีโมท IR สำหรับ Led Strip ที่ควบคุมผ่าน Wifi | การควบคุมสมาร์ทโฟน RGB LED STRIP: สวัสดีทุกคนในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้ nodemcu หรือ esp8266 เป็นรีโมท IR เพื่อควบคุมแถบ LED RGB และ Nodemcu จะถูกควบคุมโดยสมาร์ทโฟนผ่าน wifi โดยพื้นฐานแล้ว คุณสามารถควบคุม RGB LED STRIP ได้ด้วยสมาร์ทโฟนของคุณ