Giter VIP home page Giter VIP logo

cuberobot's Introduction

CubeRobot

In 2017, Zeguang Chang and I built a cube robot using DSP and STM32. We open source all the code of CubeRobot in this repository.
You can find the complete restore process on BiliBili.

  • In terms of hardware, we adopt a four-axis structure, with four mechanical arms to complete the blessing and rotation of the cube.
  • In terms of software, the robot consists of two subsystems: sensing system and control system.

We use both DSP development board (TMS320C6748) and STM32 development board (STM32F407ZGT6 ARM). The DSP system is equipped with an ov5640 camera, which can complete the color recognition task, while the STM32 system controls 4 steering gears and 4 stepping motors to complete all actions of cube restoration.

DSP (Sensing System)

In the CubeRobot_DSP directory, we release all code of the sensing system. The src/main_camera.c contains the main function, and the inc/ contains all subfunctions and head files.

  • Note that the inc/color.c is the most important file because it performs the Color Recognition Task and Cube Solving Task.
  • The src/main_camera.c performs communication with STM32 and basic logic of trigger the solving action.

As we developed this project in CCS5.5 IDE environment, we have also provide the original CCS project files in others/CubeRobot_CCS-5.5_Project.zip.
Note that the solving algorithm of the Rubik's Cube is borrowed from Thistlethwaite's 52-move algorithm. We thank Jaap Scherphuis for his wonderful realization. Please refer to others/Thistlethwaite's algorithm.cpp for the original C++ code.

STM32 (Control System)

In the CubeRobot_STM32 directory, we release all code of the control system. These code aims to control the coordination of 4 stepping motors and 4 steering gears. The steering gear controls the forward and backward movement of the mechanical arm, and the stepping motor controls the rotation angle.

Acknowledge

This project was completed by me and Zeguang Chang. Thank him for working side by side all the time. I feel very lucky for joining the Linear Motor Laboratory led by Jiwen Zhao during my undergraduate period in Anhui University, where I spent unforgettable and perfect four years.

cuberobot's People

Contributors

shunli-wang avatar

Stargazers

VSS avatar Zhu LB avatar Phantom avatar  avatar  avatar  avatar Michael Sun avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.