Mục lục:

Azimuthal Projection 3D Map trang trí X Trò chơi câu đố âm nhạc dân gian - Arduino: 7 bước
Azimuthal Projection 3D Map trang trí X Trò chơi câu đố âm nhạc dân gian - Arduino: 7 bước

Video: Azimuthal Projection 3D Map trang trí X Trò chơi câu đố âm nhạc dân gian - Arduino: 7 bước

Video: Azimuthal Projection 3D Map trang trí X Trò chơi câu đố âm nhạc dân gian - Arduino: 7 bước
Video: Tutorial – How to export 3D photogrammetry meshes from Google Maps 2024, Tháng bảy
Anonim
Image
Image
Thiết kế bảng
Thiết kế bảng

GIỚI THIỆU

Trang sau sẽ hướng dẫn bạn cách tạo một dự án Arduino, có hai chức năng chính - trang trí đơn giản với ánh sáng và trò chơi giải đố âm nhạc dân gian, kết hợp tất cả các lĩnh vực địa lý, hình học, bản đồ, Liên hợp quốc và âm nhạc trong một. Được xây dựng dựa trên cấu trúc của các hình lục giác, thiết bị phác họa bản đồ thế giới trong Azimuthal Equidistant Projection, đây là hình thức chiếu bản đồ được Liên hợp quốc sử dụng (và biểu tượng của nó).

Khi kích hoạt chế độ trang trí, các lục địa trên bản đồ sẽ phát sáng với các màu sắc khác nhau được xác định bởi sự kết hợp ngẫu nhiên của các giá trị RGB thông qua việc sử dụng đèn LED RGB.

Mặt khác, chế độ chơi yêu cầu người dùng nhận ra nguồn gốc của các bài hát dân ca (được chọn bằng cách tạo ngẫu nhiên các số từ 1 đến 20) và đặt bảng lục của câu trả lời của mình vào vị trí tương ứng trên bảng gỗ chính trong một bộ thời gian (đặt trước trong 1 phút).

_

QUÂN NHU

Vật liệu thực tế

  • Đèn LED RGB 5mm * 20
  • Dây điện
  • Điện trở * 9
  • Bảng Arduino * 1 (bất kỳ loại nào)
  • Bảng bánh mì * 3
  • Các nút * 7
  • Bảng hiển thị LCD I2C * 1
  • Hộp các tông (13 * 9 * 5,7 inch; 33 * 23 * 14,5 cm)
  • Bảng gỗ (37,5 * 29 * 0,8 cm)
  • Bảng acrylic (trong suốt * 2, nửa trong suốt * 1)
  • Bộ sạc di động * 1

Công cụ:

  • Lưỡi dao * 1
  • Chất kết dính UV Cure * 1
  • Băng hai mặt * 1 cuộn
  • Súng bắn keo nóng * 1

Máy móc:

Máy cắt laser

Phần mềm:

  • Adobe Illustrator
  • Adobe Photoshop
  • Rhino 3D

Bước 1: Thiết kế bảng

Bạn có thể tải trực tiếp file đính kèm hoặc làm theo các bước dưới đây.

Phác thảo bản đồ

  1. Tải xuống phác thảo bản đồ từ Google

    1. Google "biểu trưng các quốc gia thống nhất"
    2. Chọn "công cụ - kích thước - lớn"
    3. Tải xuống hình ảnh yêu thích nhất của bạn (hình ảnh được sử dụng bởi dự án này: liên kết) * Cố gắng không chọn những hình ảnh có các đường phức tạp chồng lên các vùng đất lục địa *
  2. Chuyển bản đồ đã tải xuống sang phiên bản in

    1. Tô màu các vùng không mong muốn thành màu trắng bằng cách sử dụng chức năng cọ vẽ trong Adobe Photoshop
    2. Xuất tệp (JPEG)
    3. Nhập tệp vào Adobe Illustrator và sử dụng chức năng "theo dõi hình ảnh" để theo dõi bản đồ
    4. Xuất tệp (dxf)

Thêm nền hình lục giác

  1. Nhập tệp dxf vào Rhino
  2. Chọn chức năng "đa giác" và nhập "6" cho tùy chọn "NumSides"
  3. Nhập "3.5" cho giá trị bán kính
  4. Vẽ 28 hình lục giác có kích thước bằng nhau
  5. Xuất tệp trong 3dm

