Mục lục:
Video: Chuột AIR 3D - Arduino + Xử lý: 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:37
Chuột 3D AIR | Arduino + ProcessingTôi là một sinh viên thiết kế công nghiệp và năm ngoái là một phần của khóa học có tên "Công nghệ như nguyên liệu RAW", tôi đã xây dựng dự án này như tác phẩm cuối cùng của mình. Phần lớn thời gian làm việc với SolidWorks, một phần mềm CAD để thiết kế và chế tạo. Xoay một cơ thể rắn trên màn hình được thực hiện bằng nút chuột giữa. Tôi đang tìm kiếm thứ gì đó trực quan hơn. Đây là cách tôi đã thực hiện chuột không khí 3D, trong đó việc quay thực tế của một đối tượng được thực hiện bằng cách di chuyển chuột trong không khí trên cả 3 trục - giống như cách bạn xoay đối tượng nếu bạn cầm nó trên tay. Tôi đã sử dụng Arduino, một vài cảm biến và một bản phác thảo Xử lý. viết một cái nếu bạn biết cách:) - Vì tất cả phần cứng không phải của tôi, con chuột 3D thực tế đã biến mất từ lâu, và tôi đang sử dụng một số ảnh và video để thử và tạo ra một số ý nghĩa trong tất cả điều này và để cung cấp cho bạn một số ý tưởng nếu bạn muốn thử và tự xây dựng… Hãy tận hưởng nó… (Đây là video có thể hướng dẫn đầu tiên của tôi) Đây là video demo về dự án đã hoàn thành
Bước 1: Phần cứng và Nội dung
Nó không phải là rẻ nhất có thể dạy được vì nó dựa trên cảm biến gia tốc + la bàn 3 trục. Ngoài ra, bạn sẽ cần: * Một con chuột - loại đã qua sử dụng sẽ tốt hơn (chỉ vì nó đã qua sử dụng và rẻ hơn), bất kỳ con chuột nào cũng nên làm. Bạn cần phải có một số không gian để chứa các cảm biến và một số dây dẫn bổ sung, vì vậy đừng mua những con chuột siêu mỏng / quá nhỏ. $ 149 * Công cụ chuyển đổi cấp độ logic - PHẢI! Vì Arduino là 5V và cảm biến 3 trục là 3.3V, bạn cần một trong những cảm biến đó để chuyển đổi 5V thành 3.3V. Nó có một tên tuổi lớn, nhưng chỉ có giá $ 1,95 tại SpurkFun. * Máy dò quang học lớn / Phototransistor - Đây là một cảm biến quang học đơn giản, được sử dụng trong dự án này để phát hiện khi con chuột đang được nhấc ra khỏi bề mặt làm việc. Mua tại SpurkFun với giá 2,25 đô la Nếu bạn không có đủ không gian để đặt cái này bên trong con chuột đã chọn của mình, bạn có thể sử dụng cái này, nhỏ hơn và rẻ hơn. * Một (1) đèn LED - đừng bận tâm đến màu sắc, cực sáng sẽ hoạt động tốt hơn. * 2 Điện trở - Một (1) x 100Ω và Một (1) x 100KΩ (Đối với cảm biến quang học) * Bảng Arduino - DA! Tôi đã sử dụng mô hình Diecimila. Một Duemilanove mới hơn có thể bán được tại SpurkFun với giá khoảng $ 29,95 (Cũng nên hoạt động) + Đã cài đặt phần mềm Arduino. * Đã cài đặt phần mềm xử lý. * Mã nguồn của dự án (Đừng lo, bạn sẽ tải xuống trong giây lát.) keo nóng (để cố định mọi thứ vào vị trí) Một vài con vít nhỏ. Khoảng 10cm của một neo gỗ 6mm (Dia.). Một số dây thừa. ĐỂ tạo hình). ("Ok, đừng ghét tôi vì bước này, tiếng Anh là ngôn ngữ thứ 2 của tôi, nếu tôi sai ở bước này, tôi xin lỗi, tôi chắc rằng bạn sẽ hiểu những gì tôi đang làm trong giây lát. Khi nào bạn sẽ thấy nó trong hình ảnh ")
Bước 2: Điện tử
Mọi thứ cần được hàn lại với nhau… Theo một cách nào đó… LƯU Ý: Cảm biến 3 trục là một thứ đắt tiền, hãy kiểm tra kỹ hệ thống dây điện trước khi cấp nguồn cho tất cả mọi thứ… Xem sơ đồ đính kèm cho tất cả hệ thống dây điện được sử dụng trong dự án này. chỉ có thể hoạt động nếu bạn sử dụng các số pin giống như tôi đã làm, nhưng vui lòng thay đổi các số đó khi kết nối miễn là bạn thay đổi các số thích hợp trong mã. Kết nối cảm biến 3 trục với bộ chuyển đổi mức logic: Sensor VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Converter TXI (Chan1) Converter TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Converter TXI (Chan2) Converter TXO (Chan2) -> Arduino ANALOG IN 5Converter GND (ít nhất một trong số chúng) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3Cảm biến quang học cho Arduino: Xem hình ảnh đính kèm Ký số trong = Pin 11 trên ArduinoLED: GND cho một số GND (Tôi đã sử dụng một trong các cảm biến quang học) + đến Arduino PIN 13 (Điều này đã được thực hiện vì chân này đã có điện trở trên bo mạch, nếu bạn sử dụng một điện trở khác, hãy đảm bảo sử dụng điện trở để bạn không làm cháy đèn LED)
Bước 3: Chuẩn bị chuột
Đây là nơi các cảm biến tìm thấy vị trí của chúng bên trong vỏ chuột Tìm vị trí tốt nhất để cố định cảm biến 3 trục. Hãy chắc chắn rằng nó đã được cân bằng và chú ý đến hướng (Bạn sẽ biết khi nào bạn có cảm biến trong tay) Bạn có thể sửa nó theo cách nào bạn muốn, tôi đã sử dụng 2 đoạn ngắn của neo bằng gỗ, được khoan để chấp nhận 2 ốc vít nhỏ và được dán nóng vào bo mạch chính của chuột. Đối với cảm biến quang học, hãy tạo hình một lỗ hình chữ nhật ở dưới cùng của chuột, ý tưởng là để cảm biến luôn "nhìn thấy" bảng. Khi chuột được nhấc lên và trạng thái cảm biến là "mở" (không có bảng để xem), chuột sẽ chuyển sang chế độ 3D (chạy bản phác thảo Xử lý) Định hình một lỗ khác để định tuyến các dây phụ (từ cảm biến đến Arduino) ra khỏi nhà nhựa. Của tôi nằm ở phía bên tay phải của chuột, cố định đèn LED ở vị trí sẽ hiển thị. Trong dự án này, đèn LED là chỉ báo chế độ 3D. Tôi đặt của tôi bên cạnh bánh xe chuột silicone. Khi con chuột được nhấc lên, bánh xe có một ánh sáng màu xanh lam đẹp mắt.
Bước 4: Mã nguồn
Mã cho Arduino được viết bởi Shachar Geiger, giáo viên của tôi, Và đã được tôi sửa đổi cho dự án này. Mã khối 3D là mã cơ bản được tìm thấy trên trang web Xử lý. Tôi đã sửa đổi nó một chút. +1800) / 14; Serial.write (x); Serial.write ('y'); y = (y + 1800) / 14; Serial.write (y); Serial.write ('z'); z = (z + 1800) / 14; Serial.write (z); Thông tin từ cảm biến và Arduino đi đến bản phác thảo Xử lý cho từng trục riêng biệt, nhưng với ký tự trục trước (đối với exp. X12 Y200 Z130), mã sau sẽ loại bỏ ký tự và chỉ để lại các giá trị được gửi đến COM port while (port.available () == 0) {} char reading = 0; while (reading! = 'x') {while (port.available () == 0) {} read = (char) port.read ();} X = port.read (); while (reading! = 'Y') {while (port.available () == 0) {} read = (char) port.read ();} Y = port.read (); while (reading! = 'z') {while (port.available () == 0) {} read = (char) port.read ();} Z = port.read (); Đoạn mã này loại bỏ tất cả các giá trị âm… if ((X! = -1) && (Y! = -1) && (Z! = -1)) {xoayZ (- (float) Y / 25.0); xoayX ((float) X / 25.0); xoayY ((float) Z / 25.0); pX = X; pY = Y; pZ = Z;} else {xoayZ (- (float) pY / 25.0); xoayX ((float) pX /25.0);rotateY((float)pZ/25.0);} Tệp ZIP đính kèm chứa cả Arduino và mã Xử lý
Bước 5: Video
Vậy đó… Đây là dự án đã hoàn thành trong một video. Có một trục trặc nhỏ (Bạn có thể thấy rằng khối lập phương đôi khi “nhảy” trong video), Điều này là do trục Z, có thể không xảy ra với bạn…