来自 EsonWong 的推荐投稿。
本教程介绍使用树莓派和遥控车制作一台可以通过网络控制的遥控车。软件使用我开发的 network-rc。
材料
树莓派 3B+ (300 元)
树莓派摄像头 (15 元) / ps3 摄像头 (40 元)
移动电源 (60 元) / USB 输出降压模块 (?元)
环奇 743A (286 元,某宝上找不到了)
杜邦线(公对公 x1, 公对母 x4) (3 元)
其它固定材料
树莓派软件安装运行
安装 network-rc
树莓派安装 buster 版本以上系统连接摄像头,连接 wifi。
注意:最新系统存在兼通性问题,使用此版本系统http://downloads.raspberrypi.org/raspbian/images/raspbian-2020-02-07/
网络上有很多树莓派系统安装教程,请自行搜索。
在树莓派上下载 network-rc 软件
wget https://network-rc.esonwong.com/download/network-rc.tar.gz # 备用地址下载 wget https://esonwong.synology.me:5011/download/network-rc.tar.gz # 解压文件 tar -zxvf network-rc.tar.gz # 运行程序 sudo ./network-rc/node ./network-rc/index.js
用同一局域网网下的浏览器里打开 http://树莓派的ip地址:8080 即可看到控制界面
环奇 743A 改装
如果你是用其它车的话,只要舵机和电调的接线和控制信号通用即可(仅支持三线的电调和舵机)。
1. 取下舵机和电调与接收机之间的连线
2. 连接到树莓派
树莓派关机。
1) 将舵机和电调的正极线(VCC\红色) 和 电调的正极线用公对公杜邦线连接起来,舵机从电调上取电。
2) 使用公对母杜邦线将舵机的信号线(PWM\白色或黄色) 连接到树莓派的 GPIO 12 (编号 32\PWM0)
3) 使用公对母杜邦线将电调的信号线(PWM\白色或黄色) 连接到树莓派的 GPIO 13 (编号 33\PWM1)
4) 使用公对母杜邦线将舵机和电调的地线(Ground\黑色或棕色) 连接到树莓派的 GPIO Group,建议连接到编号 30 和 34,方便理线。
启动
树莓派接通电源,开机,运行软件。小车接通电源,开机。打开浏览器,开始享用吧。
https://www.bilibili.com/video/BV1iK4y1r7mD
网络遥控车互联网控制教程
要实现远程控制,必须让遥控车在互联网上可以访问遥控车。下面教大家如何让遥控小车接入移动互联网实现 4G/5G 网络无限距离遥控。
4G/5G 网络连接
为了让网络遥控车接入互联网,按[WiFi/4G/5G 网络遥控车制作教程]做好遥控车之后,要让小车上的树莓派连接到 4G/5G 网络。
UBS 4G/5G 网卡
USB 4G/5G 网卡是现在最方便的选择。我使用的是华为的 E8372h。插上树莓派就能联网
WiFi
你也可以用 4G/5G 手机(或者 4G/5G 路由器)来连接互联网。
开启手机 Wi-Fi 热点:
把手机安装到车上,树莓派上连接手机 Wi-Fi 热点。
树莓派连接 Wi-Fi 的方法请自行搜索。
此时树莓派是没有公网的 ip 地址的,还不能通过互联网连接到遥控车。
外网访问
我们通过使用 frp 软件实现互联网对遥控车的访问。 network-rc 于 v0.5.0 版本里内置了 frp 客户端和作者提供的 frp 服务的配置。
使用下面的命令运行即可开启网络穿透功能(不需要{}):
sudo ./network-rc/node ./network-rc/index.js -f -o 9011 –tsl -p {你想设置的控制界面登陆密码}
由于可通过互联网访问,务必设置连接密码。
成功后即可通过 http://home.esonwong.com:9011 (9011 替换成你设置的端口号) 访问你的遥控车控制界面。
开机启动 network-rc
为了方便接上电源即可控制遥控车,我们将 network-rc 设置为开机启动。
增加 network-rc 服务,在 /etc/systemd/system/ 目录下新建 network-rc.service 文件,替换下方文本里的 network-rc 路径和密码(不需要{})保存到文件里。
创建和编辑 /etc/systemd/system/network-rc.service 文件需要 root 。如果用图形界面使用 sudo pcmanfm
[Unit] Description=network-rc After=syslog.target network.target Wants=network.target [Service] User=root Type=simple ExecStart={network-rc文件夹路径}/node {network-rc文件夹路径}/index.js -f -o {访问端口} -p {你想设置的控制界面登陆密码} –tsl # 比如 ExecStart=/home/pi/network-rc/node /home/pi/network-rc/index.js -f -o 9011 -p password –tsl Restart= always RestartSec=1min [Install] WantedBy=multi-user.target
设置开机启动服务:
sudo systemctl enable network-rc.service
network-rc 将在树莓派开机时和网络切换时自动运行。
查看服务状态:
sudo systemctl status network-rc.service
如果更新了文件需要运行:
sudo systemctl reload network-rc.service sudo systemctl enable network-rc.service sudo systemctl start network-rc.service
4G 网络下的实际遥控效果
https://www.bilibili.com/video/BV14p4y1X7qf
项目地址:https://github.com/itiwll/network-rc
原文链接、视频教程。
交流微信群
入群方法添: 加微信 EsonWong_ 备注 Network RC