基于51单片机的两驱蓝牙小车系统设计

合集下载

单片机蓝牙控制小车

单片机蓝牙控制小车

课题:基于单片机得蓝牙控制小车专业:班级:学号:姓名:指导教师:设计日期:成绩:重庆大学城市科技学院电气信息学院目录1、设计目得作用 (2)2、设计要求.............................................. 23、设计得具体实现ﻩ23、1设计原理 (2)3、2系统设计12ﻩ3、3系统实现13ﻩ4、总结19ﻩ参考文献................................................ 20附录 ................................................... 21附录121ﻩ附录22ﻩ2C51蓝牙控制小车设计报告1设计目得与意义目得与意义:提高学生动手能力,培养学生得思维,巩固理论知识,让我们能对单片机更加深入得了解,加深同学们对单片机得认识,通过自己动手让小车跑起来还能让同学们更加有积极性,参与感,成就感.让学生们亲自体验这门课程得神奇性。

因为无线技术得广泛使用,使蓝牙技术得发展成为了趋势之一,蓝牙可以发送与接受语音与数据,满足了大多数人得需求,它也融合了其她相关产品得特点,也就是这样技术变得更多样性。

实现了无线控制小车,摆脱了有线控制得不方便,更加智能。

2设计要求SPP蓝牙串口调试助手---—》聊天窗口-—》1、在Bluetooth_Car项目中添加超声波躲避障碍功能(在小车前进得过程中,实时检测障碍物,一旦检测得距离,接近设定得值,触发蜂鸣器,报警系统工作,小车停止前进);2、在Bluetooth_Car项目中得串口中断服务函数中,添加小车前进得8个方向 ,前后左右,左前,右前,左后,右后;3、利用外部中断,强制停止小车运行(无论小车现在处于什么状态),蜂鸣器报警1s后,可再运行;4、用手机得蓝牙串口调试助手来远程操作小车。

3、设计得具体实现3、1设计原理芯片常识: STM8、C52 、STM32 、ARMC52:主要做末端得控制11、0592MHZSTM32:主要做工业控制领域--智能设备168MARM:主要做消费市场——手机==============单片机小车==========了解原理图与数据手册一、软件建立工程ﻩ建立工程时芯片选择—-》Atmel-—>AT89C52ﻩ设置芯片频率,选择生成16进制可执行文件.=============中断========单片机获取外部数据得方式:1、程序控制方式a、无条件发送方式单片机认为外部设备一直都就是准备好得,直接就拿数据使用。

基于51单片机的多功能小车的设计[1]

基于51单片机的多功能小车的设计[1]

目录一、绪论 (1)1、设计的目的 (1)2、设计方案要求 (2)二、硬件设计 (2)1、系统组成框图 (2)2、模块方案论证与比较 (2)(1)控制模块 (2)(2)电机的选择 (3)(3)电机驱动模块 (3)(4)寻迹模块 (3)(5)避障模块 (4)3、硬件电路分析 (5)(1)最小系统 (5)(2)电机驱动电路 (6)(3)寻迹电路 (7)4、部分元器件介绍 (8)(1)51单片机 (8)(2)L298N (10)三、软件设计 (11)1、软件流程 (11)(1)流程简介 (12)(2)各功能的实现 (12)2、寻迹算法设计 (14)四、调试与结果分析 (14)五、结束语 (14)参考文献 (15)附录1:元件清单 (15)附录2:软件程序 (16)基于51单片机的多功能小车的设计(应用电子技术专业2008级)摘要:智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的,模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。

智能小车就是其中的一个体现。

本次设计的智能小车,采用AT89C51单片机作为小车控制核心,运用红外探头的检测实现小车寻迹和蔽障功能。

传感器作为现代科技的前沿技术,被认为是现代信息技术的三大支柱之一,也是国内外公认的最具有发展前途的高技术产业。

在国内有自动化方面的专家指出,传感器技术直接关系到我国自动化产业的发展形势,认为"传感器技术强,则自动化产业强"。

由此可见传感器技术对自动化产业乃至整个国家工业建设的重要性。

关键字:51单片机;直流电机;L298驱动;红外探头一、绪论1、设计的目的随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。

可见其研究意义很大。

本设计就是在这样的背景下提出的。

本题目是结合科研项目而确定的设计类课题。

设计的智能电动小车应该能够实时显示时间、里程,具有自动寻迹功能,可准确定位停车。

传感器作为现代科技的前沿技术,被认为是现代信息技术的三大支柱之一,也是国内外公认的最具有发展前途的高技术产业。

51单片机蓝牙控制小车工作原理

51单片机蓝牙控制小车工作原理

51单片机蓝牙控制小车工作原理随着科技的不断发展,各种智能设备逐渐成为人们生活中不可或缺的一部分。

其中,单片机与蓝牙技术结合的小车应用,既有趣又具有一定的实用价值。

本文将介绍51单片机蓝牙控制小车的工作原理,以期为大家提供一些有益的信息。

在实际应用中,小车的移动、旋转控制是至关重要的。

为此,我们可以选用一种简单而有效的蓝牙通信协议——UART通信协议。

它可以在单片机与蓝牙控制小车之间建立通信连接,实现对小车的远程操控。

51单片机蓝牙控制小车的工作原理主要包括以下几个方面:一、单片机端硬件设计单片机端硬件设计主要包括单片机本身和与蓝牙控制小车连接的接口电路。

单片机可以内置UART通信模块,用于与蓝牙控制小车进行通信。

同时,还需要一个驱动电路,用于将单片机与蓝牙控制小车连接起来。

这些硬件设计可以通过电路图的形式呈现,具体电路图可以在相关资料中查阅。

二、蓝牙控制小车端硬件设计蓝牙控制小车端硬件设计主要包括一个小车的接收单元、一个驱动单元和一个微控制器。

接收单元用于接收单片机发送的指令,将指令转换为小车可以理解的动作信号。

驱动单元用于控制小车的运动,可以根据接收到的指令控制小车的移动、旋转等动作。

微控制器用于接收接收单元发送的信号,并根据接收到的信号控制单片机的功能。

这些硬件设计也可以通过电路图的形式呈现,具体电路图可以在相关资料中查阅。

三、通信协议51单片机与蓝牙控制小车之间的通信,需要遵循一种合适的通信协议。

在这里,我们主要采用UART通信协议。

它是一种串口通信,具有接口简单、速度较慢的特点,非常适合于这种简单而有趣的应用场景。

四、软件编程软件编程是单片机与蓝牙控制小车之间的桥梁。

为此,我们需要编写一段程序,用于实现单片机端与蓝牙控制小车端的通信功能。

这段代码需要包含以下几个主要部分:1.初始化函数:用于对单片机和蓝牙控制小车的硬件进行初始化,包括开启相应接口、配置默认值等。

2.数据接收函数:用于接收蓝牙控制小车发送的数据,并进行解码和处理。

C51蓝牙小车课程设计

C51蓝牙小车课程设计

