站内搜索
发作品签到
专业版

WALLE 瓦力电路板

工程标签

4.1k
0
0
11

简介

WALLE电路板

简介:WALLE电路板

开源协议

GPL 3.0

创建时间:2024-05-13 16:51:13更新时间:2024-12-06 14:42:59

描述

核心组件:
ESP32微控制器:作为电路板的大脑,ESP32提供了强大的处理能力和无线通信功能。它支持Wi-Fi和蓝牙连接,使得电路板能够轻松接入互联网,实现远程控制和数据传输。
Arduino兼容性:电路板设计兼容Arduino开发环境,这意味着用户可以利用丰富的Arduino库和社区资源,快速开发和部署各种应用程序。

 

 

功能特点:

  • 精准控制:电路板能够精确控制机器人的运动,包括速度、方向和姿态,确保机器人执行任务时的准确性和稳定性。

  • 多传感器支持:电路板预留了多个GPIO接口,支持连接多种传感器,如温度传感器等,以实现环境感知和数据收集。

  • 无线通信:通过内置的Wi-Fi和蓝牙模块,电路板可以实现与智能手机、平板电脑或其他设备的无线连接,方便用户进行远程操控和监控。

  • 扩展性:电路板设计考虑到了未来的扩展需求,提供了额外的接口和空间,以便用户根据项目需求添加更多的功能模块。

 

 

概述

简介:

​ 相信童年看过《机器人瓦力》电影的小伙伴一定都想拥有一台属于自己的瓦力,本教程就DIY瓦力所需的物料和控制程序开始,带着大家一起DIY一个瓦力机器人。我想没有男孩子能抵抗的住这集成声、光、电、动的小机器人玩具吧,寒假带着娃做一个,把隔壁小孩馋哭 哈哈。

物料清单(BOM)

序号 模块 功能 数量 参考价格(单价) 参考价格(总价) 备注
1 Arduino UNO R3开发板 主控芯片 1 16.4 16.4  
2 ESP32 C3开发板 MQTT协议连接服务器 1 9.9 9.9  
3 L298N 双H桥点击驱动板 驱动履带电机 1 6.4 6.4  
4 PCA9685 16路舵机驱动板 舵机驱动 1 12.5 12.5  
5 随身WIFI 提供WIFI 1 15 15  
6 DC-DC 12V 转5V 直流降压模块 12V 转 5V供电 1 5.9 5.9  
7 12V 370偏轴减速电机 107转/分钟 驱动履带 2 15 30 注意要买偏轴的,不是中置的轴
8 18650电池盒(3节) 电池仓 1 1.2 1.2  
9 18650电池 串联提供12V电源 3 8 24  
10 18650充电器   1 10 10  
11 SG90 9g舵机 驱动运动关节 7 3.79 26.53  
12 DC电源插头5.5mm(公头) 电池仓电源输出接头 2 0.3 0.6  
13 PETG-ECO 黑色 打印履带、电机座 1 35 35 实际总用量大概1.2kg左右吧,毛估没有具体算过
14 PETG-ECO 灰色 打印瓦力头部 1 35 35  
15 PETG-ECO 卡特黄 打印瓦力身体 1 35 35  
16 ASR PRO语音模块(带喇叭) 语音识别 1 28.9 28.9 语音控制(可选)
17 1.3寸TFT彩屏 天气时钟屏幕 1 12.9 12.9 天气时钟使用(可选)
18 ESP8266开发板 天气时钟控制芯片 1 13.3 13.3 天气时钟使用(可选)
19 5V 激光模块 眼睛 1 0.65 0.65 可选
20 WIFI摄像头 网络传输视频 1 20 20 可选
21 Mini Mp3 Player 播放音乐 1 3.8 3.8 可选
22 MFRC-522 RFID模块 NFC无线识别 1 3.9 3.9 可选
23 DHT11温度传感器 测量温度 1 2.5 2.5 可选
24 船型开关 电源开关 1 0.5 0.5 可选
25 3W 8R 喇叭 播放音乐 1 4.2 4.2 可选
26 1u2g云服务器 MQTT服务器、部署H5控制页面 1 69 69 可选
27 丙烯颜料(12种盒装) 瓦力上色 1 1.8 1.8 可选
        合计 424.88  

如果只想完成基础功能,实现履带底盘的行进和关节运动的话硬件部分成本大概在160元,扩展的模块可根据自己需要选择性购买即可。

一下是Diy必备的一些工具和常见的小物品就不算在内了
序号 工具&物品名称
1 热熔胶枪
2 万用表
3 电烙铁
4 老虎钳
5 TF卡、读卡器
6 回形针
7 M3螺柱 螺母
8 502胶水
9 杜邦线(公对母、母对母)
使用或涉及的技术栈
  1. Arduino IDE 开发环境

  2. Element Plus + Vue3 + Vite + TypeScript 自建H5控制页面

  3. Linux + Nginx + Docker + EMQX 后台服务器

一、Web控制端

1.1 Arduino IDE开发环境搭建

Arduino官网 https://www.arduino.cc/

Arduino中文社区 https://arduino.me/

  1. 安装Arduino软件

  2. 添加开发板管理器 文件 -> 首选项 -> 其他开发板管理器地址 将如下链接填入

    一下是Arduino中文社区提供的index 会比github上下载的快些,github可能会遇到下载失败的情况

1
2
http://arduino.me/packages/esp8266.json
https://arduino.me/packages/esp32.json

3.安装Blinker库 在线安装失败 请尝试离线安装包 https://www.diandeng.tech/doc/getting-start-esp32-wifi

Blinker 首页 https://www.diandeng.tech/home

Blinker 的github仓库地址可以自行下载最新支持包 https://github.com/blinker-iot

Blinker 官网提供的安装包 https://www.diandeng.tech/sdk/blinker-library-0.3.10230510.zip

4.安装 ESP32、ESP8266 开发板库,直接点击分享的对应库的exe文件安装既可

5.安装USB串口驱动,这个要看你所使用的开发板上下载芯片的型号,合宙的ESP32 C3要安装CH343驱动,常见的是CH34X、CP21XX芯片等,文件里分享了这两种,如果没有的话请搜索你开发板的串口芯片型号,下载对应驱动后安装。

1.2 使用Blinker App 作为控制端
  1. 新建Blinker独立设备、复制设备秘钥替换代码中的Blinker设备秘钥。

    1
    2
    // Blinker设备秘钥
    char auth[] = "xxxxxxxx";
  2. 更新Blinker App 瓦力设备的界面配置,使用如下代码进行替换。

瓦力界面配置代码:

