Mục lục:

Robot Roomba được điều khiển bằng trình duyệt với Raspberry Pi Model 3 A +: 6 bước (có hình ảnh)
Robot Roomba được điều khiển bằng trình duyệt với Raspberry Pi Model 3 A +: 6 bước (có hình ảnh)

Video: Robot Roomba được điều khiển bằng trình duyệt với Raspberry Pi Model 3 A +: 6 bước (có hình ảnh)

Video: Robot Roomba được điều khiển bằng trình duyệt với Raspberry Pi Model 3 A +: 6 bước (có hình ảnh)
Video: Biến hình khi văn phòng Schannel có khách đến 2024, Tháng mười một
Anonim
Robot Roomba được điều khiển bằng trình duyệt với Raspberry Pi Model 3 A +
Robot Roomba được điều khiển bằng trình duyệt với Raspberry Pi Model 3 A +
Robot Roomba được điều khiển bằng trình duyệt với Raspberry Pi Model 3 A +
Robot Roomba được điều khiển bằng trình duyệt với Raspberry Pi Model 3 A +

Tổng quat

Có thể hướng dẫn này sẽ tập trung vào cách cung cấp cho Roomba đã chết một bộ não mới (Raspberry Pi), mắt (Webcam) và cách kiểm soát mọi thứ từ trình duyệt web.

Có rất nhiều bản hack Roomba cho phép điều khiển thông qua giao diện nối tiếp. Tôi đã không đủ may mắn để bắt gặp Roomba có phần mềm hiện tại hoặc bo mạch chủ đang hoạt động. Roomba đã quá cũ hoặc Roomba đã chết. Tôi tìm thấy Roomba mà tôi đã sử dụng cho dự án này trong một thùng hàng mặc cả ở cửa hàng tiết kiệm địa phương với giá 5 đô la. Nó vẫn có một pin tốt, nhưng một bo mạch chủ đã chết. (Tôi cũng tìm thấy webcam ở cùng một cửa hàng tiết kiệm với giá khoảng 5 đô la). Tất cả những gì tôi đang sử dụng từ Roomba ban đầu là động cơ, khung gầm và pin. Bạn không cần phải sử dụng Roomba cho dự án này. Bạn có thể sử dụng các động cơ, bánh xe và khung gầm khác nhau nếu bạn muốn. Tôi chỉ thích biến một mảnh vụn thành một thứ gì đó có thể sử dụng được.

Đối với bản dựng này, tôi đã sử dụng Raspberry Pi Model 3 A + và bộ điều khiển động cơ Riorand. Tôi đang sử dụng mã từ Robot điều khiển trình duyệt Dexter Industries mà tôi đã sửa đổi. Phiên bản Dexter Industries thiết lập Pi làm máy chủ websocket cho phép bạn điều khiển rô bốt của họ (nền tảng pi) từ tệp html của ứng dụng khách đang chạy máy tính khác.

Tôi đã thay đổi mã bằng cách sử dụng các chân GPIO và thêm một cách để Pi tắt khi một nút được nhấp vào / khi nhấn phím thoát trong trình duyệt. Tôi cũng đã thực hiện một số thay đổi đối với trang web điều khiển để cho phép xem luồng chuyển động thông qua iframe, trong khi điều khiển tất cả rô bốt trong một trang duy nhất. Tôi thiết lập Pi với một IP tĩnh để lưu trữ tệp khách hàng để tôi có thể kết nối bằng bất kỳ máy tính hoặc thiết bị nào trong mạng của mình.

Tôi đang ghi lại quá trình ở đây với hy vọng chỉ ra cách tạo ra một robot cơ bản đơn giản, rẻ tiền.

Các bộ phận được sử dụng

Raspberry Pi 3 A + (Adafruit Link) $ 30

Bộ điều khiển động cơ kép Riorand H-Bridge (Liên kết Amazon) $ 22

Pin 12V cho động cơ (Liên kết Amazon) $ 19

Pin 5V cho Raspberry Pi (Liên kết Amazon) $ 10

Thẻ Micro SD 8GB (Liên kết Amazon) $ 5

Jumper Wires (Liên kết Amazon) $ 7

Roomba 500 series

. Tất cả cùng nhau chỉ dưới $ 100.

Bước 1: Cài đặt Raspbian và thiết lập địa chỉ IP tĩnh

