单信标识别双轮智能车的设计与实现

随着近年来人们对识别定位和导航服务的需求日益增加,实现低成本、高精度的定位,具有越来越重要的现实意义。目前,常用的定位主要有以下几种:WIFI、蓝牙、ZigBee,超宽带、RFID等定位方案。近年来通信技术的发展,国内外有提出关于信标检测定位的方案。与传统方案相比,基于信标定位的技术无电磁污染、部署容易,既节省了部署空间,也节省了成本。不同于传统识别方案,信标识别对于环境的要求低,且非常容易实现识别。因此这将是一种很有发展前景的定位方案。

能够通过定义物体的信标,使得智能车能够一对一的寻找物体的信标,从而能够准确的找到信标对应的物体,在硬件方面,本设计将控制芯片、传感器、外接设备和电机驱动板整合到一块PCB上进行打样和焊接。软件方面通过对MPU6050三轴加速度和三轴角速度的变化计算,得到四元数,再通过逆解得到平衡所需的欧拉角,来控制智能车的平衡。OLED 显示信标的位置、大小、MPU6050的数据经过单片机计算的欧拉角和经过直立环、速度环和转向环合成的控制电机的PWM。这些功能的结合,使得智能车的执行效率大大提升,也极大的提高人们对于想要寻找的目标点或者是丢失的贵重物品的寻找,大大的节约了时间和成本。

1章 绪  ............................................................................................................... 1

1.1 国内当前现状................................................................................................................ 1

1.2 国外当前现状................................................................................................................ 1

1.3 主要研究内容................................................................................................................ 2

2章 方案设计与概述......................................................................................... 3

2.1 整体方案介绍................................................................................................................ 3

2.2 硬件构架描述................................................................................................................ 4

2.3 系统功能构架描述....................................................................................................... 5

2.4 软件开发环境................................................................................................................ 6

3章 硬件系统的实现......................................................................................... 7

3.1 主要硬件介绍................................................................................................................ 7

3.1.1 MK60DN512ZVLQ10.............................................................................................. 7

3.1.2 MPU6050.................................................................................................................. 7

3.1.3 12864显示屏............................................................................................................ 7

3.1.4 HC05蓝牙模块......................................................................................................... 8

3.1.5 74LS04+BTN7971B芯片......................................................................................... 8

3.2 硬件设计思路................................................................................................................ 8

3.3 硬件电路设计................................................................................................................ 8

3.3.1降压电路设计........................................................................................................... 9

3.3.2滤波电路设计........................................................................................................... 9

3.3.3单片机最小系统电路设计..................................................................................... 10

3.3.4 OLED电路设计..................................................................................................... 10

3.3.5摄像头电路设计..................................................................................................... 12

3.3.6 UART电路设计..................................................................................................... 14

3.3.7 MPU6050电路设计............................................................................................... 16

3.3.8编码器电路设计..................................................................................................... 17

3.3.9驱动电路设计......................................................................................................... 17

4章 软件系统的实现....................................................................................... 18

4.1 操作系统概述.............................................................................................................. 18

4.2 系统实现流程.............................................................................................................. 18

4.3 系统接口概述.............................................................................................................. 19

4.4 进程实现........................................................................................................................ 19

4.5 直立算法实现.............................................................................................................. 20

4.5.1 机器人姿态描述.................................................................................................... 20

4.5.2 闭环控制描述........................................................................................................ 20

4.5.3 PID算法实现.................................................................................................... 24

4.6 信标导航实现.............................................................................................................. 24

4.7 各函数调用以及实现................................................................................................ 26

5章 系统测试....................................................................................................... 31

5.1 电路可行性测试.......................................................................................................... 31

5.2 12864OLED................................................................................................................... 32

5.3 OV7725........................................................................................................................... 32

5.4 UART............................................................................................................................... 33

5.5 MPU6050........................................................................................................................ 33

5.6信标追踪测试............................................................................................................... 34

在国内现有环境中,还没有出现针对室内的信标识别的机器人或智能车。例如在工厂仓库、大型超市、地下停车场、图书馆、医院等室内环境中,对储存物品和移动对象的实时跟踪以及其位置信息的精确确定的要求日益提高。为众人皆知的扫地机器人,是通过视觉导航来实现全方位打扫,偶尔会出现打扫不彻底的现象。而信标识别智能车是仅仅通过对于信标的一对一识别,识别准确,不会出现识别错误的问题。

33.png