C51蓝牙小车课程设计一、教学目标本课程的教学目标是使学生掌握C51蓝牙小车的基本原理和制作方法,培养学生的电子技术应用能力和创新思维。

具体分为以下三个部分:1.知识目标:学生需要了解C51蓝牙小车的硬件组成、工作原理以及相关的电子技术知识。

2.技能目标:学生能够熟练使用相关工具和设备,独立完成C51蓝牙小车的组装和编程。

3.情感态度价值观目标:通过课程的学习,学生能够培养对科技创新的热爱,增强团队合作意识,提高解决问题的能力。

二、教学内容教学内容主要包括以下几个部分:1.C51蓝牙小车的硬件组成和工作原理。

2.蓝牙模块的原理和使用方法。

3.控制系统的编程和调试。

4.实验操作和项目实践。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式:1.讲授法:用于讲解基本原理和知识点。

2.实验法:通过动手实践,使学生更好地理解理论知识。

3.案例分析法:分析实际案例,培养学生的应用能力和创新思维。

4.讨论法:鼓励学生积极参与讨论,提高团队合作和沟通能力。

四、教学资源为了支持教学,我们将准备以下教学资源:1.教材:提供详细的学习指导和实践操作步骤。

2.参考书:为学生提供更多的学习资料和扩展知识。

3.多媒体资料:通过视频、图片等形式,丰富学生的学习体验。

4.实验设备:提供足够的实验设备和工具,确保学生能够顺利进行实践操作。

五、教学评估本课程的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。

评估主要包括以下几个方面:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和参与度。

2.作业:布置相关的编程练习和实验报告,评估学生的理解和应用能力。

3.考试:期末进行一次理论知识考试,评估学生对课程知识的掌握程度。

4.项目实践:评估学生在实践项目中的表现,包括蓝牙小车的组装、编程和调试能力。

六、教学安排本课程的教学安排将根据学生的实际情况和教学需求进行调整。

教学进度将合理安排,确保在有限的时间内完成教学任务。

单片机智能蓝牙小车课程设计

单片机智能蓝牙小车课程设计

单片机课程设计系别:电子信息工程班级:信10050 6 学号:信10050601 姓名:徐彬彬引言制作一个基于51单片机的控制的无线控制小车。

一、系统设计由51单片机控制直流电机的正反转来控制小车的运动。

无线部分用来接收上位机(电脑或者手机)发出的信号,通过信号控制单片机调用函数程序来控制小车的运行状态。

无线部分:用蓝牙从机的TTL接口接收信号反馈给单片机,还可以通过电脑的无线局域网网卡来控制路由器的TTL串口来控制单片机的状态。

由于蓝牙模块容易得到且接口方便,电压可以用+5V控制,携带方便,便于在小车上安装。

电机驱动:电机驱动需要大电流,较高的电压,考虑到单片机的负载能力,用L298N驱动模块来驱动电机,单片机输出逻辑信号控制L298N模块输出正反向电压,由此控制电机的正反转。

小车的运动状态:小车为四轮驱动,一侧的两个电机分为一组。

二、软件设计单片机电路:由p1口输出逻辑电平驱动L298N电路L298N驱动电机电路,供给+5V和+12V电压三、系统的仿真与调试用简单程序仿真测试电路连接情况汇编程序代码:org 0000hajmp mainorg 0080hmain:mov a,#0ffhmov p1,a ;不转call delay ;延时loop: mov a,#00ah ;正转mov p1,acall delaymov a,#0ffh;停止mov p1,acall delaymov a,#005h;反转mov p1,acall delaymov a,#0ffh;停止mov p1,acall delayjmp loopdelay: mov r5,#50 ;延时。

d1: mov r6,#40d2: mov r7,#248djnz r7,$djnz r6,d2djnz r5,d1retend仿真结果:电机正反转均正常小车程序:用单片机控制小车的四个状态,前进,后退,左转,右转。

由四个函数实现,执行条件为中断。

51单片机智能小车蓝牙遥控+测速程序源代码、电路原理图和电路器件表

51单片机智能小车蓝牙遥控+测速程序源代码、电路原理图和电路器件表

51单片机智能小车蓝牙遥控+测速程序源代码、电路原理图、电路器件表HC-05蓝牙模块测速模块智能小车蓝牙遥控+测速是:可以用智能小车手机蓝牙遥控APP 控制智能小车的前进,后退,左转,右转和停止。

同时利用测速模块测量智能小车的运动速度,并将智能小车的速度显示在液晶屏上。

智能小车蓝牙遥控+测速程序流程图如下:下文主要提供了51单片机智能小车蓝牙遥控+测速完整程序源代码、电路原理图以及电路器件表。

智能小车核心板原理图STC15W4K56S4智能小车核心板器件(BOM)表实物图060306030603PIN插针PIN2x1406030603直插LQFP7x7-48 STC15W4K56S4智能小车核心板正面STC15W4K56S4智能小车核心板背面智能小车驱动板原理图51单片机(STC15W4K56S4)智能小车驱动板器件(BOM)表实物图直插直插直插直插直插直插直插直插直插直插PIN与PIN之间的间隔2.54mm插电池盒PIN与PIN间隔2.54mm,插电机3PIN插针,针与针间隔2.54mm插舵机红色插针和黑色插针3.3V红色插针、GND黑色插针PIN红色插针和黑色插针5V PIN红色插针和黑色插针VINPIN与PIN之间的间隔2.54mm 插MQ2模块针与针间隔2.54mm插GP2Y1014AU模块针与针间隔2.54mm语音播报实验时,串口4插语音播报模块针与针间隔2.54mmIO扩展用,没有必要不要焊接针与针间隔2.54mm插DHT11模块用4PIN插针,针与针间隔2.54mm用杜邦线连接超声波模块针与针间隔2.54mm插蓝牙模块(要原厂原装的)用8PIN插针,针与针间隔2.54mm杜邦线连接红外循迹避障模块用4PIN插针,针与针间隔2.54mm用杜邦线连接测速模块针与针间隔2.54mm插5V的LCD1602液晶MPU6050不要焊接。

也可以用导线直接将但一定要注意不要短接直插直插直插电阻直插直插电阻这直插电阻直插电阻电阻电阻5V3.3V5V红外遥控信号接收管直插针与针间隔2.54mm,插MPU6050模块,目前只是在电路图上保留了该接口,并无相关实验程序。

基于51单片机的智能小车控制系统设计与制作

基于51单片机的智能小车控制系统设计与制作

• 186•自从单片机问世以来,就被广泛地运用在各个行业中,如工业自动化,自动检测与控制系统,智能仪器仪表,家用电器等各个方面。

在当今社会,几乎所有的电子类产品都会用到单片机的集成芯片。

51单片机是一款八位单片机,它的易用性和多功能性受到了广泛使用者的一致好评,单片机的运用正在不断强化,基于它具有体积小,功耗低并且成本低的特点,工作可靠性强,根据这些特点特别适合用于控制有关的系统。

该设计在车身部分采用STC89C52RC 单片机作为主要的核心控制芯片。

通过无线传送操作指令,利用光电门来监测小车驱动轮的转速,从而用PWM 动态调节和控制小车的速度与方向。

该设计主要实现以下几点功能:前进后退、左转右转、黑线寻迹、避障、红外遥控、以及调节小车行驶速度。

智能遥控小车的研究现状首先在美国工业方面首先展开运用,由于很大的便利之处和智能化,就让其得到了政府的认可,得到了相关技术和政策的支持,因此各大工业大国都在智能无线遥控上占据着一定的优势。

因此,在未来智能小车的应用将随处可见。

本总体结构图如图1所示。

本设计系统主要以STC89C52RC 为核心的单片芯片为中心,芯片使用T0定时器的中断方式,形成更精确的脉冲波,以驱动发动机L298N 芯片精准的控制发动机的旋转速度。

采用PT2262的编码解码芯片并进行无线传输和操作:执行指令接收和控制车身移动平台上的单片机收到相应的指令后改变发动机的PWM 脉冲波形,并调整车辆当前的操作状态。

2 硬件设计在小车设计的硬件模块中单片机采用的是51系列作为控制的核心处理器,这里主要是以STC89C52RC 作为主要控制芯片,它兼容51的全部功能并且功能更加优化。

单片机最小系统由外围信号I/O 口组成的,包括电源、CPU 时序电路、复位电路,在这三个模块的基础上,单片机就能够正常的工作。

设计系统中,时钟晶振电路模块采用的工作方式是内部时钟的工作方式,是通过利用芯片内部的实时震荡谐振电路模块来进行实现。

C51蓝牙小车课程设计

C51蓝牙小车课程设计

C51蓝牙小车课程设计一、课程目标知识目标:1. 掌握C51单片机的原理及应用,理解蓝牙通信技术的基本概念;2. 学习并掌握蓝牙模块的配置与使用,了解蓝牙小车的基本结构及功能;3. 了解电路原理图及编程方法,能运用所学知识分析并解决实际问题。

技能目标:1. 能够独立完成蓝牙小车的组装和调试,提高动手实践能力;2. 学会使用C语言编程,实现对蓝牙小车的控制,提高编程技能;3. 能够通过团队协作,共同完成蓝牙小车的制作,提高沟通与协作能力。

情感态度价值观目标:1. 培养学生对电子制作和编程的兴趣,激发创新精神;2. 培养学生面对问题积极思考、勇于探索的良好品质;3. 增强学生的团队合作意识,培养集体荣誉感。

分析课程性质、学生特点和教学要求,本课程旨在通过实践操作,使学生在掌握C51单片机和蓝牙通信技术的基础上,培养实际动手能力、编程技能和团队协作能力。

课程目标分解为具体学习成果,以便于后续教学设计和评估。

通过本课程的学习,学生将能够具备运用所学知识解决实际问题的能力,同时培养良好的情感态度价值观。

二、教学内容1. C51单片机原理及编程基础:介绍C51单片机的结构、工作原理,学习C语言编程基础,掌握中断、定时器等基本功能的使用。

相关教材章节:第1章 单片机概述,第2章 C语言基础,第3章 中断与定时器。

2. 蓝牙通信技术:学习蓝牙技术的基本概念、原理和应用,了解蓝牙模块的配置与使用方法。

相关教材章节:第4章 通信技术基础,第5章 蓝牙技术及其应用。

3. 蓝牙小车硬件结构与组装:分析蓝牙小车的硬件结构,学习各部分的连接方法和调试技巧。

相关教材章节:第6章 硬件系统设计,第7章 系统调试与优化。

4. 蓝牙小车程序设计:结合C51单片机编程,设计蓝牙小车的控制程序,实现对小车的运动控制。

相关教材章节:第8章 单片机程序设计,第9章 蓝牙小车控制程序设计。

5. 实践操作与团队协作:分组进行蓝牙小车的组装、调试和程序设计,培养实际动手能力,提高团队协作能力。

基于51单片机的智能小车控制系统设计

基于51单片机的智能小车控制系统设计

工业职业技术学院毕业设计课题名称—基于51与单片机的智能小车控制系统__________________________系(院)名称________________ 电气工程系_____________________ 专业及班级___________________________________________________ 学生_______________________________________________学号_______________________________________________指导教师___________________________________________________完成日期年11 月19 日随着我国科学技术的进步,智能化作为现代社会的新产物开始越来越普及,各种高科技也广泛应用于智能小车和机器人玩具制造领域,使智能机器人越来越多样化。

智能小车是一个多种高薪技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,可以涉及到当今许多前沿领域的技术。

整个小车平台主要以51单片机为控制核心,通过无线遥控实现前进后退和转向行驶,通过红外线传感器,实现小车的自适应巡航、避障等功能。

设计采用对比选择,模块独立,综合处理的研究方法。

通过翻阅大量的相关文献资料,分析整理出有关信息,在此基础上列出不同的解决方案,结合实际情况对比方案优劣选出最优方案进行设计。

从电机车体,最小系统到无线遥控,红外线对管的自动寻迹再到红外线自动避障和语音控制,完成各模块设计。

通过调试检测各模块,得到正确的信号输出,实现其应有的功能。

最后将各个调试成功的模块结合到小车的车体上,结合程序,通过单片机的控制,将各模块有效整合在一起,达到所预期的目标,完成最终设计与制作,能使小车在一定的环境中智能化运转。

关键字:智能小车,单片机,红外传感器。

目录第一章绪论......................................................................... -1 -1.1.1 智能循迹小车概述....................................................... -1 -1.1.2课题研究的目的和意义 ................................................... -2 -1.1.3 智能循迹小车智能循迹分类............................................... -2 -1.1.4 智能循迹小车的应用..................................................... -3 -第二章方案设计..................................................... 错误!未定义书签。

基于51单片机(stc89c52)手机蓝牙控制小车—程序

基于51单片机(stc89c52)手机蓝牙控制小车—程序

基于stc89c52手机蓝牙控制小车—程序先简单介绍下开发环境,芯片类型是stc89c52,集成开发环境用的是Keil4需要准备:L298N驱动电路板,两个直流电机,HC-05蓝牙模块,亚克力板,一个万向轮和两个普通小轮,stc89c52最小系统板,一个7.5伏电源,若干杜邦线。

连接方式:L298N驱动电路与单片机部分(注意:单片机要与HC-05蓝牙模块的共地)HC-05蓝牙模块与单片机部分HC-05蓝牙模块的RX接单片机的TX;HC-05蓝牙模块的TX接单片机的RX;HC-05蓝牙模块的GND接单片机的GND;HC-05蓝牙模块的VCC接单片机的VCC。

