mixly实现esp32_ps2手柄遥控可调速八轮装甲小车

一 实现思路

摘要:esp32,ps2手柄,mixly,遥控小车,可调速,平滑起步与停止

1 项目简介

1 项目效果
通过ps2手柄控制小车的移动:
左侧上下左右控制小车移动
右侧三角圆X方控制大炮上下与左右运动;
左侧2肩键控制调整左侧4轮子转速
右侧2肩键控制调整右侧4轮子转速
中间start键回复初始速度
左侧遥杆仅控制小车前进后退
右侧摇杆仅控制小车左转右转

2 实现方式
通信使用esp32开发板(其余开发板皆可)用于和ps2手柄通讯,使用mixly编写程序来实现:通过按下手柄按键,达成让小车做出响应的效果。硬件元器件设计:舵机,直流减速电机+配套轮子,驱动板,ps2无线手柄_代接收器等等。最后使用3donecut设计外壳,实现拼装。


2 项目构成

1 软件环境
上传程序: mixly(选esp32开发板,自带有PS2X_lib库)
外壳设计:3donecut

2 所需硬件
开发板:esp32
元器件:sg90舵机,直流减速电机,驱动板,ps2手柄+接收器,降压模块(12v转5v),DC母座带班(电池接口转换),led灯板(亮度表示速度快慢)
其它:轮子,木板,12V可充电电池
硬件接线:减速电机通过驱动板与主控板连接,ps2接收器,舵机等直连开发板。

3 原理总结

首先:重点需实现 手柄通讯,移动, 调速功能

其次:手柄通讯通过mixly自带的库能简单实现按下手柄某一个键完成某一功能的效果;通过按下方向键时才给直流电机供电,实现小车所有的移动功能;调速功能通过调节模拟引脚输出值来调节转速。

强调:代码的执行顺序问题,诸如:前后左右键若视为同一刻只按下一个键时,就可以把不同的移动的代码放在一个多分支if语句中;遥杆将前后与左右分开执行,故用多个单分支语句执行,在loop函数中,在实现效果上可以近似视为并行;最后是舵机的角度写入,若在if语句中直接写入舵机角度,可能出现仅能操作舵机,移动失灵的效果。故最好将舵机角度设为一个变量,在loop函数中重复写入舵机角度,这样能消除影响。这是个人的方法,重点是深入理解代码执行顺序,才能有效解决问题。

手柄——>ps2接收器——>esp32开发板——>硬件模块响应


3 代码实现

1 功能分类
在这里插入图片描述

功能原理
1 前后左右将上下右移动设为4个函数,按下对应键执行相应函数,否则停止移动。代码放在一个多分支语句中
2 摇杆同样设置4个对应移动函数,记为left_qian,left_hou等。代码放在多个单分支if语句
3 舵机通过设置变量pos1,pos2,间接写入舵机角度,使用三目运算符设置角度极限
4 加速减速通过设置变量lspeed,rspeed代表左侧4轮与右侧4轮速度,通过变量间接调整舵机转速
灯光led灯通过模拟引脚值写入lspeed与rspeed,速度越快越亮
慢起步,慢停止flag表示起步和停止状态,设置start和end函数,起步时速度从0循环到lspeed和rspeed写入,停止时则相反。消除猛起步,猛刹车的影响

2 具体代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


4 外壳部分

** 画图实现**

3done画图效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


二 展示

1 图片

在这里插入图片描述


2 视频


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值