嘉立创产业服务站群
发作品签到
专业版

智能机器狗

工程标签

384
0
0
1

简介

复刻嘉立创的智能机器狗,通过这人项目学操作学习,画电路图,PCB布局,PCB焊接,3D打印,程序下载,组装等。

简介:复刻嘉立创的智能机器狗,通过这人项目学操作学习,画电路图,PCB布局,PCB焊接,3D打印,程序下载,组装等。

开源协议

GPL 3.0

(未经作者授权,禁止转载)
创建时间:2025-04-02 04:26:46更新时间:2025-04-28 03:37:48

描述

项目简介

本项目是复刻嘉立创的智能机器狗,主控芯片是ESP8266,是一个可以手机控制的桌面宠物,电路大部分使用插件封装,易于新手焊接,通过这个项目学操作学习,画电路图,PCB布局,PCB焊接,3D打印,程序下载,组装等。

项目功能

通过ESP8266 wifi 192.168.4.1 连接配置WIFI参数及心知天气api可以在局域网用网页遥控器功能控制机器狗做相应动作及显示不同的表情、时间,和天气。

项目参数

  1. OLED显示屏为0.96寸SSD1306或SSD1315驱动
  2. 电池为2节14500锂电池,单节电压3.7-4.2v
  3. 电池盒为2节串联14500电池盒
  4. 预留开关和外部充电接口,外部充电模块应当为2串锂电池充电模块,满电电压8.1-8.4V。
  5. 切勿强行掰动舵机,避免电机损坏,也可购买金属齿轮的MG90舵机

原理解析(硬件说明)

篇幅有限,这里仅讲解部分关键电路和程序,详细说明请查看开发文档

本项目提供了完整的说明及源码,并不局限于现有功能,您可以基于现有框架进行二
次开发,丰富小狗的功能。

硬件设计
本项目电路由以下部分组成,电源部分、ESP8266主控、外部接口

电源电路:

电源电路.png
供电:供电是直接采用14500双节电池组,通过LDO降压稳压器供电。

image.png
稳压器:采用AMS1117-5V和AMS1117-3.3V线性稳压器,将8.4V电压分别转换成5V和3.3V,使其为舵机及ESP8266主控提供电力支持

电源电路5V.png
主控电路:
image.png

70b7f1d1f87947edbd1e4615647827a8.png
主控:参考ESP8266数据手册,对IO0、IO2、EN使能、RST重置引脚上拉,对CS片选信号下拉,以确保ESP8266及SPI通信正常

外部接口电路:

07b599c9788f49df994dda4474a79e19.png

7019fa1bab2f4319a55d86c145e2a393.png

屏幕:为了方便焊接,简化电路,这里使用的是SSD1315驱动的OLED屏幕模块,该模块自带有屏幕驱动电路,仅需接口接入即可。在此根据该屏幕模块的接口线序配置好了对应接口的线序,直接插入即可使用。
串口:串口部分为方便下载,单独引出了IO0及GND接口作为跳帽插入接口,当插入跳帽时,IO0被拉低,进入下载模式。反之被主控部分电路拉高,进入工作模式。
电池:电池部分,引出了外部充电拓展接口,VIN与VBAT是开关接口,VIN与GND接口是外部充电模块接口。充电模块选择满电电压大概在8.4V的2串锂电池充电模块。
按键:按键部分使用的是IO2和IO15引脚,IO2按键按下时拉低,空闲时被拉高。但由于IO15必须接下拉电阻,所以这里开关逻辑与IO2相反,按键按下时拉高,空闲时被拉低。

ADC电量检测电路

ADC.png
修改分压器适配 8.4V 到 1V
现在需要适配新的输入电压范围(最大 8.4V)到 ESP8266 的 1.0V ADC 输入。

软件代码

完整的项目文件已经放在了附件,可直接烧录的程序二进制及文件系统二进制文件也已经放在了附件,可自行下载。
时间有限,程序中可能存在部分代码冗余和低代码逻辑,可自行进行修改优化。
这里我们只介绍部分比较重要的关键代码。

运动控制定义

int engine1 = 14; // 舵机引脚
int engine1offsetleftpwm = -93; // 舵机左转补偿
int engine1offsetrightpwm = -87; // 舵机左转补偿-40
int engine2 = 16; // 舵机引脚
int engine2offsetleftpwm = -120; // 舵机左转补偿
int engine2offsetrightpwm = -122; // 舵机左转补偿-60
int engine3 = 12; // 舵机引脚
int engine3offsetleftpwm = -3; // 舵机左转补偿
int engine3offsetrightpwm = -57; // 舵机左转补偿
int engine4 = 13; // 舵机引脚
int engine4offsetleftpwm = -78; // 舵机左转补偿
int engine4offsetrightpwm = -109; // 舵机左转补偿-71
int speed = 300; // 舵机转速
int runtime = 100; // 运动延时预留变量,用于控制动作连贯性,如果你不知道这是什么不建议修改
这里的定义是用于电机校准使用的,参数仅供参考,不同批次电机参数各不相同,可以自行通过电机校准页校准。

ADC电量检测
// 对 ADC 数据多次采样并计算平均值
float getAverageAdcVoltage() {
long totalAdcValue = 0;

// 多次采样
for (int i = 0; i < numSamples; i++) {
totalAdcValue += analogRead(A0); // 读取 ADC 数据
delay(10); // 每次采样间隔 10ms
}

// 计算平均 ADC 值
float averageAdcValue = totalAdcValue / (float)numSamples;

// 将 ADC 值转换为电压
return (averageAdcValue / 1023.0) * 1.0; // ESP8266 的参考电压为 1.0V
}

// 计算电池电量百分比的函数
int mapBatteryPercentage(float voltage) {
if (voltage <= minVoltage) return 0; // 小于等于最小电压时,电量为 0%
if (voltage >= maxVoltage) return 100; // 大于等于最大电压时,电量为 100%

// 根据线性比例计算电量百分比
return (int)((voltage - minVoltage) / (maxVoltage - minVoltage) * 100);
}

注意事项

  1. 模组外转电路,GPI00必须上接到VCC,GPI015必须下拉到GND.
  2. EN脚和RST脚必须上拉到VCC.
  3. 模组的pin9-pin14不可用。

组装流程

IMG_20250410_202729.jpg

Image_1745810334585.png

Image_1745810382253.png

Image_1745809933979.jpg

Image_1745809935288.jpg

Image_1745809944864.jpg

Image_1745809947580.jpg

Image_1745809951226.jpg

IMG_20250416_130121.jpg

IMG_20250424_135024.jpg

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
IMG_20250410_202729.jpg
7
2
IMG_20250416_130121.jpg
5
3
IMG_20250424_135024.jpg
3
4
VID_20250416_223541.mp4
1
5
EDA-Robot项目电子实训文档.pdf
47
6
Video_1745809954901.mp4
3
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航