代码:#include <REGX52.H>void UART_Init()//******************{SCON=0x50;//工作模式PCON &=0x7F;//波特率不倍速//配置定时器,与波特率有关TMOD&=0x0F;//设定定时器模式TMOD|=0x20;//设定定时器模式TL1=0xFD;//设定定时器初始值TH1=0xFD;//设定定时器重装值ET1=0;//禁止定时器1中断TR1=1;//启动定时器1EA=1;//启动串口中断ES=1;//串口使能}void Timer0_Init()//10ms{//定时器部分TMOD&=0xF0;//将低四位清零,高四位不变TMOD|=0x01;//将最低的位置1,其余不变TR0=1;//T0定时器的运行控制TF0=0;//为一时跳入中断函数会自动清0和置1 TH0=0xDC;//高位TL0=0x00;//低位//中断器部分ET0=1;//IE总开关前的开关EA=1;//中断总开关PT0=0;//高级为1,低级为0}unsigned char control=0,compare1=7,compare2=7;unsigned int T0count=0;void main(){UART_Init();//初始化串口通信Timer0_Init();//初始化定时器while (1){}}void UART_Routine() interrupt 4//串口中断部分{if(RI==1){control=SBUF; //单片机接收值RI=0;//手动清除标志位}}void Timer0_Routine() interrupt 1//T0口中断程序{TH0=0xDC;//高位TL0=0x00;//低位//重新刷新if(control=='0') //停车{P2_0=0;P2_1=0;P2_2=0;}if(control=='1') //后退{T0count++;T0count%=10;//100msif(T0count<=compare1){P2_0=0;P2_1=1;}else{P2_0=0;P2_1=0;}if(T0count<=compare2){P2_2=0;P2_3=1;}else{P2_2=0;P2_3=0;}}else if(control=='2')//直行{T0count++;T0count%=10;//100msif(T0count<=compare1){P2_0=1;P2_1=0;}else{P2_0=0;P2_1=0;}if(T0count<=compare2){P2_2=1;}else{P2_2=0;P2_3=0;}}else if(control=='3')//右转{T0count++;T0count%=10;//100msif(T0count<=7){P2_0=1;P2_1=0;}else{P2_0=0;P2_1=0;}P2_2=0;P2_3=0;}else if(control=='4')//左转{T0count++;T0count%=10;//100msif(T0count<=7){P2_2=1;P2_3=0;}else{P2_2=0;P2_3=0;}P2_0=0;P2_1=0;}}。

基于51单片机的蓝牙小车设计

基于51单片机的蓝牙小车设计

内容仅为学习使用,多处摘录源于网络,请勿用于毕业论文基于蓝牙遥控的智能小车设计与制作摘要:关键词:单片机;蓝牙遥控;PWM调速目录第一章前言----------------------------------------------------------------------4 第二章方案比较与论证 ------------------------------------------------------5 2.1总体方案设计---------------------------------------------------------------------5 2.2蓝牙模块选择---------------------------------------------------------------------6 2.3 电机驱动模块选择--------------------------------------------------------------6 第三章智能小车底盘结构分析 --------------------------------------------7 3.1底板设计----------------------------------------------------------------------------7 3.2 电机与底板的连接支架设计--------------------------------------------------8 3.3整体装配图-------------------------------------------------------------------------9第四章控制系统电路设计 -------------------------------------------------10 4.1 单片机最小系统设计----------------------------------------------------------10 4.2 电机驱动电路设计-------------------------------------------------------------11 4.3 蓝牙模块设计-------------------------------------------------------------------13 4.4 电源电路设计--------------------------------------------------------------------15 4.5 电路板设计----------------------------------------------------------------------16 第五章设计的元器件清单--------------------------------------------------16 第六章调试结果分析 --------------------------------------------------------17 6.1 各模块功能调试----------------------------------------------------------------17 6.2设计的总结----------------------------------------------------------------------18 参考文献-------------------------------------------------------------------------19附录A----------------------------------------------------------------------------20 附录B----------------------------------------------------------------------------21 附录C----------------------------------------------------------------------------22第一章前言NC第二章方案比较与论证本次毕业设计主要是针对蓝牙智能小车进行分析、设计和制作。

机电一体化论文基于51单片机的智能小车设计大学毕设论文

机电一体化论文基于51单片机的智能小车设计大学毕设论文

基于51单片机的智能小车设计一、课题背影及实验目的随着人类科技的发展,社会的进步,科技产品在人们日常生活中越来越不可或缺,影响也越来越大,人们对自动化的要求也不断提高。

自动化概念的提出,使其不但在工业上已经充分应用,人们的日常生活在被它悄然影响。

而汽车作为人们日常生活中最为常见的交通工具,人们迫切希望汽车自动化、智能化的实现。

基于51单片机的智能小车课题的提出就是希望通过简单课题的实验,验证智能汽车方案的可行性,从而为以后智能化系统在汽车上的应用有提前的了解。

实验以单片机小车实验板为底板,加装红外传感器、超声波传感器,以51单片机为核心对信息进行处理,从而实现循迹、避障功能,和可控行驶。

二、总体方案设计1、设计思路车体上搭载电源模块、电机驱动模块。

单片机系统模块、循迹模块、避障模块,基本框架图如图2、各模块的分析选择单片机电路的设计一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路;二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、A/D、D/A转换器等。

单片机的功能特性描述单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。

概括的讲:一块芯片就成了一台计算机。

它的体积小、质量轻、价格便宜。

单片机内部也有和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件。

单片机是一种集成电路芯片,采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

本课题选择了STC公司的生产的STC89C52单片机。

基于51单片机的蓝牙小车

基于51单片机的蓝牙小车

《专业综合设计与实验》课程设计报告书2019年11月课程设计报告书1.硬件电路设计1.1总体设计智能车主要现实远程来控制智能车的运动。

其主要模块为:单片机模块、无线通讯模块、电机驱动模块。

其主要结构框图如下图1所示。

图1主要结构框图总体仿真电路图:图2 总体仿真电路图单片机最小系统原理图:图3 复位电路与晶振电路图4 单片机最小系统原理图1.2 L298N驱动模块及原理介绍蓝牙小车采用直流电机的驱动采用L298N驱动模块,其原理图如图4所示:图5 L298N驱动模块原理图L298N驱动模块采用ST公司原装全新的L298N芯片,采用SMT工艺稳定性高,采用高质量铝点解电容,使电路温度工作。

可以直接驱动两路3-16V直流电机,并提供了5V输出接口(输入最低只要6V),可以给5V单片机电路供电(低纹波系数),支持3.3V MCUARM控制,可以方便的控制电流电机速度和方向,是智能小车必备利器。

表1 驱动状态编码表1.3蓝牙模块蓝牙模块支持短距离无线传输,可以通过手机与蓝牙模块的配对实现对小车的无线控制。

本小车采用的是HC-05蓝牙芯片,在HC-05芯片里已经将蓝牙协议封装好,只需要通过串口通信实现上位机(手机)与下位机(51单片机)的无线通信。

蓝牙模块中蓝牙芯片的TXD与RXD分别于单片机的RXD与TXD相接,VCC与单片机电源,GND与单片机GND相连。

