本制作以STC89C52RC单片机和ADXL345加速度模块。加速度模块固定在手上时,当手向左倾斜,小车左转;手向右倾斜,小车右转;手向前倾斜,小车前进;手向后倾斜,小车倒退;手水平不动,小车停止任何动作。有效控制范围 10米(开阔地)。小车视频可以见教程附件。
原理:ADXL345加速度模块可以测量X Y Z三轴的加速度和倾角。人的手做动作时,势必会改变模块的加速度大小和倾角。由于测量加速度叫繁琐,所以测量的是倾角数据。当倾角数据满足一定范围时,通过蓝牙模块传输控制指令到小车,实现小车的动作。
制作教程(配图见附于文章结尾)
本制作除了单片机最小系统需要焊接外,其他的组件都是模块(单片机系统可以自己焊接,也可以使用模块。最小系统图看最后面附图),直接和单片机的IO口连线就可以了,单片机最小系统原理图我已经上传,本教程主要是讲解模块的说明和接线方式。
小车系统
可以是四驱型的,也可以是万向型的,只要你会改程序,就无需局限于小车制动类型。当然,如果你不会改程序,那就使用四驱,小车的套件在淘宝上的价格都很便宜,几十块的也有,根据自己的经济能力决定。购买时注意电机的额定电压和转速就可以了。
小车电机接线:
●1号轮红线接L293D输出端:8
●1号轮黑线接L293D输出端:7
●2号轮红线接L293D输出端:6
●2号轮黑线接L293D输出端:5
●3号轮红线接L293D输出端:4
●3号轮黑线接L293D输出端:3
●4号轮红线接L293D输出端:2
●4号轮黑线接L293D输出端:1
注:必须确定小车的方向,本例为1号轮为小车前进轮;实际的接线可以完全相反,只需要改变输入端线序即可!
电机驱动模块
我使用的是成品模块,型号为L293D,模块省去了焊接调试工作,直接使用即可。此类模块还有一个优点,就是当你的供电电源大于6V时,模块可以当5V的电源使用,可以给单片机系统和蓝牙系统供电, 模块的供电电压是5v到16V,当你需要外接5V电源时,可用6V至16V电源供电。最大可提供1A驱动电流。
模块接线:
●P1.0接IN8
●P1.1接IN7
●P1.2接IN6
●P1.3接IN5
●P1.4接IN4
●P1.5接IN3
●P1.6接IN2
●P1.7接IN1
注:若组装好后,小车运动与预设完全相反,只需要单片机端口线序倒置即可:如P1.7接IN8,P1.6接IN7以此类推。
供电系统
我使用的是12V铅酸蓄电池。注意,你使用的电池电压必须在你电机的额定电压工作范围内。驱动模块的控制信号是0到5V(单片机电压),但驱动模块给电机供电是,就是电源电压,所以一定要注意电机的额定工作范围。
供电接线:
●蓄电池正极——L293D Vcc
●蓄电池负极——L293D Gnd
●L293D 5V ——单片机系统Vcc
●L293D Gnd——单片机Gnd
无线传输模块
我使用的是UART蓝牙模块,这种模块自动配对,且无需额外编程,价格在30元左右(一只),虽然网上有很多几块钱的模块,性价比较高,但是我的程序重点在于加速度模块程序的设计,所以没有过多精力来搞无限通信。如果你有良好的程序基础,那么建议你购买价格便宜的无线模块。蓝牙模块分主从模式,我使用的是主从一体的蓝牙模块,通过管脚可以切换主从,但有些是需要AT指令切换主从的,购买的时候需要注意。蓝牙模块工作时必须一主一从才能配对成功。
蓝牙模块连接:
(1)主模块连接:
●SET与3V3脚短接
●VCC接可接3.3或5V
●RX接单片机TX
●TX接单片机RX
●GND接地
(2)从模块连接
●SET脚与地短接
●VCC接可接3.3或5V
●RX接单片机TX
●TX接单片机RX
●GND接地
注:不管是主模块还是从模块,只要配对好,是可以互相通信的。所以不管是哪个连接到小车都可以。
加速度ADXL345模块
此模块的程序设计是整个制作的核心。模块的详细参数见模块官方手册说明。
●模块接线:
●VCC接5V
●GND接地
●SCL接P1.0
●DAT接P1.1
附图: