这才是百元遥控车该有的样子

这才是百元遥控车该有的样子为提升小车续航 改用 12V5000mAh 大容量锂电池 先采用 DC DC 模块降压到 8V 给电机供电 同时采用 1117 5 降压到 5V 和 3 3V 给电路中单片机和其余模块供电 前后断断续续玩了不到 2 小时就没电了 拿出以前的降压模块和 12V 路由器电源做成简易充电器充电并不能充进去 电池已经完全亏电且遥控距离只有 30m 左右 玩起来很不尽兴

目录

一、背景

二、买来的遥控车原车拆解

1、整车图片

2、原装电池

3、小车控制电路

三、开始改装小车 

1、改进后的遥控电路

a、遥控电路原理图:

b、遥控电路PCB图和实物图:

​编辑

c、遥控电路代码(Demo):

2、改进后的小车控制电路

a、小车控制电路原理图:

b、小车控制电路和实物图

c、小车控制电路代码

3、小车演示


一、背景

花139买了一台双鹰牧马人遥控车,发现只有一个300mAh 6V的电池组,但没有充电器。前后断断续续玩了不到2小时就没电了,拿出以前的降压模块和12V路由器电源做成简易充电器充电并不能充进去,电池已经完全亏电且遥控距离只有30m左右,玩起来很不尽兴。于是,作为业余电子爱好者,怎会甘心如此?我决心好好改造一番这个遥控车,下面从拆解开始。

二、买来的遥控车原车拆解

1、整车图片

整车式越野式JEEP。整车一共有3个直流有刷电机,一个负责开关门,一个负责前后运动,还有一个负责左右转向;另外有2棵前向白色LED和2颗倒车红色LED指示灯。

2、原装电池

原装电池是一个300mAh的可充电电池组,且这个价格入手不搭配充电器😂,没有动手能力基本就是一次性玩具。

3、小车控制电路

该电路一共采用了3颗芯片,其中无线接收芯片封装丝印已经被打磨掉,不知道型号,只知道是2.4GHz工业频段的无线接收芯片。另外2颗都是电机驱动芯片,分别为MX1616H双通道电机驱动芯片和MX08H单通道电机驱动芯片。由于改装并不需要用到原来的遥控,遥控部分就不拆解了。

三、开始改装小车 

1、改进后的遥控电路

a、遥控电路原理图:

遥控电路主要由STC89C52RC做主控,上手相对简单且低成本;供电采用可充电9V电池通过线性稳压器1117转为5V;通过串口通信的模式实时发送数据。无线模块采用HC12串口模块进行通信。原理图中主要由按键部分、单片机最小系统、电源部分以及指示灯组成。

b、遥控电路PCB图和实物图:

c、遥控电路代码(Demo):
#include "reg52.h" #include "intrins.h" #include "string.h" void ConfigUART(unsigned int baud) //串口初始配置 { PCON|=0x80; SCON=0x50; TMOD|=0x20; TH1=256-(/12/16)/baud; TL1=TH1; ET1=0; ES=1; EA=1; TR1=1; } void Delay(unsigned int t) { while(--t); } void main() { P0=0xff; P1=0xff; P2=0xff; ConfigUART(9600); while(1) { P1=P0; //P0是8个button,直接实时检测P0数据并赋值给P1,P1对应八个按键指示灯,直接赋值即可 SBUF=P1; //把P1实时赋值给串口发送缓存SBUF while(!TI); //实时发送 TI=0; Delay(5000); } } 

2、改进后的小车控制电路

a、小车控制电路原理图:

小车控制电路单片机采用ESP32做主控,比较奢侈,主要是为后续软件功能更新做铺垫。

一键开关门电路是机械结构已经决定电机只要单向转动即可循环开门关门动作,所以电路延续原车采用JSM2302A-A2SHB N-Channel MOSFET做该电机开关;前进后退电机延续原车MX1616H H桥芯片电路;左右转电机延续原车MX08H H桥芯片电路;为提升小车续航,改用12V 5000mAh大容量锂电池,先采用DC-DC模块降压到8V给电机供电,同时采用1117-5降压到5V和3.3V给电路中单片机和其余模块供电;前后车灯分别用三极管进行开关(此处应该四灯独立,这样可以增加转向灯功能,当时没想到)。

b、小车控制电路和实物图

c、小车控制电路代码
from machine import Pin from machine import UART import time import binascii # 定义引脚 DR1 = Pin(32, Pin.OUT) DR2 = Pin(33, Pin.OUT) LFA = Pin(26, Pin.OUT) LFB = Pin(25, Pin.OUT) SET = Pin(2, Pin.OUT) R_LED = Pin(18, Pin.OUT) D_LED = Pin(19, Pin.OUT) OPEN_DOOR = Pin(4, Pin.OUT) # 配置串口参数 uart2 = UART(2,9600) uart2.init(9600,bits=8,parity=None,stop=1) D_LED.value(0) R_LED.value(0) ledflag = 0 while True: cmd = uart2.read(1) # 读取串口数据 if cmd!=None: # 检查串口缓冲区是否有数据 data = ord(cmd) # 值转为整形值 DR1.value(data & 0x01) #前进 if not data & 0x40: #开车前灯 ledflag = 1 elif not data & 0x02: #倒车关闭车前灯 ledflag = 0 if ledflag: D_LED.value(1) else: D_LED.value(not data & 0x01) DR2.value(data & 0x02) #后退 R_LED.value(not data & 0x02) LFA.value(data & 0x04) #左转 LFB.value(data & 0x08) #右转 OPEN_DOOR.value(not data & 0x20) #开关门 print(data) time.sleep(0.01) # 等待一段时间,避免密集轮询 

3、小车演示

这才是百遥控车该有的样子

今天的文章 这才是百遥控车该有的样子分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-15 16:27
下一篇 2024-12-15 16:21

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/87030.html