Hot Keywords:Variable Speed Drives, soft starters, motors, intelligent robots, and power modules

Scan your phone once
Dual arm dual finger Rubik's Cube robot controlled by 4 closed-loop stepper motors
1. Supporting torque control, clamping pressure can be controlled to prevent the cube from slipping
2. High performance, 6-7 second restoration of Rubik's Cube
3. Visual module based on ESP32S3, no need for computer
4. Rubik's Cube Robot with Complete Open Source Materials and Video Tutorial
5. Can be used for teaching and research in microcontroller design and development, PCB board design, software source code design, and mechanical structure design
Dual arm dual finger Rubik's Cube robot controlled by 4 closed-loop stepper motors
1. Support torque control, can control clamping pressure to prevent the cube from slipping
2. High performance, 6-7 second restoration of Rubik's Cube
3. Visual module based on ESP32S3, no need for computer
4. The mechanical structure is designed using standard parts, CNC machined components, and 3D printed parts. The rotating arm has minimal shaking, fast restoration speed, high reliability, high strength, and will not be damaged by abnormal collisions
5. Closed loop control, based on open-source closed-loop stepper motor control board
6. Provide complete open-source materials, including schematics PCB、 Structural drawings, software code, debugging guide, video tutorials
Software version ESP32 and computer version
1. The computer version is written in Python and used with a USB camera and USB to 485 module. It is mainly used for algorithm verification and can also be used directly.
2. The ESP32 version is written in C and developed based on the ESP32S3 microcontroller. It can be used independently without relying on other devices and provides hardware schematics, PCBs, and software source code.
3. The software code is fully open source
Function Description of Each Module
1. Color detection module (color_detect. c)
Function: Identify the colors of 54 blocks of Rubik's Cube from camera images
Operating mechanism:
Divide 18 color block regions based on perspective transformation
Extract the main color tone of each region using a two-dimensional histogram (HSV space)
Implement RGB565 ↔ HSV Conversion Algorithm
Classify 54 color blocks into 6 faces using clustering algorithm
Provide color difference calculation and color similarity judgment functions
2. Main control module (main. c)
Function: System control, coordinating the work of various modules
Operating mechanism:
Initialize WiFi hotspot and HTTP server (ports 80/81)
Manage camera capture tasks and image processing workflow
Implement state machine control (10 state processing Rubik's Cube restoration processes)
Provide a web interface:
Real time video streaming (MJPEG)
Parameter configuration (brightness, coordinate points, etc.)
O Motion control and status monitoring
O Handling SPIFFS file system operations (configuration file read and write)
Coordinate color recognition and motion control module
3. Motion control module (motion. c)
Function: Accurately control 4 stepper motors to complete Rubik's Cube operations
Operating mechanism:
RS485 communication protocol implementation (1Mbps)
O Trapezoidal velocity curve motion control
Multi axis linkage algorithm (coordinated arm rotation and finger movement)
Automatic zeroing and position correction
O Action sequence parsing and execution (such as instructions like "R1 L * F")
O Blockage detection and timeout protection
Current adaptive control (increasing current during clamping)
4. Solver core module (solve. c)
Function: Implement two-stage algorithm for solving Rubik's Cube (Kociemba algorithm)
Operating mechanism:
State representation transition:
Convert 54 color representations to edge/corner block coordinate representations (UtelToCubieCube)
O Verify the legality of the cube state (CubieCubeVerify)
Two stage search:
Phase 1: Quickly reduce a group to a subgroup
Calculate flip/twist/UDSlice coordinates
O Use pruning table to accelerate search (CoordCubeSetWithPrun)
Phase 2: Complete the solution within the subgroup
O Handle the symmetry of corner/edge block arrangement (CubieCubeGetPermSymInv)
Multi directional parallel search (6 URF symmetry directions)
Optimization of solution:
O Action sequence compression (SolutionAppendSolMove)
O Support format control for solution methods (reverse output/adding separators, etc.)
5. Action optimization module (optimizer. c)
Function: Convert the Rubik's Cube solution into a sequence of robotic arm actions
Operating mechanism:
State machine modeling:
Define 96 robotic arm states (24 cube orientations x 4 arm states)
Use a 96 × 96 state transition table (fliputable)
Dynamic path planning:
DP table stores the optimal path (DPState structure)
The cost of state transition is based on measured time (TimeCost enumeration)
O Action sequence generation:
The flip sequence pool contains 83 precomputed actions (flipusequences)
O Rotate operation to handle arm coordinated motion (calculate_twist_time_dand_state)
O Automatic calibration of final position (adjust_final_position)
6. Scramble the generation module (shuffle. c)
Function: Generate random scrambled states and verify solutions
Operating mechanism:
Status representation:
3D representation of edge/corner blocks (cube_struct)
Mapping table between 54 faces and edge/corner blocks (edge_to-face, corner_to-face)
Random shuffling:
Generate 50-69 random operations using hardware RNG (esp_random)
O Action sequence execution (cube_routestr)
Solution validation:
Reverse solution generation
O State consistency check (verify)
7. Web front-end (index. html)
Function: The Rubik's Cube robot debugging webpage provides 4 core functions
Operating mechanism:
1. Equipment control: Motor enable/disable, robotic arm return to zero, Rubik's cube clamping/releasing and other operations can be achieved through buttons, supporting custom action sequence testing (such as "R+T" indicating that the right motor is rotating forward)
2. Visual calibration:
Real time display of camera images
Provide 6 drag and drop markers for calibrating the recognition area of the Rubik's Cube
O Support coordinate saving (click the "Save Coordinates" button)
3. Color recognition:
Dynamically display the color recognition results of 54 Rubik's Cube blocks
Present in 3D unfolded image format (9 × 12 grid layout)
Each color block displays the number and identification color (e.g. "0: W" represents white block 0)
4. Status monitoring:
Real time display of system connection status
Feedback motor angle data
O Brightness adjustment of fill light (0-100 slider)
All functions communicate in real-time with ESP32 devices through WebSocket
The interface adopts responsive design, suitable for PC and mobile device operation
8. Online management of configuration files (config. html)
Function: Online management of device configuration files
Operating mechanism:
0. File management:
O Supports 4 types of configuration file operations: motion.cfg (action parameters), main.cfg (main configuration), testcase.txt (test cases), and index.html (main interface)
1. Core operations:
Open: Load the selected configuration file from the device
Save: Write the edited content to the device memory
Download: Download the configuration file to the local computer
All operations interact with ESP32 devices through HTTP interfaces (/cfg/get,/cfg/save,/cfg/download)
Implement remote management of configuration files, allowing for modification of key parameters without the need for physical device access
The interface is simple and efficient, designed specifically for development and debugging
Thank you: Professor Xu and Professor Hemn from Qingdao University of Science and Technology
Previous:First
Next :Last
Do you need any help?
+86 15064862651
Follow Us
Copyright © 2025 Horidel.com Horidel Technology Company All Rights Reserved

+86 15064862651
horidel@outlook.com