HC-05使用R1114作为稳压芯片,将单片机提供的5V电压转换为3.3V的低电压,为蓝牙芯片供电。

图6 蓝牙连接原理图2.软件设计在本次设计中,主程序主要是在单片机的控制下,对蓝牙模块输入的信息进行存储分析,来控制电机驱动,以达到控制小车的前进、后退、左转、右转。

在这个过程中,单片机首先进行初始化,包括设置单片机各个端口的方向,各个变量的初始化,以及单片机振荡频率的校准等。

单片机定时对蓝牙模块串口读数据,如果串口的数据读出,则对读出的数据进行分析,读出的数据如果为g、b、l、r、s则分别对应小车的前进、后退、左转、右转、图8 实物连接图图9 APP遥控界面截图以上是蓝牙小车静止时的图片,当手机客户端按下前进按钮后,小车两个轮子都前进;当手机客户端按下后退按钮时,小车两个轮子都后退;当手机客户端按下左转按钮后,小车做轮后退右轮前进;当手机客户端按下右转按钮时,小车左轮前进右轮后退。

基于51单片机的多功能蓝牙循迹避障测距小车

基于51单片机的多功能蓝牙循迹避障测距小车

基于51单片机的多功能蓝牙循迹避障测距小车的设计与制作摘要:无线遥控的机器人小车在危险环境作业、人员搜集等应用中可发挥特殊的作用。

本次设计选择基于蓝牙遥控的多功能智能小车为对象。

设计了该系统的硬件电路原理图,控制系统以STC89C52单片机为主控芯片,采用BTS7970为电机驱动芯片、蓝牙无线串口模块、红外光电传感器模块、舵机模块、超声波发射与接收模块等构成外围扩展电路。

将自制的控制电路、控制程序和四轮小车机械结构相结合,制作多功能机器人小车。

实验调试实现了智能小车的蓝牙无线遥控、自动避障、自动循迹、自动三向测距等功能。

关键词:单片机;蓝牙遥控;舵机;光电传感器目录第一章前言 (3)第二章方案比较与论证 (3)2.1总体方案设计 (3)2.2无线模块设计 (4)2.3显示模块设计 (4)2.4循迹模块设计 (5)2.5避障模块设计 (5)第三章智能车机结构分析 (5)第四章控制系统电路设计 (6)4.1 MCU的选型 (6)4.2 电机驱动电路设计 (6)4.3 红外传感器模块设计 (7)4.4 蓝牙模块设计 (7)4.5 舵机模块设计 (7)4.6 超声波模块设计 (8)4.7 电源电路设计 (8)第五章调试结果分析 (8)5.1 各模块功能调试 (8)5.2 总结 (9)致谢 (10)参考文献 (11)附录部分程序 (12)第一章前言随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。

遥控小车起源于美国,由于政府对无线遥控小车研发的资助以及相关资助的推动作用,日本、美国、德国等工业大国在遥控小车技术上占据着明显优势。

我国的无线遥控小车研究工作始于20世纪中后期,在国家的863、973等技术发展计划的重点支持下,国内已大范围地进行无线遥控小车的研究。

全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究,但是与国际先进还存在一定的差距。

可见其研究意义很大。

基于51单片机的蓝牙遥控小车

基于51单片机的蓝牙遥控小车

基于单片机的智能避障遥控小车目录第一章绪论 (1)1.1 研究背景和意义 (1)第二章系统框架及软硬件结构设计 (2)2.1 系统要求 (2)2.2 系统整体算法流程 (2)2.3 总体任务设计 (3)2.4 整体硬件结构设计 (4)2.5 整体软件结构设计 (4)第三章模块的详细设计 (5)3.1 L293D电机驱动模块 (5)3.1.1模块介绍 (5)3.1.2 PWM脉冲控制原理 (5)3.1.3 脉冲控制代码 (6)3.2 HC05蓝牙模块 (7)3.2.1 模块简介 (7)3.2.2 蓝牙串口程序说明 (7)3.2.3 模块引脚说明 (8)3.3 USB转TTL模块 (9)第四章系统功能设计与实现 (10)4.1 安卓手机蓝牙遥控的设计与实现 (10)4.1.1 设计基本思路 (10)4.1.2 遥控任务分配 (10)4.2.3 蓝牙遥控操作流程 (11)第五章软硬件调试 (13)5.1 硬件调试 (13)5.2 软件调试 (13)第一章绪论1.1 研究背景和意义智能化无处不在。

各种智能化设备在不同的领域中发挥着自己的特长,而在家用方面的智能有着相当重要的意义。

本次所设计的智能小车系统包含着对周围环境的检测、舵机控制以及短距离无线遥控等的功能,它需要实现微控制器、多传感器技术、蓝牙遥控、机械结构原理、数字逻辑、自动控制等各学科技术内容的渗透融合。

智能小车通过其上部搭载的89C52芯片作为核心控制器,通过多种传感器来获取周围环境信息并将采集到的信息输送给CPU,然后由CPU来给各个部分下达相对应的指令。

智能小车不仅价格低廉,而且甚至能够担任人类难以从事的任务,它在工业、农业以及社会生产生活等许多领域都起到了重要作用。

本次课题设计中所采用到的短距离无线遥控、单片机控制原理、多传感器技术、自动避障技术等等。

现在在工业制造、农业生产、国家安全、军事武器,医疗保健、太空探测等许多领域都日益发挥着其作用,在军事侦察、反恐、防暴、防核化等高危任务方面、环境污染检测方面和在恶劣环境中均有着非常好的发展前景,从这些方面可知本课题研究意义非凡。

基于51单片机的手机蓝牙遥控小车设计(程序元件清单实物图)

基于51单片机的手机蓝牙遥控小车设计(程序元件清单实物图)

基于51单片机的手机蓝牙遥控小车设计(程序元件清单实物图)本人一直想做一个遥控车,终于今天实现了,跟大家分享一下。

一、元件清单1、某宝购买一个智能小车底盘(本人车是四驱的,因此有四个电机,两块亚克力板和一些配件螺丝)2、L298n模块两个(一个298控制两个电机)3、HC-06蓝牙模块4、电池盒跟18650电池3个5、单片机最小系统6、杜邦线至少12根,当然越多越好7、若干根导线(连接电机用的,以及电池盒连到L298N跟单片机)二、制作过程首先,先去了解一下L298N的接线,我当时也是懵逼了好久,反正摸索着也会了,一般店家都有资料。

然后是蓝牙模块的使用,拿到蓝牙模块后,有开发板的话(没有就用单片机的烧录器),先按照TXD接TXD,RXD接RXD,打开电脑的串口助手与蓝牙构建通信,打开AT,发送AT指令集,比如设设波特率,改个名字,改个配对的密码。

但通过蓝牙与单片机连接通信的时候,就是TXD接RXD了。

最后一个就是,本人在接线的时候经常碰壁。

