Skip to content

《本科毕业设计》:三阶魔方还原机器人

Notifications You must be signed in to change notification settings

jindada1/CubeRobot

Repository files navigation

三阶魔方还原机器人

基于 python 和 Arduino,实现能够还原三阶魔方的机械结构

系统流程

  1. 通过摄像头识别魔方颜色
  2. 将识别结果转化成魔方求解算法的输入
  3. 执行魔方求解算法,得出还原操作序列
  4. 指令优化与碰撞规避处理
  5. 通过wifi将序列发给硬件控制器
  6. 硬件控制器按照序列,控制机械结构执行还原
  7. over

依赖

python 版本: 3.x

  • pywifi
  • pillow
  • numpy
  • opencv-python
$ pip install -r requirements.txt
$ python3 guiconfig.py

开发

软件部分

  • tkinter gui 组件的设计与开发

    • Camera:基于cv2.VideoCapture 构造的摄像头管理类

    • HoverButton:基于 tk.Button 提供可带参数事件绑定接口,并做了些许美化

    • ViewCanvas:颜色数据采集与调试工具中的面板,用于展示视频与图片

    • CubeFloorPlan:用于绘制并管理魔方平面展开图,存储并管理整个魔方的色块分布,并生成魔方色块序列

    • HSVAdjuster:颜色数据采集与调试工具中的面板,实时调整颜色识别中使用的 hsv 范围并保存

    • SampleAdjuster:颜色数据采集与调试工具中的面板,实时调整用于颜色识别的采样范围并保存

    • Console:控制台模块,用于主控程序运行时的状态输出

    • Window:Tk 窗口的封装,提供了 update_func 接口

    • CameraCanvas:摄像头视频展示面板,用于主控程序

  • 颜色数据采集与调试工具的开发

    config_gui

  • 魔方模拟器的开发

    • 虚拟魔方的实现
  • 执行还原序列

    • 获取魔方状态
  • twophase 求解接口的后台服务器

web_gui

  • 主控程序的开发

    • 计算机视觉模块:魔方定位与颜色块的识别

    • 魔方求解模块twophase算法

    • 指令调整与优化

      • 机器动作指令集的设计

      • 标准还原序列到机器动作指令序列的转化

      • 碰撞规避处理

    • wifi模块

      • wifi检测与连接
      • 自动获取 esp8266 模块在 ap 模式下的 ip 地址
      • 发送数据和接收数据

    软件架构如下:

    structure

    界面如下:

    robot_gui

硬件部分

  • esp8266

    • ap 模式

    • 提供路由处理来自客户端的请求,并返回处理结果

  • 操作序列的解析

  • 电机控制逻辑

    • 单个电机动作控制

    • 多个电机同步运行

    • 单个电机角度微调

单个电机的基本连接如下:

connect

机械结构建模

模型及装配体如下图所示,所有原文件在sldprt目录下

凹槽凸轮

导出的3D打印模型在stl目录下

动图演示

凹槽凸轮 魔方翻转
装配爆炸视图

实物照片

翻转魔方 魔鬼接线
识别魔方色块分布 旋转魔方面

About

《本科毕业设计》:三阶魔方还原机器人

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published