1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 树莓派c语言小车红外 基于树莓派的红外避障小车

树莓派c语言小车红外 基于树莓派的红外避障小车

时间:2023-08-21 00:09:46

相关推荐

树莓派c语言小车红外 基于树莓派的红外避障小车

戴文翔孙智勇

摘要:基于树莓派的小车实验很多,如通过网页控制小车;利用超声波进行避障....文章主要介绍利用红外进行避障的小车。为实现小车避障功能,需要设计基于树莓派的智能避障小车。把树莓派作为核心程序驱动器,通过L298n电机驱动实现对直流电机的控制以达到控制小车的目的;利用红外避障传感器模块实时监测小车距离障碍物的距离,设计基于红外线反射测距的避障算法以达到避障目的。

关键词:避障小车;红外避障;树莓派;L298n;程序实例

中图分类号:TP391 文献标识码:A 文章编号:1007-9416()01-0089-02

1 硬件设计

(1)避障小车硬件组成包括:小车底盘、3个车轮(两个前轮一个后轮)、两个直流电机、红外模块、红外避障传感器(2个)、电源盒、移动电源(小型)、无线网卡、树莓派。PS:3个车轮中,两个前轮由直流电机直接驱动,后轮选择万向轮。

(2)电源部分:包括四节1.5V (5号)电池,5000毫安移动电源。四节1.5V (5号)电池为L298n提供6V电压,5000毫安移动电源为树莓派提供稳定的5V电压。

(3)驱动部分:包括小车底盘、L298n电机驱动、直流电机(2个)、三个车轮(两个前轮和一个万向轮)。L298n驱动前轮,配合万向轮实现前进、后退以及左右转向。

(4)主控制部分:树莓派。树莓派通过L298n控制直流电机转动,全方向达到移动的目的。树莓连接红外传感器模块,通过红外线接发器,以达到实时测量与障碍物的距离。从而可以做到小车再碰到障碍物之前能按预设避让方式进行避让。最终实现智能避让。

(5)传感器部分:红外避障模块。红外传感器模块连与树莓派,正常工作时,红外避障模块的工作电压为5V左右,但红外避障模块上的红外接发器接受到遇障碍物而折回的红外时,电压会下降0.1V左右。进而产生信号,是树莓派执行避让语句。

2 软件设计

(1)通道搭建,以及通道位置:L298n電机驱动可以驱动两路直流电电机。控制直流电机需要用到L298n的四个端口:方向端IN1、IN2、IN3、IN4(PS:如果不需要使用使能,切勿将ENA、ENB以及板载5V使能端帽拔掉,让其一直保持在高点平状态)。通过改变IN1、IN2等四个端口的高低电频状态,使直流电机正转或反转。树莓派通过引脚连接IN1、IN2等端口,来控制电机转向。避障小车代码如图1:

(2)初始化GPIO端口:不要忘记的在设置完信息交流通道(channel)后,还要定义GPIO端口为输入端还是输出端,代码如下:

(3)定义基础方向:避障行为是由基础方向+树莓派选择调用构成,所以需要在此处先定义最基本的基础移动方式。代码如下:

(4)红外避障:

总的来说红外避障就是,树莓派利用红外避障模块收集来的信息(离障碍物的远近),在靠近过障碍物时,调用基础方向进行躲避。代码如图2:

3 结语

树莓的实验远不止智能小车这一类,但要熟练进行实验操作需要对树莓派所使用Linux的指令,以及需要对基于Linux的nano和vim编译器进行性学习。同样语言基础必不可少,大多数情况下Python是Linux默认的编译语言(部分树莓派安装的是Windows系统,这时就需要C语言),所以也要加深对Python的学习。适当了解些像WinSCP这一类辅助程序,会减少我们在实验中的麻烦。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。