Bước 2: Cắt Laser

Image
Image
Sự cắt bằng tia la-ze
Sự cắt bằng tia la-ze
Sự cắt bằng tia la-ze
Sự cắt bằng tia la-ze
Sự cắt bằng tia la-ze
Sự cắt bằng tia la-ze
  1. Nhập tệp đã hoàn thành trước đó vào xxx.
  2. Sử dụng máy cắt laser, in phần thân chính trên bảng gỗ và các lục địa trên bảng acrylic (2 trong suốt & 1 nửa trong suốt) (video được cung cấp ở trên)

Bước 3: Xây dựng thiết bị

Xây dựng thiết bị
Xây dựng thiết bị
Xây dựng thiết bị
Xây dựng thiết bị
Xây dựng thiết bị
Xây dựng thiết bị

Bo mạch sau khi cắt laser

  • Lục địa acrylic

    1. Sử dụng chất kết dính có thể chữa khỏi UV để dán ba bảng của mỗi lục địa lại với nhau (với lớp bán trong suốt làm lớp giữa)
    2. Sử dụng đèn UV để chiếu vào các khu vực được dán để cho phép keo đông lại
  • Cơ sở bảng gỗ

    1. Loại bỏ thủ công các vùng đất nhỏ bị mắc kẹt trên bảng gỗ chính
    2. * Nếu bất kỳ phần nào của tấm gỗ bị hỏng, hãy sử dụng chất kết dính có thể xử lý được bằng tia UV để dán chúng lại *

Xây dựng cơ sở (Nền dưới cùng của Toàn bộ thiết bị)

  1. Tìm một hộp các tông có kích thước phù hợp, với kích thước gần bằng 13 * 9 * 5,7 inch (33 * 23 * 14,5 cm)
  2. Sử dụng bảng gỗ làm mô hình tham chiếu, vạch các phần lục địa lên bề mặt trên cùng của hộp
  3. Theo dấu phần dưới cùng của các nút lên bề mặt trên cùng của hộp, với mỗi nút được căn giữa trong mỗi phần lục địa được theo dõi
  4. Sử dụng một lưỡi dao để cắt các bộ phận của nút theo dấu vết
  5. Trong các phần lục địa được đánh dấu, sử dụng một lưỡi dao để cắt các đoạn ngắn xung quanh nút
  6. Theo dõi thêm hai phần dưới cùng của nút ở phía bên phải của hộp (cố gắng căn chỉnh các dấu vết với cùng chiều cao)
  7. Theo dõi bảng hiển thị LCD ở phía bên phải của hộp (phía trên hai nút ở bước trước)
  8. Dùng lưỡi dao cắt bỏ hai phần nút và phần LCD theo dấu vết ở bước 6 và 7

Bước 4: Xây dựng mạch

Xây dựng mạch
Xây dựng mạch

Tham khảo các sơ đồ trên, xây dựng mạch.

Ghi chú:

  • Điện trở của đèn LED RGB và điện trở của các nút là khác nhau, XEM RÕ RÀNG!
  • Vì Bảng hiển thị LCD ở trên không có kiểu I2C nên nó không được kết nối hoàn hảo. (Bảng mạch hiển thị LCD với kiểu I2C chỉ phải cắm bốn chân)

    • Kết nối GND trên màn hình và bảng Arduino
    • Kết nối VCC trên màn hình với các chân dương trên bảng mạch
    • Kết nối các SDA trên màn hình và bảng Arduino
    • Kết nối các SCL trên màn hình và bảng Arduino

Bước 5: Tải lên mã

Mã cho dự án này có thể được tìm thấy ở đây hoặc bên dưới.

Mỗi dòng mã hóa đều có phần ghi chú bên lề giải thích mục đích và chức năng của nó.