如图所示为硬件系统构架,直流电源的选择则是7.2V电池,通过电池输入至电源通过3.35V的转压模块,分别给单片机、MPU6050、编码器、摄像头、驱动电路等硬件系统进行供电,其中单片机、MPU6050、摄像头是3.3V电压,74LS04、编码器和蓝牙模块是5V电压,驱动芯片、电机部分是直接接入电源电压。

MPU6050将数据通过DMP输出四元数进行计算后将四元数变化为姿态角数据发送到K60芯片,单片机接收到MPU6050的数据之后,针对角度数据进行PWM的输出和PID控制,两路PIM输出之后,同时针对编码器的速度监控,来控制车体整体的速度和平衡。

单片机输出PWM之后,PWM信号通过74LS04芯片进行取反,将原来输出的PWM信号和取反之后的PWM信号分别输入两个BTN7971B芯片,然后两个芯片再分别接入电机的“+”“-”,以达到控制电机驱动的效果。同时,通过MPU6050的角度输出,和PWM的输出建立关系,即可通过角度控制电机,进而控制小车平衡。

MPU6050将姿态数据发送给K60芯片之外,K60芯片还通过串口将姿态数据发送到串口输出,用来观察MPU6050实时变化的数据,并对其做算法上面的调整。

摄像头通过对图像进行二值化,并针对红外图像进行追踪和识别,将信标的位置通过12864OLED显示屏显示,并将得到的信标大小、位置信息反馈到K60单片机上,单片机针对信标位置,调整速度环和转向环,使得车体靠近信标,达到追踪识别信标的目的。

34.png

如图所示,是整个软件功能构架:

1.      Cortex-M4控制系统是将摄像头、MPU6050、编码器速度这三个系统的值做出整合,输出控制电机的PWM给驱动电路控制电机。

2.      摄像头检测系统,通过图像采集和二值化处理,得到信标大小和信标相对于显示屏上的位置,并将信标位置和远近实时反馈。

3.      MPU6050平衡控制系统是通过输出四元数的数据给控制系统,控制系统将四元数通过公式计算出俯仰角,并获取编码器速度,将数据进行融合,结合PID算法控制电机的PWM输出。

4.      编码器可以实时监测电机速度,并将电机速度输出给控制系统,控制系统结合平衡控制系统来控制小车平衡。

5.      驱动电路控制系统的作用是控制电机,此电路接受K60发出的PWM波形来控制电机的运动速度。同时在控制系统中对其进行限幅处理,以防PWM输出过高导致电机烧毁。

35.png

如图所示单片机最小系统包括复位按键、运行指示灯、Jlink下载接口和晶振电路。其中晶振电路是最为重要的,它的存在直接关系到控制芯片能否正常工作。在设计PCB电路时,晶振位置要尽可能靠近其连接的单片机的引脚。因为晶振的振动频率很快,单片机是靠晶振来计算系统内部时钟,如果位置较远,则可能导致时间计算不精准。

晶振两侧的负载电容是谐振电容。电容的选值和晶振的大小来确定的。换句话说,晶振的频率就是在它提供的负载电容下测得的,能最大限度的保证频率值的误差。也能保证温漂等误差。两个电容的取值都是相同的,或者说相差不大,如果相差太大,容易造成谐振的不平衡,容易造成停振或者干脆不起振。

Jlink下载电路是根据K60官方手册上的设计来确定的。

36.png

系统首先要进行硬件初始化,在硬件初始化中,首先初始化的则是LED,接下来则是初始化其它硬件。在初始化其它硬件的时候,如果OV7725初始化失败,则会报错,无法进入任务管理。当OV7725初始化成功之后,系统会进入无法退出的多任务管理函数,在此函数中,系统只能执行设定好的进程中的任务,进程执行的顺序按照设定好的优先级进行顺序执行。当启动任务开启时,系统会执行启动任务中设定的所有任务,本设计主要的控制部分是图像位置信息、MPU6050角度加速度信息和编码器速度信息。根据这三个信息控制芯片K60会经过计算得出控制电机的PWM,从而发送到驱动电路。驱动电路经过取反再将大小相同、一正一反的两个PWM输入到一路的两个驱动芯片中,达到驱动电机的效果。另外一路电机原理相同,两路电机互相作用,以达到控制平衡、加速、转向的效果。


  • 微信
  • 赶快加我聊天吧
  • 开发交流群
  • 海纳百川,大家来水
  • weinxin
微义工作室

发表评论 取消回复