站内搜索
发作品签到
一页书的智能桌面小狗
专业版

一页书的智能桌面小狗

简介

跟着实训营做一只属于自己的,会唱跳(不会)、只会自己走路(前进后退、左右转等简单功能)的的桌面小狗-电子宠物。

简介:跟着实训营做一只属于自己的,会唱跳(不会)、只会自己走路(前进后退、左右转等简单功能)的的桌面小狗-电子宠物。
智能机器狗实训营
复刻成本:50

开源协议

GPL 3.0

创建时间:2025-03-18 22:04:16更新时间:2025-05-07 09:32:40

描述

1、功能介绍

基于ESP8266开发的智能桌面小狗,能够实现手机遥控,天气显示、时间显示、表情显示、随机运动、坐下、趴下等功能,该项目去掉了大部分插件封装,大多采用0603贴片封装,减少了体积也方便焊接。可以作为桌面宠物,也可以充当桌面信息显示器;

2、PCB工程简介

该工程下面有两个板子,简单说一下两者的区别;

先说板2:原作者桌面小狗-贴片版。是在原作者开源工程的基础上,把一些直插元器件换成了贴片式元器件,主要是一些电阻、电容;其它的原理图基本没有改动,PCB布局也基本保留了原来的布局;

板1:实训营-一页书的智能桌面小狗,是跟着训练营画的,在原作者的原理图的基础上进行了一些标识优化,并且也把一些直插元器件改为了贴片式元器件;
板1相较于板2,训练营改进的地方有一下几个方面:

  1. 主控:原版ESP8266主控P17-P22引脚是单点连接,并未使用,训练营全部改为了非连接标识符;此外,很关键的一个地方,就是在主控的P8引脚VCC,接入了两个电容滤波,能更好的保护主控芯片;
    主控.png
  2. 舵机接口:舵机接口原版和训练营版本功能、元器件一致,只是原理图表现方式有所区别;原版GND引脚全用的网络标签,一般来说更普遍的画法是用GND网络标识,同理+5V引脚,原版5V引脚全用的网络标签,训练营用的是+5V的网络标识;IO12引脚下拉,但是原版的画法不是很直观,训练营的下拉方式更清楚明了;

舵机接口.png
3. 原理图其余部分还有些许差异,但不影响整体功能,全在个人习惯,此处不一一赘述;

3、PCB画板注意事项

1. 特殊元器件坐标:特殊元器件摆放一定要按照表格中的坐标来,否则3D外壳会不匹配,会装不进去,切记,PCB布局之前一定要看清楚坐标,PCB画完之后一定要再次核对坐标是否跑偏;为了防
止元器件移动,在设定好坐标之后,点击该元器件,右边属性框,锁定:(选择)是;

image.png
2. 芯片VCC引脚前的滤波电容:在绘制PCB走线时,芯片外部的电源信号,一定要先经过电容,电容出来后再接入芯片的VCC引脚,如下图1、3处所示;如果是电压输出,如下图2所示,则要先经过电容,才能给其它元器件作为电源输入;

VCC电容.png
3. 引脚丝印:PCB画完之后,在特殊引脚,比如电源,信号引脚等,添加丝印作为标记,方便引脚连接不容易出错;
4. 注意注意
官方给的bom表里面没有写弯插,实际上必须要有一个弯插排针才能把屏幕竖起来,特此提醒,重要是事情说三遍:;
!!!记得买弯插排针
!!!记得买弯插排针
!!!记得买弯插排针
5. 舵机安装

舵机材料包.jpg
一般买的舵机材料包里面都会配有螺丝,直接拧上去即可;
!!!注意
!!!舵机手动初始校准
在舵机安装在底壳之后,拧螺丝之前,要先调整一下舵机的位置,先把舵机自带的小螺旋桨安装上去,转到头,就是转不动了为止,此时小螺旋桨位置大概率不在水平线上,也就是不在0°位置,这时候再把小螺旋桨拿下来,水平位置拧上去,这样就实现了舵机位置的手动初始校准;

4、软件部分

1. 环境配置(安装软件)
windows电脑,直接在Microsoft Store下载安装,这样就不需要再添加环境变量了;搜索安装VS Code以及Python,Python最好是装3.9-3.12版本,不要太新版本,容易不兼容,本人安装的Python3.12;小提示:Microsoft Store下载默认装在C盘了,然后本人去环境变量查看,也没找到这两个软件的信息,但是不影响后续软件编写以及代码烧录;
安装完成后,打开VS Code,在左边扩展里面直接搜索PlatformIO,然后点安装即可;

2. 配置库文件

简单介绍一下我们使用的库:

ESPAsyncWebServer:这是一个支持异步功能的HTTP库,即WebServer的运行不会影响其它程序的运行,功能非常强大。
U8g2:这是一个主流的LCD/OLED显示驱动库,支持大部分驱动IC。
NTPClient:这是NTP的时钟库,方便我们快速获取实时时间。
ArduinoJson:这是一个支持创建和解析Json的库。

导入库文件

第一步,搜索库文件

搜索库文件1.png

第二步,复制关键代码

库复制.png

第三步,粘贴代码至下图方框处

引入库文件.png

然后点击VSCode 最下方的对号: ,即可进行编译;点击: -> 进行烧录,烧录注意事项见后文;

图片显示

我们的机械狗还需要有表情,而单片机并不能直接用jpg/png的图像,并且我们用的是单色屏,所以要用BMP格式的位图再转换成数组。
为了方便显示,这里建议统一像素(像素不一致会导致显示不完整):

图标像素:64x64
表情像素:128x64

这里我们使用PCtoLCD2002这款经典软件完成bmp位图到数组的转换。

取字模.png

注意:要删掉,行前缀,行后缀的括号;

回到VS Code,在工程下面的src文件夹下面创建文件image.cpp;并在该文件中引入头文件,定义数组,粘贴字模;PROGMEM的意思是:该数组存到flash里面,不存到内容里面;

image-20250410231647643.png

内置库导入

image-20250410232451204.png

在main.cpp中,添加下列头文件;

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include "image.cpp"

5、代码编写

代码部分包含

定义变量(按键、ADC)
函数编写
初始化
等种种功能,此处不再赘述,可观看官方视频教程,或者直接引用官方程序代码;

6、烧录说明

提示:PCB上的TX要连接TTL模块的RX,PCB上的RX要连接TTL模块的TX;

烧录之前,上电之前,要先把DEBUG进行短接,然后TTL模块再插入电脑进行烧录,如下图所示;

debug短接.png

debug短接1.png
烧录的时候可以不接电池(PCB右边的供电开关 关掉),烧录完之后,要把debug的跳线帽拔掉;
!!!注意
本人在进行程序烧录和image文件烧录的时候,发现不能一次性同时烧录这两个文件(不确定是否个例,仅供参考),程序烧录完成后,必须把跳线帽拔了,打开供电开关给PCB上个电又马上关掉,然后再插上跳线帽短接,再继续烧录image文件;
本次代码还有尚未完善的地方,仅供参考;
也可直接烧录官方代码;

4、实物效果

见附件。

设计图

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

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
小狗实物俯视图.jpg
2
2
小狗实物正视图.jpg
0
3
按键运动.mp4
1
4
网页操作.mp4
0
5
EDARobotR1-个人参考版本.rar
1
6
官方代码-EDA-Robot(180度舵机版)_V1.1.zip
11
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航