比如,你以为接好的线他其实没接好,根本没通,还是拿万用表B了才知道。

因为本人忘了买电池盒,所以我是用12V的直流电接着的,导致遥控车拖着跟电线。

三、实物图(拖着跟电线以及充电宝供电的车不过我没通电)资料内包括L298N的部分资料,以及蓝牙的说明书(看AT指令集就好)和源程序。

app:单片机源程序如下:1./*手机蓝牙遥控小车 APP可以在应用市场搜蓝牙串口助手2.左转右转大概是90度我的是四驱的,如果是只有一个l298N 的话就把带2的删了3.pwm有十级变速*/4.5.6.#include <reg52.h>7.8.#define Left_moto2_pwm P0_4 //接驱动模块ENA 使能端,输入PWM信号调节速度左后轮9.#define Right_moto2_pwm P0_5 //接驱动模块ENB 右后轮10.#define Left_moto_pwm P1_4 //接驱动模块ENA 使能端,输入PWM信号调节速度左前轮11.#define Right_moto_pwm P1_5 //接驱动模块ENB 右前轮12.#define uchar unsigned char13.#define uint unsigned int14.15.sbit P0_4=P0^4; //定义P0_416.sbit P0_5=P0^5; //定义P0_517.sbit P1_4=P1^4; //定义P1_418.sbit P1_5=P1^5; //定义P1_519.20./*电机驱动IO定义*/21.sbit IN1 = P1^2; //为1 左电机反转前轮22.sbit IN2 = P1^3; //为1 左电机正转前轮23.sbit IN3 = P1^6; //为1 右电机正转前轮24.sbit IN4 = P1^7; //为1 右电机反转前轮25./*sbit EN1 = P1^4; //为1 左电机使能26.sbit EN2 = P1^5; //为1 右电机使能 */27.28.sbit IN5 = P0^2; //为1 左电机反转后轮29.sbit IN6 = P0^3; //为1 左电机正转后轮30.sbit IN7 = P0^6; //为1 右电机正转后轮31.sbit IN8 = P0^7; //为1 右电机反转后轮32./*sbit EN3 = P0^4; //为1 左电机使能后轮33.sbit EN4 = P0^5; //为1 右电机使能后轮 */34.35.bit Right_moto_stop=1;36.bit Left_moto_stop =1;37.unsigned int time=0;38.int pwm=1;39.40.#define left_motor_en EN1 = 1 //左电机使能41.#define left_motor_stops EN1 = 0 //左电机停止42.#define right_motor_en EN2 = 1 //右电机使能43.#define right_motor_stops EN2 = 0 //右电机停止44.45.#define left_motor2_en EN3 = 1 //左电机使能后46.#define left_motor2_stops EN3 = 0 //左电机停止后47.#define right_motor2_en EN4 = 1 //右电机使能后48.#define right_motor2_stops EN4 = 0 //右电机停止后49.50.51.#define left_motor_go IN1 = 0, IN2 = 1//左电机正传52.#define left_motor_back IN1 = 1, IN2 = 0//左电机反转53.#define right_motor_go IN3 = 1, IN4 = 0//右电机正传54.#define right_motor_back IN3 = 0, IN4 = 1//右电机反转55.56.#define left_motor2_go IN5 = 0, IN6 = 1//左电机正传57.#define left_motor2_back IN5 = 1, IN6 = 0//左电机反转58.#define right_motor2_go IN7 = 1, IN8 = 0//右电机正传59.#define right_motor2_back IN7 = 0, IN8 = 1//右电机反转60.61.unsigned char pwm_val_left =0;//变量定义62.unsigned char push_val_left =0;// 左电机占空比N/1063.unsigned char pwm_val_right =0;64.unsigned char push_val_right=0;// 右电机占空比N/1065.66.67.void delay(uint z)68.{69.uint x,y;70.for(x = z; x > 0; x--)71.for(y = 114; y > 0 ; y--);72.}73.74.75.76.//蓝牙初始化77.void UART_INIT()78.{79.SM0 = 0;80.SM1 = 1;//串口工作方式181.REN = 1;//允许串口接收82.EA = 1;//开总中断83.ES = 1;//开串口中断84.TMOD = 0x20;//8位自动重装模式85.TH1 = 0xfd;86.TL1 = 0xfd;//9600波特率87.TR1 = 1;//启动定时器188.}89.90./************************************************************************/91.void run(void) //pwm调速函数92.{93.push_val_left =pwm; //PWM 调节参数1-10 1为最慢,10是最快改这个值可以改变其速度94.push_val_right =pwm; //PWM 调节参数1-10 1为最慢,10是最快改这个值可以改变其速度95.if(pwm==10) pwm=0;96.if(pwm==0&&pwm<0) pwm=0;97.98.}99.100.101./******************************************************** ****************/102./* PWM调制电机转速 */ 103./******************************************************** ****************/104.105.106./* 左侧电机调速 */107./*调节push_val_left的值改变电机转速,占空比 */108.void pwm_out_left_moto(void)109.{110.if(Left_moto_stop)111.{112.if(pwm_val_left<=push_val_left)113.{ Left_moto_pwm=1;114.Left_moto2_pwm=1; }115.else116.{ Left_moto_pwm=0;Left_moto2_pwm=0; }117.118.if(pwm_val_left>=10)119.pwm_val_left=0;120.}121.else { Left_moto_pwm=0;Left_moto2_pwm=0; }122.}123./******************************************************** **********/124./* 右侧电机调速 */125.void pwm_out_right_moto(void)126.{127.if(Right_moto_stop)128.{129.if(pwm_val_right<=push_val_right)130.{ Right_moto_pwm=1;131.Right_moto2_pwm=1; }132.else133.{Right_moto_pwm=0;134.Right_moto2_pwm=0;}135.if(pwm_val_right>=10)136.pwm_val_right=0;137.}138.else {Right_moto_pwm=0;Right_moto2_pwm=0; } 139.}140./***************************************************/141.///*TIMER0中断服务子函数产生PWM信号*/142.void timer0()interrupt 1 using 2143.{144.TH0=0XF8; //1Ms定时145.TL0=0X30;146.time++;147.pwm_val_left++;148.pwm_val_right++;149.pwm_out_left_moto();150.pwm_out_right_moto();151.}152.153.//小车前进154.void forward()155.{156.ET0 = 1;157.run(); //pwm 程序158.left_motor_go; //左电机前进159.right_motor_go; //右电机前进160.left_motor2_go; //左电机前进后轮161.right_motor2_go; //右电机前进后轮162.}163.164.void left_go() //左转165.{166.ET0 = 1;167.run();168.left_motor_back;169.right_motor_go;170.left_motor2_back;171.right_motor2_go;172.delay(700);173.forward();174.}175.//右转176.void right_go()177.{178.ET0 = 1;179.run();180.delay(50);181.right_motor_back;182.left_motor_go;183.right_motor2_back;184.left_motor2_go;185.delay(700);186.forward();187.}188.//小车左转圈189.void left()190.{191.ET0 = 1;192.run();193.delay(50);194.right_motor_go; // 右电机前进195.left_motor_back; // 左电机后退196.right_motor2_go; // 右电机前进197.left_motor2_back; // 左电机后退198.}199.200.//小车右转圈201.void right()202.{203.ET0 = 1;204.run();205.left_motor_go;206.right_motor_back;207.left_motor2_go;208.right_motor2_back; 209.}210.211.//小车后退212.void back()213.{214.ET0 = 1;215.run();216.left_motor_back;217.right_motor_back; 218.left_motor2_back;219.right_motor2_back; 220.}221.222.//小车停止223.void stop()224.{225.ET0 = 0;226.P1=0;227.P0=0;228.}229.230.231.//串口中断232.void UART_SER() interrupt 4 233.{234.if(RI)236.RI = 0;//清除接收标志237.switch(SBUF)238.{239.case 'g': forward(); break;//前进240.case 'b': back(); break;//后退241.case 'l': left(); break;//左转圈242.case 'r': right(); break;//右转圈243.case 's': stop(); break;//停止244.case 'z': left_go(); break;//左转行驶245.case 'y': right_go(); break;//右转行驶246.case 'p': pwm++;break; //加速247.case 'c': pwm--;break; //减速248.}249.250.}251.}252.253.void main()254.{255.TMOD=0X01;256.TH0= 0XF8; //1ms定时257.TL0= 0X30;258.TR0= 1;259.ET0= 1;260.EA = 1;261.UART_INIT();//串口初始化262.while(1);263.}264.。

