版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教你做智能车智能小车的主要类型一、无线遥控智能车二、循迹智能车三、手机蓝牙控制智能车四、迷宫避障智能车五、寻光追光智能车智能车是人创造的,它的类型多种多样,在这里我们只是介绍了比较常见的几种,在以后的学习中我们可以开发自己的脑力,创新更多种类,更多功能的小车,相信自己,永不止步。下面我们以如何制作蓝牙小车为例,通过蓝牙小车制作所需要的零部件以及制作过程,来给大家讲解如何制作蓝牙小车,从而触类旁通,学会制作各种各样的智能车。蓝牙小车的设计流程一、基本车架组装二、单片机系统板设计三、电机驱动电路设计四、蓝牙模块设计五、程序设计下面我们主要给大家展示我们在制作蓝牙小车的过程中所需要的电路元件,并细致讲解如何利用这些元件制作出以上的几个模块。准备下列制作智能车的基本元器件一、基本二驱车体一台。二、单片机卡槽、51单片机、石英晶体、红色LED、1K电阻、10K排阻各一个;2个瓷片电容、排针40个。三、7805稳压芯片、红色LED、1K电阻各一个;双孔接线柱三个、10u电解电容2个、排针12个、9110驱动芯片2个。四、蓝牙芯片一个;排针8个、1K电阻3个、蜂鸣器一个、
蓝色3mmLED一个,5mm红发红led两个,5mm白发白led3个,开关一个,3.3V稳压芯片一个,8550三极管两
个。在这里我们需要特别解释下,罗列的这些元器件都是常用的一些,如果你不知道这些元器件具体是什么样的,你可以百度一下,请大家耐心,找好了这些元件,我们就成功了一大步。下面给出各个模块的零件图。一、基本车架组装二、单片机系统板元件图三、电机驱动电路元件图四、蓝牙模块元件图下面我们从基本车体的组装、单片机最小系统、电机驱动电路、蓝牙模块、程序设计来一步一步完成我们的蓝牙小车一、基本车体的组装一、拿出两块黑色亚克力上、下底板,揭掉外层保护膜。靓丽、霸气的黑色车板就显露出来她的真面目了。二、拿出两个电机,分别用螺丝拧到铝合金挡板上。三、分别焊接两个电机的引线。注意焊接导线一侧与铝合金挡板拧螺母在同一侧,这样最终装到车底板上时线在车内部。四、将电机固定到车下底板上,方向位置一定要对应好。五、将两个塑料轮分别安装到到两个电机上。六、将万向轮固定到如图的位置上,用螺丝拧紧。七、将四个支撑铜柱拧到如图相应位置。八、将上层板固定到铜柱上,用螺丝拧紧。到这里,一辆霸气十足的黑金刚三轮两驱双层车体就安装成功了。九、漂亮吧!拍几个pose秀一下...二、单片机系统在这里我们通过原理图利用AltiumDesigner画出电路图,从而制成电路PCB板,如果没有做板子的条件,大家可以选择洞洞板直接按照电路图进行焊接,或者直接在网上选择板子,我们建议大家自己亲手做,这样学到的知识更多些。在下面我们给出原理图,进行焊接。单片机系统原理图制成后的PCB板制成后的洞洞板三、电机驱动模块电机驱动模块原理图制成后的PCB板制成后的洞洞板四、蓝牙模块蓝牙模块原理图制成后的PCB板制成后的洞洞板五、蓝牙小车程序设计#include<reg52.h>//声明头文件#defineucharunsignedchar//宏定义#defineuintunsignedint//宏定义sbitdeng=P2^0;//定义车灯的控制引脚sbitz=P2^1;//定义左转向灯的控制引脚sbity=P2^2;//定义右转向灯的引脚sbitBEEP=P2^3;//定义蜂鸣器的引脚sbitzuo1=P0^0;//定义控制左边电机的单片机引脚sbitzuo2=P0^1;//定义控制左边电机的单片机引脚sbityou1=P0^2;//定义控制右边电机的单片机引脚sbityou2=P0^3;//定义控制右边电机的单片机引脚uchara=0;//定义一个变量a,用来读取串口的数据voiddelay(uintz)//一个带参数的延时程序{ inti,j;//定义两个变量
for(i=10;i>0;i--) for(j=z;j>0;j--);//将参数z赋值给j}voidinit()//初始化子程序{ TMOD=0x20;//设置定时器T1为工作方式2 TH1=0xfd; TL1=0xfd;//T1定时器装初值
TR1=1;//启动定时器T1 REN=1;//允许串口接收
SM0=0; SM1=1;//设置串口工作方式1 EA=1;//开总中断
ES=1;//开串口中断}voidgo1()//前进子程序{ zuo1=0; zuo2=1;//左边轮子正转
delay(24);//pwm有用值,越大左边方向的轮子越快
zuo1=1;//关闭左边轮子
you1=0; you2=1; //右边轮子正转
delay(26);//pwm有用值,越大右边的轮子越快
you1=1;//关闭右边轮子
delay(100);//pwm无用值,越大,小车跑的越慢
z=1; y=1;//关闭转向灯}voidgo2()//前进子程序{ zuo1=0; zuo2=1;//左边轮子正转
delay(24);//pwm有用值,越大左边方向的轮子越快
zuo1=1;//关闭左边轮子
you1=0; you2=1; //右边轮子正转
delay(26);//pwm有用值,越大右边的轮子越快
you1=1;//关闭右边轮子
delay(80);//pwm无用值,越大,小车跑的越慢
z=1; y=1;//关闭转向灯}voidgo3()//前进子程序{ zuo1=0; zuo2=1;//左边轮子正转
delay(24);//pwm有用值,越大左边方向的轮子越快
zuo1=1;//关闭左边轮子
you1=0; you2=1; //右边轮子正转
delay(26);//pwm有用值,越大右边的轮子越快
you1=1;//关闭右边轮子
delay(60);//pwm无用值,越大,小车跑的越慢
z=1; y=1;//关闭转向灯}voidgo4()//前进子程序{ zuo1=0; zuo2=1;//左边轮子正转
delay(24);//pwm有用值,越大左边方向的轮子越快
zuo1=1;//关闭左边轮子
you1=0; you2=1; //右边轮子正转
delay(26);//pwm有用值,越大右边的轮子越快
you1=1;//关闭右边轮子
delay(40);//pwm无用值,越大,小车跑的越慢
z=1; y=1;//关闭转向灯}voidgo5()//前进子程序{ zuo1=0; zuo2=1;//左边轮子正转
delay(24);//pwm有用值,越大左边方向的轮子越快
zuo1=1;//关闭左边轮子
you1=0; you2=1; //右边轮子正转
delay(26);//pwm有用值,越大右边的轮子越快
you1=1;//关闭右边轮子
delay(20);//pwm无用值,越大,小车跑的越慢
z=1; y=1;//关闭转向灯}voidgo6()//前进子程序{ zuo1=0; zuo2=1;//左边轮子正转
delay(24);//pwm有用值,越大左边方向的轮子越快
zuo1=1;//关闭左边轮子
you1=0; you2=1; //右边轮子正转
delay(26);//pwm有用值,越大右边的轮子越快
you1=1;//关闭右边轮子
z=1; y=1;//关闭转向灯}voidhui1()//小车后退的子程序{ zuo1=1; zuo2=0;//左边轮子倒转
delay(23);//pwm有用值,越大左边方向的轮子越快
zuo2=1;//关闭左边轮子
you1=1; you2=0; //右边轮子倒转
delay(26);//pwm有用值,越大右边的轮子越快
you2=1;//关闭右边轮子
delay(100);//pwm无用值,越大,小车跑的越慢
z=1; y=1;//关闭转向灯}voidhui2()//小车后退的子程序{ zuo1=1; zuo2=0;//左边轮子倒转
delay(23);//pwm有用值,越大左边方向的轮子越快
zuo2=1;//关闭左边轮子
you1=1; you2=0; //右边轮子倒转
delay(26);//pwm有用值,越大右边的轮子越快
you2=1;//关闭右边轮子
delay(80);//pwm无用值,越大,小车跑的越慢
z=1; y=1;//关闭转向灯}voidhui3()//小车后退的子程序{ zuo1=1; zuo2=0;//左边轮子倒转
delay(23);//pwm有用值,越大左边方向的轮子越快
zuo2=1;//关闭左边轮子
you1=1; you2=0; //右边轮子倒转
delay(26);//pwm有用值,越大右边的轮子越快
you2=1;//关闭右边轮子
delay(60);//pwm无用值,越大,小车跑的越慢
z=1; y=1;//关闭转向灯}voidhui4()//小车后退的子程序{ zuo1=1; zuo2=0;//左边轮子倒转
delay(23);//pwm有用值,越大左边方向的轮子越快
zuo2=1;//关闭左边轮子
you1=1; you2=0; //右边轮子倒转
delay(26);//pwm有用值,越大右边的轮子越快
you2=1;//关闭右边轮子
delay(40);//pwm无用值,越大,小车跑的越慢
z=1; y=1;//关闭转向灯}voidhui5()//小车后退的子程序{ zuo1=1; zuo2=0;//左边轮子倒转
delay(23);//pwm有用值,越大左边方向的轮子越快
zuo2=1;//关闭左边轮子
you1=1; you2=0; //右边轮子倒转
delay(26);//pwm有用值,越大右边的轮子越快
you2=1;//关闭右边轮子
delay(20);//pwm无用值,越大,小车跑的越慢
z=1; y=1;//关闭转向灯}voidhui6()//小车后退的子程序{ zuo1=1; zuo2=0;//左边轮子倒转
delay(23);//pwm有用值,越大左边方向的轮子越快
zuo2=1;//关闭左边轮子
you1=1; you2=0; //右边轮子倒转
delay(26);//pwm有用值,越大右边的轮子越快
you2=1;//关闭右边轮子
z=1; y=1;//关闭转向灯}voidturnleft()//小车左转弯子程序{ zuo1=1; zuo2=1;//左边轮子停止转动
you1=0; you2=1; //右边轮子正转
delay(24);//pwm有用值,越大右边的轮子越快
you1=1;//右边轮子停止
delay(100);//pwm无用值,越大,小车跑的越慢
z=1; y=1;//关闭转向灯
z=~z;//左转向灯打开}voidturnright()//小车右转弯子程序{ zuo1=0; zuo2=1;//左边轮子正转
delay(25);//pwm有用值,越大左边方向的轮子越快
zuo1=1;//左边轮子停止
you1=1; you2=1; //右边轮子停止
delay(100);//pwm无用值,越大,小车跑的越慢
z=1; y=1;//关闭转向灯
y=~y;//右转向灯打开}voiddown()//停止子程序{ zuo1=1; zuo2=1; you1=1; you2=1; //左右轮全部停止
z=1; y=1;//关闭转向灯}voidmain()//主程序{ init();//调用初始化子程序
while(1)//死循环
{ if(a==0x14||a==0x15||a==0x54||a==0x55||a==0x64||a==0x65)//如果是就前进
go1(); if(a==0x16||a==0x17||a==0x56||a==0x57||a==0x66||a==0x67)//如果是就前进
go2(); if(a==0x18||a==0x19||a==0x58||a==0x59||a==0x68||a==0x69)//如果是就前进
go3(); if(a==0x1a||a==0x1b||a==0x5a||a==0x5b||a==0x6a||a==0x6b)//如果是就前进
go4(); if(a==0x1c||a==0x1d||a==0x5c||a==0x5d||a==0x6c||a==0x6d)//如果是就前进
go5(); if(a==0x1e||a==0x1f||a==0x5e||a==0x5f||a==0x6e||a==0x6f)//如果是就前进
go6();if(a==0x24||a==0x25||a==0x74||a==0x75||a==0x84||a==0x85)//如果是就后退hui1();if(a==0x26||a==0x27||a==0x76||a==0x77||a==0x86||a==0x87)//如果是就后退hui2();if(a==0x28||a==0x29||a==0x78||a==0x79||a==0x88||a==0x89)//如果是就后退hui3();if(a==0x2a||a==0x2b||a==0x7a||a==0x7b||a==0x8a||a==0x8b)//如果是就后退hui4();if(a==0x2c||a==0x2d||a==0x7c||a==0x7d||a==0x8c||a==0x8d)//如果是就后退hui5();if(a==0x2e||a==0x2f||a==0x7e||a==0x7d||a==0x8e||a==0x8f)//如果是就后退hui6();
if(a==0x3f)//如果是0x3f就左转
turnleft(); if(a==0x4f)//如果是0x4f就右转
turnright(); if(a==0x00)//如果是0x00就停止
down(); if(a==0xa0)//如果是0xa0车灯打开
deng=0; if(a==0xb0)//如果是0xb0车灯关闭
deng=1; if(a==0xc0)//如果是0xc0蜂鸣器鸣响
BEEP=0;
if(a==0xd0)//如果是0xd0蜂鸣器关
BEEP=1;
else down(); } } voidchuan()interrupt4//串口中断服务程序{ RI=0;//软件清除串口响应
a=SBUF;//读取单片机串口接受的蓝牙模块发送的数据}编写这些程序对于初学者来讲有很大的困难,这里大家只需要把这些程序照原样写下来就行了,或者直接在网页上搜索“刘新世手把手教你做智能小车”找到PPT版,把这些复制下来就行了,当然也可以给我发邮件,我会非常乐意帮助大家的,把源程序免费给大家。邮箱:liuxinshi1234@QQ:2524395641六、各模块之间的连接单片机主控模块:5V电机驱动模块输入:9-12V多功能蓝牙模块:5V电机输入端口接:P0.0、P0.1(控制左边电机)P0.2、P0.3(控制右边电机)(单片机的P0.0、P0.1、P0.2、P0.3接到驱动的单片机接口
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024矿山劳务承包合同范本
- 2024质押式借款合同范本
- 2024绿植花卉租赁合同(详细版)
- 2024自家租房简单合同范本
- 2024计算机软件著作权登记委托代理合同范文
- 2024无线覆盖合同模板
- 2024洲际酒店管理合同
- 深圳大学《应用光学实验》2021-2022学年第一学期期末试卷
- 创业策划书集锦15篇
- 美容院消费股东协议书(2篇)
- 声音的数字化课件
- 医院产后康复护理课件
- RDPAC 数字医疗合规分项指南:与患者及患者组织的互动
- 安徽省数字经济与实体经济融合研究
- 社区调解员个人工作总结模板
- 学校心理辅导期末考试复习题及参考答案
- 《哈利波特与魔法石》
- 电厂运维安全员职责
- 艺术收藏科普知识讲座
- 期权策略及案例分析
- 平面镜成像-说课
评论
0/150
提交评论