สารบัญ:

โคมไฟ LED แบบโต้ตอบ - โครงสร้าง Tensegrity + Arduino: 5 ขั้นตอน (พร้อมรูปภาพ)
โคมไฟ LED แบบโต้ตอบ - โครงสร้าง Tensegrity + Arduino: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: โคมไฟ LED แบบโต้ตอบ - โครงสร้าง Tensegrity + Arduino: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: โคมไฟ LED แบบโต้ตอบ - โครงสร้าง Tensegrity + Arduino: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: วิธีเช็คซ่อมหลอดไฟLEDทรงใบพัด ด้วยงบ30บาท ซ่อมง่ายทำเองได้เลย (เปลี่ยนคาปาซิเตอร์บนบอร์ดจ่ายไฟ) 2024, กรกฎาคม
Anonim
โคมไฟ LED แบบโต้ตอบ | โครงสร้าง Tensegrity + Arduino
โคมไฟ LED แบบโต้ตอบ | โครงสร้าง Tensegrity + Arduino
โคมไฟ LED แบบโต้ตอบ | โครงสร้าง Tensegrity + Arduino
โคมไฟ LED แบบโต้ตอบ | โครงสร้าง Tensegrity + Arduino
โคมไฟ LED แบบโต้ตอบ | โครงสร้าง Tensegrity + Arduino
โคมไฟ LED แบบโต้ตอบ | โครงสร้าง Tensegrity + Arduino

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

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

รูปทรง icosahedral ให้ระนาบหน้า 20 แบบ และโครงสร้าง tensegrity ให้จุดยืนเพิ่มเติม 6 จุด ซึ่งให้สีที่เป็นไปได้ทั้งหมด 26 สีเมื่อโคมไฟวางบนพื้นผิวเรียบ ตัวเลขนี้จะเพิ่มขึ้นเมื่อคุณหมุนหลอดไฟในอากาศ

ระบบถูกควบคุมโดย Pro Trinket ที่เชื่อมต่อกับมาตรความเร่งแบบสามแกน แสงมาจากแถบ LED RGBW ซึ่งสามารถควบคุมสีและค่าความสว่างสีขาวแยกกันได้ วงจรทั้งหมด รวมทั้งไมโครโปรเซสเซอร์ เซ็นเซอร์ และระบบไฟทำงานที่ 5v. ในการเปิดเครื่อง จำเป็นต้องใช้แหล่งจ่ายสูงถึง 10A

รายการองค์ประกอบหลักที่ใช้ในหลอดไฟมีดังต่อไปนี้:

- Adafruit Pro Trinket - 5V

- Adafruit LIS3DH มาตรความเร่งสามแกน

- Adafruit NeoPixel Digital RGBW LED Strip - PCB สีขาว 60 LED/m

- 5V 10A แหล่งจ่ายไฟสลับ

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

ฉันอยากจะขอบคุณชุมชน LACUNA LAB สำหรับความช่วยเหลือ แนวคิด และข้อเสนอแนะตลอดการพัฒนาโครงการ

สามารถติดตามผลงานได้ที่:action-io / tumblraction-script / github

ขั้นตอนที่ 1: ไอเดีย

ความคิด
ความคิด
ความคิด
ความคิด
ความคิด
ความคิด

โครงการนี้เป็นผลมาจากความคิดหลายอย่างที่ฉันได้เล่นด้วยในหัวมาระยะหนึ่งแล้ว

ตั้งแต่ฉันเริ่ม แนวคิดก็เปลี่ยนไป โปรเจ็กต์แรกเริ่มมีวิวัฒนาการและกลายเป็นรูปจริง

วิธีแรกคือความสนใจในรูปทรงเรขาคณิตเป็นวิธีการโต้ตอบ เนื่องจากการออกแบบ หน้าหลายเหลี่ยมหลายเหลี่ยมของหลอดไฟนี้จึงทำหน้าที่เป็นวิธีการป้อนข้อมูล

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

ความเป็นไปได้อีกประการหนึ่งคือการมีหินอ่อนภายในหรือลูกบอลกดปุ่มหรือเซ็นเซอร์ต่าง ๆ และสร้างอินพุตแบบสุ่มเมื่อชิ้นส่วนเคลื่อนที่

โครงสร้าง tensegrity เกิดขึ้นในภายหลัง

วิธีการก่อสร้างนี้ทำให้ฉันหลงใหล: วิธีที่ส่วนต่าง ๆ ของโครงสร้างรักษาสมดุลซึ่งกันและกัน เป็นที่ชื่นชอบทางสายตามาก โครงสร้างทั้งหมดมีความสมดุลในตัวเอง ชิ้นส่วนไม่สัมผัสกันโดยตรง เป็นผลรวมของความตึงเครียดทั้งหมดที่สร้างชิ้นงาน มันวิเศษมาก!

เมื่อการออกแบบเริ่มต้นเปลี่ยนไป โครงการก้าวไปข้างหน้า

