| ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
|
目录 |
AlphaBot智能车开发套件,主要包括AlphaBot底板和智能车底盘,支持接入Arduino和树莓派。
AlphaBot2智能车开发套件包含一个基板AlphaBot2-Base和一个适配板(AlphaBot2-Ar、AlphaBot2-Pi、AlphaBot2-PiZero 三者之一)。通过选择不同的适配板,小车可以支持接入Arduino,树莓派3B,树莓派Zero W。
本智能车套件结构稳定,集成度高,而且还不用复杂的组装以及繁琐的接线。通过不同的适配板可以让AlphaBot2接入树莓派或Arduino控制,配合微雪提供的开源代码和学习教程,便能快速了解和探索智能小车的学习和开发。
这其中涉及到的技术要点:
循迹、避障、红外测距、手机/PC视频监控、WIFI/蓝牙/红外无线遥控等。
注:此用户手册不针对某个特定的套餐,可能有些套餐不包含下文介绍到的部分模块,套餐配置以网页介绍中详细配置为准。
许多单片机爱好者都曾经想设计一台属于自己的智能小车。然而当真正动手时却发现并不像想象中简单,可能一知半解甚至毫无头绪。本套件能让您快速了解智能小车的结构框架、基本原理,以及外部模块。
本教程主要通过微雪AlphaBot智能小车,讲解智能小车的工作原理和制作过程。示例程序包括循迹,自动壁障,蓝牙遥控,WiFi控制等。本手册围绕示例程序展开,内容深入浅出,从最小系统到整个小车的主控设计,从简单的小车直线运动到复杂的多功能复合实现。希望单片机初学者可以通过本套件对智能小车有清楚的认识。
由于作者水平有限,教程中错误和不足之处在所难免,敬请读者批评、指正。
本手册部分内容可能会让用户阅读起来稍感困难,我们建议用户在使用本款小车之前,先稍微学习树莓派的Python编程或者Arduino编程,以便深入理解示例程序原理。
由于篇幅所限,本手册不会涉及太多的程序原理。如果对这方面有更深入的探索,我们还是希望您可以直接查看程序的源代码,因为智能小车开发的实战经验比理论知识更为重要。
树莓派教程:https://www.waveshare.net/study/portal.php?mod=list&catid=29
Arduino教程:https://www.waveshare.net/study/portal.php?mod=list&catid=7
由于小车的电气特性所限,相对于其他的开发板,用户应当更加注意安全、正确地使用本产品,以避免小车底板对树莓派或Arduino板造成不可逆的电器损坏。因此首次使用本产品的用户,应当尽量按照本手册的操作步骤进行操作。
说明:不同的套餐,配件可能是不同的。虽然本手册将介绍所有配件,但是您购买的套餐可能并不包含其中的某些配件。关于兼容的配件,请参见选型列表。
将Arduino目录下的libraires库文件复制到Arduino IDE安装目录下libraries文件夹中。重启Ariduino IDE,点击File-> Example,查看是否有TRSensors选项,若有说明库导入成功。
程序现象是没有遇到障碍时小车直走,遇到障碍物时小车右转。
关于迷宫制作要求:转向必须为直角,迷宫线路不能有循环。
关于程序:小车检测到有转角时,再减速运行一段时间再次检测是否有转角。由于电机和电压的差异,可能小车不能正常识别转角,此时可以修改程序中速度和延时时间。同理,小车转角也是更加延时来判断角度大小,如果实际运行过程中转角出错,可以修改程序中转角的速度和延时时间。
如果失效了,请点击此处下载[APP https://www.waveshare.net/w/upload/7/74/Alphabot_Bluetooth.zip]
启动APP,点击“扫描”(注意:手机需要打开蓝牙功能),插上蓝牙模块,大约几秒后,正常在列表中将显示相应的蓝牙设备。如果使用iOS,选择“Waveshare_BLE”设备,如果使用Android,选择“Waveshare_ERD”设备。进到下一个页面后选择“遥试模式”。
注意:Android手机如果支持蓝牙BLE,将扫描两个设备,注意需要选择MAC地址为00:0E:0E的设备
选择“遥控模式”,点击设置,根据程序设置命令,设置按键按下时为对应的命令,按键弹起时设置为“Stop”命令。
当速度按键由灰色变为黑色则表示已经链接程序,按下按键可以遥控小车,同时RGB LED会亮各种颜色。
关于Dual-mode Bluetooth 更多资料可以参考用户手册
中文:https://www.waveshare.net/wiki/Dual-mode_Bluetooth
英文:http://www.waveshare.com/wiki/Dual-mode_Bluetooth
提供python例程
sudo raspi-config 选择Interfacing Options -> SPI -> Yes 开启SPI接口
sudo reboot
请确保SPI没有被其他的设备占用,你可以在/boot/config.txt中间检查
在终端执行:
sudo raspi-config 选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动
sudo reboot
打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config 选择Interfacing Options -> Serial,关闭shell访问,打开硬件串口
然后重启树莓派:
sudo reboot
sudo apt-get update sudo apt-get install ttf-wqy-zenhei sudo apt-get install python-pip sudo pip install RPi.GPIO sudo pip install spidev sudo apt-get install python-smbus sudo apt-get install python-serial sudo pip install rpi_ws281x
在树莓派终端运行:
sudo apt-get install p7zip-full wget http://www.waveshare.net/w/upload/e/ee/AlphaBot2-Demo.7z 7z x AlphaBot2-Demo.7z -r -o./AlphaBot2-Demo cd AlphaBot2-Demo/Raspberry\ Pi/AlphaBot2
在树莓派终端运行:
cd AlphaBot2-Demo/Raspberry\ Pi/AlphaBot2/python/ sudo python AlphaBot2.py
def __init__(self,ain1=12,ain2=13,ena=6,bin1=20,bin2=21,enb=26):
在树莓派终端运行:
cd AlphaBot2-Demo/Raspberry\ Pi/AlphaBot2/python/ sudo python Joystick.py
在树莓派终端运行:
cd AlphaBot2-Demo/Raspberry\ Pi/AlphaBot2/python/ sudo python IRremote.py
在树莓派终端运行:
sudo apt-get install python-pip sudo pip install rpi_ws281x cd AlphaBot2-Demo/Raspberry\ Pi/AlphaBot2/python/ sudo python Infrared_Obstacle_Avoidance.py
在树莓派终端运行:
cd AlphaBot2-Demo/Raspberry\ Pi/AlphaBot2/python/ sudo python Ultrasonic_Ranging.py
在树莓派终端运行:
cd AlphaBot2-Demo/Raspberry\ Pi/AlphaBot2/python/ sudo python Ultrasonic_Obstacle_Avoidance.py
在树莓派终端运行:
sudo apt-get install python-pip sudo pip install rpi_ws281x cd AlphaBot2-Demo/Raspberry\ Pi/AlphaBot2/python/ sudo python ws2812.py
如果显示颜色不对。可以在/boot/config.txt 文件中添加如下两个语句,然后重启生效。由于RGB LED采用DMA控制,会树莓派上的音频输出DMA通道,添加这两个语句会导致耳机接口不能用。
hdmi_force_hotplug=1 hdmi_force_edid_audio=1
在树莓派终端运行:
cd AlphaBot2-Demo/Raspberry\ Pi/AlphaBot2/python/ sudo python TRSensors.py
在树莓派终端运行:
cd AlphaBot2-Demo/Raspberry\ Pi/AlphaBot2/python/ sudo python Line_Follow.py
在树莓派终端运行:
cd AlphaBot2-Demo/Raspberry\ Pi/AlphaBot2/python/ sudo python PCA9685.py
"MJPG-streamer",是用于从摄像头采集图像,把他们以流的形式通过基于 ip 的网络传输到浏览器。
sudo raspi-config 选择 Enable Camera,选择 YES
sudo nano /etc/modules
加上:
bcm2835-v4l2
sudo reboot ls /dev/video*
下面发现 video0 设备节点。
说明:如果执行前几步之后,请确认操作和指令正确的情况
sudo apt-get update git clone https://github.com/jacksonliam/mjpg-streamer cd mjpg-streamer/mjpg-streamer-experimental/ sudo make clean all sudo ./start.sh
在谷歌浏览器(其他浏览器可能会无法显示)地址栏内输入树莓派 ip 地址,端口号 8080,点击 Stream 会实时显示摄像头拍摄的内容。
如果你需要了解更多可以查看:https://github.com/jacksonliam/mjpg-streamer/mjpg-streamer-experimental
Bottle 是一个简单高效的遵循 WSGI 的微型 python Web 框架.通过 Bottle 可以快速实现 web控制
终端执行如下:
sudo apt-get install python-bottle
cd AlphaBot2-Demo/Raspberry Pi/AlphaBot2/Web-RGB sudo python main.py
在手机浏览器地址栏(不支持电脑浏览器)内输入树莓派 ip 地址,端口号 8002,会显示如下页面。通过点击图片不同的位置,RGB LED会显示不同的颜色。”static”,”breath”,”flash”分别对应三种显示模式。
AlphaBot2-Demo/Raspberry Pi/AlphaBot2/Web-Control sudo python main.py
在谷歌浏览器(其他浏览器可能会异常)地址栏内输入树莓派 ip 地址,端口号 8000,会显示如下页面,点击按键可以遥控
支持手机和电脑控制,无需APP
手机控制:
sudo vi /etc/rc.local
添加:
cd AlphaBot2_Demo/AlphaBot2_Demo/RaspberryPi/AlphaBot2/Web-Control sudo python main.py &
由于树莓派是动态获取IP,可能每次启动时IP会变动,可以添加以下语句到 /etc/dhcpcd.comf设置静态IP:
interface wlan0 static ip_address = 192.168.1.114/24 static routers = 192.168.1.1
其中192.168.1.1为路由器IP地址,192.168.1.114为要设置的IP,后面/24不能去掉。
注意:
电机跳线A部分IN1, IN2, ENA, ENB, IN3, IN4分别接到树莓派一端P12, P13, P6, P26, P20, P21管脚。舵机跳线C部分S1, S2分别接P27, P22.重启树莓派后,用浏览器地址栏内输入树莓派ip地址,端口号8000,即可控制小车。
cd AlphaBot2-Demo/Raspberry Pi/AlphaBot2/App-Control sudo python main.py
cd AlphaBot2-Demo/Raspberry Pi/AlphaBot2/mjpg-streamer/mjpg-streamer-experimental sudo ./start.sh
电脑端打开AlphaBot.exe程序,输入IP地址,mjpg-stream的端口号,小车Soket服务端的端口号
点击Viedeo Connet连接视频,按键变绿色即连接成功,点击Cmd Connect,连接小车服务端。如果按键变绿则连接成功。左边的按键控制小车移动,右边按键控制摄像头舵机转动。
手机扫描下面二维码下载相应的APP。
如果失效了,请点击此处下载[APP https://www.waveshare.net/w/upload/5/53/Alphabot_app.zip]
输入树莓派实际地址,点击链接可以看到摄像头拍摄的图像,点击连接,按键由绿色变蓝色后,表示控制端口连接程序,电机对应按键可以控制小车移动,舵机旋转,拉动滑条可以改变小车速度。
用文本编辑器打开/etc/rc.local 文件添加如下命令可以设置开机启动。
sudo vi /etc/rc.local
在注释后面添加如下命令,但是要保证 exit 0 这几行代码在最后,然后保存文件退出。
cd /home/pi/AlphaBot2-Demo/Raspberry Pi/AlphaBot2/mjpg-streamer/mjpg-streamer-experimental sudo ./start.sh & cd /home/pi/AlphaBot2-Demo/Raspberry Pi/AlphaBot2/App-Control sudo python main.py &
每次树莓派启动的时候都需要连接路由器,当然我们也可以开启树莓派无线网络适配器的AP功能,将树莓派作为路由器。详见树莓派教程,这里不再详述。
sudo apt-get update sudo apt-get upgrade -y sudo apt-get dist-upgrade -y sudo apt-get install pi-bluetooth bluez bluez-firmware blueman
sudo usermod -G Bluetooth -a pi
sudo reboot
sudo vi /etc/systemd/system/dbus-org.bluez.service
修改文件中这两个语句。
重启树莓派后,输入hciconfig命令(类似ifconfig命令)查看蓝牙服务
如果有看到hci0设备则蓝牙已经开启工作。如果没有则没有识别到蓝牙设备。
注意:如果/boot/config.txt文件中有 dtoverlay=pi3-miniuart-bt 这语句需要注释掉,否则蓝牙设备不能正常工作。
输入如下命令进入蓝牙控制界面,(可进入界面输入help查看命令列表)
sudo bluetoothctl agent on
然后进入界面之后(可进入界面输入help查看命令列表)
agent on default-agent
scan on之后 就可以看到扫描得到的蓝牙设备的物理地址了,类似XX:XX:XX:XX:XX:XX之类的地址
配对使用以下命令(以下请把XX:XX:XX:XX:XX:XX替换为你自己设备的地址,Android手机可以在设置->关于手机->状态信息中看到蓝牙地址。)
配对之后把设备添加到信任列表
trust XX:XX:XX:XX:XX:XX
connect XX:XX:XX:XX:XX:XX
最后quit退出就可以了,以后蓝牙设备开机后树莓派会自动进行连接。
注意:如果命令行下链接不成功可以在图形界面下连接。
点击蓝牙图标,添加蓝牙设备。
选择对应的手机蓝牙设备,注意手机蓝牙要开启可发现。
树莓派端选择ok 配对,手机端也选择“Pair”配对。
提示配置成功,但是没有服务。
已经连接成功。
运行如下命令启动程序:
cd AlphaBot2-Demo/Raspberry Pi/AlphaBot2/Bluetooth-Control sudo rfcomm watch hci0 1 python bluetooth.py
手机扫描下面二维码下载相应的APP。(此软件为Dual-mode Bluetooth模块控制软件,如果上面Arduino操作中已经安装此软件,则不需再次安装。)
如果失效了,请点击此处下载[APP https://www.waveshare.net/w/upload/7/74/Alphabot_Bluetooth.zip]
启动APP,点击“扫描”(注意:手机需要打开蓝牙功能),正常在列表中将显示相应的蓝牙设备。选择“raspberrypi”设备。进到下一个页面后选择“遥控模式”进入遥控模式。
如果没有搜索到树莓派蓝牙,可以运行如下命令开启蓝牙可发现。
AlphaBot2是精密器件,为避免AlphaBot2出现故障或者损坏,请遵守以下要求:
AlphaBot2-Ar系列演示视频
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|