Ghi chú:

  • Tất cả các chân D cụ thể có thể được thay đổi và điều chỉnh dựa trên cách bố trí mạch của bạn
  • Tất cả các giây bị trì hoãn có thể được thay đổi thành các giá trị khác nhau, nhưng ĐỪNG XÓA chúng! (Những giây bị trì hoãn này cho phép mã trôi chảy một cách logic hơn. Nếu không có chúng, một số phần của mã có thể không hoạt động!)
  • Trên dòng 24 (phần giới thiệu "vòng lặp for"), bạn có thể chỉ định số lần lặp lại mà bạn muốn vòng lặp chạy (giá trị ban đầu là 5)
  • Sự kết hợp màu sắc của đèn LED RGB trong các vòng lặp "nếu được nhấn" và "nếu không được nhấn" của mỗi nút có thể được điều chỉnh và tùy chỉnh. (Ban đầu, các đèn LED RGB sẽ sáng màu xanh lục nếu được nhấn trong khi chúng sẽ sáng màu đỏ nếu không được nhấn. Bạn có thể thay đổi các giá trị để có màu sáng tạo cho câu trả lời ĐÚNG và SAI)

#bao gồm

#include LiquidCrystal_I2C lcd_I2C_27 (0x27, 16, 2); // đặt địa chỉ LCD cho 16 ký tự và hiển thị 2 dòng int _R; // giới thiệu biến R, là viết tắt của giá trị Đỏ của đèn LED RGB int _G; // giới thiệu biến G, là viết tắt của giá trị Xanh lục của đèn LED RGB int _B; // giới thiệu biến B, là viết tắt của giá trị Blue của đèn LED RGB int _SongNumber; // giới thiệu biến SongNumber void setup () {pinMode (10, INPUT); // đặt D10 làm đầu vào cho nút pinMode trang trí bản đồ (9, INPUT); // đặt D9 làm đầu vào cho nút pinMode của trò chơi giải đố (8, INPUT); // đặt D8 làm đầu vào cho nút Eurasia pinMode (4, INPUT); // đặt D4 làm đầu vào cho nút pinMode ở Bắc Mỹ (3, INPUT); // đặt D3 làm đầu vào cho nút pinMode Nam Mỹ (2, INPUT); // đặt D2 làm đầu vào cho nút Châu Phi pinMode (1, INPUT); // đặt D1 làm đầu vào cho nút Châu Đại Dương lcd_I2C_27.init (); // khởi tạo bảng hiển thị LCD lcd_I2C_27.backlight (); // bật đèn nền của bảng hiển thị LCD} void loop () {if (digitalRead (10)) {// nếu nhấn nút map-decoration for (int i = 0; i <5; ++ i) {// chạy vòng lặp sau trong 5 lần _R = random (0, 1023); // cho biến R một giá trị ngẫu nhiên từ 0 đến 1023 _G = random (0, 1023); // cấp cho biến G một giá trị ngẫu nhiên từ 0 đến 1023 _B = random (0, 1023); // cấp cho biến B một giá trị ngẫu nhiên từ 0 đến 1023 analogWrite (13, (_R / 4)); // giá trị R của đèn LED RGB cho nhóm đầu tiên thay thế và ghi giá trị biến từ 0 đến 255 analogWrite (12, (_G / 4)); // giá trị G của đèn LED RGB cho nhóm đầu tiên thay thế và ghi giá trị biến từ 0 đến 255 analogWrite (11, (_B / 4)); // giá trị B của đèn LED RGB cho nhóm đầu tiên thay thế và ghi giá trị biến từ 0 đến 255 analogWrite (7, (_R / 4)); // giá trị R của đèn LED RGB cho nhóm thứ hai thay thế và ghi giá trị biến từ 0 đến 255 analogWrite (6, (_G / 4)); // giá trị G của đèn LED RGB cho nhóm thứ hai thay thế và ghi giá trị biến từ 0 đến 255 analogWrite (5, (_B / 4)); // giá trị B của đèn LED RGB cho nhóm thứ hai thay thế và ghi giá trị biến từ 0 đến 255 delay (3000); // đợi 3000 mili giây (3 giây)} // vì giá trị của biến R, G, B được xác định trong vòng lặp nên sẽ có năm tổ hợp màu khác nhau trên mỗi vòng lặp} if (digitalRead (9)) {// if nút trò chơi giải đố được nhấn _SongNumber = random (1, 20); // cung cấp cho biến SongNumber một giá trị ngẫu nhiên từ 1 đến 20 lcd_I2C_27.setCursor (0, 0); // đặt con trỏ, đếm bắt đầu bằng 0 lcd_I2C_27.print (_SongNumber); // in giá trị của SongNumber ra bảng hiển thị LCD analogWrite (13, 0); // đặt lại và ghi giá trị của D13 là 0 analogWrite (12, 0); // đặt lại và ghi giá trị của D12 là 0 analogWrite (11, 0); // đặt lại và ghi giá trị của D11 là 0 analogWrite (7, 0); // đặt lại và ghi giá trị của D7 là 0 analogWrite (6, 0); // đặt lại và ghi giá trị của D6 là 0 analogWrite (5, 0); // đặt lại và ghi giá trị của D5 là 0 nếu (_SongNumber> = 1 && _SongNumber = 4 && _SongNumber = 7 && _SongNumber = 11 && _SongNumber = 15 && _SongNumber = 18 && _SongNumber <= 20) {// nếu giá trị của Biến SongNumber là độ trễ từ 18 đến 20 (60000); // chờ 60000 mili giây để người chơi nghe bản nhạc dân gian (60 giây; 1 phút) if (digitalRead (1)) {// nếu nhấn nút Oceania analogWrite (13, 0); // analog Ghi giá trị của D13 là 0 analogWrite (12, 255); // analog Ghi giá trị của D12 là 255 analogWrite (11, 0); // analog Ghi giá trị của D11 dưới dạng 0 analogWrite (7, 0); // analog Ghi giá trị của D7 là 0 analogWrite (6, 255); // analog Ghi giá trị của D6 255 analogWrite (5, 0); // analogWrite giá trị của D5 là 0} // tất cả các đèn LED RGB sẽ sáng màu xanh lục khác {// nếu nút Oceania không được nhấn analogWrite (13, 255); // analog Ghi giá trị của D13 là 255 analogWrite (12, 0); // analog Ghi giá trị của D12 là 0 analogWrite (11, 0); // analog Ghi giá trị của D11 dưới dạng 0 analogWrite (7, 255); // analog Ghi giá trị của D7 là 255 analogWrite (6, 0); // analog Ghi giá trị của D6 là 0 analogWrite (5, 0); // analog Viết giá trị của D5 là 0} // tất cả các đèn LED RGB sẽ sáng màu đỏ} // vì các câu trả lời đúng cho Bài hát số 18 đến 20 đều là Châu Đại Dương, "vòng lặp nếu" này truy cập xem câu trả lời của người chơi có đúng hay không. không lcd_I2C_27.clear (); // xóa độ trễ bảng hiển thị LCD (1000); // đợi trong 1000 mili giây (1 giây)}}

