当前位置:首页 > 技术分析 > 正文内容

7秒还原魔方不难!我手搓的机器做到了!

ruisui883个月前 (02-03)技术分析24

外面卖的魔方还原机器人少说也要200+

不如自己做一个!能7秒还原魔方!成本还能压缩至140元左右。

还能学习rp2040单片机控制和魔方求解算法!


魔方机器人工作原理

用两个颜色的传感器把所有棱块和角块的颜色扫一遍,用降群法寻找22步以内的求解方式,然后按照解出的结果还原。

这个过程我使用rp2040单片机控制。


关于硬件设计

1.电路设计注意事项

  • 将RP2040单片机的GPIO,任意连接到步进电机驱动器、颜色传感器、霍尔传感器。
  • 除了SPI、UART,其他引脚只用了GPIO,未使用其他复用功能。
  • 霍尔传感器只能5V供电,RP2040单片机IO是3.3V,注意电平转换设计
  • FLASH是可选的,如果不使用FLASH,平均还原步骤数在32步左右

2.GPIO分配方式

①步进电机使能信号

  • SPEPPER_EN GP2

②步进电机控制信号

  • SPEPPER_STEP0 GP11
  • SPEPPER_DIR0 GP10
  • SPEPPER_STEP1 GP9
  • SPEPPER_DIR1 GP8
  • SPEPPER_STEP2 GP7
  • SPEPPER_DIR2 GP6

③霍尔开关,用于寻找零点

  • HALL_0 GP5
  • HALL_1 GP3
  • HALL_2 GP4

④按键

  • BUTTON_0 GP27
  • BUTTON_1 GP28

⑤颜色传感器信号

  • SDA0 GP14
  • SCL0 GP15
  • SDA1 GP12
  • SCL1 GP13`

⑥SPI NAND FLASH信号

  • CS(1) GP17
  • DO(2) GP16
  • DI(5) GP19
  • CLK(6) GP18


关于结构设计

推荐使用ABS材料3D打印,喷嘴0.4mm,层高0.2mm,顶层5层、底层5层、外壳4圈、填充20%-40%,生成支撑。


单片机固件编译

推荐使用Linux系统进行开发。

①按照RP2040官方文档中的脚本搭建开发环境

②完成后,可额外安装pypy3,用于计算查找表。

生成查找表,并且进行验证(可选步骤,prog_flash目录下提供生成好的)。

④运行完成后,得到lookup.dat,文件大小大约70MB。

cd ./src_21_step/verify_on_pc
pypy3 prun.py
make
./solve

编译单片机固件

cd ./src_21_step/mcu
mkdir build
cd build
export PICO_SDK_PATH=xxxxxxxx
cmake ..
make

然后找到cube_robot.uf2。

刷写到RP2040单片机即可。

可以连接USB,使用minicom -D /dev/ttyACM0指令查看调试信息,例如:

color_detect: URUFUBDDUFRRFRDDFURLLLFUDLLLUBRDLRBFLDBDLBFFFBUBRBBRUD
Find 21 step solution in 139ms: B F' D' L' B F R B' U2 R B U2 B2 R2 U F2 D' B2 L2 U F2 
Totel time cost 7.772s: 
color_detect: UFFFURURRBDRRRDDLFBUDBFFBDFLBLLDBUBDFURLLRBUDUDLLBFRUL
Find 19 step solution in 95ms: F L2 B' R' L2 B L' B' F' D B2 D F2 D U B2 F2 L2 B2 
Totel time cost 7.575s:

刷写SPI NAND FLASH

连接电脑和RP2040的串口,注意线一定要短,波特率高达1Mbps

按住BUTTON_0的同时给魔方机器人上电,程序会计算NAND FLASH的CRC32校验和。

如果失败,自动进入刷写模式。

cd ./src_21_step/prog_flash
make
./prog /dev/ttyS0 # /dev/ttyS0改为电脑的串口号

运行prog的电脑终端出现如下调试信息,说明刷写成功。

mcu in SPI FLASH programming mode
Check lookup.dat CRC32 = A8093698
0, size=131072
Erase Block 0
Program Block 0 ................................................................
Verify Block CRC32 0................................................................
此处省略若干行...
Erase Block 565
Program Block 565 ................................................................
Verify Block CRC32 565................................................................

装配与调试参考参考资料。

参考资料:

[1]https://oshwhub.com/hemn/third-order-rubiks-cube-restore-robot

— 完 —

嘉立创EDA·头条号

关注我,看一手优质开源项目

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1214.html

标签: pypy3
分享给朋友:

“7秒还原魔方不难!我手搓的机器做到了!” 的相关文章

GitLab-创建分支

描述分支是独立的生产线,是开发过程的一部分。分支的创建涉及以下步骤。创建一个分支步骤1-登录您的GitLab帐户,然后转到“ 项目”部分下的项目。步骤2-要创建分支,请单击“ 存储库”部分下的“ 分支”选项,然后单击“ 新建分支”按钮。步骤3-在“ 新建分支”屏幕中,输入分支的名称,然后单击“ 创建...

代码管理-9-gitlab的使用和设置

gitlab使用1、外观设置完成后保存,返回登录页面查看关于注册,有些公司是不允许打开的,,有些人数非常多的公司就需要打开注册的功能,让人员自己注册,我们来给他特定的权限就可以,毕竟人非常多的时候还由我们来给她们注册就非常不现实了,工作量会很大2、自动注册3、组&用户&项目创建组设置组名称、描述等创...

7 招教你轻松搭建以图搜图系统

作者 | 小龙责编 | 胡巍巍当您听到“以图搜图”时,是否首先想到了百度、Google 等搜索引擎的以图搜图功能呢?事实上,您完全可以搭建一个属于自己的以图搜图系统:自己建立图片库;自己选择一张图片到库中进行搜索,并得到与其相似的若干图片。Milvus 作为一款针对海量特征向量的相似性检索引擎,旨在...

我的VIM配置

写一篇关于VIM配置的文章,记录下自己的VIM配置,力求简洁实用。VIM的配置保存在文件~/.vimrc中(Windows下是C:\Users\yourname \_vimrc)。VIM除了自身可配置项外,还可插件扩展。VIM的插件一般用vundle或vim-plug来管理,但我力求简单,不打算装太...

三维家-系统快捷键使用

快键件使用:通过简单的键盘+鼠标操作,快速完成搭配。1.基础快捷键1) Ctrl+V:复制选中对象第一步:鼠标左击物体,按下Ctrl+V 即可复制选中对象。2) Ctrl+G:组合多选对象第一步:按住Ctrl键多选对象--按住Ctrl+G--确定。3) Ctrl+B:解组选中对象第一步:左击选中对象...

有效地简化导航-Part 1:信息架构

「四步走」——理想的导航系统要做一个可用的导航系统,网页设计师必须按顺序回答以下4个问题:1. 如何组织内容?2. 如何解释导航的选项?3. 哪种导航菜单最适合容纳这些选项?4. 如何设计导航菜单?前两个问题关注构建和便签内容,通常称为信息架构。信息架构师通常用网站地图(site map diagr...