没有合适的资源?快使用搜索试试~ 我知道了~
智能车控制系统1
需积分: 0 0 下载量 176 浏览量
2022-08-04
00:14:36
上传
评论
收藏 1.3MB PDF 举报
温馨提示
试读
25页
摘要:本文介绍了基于树莓派开发的智能车控制系统。该系统基于智能车硬件实现了其上的调用库,并基于调用库开发了上层应用,可以实现自动寻迹、简单避障、摄像头控制、小车
资源详情
资源评论
资源推荐
基于树莓派的智能车运行控制系统
南京大学软件学院 冯国豪
关键词:嵌入式;控制系统;自动寻迹;web
摘要:本文介绍了基于树莓派开发的智能车控制系统。该系统基于智能车硬件实现了其上的
调用库,并基于调用库开发了上层应用,可以实现自动寻迹、简单避障、摄像头控制、小车
遥控等等功能,系统还实现了 web 用户界面,可以使用网页对小车进行控制。
一、概述
树莓派是一种为计算机编程教育设计的卡片式计算机,具有体积小,非常容
易集成在其他硬件设备之中;提供大量的硬件设施和接口;提供简单易用的
Linux 操作系统;能够使用高级编程语言在其上进行编程工作等优点,非常适合
用来开发嵌入式系统,控制硬件设备行为,进而为用户提供高可用的服务。
本文便介绍了基于树莓派开发的智能车运行控制系统,该系统基于微雪电子
公司生产的 AlphaBot2-Pi 智能车设备,使用 Python 语言作为开发语言,基于车
上提供的红外传感器、马达、蜂鸣器、超声波距离传感器等硬件设备能力开发了
对应的调用库,并基于硬件基础设施调用库开发了上层应用,可以实现自动寻迹、
LED 灯光的智能控制、遥控器遥控控制车辆、车辆简单避障、摄像头的远程控制
等功能,并进行了一定的封装集成,最后还基于 Vue.js 与 Python 的 web 开发框
架 Flask 实现了简单易用的 web 用户界面,能够基于 web 服务使客户端同车辆进
行通信,进行小车功能的控制。同时,系统还提供了车辆的编程控制,用户可以
通过简单的选择与点击创建小车运行控制脚本,并控制小车按照此脚本设置的任
务顺序进行运行。
本文将介绍此系统的设计思路与设计架构,逐一介绍每部分实验的实验原
理、所需设备与实验步骤,并在最后分析系统设计中存在的问题与可行的改进
方案。您可以访问 github 仓库(地址:
https://github.com/fengguohao/intelligent_vehicle_system)下载该系统
的完整源代码,并在相同的软硬件环境下复现所有步骤。您同样可以通过此仓
库下载观看系统的视频介绍。
硬件层部分基于微雪电子 AlphaBot2-Pi 智能车设备,该设备搭载了红外传
感器、直流电机、红外遥控器、蜂鸣器、超声波距离传感器、LED 彩灯、舵机、
摄像头等硬件,这些硬件都能通过 GPIO 接口连接到树莓派开发板,进而在上层
进行设备资源的调用。
为了便于硬件功能的调用,系统针对设备常用功能开发了相应的调用库,当
需要使用设备的某个功能时直接引入所需的硬件功能调用库(carFacility),便
可以使用对应的功能,大大简化了应用实现过程,提高了开发效率。该模块实现
了与其他模块的解耦,具有较高的可用性。
基于硬件功能调用库封装,该系统又在上层开发了应用层,实现了自动寻迹、
LED 灯光的智能控制、遥控器遥控控制车辆、车辆简单避障、摄像头的远程控制
等一系列的功能,并做了简单的封装,以供用户使用遥控器的控制能力体验相关
功能,您还可以通过简单地修改封装实现,快速将遥控器功能替换为您所需要的
功能。
为了进一步方便用户使用,系统又对应用层进行了进一步的封装,将其实现
为 WEB 用户界面,更加方便用户与系统进行交互。
系统在设计过程中,坚持高内聚、低耦合,将软件系统划分为不同的功能模
块,提高各模块的独立性,从而力求最大程度上提升代码的可重用性与可修改性。
在功能设计上,该控制系统一方面希望将小车的设备能力充分利用起来,便于用
户使用;另一方面又希望尽可能挖掘功能背后的使用场景,提高功能的实用性。
三、硬件功能调用库封装
(一)相关原理介绍:
1. PWM:脉冲宽度调制
PWM 是 Pulse Width Modulation 的缩写,中文名称为脉冲宽度调制,是一
种利用数字输出对模拟电路进行控制的有效技术。其关键技术是通过改变脉冲的
宽度来实现不同的效果。其中有两个关键的参数为频率(单位:Hz)与占空比(单
位:百分比),其中占空比的计算公式如下所示
占空比
=
每个周期内高电平的时间
周期时间
Fig.2 PWM 波形
例如对于 Fig.2 中所示的一组波形,我们可以观察到其高低电平的脉冲宽度
是不同的,同时可以观察到,每个周期时间为 10ms,其中高电平时长为 3ms,进
而我们可以求得其频率为 100Hz,其占空比为 30%。
利用这项技术,我们就可以通过数字信号控制蜂鸣器的频率和音量了。具体
来说,PWM 波的频率与实际发出的声音的频率正相关,占空比和其音量正相关。
同样的道理,我们也可以通过改变 PWM 波的占空比,控制直流电机的转动速度,
控制舵机的转动速度,原理大致相仿,不再赘述。
2.红外传感器
车辆上共搭载了三种红外传感器,分别是用于检测前方是否存在障碍物的红
外避障传感器(只能返回 0/1 信号)、用于寻迹的红外传感器(能够量化红外强
度值)和用于接收遥控器信号的红外线接收器。下面分别介绍这三种红外传感器
的原理。
a.红外传感器
Fig.3 红外传感器
如 Fig.3 所示,红外传感器由一个红外发射管与一个红外接收管组成,发射
管与接收管之间光隔离,发射管发出的红外光被反射后由接收管接收,当发射管
离反射物体越近,反射物体反射能力越强时,接收管接收到的反射光也就越强,
当达到光强度阈值时,便可以确定前方有障碍物。
而能够量化红外强度值的传感器相对上面一种区别在于加入了模数转换器,
能够将红外接收管接收到的红外强度值模拟信号编码为数字信号。
具体到我们实验中所使用的传感器,其使用的数模转换器型号为 TLC1543,
是一个 10 通道、10bits 的 SPI 接口模数转换器。可以在 IOCLK 产生时钟脉冲,
ADDR 逐位输入通道编码,从 DOUT 中读出转换值。
b.红外接收传感器
红外接收传感器与红外遥控器配合使用。对于我们使用的硬件,红外遥控器
发射的信号使用 38kHz 左右的载波对基带进行调制,接收端对信号监测、放大、
滤波、解调,然后输出基带信号。收发方约定使用相同协议进行通信,这里我们
使用的是 NEC 红外通信协议,具体来说,发送端会首先发送一个 9ms 低电平接
4.5ms 高电平的引导码,接收方检测到引导码后开始识别后面的数据,0.56ms 低
+0.56ms 高表示“0”,0.56ms 低+1.69ms 高表示“1”,一组 01 序列便构成了一
个按键特征字,接收方便可以根据收到的特征字产生一系列动作。
3.超声波传感器
超声波传感器通过发射超声波,检测发射时间与接收时间之间的时间差,再
根据时间差进行一定的计算,便可以计算出障碍物与传感器之间的距离。计算公
式为:
𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 =
𝑉t
2
其中 V 为声速,可以取 340m/s,t 即为发射时间与接收时间之间的时间差。
超声波传感器上有四个接口,分别是 VCC,Trig,Echo,GND,VCC 和 GND 之
间形成电位差用于供电,在使用超声波传感器时要求在 Trig 端口产生不短于 10
μs 的正脉冲,模块便会自动发出 8 个周期的超声波脉冲信号(40kHz),并在 Echo
端输出高电平。当检测到回波时将 Echo 置为低电平。
4.直流电机
直流电机控制电路由两个功率输出端和一个控制开关组成,当控制开关接通
时,输出电流方向由两个输入端的电压差决定,这样便可以实现电机的双向转动
调整。
剩余24页未读,继续阅读
陈游泳
- 粉丝: 30
- 资源: 302
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0