网站地图
范文同学网


自动化 模具 机械 电子 通信 动画 英语范文 工程管理 金融范文 旅游管理 工业工程 生物工程 给排水范文 西门子PLC 历史学 三菱PLC
单片机 财务 会计 法律 行政 物理 物流范文 电子商务 制药工程 包装工程 土木工程 材料科学 汉语言范文 欧姆龙PLC 电压表 松下PLC
计算机 化工 数电 工商 食品 德语 国贸范文 人力资源 教育管理 交通工程 市场营销 印刷工程 机电一体化 数控范文 变电站 文化产业

  • 网站首页|
  • 文档范文|
  • 人工降重|
  • 职称文章发表|
  • 合作期刊|
  • 范文下载|
  • 计算机范文|
  • 外文翻译|
  • 免费范文|
  • 原创范文|
  • 开题报告

联系方式

当前位置:范文同学网 -> 开题报告 -> 电气自动化开题
·电气自动化原创文章范文
·学前教育专业原创文章范文
·国际经济贸易原创文章范文
·药学专业原创文章范文
·英语专业原创文章范文
·公共事业管理原创文章范文
·金融专业原创文章范文
·农业推广技术原创文章范文
·电子商务专业原创文章范文
·法律专业原创文章范文
·工商管理原创文章范文
·汉语言文学原创文章范文
·人力资源管理原创文章范文
·动物医学专业原创文章范文
·心理学专业原创文章范文
·教育管理原创文章范文
·市场营销原创文章范文
·计算机专业原创文章范文
·物流管理专业原创文章范文
·小学教育专业原创文章范文
·行政管理专业原创文章范文
·土木工程管理原创文章范文
·财务会计专业原创文章范文
·信息管理信息系统原创范文
·室内设计专业原创文章范文
·眼视光技术原创文章范文
·材料工程管理原创范文
·工业设计专业原创文章范文
·航海技术专业原创文章范文
·模具设计与制造原创范文
·汽车检测与维修原创范文
·数控技术专业原创文章范文
·汽车技术服务原创文章范文
·光机电应用技术原创范文
·机电一体化原创文章范文
·印刷技术专业原创文章范文
·动漫设计与制作原创范文
·软件技术专业原创文章范文
·广告设计专业原创文章范文
·应用电子技术原创文章范文
·电子信息工程技术原创范文
·机械专业原创文章范文
·酒店管理专业原创文章范文
·旅游管理专业原创文章范文
·文化产业管理专业原创范文
·质量管理专业原创文章范文
·通信工程专业原创文章范文
·护理专业原创文章范文

本专业推荐:带PLC源程序的文档设计范文     原创文档范文点击进入 → 电气工程自动化单片机原创文档范文

基于单片机的智能小车的设计

Ktbg118 基于单片机的智能小车的设计摘要I引言1一、硬件系统设计2(一)机械组成2(二)工作原理3(三)主控制芯片单元3(四)姿态检测模块3(五)电机及其驱动单元51.直流减速电机52.电机驱动及其电路53.电源模块电路54.蓝牙通信模块电路6二、系统软件设计8(一)系统软件的总体流程设计8(二)电机驱动程序的设计111...
基于单片机的智能小车的设计 Ktbg118  基于单片机的智能小车的设计

摘要I
引言1
一、硬件系统设计2
(一)机械组成2
(二)工作原理3
(三)主控制芯片单元3
(四)姿态检测模块3
(五)电机及其驱动单元5
1.直流减速电机5
2.电机驱动及其电路5
3.电源模块电路5
4.蓝牙通信模块电路6
二、系统软件设计8
(一)系统软件的总体流程设计8
(二)电机驱动程序的设计11
1.电机驱动程序流程图11
2.电机驱动程序的设计12
(三)测距模块程序的设计13
1.测距模块流程图14
2.测距模块程序设计14
(四)显示模块程序的设计15
1.显示模块流程图15
2.显示程序设计16
三、系统调试19
结束语21
参考文献22
致谢23


引言
两轮自平衡小车的研究首先在欧美、日本等发达国家兴起,取得了不少突破。与国外的研究两轮自平衡小车相比较,我国无论在起步时间和研究产品性能方面都远远落后发达国家,但最近些年,也取得了不少成果。
对于复杂多变地形环境有着比传统轮式小车更强的适应性,其超强的运行性能,能够在复杂多变的环境里面的正常的工作,和传统的轮式小车相对比,两轮自平衡小车有着以下的几个优点:
1.电机驱动功率小,使电池能够更持久供电,为环保节能型轻车带来了一种全新的理念。
2.重心的高度对小车运动和硬件设计,并没有多大的影响。但是传统轮式移动小车,虽然能够很平稳运行,但其受重心的影响大。为了使车身的重心低,只能降低小车的高度,从而导致水平截面积和质量的增大,造成其适应能力低,因此某些功能受到了限制。
鉴于这些特点,两轮自平衡小车有着相当广泛的应用前景。不仅在实际应用中有巨大的价值,而且在理论研究中也具有非凡的意义。随着社会发展以及人们日常需求的转变,自平衡小车在人们的生活中的实用性更强。


一、硬件系统设计
本设计的智能小车系统主要由硬件和软件两大块组成。本节将着重介绍硬件部分的设计,包括机械部分和控制系统。将主要从以下模块介绍:主控制芯片、无线蓝牙通信、电源、电机及其驱动、姿态检测模块等。双轮自平衡小车系统框图如图1-1所示。
/
图1-1 双轮自平衡小车系统框图
(一)机械组成
对于实现小车的自平衡,机械结构的合理性和对称性是重要的一环。双轮自平衡车的机械结构设计主要包括支架、轮毂、连接杆的结构设计以及相应的固定装配方法。双轮自平衡多伦多的整体结构如图1-2所示。从倒立摆的角度可以看出,两轮自平衡小车是一个两轮驱动的倒立摆系统演化而来,可以看作是轮式倒立摆系统。
/
图1-2 小车整体结构图
(二)工作原理
本设计的双轮自平衡运动小车主体结构由车轮和车身组成。有着两个轮子处于同轴的两个平行面上,两轮的结构形式,使其具有不稳定的特性,若不对其不施加任何外界作用力下,放置于水平面上直立的两轮自平衡小车将会向前或向后迅速倾倒,无法保持直立的状态。
车轮通过车轴与电机相连,平衡小车的直接动力由左右两个电机提供,电机旋转产生扭矩,驱动轮的旋转。如图1-3所示,倾斜车体时,电机会受到控制,产生相应的扭矩,调整电机的前后旋转,使两轮拖车向该方向倾斜,为了确保平衡的稳定动作,摆动身体保持垂直平衡。这是小车平衡的原理。
/
 图1-3 小车自主平衡原理图
(三)主控制芯片单元
本设计采用STM32F103C8T6微处理器为主控制器,通过AD转换接口从姿势传感器模块接收数据并收集数据,处理及计算收集的数据,经由PWM将控制信号输出到DC电机驱动模块。STM32作为核心处理器满足了双轮自平衡小车的设计和控制要求。STM32主控制器的原理图如图1-4所示。
(四)姿态检测模块
双轮自平衡小车控制的过程中检测环节是必不可少的,是否能够获取姿态信息,进而根据所获取的姿态信息快速的调整自身的平衡状态,是自平衡小车保持自身平衡的前提条件,小车系统的控制是否良好,检测模块能否取得高精度姿势倾斜是很大的决定因素,正确获取姿势信息是实现多伦多自身平衡的关键。为了满足实现托里的自我平衡的设计要求,需要使用具备良好性能、低误差、高精度及高速更新频率特性的姿势检测传感器,测量倾斜角。一般来说,惯性测量要素通常用于收集姿势信息。惯性测量要素不同的话,原理、功能、构造也不同。该设计使用MPU 6050传感器,SDA端口和SCL端口,与能够迅速准确发送数据信息的主控制芯片STM 32进行通信。由MPU 6050检测出的数据信息由内置的16位AD转换器转换后转换。位数字量将通过I2C总线接口发送到微处理器STM 32。MPU6050传感器的电路如图1-5所示。

/
图1-4 主控芯片原理图
/
图1-5 MPU6050 传感器电路
(五)电机及其驱动单元
1.直流减速电机
直流减速电机是在普通直流电机的基础上,加上配套齿轮减速箱,其作用是提供较低的转速和较大的力矩,其特性恰好满足两轮自平衡小车的电机控制要求。本课题中的双轮自平衡小车的车轮旋转动力装置选用直流减速电机,如图1-6所示。
/
图1-6 直流减速电机
2.电机驱动及其电路
在这个设计中,电机是由大电流MOSFET-H桥接结构的TB6612FNG装置驱动的。电路的输出通道是双通道,可以同时运行两个电机。具有高度的综合性和强大的输出容量。在能源消费方面有很好的优点。因此,被集成小型化的电机控制系统广泛使用。TB6612FNG是基于MOSFET的H网桥集成电路。电机驱动模块电路如图1-7所示。
3.电源模块电路
电力是整个系统运行的能量来源,每个模块提供不同的工作电压。开关式一体型电压调节器芯片LM 2596-5V和AMS 1117构成的电源电路。由L96选择的系统,固定输出5V可以将电压转化成5V给电流传感使用,用AMS1117电路降压到3.3V的电压给主控制芯片STM32、蓝牙模块及其它外围电路进行供电。电源转换电路如图1-8所示。

/图1-7 电机驱动模块电路

/
图1-8 电源转换电路
4.蓝牙通信模块电路
本设计串口透传模块采用HC-06型号的蓝牙,采用CSR主流蓝牙芯片,引出接口有VCC、GND、TXD 和 RXD等,供电电压和工作电路分别为5V和10mA,其中主控芯片STM32通过RXD、TXD 信号串口连接。利用HC-06的串口模块与Android手机配对成功后,就可以通过蓝牙实现STM32微处理器与手机端数据收发功能。模块内部具有蓝牙协议,保证了无线数据传输的准确性和可靠性。蓝牙模块电路如图1-9所示。
/
图1-9 蓝牙模块电路

/

图1-10 电气原理图
二、系统软件设计
我们在前一节详细分析了系统硬件设计,如果一个智能小车能正常运转,还需要软件系统的提供支持。本章将对双轮自平衡小车的软件设计进行详细的介绍,编写了系统初始化程序,并对各部分的程序设计进行调试检验是否达到设计要求。 
(一)系统软件的总体流程设计
本系统的程序主要由初始化程序、中断响应程序、车速检测程序等部分组成。系统启动后,系统初始化,等待定时中断(5ms时间)到来而执行中断程序,经过时间后,读取由MPU 6050传感器收集的角度和角速度的数据,使用卡尔曼过滤器算法然后控制姿势传感器。MPU 6050收集的姿势信息被融合以获得估计的最佳值。同样,编码器的脉冲数是通过中断获取的,以控制马达的速度和方向。由增量PID控制算法改变多伦多的角度、角速度和旋转速度,然后调整PID参数来变更PWM占空比。这样变更电机的速度,控制电机的速度和方向。主程序如下所示:

主程序:
#include "main.h"
#include "motor.h"
#include "exti.h"
#include "beep.h"
#include "key.h"
#include "led.h"
#include "usart.h"
#include "hcsr04.h"
#include "servo.h"
#include "usart3.h"
*/
extern u8 Tracing_Right;
extern u8 Tracing_Left;
extern u8 Flag;
void System_Init(void)
{
Stm32_Clock_Init(9);  //初始化系统时钟
delay_init(72);
uart_init(72,9600);//初始化延时
HCSR_04_TIM3_Init(0xFFFF,36-1);
MOTOR1_PWM_Init(1000-1,360-1);
MOTOR2_PWM_Init(1000-1,360-1);
uart3_init(72,9600);
Servo_Init();
EXTI_Init();
BEEP_Init();
KEY_Init();
LED_Init();
BEEP=0;
//关中断
EXTI->IMR&=~(1<<0);     
EXTI->IMR&=~(1<<4); 
}
int main(void)
{
u8 key=0,SROL,flag1=0,flag2=0,flag3=0;
System_Init();
Motor_Stop();
while(1)
{
key=KEY_Scan(0);
if(key==KEY_ERROR)
{
Motor_Stop();
BEEP_Mode2();
delay_ms(100);
}
//
else if(key==KEY0_PRES)
{
BEEP_Mode1();
EXTI->IMR|=1<<0;
EXTI->IMR|=1<<4;
//关蓝牙中断
USART3->CR1&=~(1<<5);  
delay_ms(2000);
flag1++;
while(1)
{
if(Tracing_Right==1)
{
Tracing_Left=0;
}
else if(Tracing_Left==1)
{
Tracing_Right=0;
}
else
{
Motor_Forward(LOW_SPEED);
}
REDLED=!REDLED;
}
    }
//
else if(key==KEY1_PRES)
{
BEEP_Mode1();
//关中断
EXTI->IMR&=~(1<<0);     
EXTI->IMR&=~(1<<4); 
//关蓝牙中断
USART3->CR1&=~(1<<5);  
Motor_Forward(LOW_SPEED);
while(1)
{
Servo_Run();
Motor_Forward(LOW_SPEED);
}
}

//蓝牙
else if(key==KEY2_PRES)
{
BEEP_Mode1();
//关中断
EXTI->IMR&=~(1<<0);     
EXTI->IMR&=~(1<<4); 
USART3->CR1|=1<<5;    //接收缓冲区非空中断使能
}
    }
}
(二)电机驱动程序的设计
1.电机驱动程序流程图
/
图2-1 电机驱动程序流程图
电机驱动程序流程图如上图2-1,首先确认车的状态。如果黑线笔直,则调用直行子例程。也就是说,左右电机向前旋转。如果车辆偏离黑线左侧,请按照右边的子例程。左边的电机向前旋转,右边的电机相反。如果手推车向黑线右侧偏移,则将子程序向左调用。也就是说,左边的电机相反,右边的电机向前旋转。手推车完全偏离黑线时,后面的子例程,即双方的电机相反。如果多伦多到达终点,则调用停止子例程。也就是说,两个电机都不旋转。
2.电机驱动程序的设计
void goahead()//小车直走
{
IN1 = 1;
IN2 = 0;
IN3= 1;
IN4 = 0;
}
void goback()//小车后退
{
IN1 = 0;
IN2 = 1;
IN3 = 0;
IN4 = 1;
}
void turnright()//小车向右转
{
IN1 = 1;
IN2 = 0;
IN3 = 0;
IN4 = 1;
}
void turnleft()//小车向左转
{
IN1 = 0;
IN2 = 1;
IN3 = 1;
IN4 = 0;
}
void zw_turnright() //用于转弯时的左转
{
IN1 = 1;
IN2 = 0;
IN3 = 0;
IN4 = 0;
}
void zw_turnleft() //用于转弯时的右转
{
IN1 = 0;
IN2 = 0;
IN3 = 1;
IN4 = 0;
}
void stop()//小车停止
{
IN1 = 0;
IN2 = 0;
IN3 = 0;
IN4 = 0;
}
void PWM(void)//小车调速
{  
    PWM_ENA = 1;
    PWM_ENB = 1;
    delayXms(H);
    PWM_ENA = 0;
    PWM_ENB = 1;
    delayXms(L);
PWM_ENA = 0;
    PWM_ENB = 0;
    delayXms(N);
}
(三)测距模块程序的设计
1.测距模块流程图
/
图2-2 测距模块流程图

测距模块流程图如图2-2所示,首先MCU向超声波测距模块的触发端发送高电平,然后向触发端发送低电平。也就是说,超声波测距模块激活,超声波测距模块自动发送8次40KHZ的方形波,等待信号返回,信号返回后,从IO端口超声波测距模块的回声端输出高电平。距离不满50cm的情况下,车正面的2个LED灯闪烁,距离不满7cm的情况下,车自动停止。
2.测距模块程序设计
void csb()
{
TH0=0; 
TL0=0;
TX=1;  //Trig发送端发出一个高电平 
delay_20us();  //延时20us

TX=0;  //Trig发送端发出一个低电平
while(RX==0); //等待接收端为高电平
TR0=1;//启动定时器
while(RX);//等待接收端为低电平
TR0=0;//关闭定时器
time=TH0*256+TL0;   
juli=time*0.017;   // (1/(12*1000000))*340*12*100/2得到的是距离单位为cm ;
if(juli<=7)
{
stop();
LED1 = !LED1;
LED2 = !LED2;
delayXms(100);
flag3=1;
}
else if((juli>5)&&(juli<=50))
{
LED1 = !LED1;
LED2 = !LED2;
delayXms(100);
flag3=0;
}
else if(juli>50)
{ 
LED1=1;
LED2=1;
flag3=0;
}
}
(四)显示模块程序的设计
1.显示模块流程图
/
图2-3 显示模块流程图

图2-3为显示模块流程图,先是初始化LCD1602然后在液晶的第一行显示"Journey:cm"液晶第二列显示"Speed:mm/s "然后在主程序不断的调用显示程序刷新cm或者mm前面的数字。
2.显示程序设计
bit lcd_busy()   //判忙函数
{
bit result;
RS=0;
RW=1;
E=1;
_nop_();
_nop_();
_nop_();
_nop_();
result = (bit)(P0&0x80);
E=0;
return result;
}
void lcd_write_cmd(uchar cmd)   //液晶写指令
{
while(lcd_busy());
RS=0;
RW=0;
E=0;
_nop_();
_nop_();
P0=cmd;
_nop_();
_nop_();
_nop_();
_nop_();
E=1;
_nop_();
_nop_();
_nop_();
_nop_();
E=0;
}
void lcd_write_dat(uchar dat)//液晶写数据指令
{
while(lcd_busy());
RS=1;
RW=0;
E=0;
P0=dat;
_nop_();
_nop_();
_nop_();
_nop_();
E=1;
_nop_();
_nop_();
_nop_();
_nop_();
E=0;
}
void LCD_Init()///液晶初始化指令
{
delayXms(12);
lcd_write_cmd(0x38);  
delayXms(4);
lcd_write_cmd(0x0c);  
delayXms(4);
lcd_write_cmd(0x06);  
delayXms(4);
lcd_write_cmd(0x01);   
delayXms(4);
lcd_write_cmd(0x80);
   
for(i=0;i<16;i++) //液晶第一列显示"Journey:mm"
lcd_write_dat(display1[i]);
lcd_write_cmd(0x80+0x40);//液晶第二列显示"Speed:mm/s "
for(i=0;i<16;i++)
lcd_write_dat(display2[i]);
三、系统调试
系统调试是设计的最后一步,也是关键的一步。在调试时,我们要对整个设计流程进行回顾,需要我们保持清醒和耐心。同时也能发现仿真结果故障。程序的调试是一个模块一个模块地进行的,从最简单的程序开始,先画好单片机最小系统程序看单片机最小系统仿真电路是否连接正确了,是否后慢慢的调试和扩充。
在本设计过程中,我遇到以下几个问题:1.在检查电路时,我发现电路板中有个二极管焊接反了,如果通上电源,则会造成电路板烧坏的危险。在“Utilities选项卡”下把编程所使用的仿真器改为相应的类型即可。2. 碰到了调试器不能连接到STM32的问题。通过查阅资料发现每次退出调试状态时,先停止所有模块的运行。最后效果图如3-1,仿真图如3-2所示:


/
图3-1 智能小车效果图
/
图3-2 智能小车仿真图

结束语
本文对双轮自平衡小车进行了整体的设计分析,在汇总国内外两轮自平衡小车的研究现状的基础上,从姿态检测模块、处理器模块、电机驱动模块对两轮自平衡小车进行设计与研究。选用姿态传感器MPU6050完成姿态检测与采集,主控制器采用的是STM32系列微处理器,选用直流无刷电机作为动力,设计电机驱动,组装两轮自平衡小车模型。设计了一种基于安卓的蓝牙遥控双轮自平衡小车的姿态信息检测方法。采用增量式PID控制策略,设计并构建了双轮自平衡小车平台,实现了小车的自平衡。^范文设计实现了相应的功能,然而依然也存在一定的缺陷与不足路设计。还需要在今后继续学习,掌握更多关于单片机的知识。
参考文献
[1]石天培,朱明杰.基于STM32单片机的多功能WiFi视频智能灭火小车软件设计[J].《信息系统工程》,2019(5):29-31.
[2]袁瑞豪,王一豪,孙振涵.基于K66单片机的恩智浦智能小车制作[J].《无线互联科技》,2019(11):122-124.
[3]郝朝阳,宋刘畅,张妍,etal.基于51单片机的智能环湖种树小车[J].《湖北农机化》,2019(15) :47-50.
[4]郭芸君.基于Arduino的蓝牙无线控制小车的设计[J].《信息与电脑》(理论版),2019(9) :5-8.
[5]刘雨航,刘静.自动循迹车控制系统设计[J].《科技创新导报》,2018(34) :11-12.
[6]李文礼,王晶晶,陈悦桐,etal.智能小汽车设计在实践驱动式教学方法中的运用[J].《科教导刊》(电子版),2018(12):33-34.
[7]安鹤男,骆春辉,阮晓义.基于STM32的智能平衡车自动刹车设计[J].《微型机与应用》,2017(21) :43-44.
[8]陈国文.基于STM32单片机的双轮小车近静态动平衡控制统[D].闽南师范大学^文档^范文设计.2014.
[9]赵磊.基于STM32的两轮自平衡小车研究[J].《数字技术与应用》,2017(1):35-36.
[10]周祎明.基于STM32的两轮自平衡车设计[J].《电子技术》,2016,45(11) :43-44.
[11]徐锦.基于STM32单片机的双轮自平衡小车系统的设计[J].《山东工业技术》,2016(21):282-282.
[12]熊跃军,史明政,林金勇,等.一种两轮自平衡小车的设计与实现[J].《长沙大学学报》,2016,30(2):39-42.
[13]陈章宝,鲍伟超,孟帅.两轮自平衡小车的研究与设计[J].《蚌埠学院学报,2016,5(5):1-2.
[14]于连国,李伟,王妍玮.基于单片机的智能小车设计[J].《林业机械与木工设备》,2011,39(004):39-40.
[15]邓喜兵,许建明,陈炯明.基于单片机的智能小车设计[J].《电子世界》,2016,000(009):47-47.
[16]冯华林.基于单片机的智能小车设计[J].《农家科技旬刊》,2016,000(007):386.
[17]Jey, Tiga. Design of Fuzzy Logic Controller for Two-wheeled Self-balancing Robot[C].6th International Forum on Strategic Technology, IFOST 2011, Newyork, US, 2011:1266-1270.2008

致谢
我的^范文终于在百忙的工作中完成,它浓缩了我大学三年以来的学习和学术成果,为未来的发展提供了夯实的基础。这篇^范文历时几个多月,经过了多次的修改和完善,最终定稿。在这里我要对我的指导老师表示由衷的感谢,正是在他的辛苦的指导下,我才能够完成。在写作^范文的这段日子里,我的导师,他从选题、格式、到开题报告和从写作的题材,都十分用心地指出每次^范文中的问题所在,在此我致以衷心的感谢。
在此我还要感谢我的父母和家人,他们始终是我最坚强的后盾,在任何时候都给予我最大的支持和关爱,感谢他们一如既往的宽容、理解和支持。
最后,向百忙之中审阅此文的专家教授致以崇高的敬意和诚挚的感谢!文章中存在的不妥之处请各位评审专家和老师批评指正,谢谢!






基于单片机的智能小车的设计......
上一篇:大悟余河3510KV降压变电所电气设.. 下一篇:阳光海岸小区10KV0.40.23KV降压变..
点击查看关于 基于 单片机 智能 小车 设计 的相关范文题目 【返回顶部】
精彩推荐
电气工程自动化原创范文  电子商务原创文章范文
人力资源专业原创文章范文 土木工程原创文章范文
工商管理专业原创范文    药学专业原创范文
汉语言文学专业原创范文  会计专业原创文章范文
计算机技术原创文章范文  金融学原创文章范文
法学专业原创文章范文   市场营销专业原创范文
信息管理专业原创文章范文 学前教育专业原创范文
公共事业管理专业原创范文 英语专业原创范文
教育管理专业原创范文   行政管理专业原创范文

关于我们 | 联系方式 | 范文说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士文章范文


范文同学网提供文档范文,原创文章范文,网站永久域名www.lunwentongxue.com ,lunwentongxue-范文同学网拼音首字母组合

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2024 范文同学网 版权所有