Mục lục:
- Quân nhu
- Bước 1: Kiểm tra mã:
- Bước 2: Phần còn lại của mã…
- Bước 3: Kết nối với dữ liệu thuần túy…
- Bước 4:
Video: Sử dụng Bảng cảm biến nghệ thuật phức hợp để kiểm soát dữ liệu thuần túy qua WiFi: 4 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:32
Bạn đã bao giờ muốn thử nghiệm kiểm soát cử chỉ chưa? Làm cho mọi thứ chuyển động bằng một cái vẫy tay của bạn? Điều khiển nhạc bằng cách vặn cổ tay của bạn? Hướng dẫn này sẽ chỉ cho bạn cách làm!
Bảng cảm biến nghệ thuật phức hợp (complexarts.net) là một vi điều khiển đa năng dựa trên ESP32 WROOM. Nó có tất cả các tính năng của nền tảng ESP32, bao gồm WiFi và Bluetooth tích hợp, cùng 23 chân GPIO có thể định cấu hình. Bo mạch cảm biến cũng có BNO_085 IMU - bộ xử lý chuyển động 9 DOF thực hiện các phương trình kết hợp cảm biến và phương trình quaternion trên bo mạch, cung cấp dữ liệu định hướng, vectơ trọng lực và gia tốc tuyến tính siêu chính xác. Bảng cảm biến có thể được lập trình bằng Arduino, MicroPython hoặc ESP-IDF, nhưng đối với bài học này, chúng ta sẽ lập trình bảng bằng Arduino IDE. Điều quan trọng cần lưu ý là các mô-đun ESP32 không được lập trình nguyên bản từ Arduino IDE, nhưng việc thực hiện điều đó rất đơn giản; có một hướng dẫn tuyệt vời ở đây: https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/ sẽ mất khoảng 2 phút để hoàn thành. Phần thiết lập cuối cùng chúng ta cần là trình điều khiển cho chip USB-to-UART trên Bảng cảm biến, có thể tìm thấy tại đây: https://www.silabs.com/products/development-tools/software/usb-to -uart-bridge-vcp-driver. Chỉ cần chọn hệ điều hành của bạn và cài đặt, quá trình này sẽ mất khoảng 2 phút nữa. Sau khi hoàn tất, chúng tôi sẵn sàng tiếp tục!
[Bài học này không giả sử bất kỳ sự quen thuộc nào với Arduino hoặc Dữ liệu thuần túy, tuy nhiên nó sẽ không bao gồm cài đặt của chúng. Arduino có thể được tìm thấy tại aduino.cc. Dữ liệu thuần túy có thể được tìm thấy tại puredata.info. Cả hai trang web đều có hướng dẫn cài đặt và thiết lập dễ làm theo.]
Ngoài ra… các khái niệm được đề cập trong hướng dẫn này, chẳng hạn như thiết lập kết nối UDP, lập trình ESP32 với Arduino và xây dựng bản vá dữ liệu thuần túy cơ bản - là những khối xây dựng có thể được áp dụng cho vô số dự án, vì vậy đừng lo lắng ở đây khi bạn đã đã gỡ bỏ những khái niệm này!
Quân nhu
1. Bảng cảm biến nghệ thuật phức hợp
2. Arduino IDE
3. Dữ liệu thuần túy
Bước 1: Kiểm tra mã:
Đầu tiên, chúng ta sẽ xem xét mã Arduino. (Nguồn có sẵn tại https://github.com/ComplexArts/SensorBoardArduino. Bạn nên làm theo mã khi chúng tôi thực hiện.) Chúng tôi cần một số thư viện, một trong số đó không phải là thư viện Arduino cốt lõi, vì vậy bạn có thể cần phải cài đặt nó. Dự án này dựa trên tệp SparkFun_BNO080_Arduino_Library.h, vì vậy nếu không có tệp đó, bạn cần phải đi tới Sketch -> Bao gồm Thư viện -> Quản lý Thư viện. Gõ “bno080” và thư viện đã đề cập ở trên sẽ xuất hiện. Nhấn cài đặt.
Ba thư viện khác được sử dụng sẽ đi kèm với Arduino theo mặc định. Đầu tiên, chúng tôi sẽ sử dụng thư viện SPI để giao tiếp với BNO. Cũng có thể sử dụng UART giữa ESP32 và BNO, nhưng vì SparkFun đã có một thư viện sử dụng SPI, chúng tôi sẽ gắn bó với điều đó. (Cảm ơn, SparkFun!) Bao gồm tệp SPI.h sẽ cho phép chúng tôi chọn các chân và cổng mà chúng tôi muốn sử dụng cho giao tiếp SPI.
Thư viện WiFi chứa các chức năng cho phép chúng ta truy cập vào mạng không dây. WiFiUDP chứa các chức năng cho phép chúng tôi gửi và nhận dữ liệu qua mạng đó. Hai dòng tiếp theo đưa chúng tôi vào mạng - nhập tên mạng và mật khẩu của bạn. Hai dòng sau đó chỉ định địa chỉ mạng và cổng mà chúng tôi đang gửi dữ liệu của mình. Trong trường hợp này, chúng tôi sẽ chỉ phát sóng, có nghĩa là gửi nội dung đó cho bất kỳ ai trên mạng của chúng tôi đang lắng nghe. Số cổng xác định ai đang lắng nghe, như chúng ta sẽ thấy ở phần sau.
Hai dòng tiếp theo này tạo thành viên cho các lớp tương ứng của chúng để chúng ta có thể dễ dàng truy cập các chức năng của chúng sau này.
Tiếp theo, chúng tôi chỉ định các chân thích hợp của ESP cho các chân tương ứng của chúng trên BNO.
Bây giờ chúng ta thiết lập thành viên lớp SPI, cũng thiết lập tốc độ cổng SPI.
Cuối cùng chúng ta đến chức năng thiết lập. Tại đây, chúng tôi sẽ bắt đầu một cổng nối tiếp để chúng tôi có thể giám sát đầu ra của mình theo cách đó nếu chúng tôi muốn. Sau đó, chúng tôi bắt đầu WiFi. Lưu ý rằng chương trình đợi kết nối WiFi trước khi tiếp tục. Sau khi kết nối WiFi, chúng tôi bắt đầu kết nối UDP, sau đó in tên mạng và địa chỉ IP của chúng tôi vào màn hình nối tiếp. Sau đó, chúng tôi khởi động cổng SPI và kiểm tra giao tiếp giữa ESP và BNO. Cuối cùng, chúng tôi gọi hàm “enableRotationVector (50);” vì chúng ta sẽ chỉ sử dụng vectơ quay cho bài học này.
Bước 2: Phần còn lại của mã…
Trước khi chuyển đến vòng lặp chính (), chúng ta có một hàm gọi là “mapFloat”.
Đây là một chức năng tùy chỉnh mà chúng tôi đã thêm để ánh xạ hoặc chia tỷ lệ giá trị cho các giá trị khác. Chức năng bản đồ tích hợp trong Arduino chỉ cho phép ánh xạ số nguyên, nhưng tất cả các giá trị ban đầu của chúng ta từ BNO sẽ nằm trong khoảng từ -1 đến 1, vì vậy chúng ta sẽ phải chia tỷ lệ chúng theo cách thủ công với các giá trị mà chúng ta thực sự muốn. Tuy nhiên, đừng lo lắng - đây là chức năng đơn giản để thực hiện điều đó:
Bây giờ chúng ta đến với vòng lặp chính (). Điều đầu tiên bạn sẽ nhận thấy là một chức năng chặn khác, giống như chức năng khiến chương trình chờ kết nối mạng. Quá trình này tạm dừng cho đến khi có dữ liệu từ BNO. Khi chúng tôi bắt đầu nhận dữ liệu đó, chúng tôi gán các giá trị quaternion đến cho các biến dấu phẩy động và in dữ liệu đó ra màn hình nối tiếp.
Bây giờ chúng ta cần lập bản đồ các giá trị đó.
[Giới thiệu về giao tiếp UDP: dữ liệu được truyền qua UDP dưới dạng gói 8-bit hoặc các giá trị từ 0-255. Bất kỳ thứ gì trên 255 sẽ được đẩy sang gói tiếp theo, làm tăng thêm giá trị của nó. Do đó, chúng tôi cần đảm bảo rằng không có giá trị nào trên 255.]
Như đã đề cập trước đây, chúng tôi có các giá trị đến trong phạm vi -1 - 1. Điều này không giúp chúng tôi làm việc nhiều, vì bất kỳ thứ gì dưới 0 sẽ bị cắt (hoặc hiển thị là 0) và chúng tôi không thể làm một tấn có giá trị từ 0 - 1. Đầu tiên chúng ta phải khai báo một biến mới để giữ giá trị được ánh xạ của chúng ta, sau đó chúng ta lấy biến ban đầu đó và ánh xạ nó từ -1 - 1 đến 0 - 255, gán kết quả cho biến mới của chúng ta được gọi là Nx.
Bây giờ chúng ta đã có dữ liệu được ánh xạ, chúng ta có thể đặt gói tin của chúng ta lại với nhau. Để làm được điều đó, chúng ta phải khai báo vùng đệm cho dữ liệu gói, kích thước của nó là [50] để đảm bảo rằng tất cả dữ liệu sẽ phù hợp. Sau đó, chúng tôi bắt đầu gói với địa chỉ và cổng mà chúng tôi đã chỉ định ở trên, ghi bộ đệm của chúng tôi và 3 giá trị vào gói tới, sau đó kết thúc gói.
Cuối cùng, chúng tôi in tọa độ được ánh xạ của chúng tôi vào màn hình nối tiếp. Bây giờ mã Arduino đã hoàn thành! Flash mã vào Bảng cảm biến và kiểm tra màn hình nối tiếp để đảm bảo mọi thứ đang hoạt động như mong đợi. Bạn sẽ thấy các giá trị quaternion cũng như các giá trị được ánh xạ.
Bước 3: Kết nối với dữ liệu thuần túy…
Bây giờ cho Dữ liệu thuần túy! Mở Dữ liệu thuần túy và bắt đầu một bản vá mới (ctrl n). Bản vá mà chúng tôi sẽ tạo rất đơn giản, chỉ có bảy đối tượng. Đầu tiên chúng ta sẽ tạo là đối tượng [netreceive]. Đây là bánh mì và bơ của bản vá của chúng tôi, xử lý tất cả các giao tiếp UDP. Lưu ý rằng có ba đối số cho đối tượng [netreceive]; -u chỉ định UDP, -b chỉ định nhị phân và 7401 tất nhiên là cổng mà chúng ta đang nghe. Bạn cũng có thể gửi thông báo “nghe 7401” tới [netreceive] để chỉ định cổng của bạn.
Khi chúng tôi có dữ liệu đến, chúng tôi cần giải nén nó. Nếu chúng tôi kết nối một đối tượng [print] với [netrecieve], chúng tôi có thể thấy dữ liệu ban đầu đến với chúng tôi dưới dạng một dòng số, nhưng chúng tôi muốn phân tích cú pháp các số đó và sử dụng từng số cho một việc khác. Ví dụ: bạn có thể muốn sử dụng xoay trục X để điều khiển cao độ của bộ dao động và trục Y cho âm lượng hoặc bất kỳ khả năng nào khác. Để làm điều đó, luồng dữ liệu đi qua một đối tượng [unpack] có ba float (f f f) là các đối số của nó.
Bây giờ bạn đã tiến xa đến mức này, thế giới là con hàu của bạn! Bạn có một bộ điều khiển không dây mà bạn có thể sử dụng để thao tác bất cứ thứ gì bạn muốn trong vũ trụ Dữ liệu thuần túy. Nhưng hãy dừng lại ở đó! Bên cạnh Vectơ xoay, hãy thử gia tốc kế hoặc từ kế. Hãy thử sử dụng các chức năng đặc biệt của BNO như “nhấn đúp” hoặc “lắc”. Tất cả những gì cần là tìm hiểu kỹ hướng dẫn sử dụng (hoặc Sách hướng dẫn tiếp theo…).
Bước 4:
Những gì chúng tôi đã làm ở trên là thiết lập giao tiếp giữa Bảng cảm biến và Dữ liệu thuần túy. Nếu bạn muốn bắt đầu có nhiều niềm vui hơn, hãy kết nối đầu ra dữ liệu của bạn với một số bộ dao động! Chơi với điều khiển âm lượng! Có thể kiểm soát một số thời gian trễ hoặc hồi âm! thế giới trong tầm tay bạn!
Đề xuất:
MicroPython trên Bảng cảm biến nghệ thuật phức tạp: 3 bước
MicroPython trên Bảng cảm biến Nghệ thuật Phức tạp: Một trong những khía cạnh tuyệt vời nhất của vi điều khiển ESP32 là khả năng chạy MicroPython. Điều này có thể được thực hiện theo hai cách: chạy các chương trình Python đầy đủ hoặc tương tác thông qua ứng dụng bảng điều khiển. Tài liệu hướng dẫn này sẽ trình bày cách sử dụng
Bộ điều khiển tấm đệm mẫu sử dụng dữ liệu thuần túy: 4 bước
Bộ điều khiển tấm đệm mẫu sử dụng dữ liệu thuần túy: Trong phần có thể hướng dẫn này, tôi sẽ tạo bộ điều khiển để cho phép một số tấm đệm bộ trống điện tử Roland cũ kích hoạt âm thanh mà không cần mô-đun trống ban đầu đi kèm với bộ dụng cụ này. Tôi sẽ sử dụng dữ liệu thuần túy để tạo bản vá để tải một số tệp wav và sau đó p
Mạng trạm cảm biến để kiểm soát ánh sáng và an ninh: 5 bước (có hình ảnh)
Mạng lưới trạm cảm biến để kiểm soát ánh sáng và an ninh: Với mạng lưới trạm cảm biến này được định cấu hình ở chế độ chính / phụ, bạn sẽ có thể thực hiện việc kiểm soát ánh sáng và an ninh trong nhà của mình. Các trạm cảm biến này (Node01, Node02 trong dự án này) được kết nối với một trạm chủ (Node00) được kết nối với yo
Khung hình nghệ thuật điểm ảnh LED với nghệ thuật arcade cổ điển, điều khiển ứng dụng: 7 bước (có hình ảnh)
Khung nghệ thuật điểm ảnh LED với nghệ thuật arcade cổ điển, điều khiển ứng dụng: TẠO KHUNG NGHỆ THUẬT LED ĐƯỢC ĐIỀU KHIỂN ỨNG DỤNG VỚI 1024 đèn LED hiển thị RETRO 80s ARCADE GAME ART PartsPIXEL Makers Kit - $ 59Adafruit 32x32 P4 LED Matrix - $ 49,9512x20 Inch Tấm acrylic, 1/8 " dày inch - Khói sáng trong suốt từ nhựa vòi -
Hộp Barbie: Hộp ngụy trang / Hộp bùng nổ cho máy nghe nhạc Mp3 của bạn: 4 bước (có hình ảnh)
Hộp Barbie: Hộp ngụy trang / Hộp bùng nổ cho máy nghe nhạc Mp3 của bạn: Đây là một hộp đựng bảo vệ có đệm cho máy nghe nhạc mp3 của bạn, cũng có thể chuyển đổi giắc cắm tai nghe sang 1/4 inch, có thể hoạt động như một hộp bùng nổ khi lật công tắc và ngụy trang máy nghe nhạc mp3 của bạn thành một máy nghe nhạc đầu những năm chín mươi hoặc hành vi trộm cắp tương tự tôi