
智能小车
简介
多功能小车
简介:多功能小车开源协议
:GPL 3.0
描述
基于STC8A8K的智能小车设计
一、前言:
接触小车大概也有两年了吧,前前后后小车也做过3,4次了。从第一次刚学单片机,用 STC89C52做的三轮小车(什么功能都没有,只有前进,后退,左转, 右转,用红外遥控控制的,走起来歪歪扭扭,一点体验感也没有),到后来,学习了STC8A8K这个增强型的单片机,就想着做一个项目来巩固学习的知识,说干就干,买了一个底板和轮子,这次选择了四轮的。(这次花费的时候最长,一个模块一个模块的添加,一个功能一个功能的验证,代码调试了一遍又一遍,bug修改了一次又一次,基本上实现了大部分的功能,增加了4种遥控方式,两种避障方式,基本上把学习的东西都用上了,板子上的资源也用的差不多了,算是一次不错的体验)。再到后来,偶然接触到了立创EDA这个宝贵的平台,又碰巧参加了立创EDA暑期训练营,这次训练营正好是有用STC8A8K的项目,正好给了我机会(用开发板连接的线非常的乱),于是乎,连夜测试引脚画板,在立创EDA的支持下,完成了我的智能小车的主控板(这是我第二次画板),这次暑期训练营可能也间接的影响了我,在这次活动之后,我画板的频率明显提升了很多(做了好多乱七八糟的东西)。再到这一次,听说立创有小车的项目,我立马跑过来关注,看了立创的小车之后,我发现我这做的是啥玩意,真tm丑,难看,体积大,就很嫌弃的感觉。我觉得我要善始善终,这个项目原来也花费了我不少的心血,是时候进行改版了,这次要画一个小的,换成N20电机,换成小轮子,用PCB做底板,增加循迹电路,增加充电电路(这次岔劈了,下次改进),又是在立创的支持下,我的第四版小车诞生了。我的小车跟随着立创的脚步,越来越好,越走越远。
二、版本
1.第一版
这一版是第一次接触单片机的时候制作的,距离现在有点时间了,那时候刚开始学习51单片机,用的纸板搭的外壳(哈哈),用的洞洞板焊的灯,左转向灯,右转向灯,确实不太好看。
2.第二版
第二版是学习STC8A8K这个单片机做的,这次是直接用的开发板,连的线真是乱七八糟,但这次是里程碑的一次,基本实现了所有的功能,(有密集恐惧症的勿看),功能虽然很全,但是使用起来真的很麻烦,每次操作都需要好久。
3.第三版
这一版较之前一版有了很大的改进,把所有的电路都集成在了一块PCB上,看起来顺眼多了。
4.第四版
这一版在前一版的基础上,又进一步集成,一款PCB直接作为底板,看起来更好看,又增加了循迹模块,弥补之前的缺憾,开关也换成了大型的船型开关,操作方便。
(还没有调试好,调试好之后电机线直接焊死)
喇叭部分
遥控器
三、板载外设
- 红外接收电路
- 红外避障电路
- 红外循迹电路
- 电机驱动电路
- 蓝牙接口
- esp82266接口
- NRF24L01接口
- OLED接口
- JQ8900接口
- 超声波接口
- 舵机接口
- 三个独立按键
- 左转向灯,右转向灯 后灯
- 自带复位按键
- 一个RGB灯
- 4个WS2812
- 一个船型开关
- 一个2P拨码开关
四、功能
1.电机正反转:
板载双H桥驱动电路两组,可以驱动四路电机,每组电机都可以实现正反转。
2.PWM控制转速:
每组电机都外接单片机的IO口,总共用8个IO口控制4组电机,可以用单片机IO输出PWM不同控制电机的转速,可编程。
3. 手动控制:
3.1 红外控制:可以通过板子上集成的红外接收头用红外遥控控制,这种控制方法简单,外设少,但干扰性强,信号强度弱,距离短。
3.2 蓝牙和wifi控制:还可以通过手机连接蓝牙或者通过esp8266连接wifi控制,这两种方法都是在手机上安装一个软件,需要一个手机,操作简单,信号较强,使用较为舒适。
3.3 无线控制:还有一种控制是通过NRF24L01的2.4G传输,这种控制方式需要一对NRF24L01,控制端和接收端下载配套的程序,双方可进行通信。这种方式用遥感电位器输出信号,需要较为复杂的硬件电路。但无论在信号,距离还是手感方面都较为完美。
遥感控制图(这里是开发板接的,没有另外打板子,有需要的话可以自己打个板子)
制作好的遥控器
4.自动控制:
4.1 超声波控制:超声波是利用发射和接收的时间来判断距离,可通过编程设置最短距离进行改变智能车的方向。另外超声波搭配了一个SG90舵机,可以在左,中,右三个方向进行旋转,提高了检测障碍的正确性。
4.2 红外避障:红外避障是利用一对红外对管,一个发送和一个接收,判断产生距离的时间判断是否前方有障碍物,若时间间隔较短,则有障碍物,改变智能车的方向。
4.3 红外循迹:红外循迹是由发射管接收管和配套电路组成,工作时发射管发射红外线,接收管接收发射回来的红外线。当红外线被深色物体吸收较多而发射回来的很少时,OUT端为高电平,否则为低电平。
5. 实时显示:
板子集成了OLED,OLED通过IIC控制,可以实时显示超声波检测的距离,显示是自动模式还是手动模式。
6.语音播报:
板子外接JQ8900语音芯片,通过提前拷贝需要的语音,在执行对应程序的时候通过一线串口发送命令,播放对应的语音。
7. 电源:
电源部分采用2节3.7V的锂电池。板子上集成了5V和3.3V稳压源,很好的适配电池和满足5V和3.3V外设的正常工作。
五、调试
这里说一下我在焊接和调试的时候遇到的一些问题。
1.先焊芯片和电源
这次焊接依然是我以前的思想,先焊接芯片和电源部分,电源指示灯也焊接好,然后上电测试,如果电源指示灯点亮,说明基本没有问题,可以执行下一步,接着焊接单片机的外围电路,复位,晶振,焊接好之后测试,可以下载程序试试能不能正常下载。(很庆幸,我这一步没有遇到一点问题,非常顺畅)。
2.焊接LED
上一步我们已经焊接好了电源部分和单片机电路,并且已经测试下载程序,这一步我们需要验证芯片是够正常工作,我们可以焊接PCB的LED部分,然后烧录一个点灯程序测试芯片是否正常工作,我这一步也没有问题(如果有问题,看看是不是有些地方虚焊或者是接触不好)
3.焊接循迹和避障电路
这一步是扩展功能,上面的完成之后基本小车可以正常工作,要想小车更丰富,这一步也很重要,在我熟练的技术下,完成了这部分的焊接,然而在测试的时候,发现3个循迹模块和2个避障电路一个都不工作(接触的时候,LED不点亮)
既然出现了问题,那么就寻找问题,首先先看电路有没有焊好,再看电阻有没有焊对,发现都很正常(很疑惑,不至于是电路有问题吧),由于这是我第一次使用这个电路(以前都是用模块),不敢确定,我就百度搜一下,这一搜不要紧,tmd,电路真的有问题,2个避障的电路没有问题,3个循迹的有问题(我抄作业的那个同学,我保证打不死你)我又去看立创的电路(我自闭了,当时应该抄立创的)。
循迹电路问题:
正确电路:
错误电路:
猛一看,是不是没有问题,两个引脚接反了。真是日了狗了。
我大概看了一下,问题还不是很严重,还有改进的方法(后面会介绍)
红外避障电路没问题啊,怎么会不工作呢?
电阻问题?
我头开始以为是可调电阻阻值不对,在板子上我测了一下,果然不对(只有2K,我的是10K的),我有测电压,发现也有问题,因为买的是立创的东西,质量应该不会有问题,我想肯定是电路影响的阻值。因为只买了5个,没办法,只能从板子上拆下来一个,测了一下,9点多K,是正常的,更疑惑了。
电路问题?
为了确保电路确实没问题,我又把原来的模块拿出来,上电测试能用之后,然后用万用表通断测它的电路,发现和我的电路确实没太大差别,只是LED灯那个电阻阻值变为了1K,并不影响。
为了确保不是电路影响的,我还单独用面包板搭了这个模块的电路,发现还是不能够用。
红外发射管问题?
既然电路没问题,我想是不是我买的红外发射管和它这个红外发射管不是一个型号,不能通用?
于是我把他的红外发射管拆掉,把我的换上去,发现依旧能用。
LM393问题?
我又把原来模块的LM393拆掉换成刚买的,依旧能用,tmd,真是奇了怪了。
红外接收管问题?
电路就这么多东西,基本都测完了,还有红外接收管,拆掉,换上,不工作?
难道我的红外接收管不能用?(看外型,看型号都是一样啊)
偶然间,我把红外接收管的正负极调了一下,tmd的,可以用了,真是tmd,竟然是正负极反了?
(难道说长的引脚不是正极,短的引脚不是接地?)
希望哪个大神能我留言讲了一下。
既然发现了问题,那么小车板子上的也需要去修改一下,拆掉,焊接,上电,我日他得,可以了(真是tm太不容易了,搞了我一晚上,几个小时,tmd)
4.关于循迹电路的修改
由于我抄错了原理图,所以循迹模块没有一点作用,无奈之下只能去修改这个电路,好在电路修改并不复杂,只需要把原来的两个管的位置调换一下,这中间的过程就不细说了,比较艰辛,这里就给大家放几张做好的图吧。
原来的壳不能用了,就这样吧,凑合着还能使,下次如果再画的话一定会改进的。
六、程序编写
虽然说有以前的基础,程序基本框架都写好了,但是呢,新版的小车肯定会和原来有所不同,代码或多或少都会有一点变动。这次增加了循迹模块,这一部分是原来没有的,增加了WS2812,这一部分也是原来没有的,增加了左转灯,右转灯和后灯,增加了一路EGB灯。还有一些其他的电路。
遥控器是现做的,原来打的板子,一直放着没有焊接,这次顺便就焊接调试一下,把东西都用起来。
代码也写一写,现在可以实现前后左右控制 和 1-4挡控制 ,可以通过NRF24L01和小车进行通信,在主函数中没有使用延时,特殊处理了一下,之间通信的速度还是相当可观的,完全感觉不到延时。
七、效果演示
视频看下面文件:
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | TL431 | U1 | SOT-23_L2.9-W1.3-P0.95-LS2.4-BR | 1 |
2 | 680 | R15,R46,R45,R4 | R0805 | 4 |
3 | LED-0805_R | LED1 | LED0805_RED | 1 |
4 | 511 | R14 | R0805 | 1 |
5 | RT-S01-113-L4LBR | SW2 | SW-TH_RT-S01-113-L4LBR | 1 |

评论