Bước 6: Hoàn thiện thiết bị

  1. Mở hộp các tông và đặt các mạch đã xây dựng trước đó vào (bao gồm tất cả các phần tử, ví dụ: ba bảng mạch, bảng Arduino, bộ sạc di động)
  2. Đề cập đến mã và các phần lục địa được theo dõi trên đầu hộp, hãy nhét các nút vào từng vị trí tương ứng của chúng

    * Bạn có thể tham khảo ghi chú bên sau các mã để đảm bảo nút ghim nào dành cho châu lục nào *

  3. Nhét hai "nút chức năng" (bản đồ trang trí của D10 và trò chơi giải đố của D9) vào mỗi phần cắt ở phía bên phải của hộp
  4. Lắp bảng hiển thị LCD vào phần cắt của nó ở bên phải của hộp
  5. Mở hộp và đảm bảo tất cả các dây được kết nối đúng cách với bảng
  6. Dán phần nền bảng gỗ vào phần trên cùng của hộp bằng cách sử dụng băng dính hai mặt (đảm bảo căn chỉnh đúng cách để các nút có thể vừa khít với phần đã cắt của bảng gỗ)
  7. Sử dụng súng bắn keo nóng để lấp đầy các phần khu vực nhỏ (không phải các lục địa chính)

Bước 7: XONG !!!!!

Đối với trò chơi giải đố, hãy truy cập liên kết để có danh sách phát thử nghiệm!

Đề xuất: