第一篇:基于51单片机的智能小车控制源代码(毕业设计)
/****************************************************// //***************************************************// // 智能小车控制器基于51单片机实现前进后退转弯与智能采样控制功能 #include
sbit red1=P1^3;sbit red2=P1^6;
void InitUART(void){
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
ES
= 1;
TR1 = 1;EA
= 1;ENA = 1;ENB = 1;}
void delay(void)
//直线延时延时函数 {
unsigned char a,b;
for(b=255;b>0;b--)
for(a=38;a>0;a--);}
void delay1(void)
//转角延时函数 {
unsigned char w,y,c;
for(c=1;c>0;c--)
for(y=97;y>0;y--)
for(w=3;w>0;w--);}
void delay3(void)
//避障延时函数 {
unsigned char a,b,c;
for(c=98;c>0;c--)
for(b=100;b>0;b--)
for(a=40;a>0;a--);}
void delay2(void)
//手动控制延时函数 {
unsigned char a,b,c;
for(c=98;c>0;c--)
for(b=15;b>0;b--)
for(a=17;a>0;a--)
{
if(m)
{
break;
}
} } void qianjin()//前进 { unsigned char f;A1=1;A2=0;B1=1;B2=0;
for(f=0;f<155;f++){ A1=0;A2=0;B1=0;B2=1;} //直线校准语句
A1=1;A2=0;B1=1;B2=0;}
void zuozhuan()//左转 { A1=1;A2=0;B1=0;B2=1;}
void youzhuan()//右转 { A1=0;A2=1;B1=1;B2=0;}
void houtui(){ A1=0;A2=1;B1=0;B2=1;} void tingzhi(){ A1=0;A2=0;B1=0;B2=0;}
void main(){ unsigned char temp;InitUART();while(1){
if(flag)
{
flag=0;
for(temp=2;temp<8;temp++)//字符型转成整型函数
{
tata[temp]=tata[temp]%16;
}
//执行转角指令
Angle=10*(tata[2]*100+tata[3]*10+tata[4]);
m=0;
if(Angle<10)
//地面小角度摩擦校正函数
{
Angle++;
}
if(tata[1]=='L')
{
for(q=0;q { zuozhuan(); delay1(); if(m) { break; } } } else if(tata[1]=='R'){ for(q=0;q { youzhuan(); delay1(); if(m) { break; } } } tingzhi();delay();for(temp=2;temp<8;temp++)//字符型转成整型函数 { tata[temp]=tata[temp]%16;} //执行前进指令 length=100*(tata[5]*100+tata[6]*10+tata[7]);// m=0;if(!m){ for(q=0;q { qianjin(); delay(); delay(); if(m) { break; } if(!red1) { delay1(); if(!red1) { youzhuan(); delay3(); while(!red1); } } if(!red2) { delay1(); if(!red2) { zuozhuan(); delay3(); while(!red2); } } if((!red1)||(!red2)) { houtui(); delay3(); while((!red1)||(!red2)); } } } } if(flag3) { m=0; flag3=0; if(tata[1] =='W'){qianjin();} else if(tata[1]=='A'){A1=0;A2=0;B1=0;B2=1;} else if(tata[1]=='S'){houtui();} else if(tata[1]=='D'){A1=0;A2=1;B1=0;B2=0;} else if(tata[1]=='T'){tingzhi();} delay2(); } tingzhi();} } void UARTInterrupt(void)interrupt 4 { if(RI) { m=1; RI = 0; if(SBUF=='$') { flag2=1; } if(flag2) { } } } tata[n]=SBUF;n++; if(n==9&&tata[8]=='*'){ n=0;flag=1;flag2=0;} if(n==3&&tata[2]=='#'){ n=0;flag3=1;flag2=0;} 安徽建筑工业学院 毕业设计(论文)任务书 课题名称 系别 专业 姓名 基于单片机智能小车的设计 电子与信息工程学院 城建电子学号 2011 年 2 月 20 日至 2010 年 6 月 22 日共 17 周指导教师签字 系主任签字 201日 年 1 月 一、毕业设计(论文)的内容 毕业设计(论文)是高等学校培养学生的最后一个环节。是锻炼和培养学生综合运用本专业学科的基础理论知识、专业知识和基本技能,提高综合分析问题和解决问题的能力,实现研发和技术人员的初步训练,使学生具有从事科学研究初步能力的重要环节,并且它是学生承担技术性工作前的一次理论联系实际的实践。学生通过设计(论文)综合运用所学的基础理论和专业知识,理论联系实际,提高分析问题和解决本专业从事研发和工程应用问题的能力,为以后走上工作岗位打下一定的基础。 随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。设计的智能电动小车应该能够实时显示时间、速度、里程,具有自动寻迹、寻光、避障功能,可程控行驶速度、准确定位停车。本系统以设计题目的要求为目的,采用80C51单片机为控制核心,利用光电等传感器检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能。整个系统的电路结构简单,可靠性能高。 二、毕业设计(论文)的要求与数据 本课题的任务主要是设计采用以80C51 为控制核心,利用光电等传感器检测道路上的障碍,控制电动小车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能。 本课题由6位学生完成。现就6位学生的具体分工叙述如下: 1.同学负责主控制电路的方案设计和实现; 2.同学负责电机驱动电路及方案设计和实现; 3.同学负责传感器电路的设计和相关程序设计和调试; 4.同学负责小车控制策略程序设计和调试。 三、毕业设计(论文)应完成的工作 1. 查阅有关资料(51单片机、传感器技术、电机驱动与控制等); 2. 熟练掌握51单片机开发系统; 3. 根据课题要求,分别进行硬件和软件的设计,使用Protel99SE设计出硬件原理图和PCB板图,并制作出印刷电路板,然后进行系统的安装与调试完成课题的设计功能; 4. 完成12000字左右的论文; 5. 翻译3000~5000字的英文资料。 四、毕业设计(论文)进程安排及实习安排 五、应收集的资料、主要参考文献及实习地点 [1] 何立民,单片机应用系统设计,北京:航天航空大学出版社,2~5,46~50 [2] 李广弟,单片机基础,北京:北京航空航天大学出版社,2001,56~64 [3] 何希才,新型实用电子电路400例,电子工业出版社,2000年,60~65 [4] 赵负图,传感器集成电路手册,第一版,化学工业出版社,2004,590~591 [5] 陈伯时,电力拖动自动控制系统,第二版,北京:机械工业出版社,2000年6月,127~ 130 [6] 张毅刚,彭喜元,新编 MCS-51 单片机应用设计,第一版,哈尔滨工业大学出版社,2003,25~27,411~417 实习地点:校外 单片机课程设计 题 目: 专 业: 班 级: 组长 成员 成员 成员 成员 智能小车设计 计算机科学与技术 14级2班 姓名 学号 年 12 月 23 日 2016 打开命令行终端的快捷方式: ctr+al+t:默认的路径在家目录 ctr+shift+n:默认的路径为上一次终端所处在的路径.linux@ubuntu:~$ linux:当前登录用户名.ubuntu:主机名 :和$之间:当前用户所处在的工作路径.windows下的工作路径如C:IntelLogs linux下的工作路径是:/.../..../ ~:代表的是/home/linux这个路径.(家目录).ls(list):列出当前路径下的文件名和目录名.ls-a(all):列出当前路径下的所有文件和目录名,包括了隐藏文件..:当前路径..:上一级路径 ls-l:以横排的方式列出文件的详细信息 total 269464(当前这个路径总计所占空间的大小,单位是K)drwxr-xr-x 3 linux linux 4096 Dec 4 19:16 Desktop chmod u-或者+r/w/x 文件名 chmod g-或者+r/w/x 文件名 chmod o-或者+r/w/x 文件名(3).cd /home/linux 进入到1目录里并创建一个2普通文件,再退回上一级,并且删除1目录 6.拷贝文件.cp(copy)路径1/源文件 路径2:把路径1下的文件拷贝到路径2下 cp 路径1/源文件 路径2/目标文件:把路径1下的文件拷贝到路径2下并且重命名位目标文件.cp(copy)-r 路径1/目录名 路径2:把路径1下的目录拷贝到路径2下 7.剪切文件 mv(move)路径1/源文件 路径2:把路径1下的文件剪切到路径2下 mv 路径1/源文件 路径2/目标文件:把路径1下的文件剪切到路径2下并且重命名位目标文件 mv 源文件 目标文件:重命名文件 mv 路径1/目录名 路径2:把路径1下的目录剪切到路径2下 8.clear:清屏 9.exit 退出终端 vi编辑器.vi 文件名:如果文件不存在则创建并打开 如果文件已存在,则直接打开 VI编辑器的三种模式 1.命令行模式:刚进入编辑器的时候,默认处在这种模式下 2.编辑模式(插入模式):输入a/i/o即可进入,按下esc键退回命令行模式,再输入冒号 ,即可进入底行模式.3.底行模式下:w(保存),q(退出),wq(保存并退出),q!(强制退出不保存)按下退格键,删除冒号,即可进入命令行模式.终极保存法;w!sudo tee %d回车再回车即可 命令行模式下的快捷操作: 1.整行复制:光标移动想要复制的那一行,输入yy即可,再把光标移动到你想要粘贴位置的上一行,输入p即可 2.多行复制:光标移动想要复制的那几行的 6.多行剪切:光标移动想要剪切的那几行的 再编译一个c应用程序,在程序中来调用库里实现的函数 gcc 应用程序名-l库名(注意是去掉lib和.so的库名) 文件IO linux系统下一切设备皆文件 操作文件: open():打开一个文件 read()://从文件里边读出数据 write()//向文件里写入数据 close()//关闭文件 man手册: man 2 函数名 open: 头文件 #include 1.int open(const char *pathname, int flags);//仅限于打开一个已存在文件 参数1:文件的路径 参数2:打开方式的标志 O_RDONLY,//只读方式打开 O_WRONLY,//只写方式打开 O_RDWR.//可读可写方式打开 返回值: 打开成功:返回一个正数(文件描述符)打开失败:-1 2.int open(const char *pathname, int flags, mode_t mode);//可以打开一个不存在的文件 参数1:文件的路径 参数2:打开方式的标志 O_RDONLY,//只读方式打开 O_WRONLY,//只写方式打开 O_RDWR.//可读可写方式打开 如果文件不存在必须|O_CRAET,创建该文件 参数3:权限 数 比如:0666 返回值: 打开成功:返回一个正数(文件描述符)打开失败:-1 write: 头文件: #include typedef int ssize_t ssize_t write(int fd, const void *buf, size_t count);参数1:就是open函数的返回值,文件描述符 参数2:你想要写入的数据 参数3:你想要写入的数据的字节大小 返回值: 写入成功:返回的是写入的字节大小 写入失败:-1 strlen:实际长度 sizeof:数组的大小 arduino viod setup(){ 端口的配置;} void loop(){ 任务的执行; } arduino之呼吸灯实验: int led=13;void setup(){ pinMode(led,OUTPUT);} void loop(){ digitalWrite(led,HIGH);delay(1000);digitalWrite(led,LOW);delay(1000);} 渐变灯: 暗->亮->暗 PWM波:可调脉冲宽度波.3,5,6,9,10,11这几个端口可以输出pwm波 analogWrite(pin, value)//输出pwm波 pin:管脚号:3,5,6,9,10,11中的任意一个 value:0~255中的任何一个数: 0:占空比为0% 255:占空比位100% 远程视频监控步骤: 1.将jpegsrc.v8b.tar.gz(图片库)和mjpg-streamer-code-182.tar.gz(视频查看软件)拷贝到ubuntu的家目录 2.解压缩 tar xvf jpegsrc.v8b.tar.gz 3.cd jpeg-8b 4../configure //创建Makefile文件 5.make 6.sudo make install //安装 程序运行时,默认寻找的头文件的路径在/usr/include,库文件的路径/lib cd /usr/local/include sudo cp * /usr/include cd /usr/local/lib sudo cp libjpeg* /lib 7.切换到家目录:cd 移植查看视频的软件: tar xvf mjpg-streamer-code-182.tar.gz cd mjpg-streamer-code-182 cd mjpg-streamer make clean //清除已经编译过的程序 make 运行查看视频的软件:sudo./start.sh 打开火狐浏览器 在地址栏输入127.0.0.1:8080 若发现视频绿屏 先强制结束程序运行:ctl+c.解决方法: 修改start.sh 将 要对uboot环境信息进行设置 首先把拨码开关拨到0000位置.选择uboot的启动方式.uboot从外存启动.1.找到自己的COM端口号;打开putty 2.选中Serial,把波特率改为115200,端口号改为自己的端口号,Flow contrlo选择none 3.开启电源,会出现一个倒计时,在倒计时完成之前,随便敲一个键盘.4.输入命令print可以显示uboot的打印信息 确保: ipaddr=192.168.1.100//代表开发板的ip地址 serverip=192.168.1.200//代表ubuntu的IP地址 bootargs=root=nfs nfsroot=192.168.1.200:/source/rootfs ip=192.168.1.100 init=/linuxrc console=ttySAC0,115200// 打开虚拟机: 1.进入到/tftpboot目录下.把zImage拖到虚拟机,前加cp ,后加./ 使用ls查看一下是否出现zImage 2.cd /source 把rootfs这个压缩包拖到虚拟机,前加cp ,后加./ 使用ls查看一下是否出现rootfs.tgz 3.解压命令: sudo tar-xvf rootfs.tgz 要让你输入密码;输入1回车即可,密码是不可见的.再用ls查看是否多了一个蓝色的文件rootfs.4.修改ubuntu的ip地址.找到wiffi图标,点击选中edit connection->IPV4 seting->manual->add ip netmask gateway 192.168.1.200 255.255.255.0 192.168.1.1 点击保存.关闭窗口.再打开图标选中wired connection1 再看ip是否改回来了.5.网线连接开发板和电脑 在putty界面输入:ping 192.168.1.200 如果host 192.168.1.200 is alive,这是挂载系统很好的征兆.not alive的话需要关闭电脑的无线网 输入boot或者重启开发板不要再按下任何键了,如果出现 ####很快就要挂载成功了 如果出现TTTTTTTTTTTTTT 在ubuntu输入命令:sudo service tftpd-hpa restart 其中sudo的作用是暂时将用户的权限提升到超级用户(root)的权限.如果出现Please press Enter to activate this console.代表系统挂载成功.通过gcc编译生成的程序不能在开发板上运行.通过命令file a.out看到文件的格式为intel 30386,说明这是X86格式的程序,只能PC上运行 而不能在arm板上运行,解决措施,使用交叉编译器来编译.交叉编译器的配置: 将arm-cortex_a8-linux-gnueabi.tar.bz2拖到ubuntu的家目录 解压命令tar-xvf arm-cor+tab键自动补齐,用ls查看是否生成arm-cortex_a8个目录.配置交叉编译器: sudo vi /etc/bash.bashrc文件 在最后一行添加export PATH=$PATH:/home/linux/arm-cortex_a8/bin 保存并退出文件 保存完成后重启文件:source /etc/bash.bashrc 重启成功后输入arm-cor+tab键会自动补齐成arm-cortex_a8-linux-gnueabi-代表交叉编译器配置成功.利用交叉编译器编译程序: arm-cortex_a8-linux-gnueabi-gcc 文件名,并将生成的可执行程序拷贝到/source/rootfs下 然后再到putty上执行./a.out就可以在开发板上运行程序了. 相关代码 Che.c #include “cgic.h” #include void zigbee_serial_init(int fd){ struct termios options; tcgetattr(fd, &options);options.c_cflag |=(CLOCAL | CREAD);options.c_cflag &= ~CSIZE;options.c_cflag &= ~CRTSCTS;options.c_cflag |= CS8;options.c_cflag &= ~CSTOPB;options.c_iflag |= IGNPAR;options.c_iflag &= ~(BRKINT | INPCK | ISTRIP | ICRNL | IXON); //options.c_cc[VTIME] = 2;options.c_cc[VMIN] = 12; options.c_oflag = 0;options.c_lflag = 0; cfsetispeed(&options, B115200);cfsetospeed(&options, B115200); tcsetattr(fd,TCSANOW,&options); } int cgiMain(){ int fd;char a='1';cgiHeaderContentType(“text/htmlnn”);fprintf(cgiOut,“n”);fprintf(cgiOut,“ fprintf(cgiOut,“ fd=open(“/dev/ttyUSB0”,O_RDWR);if(-1==fd) fprintf(cgiOut,“open usart failedn”); } zigbee_serial_init(fd);if(cgiFormSuccess==cgiFormSubmitClicked(“up”)){ a='2';write(fd,&a,1);} if(cgiFormSuccess==cgiFormSubmitClicked(“down”)){ a='1';write(fd,&a,1);} if(cgiFormSuccess==cgiFormSubmitClicked(“right”)){ a='4';write(fd,&a,1);} if(cgiFormSuccess==cgiFormSubmitClicked(“left”)){ a='3';write(fd,&a,1);} if(cgiFormSuccess==cgiFormSubmitClicked(“stop”)){ a='0';write(fd,&a,1);} fprintf(cgiOut," 编号 南京航空航天大学 毕业设计 题 目 基于单片机的智能小车的设 计与实现 学生姓名 学 号 系 部 专 业 班 级 指导教师 计算机科学与技术 讲师 二〇一七年五月 南京航空航天大学 本科毕业设计(论文)诚信承诺书 本人郑重声明:所呈交的毕业设计(论文)(题目:基于单片机的智能小车的设计与实现)是本人在导师的指导下独立进行研究所取得的成果。尽本人所知,除了毕业设计(论文)中特别加以标注引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写的成果作品。 作者签名: 年 月 日 (学号): 毕业设计(论文)报告纸 基于单片机的智能小车的设计与实现 摘要 在以计算机技术为代表的高新技术的迅猛发展下,机械系统大步迈向智能化。轮式机器人是我们最常见到的智能化设备。从生产制造业的无人搬运车,到特种行业的灾难救援、排爆灭火机器人,再到军事领域的侦查和防御机器人以及航天领域的星球表面探测器,处处可以见到智能小车的身影。 本文针对智能小车硬件和软件的设计进行了详细的介绍。在硬件方面,提出由电源模块、车体模块、单片机控制模块、电机驱动控制模块、电机模块、传感器模块等构成智能小车硬件系统。在软件方面,利用Keil uVision 5集成开发工具进行C51高级语言的程序设计,开发出控制程序。智能小车利用搭载在车前端两侧的红外传感器,识别路况,并以STC11F32XE单片机为控制核心,根据接收的信息发出相应的控制指令,通过--L298驱动控制模块来驱动小车以实现循迹。本系统的硬件和软件均采取了模块化的设计结构,系统电路简单,可靠性高,拓展性强。在实际调试过程中(无人为干扰下),智能小车能适应直道、S弯、环形等路况,达到循迹智能小车设计的目的和要求。 关键词:智能小车,软件设计,单片机,循迹 i 毕业设计(论文)报告纸 Design and Implementation of Intelligent Car Based on Single-Chip Microcomputer Abstract With the rapid development of new technology which is symbolized by computer technology, mechanical system has taken a step towards the intelligence.Wheeled robots are the most common intelligent devices in our life.Ranging from the unmanned van of manufacturing industry , to the special industry disaster relief, and the detection and defense robots in the military field and the surface detector in the aerospace field , the smart car figure can be seen everywhere.This article introduces the hardware and software design of the smart car in detail.In terms of the hardware, the hardware system of intelligent car is made up of power module, body module, single chip microcomputer module, motor drive module, motor module and sensor module.In the aspect the software, C51 high-level language programming can be designed by the employment of Keil uVision 5 integrated development tools,.thus developing a control program.The intelligent car uses the infrared sensor mounted on both sides of the front end of the car to identify the road condition and uses the STC11F32XE single chip as the control core, sending out the corresponding control instruction according to the received information , through the 参考文献 [1] 赵海兰.基于单片机的红外遥控智能小车的设计[J].无线互联科技, 2011年3期.[2] 何立民.单片机技术的现状与未来[J].中国计算机报, 2012年 No:30.[3] 姚培等.基于单片机控制的智能循迹避障小车[J].机电信息,2010年12期.[4] 赵振德.多功能遥控智能小车的制作[J].电子制作, 2011年4期.[5] 李瀚霖等.智能小车研究与设计[J].科技致富向导,2011年26期.[6] 周淑娟.基于单片机智能寻迹小车的设计方案[J].工业技术与职业教育,2011年6月第9卷第2期.[7] 黄杰.基于模糊控制的智能车辆设计[J].中国科技信息,2010.20.[8] 陈铁军.智能控制理论及应用[M].北京:清华大学出版社,2009.1.[9] 张毅刚,彭喜元,彭宇.单片机原理及应用[M],高等教育出版社,2010.5.[10] 刘南平.电子产品设计与制作技术[J].科学出版社,2008.[11] 杨刚.电子系统设计与实践[J].电子工业出版社,2009.3.[12] 寸晓非.基于飞恩卡尔的智能循迹车设计.荆楚学院报,2012.04.[13] 隋研.基于数字PID的智能小车控制[J].杂志商店,2012.06 [14] 张友德.单片机原理与应用技术.机械工业出版社,2004 [15] 吴黎明.数字控制技术.科学出版社,2009.11. 文档为doc格式 湖北轻工职业技术学院 单片机实训报告 题姓学专 目:基于STC89C52的智能小车设计 名:刘加象 号:20110302113 业:电子信息工程技术 指导老师:何伶俐 日 期:2013-01-06 信息工程系...... 摘要:本次设计的智能循迹小车是以单片机89c51为主控制器。运用反射式红外传感器来进行路径检测和速度监测模块。将检测数据传回单片机进行处理,同时,用单片机产生PWM波来控制小...... 智能小车的设计与制作 摘要:本课题组设计制作了一款具有智能判断功能的小车,功能强大。小车具有以下几个功能:自动避障功能;寻迹功能(按路面的黑色轨道行驶);趋光功能(寻找前方的点...... 基于单片机的智能跟随小车的设计与实现 【摘要】本文设计了一种能够通过传感器实时采集信号、智能分析周围环境以及路径信息、自动控制方向等功能的智能小车。小车以STC89c5...... 摘要:本设计就采用了比较先进的89C51为控制核心,89C51采用CHOMS工艺,功耗很低。这种方案能实现对智能小车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求...... 智能循迹小车 【摘要】 本课题是基于低功耗单片机的智能小车的设计与实现,小车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。小车系统以...... 机器人控制技术 实验设计报告书 题 目:基于STC89C52的智能小车的设计 姓 名:李如发 学 号:073321032 专 业:电气工程及其自动化 指导老师:李东京 设计时间:2010年 6 月 目 录 1....... 智能小车设计报告 魏旭峰、孔凡明、陈梦洋 (河北科技大学 电气信息学院 ) 摘要: AT89S52单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。该设计是结合......第二篇:毕业设计任务书(智能小车)
第三篇:智能小车单片机课程设计报告
n”);fprintf(cgiOut,“n”);第四篇:毕业设计论文-基于单片机的循迹智能小车的设计与实现
第五篇:基于单片机设计智能小车的参考文献
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。 基于89C51单片机的智能小车设计
基于单片机的智能循迹小车外文翻译
基于51单片机的智能小车设计(精选5篇)
基于单片机的智能跟随小车的设计与实现
毕业设计 无线遥控智能小车 Protues仿真 **程序
智能小车课程设计(五篇模版)
智能小车设计报告
智能小车设计报告