Cài đặt Raspbian và thiết lập địa chỉ IP tĩnh
Cài đặt Raspbian và thiết lập địa chỉ IP tĩnh

Tôi đã sử dụng Raspbian Stretch Lite. Tôi không thấy cần đến máy tính để bàn, nhưng bạn có thể cài đặt phiên bản máy tính để bàn nếu muốn.

Tôi sẽ giả sử bạn đã biết cách cài đặt Raspbian. Nếu bạn cần trợ giúp, bạn có thể tìm thấy hướng dẫn của Raspberry Pi Foundation tại đây.

Khi bạn đã thiết lập và chạy Raspbian, hãy đăng nhập và chạy chương trình raspi-config.

pi @ raspberrypi: ~ $ sudo raspi-config

Thiết lập kết nối WiFi của bạn trong raspi-config

Lựa chọn

2 Tùy chọn Mạng

Lựa chọn

N2 Wi-fi

Chọn Quốc gia, nhập SSID của bạn và nhập cụm mật khẩu của bạn

Thiết lập SSH trong raspi-config

Khi tôi đã thực hiện cấu hình ban đầu, tôi đã sử dụng SSH để thiết lập mọi thứ không có đầu. (Bạn có thể bỏ qua điều này nếu bạn sử dụng màn hình. Tôi thực hiện thay đổi mã dễ dàng hơn mà không cần phải dừng robot và cắm nó vào màn hình.)

Quay lại menu chính raspi-config

Lựa chọn

5 Tùy chọn giao diện

Lựa chọn

P2 SSH

Lựa chọn

đúng

Quay lại chọn menu chính raspi-config

Xác minh rằng bạn đã kết nối với mạng của mình

pi @ raspberrypi: ~ $ ifconfig

Bạn sẽ nhận được một đầu ra tương tự như thế này. (Lưu ý địa chỉ IP; bạn có thể cần nó sau này, ví dụ: 92.168.1.18)

wlan0: flags = 4163 mtu 1500

inet 192.168.1.18 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80:: c74f: 42ec: 8cd3: 2fda prefixlen 64 scopeid 0x20 ether b8: 27: eb: 6a: a4: 95 txqueuelen 1000 (Ethernet) RX packets 44396 byte 5847726 (5,5 MiB) Lỗi RX 0 giảm 0 vượt quá 0 khung hình 0 gói TX 30530 byte 39740576 (37,8 MiB) Lỗi TX 0 giảm 0 vượt quá 0 sóng mang 0 va chạm 0

Xác minh rằng bạn có thể truy cập internet.

pi @ raspberrypi: ~ $ ping google.com

Bạn sẽ nhận được một đầu ra tương tự như thế này.

PING google.com (216.58.194.110) 56 (84) byte dữ liệu.

64 byte từ dfw06s48-in-f14.1e100.net (216.58.194.110): icmp_seq = 1 ttl = 54 time = 18,2 ms 64 byte từ dfw06s48-in-f14.1e100.net (216.58.194.110): icmp_seq = 2 ttl = 54 time = 19,4 ms 64 byte từ dfw06s48-in-f14.1e100.net (216.58.194.110): icmp_seq = 3 ttl = 54 time = 23,6 ms 64 byte từ dfw06s48-in-f14.1e100.net (216.58.194.110): icmp_seq = 4 ttl = 54 time = 30,2 ms ^ C --- thống kê ping google.com --- 4 gói được truyền, 4 gói đã nhận, 0% mất gói, thời gian 3004ms rtt min / avg / max / mdev = 18.209 / 22,901 / 30,267 / 4,715 mili giây

Thiết lập IP tĩnh

Để có thể kết nối nhất quán với rô bốt của bạn bằng cùng một địa chỉ trên mạng của bạn, bạn sẽ muốn thiết lập một IP tĩnh.

Lấy địa chỉ mạng hiện tại của bạn, ví dụ: 92.168.1.18

Tôi đang sử dụng địa chỉ được DHCP chỉ định tự động khi Pi kết nối với mạng của tôi. Bạn có thể thay đổi điều này thành bất cứ điều gì bạn thích miễn là nó phù hợp với mạng của bạn và không xung đột với bất kỳ địa chỉ được chỉ định nào khác.

Mở dhcp.conf trong trình soạn thảo văn bản. (Tôi sử dụng nano)

pi @ raspberrypi: ~ $ sudo nano /etc/dhcpcd.conf

Cuộn xuống # Ví dụ cấu hình IP tĩnh và thay đổi các dòng sau.

#interface eth0

#static ip_address = 192.168.11.13 #static routers = 192.168.11.1 #static domain_name_servers = 192.168.11.1 8.8.8.8

Thay đổi để phù hợp với mạng của bạn và xóa dấu # ở đầu mỗi dòng.

Thí dụ:

giao diện wlan0

static ip_address = 192.168.1.18 static routers = 192.168.1.1 static domain_name_servers = 192.168.1.1 8.8.8.8

Lưu và thoát.

Khởi động lại và kết nối với Pi qua SSH

pi @ raspberrypi: ~ $ sudo khởi động lại

Kết nối từ một máy tính khác bằng SSH. Người dùng Windows có thể sử dụng PuTTY hoặc Hệ thống con Windows dành cho Linux (Windows10).

ian @ máy tính: ~ $ ssh [email protected]

Nhập mật khẩu của bạn (mặc định là mâm xôi).

Mật khẩu của [email protected]:

Bây giờ bạn sẽ có mặt tại dấu nhắc lệnh của Pi.

pi @ raspberrypi: ~ $

Bước 2: Cài đặt và cấu hình chuyển động

Cài đặt và cấu hình chuyển động
Cài đặt và cấu hình chuyển động

Chuyển động là một chương trình được sử dụng trong rất nhiều dự án camera / webcam an ninh. Chuyển động có rất nhiều tính năng. Tuy nhiên, chúng tôi đang thiết lập nó để chỉ phát trực tuyến video từ webcam đến cổng 8081.

Kiểm tra Webcam của bạn

Cắm webcam của bạn và liệt kê các thiết bị usb đã kết nối (Bạn có thể phải khởi động lại sau khi kết nối).

pi @ raspberrypi: ~ $ lsusb

Bạn sẽ nhận được một đầu ra tương tự như thế này. Lưu ý Logitech C210.

Thiết bị Bus 001 002: ID 046d: 0819 Logitech, Inc. Webcam C210

Thiết bị Bus 001 001: ID 1d6b: 0002 Trung tâm gốc Linux Foundation 2.0

Nếu máy ảnh của bạn không hiển thị, nó có thể không tương thích hoặc bạn có thể cần cài đặt trình điều khiển bổ sung.

Cài đặt chuyển động

Cập nhật các gói.

pi @ raspberrypi: ~ $ sudo apt-get cập nhật

Cài đặt Chuyển động.

pi @ raspberrypi: ~ $ sudo apt-get install motion -y

Sau khi Motion được cài đặt, hãy chỉnh sửa tệp cấu hình.

pi @ raspberrypi: ~ $ sudo nano /etc/motion/motion.conf

Thay đổi các dòng sau để phù hợp với bên dưới.

daemon trên

chiều rộng 640 chiều cao 480 tốc độ khung hình 100 output_pictures off ffmpeg_output_movies off text_right stream_port 8081 stream_quality 100 stream_localhost tắt webcontrol_localhost tắt

Khởi động Daemon Chuyển động lúc Khởi động

Mở tệp / etc / default / motion.

pi @ raspberrypi: ~ $ sudo nano / etc / default / motion

Thay đổi thành

start_motion_daemon = vâng

Lưu file và thoát

Khởi động lại

pi @ raspberrypi: ~ $ sudo khởi động lại

Sau khi Pi khởi động lại, hãy mở trình duyệt và xác minh rằng bạn có truyền video vào trình duyệt trên cổng 8081

Thí dụ:

192.168.1.18:8081

Khắc phục sự cố Motion Daemon

Tôi đã gặp sự cố khi bắt trình nền chuyển động bắt đầu khi khởi động trong khi tôi đang thử các tùy chọn khác nhau trong tệp motion.conf.

Nếu bạn bắt đầu chuyển động trước trình nền chuyển động trong Raspian Stretch, bạn có thể sẽ gặp phải sự cố khi bắt đầu khởi động sau này. Chạy "sudo motion" mà không định cấu hình daemon để thực hiện việc đó trước tiên sẽ tạo thư mục / var / log / motion mà không cấp quyền ghi cho người dùng.

Bước 3: Cài đặt Apache và Thiết lập Trang điều khiển Web

Cài đặt Apache và thiết lập trang điều khiển web
Cài đặt Apache và thiết lập trang điều khiển web

Apache là máy chủ web cho trang web điều khiển của robot. Chúng tôi sẽ thay thế tệp Apache index.html mặc định bằng tệp được tải xuống từ github. Bạn cũng sẽ thay đổi một vài dòng mã để hiển thị luồng video chuyển động và chỉ định nơi gửi các lệnh để điều khiển robot.

Cài đặt Apache và Git

pi @ raspberrypi: ~ $ sudo apt-get install apache2 git -y

Sau khi apache và git được cài đặt, hãy tải xuống các tệp.

pi @ raspberrypi: ~ $ git clone

Mở thư mục roombarobot.

pi @ raspberrypi: ~ $ cd roombarobot

Thay thế tệp index.html trong thư mục / var / www / html bằng tệp index.html trong / home / pi / roombarobot

pi @ raspberrypi: ~ / roombarobot $ sudo cp index.html / var / www / html

Chỉnh sửa tệp index.html

Mở tệp index.html bằng trình soạn thảo văn bản.

pi @ raspberrypi: ~ / roombarobot $ sudo nano /var/www/html/index.html

Xác định vị trí của hai dòng này

var host = "ws: // ĐỊA CHỈ CỦA BẠN: 9093 / ws";

Thay đổi "YOURIPADDRESS" thành địa chỉ IP tĩnh mà bạn đã thiết lập ở Bước 1 và lưu tệp.

Thí dụ:

var host = "ws: //192.168.1.18: 9093 / ws";

Trên một máy tính khác, hãy mở trình duyệt và nhập địa chỉ IP của Pi của bạn. Bạn sẽ thấy trang web điều khiển có một hộp ở bên trái, phát trực tuyến video từ webcam của bạn và các nút điều khiển web ở bên phải.

Bước 4: Thiết lập và kiểm tra mã

Thiết lập và kiểm tra mã
Thiết lập và kiểm tra mã

Mã này được viết bằng python và yêu cầu thư viện lốc xoáy. Mã sử dụng thư viện để thiết lập một máy chủ để lắng nghe các lệnh từ trang web điều khiển thông qua websockets trên cổng 9093.

Cài đặt PIP và Thư viện Tornado

Cài đặt pip

pi @ raspberrypi: ~ $ sudo apt-get install python-pip

Cài đặt thư viện lốc xoáy

pi @ raspberrypi: ~ $ sudo pip cài đặt tornado

Khởi động chương trình Roombabot và kiểm tra kết nối

Bắt đầu chương trình roombabot.py

pi @ raspberrypi: ~ $ sudo python /home/pi/roombarobot/roombabot.py

Sau khi chạy, bạn sẽ thấy "Sẵn sàng" trong thiết bị đầu cuối. Mở trang web điều khiển trong trình duyệt và nhấp vào kết nối. Sau đó nhấp vào bất kỳ nút định hướng nào trên trang. Bạn cũng có thể sử dụng các phím mũi tên trên bàn phím của mình.

Bạn sẽ thấy một đầu ra trong thiết bị đầu cuối tương tự như thế này.

Sẵn sàng

kết nối đã mở… kết nối đã mở… đã nhận: u 8 Đang chạy Kết nối chuyển tiếp đã mở… đã nhận: l 6 Đang quay Kết nối trái đã mở… đã nhận: d 2 Đang chạy Kết nối đảo ngược đã mở… đã nhận: r 4 Quay sang phải

Nhấn ctrl + c để dừng chương trình.

Sau khi bạn kiểm tra xong, hãy tắt nguồn Pi.

pi @ raspberrypi: ~ $ sudo poweroff

Lỗi

Tôi đã nhận thấy sự cố với nút tắt máy trên trang web điều khiển. Đôi khi nút tắt máy không làm gì cả khi nó được nhấp hoặc chạm. Tôi chưa thể tìm ra nguyên nhân gây ra điều này, nhưng có một cách giải quyết. Nếu bạn muốn tắt nguồn rô-bốt và nút tắt máy không hoạt động, hãy tải lại trang, nhấp / nhấn vào nút kết nối rồi nhấp / nhấn vào nút tắt. Nó sẽ tắt nguồn.

Bước 5: Lắp ráp

cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp

Như đã đề cập trước đây, bạn không cần phải sử dụng Roomba cho dự án này. Bất cứ thứ gì có hai động cơ, hai bánh xe và khung đều hoạt động được. Tôi tháo Roomba ra và loại bỏ mọi thứ ngoại trừ các mô-đun bánh xe và pin.

Mô-đun bánh xe

Các bánh xe và động cơ của Roomba được đặt cùng nhau trong một mô-đun có thể tháo rời. Mỗi mô-đun có vỏ ngoài màu xanh lam chứa động cơ, hộp số, bánh xe, lò xo treo và bảng giao diện.

Bảng giao diện

Mỗi bảng giao diện có sáu dây chạy tới nó. Có hai dây (Đỏ [+], Đen [-]) để quay động cơ, một dây dữ liệu cho cảm biến hiệu ứng Hall, một dây cho công tắc thả bánh xe, một dây 5V và một dây GND để cấp nguồn cho cảm biến. Bạn sẽ phải tách mô-đun ra để truy cập vào bảng giao diện. Tôi đã tháo mọi thứ trở lại động cơ và hàn các dây [+] và [-] mới vào động cơ (xem ảnh). Bạn có muốn bảo quản các cảm biến hay không là tùy thuộc vào bạn.

Lò xo treo

Khi bạn loại bỏ phần chân không, trọng lượng của Roomba sẽ bị văng ra. Nếu bạn không tháo lò xo, Roomba sẽ ngồi ở một góc. Tôi ban đầu đã xóa những thứ này, nhưng sau đó thêm lại khi tôi thấy nó đang vật lộn để lăn qua thảm. Đặt lại lò xo đã khắc phục sự cố.

Đấu dây động cơ với Bộ điều khiển động cơ

Các động cơ quay mặt ra xa nhau. Điều đó có nghĩa là để điều khiển Roomba theo hướng thuận, một động cơ sẽ phải quay về phía trước trong khi động cơ kia quay ngược lại. Tôi đã không nghĩ nhiều về điều này cho đến khi tôi kết nối mọi thứ. Cuối cùng tôi chỉ viết mã xung quanh cách tôi đấu dây động cơ ban đầu. Đây là một tai nạn đáng mừng vì bất cứ khi nào Raspberry Pi bật / tắt nguồn, sẽ có đầu ra điện áp đến các chân GPIO. Theo cách tôi kết nối mọi thứ, Roomba quay cho đến khi Raspberry Pi khởi động (khoảng ba mươi giây) và quay khi tắt máy cho đến khi nguồn điện được ngắt. Nếu được nối dây khác, nó sẽ có khả năng cuộn về phía trước / phía sau, điều này sẽ gây khó chịu. Tôi dự định cuối cùng sẽ sửa lỗi này bằng một công tắc đơn giản cho bộ điều khiển động cơ.

Đấu dây động cơ và pin cho bộ điều khiển động cơ

Nguồn- - - - - - - - - - - - - - - - 12V [+] - - - - - - - - - - - - - Pin Roomba [+]

Động cơ 2- - - - - - - - - - - - - - - Đen- - - - - - - - - - - - - - Động cơ bên trái [-] Động cơ 2- - - - - - - - - - - - - - - Đỏ- - - - - - - - - - - - - - - Động cơ bên trái [+] Động cơ 1- - - - - - - - - - - - - - - - Đen- - - - - - - - - - - - - - Động cơ phải [-] Động cơ 1- - - - - - - - - - - - - - - Đỏ- - - - - - - - - - - - - - - Động cơ phải [+] GND- - - - - - - - - - - - - - - - - 12V [-] - - - - - - - - - - - - - Pin Roomba [-]

Đấu dây Bộ điều khiển động cơ với Raspberry Pi

Chân điều khiển động cơ Màu dây (xem ảnh) Chân Raspberry Pi

GND- - - - - - - - - - - - - - - - - Đen- - - - - - - - - - - - - - GND PWM 2- - - - - - - - - - - - - - - - Màu xanh - - - - - - - - - - - - - - -GPIO 18 DIR 2- - - - - - - - - - - - - - - - Màu xanh lá cây- - - - - - - - - - - - - -GPIO 23 PWM 1- - - - - - - - - - - - - - - - Màu vàng - - - - - - - - - - - - - -GPIO 24 DIR 1- - - - - - - - - - - - - - - - Màu cam - - - - - - - - - - - - -GPIO 25 5V - - - - - - - - - - - - - - - - - - Đỏ- - - - - - - - - - - - - - -5V

Gắn các thiết bị điện tử

Không có nhiều thứ liên quan đến việc kết hợp mọi thứ lại với nhau. Tôi tước roomba xuống khung gầm của nó. Khi nắp đã được tháo ra, bạn có thể dễ dàng cắt các giá đỡ bằng nhựa hiện có và khoan lỗ để gắn các thiết bị điện tử. Có các cổng hiện có để chạy cáp từ động cơ. Nếu bạn đang sử dụng pin Roomba dự trữ, thì đã có một phần giới hạn để truy cập vào các cực của pin.

Ắc quy

Tôi đã sử dụng pin riêng cho Raspberry Pi và bộ điều khiển động cơ. Pin của Pi chỉ là một bộ pin 5V được sử dụng để tăng tốc cho điện thoại di động. Đối với bộ điều khiển động cơ, tôi sử dụng pin Roomba ban đầu đi kèm với nó. Các đầu cực của pin không có nhãn, vì vậy tốt nhất bạn nên kiểm tra điện áp bằng vôn kế trước khi bạn đấu dây vào bộ điều khiển động cơ. Để gắn dây vào pin Roomba, tôi đã sử dụng bốn nam châm neodymium (xem ảnh). Tôi hàn hai nam châm vào dây dẫn và hai nam châm còn lại tôi dán vào các cực của pin. Hàn khử từ các nam châm. Tuy nhiên, lớp phủ bên ngoài vẫn có thể bám vào nam châm ở các cực và dẫn điện. Điều này làm cho việc kết nối và ngắt kết nối pin trở nên khó khăn.

Thử nghiệm

Sau khi bạn đã kết nối mọi thứ với nhau, hãy xác minh rằng bạn đã kết nối mọi thứ một cách chính xác, nâng rô-bốt của bạn lên một thứ gì đó (để nó không bị lăn đi) và bật nguồn.

Đăng nhập và bắt đầu chương trình roombabot.py

pi @ raspberrypi: ~ $ sudo python /home/pi/roombarobot/roombabot.py

Truy cập trang điều khiển web và kiểm tra nó. Nếu mọi thứ được lên dây chính xác, các bánh xe sẽ quay theo hướng tương ứng khi bấm các nút / phím mũi tên (đừng quên bấm kết nối).

Bước 6: Khởi động mã Python khi khởi động / kết thúc

Bắt đầu mã Python khi khởi động / kết thúc
Bắt đầu mã Python khi khởi động / kết thúc
Bắt đầu mã Python khi khởi động / kết thúc
Bắt đầu mã Python khi khởi động / kết thúc

Điều cuối cùng chúng ta cần làm là yêu cầu Raspbian khởi động chương trình python khi khởi động. Để làm điều này, chúng ta sẽ tạo script và lên lịch nó chạy khi khởi động lại bằng crontab.

Tạo tập lệnh

Tạo một tệp tập lệnh mới có tên startrobot.sh trong thư mục người dùng pi

pi @ raspberrypi: ~ $ sudo nano startrobot.sh

Sao chép các dòng sau vào tệp

#! / bin / sh

# startrobot.sh cd / cd / home / pi / roombarobot sudo python roombabot.py cd /

Lưu file và thoát

Làm cho tệp startrobot.sh có thể thực thi được

pi @ raspberrypi: ~ $ sudo chmod 755 startrobot.sh

Kiểm tra nó ra (Nhấn ctrl + c để dừng)

pi @ raspberrypi: ~ $ sh startrobot.sh

Chỉnh sửa tệp crontab

pi @ raspberrypi: ~ $ sudo crontab -e

Thêm dòng sau vào cuối tệp

# m h dom mon dow lệnh

@reboot sh /home/pi/startrobot.sh

Lưu và thoát

Chương trình roombabot.py bây giờ sẽ bắt đầu khi Pi được khởi động lại hoặc chạy theo chu kỳ nguồn.

Kết thúc

Tại thời điểm này, bạn sẽ có một robot chức năng mà bạn có thể điều khiển bằng trình duyệt từ bất kỳ thiết bị nào trên mạng của mình. Tôi đã thực hiện điều này xa hơn một chút kể từ khi xây dựng ban đầu và thiết lập một VPN để có thể truy cập rô bốt khi tôi vắng nhà. Tôi dự định thực hiện một số thay đổi bổ sung trong tương lai. Tôi dự định làm cho nó tự chủ và có thể theo dõi chuyển động trong khi vẫn có thể tiếp quản các điều khiển khi tôi muốn.

Đề xuất: