目录
一、项目产生的背景分析 2
1.1项目想法 2
1.2用户将如何从产品中获益 2-3
二、方案设计 3
2.1小车整体系统 2-3
2.2小车部件介绍 3-5
三、小车组装 6
3.1小车配件购置 6
3.2小车部件组装 7-10
3.3小车程序代码的调试 11
3.3.1小车驱动安装 11
3.3.2小车编程环境(arduino 1.6.3) 11-20
四、实践总结 21
五、小车设计制作的里程碑 21
六、本项目初步预算工具清单列表 22
1.1项目想法
现在是一个智能化的时代,各种智能化设备正在逐步替代人为的操作。随着汽车工业的迅速发展,关于智能汽车的研究也越来越受人关注。设计的智能小车能够实现自动寻迹、避障功能、可控制行驶速度、电脑手机wifi连接控制行驶及其他的控制方式。本系统能实现对小车的运动状态进行实时控制。系统控制灵活、可靠、精度高,可满足对系统的各项要求。通过对本小车的研究,我们可以初步构建智能汽车的模型与理论基础。所谓的wifi智能小车就是可以通过WIFI网络控制的视频传输可移动甚至可以安装其他机械手各类传感器实现数据互动的小车,对于那些不安全的以及人无法进入的场所进行无线监测,wifi小车监控是一个很好的解决方案,能够很好的进行监控控制。现在无线wifi功能的设备随处可见,本设计利用现有的网络资源搭建一台wifi视频监控小车,即利用带有wifi的设备进行控制小车,实现无线监控。
1.2用户将如何从产品中获益
本设计产品的受益人群包括8—14岁的学生和广大电子爱好者,从中不仅锻炼了动手能力,学习Arduino编程的一些基础知识,激发他们爱好科技的兴趣
二、方案设计
2.1小车整体系统
该小车硬件部分由Arduino UNO单片机、电机驱动模块XB-L293D、keys红外接收模块、无线路由模块、视频监控模块、循迹模块、避障模块。系统结构如下图:
2.2小车部件介绍
小车主板:arduino是该小车的控制中心,需要保证小车的正常运行,在装配时必须胆大心细,保证组装无误。
/******************************* 电机的引脚定义及接线说明*************/
int L_IN_Positive=14; //ARDUINO(A0)------ L293驱动板(L+)
int L_IN_Negative=15; //ARDUINO(A1)------ L293驱动板(L-)
int R_IN_Positive=16; //ARDUINO(A2)------ L293驱动板(R+)
int R_IN_Negative=17; //ARDUINO(A3)------ L293驱动板(R-)
/** 端口初始化**********************************************/
void setup()
{
pinMode(L_IN_Positive, OUTPUT); //定义数字14 接口为输出接口
pinMode(L_IN_Negative, OUTPUT); //定义数字15 接口为输出接口
pinMode(R_IN_Positive, OUTPUT); //定义数字16 接口为输出接口
pinMode(R_IN_Negative, OUTPUT); //定义数字17 接口为输出接口
}
/*** 小车前进********************************************/
void front_run(int a) //前进
{
digitalWrite(L_IN_Positive, HIGH);
digitalWrite(L_IN_Negative, LOW);
analogWrite(L_IN_Positive,150);
analogWrite(L_IN_Negative, 0);
digitalWrite(R_IN_Positive, HIGH);
digitalWrite(R_IN_Negative, LOW);
analogWrite(R_IN_Positive,150);
analogWrite(R_IN_Negative,0);
delay(a * 100);
}
/**** 小车后退*******************************/
void back_run(int b) //后退
{
digitalWrite(L_IN_Positive, LOW);
digitalWrite(L_IN_Negative, HIGH);
analogWrite(L_IN_Positive,0);
analogWrite(L_IN_Negative, 150);
digitalWrite(R_IN_Positive, LOW);
digitalWrite(R_IN_Negative, HIGH);
analogWrite(R_IN_Positive,0);
analogWrite(R_IN_Negative,150);
delay(b * 100);
}