外面卖的魔方还原机器人少说也要200+
不如自己做一个!能7秒还原魔方!成本还能压缩至140元左右。
还能学习rp2040单片机控制和魔方求解算法!
魔方机器人工作原理用两个颜色的传感器把所有棱块和角块的颜色扫一遍,用降群法寻找22步以内的求解方式,然后按照解出的结果还原。
这个过程我使用rp2040单片机控制。
关于硬件设计原理图
PCB图 PCB可采用嘉立创EDA免费打板
1.电路设计注意事项
将RP2040单片机的GPIO,任意连接到步进电机驱动器、颜色传感器、霍尔传感器。除了SPI、UART,其他引脚只用了GPIO,未使用其他复用功能。霍尔传感器只能5V供电,RP2040单片机IO是3.3V,注意电平转换设计。FLASH是可选的,如果不使用FLASH,平均还原步骤数在32步左右。2.GPIO分配方式
①步进电机使能信号
SPEPPER_EN GP2②步进电机控制信号
SPEPPER_STEP0 GP11SPEPPER_DIR0 GP10SPEPPER_STEP1 GP9SPEPPER_DIR1 GP8SPEPPER_STEP2 GP7SPEPPER_DIR2 GP6③霍尔开关,用于寻找零点
HALL_0 GP5HALL_1 GP3HALL_2 GP4④按键
BUTTON_0 GP27BUTTON_1 GP28⑤颜色传感器信号
SDA0 GP14SCL0 GP15SDA1 GP12SCL1 GP13`⑥SPI NAND FLASH信号
CS(1) GP17DO(2) GP16DI(5) GP19CLK(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_pcpypy3 prun.pymake./solve编译单片机固件
cd ./src_21_step/mcumkdir buildcd buildexport PICO_SDK_PATH=xxxxxxxxcmake ..make然后找到cube_robot.uf2。
刷写到RP2040单片机即可。
可以连接USB,使用minicom -D /dev/ttyACM0指令查看调试信息,例如:
color_detect: URUFUBDDUFRRFRDDFURLLLFUDLLLUBRDLRBFLDBDLBFFFBUBRBBRUDFind 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: UFFFURURRBDRRRDDLFBUDBFFBDFLBLLDBUBDFURLLRBUDUDLLBFRULFind 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_flashmake./prog /dev/ttyS0 # /dev/ttyS0改为电脑的串口号运行prog的电脑终端出现如下调试信息,说明刷写成功。
mcu in SPI FLASH programming modeCheck lookup.dat CRC32 = A80936980, size=131072Erase Block 0Program Block 0 ................................................................Verify Block CRC32 0................................................................此处省略若干行...Erase Block 565Program Block 565 ................................................................Verify Block CRC32 565................................................................装配与调试参考参考资料。
参考资料:
[1]https://oshwhub.com/hemn/third-order-rubiks-cube-restore-robot
— 完 —
嘉立创EDA·头条号
关注我,看一手优质开源项目