Picture of SciChair (Balancing Electric Chair)
One day whilst at work we decided we would build something cool so we went to the Instructables website for ideas! Our criteria was that it had to be driven by an Arduino! After searching through the vast amounts of really cool projects, we found XenonJohn's Balancing Electric Skateboard  

We thought we should build a stand-on Balancing scooter but then decided that we needed to make something original. What about a Balancing chair my boss said. Now that's cool!

We happened to have a cool looking Carbon Fibre Racing chair just sitting around not being used so we started with that. We previously ordered a couple of geared down 250W scooter motors and some wheels to suit.

Now to order the electronics! Reinventing the wheel is a waste of time, and XenonJohn had already developed the code and worked out which hardware to use so we ordered exactly what he recommended.

Power came from some Makita drill batteries. These are used for most of our travelling exhibits as they are easy to get, to charge and we have a few batteries laying around for just such a purpose.

Here is a short video of the chair being driven around. Note the 3rd build Balancing scooter too doing a drive through.

Remove these adsRemove these ads by Signing Up

Step 1: Description of the Build

Picture of Description of the Build
The description of this build a little bit in reverse as we built the chair fairly quickly and forgot to take build photos.

There is little or no detail about the balancing software or how it works as XenonJohn has already described this so well.
There will be details on how we built our SciChair and what you will need to do to build your own.

The electronics is nearly exactly what XenonJohn used on his skateboard but I have removed the resistors he used for the switches so therefore, the code is different. See attached code for button steer and proportional steer.

1-40 of 138Next »
ScitechWA (author) 3 years ago
Hi Everybody.
Thanks for your patients waiting for the code.
Well it's finally here!
Both the switch steer and the resistor pot steer.
Wiring is quite easy. I have a simple diagram to show what goes where.
Enjoy and let me know if there is anything missing or questions.
syedtanzeem1 month ago
Will this work without the 5 dof accelerometer? I will be implementing 3 wheels so self balancing is not required.. Should I make any changes in the codes?? Please help.. Thanks..
syedtanzeem1 month ago

Hi I'd like to implement this idea in my project viz basically an automatic wheelchair. I can exclude the gyro sensors and only implement the motors, driver and the joy stick right ? help is appreciated thanks :)

Caterg4 months ago

Hello, ScitechWA, I do not understand electronic and 5dof for Brazil is impossible to achieve. Would it be possible to post the code for the 6DOF IMU Gyro 6050? Thank you for your attention. As you can see in the photos, positioned inside the engine, and I'm using a larger wheel.

2014-11-10 10.41.00.jpg2014-11-06 12.45.00.jpg2014-11-06 09.05.44.jpg
jake.penney.76 months ago

hi guys.

i build the scichair but when i go to program the arduino it says that 'the keyword BYTE IS no longer supported'

how do i fix this ?

it is in the code line

SaberSerial.print(0, BYTE); //kill motors when first switched on


ScitechWA (author)  jake.penney.76 months ago
Download the earlier version of arduino program Version 0023

You are faced with the same problem as me.

A few posts below, I also asked about it, the reason is the version, this code only works with version 0023.

if you want ispolzovat recent version 1.0 and above you will have to spend a recoding, I now work with version 1.5

here everything is clear described

Maksvl6 months ago

Good afternoon. Collected on your grand project, there are several issues.

Why and when the authorization gyroscope impossible immediately command the movement or rotation of a joystick. Joystick it starts listening only after a small inclination.

