Mục lục:
- Bước 1: Danh sách cung cấp
- Bước 2: Thiết kế Mái vòm Trắc địa
- Bước 3: Xây dựng mái vòm bằng thanh chống và đầu nối
- Bước 4: Cắt và lắp tấm đế bằng laser
- Bước 5: Tổng quan về Điện tử
- Bước 6: Gắn đèn LED vào mái vòm
- Bước 7: Thiết kế và triển khai giá đỡ cảm biến
- Bước 8: Đầu ra của cảm biến ghép kênh
- Bước 9: Khuếch tán ánh sáng với acrylic
- Bước 10: Tạo nhạc với mái vòm bằng MIDI
- Bước 11: Cấp nguồn cho mái vòm
- Bước 12: Cơ sở mái vòm tròn
- Bước 13: Căn cứ Mái vòm Lầu Năm Góc
- Bước 14: Lập trình mái vòm
- Bước 15: Hình ảnh của mái vòm đã hoàn thành
Video: Vòm LED trắc địa tương tác: 15 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Tôi đã xây dựng một mái vòm trắc địa bao gồm 120 hình tam giác với đèn LED và cảm biến ở mỗi hình tam giác. Mỗi đèn LED có thể được định địa chỉ riêng lẻ và mỗi cảm biến được điều chỉnh đặc biệt cho một tam giác duy nhất. Mái vòm được lập trình với Arduino để phát sáng và tạo ra tín hiệu MIDI tùy thuộc vào hình tam giác bạn đặt tay.
Tôi đã thiết kế mái vòm để trở thành một màn hình vui nhộn thu hút mọi người quan tâm đến ánh sáng, thiết bị điện tử và âm thanh. Bởi vì mái vòm được chia thành năm phần độc đáo, tôi đã thiết kế mái vòm để có năm đầu ra MIDI riêng biệt mà mỗi đầu ra có thể có âm thanh khác nhau. Điều này làm cho mái vòm trở thành một nhạc cụ khổng lồ, lý tưởng để chơi nhạc với nhiều người cùng một lúc. Ngoài chơi nhạc, tôi còn lập trình mái vòm cho các buổi trình diễn ánh sáng và chơi bản trình diễn của Simon và Pong. Cấu trúc cuối cùng có đường kính hơn một mét và cao 70 cm, và được xây dựng chủ yếu bằng gỗ, acrylic và các bộ phận in 3D.
Có một số Sách hướng dẫn tuyệt vời trên bảng và khối LED đã truyền cảm hứng cho tôi bắt đầu dự án này. Tuy nhiên, tôi muốn thử sắp xếp các đèn LED theo một dạng hình học khác. Tôi không thể nghĩ ra một cấu trúc nào tốt hơn cho dự án hơn là một mái vòm trắc địa, cũng được ghi lại đầy đủ trên Các tài liệu hướng dẫn. Vì vậy, dự án này là một bản phối lại / kết hợp của các bảng LED và mái vòm đo đạc. Dưới đây là các liên kết đến bảng LED và bảng hướng dẫn trắc địa vòm mà tôi đã kiểm tra khi bắt đầu dự án.
Bảng LED và hình khối:
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-…
Vòm trắc địa:
www.instructables.com/id/Folding-Geodesic-D…
www.instructables.com/id/Geodesic-dome-kit/
Bước 1: Danh sách cung cấp
Vật liệu:
1. Gỗ làm thanh chống của mái vòm và đế của mái vòm (số lượng tùy thuộc vào loại và kích thước của mái vòm)
2. Dải LED định địa chỉ (16,4ft / 5m Dải điểm ảnh LED màu có thể định địa chỉ 160leds Ws2801 Dc5v)
3. Arduino Uno (Atmega328 - đã lắp ráp)
4. Bảng nguyên mẫu (Penta Angel hai mặt nguyên mẫu PCB Universal (7x9cm))
5. Acrylic cho đèn LED khuếch tán (Tấm acrylic đúc, trong suốt, kích thước 12 "x 12" x 0,118 ")
6. Nguồn cung cấp (Aiposen 110 / 220V sang DC12V 30A 360W Switch Power Supply Driver)
7. Bộ chuyển đổi Buck cho Arduino (RioRand LM2596 DC-DC Buck Converter 1.23V-30V)
8. Bộ chuyển đổi Buck cho đèn LED và cảm biến (DROK Mini Electric Buck Voltage Converter 15A)
9. 120 cảm biến IR (Mô-đun cảm biến tránh chướng ngại vật hồng ngoại)
10. Năm bộ ghép kênh 16 kênh (Analog / Digital MUX Breakout - CD74HC4067)
11. Sáu bộ ghép kênh 8 kênh (Đột phá bộ ghép kênh - 8 kênh (74HC4051))
12. Năm bộ ghép kênh 2 kênh (MAX4544CPA +)
13. Dây quấn (PCB hàn 0,25mm Dây đồng mạ thiếc Dia Dây quấn dây 305M 30AWG Đỏ)
14. Dây móc (Solid Core, 22 AWG)
15. Đầu ghim (Gikfun 1 x 40 Pin 2,54mm Đầu cắm Pin Nam một hàng Breakaway)
16. Năm giắc cắm MIDI (Giắc cắm MIDI thân thiện với bảng mạch (DIN 5 chân))
17. Mười điện trở 220ohm cho giắc cắm MIDI
18. Bộ đệm đứng để gắn thiết bị điện tử lên mái vòm (Bộ đệm đứng Hex M3 Male x M3 Female)
19. Bộ điều hợp ren để kết nối chân đế với gỗ (Chèn ren E-Z Lok, Đồng thau, Chỉ dao)
20. Epoxy hoặc Gorilla Superglue
21. Băng keo điện
22. Hàn
Công cụ:
1. Trạm hàn
2. Máy khoan động lực
3. Máy cưa đĩa
4. Máy mài quỹ đạo
5. Cưa đồ
6. Máy cưa lọng
7. Thước đo góc
8. Máy in 3D
9. Máy cắt dây
10. Dụng cụ quấn dây
11. Máy cắt laser để cắt các tấm LED (tùy chọn)
12. Shopbot CNC cho cơ sở của mái vòm (tùy chọn)
Bước 2: Thiết kế Mái vòm Trắc địa
Như tôi đã đề cập trong phần giới thiệu, có một số nguồn trực tuyến để xây dựng mái vòm đo đạc của riêng bạn. Các trang web này cung cấp công cụ tính toán mái vòm để xác định chiều dài của mỗi bên (tức là thanh chống) và số lượng đầu nối cần thiết cho bất kỳ loại mái vòm nào bạn muốn xây dựng. Độ phức tạp của mái vòm trắc địa (tức là mật độ của hình tam giác) được xác định theo lớp của nó (1V, 2V, 3V, v.v.), với độ phức tạp cao hơn sẽ trở thành một xấp xỉ tốt hơn của một bề mặt hình cầu hoàn hảo. Để xây dựng mái vòm của riêng bạn, trước tiên bạn phải chọn đường kính và lớp mái vòm.
Tôi đã sử dụng một trang web có tên là Domerama để giúp tôi thiết kế một mái vòm 4V được cắt bớt 5/12 của một hình cầu có bán kính 40cm. Đối với loại mái vòm này, có sáu thanh chống chiều dài khác nhau:
30 X “A” - 8,9cm
30 X “B” - 10,4cm
50 X “C” - 12,4cm
40 X “D” - 12,5cm
20 X “E” - 13,0cm
20 X “F” - 13,2cm
Đó là tổng cộng 190 thanh chống cộng với vật liệu lên tới 2223cm (73 ft). Tôi đã sử dụng gỗ thông 1x3 (3/4 "× 2-1 / 2") cho các thanh chống trong mái vòm này. Để kết nối các thanh chống, tôi đã thiết kế và in 3D các đầu nối bằng Autocad. Các tệp STL có sẵn để tải xuống ở cuối bước này. Số lượng đầu nối cho một vòm 4V 5/12 là:
20 X 4 đầu nối
6 X 5 đầu nối
45 X 6 đầu nối
Trong bước tiếp theo, tôi mô tả cách xây dựng mái vòm này với các thanh chống bằng gỗ và các đầu nối in 3D mà tôi đã thiết kế.
Bước 3: Xây dựng mái vòm bằng thanh chống và đầu nối
Sử dụng các tính toán từ Domerama cho mái vòm 4V 5/12, tôi cắt các thanh chống bằng cách sử dụng một cái cưa tròn. 190 thanh chống đã được dán nhãn và đặt trong hộp sau khi cắt. 71 đầu nối (20 đầu nối bốn, 6 đầu nối năm và 45 đầu nối sáu) được in 3D bằng Makerbot. Các thanh chống bằng gỗ được đưa vào các đầu nối theo sơ đồ do Domerama tạo ra. Tôi bắt đầu xây dựng từ trên xuống và di chuyển toàn bộ ra bên ngoài.
Sau khi tất cả các thanh chống được kết nối, tôi tháo từng thanh chống một và thêm epoxy vào gỗ và đầu nối. Các đầu nối được thiết kế để có tính linh hoạt trong cách kết nối các cấu trúc, vì vậy điều quan trọng là phải kiểm tra tính đối xứng của mái vòm trước khi thêm bất kỳ lớp sơn epoxy nào.
Bước 4: Cắt và lắp tấm đế bằng laser
Bây giờ khung của mái vòm đã được xây dựng, đã đến lúc cắt các tấm nền hình tam giác. Những tấm nền này được gắn vào dưới cùng của thanh chống và được sử dụng để gắn đèn LED vào mái vòm. Ban đầu, tôi cắt các tấm nền từ ván ép dày 5mm (3/16”) bằng cách đo năm hình tam giác khác nhau trên mái vòm: AAB (30 hình tam giác), BCC (25 hình tam giác), DDE (20 hình tam giác), CDF (40 hình tam giác), và EEE (5 hình tam giác). Kích thước của mỗi cạnh và hình dạng của các hình tam giác được xác định bằng cách sử dụng máy tính hình vòm (Domerama) và một số hình học. Sau khi cắt các tấm nền thử nghiệm bằng tranh ghép hình, tôi đã vẽ thiết kế hình tam giác bằng cách sử dụng Coral Draw và cắt các tấm nền còn lại bằng máy cắt laser (nhanh hơn nhiều!). Nếu bạn không có máy cắt laser, bạn có thể vẽ các tấm nền lên ván ép bằng thước kẻ và thước đo góc và cắt tất cả chúng bằng một hình ghép. Sau khi các tấm nền được cắt, mái vòm được lật lên và các tấm được dán vào mái vòm bằng keo dán gỗ.
Bước 5: Tổng quan về Điện tử
Được thể hiện trong hình trên là một sơ đồ của các thiết bị điện tử cho mái vòm. Arduino Uno được sử dụng để viết và đọc tín hiệu cho mái vòm. Để làm sáng mái vòm, một dải LED RGB được chạy trên mái vòm để một đèn LED được định vị tại mỗi một trong số 120 hình tam giác. Để biết thông tin về cách hoạt động của dải đèn LED, hãy xem hướng dẫn này. Mỗi đèn LED có thể được định địa chỉ riêng biệt bằng cách sử dụng Arduino, tạo ra dữ liệu nối tiếp và tín hiệu đồng hồ cho dải (xem chân A0 và A1 trong sơ đồ). Chỉ với dải và hai tín hiệu này, bạn có thể có một mái vòm ánh sáng tuyệt vời. Có nhiều cách khác để viết tín hiệu cho nhiều LED từ Arduino, chẳng hạn như Charlieplexing và thanh ghi shift.
Để tương tác với mái vòm, tôi đã thiết lập một cảm biến hồng ngoại phía trên mỗi đèn LED. Các cảm biến này được sử dụng để phát hiện khi bàn tay của ai đó gần với một hình tam giác trên mái vòm. Bởi vì mỗi hình tam giác trên mái vòm có cảm biến IR riêng và có 120 hình tam giác, bạn sẽ phải thực hiện một số loại ghép kênh trước Arduino. Tôi quyết định sử dụng năm bộ ghép kênh 24 kênh (MUX) cho 120 cảm biến trên mái vòm. Đây là hướng dẫn về ghép kênh, nếu bạn chưa quen. MUX 24 kênh yêu cầu năm tín hiệu điều khiển. Tôi đã chọn chân 8-12 trên Arduino, vì vậy tôi có thể thực hiện thao tác cổng (xem Bước 10 để biết thêm thông tin). Đầu ra của bảng MUX được đọc bằng chân 3-7.
Tôi cũng bao gồm năm đầu ra MIDI trên vòm để nó có thể tạo ra âm thanh (Bước 11). Nói cách khác, năm người có thể chơi mái vòm đồng thời với mỗi đầu ra phát một âm thanh khác nhau. Chỉ có một chân TX trên Arduino, vì vậy năm tín hiệu MIDI yêu cầu phân kênh. Vì đầu ra MIDI được tạo ra ở thời điểm khác với kết quả đọc của cảm biến IR, tôi đã sử dụng các tín hiệu điều khiển tương tự.
Sau khi tất cả các đầu vào cảm biến IR được đọc vào Arduino, mái vòm có thể sáng lên và phát âm thanh theo cách bạn lập trình Arduino. Tôi có một vài ví dụ trong Bước 14 của hướng dẫn này.
Bước 6: Gắn đèn LED vào mái vòm
Bởi vì mái vòm rất lớn, dải đèn LED cần được cắt để đặt một đèn LED trên mỗi hình tam giác. Mỗi đèn LED được dán trên hình tam giác bằng cách sử dụng keo siêu dính. Ở hai bên của đèn LED, một lỗ được khoan qua tấm đế để cáp chạy qua mái vòm. Sau đó, tôi hàn dây nối tại mỗi điểm tiếp xúc trên đèn LED (5V, đất, đồng hồ, tín hiệu) và cấp dây qua tấm đế. Các dây này được cắt sao cho chúng đủ dài để tiếp cận đèn LED tiếp theo trên mái vòm. Các dây được kéo qua đèn LED tiếp theo và quá trình này được tiếp tục. Tôi đã kết nối các đèn LED trong một cấu hình sẽ giảm thiểu số lượng dây cần thiết trong khi vẫn có ý nghĩa để giải quyết các đèn LED bằng Arduino sau này. Một mái vòm nhỏ hơn sẽ loại bỏ nhu cầu cắt dải và tiết kiệm rất nhiều thời gian hàn. Một tùy chọn khác là sử dụng LEDS RGB riêng biệt với các thanh ghi dịch chuyển.
Giao tiếp nối tiếp với dải được thực hiện bằng cách sử dụng hai chân (một chân dữ liệu và đồng hồ) từ Arduino. Nói cách khác, dữ liệu để chiếu sáng mái vòm được truyền từ đèn LED này sang đèn LED tiếp theo khi nó rời khỏi chân dữ liệu. Đây là mã ví dụ được sửa đổi từ diễn đàn Arduino này:
// Làm cho toàn bộ mái vòm tăng và giảm cường độ của một màu
#define numLeds 120 // Số lượng đèn LED // Mã PIN ĐẦU RA // int clockPin = A1; // định nghĩa chân đồng hồ int dataPin = A0; // định nghĩa chân dữ liệu // BIẾN TẦN // int red [numLeds]; // Khởi tạo mảng cho dải LED int green [numLeds]; // Khởi tạo mảng cho dải LED int blue [numLeds]; // Khởi tạo mảng cho dải LED // Thang đo kép CONSTANTA = {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}; // phần cường độ của đèn LED void setup () {pinMode (clockPin, OUTPUT); pinMode (dataPin, OUTPUT); memset (red, 0, numLeds); memset (xanh, 0, numLeds); memset (xanh lam, 0, numLeds); } void updatestring (int redA [numLeds], int greenA [numLeds], int blueA [numLeds]) {for (int i = 0; i <numLeds; i ++) {shiftOut (dataPin, clockPin, MSBFIRST, redA ); shiftOut (dataPin, clockPin, MSBFIRST, greenA ); shiftOut (dataPin, clockPin, MSBFIRST, blueA ); }} void loop () {for (int p = 0; p <20; p ++) // vòng lặp tăng cường độ sáng của dome {double scale = scaleA [p]; chậm trễ (20); for (int i = 0; i <numLeds; i ++) // chu ky qua moi thang LEDS {red = 255 *; green = 80 * tỷ lệ; xanh lam = 0; } updatestring (đỏ, lục, lam); // cập nhật dải dẫn}}
Bước 7: Thiết kế và triển khai giá đỡ cảm biến
Tôi quyết định sử dụng cảm biến IR cho mái vòm. Các cảm biến này có đèn LED hồng ngoại và bộ thu. Khi một đối tượng đến trước cảm biến, một số bức xạ IR từ đèn LED hồng ngoại sẽ bị phản xạ về phía bộ thu. Tôi bắt đầu dự án này bằng cách tạo ra các cảm biến IR của riêng mình, dựa trên sự hướng dẫn của Richardouvina. Tất cả quá trình hàn mất quá nhiều thời gian, vì vậy tôi đã mua 120 cảm biến IR từ eBay, mỗi cảm biến tạo ra đầu ra kỹ thuật số. Ngưỡng của cảm biến được đặt với một chiết áp trên bo mạch để đầu ra chỉ cao khi một bàn tay ở gần hình tam giác đó.
Mỗi hình tam giác bao gồm một tấm đế LED bằng ván ép, một tấm acrylic khuếch tán gắn trên tấm LED khoảng 2,5cm và một cảm biến hồng ngoại. Cảm biến cho mỗi tam giác được gắn trên một tấm ván ép mỏng có hình ngũ giác hoặc lục giác tùy thuộc vào vị trí trên mái vòm (xem hình trên). Tôi khoan lỗ vào đế cảm biến IR để gắn các cảm biến IR, sau đó kết nối đất và chân 5V với dây quấn và dụng cụ quấn dây (dây đỏ và đen). Sau khi kết nối đất và 5V, tôi quấn dây quấn dài trên mỗi đầu ra (màu vàng), đất và 5V để chạy qua vòm.
Các giá treo cảm biến IR hình lục giác hoặc ngũ giác sau đó được gắn vào vòm, ngay trên các đầu nối in 3D, để dây có thể chạy qua vòm. Bằng cách có các cảm biến phía trên các đầu nối, tôi cũng có thể truy cập và điều chỉnh chiết áp trên cảm biến IR kiểm soát độ nhạy của cảm biến. Trong bước tiếp theo, tôi sẽ mô tả cách đầu ra của cảm biến IR được kết nối với bộ ghép kênh và đọc vào Arduino.
Bước 8: Đầu ra của cảm biến ghép kênh
Vì Arduino Uno chỉ có 14 chân I / O kỹ thuật số và 6 chân đầu vào tương tự và có 120 tín hiệu cảm biến phải được đọc, nên mái vòm yêu cầu bộ ghép kênh để đọc tất cả các tín hiệu. Tôi đã chọn xây dựng năm bộ ghép kênh 24 kênh, mỗi bộ đọc 24 cảm biến IR (xem hình tổng quan về thiết bị điện tử). MUX 24 kênh bao gồm bảng đột phá MUX 8 kênh, bảng đột phá MUX 16 kênh và MUX 2 kênh. Các đầu ghim được hàn vào mỗi bảng đột phá để chúng có thể được kết nối với bảng nguyên mẫu. Sử dụng một công cụ quấn dây, sau đó tôi kết nối đất, 5V và các chân tín hiệu điều khiển của bảng đột phá MUX.
MUX 24 kênh yêu cầu năm tín hiệu điều khiển, tôi đã chọn kết nối với chân 8-12 trên Arduino. Tất cả năm MUX 24 kênh đều nhận được cùng một tín hiệu điều khiển từ Arduino, vì vậy tôi đã kết nối dây từ các chân Arduino với MUX 24 kênh. Các đầu ra kỹ thuật số của cảm biến IR được kết nối với các chân đầu vào của MUX 24 kênh để chúng có thể được đọc nối tiếp với Arduino. Bởi vì có năm chân riêng biệt để đọc trong tất cả 120 đầu ra cảm biến, sẽ hữu ích khi hình dung vòm được chia thành năm phần riêng biệt bao gồm 24 hình tam giác (kiểm tra màu sắc của vòm trong hình).
Sử dụng thao tác cổng Arduino, bạn có thể nhanh chóng tăng tín hiệu điều khiển được gửi bởi các chân 8-12 tới bộ ghép kênh. Tôi đã đính kèm một số mã ví dụ để vận hành bộ ghép kênh ở đây:
int numChannel = 24;
// ĐẦU RA // int s0 = 8; // Điều khiển MUX 0 - PORTbD int s1 = 9; // Điều khiển MUX 1 - PORTb int s2 = 10; // Điều khiển MUX 2 - PORTb int s3 = 11; // Điều khiển MUX 3 - PORTb int s4 = 12; // Điều khiển MUX 4 - PORTb // ĐẦU VÀO // int m0 = 3; // Đầu vào MUX 0 int m1 = 4; // Đầu vào MUX 1 int m2 = 5; // Đầu vào MUX 2 int m3 = 6; // Đầu vào MUX 3 int m4 = 7; // Đầu vào MUX 4 // BIẾN // int arr0r; // kỹ thuật số đọc từ MUX0 int arr1r; // kỹ thuật số đọc từ MUX1 int arr2r; // kỹ thuật số đọc từ MUX2 int arr3r; // kỹ thuật số đọc từ MUX3 int arr4r; // đọc kỹ thuật số từ MUX4 void setup () {// đặt mã thiết lập của bạn ở đây, để chạy một lần: DDRB = B11111111; // đặt các chân 8 đến 13 của Arduino làm đầu vào pinMode (s0, OUTPUT); pinMode (s1, OUTPUT); pinMode (s2, OUTPUT); pinMode (s3, OUTPUT); pinMode (s4, OUTPUT); pinMode (m0, INPUT); pinMode (m1, INPUT); pinMode (m2, INPUT); pinMode (m3, INPUT); pinMode (m4, INPUT); } void loop () {// đặt mã chính của bạn ở đây, để chạy lặp lại: PORTB = B00000000; // THIẾT LẬP các chân điều khiển cho mux low for (int i = 0; i <numChannel; i ++) {// Đầu ra đọc kỹ thuật số của MUX0 - MUX4 cho cảm biến IR i // Nếu cảm biến IR là LO, hình tam giác đang bị chạm vào bởi trình phát. arr0r = digitalRead (m0); // đọc từ Mux 0, cảm biến IR i arr1r = digitalRead (m1); // đọc từ Mux 1, cảm biến IR i arr2r = digitalRead (m2); // đọc từ Mux 2, cảm biến IR i arr3r = digitalRead (m3); // đọc từ Mux 3, cảm biến IR i arr4r = digitalRead (m4); // đọc từ Mux 4, cảm biến hồng ngoại i // THỰC HIỆN VỚI ĐẦU VÀO MUX HOẶC CỬA HÀNG TRONG MỘT ĐẾN ĐÂY // PORTB ++; // tín hiệu điều khiển tăng dần cho MUX}}
Bước 9: Khuếch tán ánh sáng với acrylic
Để khuếch tán ánh sáng từ đèn LED, tôi chà nhám acrylic trong suốt bằng máy chà nhám quỹ đạo tròn. Máy chà nhám được di chuyển trên cả hai mặt của acrylic theo chuyển động hình-8. Tôi thấy phương pháp này tốt hơn nhiều so với phương pháp phun sơn "kính mờ".
Sau khi chà nhám và làm sạch acrylic, tôi sử dụng máy cắt laser để cắt các hình tam giác để lắp trên các đèn LED. Có thể cắt acrylic bằng dụng cụ cắt acrylic hoặc thậm chí là ghép hình nếu acrylic không bị nứt. Acrylic được giữ trên các đèn LED bởi các hình chữ nhật bằng ván ép dày 5mm cũng được cắt bằng máy cắt laser. Những tấm ván nhỏ này được dán vào các thanh chống trên mái vòm, và các hình tam giác acrylic được gắn lên các tấm ván.
Bước 10: Tạo nhạc với mái vòm bằng MIDI
Tôi muốn mái vòm có khả năng tạo ra âm thanh, vì vậy tôi đã thiết lập năm kênh MIDI, một kênh cho mỗi tập con của mái vòm. Trước tiên, bạn cần mua năm giắc cắm MIDI và kết nối nó như được hiển thị trong sơ đồ (xem hướng dẫn này từ bộ phận hỗ trợ Arduino để biết thêm thông tin).
Vì chỉ có một chân nối tiếp truyền trên Arduino Uno (chân 2 được gắn nhãn là chân TX), bạn cần phải khử ghép các tín hiệu được gửi đến năm giắc cắm MIDI. Tôi đã sử dụng các tín hiệu điều khiển tương tự (chân 8-12), vì tín hiệu MIDI được gửi vào thời điểm khác với thời điểm các cảm biến IR được đọc vào Arduino. Các tín hiệu điều khiển này được gửi đến bộ phân kênh 8 kênh để bạn điều khiển giắc cắm MIDI nào nhận tín hiệu MIDI do Arduino tạo ra. Tín hiệu MIDI được tạo ra bởi Arduino với thư viện tín hiệu MIDI tuyệt vời do Francois Best tạo ra. Dưới đây là một số mã ví dụ để tạo nhiều đầu ra MIDI đến các giắc cắm MIDI khác nhau với Arduino Uno:
#include // bao gồm thư viện MIDI
#define numChannel 24 // Số IR trên mỗi Tam giác #define numSection 5 // số phần trong vòm, số 24 kênh MUX, số jack MIDI // ĐẦU RA // int s0 = 8; // Điều khiển MUX 0 - PORTbD int s1 = 9; // Điều khiển MUX 1 - PORTb int s2 = 10; // Điều khiển MUX 2 - PORTb int s3 = 11; // Điều khiển MUX 3 - PORTb int s4 = 12; // Điều khiển MUX 4 - PORTb // ĐẦU VÀO // int m0 = 3; // Đầu vào MUX 0 int m1 = 4; // Đầu vào MUX 1 int m2 = 5; // Đầu vào MUX 2 int m3 = 6; // Đầu vào MUX 3 int m4 = 7; // Đầu vào MUX 4 // BIẾN // int arr0r; // kỹ thuật số đọc từ MUX0 int arr1r; // kỹ thuật số đọc từ MUX1 int arr2r; // kỹ thuật số đọc từ MUX2 int arr3r; // kỹ thuật số đọc từ MUX3 int arr4r; // kỹ thuật số đọc từ MUX4 int midArr [numSection]; // Lưu trữ xem một ghi chú đã được nhấn bởi một trong những người chơi hay chưa int note2play [numSection]; // Lưu trữ ghi chú sẽ được phát nếu cảm biến được chạm vào int Notes [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 pauseMidi = 4000; // thời gian tạm dừng giữa các tín hiệu midi MIDI_CREATE_DEFAULT_INSTANCE (); void setup () {// đặt mã thiết lập của bạn ở đây, để chạy một lần: DDRB = B11111111; // đặt các chân 8 đến 13 của Arduino làm đầu vào MIDI.begin (MIDI_CHANNEL_OFF); pinMode (s0, OUTPUT); pinMode (s1, OUTPUT); pinMode (s2, OUTPUT); pinMode (s3, OUTPUT); pinMode (s4, OUTPUT); pinMode (m0, INPUT); pinMode (m1, INPUT); pinMode (m2, INPUT); pinMode (m3, INPUT); pinMode (m4, INPUT); } void loop () {// đặt mã chính của bạn ở đây, để chạy lặp lại: PORTB = B00000000; // THIẾT LẬP các chân điều khiển cho mux low for (int i = 0; i <numChannel; i ++) {// Đầu ra đọc kỹ thuật số của MUX0 - MUX4 cho cảm biến IR i // Nếu cảm biến IR là LO, hình tam giác đang bị chạm vào bởi trình phát. arr0r = digitalRead (m0); // đọc từ Mux 0, cảm biến IR i arr1r = digitalRead (m1); // đọc từ Mux 1, cảm biến IR i arr2r = digitalRead (m2); // đọc từ Mux 2, cảm biến IR i arr3r = digitalRead (m3); // đọc từ Mux 3, cảm biến IR i arr4r = digitalRead (m4); // đọc từ Mux 4, cảm biến IR i if (arr0r == 0) // Cảm biến trên phần 0 bị chặn {midArr [0] = 1; // Người chơi 0 đã đánh một nốt, đặt HI để có đầu ra MIDI cho người chơi 0 note2play [0] = note ; // Lưu ý chơi cho Người chơi 0} if (arr1r == 0) // Cảm biến ở phần 1 bị chặn {midArr [1] = 1; // Người chơi 0 đã đánh một nốt, đặt HI để có đầu ra MIDI cho người chơi 0 note2play [1] = note ; // Lưu ý chơi cho Người chơi 0} if (arr2r == 0) // Cảm biến ở phần 2 bị chặn {midArr [2] = 1; // Người chơi 0 đã đánh một nốt, đặt HI để có đầu ra MIDI cho người chơi 0 note2play [2] = note ; // Lưu ý chơi cho Người chơi 0} if (arr3r == 0) // Cảm biến ở phần 3 bị chặn {midArr [3] = 1; // Người chơi 0 đã đánh một nốt, đặt HI để có đầu ra MIDI cho người chơi 0 note2play [3] = note ; // Lưu ý chơi cho Người chơi 0} if (arr4r == 0) // Cảm biến ở phần 4 bị chặn {midArr [4] = 1; // Người chơi 0 đã đánh một nốt, đặt HI để có đầu ra MIDI cho người chơi 0 note2play [4] = note ; // Lưu ý chơi cho Player 0} PORTB ++; // tín hiệu điều khiển tăng dần cho MUX} updateMIDI (); } void updateMIDI () {PORTB = B00000000; // ĐẶT chân điều khiển cho mux low if (midArr [0] == 1) // Đầu ra MIDI 0 đầu ra {MIDI.sendNoteOn (note2play [0], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [0], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // tăng MUX if (midArr [1] == 1) // Đầu ra MIDI của trình phát 1 {MIDI.sendNoteOn (note2play [1], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [1], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // tăng MUX if (midArr [2] == 1) // Đầu ra MIDI của trình phát 2 {MIDI.sendNoteOn (note2play [2], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [2], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // tăng MUX if (midArr [3] == 1) // Đầu ra MIDI của trình phát 3 {MIDI.sendNoteOn (note2play [3], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [3], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // tăng MUX if (midArr [4] == 1) // Đầu ra MIDI của trình phát 4 {MIDI.sendNoteOn (note2play [4], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [4], 127, 1); delayMicroseconds (pauseMidi); } midArr [0] = 0; midArr [1] = 0; midArr [2] = 0; midArr [3] = 0; midArr [4] = 0; }
Bước 11: Cấp nguồn cho mái vòm
Có một số thành phần cần được cấp nguồn trong mái vòm. Do đó, bạn sẽ cần phải tính toán các ampe rút ra từ mỗi thành phần để xác định nguồn cung cấp điện mà bạn cần mua.
Dải LED: Tôi đã sử dụng dải LED Ws2801 khoảng 3,75 mét, tiêu thụ 6,4W / mét. Điều này tương ứng với 24W (3,75 * 6,4). Để chuyển đổi giá trị này thành ampe, hãy sử dụng Nguồn = dòng điện * vôn (P = iV), trong đó V là điện áp của dải LED, trong trường hợp này là 5V. Do đó, dòng điện được rút ra từ các đèn LED là 4,8A (24W / 5V = 4,8A).
Các cảm biến IR: Mỗi cảm biến IR sử dụng khoảng 25mA, tổng cộng là 3A cho 120 cảm biến.
Arduino: 100mA, 9V
Bộ ghép kênh: Có năm bộ ghép kênh 24 kênh, mỗi bộ bao gồm bộ ghép kênh 16 kênh và bộ ghép kênh 8 kênh. Mỗi MUX 8 kênh và 16 kênh tiêu thụ khoảng 100mA. Do đó, tổng công suất tiêu thụ của tất cả MUX là 1A.
Cộng các thành phần này, tổng công suất tiêu thụ dự kiến là khoảng 9A. Dải đèn LED, cảm biến IR và bộ ghép kênh có điện áp đầu vào là 5V và Arduino có điện áp đầu vào 9V. Do đó, tôi đã chọn bộ nguồn 12V 15A, bộ chuyển đổi buck 15A để chuyển đổi 12V sang 5V và bộ chuyển đổi buck 3A để chuyển đổi 12V thành 9V cho Arduino.
Bước 12: Cơ sở mái vòm tròn
Mái vòm dựa trên một miếng gỗ hình tròn với một hình ngũ giác được khoét ra ở giữa để dễ dàng tiếp cận các thiết bị điện tử. Để tạo ra đế hình tròn này, một tấm ván ép 4x6 'đã được cắt bằng cách sử dụng bộ định tuyến CNC bằng gỗ. Một hình ghép cũng có thể được sử dụng cho bước này. Sau khi phần đế được cắt, mái vòm được gắn vào đó bằng cách sử dụng những khối gỗ nhỏ 2x3”.
Ở phía trên của đế, tôi đã gắn bộ nguồn bằng epoxy và các bộ chuyển đổi MUX’s và Buck với các miếng đệm dự phòng PCB. Các miếng đệm được gắn vào ván ép bằng cách sử dụng bộ điều hợp ren E-Z Lok.
Bước 13: Căn cứ Mái vòm Lầu Năm Góc
Ngoài phần đế hình tròn, tôi còn xây dựng phần đế hình ngũ giác cho mái vòm với một cửa sổ kính nhìn ở phía dưới. Phần đế và cửa sổ nhìn này cũng được làm từ ván ép cắt bằng bộ định tuyến CNC bằng gỗ. Các mặt của hình ngũ giác được làm bằng ván gỗ với một mặt có lỗ để các đầu nối đi qua. Sử dụng giá đỡ kim loại và khớp khối 2x3, các tấm ván gỗ được gắn vào đế hình ngũ giác. Công tắc nguồn, đầu nối MIDI và đầu nối USB được gắn vào bảng điều khiển phía trước mà tôi đã tạo bằng máy cắt laser. Toàn bộ phần đế ngũ giác được vặn vào phần đế hình tròn được mô tả trong Bước 12.
Tôi đã lắp đặt một cửa sổ ở dưới cùng của mái vòm để bất cứ ai cũng có thể nhìn lên mái vòm để xem các thiết bị điện tử. Kính nhìn được làm từ acrylic cắt bằng máy cắt laser và được gắn vào một miếng ván ép hình tròn.
Bước 14: Lập trình mái vòm
Có vô số khả năng để lập trình mái vòm. Mỗi chu kỳ của mã lấy các tín hiệu từ các cảm biến IR, cho biết các hình tam giác đã được ai đó chạm vào. Với thông tin này, bạn có thể tô màu mái vòm với bất kỳ màu RGB nào và / hoặc tạo ra tín hiệu MIDI. Dưới đây là một vài ví dụ về các chương trình mà tôi đã viết cho mái vòm:
Tô màu cho mái vòm: Mỗi hình tam giác xoay vòng qua bốn màu khi chạm vào. Khi màu sắc thay đổi, một arpeggio được phát. Với chương trình này, bạn có thể tô màu mái vòm theo hàng nghìn cách khác nhau.
Âm nhạc mái vòm: Mái vòm có năm màu, mỗi phần tương ứng với một đầu ra MIDI khác nhau. Trong chương trình, bạn có thể chọn mỗi hình tam giác sẽ phát nốt nào. Tôi đã chọn bắt đầu ở giữa C ở trên cùng của mái vòm và tăng cao độ khi các hình tam giác di chuyển đến gần chân đế hơn. Bởi vì có năm đầu ra, chương trình này lý tưởng để có nhiều người chơi mái vòm đồng thời. Sử dụng nhạc cụ MIDI hoặc phần mềm MIDI, các tín hiệu MIDI này có thể được tạo ra để phát ra âm thanh giống như bất kỳ nhạc cụ nào.
Simon: Tôi đã viết một phiên bản của Simon, trò chơi thắp sáng trí nhớ cổ điển. Một chuỗi đèn ngẫu nhiên được chiếu sáng lần lượt trên toàn bộ mái vòm. Trong mỗi lượt, người chơi phải sao chép trình tự. Nếu người chơi khớp đúng chuỗi, một đèn bổ sung sẽ được thêm vào chuỗi. Điểm số cao được lưu trữ trên một trong những phần của mái vòm. Trò chơi này cũng rất thú vị khi chơi với nhiều người.
Pong: Tại sao không chơi pong trên mái vòm? Một quả bóng truyền qua mái vòm cho đến khi chạm vào cánh khuấy. Khi nó xảy ra, một tín hiệu MIDI được tạo ra, cho biết mái chèo đã chạm bóng. Người chơi khác sau đó phải hướng mái chèo dọc theo đáy của mái vòm để nó đập bóng trở lại.
Bước 15: Hình ảnh của mái vòm đã hoàn thành
Giải thưởng lớn trong Cuộc thi Arduino 2016
Giải nhì cuộc thi Hòa âm ánh sáng 2016
Giải nhì cuộc thi Make it Glow 2016
Đề xuất:
Tường Ngói LED tương tác (Dễ dàng hơn Hình ảnh): 7 Bước (Có Hình ảnh)
Tường ngói LED tương tác (Dễ nhìn hơn): Trong dự án này, tôi đã xây dựng một màn hình LED tương tác trên tường bằng cách sử dụng Arduino và các bộ phận in 3D. Cảm hứng cho dự án này một phần đến từ ngói Nanoleaf. Tôi muốn tạo ra phiên bản của riêng mình không chỉ có giá cả phải chăng hơn mà còn
Vòm LED tương tác với Fadecandy, Xử lý và Kinect: 24 bước (có Hình ảnh)
Mái vòm LED tương tác với Fadecandy, Xử lý và Kinect: WhatWhen in Dome là một mái vòm trắc địa dài 4,2m được bao phủ bởi 4378 đèn LED. Tất cả các đèn LED đều được lập bản đồ riêng và có thể định địa chỉ. Chúng được kiểm soát bởi Fadecandy và Xử lý trên máy tính để bàn Windows. Một Kinect được gắn vào một trong những thanh chống của mái vòm, vì vậy
Cung thiên văn trắc địa từ tính: 7 bước (có hình ảnh)
Cung thiên văn trắc địa từ tính: Xin chào tất cả các bạn! Tôi muốn hướng dẫn bạn quá trình tạo ra một thiên văn trắc địa được giữ bằng nam châm và dây thủ công! Lý do sử dụng nam châm này là để dễ dàng tháo lắp khi trời mưa hoặc điều kiện thời tiết lý tưởng. Theo cách này
Cách tạo một mái vòm trắc địa kiểu Temcor trong Autodesk Inventor: 8 bước
Cách tạo một mái vòm theo phong cách Temcor trong Autodesk Inventor: Hướng dẫn này sẽ chỉ cho bạn cách tạo một mái vòm kiểu Temcor chỉ bằng một chút toán học. phương pháp chia nhỏ của Trạm Nam Cực Amundsen-Scott cũ, s
Tường leo tương tác: 4 bước (có hình ảnh)
Tường leo tương tác: Qua hướng dẫn này, bạn sẽ học cách chế tạo các bộ phận để xây tường leo núi tương tác. Bạn sẽ sử dụng nhựa đúc, mạch đèn LED cơ bản và thiết bị vi điều khiển Bluetooth để cho phép điện thoại của bạn ra lệnh mức độ khó khăn