ขั้นตอนที่ 2: โครงสร้าง

โครงสร้าง
โครงสร้าง
โครงสร้าง
โครงสร้าง
โครงสร้าง
โครงสร้าง
โครงสร้าง
โครงสร้าง

ดังที่ได้กล่าวไว้ก่อนหน้านี้ รุ่นแรกนี้ทำจากวัสดุรีไซเคิลที่ตั้งใจจะทิ้ง

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

อย่างไรก็ตาม การสร้างโครงสร้างนั้นค่อนข้างง่ายและขั้นตอนก็เหมือนกับใน tensegriry ใดๆ

สิ่งที่ฉันทำกับกระดานคือนำพวกมันมารวมกันเป็นกลุ่มละสองคน ทำ "แซนวิช" กับสเปเซอร์สีทอง โดยเว้นช่องว่างที่แสงจะส่องผ่าน

ขนาดของโปรเจ็กต์นั้นแปรผันได้อย่างสมบูรณ์และจะขึ้นอยู่กับขนาดของโครงสร้างที่คุณต้องการสร้าง แท่งไม้จากภาพโครงการนี้ ยาว 38 ซม. และกว้าง 38 มม. ระยะห่างระหว่างกระดาน 13 มม.

แผ่นไม้ถูกตัดเหมือนกัน ขัด (เพื่อเอาชั้นสีเก่าออก) และหลังจากนั้นก็เจาะรูที่ปลายทั้งสองข้าง

ต่อไปฉันทาสีกระดานด้วยวานิชสีเข้มแบบชนบท ในการต่อชิ้นส่วน ฉันใช้แกนเกลียวขนาด 5 มม. ตัดเป็นชิ้นขนาด 5 ซม. และ 5 มม. โดยมีปมแต่ละด้าน

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

ขั้นตอนที่ 3: อุปกรณ์อิเล็กทรอนิกส์และไฟ

เครื่องใช้ไฟฟ้าและไฟ
เครื่องใช้ไฟฟ้าและไฟ
เครื่องใช้ไฟฟ้าและไฟ
เครื่องใช้ไฟฟ้าและไฟ
เครื่องใช้ไฟฟ้าและไฟ
เครื่องใช้ไฟฟ้าและไฟ
เครื่องใช้ไฟฟ้าและไฟ
เครื่องใช้ไฟฟ้าและไฟ

การกำหนดค่าของส่วนประกอบอิเล็กทรอนิกส์ได้รับการออกแบบมาเพื่อรักษาแรงดันไฟฟ้าเท่าเดิม ทั้งลอจิกและการป้อนทั่วทั้งระบบโดยใช้ 5v

ระบบถูกควบคุมโดย Pro Trinket ที่เชื่อมต่อกับมาตรความเร่งแบบสามแกน แสงมาจากแถบ LED RGBW ซึ่งสามารถควบคุมสีและค่าความสว่างสีขาวแยกกันได้ วงจรทั้งหมด รวมทั้งไมโครโปรเซสเซอร์ เซ็นเซอร์ และระบบไฟทำงานที่ 5v. ในการเปิดเครื่อง จำเป็นต้องใช้แหล่งจ่ายสูงถึง 10A

Pro Trinket 5V ใช้ชิป Atmega328P ซึ่งเป็นชิปหลักตัวเดียวกันใน Arduino UNO นอกจากนี้ยังมีหมุดเกือบเหมือนกัน ดังนั้นจึงมีประโยชน์มากเมื่อคุณต้องการนำโครงการ UNO ของคุณไปสู่พื้นที่ย่อขนาด

LIS3DH เป็นเซ็นเซอร์อเนกประสงค์ สามารถกำหนดค่าใหม่ให้อ่านค่าเป็น +-2g/4g/8g/16g และยังมีการตรวจจับการแตะ การแตะสองครั้ง การวางแนว และการตรวจจับการตกอย่างอิสระ

NeoPixel RGBW LED Strip สามารถจัดการสีของเฉดสีและความเข้มของสีขาวแยกกันได้ ด้วย LED สีขาวโดยเฉพาะ คุณไม่จำเป็นต้อง 'ทำให้สีทั้งหมดอิ่มตัวเพื่อให้มีแสงสีขาว มันยังทำให้คุณขาวบริสุทธิ์และสว่างขึ้นอีกด้วย และยังช่วยประหยัดพลังงานอีกด้วย

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

ฉันเชื่อมต่อเครื่องประดับเล็ก ๆ กับมาตรความเร่งโดยโยน SPI ด้วยการกำหนดค่าเริ่มต้น ซึ่งหมายความว่าเชื่อมต่อ Vin กับแหล่งจ่ายไฟ 5V เชื่อมต่อ GND กับกราวด์พลังงาน/ข้อมูลทั่วไป เชื่อมต่อพิน SCL (SCK) กับ Digital #13 เชื่อมต่อพิน SDO กับ Digital #12 เชื่อมต่อพิน SDA (SDI) กับ Digital #11 เชื่อมต่อ CS pin Digital #10

