Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

小瓦硬件代码

小瓦硬件代码是一个面向小瓦机器人硬件控制的项目,包含树莓派 4B 上位机程序、STM32L4/Arduino 下位机程序,以及 PC 端视觉跟随、语音对话和远程控制脚本。项目用于机器人底盘、舵机、摄像头、语音、YOLO 视觉识别、远程控制、健康数据上传和 Web 控制界面的联动。

项目结构

.
├── 树莓派4B/
│   ├── app.py                  # 树莓派端主入口
│   ├── config.py               # 全局配置
│   ├── hardware.py             # 串口、底盘和近链路硬件通信
│   ├── web_server.py           # Flask Web 控制服务
│   ├── ui.py                   # 本地 Tkinter 显示界面
│   ├── templates/              # Web 页面模板
│   ├── static/                 # Web 前端静态资源
│   ├── video_feed.py           # 摄像头采集与视频流
│   ├── audio_client.py         # 语音采集客户端
│   ├── tts_stream_player.py    # 流式 TTS 播放
│   ├── mqtt_manager.py         # OneNet / 后端数据上传
│   ├── event_manager.py        # 事件提醒与健康数据刷新
│   └── socketio_controller.py  # Socket.IO 远程控制
├── STM32L4/
│   ├── walle1.1.ino            # 下位机主控程序
│   ├── animations.ino          # 机器人动作动画
│   ├── display.ino             # 显示相关逻辑
│   ├── MotorController.hpp     # 电机控制封装
│   ├── Queue.hpp               # 动作队列
│   └── build/                  # 当前构建产物
└── 自己电脑/
    ├── zuixin.py               # PC 端视觉跟随 + 语音交互主程序
    ├── zuixin1.py              # 集成远程控制的 PC 端程序
    ├── duihua.py               # 语音对话与视频处理脚本
    ├── zidonggensui.py         # YOLO 自动跟随脚本
    ├── remote_motor.py         # Socket.IO 远程运动控制
    ├── yolo11n.pt              # YOLO 轻量模型权重
    └── yolo11s.pt              # YOLO 小模型权重

功能特性

  • 树莓派 4B 端多线程主程序,统一启动 Web、摄像头、语音、TTS、MQTT、远程控制和本地 UI。
  • STM32L4/Arduino 端控制底盘电机、舵机、DHT11 温湿度传感器和动作队列。
  • Flask Web 控制页面,支持视频流输出、串口状态查看和机器人动作控制。
  • Socket.IO / WebRTC / UDP 多种远程控制与通信方式。
  • 摄像头采集、推流、低延迟视频预览和本地屏幕展示。
  • OneNet MQTT 与后端 HTTP 接口上传健康数据、事件提醒和机器人状态。
  • 语音采集、VAD 检测、流式 TTS 播放和本地音频输出。
  • PC 端基于 YOLO 的目标检测与自动跟随,支持向树莓派发送 UDP 运动指令。
  • PC 端语音对话链路,支持 STT、LLM 回复、TTS 音频流和远程电机控制联动。

硬件环境

  • Raspberry Pi 4B
  • STM32L4 或兼容 Arduino 开发板
  • PCA9685 舵机驱动板
  • DHT11 温湿度传感器
  • 摄像头模块或 USB 摄像头
  • 底盘电机、电机驱动模块和舵机
  • 麦克风、扬声器或 USB 声卡

树莓派端运行

进入树莓派代码目录:

cd 树莓派4B

安装 Python 依赖:

pip install -r ../requirements.txt

根据实际硬件和网络环境修改 config.py,重点检查:

  • 串口设备,例如 /dev/serial0/dev/ttyAMA3/dev/ttyACM0
  • 摄像头设备,例如 /dev/video0
  • Web 服务端口和 UDP/TCP 端口
  • OneNet MQTT 产品、设备和 token
  • 后端 HTTP / Socket.IO / WebRTC 服务地址
  • 音频采集、播放设备和 TTS 参数

启动主程序:

python app.py

默认 Web 服务端口为 5000,可在浏览器中打开:

http://<树莓派IP>:5000

PC 端运行

进入 PC 端代码目录:

cd 自己电脑

安装依赖:

pip install -r ../requirements.txt

根据实际网络环境修改脚本中的树莓派 IP、视频流地址、UDP 端口和云端 STT/LLM/TTS 接口地址。常用入口包括:

python zuixin.py
python zuixin1.py
python zidonggensui.py
python duihua.py

yolo11n.ptyolo11s.pt 是随项目保存的 YOLO 模型权重,可用于视觉跟随和目标检测测试。

STM32L4 / Arduino 端烧录

  1. 使用 Arduino IDE 或兼容 STM32 的 Arduino 开发环境打开 STM32L4/walle1.1.ino
  2. 安装并选择对应开发板包和串口。
  3. 安装代码中需要的库,例如 Adafruit_PWMServoDriverDHT 等。
  4. 按实际接线检查电机、舵机、DHT11、串口和 PCA9685 引脚定义。
  5. 编译并上传到开发板。

配置说明

项目当前配置集中在 树莓派4B/config.py 中。发布到公网或部署到新设备前,请根据实际环境修改其中的网络地址、登录密码、云平台 token、串口和硬件参数。

注意事项

  • 机器人硬件运行前请先悬空或断开动力,确认电机方向和急停方式后再落地测试。
  • 树莓派端依赖摄像头、声卡、串口和桌面显示环境,PC 端依赖摄像头视频流、PyAudio 和 YOLO 推理环境,首次部署时建议逐个模块测试。
  • 项目包含本地构建产物和 IDE 配置,便于完整保留当前开发现场。
  • 如果要长期公开维护,建议后续将真实密钥和设备 token 改为环境变量或本地配置文件。

License

This project is licensed under the MIT License. See LICENSE for details.

About

小瓦机器人树莓派4B、STM32L4与PC端YOLO视觉跟随/语音交互控制代码

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages