สารบัญ:
- ขั้นตอนที่ 1: รายการวัสดุสิ้นเปลือง
- ขั้นตอนที่ 2: การออกแบบ Geodesic Dome
- ขั้นตอนที่ 3: การสร้างโดมด้วยสตรัทและคอนเนคเตอร์
- ขั้นตอนที่ 4: การตัดด้วยเลเซอร์และติดตั้งเพลทฐาน
- ขั้นตอนที่ 5: ภาพรวมอิเล็กทรอนิกส์
- ขั้นตอนที่ 6: การติดตั้ง LED เข้ากับ Dome
- ขั้นตอนที่ 7: การออกแบบและติดตั้งเซนเซอร์เมาท์
- ขั้นตอนที่ 8: เอาต์พุตเซ็นเซอร์มัลติเพล็กซ์
- ขั้นตอนที่ 9: กระจายแสงด้วยอะคริลิก
- ขั้นตอนที่ 10: สร้างเพลงด้วยโดมโดยใช้ MIDI
- ขั้นตอนที่ 11: เปิดเครื่อง Dome
- ขั้นตอนที่ 12: ฐานโดมทรงกลม
- ขั้นตอนที่ 13: ฐานโดมเพนตากอน
- ขั้นตอนที่ 14: การเขียนโปรแกรม Dome
- ขั้นตอนที่ 15: รูปภาพของ Dome ที่เสร็จสมบูรณ์
วีดีโอ: Interactive Geodesic LED Dome: 15 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ฉันสร้างโดม geodesic ซึ่งประกอบด้วยสามเหลี่ยม 120 รูปพร้อมไฟ LED และเซ็นเซอร์ที่แต่ละรูปสามเหลี่ยม LED แต่ละตัวสามารถระบุได้ทีละตัว และเซ็นเซอร์แต่ละตัวได้รับการปรับจูนโดยเฉพาะสำหรับสามเหลี่ยมเดียว โดมถูกตั้งโปรแกรมด้วย Arduino เพื่อให้สว่างขึ้นและสร้างสัญญาณ MIDI ขึ้นอยู่กับสามเหลี่ยมที่คุณวางมือ
ฉันออกแบบโดมให้เป็นจอแสดงผลแสนสนุกที่ทำให้ผู้คนสนใจแสง อิเล็กทรอนิกส์ และเสียง เนื่องจากโดมแบ่งออกเป็นห้าส่วนอย่างสวยงาม ฉันจึงออกแบบโดมให้มีเอาต์พุต MIDI แยกกันห้าช่อง ซึ่งแต่ละช่องสามารถให้เสียงที่แตกต่างกันได้ ทำให้โดมเป็นเครื่องดนตรีขนาดยักษ์ เหมาะสำหรับการเล่นเพลงพร้อมกันหลายคน นอกจากเล่นดนตรีแล้ว ฉันยังตั้งโปรแกรมโดมสำหรับการแสดงแสงสีและเล่นเพลงไซม่อนและโป่งอีกด้วย โครงสร้างสุดท้ายมีเส้นผ่านศูนย์กลางมากกว่าหนึ่งเมตรเล็กน้อยและสูง 70 ซม. และส่วนใหญ่สร้างด้วยไม้ อะครีลิค และชิ้นส่วนที่พิมพ์ 3 มิติ
มี Instructables ที่ยอดเยี่ยมมากมายบนโต๊ะ LED และลูกบาศก์ที่เป็นแรงบันดาลใจให้ฉันเริ่มโครงการนี้ อย่างไรก็ตาม ฉันต้องการลองจัดเรียง LED ในรูปทรงอื่น ฉันไม่สามารถนึกถึงโครงสร้างที่ดีกว่าสำหรับโครงการได้มากไปกว่าโดมที่มีรูปทรงโค้งมน ซึ่งได้รับการบันทึกไว้อย่างดีใน Instructables ดังนั้น โปรเจ็กต์นี้จึงเป็นการรีมิกซ์/แมชอัปของตาราง LED และโดมเรขาคณิต ด้านล่างนี้คือลิงค์ไปยังตาราง LED และคำแนะนำโดม geodesic ที่ฉันเช็คเอาท์เมื่อเริ่มต้นโครงการ
โต๊ะ LED และลูกบาศก์:
www.instructables.com/id/RGB-LED-Pixel-Touc…
www.instructables.com/id/Touch-LED-Table-Re…
www.instructables.com/id/Led-Cube-8x8x8/
www.instructables.com/id/500-LED-Pixel-RGB-…
โดมเนื้อที่:
www.instructables.com/id/Folding-Geodesic-D…
www.instructables.com/id/Geodesic-dome-kit/
ขั้นตอนที่ 1: รายการวัสดุสิ้นเปลือง
วัสดุ:
1. ไม้สำหรับค้ำฐานโดมและโคนโดม (จำนวนขึ้นอยู่กับชนิดและขนาดของโดม)
2. แถบ LED แอดเดรส (16.4ft/5m แอดเดรสสีพิกเซล LED Strip 160leds Ws2801 Dc5v)
3. Arduino Uno (Atmega328 - ประกอบ)
4. แผ่นต้นแบบ (Penta Angel Double-Side Prototype PCB Universal (7x9cm))
5. อะครีลิคสำหรับกระจายไฟ LED (Cast Acrylic Sheet, Clear, 12" x 12" x 0.118" Size)
6. แหล่งจ่ายไฟ (Aiposen 110/220V to DC12V 30A 360W Switch Power Supply Driver)
7. ตัวแปลงบั๊กสำหรับ Arduino (RioRand LM2596 DC-DC Buck Converter 1.23V-30V)
8. ตัวแปลงบั๊กสำหรับ LED และเซ็นเซอร์ (DROK Mini Electric Buck Voltage Converter 15A)
9. 120 เซ็นเซอร์ IR (โมดูลเซ็นเซอร์หลีกเลี่ยงอุปสรรคอินฟราเรด)
10. มัลติเพล็กเซอร์ 16 ช่องสัญญาณ 5 ช่อง (Analog/Digital MUX Breakout - CD74HC4067)
11. มัลติเพล็กเซอร์ 8 ช่อง 6 ช่อง (Multiplexer Breakout - 8 Channel (74HC4051))
12. มัลติเพล็กเซอร์ 2 ช่อง 5 ช่อง (MAX4544CPA+)
13. ลวดพันลวด (PCB Solder 0.25mm Tin Plated Copper Cord Dia Wire-wrapping Wire 305M 30AWG Red)
14. ลวดเชื่อม (Solid Core, 22 AWG)
15. หัวเข็มหมุด (Gikfun 1 x 40 Pin 2.54mm Single Row Breakaway Male Pin Header)
16. แจ็ค MIDI ห้าตัว (แจ็ค MIDI ที่เป็นมิตรต่อเขียงหั่นขนม (5-pin DIN))
17. ตัวต้านทาน 220ohm 10 ตัวสำหรับแจ็ค MIDI
18. ตัวเว้นระยะสำหรับติดตั้งอุปกรณ์อิเล็กทรอนิกส์เข้ากับโดม (Stand-off Spacer Hex M3 ตัวผู้ x M3 ตัวเมีย)
19. ตัวต่อเกลียวสำหรับต่อขาตั้งเข้ากับไม้ (E-Z Lok Threaded Insert, Brass, Knife Thread)
20. Epoxy หรือ Gorilla Superglue
21. เทปพันสายไฟ
22. ประสาน
เครื่องมือ:
1. สถานีบัดกรี
2. สว่านไฟฟ้า
3. เลื่อยวงเดือน
4. เครื่องขัดวงโคจร
5. จิ๊กซอว์
6. เลื่อยวงเดือน
7. ไม้โปรแทรกเตอร์
8. เครื่องพิมพ์ 3 มิติ
9. เครื่องตัดลวด
10. เครื่องมือพันลวด
11. เครื่องตัดเลเซอร์สำหรับตัดเพลท LED (อุปกรณ์เสริม)
12. CNC shopbot สำหรับฐานโดม (อุปกรณ์เสริม)
ขั้นตอนที่ 2: การออกแบบ Geodesic Dome
ดังที่ได้กล่าวไว้ในบทนำ มีแหล่งข้อมูลออนไลน์หลายแห่งสำหรับสร้างโดมวัดพิกัดของคุณเอง ไซต์เหล่านี้มีเครื่องคำนวณโดมที่กำหนดความยาวของแต่ละด้าน (เช่น สตรัท) และจำนวนตัวเชื่อมต่อที่จำเป็นสำหรับโดมประเภทใดก็ตามที่คุณต้องการสร้าง ความซับซ้อนของโดม geodesic (เช่น ความหนาแน่นของรูปสามเหลี่ยม) ถูกกำหนดโดยคลาส (1V, 2V, 3V และอื่น ๆ) โดยความซับซ้อนที่สูงขึ้นจะกลายเป็นการประมาณที่ดีขึ้นของพื้นผิวทรงกลมที่สมบูรณ์แบบ ในการสร้างโดมของคุณเอง ก่อนอื่นคุณต้องเลือกเส้นผ่านศูนย์กลางและประเภทของโดม
ฉันใช้ไซต์ชื่อ Domerama เพื่อช่วยฉันออกแบบโดม 4V ที่ถูกตัดให้เหลือ 5/12 ของทรงกลมที่มีรัศมี 40 ซม. สำหรับโดมประเภทนี้ มีสตรัทที่มีความยาวต่างกัน 6 แบบ:
30 X “A” - 8.9cm
30 X “B” - 10.4cm
50 X “C” - 12.4 ซม.
40 X “D” - 12.5cm
20 X “E” - 13.0cm
20 X “F” - 13.2 ซม.
นั่นคือทั้งหมด 190 สตรัทที่รวมวัสดุได้สูงถึง 2223 ซม. (73 ฟุต) ฉันใช้ไม้สนขนาด 1x3 (3/4" × 2-1 / 2") สำหรับเสาในโดมนี้ ในการเชื่อมต่อสตรัท ฉันออกแบบและเชื่อมต่อที่พิมพ์ 3 มิติโดยใช้ Autocad ไฟล์ STL สามารถดาวน์โหลดได้เมื่อสิ้นสุดขั้นตอนนี้ จำนวนขั้วต่อสำหรับโดม 4V 5/12 คือ:
20 X 4 คอนเนคเตอร์
6 X 5 คอนเนคเตอร์
ขั้วต่อ 45 X 6 ตัว
ในขั้นตอนต่อไป ฉันจะอธิบายว่าโดมนี้สร้างด้วยเสาไม้และตัวเชื่อมต่อที่พิมพ์ 3 มิติที่ฉันออกแบบได้อย่างไร
ขั้นตอนที่ 3: การสร้างโดมด้วยสตรัทและคอนเนคเตอร์
โดยใช้การคำนวณจาก Domerama สำหรับโดม 4V 5/12 ฉันตัดสตรัทโดยใช้เลื่อยวงเดือน สตรัท 190 ชิ้นถูกติดฉลากและใส่ในกล่องหลังการตัด ขั้วต่อ 71 ตัว (ขั้วต่อสี่ตัว 20 ตัว ขั้วต่อ 5 ตัว 6 ตัว และขั้วต่อ 6 ตัว 45 ตัว) ถูกพิมพ์ 3 มิติโดยใช้ Makerbot สตรัทไม้ถูกเสียบเข้ากับคอนเนคเตอร์ตามแผนภาพที่สร้างโดย Domerama ฉันเริ่มการก่อสร้างจากด้านบนและเคลื่อนออกนอกแนวรัศมี
หลังจากเชื่อมต่อสตรัททั้งหมดแล้ว ฉันก็ถอดสตรัทออกทีละอันและเพิ่มอีพ็อกซี่ให้กับไม้และคอนเนคเตอร์ ตัวเชื่อมต่อได้รับการออกแบบให้มีความยืดหยุ่นในการเชื่อมต่อโครงสร้าง จึงต้องตรวจสอบความสมมาตรของโดมก่อนเพิ่มอีพ็อกซี่ใดๆ
ขั้นตอนที่ 4: การตัดด้วยเลเซอร์และติดตั้งเพลทฐาน
เมื่อสร้างโครงกระดูกของโดมแล้ว ก็ถึงเวลาที่จะตัดแผ่นฐานสามเหลี่ยม แผ่นฐานเหล่านี้ติดอยู่ที่ด้านล่างของสตรัท และใช้สำหรับยึดไฟ LED เข้ากับโดม ตอนแรกฉันตัดแผ่นฐานออกจากไม้อัดหนา 5 มม. (3/16”) โดยการวัดรูปสามเหลี่ยมห้ารูปที่อยู่บนโดม: AAB (30 รูปสามเหลี่ยม), BCC (25 รูปสามเหลี่ยม), DDE (20 รูปสามเหลี่ยม), CDF (40 รูปสามเหลี่ยม) และ EEE (5 สามเหลี่ยม) ขนาดของแต่ละด้านและรูปร่างของสามเหลี่ยมถูกกำหนดโดยใช้เครื่องคำนวณแบบโดม (Domerama) และรูปทรงเรขาคณิตบางส่วน หลังจากตัดแผ่นฐานทดสอบด้วยจิ๊กซอว์ ฉันวาดการออกแบบสามเหลี่ยมโดยใช้ Coral Draw และตัดแผ่นฐานที่เหลือด้วยเครื่องตัดเลเซอร์ (เร็วกว่ามาก!) หากคุณไม่มีเครื่องตัดเลเซอร์ คุณสามารถวาดแผ่นฐานลงบนไม้อัดโดยใช้ไม้บรรทัดและไม้โปรแทรกเตอร์ แล้วตัดทั้งหมดด้วยจิ๊กซอว์ เมื่อแผ่นฐานถูกตัดออก โดมจะพลิกกลับด้านและติดแผ่นเข้ากับโดมโดยใช้กาวไม้
ขั้นตอนที่ 5: ภาพรวมอิเล็กทรอนิกส์
แสดงในรูปด้านบนเป็นแผนผังของอุปกรณ์อิเล็กทรอนิกส์สำหรับโดม Arduino Uno ใช้สำหรับเขียนและอ่านสัญญาณสำหรับโดม ในการทำให้โดมสว่างขึ้น แถบ LED RGB จะวิ่งอยู่เหนือโดม เพื่อให้ LED อยู่ในตำแหน่งที่แต่ละรูปสามเหลี่ยม 120 รูปแต่ละรูป สำหรับข้อมูลเกี่ยวกับวิธีการทำงานของแถบ LED โปรดดูคำแนะนำนี้ LED แต่ละตัวสามารถระบุแยกกันได้โดยใช้ Arduino ซึ่งสร้างข้อมูลอนุกรมและสัญญาณนาฬิกาสำหรับแถบ (ดูพิน A0 และ A1 ในแผนผัง) ด้วยแถบไฟและสัญญาณทั้งสองนี้เพียงอย่างเดียว คุณสามารถมีโดมไฟที่ยอดเยี่ยมได้ มีวิธีอื่นในการเขียนสัญญาณสำหรับ LED จำนวนมากจาก Arduino เช่น Charlieplexing และ shift register
ในการโต้ตอบกับโดม ฉันได้ตั้งค่าเซ็นเซอร์ IR ไว้เหนือ LED แต่ละดวง เซ็นเซอร์เหล่านี้ใช้เพื่อตรวจจับเมื่อมือของใครบางคนอยู่ใกล้กับรูปสามเหลี่ยมบนโดม เนื่องจากสามเหลี่ยมแต่ละรูปบนโดมมีเซ็นเซอร์ IR ของตัวเอง และมี 120 สามเหลี่ยม คุณจะต้องทำการมัลติเพล็กซ์ก่อน Arduino ฉันตัดสินใจใช้มัลติเพล็กเซอร์ 24 ช่องสัญญาณ (MUX) ห้าตัวสำหรับเซ็นเซอร์ 120 ตัวบนโดม นี่คือคำแนะนำเกี่ยวกับมัลติเพล็กซ์ หากคุณไม่คุ้นเคย MUX 24 ช่องสัญญาณต้องการสัญญาณควบคุมห้าสัญญาณ ฉันเลือกพิน 8-12 บน Arduino ดังนั้นฉันจึงสามารถจัดการพอร์ตได้ (ดูขั้นตอนที่ 10 สำหรับข้อมูลเพิ่มเติม) เอาต์พุตของบอร์ด MUX อ่านโดยใช้พิน 3-7
ฉันยังรวมเอาท์พุต MIDI ห้าตัวไว้บนโดมเพื่อให้มันผลิตเสียงได้ (ขั้นตอนที่ 11) กล่าวอีกนัยหนึ่ง ห้าคนสามารถเล่นโดมพร้อมกันได้ โดยแต่ละเอาต์พุตจะเล่นเสียงที่แตกต่างกัน Arduino มีขา TX เพียงตัวเดียว ดังนั้นสัญญาณ MIDI ห้าสัญญาณจึงต้องการการแยกสัญญาณ เนื่องจากเอาต์พุต MIDI ผลิตในเวลาที่แตกต่างจากการอ่านเซ็นเซอร์ IR ฉันจึงใช้สัญญาณควบคุมเดียวกัน
หลังจากอ่านอินพุตเซ็นเซอร์ IR ทั้งหมดใน Arduino แล้ว โดมจะสว่างขึ้นและเล่นเสียงได้ ไม่ว่าคุณจะตั้งโปรแกรม Arduino ฉันมีตัวอย่างบางส่วนในขั้นตอนที่ 14 ของคำแนะนำนี้
ขั้นตอนที่ 6: การติดตั้ง LED เข้ากับ Dome
เนื่องจากโดมมีขนาดใหญ่มาก จึงต้องตัดแถบ LED เพื่อวาง LED หนึ่งดวงบนสามเหลี่ยมแต่ละอัน LED แต่ละดวงติดกาวบนสามเหลี่ยมโดยใช้กาวซุปเปอร์ ที่ด้านใดด้านหนึ่งของ LED จะเจาะรูผ่านแผ่นฐานเพื่อให้สายไฟวิ่งผ่านโดม จากนั้นฉันก็บัดกรีสายเบ็ดที่หน้าสัมผัสแต่ละอันบน LED (5V, กราวด์, นาฬิกา, สัญญาณ) และป้อนสายไฟผ่านแผ่นฐาน สายไฟเหล่านี้ถูกตัดให้ยาวพอที่จะไปถึงไฟ LED ถัดไปบนโดมได้ สายไฟถูกดึงผ่านไปยัง LED ถัดไป และกระบวนการจะดำเนินต่อไป ฉันเชื่อมต่อ LEDs ในการกำหนดค่าที่จะลดจำนวนลวดที่ต้องการให้เหลือน้อยที่สุดในขณะที่ยังคงสมเหตุสมผลที่จะจัดการกับ LED โดยใช้ Arduino ในภายหลัง โดมขนาดเล็กจะช่วยลดความจำเป็นในการตัดแถบและประหยัดเวลาในการบัดกรีได้มาก อีกทางเลือกหนึ่งคือการใช้ RGB LEDS แยกกับ shift register
การสื่อสารแบบอนุกรมไปยังแถบนั้นทำได้โดยใช้สองพิน (ข้อมูลและพินนาฬิกา) จาก Arduino กล่าวอีกนัยหนึ่ง ข้อมูลสำหรับการส่องสว่างโดมจะถูกส่งผ่านจาก LED หนึ่งไปยังอีก LED ถัดไปเมื่อออกจากดาต้าพิน นี่คือตัวอย่างโค้ดที่แก้ไขจากฟอรัม Arduino นี้:
// ทำให้ทั้งโดมเพิ่มและลดความเข้มของสีเดียว
#define numLeds 120 // จำนวน LED // OUTPUT PINS // int clockPin = A1; // กำหนดขานาฬิกา int dataPin = A0; // กำหนด data pin // VARIABLES // int red [numLeds]; // เริ่มต้นอาร์เรย์สำหรับแถบ LED int สีเขียว [numLeds]; // เริ่มต้นอาร์เรย์สำหรับแถบ LED int blue [numLeds]; // เริ่มต้นอาร์เรย์สำหรับแถบ LED // CONSTANT double scaleA = {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1}; // เศษส่วนของความเข้มของ LED เป็นโมฆะการตั้งค่า () { pinMode (clockPin, OUTPUT); pinMode (ดาต้าพิน, เอาต์พุต); memset (สีแดง 0, numLeds); memset (สีเขียว 0, numLeds); memset (สีน้ำเงิน 0, numLeds); } เป็นโมฆะ updatestring (int redA [numLeds], int greenA [numLeds], int blueA [numLeds]) { สำหรับ (int i = 0; i < numLeds; i++) { shiftOut (dataPin, clockPin, MSBFIRST, redA ); shiftOut(dataPin, clockPin, MSBFIRST, greenA); shiftOut(dataPin, clockPin, MSBFIRST, blueA); } } void loop() { สำหรับ (int p = 0; p <20; p++) // วนซ้ำเพื่อเพิ่มความเข้มแสงของโดม { double scale = scaleA[p]; ล่าช้า (20); สำหรับ (int i = 0; i < numLeds; i++) // วนรอบ LEDS ทั้งหมด (สีแดง = 255 * มาตราส่วน; สีเขียว = 80 * มาตราส่วน; สีน้ำเงิน = 0; } updatestring(แดง เขียว น้ำเงิน); // อัปเดตแถบนำ } }
ขั้นตอนที่ 7: การออกแบบและติดตั้งเซนเซอร์เมาท์
ฉันตัดสินใจใช้เซ็นเซอร์อินฟราเรดสำหรับโดม เซ็นเซอร์เหล่านี้มี IR LED และตัวรับสัญญาณ เมื่อวัตถุเข้ามาด้านหน้าเซนเซอร์ การแผ่รังสี IR จาก IR LED จะสะท้อนไปยังเครื่องรับ ฉันเริ่มโครงการนี้ด้วยการสร้างเซ็นเซอร์ IR ของตัวเอง ซึ่งอิงตามคำแนะนำของ Richardouvina การบัดกรีทั้งหมดใช้เวลานานเกินไป ดังนั้นฉันจึงซื้อเซ็นเซอร์ IR 120 ตัวจาก eBay ซึ่งแต่ละตัวผลิตเอาต์พุตดิจิทัล ขีด จำกัด ของเซ็นเซอร์ถูกตั้งค่าด้วยโพเทนชิออมิเตอร์บนกระดานเพื่อให้เอาต์พุตสูงก็ต่อเมื่อมืออยู่ใกล้สามเหลี่ยมนั้นเท่านั้น
สามเหลี่ยมแต่ละอันประกอบด้วยแผ่นฐาน LED ไม้อัด แผ่นอะคริลิกระจายแสงซึ่งติดตั้งเหนือแผ่น LED ประมาณ 2.5 ซม. และเซ็นเซอร์ IR เซ็นเซอร์สำหรับสามเหลี่ยมแต่ละอันถูกติดตั้งบนแผ่นไม้อัดบางที่มีรูปร่างเป็นห้าเหลี่ยมหรือหกเหลี่ยม ขึ้นอยู่กับตำแหน่งบนโดม (ดูรูปด้านบน) ฉันเจาะรูบนฐานเซ็นเซอร์ IR เพื่อติดตั้งเซ็นเซอร์ IR จากนั้นเชื่อมต่อกราวด์และพิน 5V ด้วยลวดพันลวดและเครื่องมือพันลวด (สายสีแดงและสีดำ) หลังจากเชื่อมต่อกราวด์กับ 5V แล้ว ฉันพันลวดพันลวดแบบยาวบนเอาต์พุตแต่ละตัว (สีเหลือง) กราวด์ และ 5V เพื่อวิ่งผ่านโดม
จากนั้นจึงติดตั้งเซ็นเซอร์ IR หกเหลี่ยมหรือห้าเหลี่ยมเข้ากับโดม เหนือตัวเชื่อมต่อที่พิมพ์ 3 มิติ เพื่อให้ลวดสามารถไหลผ่านโดมได้ การมีเซ็นเซอร์อยู่เหนือตัวเชื่อมต่อ ฉันจึงสามารถเข้าถึงและปรับโพเทนชิโอมิเตอร์บนเซ็นเซอร์ IR ที่ควบคุมความไวของเซ็นเซอร์ได้ ในขั้นตอนต่อไป ฉันจะอธิบายว่าเอาต์พุตของเซ็นเซอร์ IR เชื่อมต่อกับมัลติเพล็กเซอร์และอ่านข้อมูลใน Arduino ได้อย่างไร
ขั้นตอนที่ 8: เอาต์พุตเซ็นเซอร์มัลติเพล็กซ์
เนื่องจาก Arduino Uno มีพิน I/O ดิจิตอลเพียง 14 พินและพินอินพุตแบบอะนาล็อก 6 พิน และมีสัญญาณเซ็นเซอร์ 120 ตัวที่ต้องอ่าน โดมจึงต้องการมัลติเพล็กเซอร์เพื่ออ่านสัญญาณทั้งหมด ฉันเลือกสร้างมัลติเพล็กเซอร์ 24 แชนเนลห้าตัว ซึ่งแต่ละตัวอ่านเซ็นเซอร์ IR 24 ตัว (ดูรูปภาพรวมอิเล็กทรอนิกส์) MUX 24 ช่องประกอบด้วย MUX breakout board 8 ช่อง, 16-channel MUX breakout board และ 2-channel MUX ส่วนหัวของพินถูกบัดกรีเข้ากับบอร์ดฝ่าวงล้อมแต่ละบอร์ดเพื่อให้สามารถเชื่อมต่อกับบอร์ดต้นแบบได้ จากนั้นใช้เครื่องมือ Wire-wrap ต่อกราวด์ 5V และพินสัญญาณควบคุมของบอร์ดฝ่าวงล้อม MUX
MUX 24 ช่องสัญญาณต้องการสัญญาณควบคุมห้าสัญญาณ ซึ่งฉันเลือกที่จะเชื่อมต่อกับพิน 8-12 บน Arduino MUX 24 ช่องสัญญาณทั้งห้ารับสัญญาณควบคุมเดียวกันจาก Arduino ดังนั้นฉันจึงเชื่อมต่อสายจากหมุด Arduino กับ MUX 24 ช่อง เอาต์พุตดิจิตอลของเซ็นเซอร์ IR เชื่อมต่อกับพินอินพุตของ MUX 24 ช่องสัญญาณ เพื่อให้สามารถอ่านแบบอนุกรมไปยัง Arduino ได้ เนื่องจากมีหมุดแยกกันห้าตัวสำหรับการอ่านในเอาต์พุตเซ็นเซอร์ทั้งหมด 120 ตัว การจินตนาการว่าโดมถูกแบ่งออกเป็นห้าส่วนแยกจากกันซึ่งประกอบด้วยสามเหลี่ยม 24 รูป (ตรวจสอบสีของโดมในรูป) เป็นประโยชน์
การใช้การจัดการพอร์ต Arduino คุณสามารถเพิ่มสัญญาณควบคุมที่ส่งโดยพิน 8-12 ไปยังมัลติเพล็กเซอร์ได้อย่างรวดเร็ว ฉันได้แนบโค้ดตัวอย่างสำหรับการใช้งานมัลติเพล็กเซอร์ที่นี่:
int numChannel = 24;
// ผลลัพธ์ // int s0 = 8; // การควบคุม MUX 0 - PORTbD int s1 = 9; // การควบคุม MUX 1 - PORTb int s2 = 10; // การควบคุม MUX 2 - PORTb int s3 = 11; // การควบคุม MUX 3 - PORTb int s4 = 12; // การควบคุม MUX 4 - PORTb // อินพุต // int m0 = 3; // อินพุต MUX 0 int m1 = 4; // อินพุต MUX 1 int m2 = 5; // อินพุต MUX 2 int m3 = 6; // อินพุต MUX 3 int m4 = 7; // อินพุต MUX 4 // ตัวแปร // int arr0r; // การอ่านแบบดิจิทัลจาก MUX0 int arr1r; // การอ่านแบบดิจิทัลจาก MUX1 int arr2r; // การอ่านแบบดิจิทัลจาก MUX2 int arr3r; // การอ่านแบบดิจิทัลจาก MUX3 int arr4r; // การอ่านแบบดิจิทัลจากการตั้งค่าโมฆะ MUX4 () { // ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว: DDRB = B11111111; // ตั้งค่า Arduino pins 8 ถึง 13 เป็นอินพุต pinMode(s0, OUTPUT); โหมดพิน (s1, เอาต์พุต); โหมดพิน (s2, เอาต์พุต); โหมดพิน (s3, เอาต์พุต); โหมดพิน (s4, เอาต์พุต); โหมดพิน (m0, INPUT); โหมดพิน (m1, INPUT); โหมดพิน (m2, INPUT); โหมดพิน (m3, INPUT); โหมดพิน (m4, INPUT); } void loop() { // ใส่รหัสหลักของคุณที่นี่ เพื่อเรียกใช้ซ้ำ: PORTB = B00000000; // SET พินควบคุมสำหรับ mux ต่ำสำหรับ (int i = 0; i < numChannel; i++) {// เอาต์พุตการอ่านดิจิทัลของ MUX0 - MUX4 สำหรับเซ็นเซอร์ IR i // หากเซ็นเซอร์ IR เป็น LO ผู้เล่นจะสัมผัสสามเหลี่ยม. arr0r = digitalRead(m0); // อ่านจาก Mux 0, เซ็นเซอร์ IR i arr1r = digitalRead(m1); // อ่านจาก Mux 1, เซ็นเซอร์ IR i arr2r = digitalRead(m2); // อ่านจาก Mux 2, เซ็นเซอร์ IR i arr3r = digitalRead(m3); // อ่านจาก Mux 3, เซ็นเซอร์ IR i arr4r = digitalRead(m4); // การอ่านจาก Mux 4, เซ็นเซอร์ IR i // ทำบางสิ่งด้วยอินพุต MUX หรือจัดเก็บในอาร์เรย์ที่นี่ // PORTB ++; // เพิ่มสัญญาณควบคุมสำหรับ MUX } }
ขั้นตอนที่ 9: กระจายแสงด้วยอะคริลิก
เพื่อกระจายแสงจาก LED ฉันได้ขัดอะครีลิคใสด้วยเครื่องขัดแบบวงกลม เครื่องขัดถูกเคลื่อนไปบนอะคริลิกทั้งสองด้านในลักษณะรูปที่ 8 ฉันพบว่าวิธีนี้ดีกว่าสีสเปรย์ "กระจกฝ้า" มาก
หลังจากขัดและทำความสะอาดอะครีลิคแล้ว ฉันใช้เครื่องตัดเลเซอร์เพื่อตัดสามเหลี่ยมออกเพื่อให้พอดีกับไฟ LED เป็นไปได้ที่จะตัดอะคริลิกโดยใช้เครื่องมือตัดอะครีลิคหรือแม้แต่จิ๊กซอว์หากอะคริลิกไม่แตก อะคริลิกถูกยึดไว้เหนือไฟ LED โดยสี่เหลี่ยมผืนผ้าไม้อัดหนา 5 มม. และตัดด้วยเครื่องตัดเลเซอร์ แผ่นไม้เล็กๆ เหล่านี้ติดกาวที่เสาบนโดม และสามเหลี่ยมอะคริลิกอีพ็อกซี่บนแผ่นไม้
ขั้นตอนที่ 10: สร้างเพลงด้วยโดมโดยใช้ MIDI
ฉันต้องการให้โดมสามารถผลิตเสียงได้ ดังนั้นฉันจึงตั้งค่าช่อง MIDI ห้าช่อง หนึ่งช่องสำหรับแต่ละชุดย่อยของโดม ก่อนอื่นคุณต้องซื้อแจ็ค MIDI ห้าตัวและเชื่อมต่อตามที่แสดงในแผนผัง (ดูบทช่วยสอนนี้จากการสนับสนุน Arduino สำหรับข้อมูลเพิ่มเติม)
เนื่องจาก Arduino Uno มีขาส่งสัญญาณแบบอนุกรมเพียงตัวเดียว (ขา 2 ที่ระบุว่าเป็นขา TX) คุณจึงต้องแยกสัญญาณที่ส่งไปยังแจ็ค MIDI ห้าตัว ฉันใช้สัญญาณควบคุมเดียวกัน (พิน 8-12) เนื่องจากสัญญาณ MIDI ถูกส่งในเวลาที่แตกต่างจากเมื่ออ่านเซ็นเซอร์ IR ใน Arduino สัญญาณควบคุมเหล่านี้จะถูกส่งไปยังเครื่องแยกสัญญาณแบบ 8 แชนเนล เพื่อให้คุณควบคุมว่าแจ็ค MIDI ใดจะรับสัญญาณ MIDI ที่สร้างโดย Arduino สัญญาณ MIDI ถูกสร้างขึ้นโดย Arduino พร้อมคลังสัญญาณ MIDI ที่ยอดเยี่ยมที่สร้างโดย Francois Best นี่คือตัวอย่างโค้ดสำหรับสร้างเอาต์พุต MIDI หลายรายการไปยังแจ็ค MIDI ต่างๆ ด้วย Arduino Uno:
#include // รวมไลบรารี MIDI
#define numChannel 24 // จำนวน IR ต่อสามเหลี่ยม #define numSections 5 // จำนวนส่วนในโดม จำนวน 24 ช่อง MUX จำนวนแจ็ค MIDI // OUTPUTS // int s0 = 8; // การควบคุม MUX 0 - PORTbD int s1 = 9; // การควบคุม MUX 1 - PORTb int s2 = 10; // การควบคุม MUX 2 - PORTb int s3 = 11; // การควบคุม MUX 3 - PORTb int s4 = 12; // การควบคุม MUX 4 - PORTb // อินพุต // int m0 = 3; // อินพุต MUX 0 int m1 = 4; // อินพุต MUX 1 int m2 = 5; // อินพุต MUX 2 int m3 = 6; // อินพุต MUX 3 int m4 = 7; // อินพุต MUX 4 // ตัวแปร // int arr0r; // การอ่านแบบดิจิทัลจาก MUX0 int arr1r; // การอ่านแบบดิจิทัลจาก MUX1 int arr2r; // การอ่านแบบดิจิทัลจาก MUX2 int arr3r; // การอ่านแบบดิจิทัลจาก MUX3 int arr4r; // การอ่านแบบดิจิทัลจาก MUX4 int midArr [numSections]; // จัดเก็บว่าผู้เล่นคนใดคนหนึ่งกดบันทึกย่อหรือไม่ int note2play[numSections]; // จัดเก็บโน้ตที่จะเล่นหากสัมผัสเซ็นเซอร์ในโน้ต [numChannel] = {60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83}; int หยุดชั่วคราว Midi = 4000; // หยุดเวลาระหว่างสัญญาณ midi MIDI_CREATE_DEFAULT_INSTANCE(); การตั้งค่าเป็นโมฆะ () { // ใส่รหัสการตั้งค่าของคุณที่นี่ เพื่อเรียกใช้ครั้งเดียว: DDRB = B11111111; // ตั้งค่า Arduino พิน 8 ถึง 13 เป็นอินพุต MIDI.begin (MIDI_CHANNEL_OFF); โหมดพิน (s0, OUTPUT); โหมดพิน (s1, เอาต์พุต); โหมดพิน (s2, เอาต์พุต); โหมดพิน (s3, เอาต์พุต); โหมดพิน (s4, เอาต์พุต); โหมดพิน (m0, INPUT); โหมดพิน (m1, INPUT); โหมดพิน (m2, INPUT); โหมดพิน (m3, INPUT); โหมดพิน (m4, INPUT); } void loop() { // ใส่รหัสหลักของคุณที่นี่ เพื่อเรียกใช้ซ้ำ: PORTB = B00000000; // SET พินควบคุมสำหรับ mux ต่ำสำหรับ (int i = 0; i < numChannel; i++) {// เอาต์พุตการอ่านดิจิทัลของ MUX0 - MUX4 สำหรับเซ็นเซอร์ IR i // หากเซ็นเซอร์ IR เป็น LO ผู้เล่นจะสัมผัสสามเหลี่ยม. arr0r = digitalRead(m0); // อ่านจาก Mux 0, เซ็นเซอร์ IR i arr1r = digitalRead(m1); // อ่านจาก Mux 1, เซ็นเซอร์ IR i arr2r = digitalRead(m2); // อ่านจาก Mux 2, เซ็นเซอร์ IR i arr3r = digitalRead(m3); // อ่านจาก Mux 3, เซ็นเซอร์ IR i arr4r = digitalRead(m4); // การอ่านจาก Mux 4, เซ็นเซอร์ IR i ถ้า (arr0r == 0)// เซ็นเซอร์ในส่วน 0 ถูกบล็อก { midArr[0] = 1; // ผู้เล่น 0 ได้บันทึกย่อ ตั้งค่า HI เพื่อให้มีเอาต์พุต MIDI สำหรับผู้เล่น 0 note2play[0] = โน้ต; // หมายเหตุสำหรับผู้เล่น 0 } ถ้า (arr1r == 0)// เซ็นเซอร์ในส่วนที่ 1 ถูกบล็อก { midArr[1] = 1; // ผู้เล่น 0 กดโน้ตแล้ว ตั้งค่า HI เพื่อให้มีเอาต์พุต MIDI สำหรับผู้เล่น 0 note2play[1] = notes; // หมายเหตุสำหรับผู้เล่น 0 } ถ้า (arr2r == 0) // เซ็นเซอร์ในส่วนที่ 2 ถูกบล็อก { midArr[2] = 1; // ผู้เล่น 0 ได้กดบันทึก ตั้งค่า HI เพื่อให้มีเอาต์พุต MIDI สำหรับผู้เล่น 0 note2play[2] = บันทึก ; // หมายเหตุสำหรับผู้เล่น 0 } ถ้า (arr3r == 0)// เซ็นเซอร์ในส่วนที่ 3 ถูกบล็อก { midArr[3] = 1; // ผู้เล่น 0 ได้บันทึกย่อ ตั้งค่า HI เพื่อให้มีเอาต์พุต MIDI สำหรับผู้เล่น 0 note2play[3] = โน้ต; // หมายเหตุสำหรับผู้เล่น 0 } ถ้า (arr4r == 0)// เซ็นเซอร์ในส่วนที่ 4 ถูกบล็อก { midArr[4] = 1; // ผู้เล่น 0 ได้บันทึกย่อ ตั้งค่า HI เพื่อให้มีเอาต์พุต MIDI สำหรับผู้เล่น 0 note2play[4] = โน้ต; // หมายเหตุสำหรับผู้เล่น 0 } PORTB ++; // เพิ่มสัญญาณควบคุมสำหรับ MUX } updateMIDI(); } เป็นโมฆะ updateMIDI () { PORTB = B00000000; // SET พินควบคุมสำหรับ mux low if (midArr [0] == 1) // ผู้เล่น 0 เอาต์พุต MIDI { MIDI.sendNoteOn (note2play [0], 127, 1); ดีเลย์ไมโครวินาที (pauseMidi); MIDI.sendNoteOff(note2play[0], 127, 1); ดีเลย์ไมโครวินาที (pauseMidi); } PORTB ++; // เพิ่ม MUX ถ้า (midArr [1] == 1) // ผู้เล่น 1 เอาต์พุต MIDI { MIDI.sendNoteOn (note2play [1], 127, 1); ดีเลย์ไมโครวินาที (pauseMidi); MIDI.sendNoteOff(note2play[1], 127, 1); ดีเลย์ไมโครวินาที (pauseMidi); } PORTB ++; // เพิ่ม MUX ถ้า (midArr [2] == 1) // ผู้เล่น 2 เอาต์พุต MIDI { MIDI.sendNoteOn (note2play [2], 127, 1); ดีเลย์ไมโครวินาที (pauseMidi); MIDI.sendNoteOff(note2play[2], 127, 1); ดีเลย์ไมโครวินาที (pauseMidi); } PORTB ++; // เพิ่ม MUX ถ้า (midArr [3] == 1) // ผู้เล่น 3 เอาต์พุต MIDI { MIDI.sendNoteOn (note2play [3], 127, 1); ดีเลย์ไมโครวินาที (pauseMidi); MIDI.sendNoteOff(note2play[3], 127, 1); ดีเลย์ไมโครวินาที (pauseMidi); } PORTB ++; // เพิ่ม MUX ถ้า (midArr [4] == 1) // ผู้เล่น 4 เอาต์พุต MIDI { MIDI.sendNoteOn (note2play [4], 127, 1); ดีเลย์ไมโครวินาที (pauseMidi); MIDI.sendNoteOff(note2play[4], 127, 1); ดีเลย์ไมโครวินาที (pauseMidi); } midArr[0] = 0; midArr[1] = 0; midArr[2] = 0; midArr[3] = 0; midArr[4] = 0; }
ขั้นตอนที่ 11: เปิดเครื่อง Dome
มีส่วนประกอบหลายอย่างที่ต้องขับเคลื่อนในโดม ดังนั้น คุณจะต้องคำนวณแอมป์ที่ดึงมาจากแต่ละส่วนประกอบเพื่อกำหนดแหล่งจ่ายไฟที่คุณต้องการซื้อ
แถบ LED: ฉันใช้แถบ LED Ws2801 ประมาณ 3.75 เมตร ซึ่งกินไฟ 6.4W/เมตร ซึ่งสอดคล้องกับ 24W (3.75*6.4) ในการแปลงเป็นแอมป์ ให้ใช้กำลัง = กระแส*โวลต์ (P=iV) โดยที่ V คือแรงดันไฟของแถบ LED ในกรณีนี้คือ 5V ดังนั้นกระแสที่ดึงมาจาก LED คือ 4.8A (24W/5V = 4.8A)
เซ็นเซอร์ IR: เซ็นเซอร์ IR แต่ละตัวดึงประมาณ 25mA รวมเป็น 3A สำหรับเซ็นเซอร์ 120 ตัว
Arduino: 100mA, 9V
มัลติเพล็กเซอร์: มีมัลติเพล็กเซอร์ 24 แชนเนลห้าตัวซึ่งแต่ละอันประกอบด้วยมัลติเพล็กเซอร์ 16 แชนเนลและมัลติเพล็กเซอร์ 8 แชนเนล MUX 8 แชนเนลและ 16 แชนเนลแต่ละตัวกินไฟประมาณ 100mA ดังนั้นการใช้พลังงานทั้งหมดของ MUX ทั้งหมดจึงเป็น 1A
เมื่อรวมส่วนประกอบเหล่านี้แล้ว คาดว่าการใช้พลังงานทั้งหมดจะอยู่ที่ประมาณ 9A แถบ LED, เซ็นเซอร์ IR และมัลติเพล็กเซอร์มีแรงดันไฟฟ้าขาเข้าที่ 5V และ Arduino มีแรงดันไฟฟ้าขาเข้า 9V ดังนั้นฉันจึงเลือกแหล่งจ่ายไฟ 12V 15A ตัวแปลงบั๊ก 15A สำหรับแปลง 12V เป็น 5V และตัวแปลงบั๊ก 3A สำหรับแปลง 12V เป็น 9V สำหรับ Arduino
ขั้นตอนที่ 12: ฐานโดมทรงกลม
โดมวางอยู่บนแผ่นไม้ทรงกลมที่มีรูปห้าเหลี่ยมตัดตรงกลางเพื่อให้เข้าถึงอุปกรณ์อิเล็กทรอนิกส์ได้ง่าย ในการสร้างฐานวงกลมนี้ แผ่นไม้อัดขนาด 4x6 ฟุตถูกตัดโดยใช้เราเตอร์ CNC ไม้ จิ๊กซอว์สามารถใช้สำหรับขั้นตอนนี้ หลังจากตัดฐานแล้ว โดมก็ติดกับโดมโดยใช้ท่อนไม้ขนาดเล็ก 2x3”
ที่ด้านบนของฐาน ฉันติดพาวเวอร์ซัพพลายด้วยอีพ็อกซี่และตัวแปลง MUX และบั๊กพร้อมสเปเซอร์แบบแยก PCB สเปเซอร์ถูกยึดเข้ากับไม้อัดโดยใช้ตัวต่อเกลียว E-Z Lok
ขั้นตอนที่ 13: ฐานโดมเพนตากอน
นอกจากฐานกลมแล้ว ฉันยังสร้างฐานห้าเหลี่ยมสำหรับโดมที่มีหน้าต่างกระจกมองด้านล่าง ฐานและหน้าต่างที่ดูนี้ทำจากไม้อัดที่ตัดด้วยเราเตอร์ CNC ไม้ ด้านข้างของรูปห้าเหลี่ยมทำจากไม้กระดาน โดยด้านหนึ่งมีรูสำหรับต่อผ่าน ใช้ขายึดโลหะและข้อต่อบล็อก 2x3 แผ่นไม้ติดกับฐานห้าเหลี่ยม สวิตช์เปิดปิด ขั้วต่อ MIDI และขั้วต่อ USB ติดอยู่ที่แผงด้านหน้าที่ฉันสร้างขึ้นโดยใช้เครื่องตัดเลเซอร์ ฐานห้าเหลี่ยมทั้งหมดถูกขันเข้ากับฐานกลมตามที่อธิบายไว้ในขั้นตอนที่ 12
ฉันติดตั้งหน้าต่างที่ด้านล่างของโดมเพื่อให้ทุกคนสามารถมองขึ้นไปที่โดมเพื่อดูอุปกรณ์อิเล็กทรอนิกส์ได้ กระจกมองจากการตัดอะครีลิคด้วยเครื่องตัดเลเซอร์และอีพ็อกซี่เป็นแผ่นไม้อัดกลม
ขั้นตอนที่ 14: การเขียนโปรแกรม Dome
มีความเป็นไปได้ไม่รู้จบสำหรับการเขียนโปรแกรมโดม แต่ละรอบของรหัสจะรับสัญญาณจากเซ็นเซอร์ IR ซึ่งระบุถึงรูปสามเหลี่ยมที่ใครบางคนแตะ ด้วยข้อมูลนี้ คุณสามารถระบายสีโดมด้วยสี RGB และ/หรือสร้างสัญญาณ MIDI ได้ ต่อไปนี้คือตัวอย่างบางส่วนของโปรแกรมที่ฉันเขียนสำหรับโดม:
ระบายสีโดม: สามเหลี่ยมแต่ละรูปจะวนเป็นสี่สีเมื่อสัมผัส เมื่อสีเปลี่ยนไป จะเล่น arpeggio ด้วยโปรแกรมนี้ คุณจะได้ระบายสีโดมด้วยวิธีต่างๆ นับพันแบบ
เพลงโดม:โดมมีสีห้าสี แต่ละส่วนสอดคล้องกับเอาต์พุต MIDI ที่แตกต่างกัน ในโปรแกรม คุณสามารถเลือกโน้ตที่แต่ละสามเหลี่ยมเล่น ฉันเลือกเริ่มต้นที่ C ตรงกลางที่ด้านบนสุดของโดม และเพิ่มระดับเสียงเมื่อสามเหลี่ยมเคลื่อนเข้าใกล้ฐานมากขึ้น เนื่องจากมีห้าเอาต์พุต โปรแกรมนี้จึงเหมาะอย่างยิ่งสำหรับการให้หลายคนเล่นโดมพร้อมกัน การใช้เครื่องมือ MIDI หรือซอฟต์แวร์ MIDI สัญญาณ MIDI เหล่านี้สามารถสร้างเสียงเหมือนเครื่องดนตรีอื่นๆ ได้
Simon: ฉันเขียนการแปลของ Simon เกมไฟหน่วยความจำแบบคลาสสิก ไฟแบบสุ่มจะส่องสว่างทีละดวงทั่วทั้งโดม ในแต่ละเทิร์น ผู้เล่นจะต้องคัดลอกลำดับ หากผู้เล่นจับคู่ซีเควนซ์อย่างถูกต้อง ไฟเพิ่มเติมจะถูกเพิ่มเข้าไปในซีเควนซ์ คะแนนสูงสุดจะถูกเก็บไว้ที่ส่วนใดส่วนหนึ่งของโดม เกมนี้สนุกมากที่จะเล่นหลายคน
พงษ์: ทำไมไม่เล่นปิงปองบนโดมล่ะ ลูกบอลกระจายไปทั่วโดมจนกระทบไม้พาย เมื่อเป็นเช่นนั้น สัญญาณ MIDI จะถูกสร้างขึ้นเพื่อแสดงว่าไม้พายตีลูกบอล ผู้เล่นอีกคนต้องชี้ไม้พายไปที่ด้านล่างของโดมเพื่อให้ตีลูกบอลกลับ
ขั้นตอนที่ 15: รูปภาพของ Dome ที่เสร็จสมบูรณ์
รางวัลใหญ่ในการประกวด Arduino 2016
รางวัลรองชนะเลิศในการประกวด Remix Contest 2016
รางวัลที่สองในการประกวด Make it Glow 2016
แนะนำ:
Interactive Minecraft อย่าใส่ดาบ / ป้าย (ESP32-CAM): 15 ขั้นตอน (พร้อมรูปภาพ)
Interactive Minecraft Do Not Enter Sword/Sign (ESP32-CAM): มีสาเหตุหลายประการจริงๆ ว่าทำไมโปรเจ็กต์นี้จึงเกิดขึ้น:1. ในฐานะผู้เขียน Cooperative multitasking library TaskScheduler ฉันมักสงสัยว่าจะรวมประโยชน์ของการทำงานหลายอย่างพร้อมกันแบบมีส่วนร่วมกับประโยชน์ของการทำงานแบบ pre-emptive ได้อย่างไร
String Art Dome: 10 ขั้นตอน (พร้อมรูปภาพ)
String Art Dome: ฉันเข้าสู่ศิลปะสตริง UV เมื่อหลายปีก่อน แต่โปรเจ็กต์ของฉันก็ใหญ่ขึ้นเรื่อยๆ และไม้ที่ฉันใช้สำหรับเฟรมก็สร้างใหม่ได้ไม่ดี จากนั้นฉันก็ค้นพบว่าการสร้างโดมนั้นง่ายเพียงใด และด้วยเหตุนี้จึงเป็นจุดเริ่มต้นของโดมทฤษฎีสตริง มันคืบหน้าเ
Magnetic Geodesic Planetarium: 7 ขั้นตอน (พร้อมรูปภาพ)
ท้องฟ้าจำลอง Magnetic Geodesic: สวัสดีทุกคน! ฉันอยากจะแนะนำคุณเกี่ยวกับกระบวนการของฉันในการสร้างท้องฟ้าจำลองที่มีแม่เหล็กและลวดประดิษฐ์! เหตุผลในการใช้แม่เหล็กนี้คือเพื่อความสะดวกในการถอดในช่วงเวลาที่มีฝนตกหรือน้อยกว่าสภาพอากาศในอุดมคติ ทางนี้คุณ
วิธีสร้างโดม Geodesic สไตล์ Temcor ใน Autodesk Inventor: 8 ขั้นตอน
วิธีสร้างโดมเรขาคณิตสไตล์ Temcor ใน Autodesk Inventor: บทช่วยสอนนี้จะแสดงวิธีสร้างโดมสไตล์ Temcor โดยใช้คณิตศาสตร์เพียงเล็กน้อย ข้อมูลส่วนใหญ่ในบทช่วยสอนนี้รวบรวมมาจากวิศวกรรมย้อนกลับของ TaffGoch วิธีการแบ่งของสถานีขั้วโลกใต้ Amundsen-Scott เก่า s
IOT123 - SOLAR TRACKER DOME: 7 ขั้นตอน (พร้อมรูปภาพ)
IOT123 - SOLAR TRACKER DOME: มีการออกแบบ DIY มากมายสำหรับเครื่องชาร์จตัวติดตามพลังงานแสงอาทิตย์ แต่ส่วนใหญ่ไม่ทนทานต่อสภาพอากาศ นี่เป็นปัญหาใหญ่เพราะโดยส่วนใหญ่การอยู่กลางแสงแดดหมายถึงการอยู่ในสภาพอากาศ คำแนะนำนี้จะนำคุณเข้าสู่กระบวนการสร้าง