基于51单片机的蓝牙小车程序

基于51单片机的蓝牙小车程序

基于51单片机的蓝牙小车程序程序中有我写的注释,看不懂程序的话,可以参考。

#include<reg52.h>#define uchar unsigned char#define uint unsigned intuint PWM1,PWM2,num1=0,num2=0;sbit IN1=P2^1;//左电机输入端1sbit IN2=P2^2;//左电机输入端2sbit IN3=P2^3;//右电机输入端1sbit IN4=P2^4;//右电机输入端2sbit ENA=P2^0;//右电机使能控制端sbit ENB=P2^5;//左电机使能控制端uint bht;//蓝牙uint bht_mode=0,forward=0,backward=0,left=0,right=0,stop=0;void Time0init() //定时器0的初始化函数,用于产生PWM,控制小车的速度{TH0=0xff;//定时0.1msTL0=0xa3;TMOD=0x01;//工作方式1EA=1;//开总中断ET0=1;//开定时器中断TR0=1;//开定时器0中断}void time0() interrupt 1//定时计数器0{TH0=0xff;TL0=0xa3;num1++;num2++;if(num1==100) //PWM的周期为100*0.1=10msnum1=0;if(num2==100)num2=0;if(num1<PWM1)ENA=1;//打开右电机使能控制端if(num2<PWM2)ENB=1;if(num1>PWM1)ENA=0;//关闭右电机使能控制端if(num2>PWM2)ENB=0;}void UsartInit()//定时计数器1的初始化子函数{TH1=0XFA;//计数器初始值设置,注意波特率是9600的TL1=0XFA;SCON=0X50;//设置为工作方式1ES=1;//打开接收中断EA=1;//打开总中断TR1=1;//打开计数器TMOD|=0X20;//设置计数器工作方式2 (特别注意第二次设置工作方式时要加或)PCON=0X80;//波特率加倍}void usart() interrupt 4//串口中断子函数{bht=SBUF;//出去接收到的数据RI = 0;//清除接收中断标志位SBUF=bht;//将接收到的数据放入到发送寄存器while(!TI);//等待发送数据完成TI=0;if(bht=='Y')//开关控制函数{bht_mode=1;//允许发送数据forward=0;backward=0;left=0;right=0;stop=0;}if(bht=='N')//开关控制函数{bht_mode=0;forward=0;backward=0;left=0;right=0;stop=0;}if(bht_mode==1){if(bht=='f')//前进控制{forward=1;backward=0;left=0;right=0;stop=0;}else if(bht=='b')//后退控制{forward=0;backward=1;left=0;right=0;stop=0;}else if(bht=='l')//左转控制{forward=0;backward=0;left=1;right=0;stop=0;}else if(bht=='r')//右转控制{forward=0;backward=0;left=0;right=1;stop=0;}else if(bht=='s')//停止控制{forward=0;backward=0;left=0;right=0;stop=1;}}else{forward=0;backward=0;left=0;right=0;stop=1;}}void forwardg()//前进函数{IN1=1;IN2=0;IN3=1;IN4=0;PWM1=25;//右轮PWM2=20;}void backwardg()//后退函数{IN1=0;IN2=1;IN3=0;IN4=1;PWM1=20;PWM2=20;}void leftg()//左转函数{IN1=1;IN2=0;IN3=1;IN4=0;PWM1=10;PWM2=20;}void rightg()//右转函数{IN1=1;IN2=0;IN3=1;IN4=0;PWM1=20;PWM2=10;}void stopg()//停止函数{IN1=1;IN2=1;IN3=1;IN4=1;PWM1=0;PWM2=0;}void drive(){if(bht_mode==1){if(forward==1)forwardg();if(backward==1)backwardg();if(left==1)leftg();if(right==1){rightg();}if(stop==1){stopg();}}else{stopg();}}void main(){Time0init();UsartInit();while(1){drive();}}。

基于51单片机的蓝牙循迹小车

基于51单片机的蓝牙循迹小车

基于51单⽚机的蓝⽛循迹⼩车51单⽚机课程设计做了辆蓝⽛⼩车,下⾯是对课程设计内容的⼀些总结基于51单⽚机的蓝⽛循迹⼩车硬件模块L298N具体如图所⽰:⼯作原理简介:可以直接驱动两路 3-16V 直流电机,并提供了 5V 输出接⼝(输⼊最低只要 6V),可以给 5V 单⽚机电路系统供电。

输⼊电压最好是7v以上,输⼊电压低了会导致⼀系列问题,在后⾯有具体实践总结具体应⽤:可以⽅便的控制直流电机速度和⽅向,也可以控制 2 相步进电机,5 线 4 相步进电机。

