Microduino-Joypad Self-balance Robot Kit

From Microduino Wiki
Jump to: navigation, search
Language: English  • 中文


  • Project:Microduino Self-balance Robot
  • Purpose:To control the self-balance robot by Microduino-Joypad.
  • Difficulty: High
  • Time-consuming: 6-hour
  • Maker: Microduino Studio-PKJ


  • Principle

By using gyroscope and accelerometer (Microduino-10DOF) to detect altitude change of the robot, and ([[Microduino-Stepper) to drive the motor precisely and keep the balance of the system.

  • Structure

The robot is simply structured with a self-designed 3D-printer frame and a stepper as well as a self-balance system to adjust.

  • Advantage

It is highly integrated with less wires and powerful modules, which adopts Nrf24 for wireless communication currently. Users can change communication option according to personal preference.

Frame Buildup and Debugging


  • Microduino modules needed
Module Number Function
Microduino-Core+/zh 1 Core board
Microduino-USBTTL 1 Program upload
Microduino-10DOF 1 Altitude stability
Microduino-nRF24 1 Wireless communication
Microduino-Stepper 2 Stepping motor drive
Microduino-Robot 1 Motor driver
  • Other equipment
Module Number Function
Stepper 2 Keep wheels running
Wheel 2
18650 Battery box 1 Battery loading
18650 Battery 2 Power supply
3D printer frame 1 Frame support
Plastic fastener 12 Fixate the frame
Microduino Joypad Balanced car all.jpg

Robot Buildup

  • Step 1:Build the model by GoogleSketchUp and print out the model with 3D printer
Microduino Joypad Balanced car 3D.jpg
  • Step 2: Put four single-pass and double-pass on the 3D printer frame to fixate Microduino-Robot.
Microduino Joypad Balanced car 1.jpg
Microduino Joypad Balanced car 2.jpg
Microduino Joypad Balanced car 3.jpg
  • Step 4: Fixate the installed boards on the frame with the nylon strings.
Microduino Joypad Balanced car 4.jpg
Microduino Joypad Balanced car 5.jpg
  • Step 6: Stick the double-sided adhesive on the bottom of the stepper to strengthen it.
Microduino Joypad Balanced car 6.jpg
  • Step 7: Install the two steppers together.
Microduino Joypad Balanced car 7.jpg
  • Step 8: Fixate the battery.
Microduino Joypad Balanced car 8.jpg
  • Step 9: Connect the power interface of the battery to the board. You can check whether the power supply works normally or not by switching on the power of Microduino-Robot.
Microduino Joypad Balanced car 9.jpg
  • Step 10: Wiring method of the stepper connector. Take M.B drive interface for example, the left motor connects to Microduino-Stepper and the left one to M.A
Microduino Joypad Balanced car 10.jpg
  • Step 11: Fixate the metal post on the stepper.
Microduino Joypad Balanced car 11.jpg
  • Step 12: Fixate the wheel on the metal post.
Microduino Joypad Balanced car 12.jpg

Then, the whole structure buildup is finished.

Software Debugging

You will need_03_Microduino_nRF_RF24 and _03_Microduino_nRF_RF24Network and please replace the original Arduino IDE libraries.

    • Program Test:


  • Debugging:
    • Preparation
      • Hardware: Microduino-USBTTL and the well-built self-balance robot.
      • Software: Libraries supported and Arduino IDE;
      • Uncompress the library files and test program and then copy them to library folder in Arduino IDE;
      • Open the program and select Microduino Core+(Atmega644P@16M,5V) as the board after compiling, then stack Microduino-USBTTL and upload directly;
Microduino Joypad Balanced car ok1.jpg
      • After the upload, you can take off Microduino-USBTTL and turn on the power switch. Take the robot for about 4 seconds and then loose your hands and watch if it can stand up.
      • You can try to disturb the robot with your hands and can feel the counterforce.
Microduino Joypad Balanced car ok2.jpg

Remote Controller (Microduino-Joypad) Buildup

Here we adopt Microduino-Joypad as the remote controller. Off course, you also other modules to build it.

Equipment Requirement

    • Modules modules needed
Module Number Function
Microduino-Joypad 1 Remote controller
Microduino-Core/zh 1 Core board
Microduino-USBTTL 1 Program download
Microduino-nRF24 1 Wireless communication
    • Other Equipment
Module Number Function
USB cable 1 Data transmission
Battery box 1 Battery loading
7th dry battery 3 Power supply

Hardware Buildup

    • Step 1: Install Microduino-TFT on the panel of Microduino-Joypad;
Microduino Joypad TFT.jpg
    • Step 2: Install nylon fastener on Microduino-Joypad and stick the base panel on the bottom of Microduino-Joypad;
Microduino Joypad nilong.jpg
    • Step 3: Connect Microduino-TFT and Microduino-Joypad through wires;
Microduino Joypad Connection.jpg
    • Step 4: Connect the battery on the base board and notice the electrode which you can see on the back of the board.
Microduino Joypad power 1.jpg
    • Step 5: Fixate the base board and the panel with nylon fasteners;
Microduino Joypad face bord.jpg
    • Step 6: You can turn on the power switch and watch whether the power supply works fine.
Microduino Joypad switch.jpg

Software Debugging

You will need libraries below: _01_Microduino_GFX, _01_Microduino_TFT_ST7735 and _08_Microduino_Shield_Joypad;Please replace the original Arduino IDE libraries.

    • Open the program and choose the right board for download after compiling, and then have an overall configuration after the download.
  • Test
    • Turn on the power switch of the remote controller and press the reset key and enter the system. Please press the key A in 4 seconds and enter the adjustment mode of the remote controller.
Microduino Joypad Remote1.jpg
    • Rotate two joysticks to the fullest and press key 3 and enter Robot control mode after seeing no data change on TFT screen.
    • The left switch is OutPutEnable and only when you turn it upside can you control the robot. The left joystick controls back and forth rotation, and the right joystick controls left and right-direction rotation.
  • Select control mode
    • We can select to control Quad. or Robot by【key3】. Meantime, under Robot mode, we can control the self-balance robot as well as BOXZ mini robot. “Black” means being selected.
Microduino Joypad config2.jpg
    • We can select somatosensory control mode by【key4】. Under the mode, you must stack Microduino-10DOF and select “MPU ON”. However, if under the joystick mode, you need to choose “MPU OFF”.
Microduino Joypad config3.jpg
  • Joystick adjustment 摇杆校准
    • Rotate two joysticks to the fullest and press key 3 and enter Robot control mode after seeing no data change on TFT screen.
Microduino Joypad config4.jpg
  • Turn on the switch on the left top and then you can have a control of the robot by moving the joystick and watching the data change on the screen.
Microduino Joypad config5.jpg
  • The right switch is for range adjustment. Turn it to the top and you can fully control the self-balance robot.
Microduino Joypad config6.jpg


  • Keep the electrode correct. Otherwise, it may cause circuit burn.
*Please first adjust the remote controller or it may lead to false control.  
  • The wire connection of Microduino-Stepper should be correct. If you find it cannot work, please change and try again.