1
2
{¨version¨¨2.0.0¨¨config¨{¨headerColor¨¨transparent¨¨headerStyle¨¨dark¨¨background¨{¨img¨¨assets/img/headerbg.jpg¨¨isFull¨«}}¨dashboard¨|{¨type¨¨tex¨¨t0¨¨blinker入门示例¨¨t1¨¨文本2¨¨bg¨Ë¨ico¨´´¨cols¨Í¨rows¨Ê¨key¨¨tex-272¨´x´É´y´É¨speech¨|÷¨lstyle¨Ê¨clr¨¨#FFF¨}{ßC¨btn¨ßJ¨fas fa-arrow-alt-down¨¨mode¨ÉßE¨后退¨ßGßHßIÉßKËßLËßM¨btn-back¨´x´Ì´y´¤FßPÉßQ¨#076EEF¨}{ßCßSßJ¨fas fa-arrow-alt-up¨ßUÉßE¨前进¨ßGßHßIÉßKËßLËßM¨btn-go¨´x´Ì´y´¤BßQßXßPÉ}{ßCßSßJ¨fal fa-power-off¨ßUÉßE¨急停¨ßGßHßIÉßKËßLËßM¨btn-stop¨´x´Ì´y´¤DßQ¨#EA0909¨ßPÉ}{ßCßSßJ¨fas fa-arrow-alt-right¨ßUÉßE¨向右¨ßGßHßIÉßKËßLËßM¨btn-right¨´x´Î´y´¤DßPÉßQßX}{ßCßSßJ¨fas fa-arrow-alt-left¨ßUÉßE¨向左¨ßGßHßIÉßKËßLËßM¨btn-left¨´x´Ê´y´¤DßQßXßPÉ}{ßCßSßJ¨fad fa-arrow-alt-circle-up¨ßUÉßE¨抬脖子¨ßGßHßIÉßKËßLËßM¨btn-nick-up¨´x´Ì´y´ÏßQ¨#FBA613¨}{ßCßSßJ¨fad fa-arrow-alt-circle-down¨ßUÉßE¨低脖子¨ßGßHßIÉßKËßLËßM¨btn-nick-down¨´x´Ì´y´ÑßQßoßPÉ}{ßCßSßJ¨fad fa-arrow-alt-up¨ßUÉßE¨左手上¨ßGßHßIÉßKËßLËßM¨btn-left-hand-up¨´x´É´y´ÒßQ¨#00A90C¨ßPÉ}{ßCßSßJßsßUÉßE¨右手上¨ßGßHßIÉßKËßLËßM¨btn-right-hand-up¨´x´Ï´y´ÒßQßv}{ßCßSßJ¨fad fa-arrow-alt-down¨ßUÉßE¨左手下¨ßGßHßIÉßKËßLËßM¨btn-left-hand-down¨´x´É´y´¤BßPÉßQßv}{ßCßSßJßyßUÉßE¨右手下¨ßGßHßIÉßKËßLËßM¨btn-right-hand-down¨´x´Ï´y´¤BßQßv}{ßCßSßJ¨fad fa-arrow-alt-circle-left¨ßUÉßE¨左转头¨ßGßHßIÉßKËßLËßM¨btn-head-left¨´x´Ê´y´ÐßQßo}{ßCßSßJ¨fad fa-arrow-alt-circle-right¨ßUÉßE¨右转头¨ßGßHßIÉßKËßLËßM¨btn-head-right¨´x´Î´y´ÐßPÉßQßo}{ßCßSßJßyßUÉßE´低头´ßGßHßIÉßKËßLËßM¨btn-head-down¨´x´Ì´y´ÍßQßoßPÉ}{ßCßSßJßsßUÉßE´抬头´ßGßHßIÉßKËßLËßM¨btn-head-up¨´x´Ì´y´ËßQßo}{ßCßSßJ¨fad fa-user-robot¨ßUÉßE¨动作1¨ßGßHßIÉßKËßLËßM¨btn-act1¨´x´É´y´ÎßQßXßPÉ}{ßCßSßJ¨fad fa-redo-alt¨ßUÉßE¨动作复位¨ßGßHßIÉßKËßLËßM¨btn-reset¨´x´Ï´y´ÎßPÉßQßX}{ßCßSßJ¨fad fa-lightbulb-on¨ßUÉßE´激光´ßGßHßIÉßKËßLËßM¨btn-led¨´x´É´y´ÌßPÉßQße}{ßCßSßJ¨fad fa-thermometer-three-quarters¨ßUÉßE´温度´ßGßHßIÉßKËßLËßM¨btn-tem¨´x´Ï´y´ÌßPÉßQßv}{ßC¨deb¨ßUÉßIÉßKÑßLÌßM¨debug¨´x´É´y´¤H}÷¨actions¨|¦¨cmd¨¦¨switch¨‡¨text¨‡´on´¨打开?name¨¨off¨¨关闭?name¨—÷¨triggers¨|{¨source¨ß1P¨source_zh¨¨开关状态¨¨state¨|´on´ß1S÷¨state_zh¨|´打开´´关闭´÷}÷´rt´|÷}

3.烧写控制代码到ESP32 C3开发板

​ 合宙ESP32 C3 开发板官方文档 https://wiki.luatos.com/chips/esp32c3/index.html

​ 如果使用的开发板不是ESP32 C3 请自行替换引脚定义,否则编译可能会出现报错。

代码中需要替换以下内容

1
2
3
4
5
6
// Blinker设备秘钥
char auth[] = "xxxxxxxx";
// WIFI名称
char ssid[] = "xxxxxx";
// WIFI密码
char pswd[] = "xxxxx";

更改设备秘钥和wifi名称密码后,将ESP32_Blinker.ino 烧录到ESP32 C3开发板上

烧录之前请确保Arduino IDE已安装如下库:

1
2
3
4
Blinker
DHT sensor library
Adafruit Unified Sensor
EspSoftwareSerial

使用合宙ESP32 C3 烧录程序有一下几点需要注意,否则可能会导致烧录失败:

1.Flash Mode选择 “DIO” 模式。

2.USB CDC On Boot 选择 “Enabled” 方便串口调试。

3.按住板载boot键上电进入下载模式,此时两个板载led微亮。

4.如果烧录完成,板载的灯没有亮起,还是微亮状态,请按下reset键重启,或者给开发板重新上电。

1.3 使用自建H5页面作为控制端

1.安装Docker

1
2
3
4
5
6
7
8
9
10
#安装相关工具
yum install -y yum-utils device-mapper-persistent-data lvm2
#配置清华yum源
yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
#安装Docker
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
#启动Docker
systemctl start docker
#查看Docker版本号
docker -v

2.Docker安装 EMQX

1
2
3
4
5
#拉取镜像
docker pull emqx/emqx:5.4.1
#启动EMQX
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.4.1
#开启服务器的1883、8083、8084、8883端口

3.安装Nginx

1
2
3
yum install -y nginx
#启动 nginx
systemctl start nginx

4.部署H5控制页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#安装unzip
yum install -y unzip

#新建文件夹用于存放H5页面
cd /home
mkdir emqx

#上传dist.zip到 /home/emqx文件夹中

#解压dist.zip
unzip /home/emqx/dist.zip

#Nginx增加如下配置
#域名 xxxx.xxx
server {
listen 80;
server_name xxxx.xxx;
location / {
client_max_body_size 200m;
root /home/emqx/dist;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

#6.重启Nginx
nginx -s reload

3.烧录ESP32_H5.ino程序到ESP32中

  • 打开 ESP32_H5.ino 文件,替换mqtt链接相关的参数
1
2
3
4
5
6
// MQTT Broker
const char *mqtt_broker = "服务器ip或域名";
const char *topic = "订阅的topic";
const char *mqtt_username = "";
const char *mqtt_password = "";
const int mqtt_port = 1883;
  • 参数替换完成后,烧录程序到ESP32中,打开串口监视器查看日志。
  • 打开H5控制页面,测试发送指令,并在串口监视器中查看。
考虑到这里部署H5页面对没接触过Linux的初学者可能会有些挑战、还有些小伙伴没有服务器的情况,所以如果不想搭建的话可以使用我分享出来的网站和MQTT服务器直接使用,为防止多个小伙伴一起使用时,串Topic的情况,使用时请务必按照格式替换Topic
1
2
3
4
5
6
7
8
9
10
H5控制页面地址:https://walle.werfamily.fun
mqtt服务器:t.werfamily.fun
Topic 替换为自己的topic防止与其他小伙伴冲突 格式为 bili/B站UID

// MQTT Broker
const char *mqtt_broker = "t.werfamily.fun";
const char *topic = "bili/你的B站UID";
const char *mqtt_username = "";
const char *mqtt_password = "";
const int mqtt_port = 1883;

自己搭建:需要替换如下,协议、服务器地址、端口

使用我搭建好的:topic请输入自己的B站UID

为了防止小伙伴订阅的主题重复冲突,所以使用时务必要将UID替换为自己的B站UID

B站UID查看的方法为 进入”我的主页” -> 点击空间 -> 点击详情

如何获取UID?

电脑浏览器查看自己的UID 在个人资料中

手机端查看自己的UID

第一步

第二步

第三步

二、履带电机控制

2.1 履带电机使用的是12V偏轴107转/分钟的减速电机,电机驱动使用的是双H桥L298N驱动板

L298N资料:

IN1 IN2 ENA(A) 电机A状态
0或1 0或1 0 停止
1 0 1 顺时针
0 1 1 逆时针
0 0 1 制动
1 1 1 制动
IN3 IN4 ENA(B) 电机B状态
0或1 0或1 0 停止
1 0 1 顺时针
0 1 1 逆时针
0 0 1 制动
1 1 1 制动

这里我们不使用PWM调速,ENA(A) ENA(B)默认短接就是最大转速。

控制方式:两个履带电机正转为前进,都反转为后退,一正转一反转为转向。

IN1 IN2 IN3 IN4 行进状态
1 1 1 1 停止
0 0 0 0 停止
1 0 1 0 前进
0 1 0 1 后退
1 0 0 1 右转
0 1 1 0 左转
2.2 电路连接:

DC12V降压模块的12V 连接 L298N 的12V输入来给L298N供电。

1
2
3
4
5
6
7
8
9
L298N模块                           Arduino UNO开发板

VN1 -------------------------- 6

VN2 -------------------------- 7

VN3 -------------------------- 8

VN4 -------------------------- 9
1
2
3
4
5
6
7
8
9
ESP32 C3开发板                      Arduino UNO开发板

GND -------------------------- GND

5V -------------------------- 5V

IO00 -------------------------- TX

IO01 -------------------------- RX
2.3 Arduino UNO代码

百度网盘链接:https://pan.baidu.com/s/1HNKWE4Z2C2nG0kT3WxBQWA?pwd=zm6l

H5页面控制方式的ESP32 C3代码(推荐,连接很稳定)

百度网盘链接:https://pan.baidu.com/s/1HEGymdvOeyf_LJFmb-WZXg?pwd=qh1i

Blinker控制方式的ESP32 C3代码(连接可能不稳定)

百度网盘链接:https://pan.baidu.com/s/1OK_kX1OvmjliplcLMSUIGQ?pwd=e1in

三、舵机控制

舵机控制使用的是PCA9685 16路舵机驱动板

下面是电路连接图:

1
2
3
4
5
6
7
8
9
10
PCA9685舵机驱动板                   Arduino UNO开发板

GND -------------------------- GND

SCL -------------------------- A5

SDA -------------------------- A4

VCC -------------------------- 5V

使用前请先确保Arduino IDE已安装了Adafruit PWM Servo Driver Library库

Arduino UNO舵机控制代码

百度网盘地址:链接:https://pan.baidu.com/s/1U4rW1MrFWgN5JhVQwd_Qtg?pwd=rghc

四、扩展模块(选配)

没有使用的模块请自行删除对应代码

完整版(包含所有模块)ESP32 C3代码:链接:https://pan.baidu.com/s/1AcRYgk3Fzj8J-DgBbBVwbA?pwd=453w

完整版(包含所有模块)Arduino UNO代码:链接:https://pan.baidu.com/s/1WTP7OwrzfyabWFWJCDkhqA?pwd=w5f2

使用语音控制模块前请先安装天问Block软件

天问官网 :http://www.twen51.com/new/twen51/index.php

ASR PRO语音模块代码:https://pan.baidu.com/s/1F9mbbMGzFKIO1RYE3TRoSA?pwd=ucwb

4.1 ASR PRO语音控制模块
1
2
3
4
5
6
7
8
9
10
11
             
ASR PRO语音模块 ESP32 C3

GND -------------------------- GND

5V -------------------------- 5V

PB5 -------------------------- IO06

PB6 -------------------------- IO07

4.2 DHT11温湿度模块

需要安装 DHT sensor library 库

1
2
3
4
5
6
7
DHT11温湿度模块                          ESP32 C3

+ -------------------------- 3.3V

OUT -------------------------- IO04

GND -------------------------- GND
4.3 RC522 RFID识别模块

Arduino_NFC代码:链接:https://pan.baidu.com/s/1FvI96uUmDy-ZOgpB4U8FaA?pwd=wzwa

需要安装 MFRC522 库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
RC522 RFID模块                        Arduino UNO 开发板

SDA -------------------------- 10

SCA -------------------------- 13

MOSI -------------------------- 11

MISO -------------------------- 12

GND -------------------------- GND

3.3V -------------------------- 3.3V

4.4 Mini Mp3Player Mp3播放模块

需要安装 DFRobotDFPlayerMini 库

官方文档:https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299

把音乐文件夹导入SD卡中

音乐链接:https://pan.baidu.com/s/15qRZ5JTXNoIE5nzJVDV0Vw?pwd=dmkf

Arduino_MP3代码:链接:https://pan.baidu.com/s/1Si77ZYmtONfURM49FJ6aQw?pwd=dpfk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
                   Mini Mp3Player模块                    Arduino UNO 开发板

VCC -------------------------- 5V

RX -------------------------- 2

TX -------------------------- 3

DAC_R -------------------------- 不接线

DAC_1 -------------------------- 不接线

喇叭1 ---------------- SPK_1

GND -------------------------- GND

喇叭2 ---------------- SPK_2

4.5 红色激光
1
2
3
4
5
红色激光头                               ESP32 C3

+ -------------------------- IO10

GND -------------------------- GND

问题Q&A

为了更快的排查问题,解决问题,按一下图中的定义来约定一二三段通信。

首先看控制链路的原理图:

整体连接图:

控制不了?没反应?

(1)首先确保H5控制端和ESP32都连接上了mqtt服务器。

(2)一段通信:H5控制端连接mqtt服务器后,点击发送指令,如果页面自己能收到指令并打印日志,则证明一段通信没问题。

(3)二段通信:H5发送指令后,ESP32串口有相应日志输出,并且板载Led交替闪烁。

(4)三段通信:H5发送指令后,UNO串口有相应日志输出。

ESP32连接不上MQTT服务器?

1.mqtt的topic是否已替换

2.WIFI和密码是否已替换

如何提问?

先确保以上链路的通信没问题之后,在检查模块接线。

1.开发板代码版本、问题描述

2.ESP32串口日志截图

3.UNO串口日志截图

第一次写教程录视频,难免有些卡壳和不足,如有错误之处还请指正,请见谅。

如果感觉对你有帮助的话,请帮忙点个一键三连,谢谢。

未完待续。视频教程还在陆续制作中,文档会同步更新,敬请期待!

设计图

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

BOM

暂无BOM

3D模型

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

附件

序号文件名称下载次数
暂无数据
克隆工程
添加到专辑
0
0
分享
侵权投诉
知识产权声明&复刻说明

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

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

评论

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

底部导航