【立创开发板】钴钥金的智能小车 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

专业版 【立创开发板】钴钥金的智能小车

简介:基于梁山派开发板的智能小车设计,该智能小车具有避障、循迹、蓝牙遥控等功能,并使用按键来切换模式。

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2023-01-10 22:37:13
更新时间: 2023-06-06 00:13:51
描述
# 一、功能介绍 1. LED:模拟汽车的灯光系统 2. 按键:切换模式 3. 有源蜂鸣器:模拟汽车鸣笛 4. ADC采集:检测电池电压 5. 超声波测距:超声波避障让小车行驶时躲避障碍物 6. 红外光电对管:实现小车循迹功能 7. 蓝牙模块:通过手机APP控制小车 # 二、总体设计方案 本设计使用了两节14500锂电池共7.4V作为系统供电,经降压到5V后给单片机系统进行供电,单片机、按键电路、循迹电路、避障电路、LED车灯、有源蜂鸣器、蓝牙、以及电机驱动电路进行连接,电路组成系统框图如下: ![微信图片_20230226182723.png](//image.lceda.cn/pullimage/PYRpIem5T3kkaPrZsa4LkU87EIQcaw6x6IlBO41F.png) 使用立创梁山派开发板作为智能小车的主控制器来驱动智能小车的直流电机工作,电机驱动芯片RZ7899微型集成电路电机驱动芯片,配合单片机使用实现四个直流电机运行和pwm软件调速,通过改变直流电机占空比的电压来改变平均电压的数值,从而改变电机的转速变化来驱动智能小车运行。智能小车行驶的状态有:前进、后退、左转、右转和停止。当轮式机器人在行驶过程中遇到障碍物,小车会自动停止或转向。通过蓝牙作为传输媒介,以上位机或手机作为控制端来控制小车的运动。 主要设计步骤有: (1)根据提出方案的功能需求对智能小车进行结构设计。 (2)根据主控制器的基本结构和特点,设计总体硬件电路模块。总体硬件电路模块的设计包括电机驱动电路设计、红外循迹电路设计、超声波避障电路设计、无线传输电路设计等。 (3)选择符合系统设计需求的系统软件,并在该软件的基础上编写驱动代码和应用软件代码。针对系统功能的具体要求,从系统信号稳定传输的角度出发,对电机驱动、调速、红外避障模块的改造等进行详细的分析与设计,并完成代码的编写与调试。 (4)把硬件开发板和软件平台结合起来,对视频监控智能小车整个系统进行了整体测试。对测试中出现的问题进行相关的改进工作,进一步提高系统工作的可靠性和稳定性。 # 三、硬件介绍 ## 3.1 电源输入 电源模块在智能小车的运行过程中,是整个电路的重要组成部分,需要给单片机、电机、各大模块及传感器供电。在电源的选用上,为了保证系统的可靠供电,该项目选用了两节可充电的14500锂电池,经过一个 HE6250MPR 低压线性稳压器后给单片机和外围器件提供电源,而电机驱动的芯片由电池7.4V直接提供。 ![image.png](//image.lceda.cn/pullimage/RtRUWQ3t7ZRVluIbMS5q8RF2YS45mqHLss5ewZvG.png) ## 3.2 电机驱动电路 单片机直接输出的电流太小,不足以带动小车。电机电路采用了 RZ7899 驱动芯片,该芯片外围电路简单。配合单片机PWM输出可以控制电机转速。 ![image.png](//image.lceda.cn/pullimage/NXqvzK0uQT2QXs3WVe7PUGgiZn04ngeuHLkoCqNr.png) ## 3.3 循迹电路 循迹电路都是采用 LM393 SOP-8 小封装电压比较器与 ITR8307 红外对管进行设计。小车循迹一般是在白色地板上沿着一根黑线行走,利用红外光在不同颜色的反射情况进行识别。它相当于一个红外电子开关,检测到黑线输出低电平,一般情况下为高电平。当检测到黑线时,红外管发出的红外信号经红外接收管接收回来后,经集成的芯片放大,比较后,输出一低电平,点亮模块上的LED发光管,同时可以输出一个低平信号,信号可以作为单片机的信号输入检测控制外部各种驱动模块之用。 ![image.png](//image.lceda.cn/pullimage/UyRH2ZwH3vc4EUgISmxKi3Lle60TaESFkIGk7z8x.png) ## 3.4 其他电路 超声波模块接口 ![image.png](//image.lceda.cn/pullimage/OEN2rDHAJaL9Z1V8gz3IdUy1emLd8tJqav6EbKMI.png) LED电路 ![image.png](//image.lceda.cn/pullimage/2SNAqv4iiFxy5YHWYM9rQqWnm70V6RO3e41pS6K0.png) 蜂鸣器驱动电路 ![image.png](//image.lceda.cn/pullimage/K5pCur4YPelgo5X0f5xT1nGgm3UTGotN1qLVpbb7.png) 蓝牙模块接口 ![image.png](//image.lceda.cn/pullimage/OMdSciK0mktsRWeJpXRw0sOy4ZRDw3qVjy9rvwxF.png) 按键电路 ![image.png](//image.lceda.cn/pullimage/qRukH5Eydx3OG995J4q12aAslr33UNneHRet5nAN.png) ADC电源电压采集电路 ![image.png](//image.lceda.cn/pullimage/oPzPc5SR1VdEwICSXrOZkh4m0hEjSyLgFjzxWKg9.png) # 四、软件设计 ## 4.1 电机驱动程序 电机的驱动主要是对RZ7899驱动芯片的操作,运用PWM调速方法完成对电机进行驱动控制。脉冲宽度调制(PWM),简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。PWM波的产生可以通过时钟频率、自动重装值等参数进行设置,从而调节PWM波的占空比和输出频率,即对脉冲宽度的控制,PWM原理如图: ![image.png](//image.lceda.cn/pullimage/VvNbMIlG0R7UUmVeMuk2deUKfBzbVlw10dhUHITK.png) 由图我们先假定定时器工作正处于向上计数PWM模式,且当CNT小于CCRx 时,输出0,当CNT大于等于CCRx 时输出 1。那么就可以得到如上的PWM示意图:当CNT值小于CCRx的时候,IO输出低电平(0),当CNT值大于等于CCRx的时候,IO输出高电平(1),当CNT达到ARR值的时候,重新归零,然后重新向上计数,依次循环改变CCRx的值,就可以改变PWM输出的占空比,改变ARR的值,就可以改变PWM输出的频率,这就是PWM输出的原理。 ![image.png](//image.lceda.cn/pullimage/AeCLhjOnqme4M4PcLOb3kFZxO4pMOfpwOnXZnFzN.png) 电机具体运行方式如图所示: ![image.png](//image.lceda.cn/pullimage/0c1nzyvOWwpzBhAWj0FHO6W7RECqzg8y3M7NpvAA.png) 电机驱动程序使用了单片机定时器的PWM功能,通过输出频率及占空比可变的PWM波来驱动电机。具体实现方法为:首先,使能定时器和相关IO口时钟。其次,对定时器进行初始化并设置其自动重转载值和预分频值,将计数模式设置为向上计数模式。最后,再使能预装载寄存器,使能定时器,通过改变比较值CCRX,达到不同的占空比效果。 ## 4.2 红外循迹程序 红外循迹模块选用的红外避障传感器由发射管与接收管组成的,发射管发射红外线,当检测到黑线时,接收管接受到红外线反射信号,经过比较器后,输出一个低电平信号送给单片机,单片机进行一系列的处理分析,协调小车两轮工作,完成循迹的动作。红外避障的控制程序的基本原理为首先检测是否有黑线。当检测到有黑线时,判断是做左边的传感器检测到的还是右边的传感器检测到的,若是左边,则小车需右转。如过是右边的传感器检测到的,则小车应该左转,若中间的传感器检测到则前行。 ## 4.3 超声波避障程序 超声波模块时利用声波在空气中传输的为原理而设计的。模块通过trig引脚启动声波,此时开始计时,当发出的声波遇到障碍物就会反弹,反弹回来的声波会被超声波模块的探头接收,此时echo引脚状态将发生改变,计时停止,根据声波在控制中传播速度,就可以很方便计算出超声波距离障碍物的距离。把超声波传感器计算出的距离传回单片机,单片机进行一系列的处理分析。当某一段距离有障碍物时则小车先停止,前灯闪烁,然后后退、左转。直到前方一段距离内无障碍物时继续前行。 ## 4.4 蓝牙遥控程序 单片机接收并读取蓝牙发送来的数据包从而进行下一步动作,那么就可以给不同动作(例如:前进、转弯、加速、减速)设置不同的数据包,这样单片机如果接收到某个数据包,接下来就会执行该数据包对应的动作,从而完成用蓝牙对单片机进行调速。 # 五、实物展示 视频发布在哔哩哔哩视频平台上。 链接:https://www.bilibili.com/video/BV15j411F79v/?vd_source=d218a5e9780a128d978f6ea26dedb787#reply154007481600 UID:296891597 # 六、 心得体会 在参加本次训练营的时候,可能是因为有STM32的基础,对立创开发板上手很快,但硬件方面是我的拦路虎,在制作和调试小车的时候出现了很多了问题,让我出现了好几次想要放弃的念头。比如烧录器的线断了,起初我以为黑线是gnd,所以焊在gnd焊盘上了、开发板烧了、电池没电了没充电器,那个时候没有时间买了跑了一下午才找到一个学长有。我的小车是采用三块pcb拼接成的小车,原本打算用排针连接的每块板子的,绘制pcb的时候把排针的间距留的太小,导致了排针放不进去,所以我就用led的引脚来连接,这给我的焊接造成困难。在焊接第一辆小车的时候就出现了寻迹电路的指示灯一直常亮、在把我接地的时候蜂鸣器才会响、有一个电机不转等问题,在测量电机驱动电压的时候不小心把输入脚和GND短接了,直接点亮了一颗芯片,芯片也顺手吧单片机给带走了。我整个人都傻了,然后找群友借了一块开发板,开始做第二辆。因为时间来不及了,第二辆车没有使用蜂鸣器,寻迹也是用的五路灰度传感器模块,所以我的车上就飞了好多杜邦线。焊接是交给学弟来焊的,他焊完之后发现输出电压特别低,如果不是后来在群友的帮助下发现了电源芯片的GND引脚虚焊了,我甚至认为电压被滤波电容吃了。超声波避障基本上没有多大问题,问题最多是寻迹,跑着跑着就乱跑,或者跑着跑着就自动复位,后来发现是因为是程序问题,几个传感器打架了,给单片机整不会了,干脆摆烂了。最有意思的是移植蓝牙遥控代码的时候,我把代码移植到我的工程里,单片机就一直给蓝牙发送0,当我把他移植到新工程的时候就没有问题,于是我就把原工程全部移植到新工程里,也没有出现问题,如果说没有人给我的原工程下咒,我都不信。
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程视频/附件
序号 文件名称 下载次数
1

【立创开发板】钴钥金的智能小车代码.zip

39
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP