
基于esp32的简易四足机械狗
简介
本项目使用esp32-s作为主控,使用mg90s舵机控制。支持双路供电,初步设计了四种运动模式,前进后退,左转右转。并且搭建了简易的网页控制运动,后续将会和esp32-cam结合起来,实现物体识别。
简介:本项目使用esp32-s作为主控,使用mg90s舵机控制。支持双路供电,初步设计了四种运动模式,前进后退,左转右转。并且搭建了简易的网页控制运动,后续将会和esp32-cam结合起来,实现物体识别。开源协议
:GPL 3.0
描述
1.基本元件
1.主控
单片机采用的是esp32-s,具有丰富的外部接口,同时支持WIFI和蓝牙,可通过type c接口实现自动下载。
2.舵机
舵机采用的是mg90s,结构简单,成本低廉,额定电压是5V。
3.电池降压
电池我准备采用一块12v的锂电池,降压芯片是MP2236,支持18V、6A的输出,足够实现机械狗的运动了。
4.步态分析
在这里,用使用了一个开源的小项目,这是机械狗运动学逆解的程序,当我们获取到了狗腿的的各部分长度数据,通过这个程序就可以获得两个舵机旋转的角度。具体数学原理在这儿就不赘述了。注意,前进后退,对角线的两个腿运动是相同的,但是由于左右的镜像,两个舵机的角度应该交换一下,在源码里都有体现。
2.电路设计
1.控制部分
基本原理就是通过esp32-s的8个IO口输出周期不同的pwm波方波,控制八个舵机在相同的时间内运动不同的角度,所以说前面的部分就相当于设计了一块esp32的开发板,只不过一些接口没有引出。
2.电池降压部分
这个项目前前后后打板了几次,主要问题就在于为了控制八个舵机,电流将近有4A,普通的锂电池和小型降压芯片无法提供这么大的电流。在这里借鉴了B站UP主工科男孙老师的一个设计,采用了mp2236这款芯片。
注意,C1 C2 C3为0805封装的贴片电容,因为它的耐压需要超过12V,0603封装的22uf电容价格很高。
3.ADC采样
为了实现,Type c接口供电和电池供电的切换,设计了adc采样,当adc采样通道检测到了Type c接口的电压,就会控制另一个gpio口输出低电平拉低mp2236的降压使能端,起到电池停止供电的作用。同时,使用ss54二极管,分离两路供电。(该功能暂未验证,待二次打板验证)
当然,倘若功能不成功,也可以R3 R4 R5 R6全不焊,焊接R13,直接用电池电压作为高电平拉高使能端。用type c接口供电需要稳压电源,普通手机充电器提供不了4A的电流。
3.使用代码
开启电脑或者手机的热点,在代码中更改热点的名称和密码,烧录后,单片机会自动搜索。在浏览器里打开单片机的IP地址,就可以直接操控机械狗了。
采用arduino框架,使用VS Code+PlatformIO开发。
打开页面如下:
该项目在代码的编写上仍有很大的优化空间,后续将会借助这个载体,使用esp32-cam实现诸如物体识别之类的功能。敬请期待。
更新:
2023.03.15
增加了0.94寸OLED屏幕显示,可以显示成功连接WIFI,显示出WIFI名称和IP地址,并且显示当前的运动状态
设计图

BOM


评论