管脚应⽤可以参考如图所⽰:①板载5V输出使能:如果跳线帽接上,则5v端⼦可以输出电压,若跳线帽没有街上,则12v输⼊端⼦没有作⽤,只能5v输⼊⼝输⼊(如果不接上直接废了,5v 输⼊基本不能使电机模块正常⼯作)②AB通道使能:端⼦接在上⾯表⽰AB通道⼀直保持⾼电平,处于使能状态,并且电压和5v输⼊端⼝电压相同;若处于没有使能状态,直接影响到输⼊端,让其⽆法⼯作!③单⽚机IO控制输⼊ + 马达AB输出 :顾名思义,四个IO输⼊端⼝和单⽚机四个IO⼝相连,然后通过电机驱动模块(双H桥电路)马达AB输出,以获得更⼤的驱动直流减速电机的能⼒,带动电机转动!B站直接搜L298N电机驱动模块,有视频详情介绍问题以及解决⽅案下⾯是⼀些使⽤L298N驱动电机的⼀些问题以及解决⽅法总结问题:1.直流减速电机不能正常转动,⼀个轮⼦只能单⽅向转动2.使能端⼝帽摘下来后,pwm信号输⼊问题3.供电问题解决:1.起初⽤4节南孚电池供电,⽤万⽤表测电压⼩于4.8v(电池快没啥电了),更换四节电池后⽤万⽤表测得4.9v+,上⾯出现的问题解决了2.输⼊端电压⼩于7v(⽤得四节南孚电池6v不到供电),使能电压和5v输⼊端⼦的电压相同,经测量5v端⼝电压只有3.8v左右,故使能电压就只有3.8v左右了,对PWM输出使能有⼀定影响3.L298N电机驱动中有稳压降压模块,如果供电⾜够⼤(⼤于7v),那么稳压降压模块会发挥作⽤,使得5v输⼊端⼦、使能端⼦、马达电机都能有稳定的5v⾼电平输出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 6 •内燃机与配件
基于51单片机的两驱蓝牙小车系统设计
王庐山
(湖北工业职业技术学院电子工程系,十堰442000)
摘要:选用51单片机作为主控芯片,采用R200—体化红外光电对管构成五路循迹,通用的红外对管构成三路避障,同时还具有 超声波避障、舵机摇头的功能。

电机驱动采用LN293D,可进行PWM控制小车的转速,电源部分采用两节3.7V锂电池供电,与其它外 围电路一起构成智能小车的硬件系统。

采用C语言模块化编程,提高开发效率。

智能小车能够完成循迹、避障、超声波测距、舵机摇头 避障、红外遥控、蓝牙控制等功能。

四位数码管显示功能序号,用按健或遥控器可以选择切换小车功能。

关键词:51单片机;循迹、避障;PWM控制;蓝牙;红外遥控;超声波
0引言
智能小车越来越受学生的喜爱,制作智能小车不仅可 以锻炼学生的动手能力,还可以提高学生的学习兴趣。

没 有一款电子产品能像智能小车一样把很多的知识融合在 一起,既可以练习电子产品装配与调试技术,又可以学习 51单片机技术,是典型的软硬件都可以学习的教学实训 好载体。

因此我们设计了这款多功能小车。

让学生在玩中 学,在学中玩。

1智能小车硬件设计
1.1系统的总体设计
智能小车的CPU采用STC89C52R C单片机,该CPU 在高校教学中应用最广,学习非常熟悉,参考资料多,降低 了设计难度,便于学生开发。

五路循迹和三路避障用P0 □八个引脚,P2 □用于对 小车左右两个电机的PWM控制,超声波模块接在P3.2和P3.4 □,舵机接在P3.6 □,蓝牙模块接在P3.0和P3.1 □,红外遥控接在P3.3 □,数码管的显示采用595控制,接在 P1 □。

设置有设置、+、三个功能按键,用于选择小车的功 能。

用四位数码管显示小车当前的功能。

1.2循迹与避障电路设计
5路循迹采用RPR220光电传感器来检测信号,3路 避障采用红外发射与接收对管作为传感器来检测信号。

循 迹和避障采用LM324来处理信号。

LM324为四路电压比 较器。

传感器在白线上时,由于U_=V,.抑0,U+=VS…抑2V,这时 U+>U_,故VXFUF1 (高电平);循迹指示灯不亮;传感器在 黑线上时,由于 U_=V>2V,U+=Vs….i=2V,这时 U+<U_,故 V jF U,=0(低电平);循迹指示灯亮。

1.3电机驱动电路
L293D将2个H-桥电路集成到1片芯片上,这就意 味着用1片芯片可以同时控制2个电机。

每1个电机需要 3个控制信号EN12JN U IN2,其中EN12是使能信号,IN1、IN2为电机转动方向控制信号,IN1、IN2分别为1,0 时,电机正转,反之,电机反转。

选用一路PWM连接EN12 引脚,通过调整PWM的占空比可以调整电机的转速。

1.4蓝牙电路设计
小车提供蓝牙接□电路,我们采用的是蓝牙转串口 模块,蓝牙模块接在CPU的串□ 1上,配置好蓝牙模块的
作者简介:王庐山(1975-)湖北十堰人,湖北工业职业技术学院 电子工程系,讲师,研究方向为电子产品设计与制作。

工作方式后,就可以用手机的APP来控制小车了。

2智能小车软件设计
2.1小车主程序程序设计
小车具有红外循迹、红外避障、舵机摇头超声波避障、蓝牙控制、红外遥控功能,采用按键来选择功能,数码管显 示。

每次只有一个功能起作用,方便调试。

2.2小车避障程序设计
避障部分程序设计的思想与循迹是一样的。

当左右二 个红外检未测到障碍物时,就前进;当右边红外检测到障 碍物时,开始向左转一定的角度;当左边红外检测到障碍 物时,开始向右转一定的角度。

2.3 红外遥控小车程序设计
单片机根据接收的红外遥控码,来控制小车的运动状 态。

采用MP3遥控器控制小车,当按下红外遥控器上的 “CH”按键时,小车一直向前运动(前进),数码管显示红外 键码0001;当按下红外遥控器上的“CH+”按键时,小车一 直向后运动(后退),数码管显示红外键码0002;当按下红 外遥控器上的“快倒”按键时,小车向左转45度,数码管显 示红外键码0003;当按下红外遥控器上的“快进”按键时,小车向右转45度,数码管显示红外键码0004;当按下红 外遥控器上的“暂停”按键时,小车停止转动。

数码管显示 红外键码0000。

2.4 蓝牙控制小车程序设计
蓝牙控制是通过手机的蓝牙来控制小车的运动,先在 手机上安装小车蓝牙APP软件,打开手机的蓝牙功能,同时给小车上电,用手机的蓝牙搜索蓝牙设备,小车上蓝牙 模块的名字为HC06,选择后进行连接,连接成功后,手机 的A PP上会有提示。

这样就可以用手机来控制小车了,当按下前进时,手机的蓝牙A PP给小车发送ONA数据,当按下后退时,手机的蓝牙A PP给小车发送ONB数据,当按下左转时,手机的蓝牙A PP给小车发送ONC数据,当按下右转时,手机的蓝牙A PP给小车发送OND数据,当按下停止时,手机的蓝牙APP给小车发送ONF数据。

单片机接收到数据后去控制小车作相应的运动。

参考文献:
「11谢富珍.基于51单片机的智能小车设计「J1.新余学院学报,2015,20(4).
「2]黄春平.仪表技术「M1.2011.
「3]文家雄.智能循迹小车设计方案「J1.数字通信世界,2015 ( 9) .。

相关文档
最新文档