And why the team to retain the balance comes slightly inert (in my opinion), although it is perhaps because I put on a very experiments and a small prototype. And hold the balance or does not work. I tried already to increase value to 1 (float aa = 0.005; // this means 0.5% of the accelerometer reading is fed into angle of tilt calculation with every loop of program (to correct the gyro)) but rvno balance is not maintained.

Thanks in advance for your answers.

ScitechWA (author)  Maksvl6 months ago
Thankyou for your comments.
All code is an "as is" basis.
We copied the code from another project. "Balancing skate board."
So we did not write the code. We did some changes.

The code works for us fine.

Check your gear ratio. Too high will not allow you to balance.
Maksvl10 months ago

Produces here such errors

C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp: In member function 'void SoftwareSerial::begin(long int)':

C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:396: error: 'PCICR' was not declared in this scope

C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:399: error: 'PCMSK2' was not declared in this scope

C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:399: error: 'PCMSK0' was not declared in this scope

C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:399: error: 'PCMSK1' was not declared in this scope

C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp: In member function 'void SoftwareSerial::end()':

C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:414: error: 'PCMSK2' was not declared in this scope

C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:414: error: 'PCMSK0' was not declared in this scope

C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:414: error: 'PCMSK1' was not declared in this scope

ScitechWA (author)  Maksvl9 months ago

Use version arduino-0023.
That will fix those errors.

Maksvl ScitechWA9 months ago

Sorry for my English is not clear.

Thank you very much, I tried running without errors.

What do you think the account conversion here this way?

ScitechWA (author)  Maksvl9 months ago

Yes if you convert those codes it should work.

Just as easy to download the old version.

Maksvl10 months ago

Which version of the Arduino sketch written? When compiling an error.

This one will be right for a gyro?

austiny61 year ago

Hi. I am building my own SitWay and I think your components and codes are great.

The IMU link you provided is a blue accelerometer that is way more expensive than the red one you have in the image which is around 15US. Should I order the red one? In addition, I have a Triple Axis Accelerometer & Gyro Breakout SEN-11028

do you think I can use your code directly for that?

I am a high school student and am very eager to finish this project in time. Thank you

ScitechWA (author)  austiny611 months ago

This IMU will not work with the code.
It's a digital IMU and the code is for an analog one.

heath_kerr1 year ago
Making life easy,ha
_Rommel_1 year ago
Hello, how much RPM for my motors is recommend?
The specification is specified as 320 revolutions per minute
Maksvl1 year ago
The documentation pdf file is not correctly specified the polarity of the battery.
You wrote about the blue LED that blinks for about 4 sec gyro calibration. But I did not find it on a map.
Maksvl1 year ago
I apologize for the error - I write through a translator.
Maybe someone else is looking for an analog gyroscope.
Here's the link itself today already ordered a 2 piece
ScitechWA (author)  Maksvl1 year ago
nice find
Maksvl Maksvl1 year ago
Why then the link does not want to be inserted
_Rommel_1 year ago
Yesterday i ordered all parts for my self-balancing scooter project, but the code i think to get from here and the joystick function as well. Sometimes when i dont want to tilt forward/back ill use the joystick.
ScitechWA (author)  _Rommel_1 year ago
Yes the code can be used by leaning forward/backwards or using the joystick.
fredbana1 year ago
thank you sir for quick respond
fredbana1 year ago
are you useing 5k pot? for steering?
ScitechWA (author)  fredbana1 year ago
5k or 10k It's used as a voltage divider.
Hi ScitechWA,
Well my boys and I are embarking on a build based on your SciChair...we have purchased all the items including the 5 DOF accelometer (linked to in the parts list) and can't seem to work out how to wire this in to the circuit based on the different board layout. Can you provide some guidance on this...

We live in Adelaide and hope to have our self-balancing "cockpit" up and running in a few months...we would also love to send some photos and perhaps video when we finally get things sorted.

Thank you for all the info in your instructable, it seems pretty straight forward and gave us the confidence to embark on our journey :)
ScitechWA (author)  TheVenueManager1 year ago
I'll have to draw up a new diagram for the new IMU.
But in the mean while if you look at the old sparkfun IMU and connect the same names as the new IMU.
The buttons on the joystick should connect to the tilt adjust mechanism.
I'll check it!

Can wait to see a video.
Also as a follow up question...I have had a look at the code and there does not seem to be anything addressing the forward and backward buttons of the joystick???
fozz181 year ago
is the code set to go slower than the segway-clone code you used?
ScitechWA (author)  fozz181 year ago
no it should be the same. Is thee an issue?
fozz182 years ago
how do I change the balance point? the annotations are not clear to me
ScitechWA (author)  fozz182 years ago
Do a search through the code for the value 350.
This value is in the annotation as 350 but the value I used in the code is 340.
Change it up/down by about 5 and this will change the tip start position.
fozz182 years ago
(removed by author or community request)
ScitechWA (author)  fozz182 years ago
Yep that's great. Works the same as the one we used but smaller.
The only issue is that bumps move your hand and the joystick more.
fozz182 years ago
got everything working tonight without changing your code. it was a loose wire causing my problem. What value potentiometer do you recommend the steering is super sensitive. I'm using 10k ones.
ScitechWA (author)  fozz182 years ago
That's awesome. I'll put the link up for that IMU.
We used a joystick that doesn't give full left or full right for the movement.
It's a 100k we are using but that doesn't matter as you put 5volts across the terminals and read the voltage from the wiper.
If you disconnect the gnd and 5volt lines and fit a 2k resistor inline between the gnd side and the 5volt side.
This means the reading will never reach 0volt or 5volts.
That should fix your issue.
fozz182 years ago
sorry to bother you but I have 5DOF module that I got from eBay and cant seem to get it working with your code any help would be appreciated I'm at a stand still here
1-40 of 138Next »