แถบไฟ LED ถูกควบคุมโดยขาเดียวซึ่งกำลังไปที่ #6 และกราวด์และ 5v ไปที่อะแดปเตอร์จ่ายไฟโดยตรง

คุณจะพบเอกสารทั้งหมดที่คุณอาจต้องการ มีรายละเอียดมากขึ้นและอธิบายได้ดีขึ้นในหน้า adafruit

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

หลอดไฟมีแถบไฟ 6 แถบ แต่แถบ LED มาในแถบยาวเส้นเดียว แถบ LED ถูกตัดเป็นชิ้นขนาด 30 ซม. (18 LEDS) แล้วเชื่อมด้วยหมุด 3 ตัวผู้และตัวเมียเพื่อเชื่อมต่อกับส่วนที่เหลือของวงจรแบบแยกส่วน

สำหรับโครงการนี้ ฉันใช้แหล่งจ่ายไฟ 5v - 10A แต่ทั้งนี้ขึ้นอยู่กับจำนวนไฟ LED ที่คุณต้องการ คุณจะต้องคำนวณกระแสไฟที่จำเป็นสำหรับการป้อนระบบ

ตลอดเอกสารประกอบของชิ้นงาน คุณจะเห็นว่า LED มีการดึง 80mA ต่อ LED ฉันใช้ไฟ LED ทั้งหมด 108 ดวง

ขั้นตอนที่ 4: รหัส

รหัส
รหัส

โครงการทำงานค่อนข้างง่าย มาตรความเร่งให้ข้อมูลการเคลื่อนที่บนแกน x, y, z ตามการวางแนว ค่า RGB ของ LED จะได้รับการอัปเดต

งานแบ่งออกเป็นขั้นตอนต่อไปนี้

  • อ่านจากเซ็นเซอร์เพียงใช้ api
  • โดยตรีโกณมิติ แก้ค่าของ "ม้วนและพิทช์" คุณสามารถหาข้อมูลเพิ่มเติมได้ในเอกสารนี้โดย Mark Pedley
  • รับสีที่เกี่ยวข้องซึ่งสัมพันธ์กับค่าการหมุนเพื่อที่เราจะเปลี่ยนเป็นค่า RGB 0-360 โดยใช้ฟังก์ชันการแปลง HSL - RGB ค่าของระยะห่างจะใช้ในสเกลต่างๆ เพื่อควบคุมความเข้มของแสงสีขาวและความอิ่มตัวของสี ซีกตรงข้ามของทรงกลมตัวเลือกสีเป็นสีขาวทั้งหมด
  • อัปเดตบัฟเฟอร์ของไฟที่เก็บข้อมูลของสี LED แต่ละสี ขึ้นอยู่กับข้อมูลนี้ ตัวควบคุมบัฟเฟอร์จะสร้างภาพเคลื่อนไหวหรือจะตอบสนองด้วยสีเสริม
  • สุดท้ายแสดงสีและรีเฟรช LEDs

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

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

จากนั้นฉันก็คิดที่จะกำหนดสีเสริมให้กับโทนสีที่เลือกอยู่ในปัจจุบัน

ดังนั้น ซีกโลกหนึ่งจึงเลือกค่าสีแบบเอกรงค์ของวงล้อจากการส่องสว่าง 50% ความอิ่มตัวของสี 90 ~ 100% ในขณะเดียวกัน อีกด้านหนึ่ง เลือกการไล่ระดับสีจากตำแหน่งสีเดียวกัน แต่เพิ่มสีเสริมที่อีกด้านหนึ่งของการไล่ระดับสี

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

ฉันยังคงทำงานเกี่ยวกับโค้ดและเพิ่มคุณสมบัติใหม่ๆ และปรับแต่งแอนิเมชั่น

คุณสามารถตรวจสอบรหัสเวอร์ชันล่าสุดได้ในบัญชี GitHub ของฉัน

ขั้นตอนที่ 5: การสรุป

ห่อ
ห่อ
ห่อ
ห่อ
ห่อ
ห่อ
ห่อ
ห่อ

การประกอบขั้นสุดท้ายนั้นค่อนข้างง่าย ติดกาวที่ครอบซิลิโคนของแถบ LED ด้วยกาวอีพ็อกซี่สองส่วนประกอบเข้ากับแท่งและเชื่อมต่อ 6 ส่วนในชุดที่หนึ่งด้านหลังอีกชิ้นหนึ่ง

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

ข้อสังเกตและการปรับปรุง

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

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

ฉันยังคงรอวิธีซ่อนสายไฟตามโครงสร้าง และทำงานเป็นการใช้พลังงานอย่างมีประสิทธิภาพมากขึ้น เพื่อลดการใช้จ่ายเมื่อหลอดไฟทำงานเป็นเวลานานและไม่เปลี่ยนแสง

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

แนะนำ: