Mục lục:

Raspberry SPy Robot: 8 bước (có hình ảnh)
Raspberry SPy Robot: 8 bước (có hình ảnh)

Video: Raspberry SPy Robot: 8 bước (có hình ảnh)

Video: Raspberry SPy Robot: 8 bước (có hình ảnh)
Video: 5 Dự Án Nổi Bật với Raspberry Pi trong năm 2022 2024, Tháng mười một
Anonim
Image
Image
Robot Raspberry SPy
Robot Raspberry SPy

Dự án này cho phép bạn điều khiển rô bốt qua trang web và xem buổi phát trực tiếp. Nó có thể được sử dụng để theo dõi vật nuôi, đảm bảo rằng không có gì đang cháy trong lò của bạn, và thậm chí cả xem chim! DFRobot đã cung cấp Raspberry Pi 3 và mô-đun máy ảnh Raspberry Pi.

Bước 1: Robot Điện tử

Robot điện tử
Robot điện tử

Tôi bắt đầu bằng cách lắp ráp bộ khung gầm MiniQ 2WD từ DFRobot. Tôi trượt các bánh xe lên trục động cơ, sau đó lắp chúng vào giá đỡ và gắn chúng vào khung xe. Cuối cùng, tôi đã thêm các giá đỡ bằng kim loại. Bây giờ đã đến lúc xây dựng bảng mạch chính. Trình điều khiển động cơ L293d đã được hàn tại chỗ, cùng với các dây chạy tới các chân GPIO của Raspberry Pi. Tiếp theo, tôi hàn một đầu nối cho pin, vì nó sẽ cung cấp nguồn điện chính. Sau khi nguồn điện được bổ sung, tôi đã lắp bộ điều chỉnh 5V.

Bước 2: Thiết lập Pi

Thiết lập Pi
Thiết lập Pi

DFRobot đã liên hệ với tôi và gửi Mô-đun máy ảnh Raspberry Pi 3 và Raspberry Pi của họ. Vì vậy, sau khi tôi mở các hộp, tôi có quyền làm việc bằng cách thiết lập thẻ SD. Đầu tiên, tôi truy cập trang Tải xuống Raspberry Pi và tải xuống phiên bản Raspbian mới nhất. Sau đó tôi giải nén tập tin và đặt nó vào một thư mục thuận tiện. Bạn không thể chỉ sao chép / dán tệp.img vào thẻ SD, bạn phải "ghi nó" vào thẻ. Bạn có thể tải xuống tiện ích ghi đĩa như Etcher.io để dễ dàng chuyển ảnh hệ điều hành. Sau khi tệp.img có trên thẻ SD của tôi, tôi đã lắp nó vào Raspberry Pi và cấp nguồn cho nó. Sau khoảng 50 giây, tôi rút dây và tháo thẻ SD. Tiếp theo, tôi đặt lại thẻ SD vào PC và chuyển đến thư mục "khởi động". Tôi đã mở notepad và lưu nó dưới dạng tệp trống có tên "ssh" không có phần mở rộng. Cũng có một tệp tôi đã thêm có tên "wpa_supplicant.conf" và đặt văn bản này vào đó:

mạng = {ssid = psk =}

Sau đó, tôi đã lưu và đẩy thẻ ra và đặt nó trở lại Raspberry Pi 3. Điều này bây giờ sẽ cho phép sử dụng SSH và kết nối với WiFi.

Bước 3: Chuẩn bị máy ảnh

Chuẩn bị máy ảnh sẵn sàng
Chuẩn bị máy ảnh sẵn sàng

Theo mặc định, máy ảnh bị tắt trên Pi, vì vậy bạn phải mở loại đầu cuối sudo raspi-config để hiển thị menu. Đi tới "tùy chọn giao diện" và sau đó bật máy ảnh. Bây giờ chỉ cần chọn "Hoàn tất" và lắp cáp ruy-băng của mô-đun máy ảnh vào đúng khu vực của Pi.

Bước 4: Cài đặt phần mềm

Có một số phần mềm khác nhau có thể phát trực tuyến video, chẳng hạn như vlc và chuyển động, nhưng tôi quyết định sử dụng mjpeg-streamer do độ trễ thấp và cài đặt dễ dàng. Theo hướng dẫn trên trang web, hãy sao chép git https://github.com/jacksonliam/mjpg-streamer.git vào một thư mục, sau đó nhập sudo apt-get install cmake libjpeg8-dev để cài đặt các thư viện cần thiết. Thay đổi thư mục của bạn thành thư mục bạn đã tải xuống, sau đó gõ lệnh make, sau đó nhập sudo make install để biên dịch phần mềm. Cuối cùng nhập xuất LD_LIBRARY_PATH =. và để chạy nó, hãy nhập./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" Bạn có thể truy cập luồng bằng cách truy cập vào https://: 8080 / stream.html để xem luồng.

Bước 5: Bộ điều khiển

Bộ điều khiển
Bộ điều khiển
Bộ điều khiển
Bộ điều khiển

Sau đó, đến phần cách điều khiển Raspberry Pi qua WiFi, vì Bluetooth có quá ít phạm vi. Tôi đã quyết định sử dụng máy chủ Flask chạy trên Raspberry PI và mô-đun ESP8266 ESP12E để gửi dữ liệu đến nó. ESP8266 chỉ có một đầu vào tương tự, có nghĩa là tôi không thể sử dụng trực tiếp cần điều khiển, vì nó cần hai đầu vào tương tự. Lựa chọn tốt nhất là ADS1115, là thiết bị I2C đọc tín hiệu tương tự ở độ phân giải 16 bit. Tôi chỉ cần kết nối SDA với 4 và SCL với 5, cùng với VCC và GND. Trục X của cần điều khiển kết nối với A0 trên ADS1115 và trục Y kết nối với A1. NHƯNG, tôi đã vô tình làm cháy ADS1115, vì vậy tôi phải sử dụng đến điều tốt nhất tiếp theo: các nút! Vì vậy, bây giờ thiết lập của tôi là ESP8266 Sparkfun Thing Dev Board với 3 nút tiến, phải và trái. Giờ đây, bất cứ khi nào nhấn một nút, nó sẽ gửi dữ liệu để quay các bánh xe theo hướng đó.

Bước 6: Mã cho Robot

Mã cho Robot
Mã cho Robot

Tôi đã thực hiện một dự án trước đó sử dụng thư viện GPIO PWM của Pi để điều khiển động cơ thông qua json, vì vậy tôi chỉ định lại mã để chấp nhận dữ liệu thông qua ứng dụng Flask. Flask là một thư viện Python về cơ bản biến Pi của bạn thành một máy chủ web có khả năng gửi và nhận dữ liệu. Bằng cách sử dụng PWM, động cơ có thể được điều khiển với độ chính xác cao hơn so với truyền động xe tăng. Điều này cũng có nghĩa là robot có thể di chuyển với tốc độ thay đổi thay vì cố định. Ứng dụng bình của tôi được định cấu hình để thay đổi PWM của động cơ khi nó nhận được dữ liệu từ yêu cầu GET qua http từ ESP12e. Nó cũng sử dụng thư viện subprocess. Popen để chạy tập lệnh webstreaming ở chế độ nền. Tôi đã đính kèm mã vào trang dự án, vì vậy tất cả những gì cần thiết là tải xuống.

Bước 7: Mã điều khiển

Mã này khá đơn giản, chỉ cần đọc các giá trị từ 3 chân, chạy chúng qua một số câu lệnh if để xác định hướng bánh xe và cuối cùng gửi các giá trị đó đến Raspberry Pi. Việc bổ sung bo mạch ESP8266 cho Arduino IDE đi kèm với thư viện HTTPClient, giúp xử lý các tiêu đề và gửi dữ liệu. Máy chủ Flask cần nhận dữ liệu qua lệnh gọi POST, vì vậy mã bắt đầu kết nối với máy chủ web Raspberry Pi, sau đó thêm tiêu đề vào dữ liệu biểu thị rằng nó được mã hóa JSON và cuối cùng nó gửi dữ liệu dưới dạng đối tượng JSON. Tôi đã thêm độ trễ 40 ms để ngăn Raspberry Pi trở nên quá tải với dữ liệu.

Bước 8: Chạy Raspberry SPy

Chạy Raspberry SPy
Chạy Raspberry SPy
Chạy Raspberry SPy
Chạy Raspberry SPy

Tất cả những gì được yêu cầu là nhập sudo python.py! Bạn sẽ thấy máy ảnh sáng lên và bằng cách truy cập địa chỉ web của pi có cổng 8080, luồng sẽ hiển thị. Giờ đây, bạn có thể sử dụng bộ điều khiển ở bất cứ đâu trong nhà và có cả nguồn cấp dữ liệu trực tiếp.

Đề xuất: