AlphaBot

来自Waveshare Wiki
Eng50讨论 | 贡献2023年1月14日 (六) 14:46的版本 (文本替换 - 替换“<h1>技术支持</h1>”为“=售后=”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
AlphaBot智能车
{{{name2}}}
{{{name3}}}
功能简介
特性 Raspberry Pi / Arduino智能车
适用范围 树莓派、Arduino
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 I/Os RPi Arduino

说明

产品简介

AlphaBot智能车开发套件,主要包括AlphaBot底板和智能车底盘,支持接入Arduino和树莓派。

主要功能

Arduino和树莓派都是目前热门的开发板,机器智能车也是很多电子爱好者的热衷项目,而AlphaBot让这三者结合到了一起。通过把AlphaBot接入树莓派或Arduino,配合微雪提供的开源代码和学习教程,便能快速了解和探索智能小车的学习和开发。
AlphaBot能够感知环境并且做出反应,这其中涉及到的技术要点:
循迹、避障、手机/PC视频监控、WIFI/蓝牙/ZigBee/红外无线遥控等。
注:此用户手册不针对某个特定的套餐,可能有些套餐不包含下文介绍到的部分模块,套餐配置以网页介绍中详细配置为准。

功能亮点

  • 板载Arduino和树莓派连接口,可任选其一接入,也可同时接入协同工作。
  • 板载Arduino和树莓派扩展接口,可接入树莓派或Arduino功能扩展板。
  • 接口模块化,避障、循迹、测速等模块即接即用,无需繁琐杂乱的杜邦接线。
  • 板载L298P电机驱动芯片,给车子提供动力,外加二极管保护电路,为车子保驾护航。
  • 板载LM2596稳压芯片,可给树莓派或Arduino提供稳定的5V电压。
  • 板载TLC1543AD采集芯片,方便树莓派接入模拟传感器。

受众

许多单片机爱好者都曾经想设计一台属于自己的智能小车。然而当真正动手时却发现并不像想象中简单,可能一知半解甚至毫无头绪。本套件能让您快速了解智能小车的结构框架、基本原理,以及外部模块。
本教程主要通过微雪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板造成不可逆的电器损坏。因此首次使用本产品的用户,应当尽量按照本手册的操作步骤进行操作。

产品选型

说明:不同的套餐,配件可能是不同的。虽然本手册将介绍所有配件,但是您购买的套餐可能并不包含其中的某些配件。关于兼容的配件,请参见选型列表。
Alphabot Selection.png

资源简介

Alphabot Resource.png

主控模块

主控模块即整个小车的核心控制板,AlphaBot留有Arduino以及Raspberry Pi接口,可单独列入树莓派或Arduino板,也可以同时接入,协同工作。充分利用两者的硬件和软件资源,使得小车拥有更广阔的应用场景。
100 Arduino和树莓派都可以独立控制外设,通过跳线选择。

电机驱动模块

电机驱动模块是小车最重要的模块之一,AlphaBot使用的是 L298P 驱动芯片。L298P 是 ST 公司生产的一种高电压、大电流电机驱动芯片。
100
驱动模块接口定义:

接口 树莓派 Arduino
IN1 P12 A0
IN2 P13 A1
ENA P6 D5
IN3 P20 A2
IN4 P21 A3
ENB P26 D6

其中IN1和IN2接小车左电机,IN3和IN4接小车右电机。 ENA和ENB为输出使能管脚,高电平有效,可以让IN1、IN2、IN3和IN4输出PWM脉冲实现小车调速。
控制原理:

IN1 IN2 IN3 IN4 描述
1 0 0 1 左右电机正转,小车前进
0 1 1 0 左右电机反转,小车后退
0 0 0 1 左电机停止,右电机正转,小车左转
1 0 0 0 右电机停止,左电机正转,小车右转
0 0 0 0 左右电机停止,小车停止

电源部分

小车采用两节18650串联供电,输入电压约为7.4V(单节电池3.7V)。经过LM2596稳压后为Arduino、树莓派,传感器供电。
100
使用外部供电的时候,电压不应超过12 V。

AD采集部分

由于树莓派的GPIO没有AD功能,故AlphaBot小车板载一个10位 11通道的AD转换芯片。循迹功能会用到。
100

壁障模块

100
避障模块主要由红外收发器以及比较器组成。红外发射管是由红外发光二极管矩组成发光体,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,红外接收管是将红外线光信号变成电信号的半导体器件,它的核心部件是一个特殊材料的PN结,随着红外光强度的增加电流也随之增大输出模拟信号,经过LM393比较器处理后输出数字信号,同时绿色指示灯点亮。通过读DOUT的逻辑电平,就可以判定前方是否有障碍物,读AOUT的输出电压可以判定距离。可通过电位器旋钮调节检测距离。
100

测速模块

100
车速模块主要由码盘结合WYC-H206槽型光电传感器构成。WYC-H206传感器一端为红外发射光,另一端为红外接收,当有遮挡时,红外接收端接收不到红外,输出高电平,经过反相施密特触发器变为低电平输出,同时信号灯被点亮。当码盘转动时,DOUT会输出高低脉冲,测量单位时间内脉冲个数既可算得小车速度。采用施密特触发器使输出信号更加稳定,波形好,没有抖动现象。
100

红外遥控

100
小车采用LFN0038K接收头,可以接受红外信号。配套的红外遥控器输出的脉冲信号遵循标准的NEC编码协议。红外接收器接收到信号之后,会把脉冲输出到主控芯片的接收管脚。主控对接收到的信号解码之后得到按键码,然后控制对应的电机。
红外 NEC 协议编码采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的"0";以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的"1
100
红外控制协议:上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如下图。
300
|引导码|用户识别码|用户识别码反码|操作码|操作码反码|
首次发送的是9ms的高电平脉冲,其后是4.5ms的低电平,接下来就是8bit的地址码(从低有效位开始发),而后是8bit的地址码的反码(主要是用于校验是否出错)。然后是8bit 的命令码(也是从低有效位开始发),而后也是8bit 的命令码的反码。
一个命令只发送一次,即使遥控器上的按键一直按着。但是会每110mS发送一次重复码,直到遥控器按键释放。重复码比较简单:一个9mS的AGC脉冲、2.25mS间隔、560uS脉冲。
100

超声波测距模块

超声波测距模块有四个针脚,除了电源(VCC)和地(GND),还有发射管脚TRIG和接收管脚ECHO。
100
控制原理:
超声波测距原理是当发送的超声波遇到物体后被反射回来,被接收端接收。通过发送信号到接收到回响信号时间间隔可以算得距离。
100
以上时序图表明超声波的控制原理。模块工作时IO口给至少 10us 的高平信号控制TRIG触发测距。模块将自动发射8个40kHz的方波,并且自动检测是否有信号返回。若有信号返回,通过 ECHO 输出一个高电平,而高电平的持续时间就是超声波发射到返回的时间。
根据声音传播的速度和时间我们可以测出距离:测量距离=(测量时间*声音速度)/2。声音的传播速度通常按 340m/s 来计算。
性能参数:
100

舵机

100
舵机由直流电机、减速齿轮组、传感器和控制电路组成的一套自动控制系统。通过发送信号,指定输出轴的旋转角度。舵机一般由三根线控制,接线方法:红色为电源正 (5v),橙色为信号线(IO),褐色为电源地(GND)。
控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。 它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。
舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms。以180度角度伺服为例,对应的控制关系是这样的:

脉宽 旋转角度
0.5ms 0度
1ms 45度
1.5ms 90度
2.0ms 135度
2.5ms 180度

循迹模块

100
循迹模块和红外避障模块类似,循迹模块采用ITR20001/T红外反射传感器,ITR2001/T传感器的红外发射二极管不断发射红外线,当发射出的红外线被物体反射时,被红外接收器就收,并输出模拟值。输出模拟值和物体距离以及物体颜色有关。
循迹模块采用五路红外传感器,通过测量五路红外传感器,判断黑线的位置,从而控制小车运动。
100

NRF24L01+无线控制

AlphaBot留有SPI接口,可以直接接入NRF24L01模块。NRF24L01是一款新型射频收发器件,内置了频率合成器、功率放大器、晶体振荡器、调制器的功能,融合了增强型 ShockBurst 技术,其中地址、输出功率和通信频道都可以通过程序进行配置,适用于多机通信。其功耗很低,在以-6dBm的功率发射时工作电流只有9mA;而对应接收机的工作电流只有12.3mA,多种低功率工作模式(掉电模式、空闲模式)。
通过SPI接口配置NRF24L01模块,通常情况下将模块配置成 Enhanced ShockBurstTM收发模式,能够使模块自动处理射频协议。完成配置后,在模块工作过程中只需要改变最低一个字节的内容,实现接收模式和发射模式的切换。
主要参数设置:数据宽度,声明射频数据包中数据占用的位数。使NRF24L01+能够区 分接收数据包中的数据和 CRC 校验码;地址宽度,声明射频数据包中地址占用的位数,能使 NRF24L01+区分地址和数据;接收通道,接收数据的地址,有通道 0 到通道 5 的地址;CRC 校验,使 NRF24L01+能够生成 CRC 校验码和解码;工作频率,可以设置在 2.4-2.524GHz 之间,间隔 1MHz;发射功率,其大小决定了通信距离和整体的功耗;通信速率,1Mbps、 2Mbps 通信速率可选择配置。
100

蓝牙控制

AlphaBot 留有UART接口,可以直接接入蓝牙2.0模块,或者通过Accessory Shield模块接入双模蓝牙模块。蓝牙模块是通过串口控制,无须了解任何蓝牙协议。接入蓝牙模块后可以通过手机端控制小车。
100
图中接到 Accessory Shield 板上的是双模蓝牙模块,支持蓝牙 2.0 和 4.0 两种模式。我们蓝牙套餐也是配这个。接到 UART 接口上的是蓝牙 2.0 模块,这个我们是没有配的。

Zigbee

AlphaBot 可以通过 Accessory Shield 模块接入 Core2530 (B)可以通过 ZegBee 控制,电脑端通过 USB 连接 CC2530 Eval Kit (B)。
100
通过上位机软件软件控制小车:
100

Wifi控制

AlphaBot用树莓派作为主控时,可以用手机端或者电脑通过网页实现WiFi视频控制功能。通过webiopi实现远程遥控,通过mjpg-streamer软件实时显示摄像头拍摄图片。
python-bottle是一个简单高效的遵循WSGI的微型python Web框架.通过Bottle可以快速实现web控制。
MJPG-streamer,是用于从webcam摄像头采集图像,把他们以流的形式通过基于ip的网络传输到拥有浏览器的移动设备。通过mjpg-streamer软件可以实现将摄像头中采集到的图像通过网络传输到浏览器网页上显示。
100

Arduino示例程序

将Arduino目录下的库文件复制到Arduino IDE安装目录下libraries文件夹中。重启Ariduino IDE,点击File-> Example,查看是否有AlphaBot,TRSensors,Servo等选项,若有说明库导入成功。

小车测试程序

  1. 点击File-> Example ->AlphaBot ->E01_Run_Test打开工程。编译并下载到Arduino开发板。
  2. 跳线A区IN1, IN2, ENA, ENB, IN3, IN4分别接A0, A1, D5, D6, A2, A3。
  • 打开电源开关,小车实现前进运行:

若小车的两个轮子不是向前运行,可以更换一下电机接线或者修改AlphaBot.c文件管脚设置。

红外避障程序

  1. 点击File -> Example ->AlphaBot ->E02_Infrared_Obstacle_Avoidance打开工程。编译并下载到Arduino开发板。
  2. 小车接上左右Infrared Proximity Sensor传感器,电机A区跳线接到Arduino一端,E区跳线DL, DR分别接D7, D8。
  • 打开电源开关,小车实现红外避障功能:

当传感器前方有障碍物时,绿色LED灯会亮,调节电位器可以改变感应距离。左边传感器检测到障碍物小车会右转,右边传感器检测到障碍物会左转。

红外物体追踪程序

  1. 点击File -> Example ->AlphaBot ->E03_Infrared_Tracking_Objects打开工程。编译并下载到Arduino开发板。
  2. 电机A区跳线接到Arduino一端,E区跳线, DL, DR分别接D7, D8。
  • 打开电源开关,小车实现物体追踪功能:

若小车前方有物体,小车会前进。若小车前方没有物体,小车静止。调节电位器可以改变感应距离。

红外遥控程序

  1. 点击File -> Example ->AlphaBot ->E04 Infrared_Remote_Control打开工程,编译并下载到Arduino开发板。
  2. 电机A区跳线接到Arduino一端,G区红外接收部分跳线IR的接到Arduino一端D4。
  • 打开电源开关,预期结果:

按下红外遥控器的数字键控制小车。2,8,4,6,5分别代表前进,后退,左转,右转,停止。按-或+可调节速度。(注:不同的红外遥控器可能按键编码不一样,如果不一样需相应修改程序)

超声波测距程序

  1. 点击File-> Example -> AlphaBot -> E05_Ultrasonic_Ranging打开工程,编译并下载到Arduino开发板。
  2. 小车接上舵机以及超声波模块,D区超声波接部分跳线TRIG, ECHO的接到Arduino一端D11, D12管脚。(红外循迹也要这些管脚,应该去掉相应跳线,避免干扰)。
  • 打开电源,串口会显示当前超声波测量的距离。

超声波避障程序(不带舵机)

  1. 点击File -> Example -> AlphaBot -> E06_Ultrasonic_Obstacle_Avoidance1打开工程,编译并下载到Arduino开发板。
  2. 小车接上舵机以及超声波模块,D区超声波接部分跳线TRIG, ECHO的接到Arduino一端D11, D12管脚。
  • 打开电源,小车会实现超声波避障功能:

当前方有障碍物时,超声波模块会自动转向前进。

超声波避障程序(带舵机)

  1. 点击File -> Example -> AlphaBot -> E07_Ultrasonic_Obstacle_Avoidance2打开工程,编译并下载到Arduino开发板。
  2. 小车接上舵机以及超声波模块,D区超声波接部分跳线TRIG, ECHO的接到Arduino一端D11, D12管脚。C区舵机部分跳线S1接到Arduino一端D9管脚。(红外循迹也要这些管脚,应该去掉相应跳线,避免干扰)。
  • 打开电源,小车会实现超声波避障功能:

当前方有障碍物时,超声波模块会测量左边和右边的障碍物的距离,小车会选择障碍物距离远的一向运动。

红外循迹程序

  1. 点击File -> Example -> AlphaBot -> E08_Infrared_Line_Tracking打开工程,编译并下载到Arduino开发板。
  2. 小车接上Tracker Sensor寻迹模块,电机A区跳线接到Arduino一端,F区寻迹部分跳线CLK, ADDR, DOUT, CS的分别接到Arduino 一端D13, D12, D11, D10。(舵机C区,超声波D区也是用到这些管脚,应该去掉相应跳线,避免干扰)。
  3. 寻迹程序实现小车沿着黑线运行,底色为白色。可以用黑线胶布粘在白色的KT板中制作小车循迹场地,黑色轨迹宽度为15cm。若底色颜色过深会影响循迹效果。
  4. 打开电源开关,用手拿着小车在黑线中紧贴地面左右摇晃,此阶段为校准,使小车可以设别各个传感器的最大值和最小值。校准效果直接影响到循迹效果。直到小车轮子开始转动时开放小车,小车会沿着黑色线运行。

详细的原理以及算法等可以参考Tracker Sensor模块用户手册。

蓝牙遥控程序

  1. 点击File-> Example -> AlphaBot -> E09_Bluetooth_Control打开工程,编译并下载到Arduino开发板。
  2. 将Accessory Shield模块接到小车Arduino接口上,将蓝牙模块接到Accessory Shield模块的XBee接口上,另外设置Accessory Shield上的跳线帽:RXD=TX 、TXD=RX。
  • 打开电源,下载蓝牙控制软件并安装到手机中,打开软件并连接上对应蓝牙:

按下方向键可以控制小车运动。发送字符串OLED会显示相应的字符。

ZigBee遥控程序

  1. 点击File -> Example -> AlphaBot -> E10_Zigbee_Control打开工程,编译并下载到Arduino开发板。
  2. 将Accessory Shield模块接到小车Arduino接口上,将ZigBee模块Core2530 (B)接到Accessory Shield模块的XBee接口上,另外设置Accessory Shield上的跳线帽:RXD=TX 、TXD=RX。用USB线将CC2530 Eval Kit5开放套件连接到电脑。
  • 打开小车电源,电脑端打开AlphaBot.exe程序,选择对应的串口号:

电机按键即可控制小车运动。发送命令字符串OLED会显示相应的字符。

  • 通过上位机软件软件控制小车:

100

树莓派示例

提供python例程

树莓派使用教程

开启SPI接口

PS:如果使用的是Bullseye分支的系统,需要将”apt-get“改成“apt",Bullseye分支的系统只支持Python3。
  • 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config
选择Interfacing Options -> SPI -> Yes 开启SPI接口

RPI open spi.png
然后重启树莓派:

sudo reboot

请确保SPI没有被其他的设备占用,你可以在/boot/config.txt中间检查

开启I2C接口

  • 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config 
选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动

RPI open i2c.png
然后重启树莓派:

sudo reboot

开启Uart接口

打开树莓派终端,输入以下指令进入配置界面

sudo raspi-config
选择Interfacing Options -> Serial,关闭shell访问,打开硬件串口
L76X GPS Module rpi serial.png

安装库

如果使用bookworm系统,只能使用lgpio库,bcm2835跟wiringPi无法安装与使用

BCM2835

#打开树莓派终端,并运行以下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/

wiringPi

#打开树莓派终端,并运行以下指令
cd
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行gpio -v会出现2.52版本,如果没有出现说明安装出错

#Bullseye分支系统使用如下命令:
git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build
gpio -v
# 运行gpio -v会出现2.70版本,如果没有出现说明安装出错

lgpio

#打开树莓派终端,并运行以下指令
wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
cd lg-master
sudo make install

# 更多的可以参考官网:https://github.com/gpiozero/lg
  • python
sudo apt-get updata
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 apt-get install p7zip
wget http://www.waveshare.net/w/upload/2/20/AlphaBot_Demo.7z
7zr x AlphaBot_Demo.7z -r -o./AlphaBot_Demo
sudo chmod 777 -R AlphaBot_Demo
cd AlphaBot_Demo/AlphaBot_Demo/RaspberryPi/AlphaBot/

红外避障程序

  1. 小车接上左右Infrared Proximity Sensor传感器
  2. 电机跳线A部分IN1, IN2, ENA, ENB, IN3, IN4分别接到树莓派一端P12, P13, P6, P26, P20, P21管脚。
  3. 红外感应跳线E部分,DL, DR分别接P19, P16.
  • 进入 Linux 终端,在终端执行以下命令。
cd python 
sudo python Infrared_Obstacle_Avoidance.py
  • 预期结果:

小车左边传感器检测到障碍物小车会右转,右边传感器检测到障碍物会左转。

红外物体追踪程序

  1. 小车接上左右Infrared Proximity Sensor传感器
  2. 电机跳线A部分IN1, IN2, ENA, ENB, IN3, IN4分别接到树莓派一端P12, P13, P6, P26, P20, P21管脚。
  3. 红外感应跳线E部分,DL, DR分别接P19, P16.
  • 进入 Linux 终端,在终端执行以下命令。
cd python 
sudo python Infrared_Tracking_Objects.py
  • 预期结果:

小车实现物体追踪功能,若小车前方有物体,小车会前进。若小车前方没有物体,小车静止。

红外遥控程序

  1. 电机跳线A区接到树莓派一端
  2. 红外遥控跳线G区IR管脚接P18.
  • 进入 Linux 终端,在终端执行以下命令。
cd python 
sudo python Infrared_Remote_Control.py
  • 预期结果:

按下红外遥控器的数字键控制小车。2,8,4,6,5 分别代表前进,后退,左转,右转,停止。按-或+可调节速度。(注:不同的红外遥控器可能按键编码不一样,如果不一样需修改相应程序)

红外循迹程序

  1. 电机跳线A区接到树莓派一端
  2. 寻迹跳线F区CLK,ADDR,DOUT,CS管脚分别接P25,P24, P23, P5.
  • 进入 Linux 终端,在终端执行以下命令。
cd python 
sudo python Infrared_Line_Tracking.py
  • 预期结果:

打开电源开关,用手拿着小车在黑线中紧贴地面左右摇晃,此阶段为校准,使小车可以设别各个传感器的最大值和最小值。校准效果直接影响到循迹效果。直到小车轮子开始转动时开放小车,小车会沿着黑色线运行。

超声波测距程序

  1. 小车接上舵机以及超声波模块
  2. D超声波跳线D区TRIG,ECHO的接到树莓派一端P17,P5管脚。(红外循迹也要这些管脚,应该去掉相应跳线,避免干扰)
  • 进入 Linux 终端,在终端执行以下命令。
cd python 
sudo python Ultrasonic_Ranging.py
  • 预期结果:

小车会实现超声波测距功能呢。超声波模块会测量出小车和前面障碍物的距离,并打印显示出来。

超声波避障程序

  1. 小车接上舵机以及超声波模块
  2. D超声波跳线D区TRIG,ECHO的接到树莓派一端P17,P5管脚。(红外循迹也要这些管脚,应该去掉相应跳线,避免干扰)
  • 进入 Linux 终端,在终端执行以下命令。
cd python 
sudo python Ultrasonic_Obstacle_Avoidance.py
  • 预期结果:

小车会实现超声波避障功能呢。当前方有障碍物时,超声波模块会测量左边和右边的障碍物的距离,小车会选择障碍物距离远的一向运动。

mjpg-streamer 软件实时监控

"MJPG-streamer",是用于从摄像头采集图像,把他们以流的形式通过基于 ip 的网络传输到浏览器。

  • 使用摄像头前必须运行 raspi-config 命令启用摄像头:
sudo raspi-config
选择 Enable Camera,选择 YES

Rpi Enable Camera.png

  • 如果是使用 CSI 接口的摄像头,那么系统找不到/dev/video0 的设备节点。需要在/etc/modules 文件中添加一行 bcm2835-v4l2:
sudo nano /etc/modules

加上:

bcm2835-v4l2 

Pan-tilt hat addmodules.png
那么系统启动之后,系统会加载这个文件中的模块名,重启系统:

sudo reboot
ls /dev/video*

下面发现 video0 设备节点。
Pan-tilt hat addmodules1.png
说明:如果执行前几步之后,请确认操作和指令正确的情况

  • 运行如下命令:
sudo apt-get update
sudo apt-get install libjpeg8-dev cmake
cd AlphaBot_Demo/AlphaBot_Demo/RaspberryPi/AlphaBot/mjpg-streamer/mjpg-streamer-experimental
sudo chmod +x ./start.sh mjpg_streamer mjpg_streamer.c  mjpg_streamer.h
sudo make clean all
sudo ./start.sh

在谷歌浏览器(其他浏览器可能会无法显示)地址栏内输入树莓派 ip 地址,端口号 8080,点击 Stream 会实时显示摄像头拍摄的内容。
如果你需要了解更多可以查看:https://github.com/jacksonliam/mjpg-streamer
Pan-tilt hat cam.png

通过Bottle实现远程遥控

Bottle 是一个简单高效的遵循 WSGI 的微型 python Web 框架.通过 Bottle 可以快速实现 web控制
终端执行如下:

sudo apt-get install python-bottle
cd AlphaBot_Demo/AlphaBot_Demo/RaspberryPi/AlphaBot/Web-Control
sudo python main.py

在谷歌浏览器(其他浏览器可能会异常)地址栏内输入树莓派 ip 地址,端口号 8000,会显示如下页面,点击按键可以遥控,注意此图片只是演示
Pan-tilt hat ip.png
支持手机和电脑控制,无需APP
手机控制:
Alphabot rpi web.png

  • 设置此程序开机启动。用文本编辑器打开/etc/rc.local 文件添加命令。
sudo vi /etc/rc.local

添加:

cd AlphaBot_Demo/AlphaBot_Demo/RaspberryPi/AlphaBot/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,即可控制小车。

安全须知

产品名称:智能车扩展开发套件,主要包括AlphaBot底板和智能车底盘。支持接入Arduino和树莓派开发板。
AlphaBot是精密器件,为避免AlphaBot出现故障或者损坏,请遵守以下要求:

  • 本产品通常使用两节18650电池供电,工作电压是7.4 V。与底板与Arduino和树莓派搭配使用时的任何外部电源,都应遵守所在地区适用的电源相关法规和标准。
  • 本产品应在通风良好的环境下使用,以便电源散热以及保证产品性能。
  • 底板拆卸下来之后,应该放置在稳定、平坦、不导电的表面上。不应接触导电物品。
  • 底板可以连接树莓派或者Arduino两者之一,也可以同时连接Arduino和树莓派,在这种情况下,应当避免让Arduino和树莓派发生触碰。
  • 将不兼容的设备连接到底板可能会导致设备损坏、质保失效。
  • 切勿在操作过程中接触水分和湿气,或放置在导电的表面上。
  • 切勿让AlphaBot接触任何热源,以便该产品在正常室温环境下保持可靠运行。
  • 操作过程应避免对印制电路板和其上的电子元器件造成机械或者电器损伤。
  • 操作过程应避免触碰已通电的印制电路板,尽可能触碰其边缘,减少静电放电风险。

资料

文档

程序

软件

教程

树莓派智能车AlphaBot教程
教程名2
  • 列表2
教程名3
  • 列表3
教程名4
  • 列表4
教程名5
  • 列表5
教程名6
  • 列表6
树莓派入门教程(新)
树莓派入门教程
树莓派OpenCV教程
树莓派littleGL系列教程
树莓派QT教程
树莓派OpenWrt教程
Arduino学习教程
教程名2
  • 列表2
教程名3
  • 列表3
教程名4
  • 列表4
教程名5
  • 列表5
教程名6
  • 列表6

认证资料


FAQ


配18650型电池,即直接为18mm,长度为65mm.单节标的电压一般为3.7V,充满电电压一般为4.2V,最低电压不能低于3V或2.75V,否则电池会永久损坏。


需要更加用户手册更改一下跳线帽的位置。


首先检查一下红外避障模块是否正常,正常情况下绿色的LED灯是不亮的,有障碍物时LED灯亮。如果绿色LED灯一直亮或者一直不亮可以调节模块上面的电位器,使得绿色的LED灯刚好熄灭。另外再检查一下跳线是否正确。


不能识别,小车只能沿着线循迹,要识别T字或者十字最好采用摄像头循迹。


售后


联系人:林工
EMAIL:3005425717@qq.com
电话:0755-83043099
QQ:3005425717
微信:扫下方二维码添加
Lzr.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证