Skip to content
Self balancing robot (Segway) based on modified/extended MultiWii 2.3 firmware.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
application.windows32
.gitattributes
.gitignore
Alarms.cpp main changes for stable release 1.0 Nov 23, 2014
Alarms.h
BalancingWii.cpp main changes for stable release 1.0 Nov 23, 2014
BalancingWii.h
BalancingWii.ino
EEPROM.cpp main changes for stable release 1.0 Nov 23, 2014
EEPROM.h rev 0.1 May 20, 2014
GPS.cpp
GPS.h rev 0.1 May 20, 2014
IMU.cpp main changes for stable release 1.0 Nov 23, 2014
IMU.h rev 0.1 May 20, 2014
LCD.cpp
LCD.h
Output.cpp
Output.h
Protocol.cpp main changes for stable release 1.0 Nov 23, 2014
Protocol.h rev 0.1 May 20, 2014
README.md
RX.cpp main changes for stable release 1.0 Nov 23, 2014
RX.h rev 0.1 May 20, 2014
Sensors.cpp main changes for stable release 1.0 Nov 23, 2014
Sensors.h
Serial.cpp main changes for stable release 1.0 Nov 23, 2014
Serial.h
config.h main changes for stable release 1.0 Nov 23, 2014
def.h
types.h

README.md

=================================== BalancingWii rev 1.0

Autumn... More time to keep soldering iron and do something cool! So let's continue! :)

This is stable 1.0 release of balancing robot (based on modified/extended MultiWii 2.3 firmware).

New features:

  • Fall down?! New auto rise (stand up) function! (can be activated via box in GUI). Now it's also possible to stand up manually when it's fall down.
  • Position hold (can be activated via box in GUI). Try to play, how it returns when you are pushing/kicking the robot.
  • Possibility to control/steer from Android device by MultiWii EZ-GUI tool (go to Config -> Advanced -> Model control New)
  • More stability and speed accordingly (see in video!)
  • Predefined PIDs
  • Simple mode for newcomers
  • Set of code refactorings and cleaning.

New video: http://youtu.be/038e2j9nE3M

Blogs:

Enjoy! ;)

Donate

=================================== BalancingWii rev 0.1

Hi all!

This is the balancing robot based on modified/extended MultiWii 2.3 firmware.

Video: http://youtu.be/U8bBna9iWCU

Blogs:

Hardware:

  • Arduino nano (atmega328p)
  • mpu6050 gyro-accelerometer (GY_521)
  • any RC receiver with CPPM (ppmsum) output OR serial Bluetooth module like HC-05
  • A4988 motor drivers with 1/8 microstepping configuration (see http://www.pololu.com/product/1182/ for details)
  • Nema 17 stepper motors
  • 1/8 Buggy Wheels
  • Buzzer

Pinout for Arduino nano (atmega328p):

  • A0 - V_BATPIN: after the resistor divisor we should get [0V;5V]->[0;1023] on analogue V_BATPIN with R1=33k and R2=51k, i.e. (+12v)51k(A0 pin)33k(GND)
  • A2 - BUZZERPIN

I2C:

  • A4 - SDA
  • A5 - SCL

RC control:

  • D2 - CPPM (PPM_SUM)

Motor driver pins:

  • D5 - STEP1 (PORTD 5)
  • D6 - STEP2 (PORTD 6)
  • D7 - DIR1 (PORTD 7)
  • D8 - DIR2 (PORTB 0)
  • D4 - ENABLE (for both)

If you look to the tail of the robot:

  • right motor = STEP1 & DIR1
  • left motor = STEP2 & DIR2

Also see for new defines added with this project for robot setup:

#define CURRENT_AXIS PITCH // possible to choose ROLL or PITCH axis as current.

//#define INVERT_CURRENT_AXIS // invert current axis sign, i.e. instead of turning sensor board

//#define REVERSE_MOTORS_DIRECTION // reverse both motors direction

#define MAX_SPEED 400 // should be <= 500 #define MAX_TARGET_ANGLE 120 // where 10 = 1 degree, should be <= 15 degree (i.e. <= 150) #define MAX_STEERING 90 // should be <= 100

//#define GY_521_INVERTED_BY_Z // Chinese 6 DOF with MPU6050, LLC, inverted/reversed by Z

Big thanks for the projects:

Enjoy! ;)

You can’t perform that action at this time.