Step 6: Electronics

The electronics section involve three things: Mount the motor controller and ardunio somewhere where they won't get damaged when you crash! Yes you will crash!!!!!!!!!

The Accelerometer needs to be mounted preferably at axle height and vertical. The four holes on the circuit board should be facing down and the chip side to the back.

We used double sided tape as it's a good insulator and sticky!!!!!!! Make sure it's in a nice waterproof area and maybe even heat shrink it water tight. A glue coated heatshrink is good for this. We used shield cable for the wiring as it will stop any added noise getting into the system.

Make sure it is held on tight. If not you will have a bucking bull chair! Believe me I know about this!

The unit has a few switches to add.
  1. The dead man switch. The big red button that has to be held at all times to make the unit work.
  2. Main Power. Cuts power to everything. Ours was built into the battery holder.
  3. Joystick.  Allows you to turn left/right and drive forward in up coming code.
  4. Tilt Adjustment. Allows you to adjust your balance point

Find a good safe, easy to use spot to mount these. Connect all units together and wire these up as per the wiring diagram.
The wiring is pretty much the same as Xenonjohn's Skateboard but without the resistors.
See our circuit diagram below.

Once it is all wired and the code has been uploaded, it's time to test. Puts ome bricks underneath it to lift the wheels off the ground. Tilt it forward and turn the main switch on. Wait your four seconds for the Acceleromoter to calibrate and hold down the deadman switch. The wheels shouldn't start yet.

Slowly tilt the unit back until the Accelerometer is vertical. The motors should start up and you should be able to slowly move it back and forward to slow and speed them up. Check the rotation to make sure that the wheels are going the right way. If not, then power the unit down and swap the polarity for that motor.

Now, you should be ready to drive the unit around.

Hi Everybody. <br>Thanks for your patients waiting for the code. <br>Well it's finally here! <br>Both the switch steer and the resistor pot steer. <br>Wiring is quite easy. I have a simple diagram to show what goes where. <br>Enjoy and let me know if there is anything missing or questions.
<p>hello sir can i ask u in the diagram 12v battery working for 1 motor or both?? coz im using 1 12v 7.5ah SLA battery since in malaysia its the cheapest i can get..and can i know will it working when the IMU im using is 3dof ADXL345 thx</p>
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..
<p>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 :)</p>
<p>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.</p>
<p>hi guys. </p><p>i build the scichair but when i go to program the arduino it says that 'the keyword BYTE IS no longer supported' </p><p>how do i fix this ?</p><p>it is in the code line</p><p>SaberSerial.print(0, BYTE); //kill motors when first switched on</p><p>}</p>
Download the earlier version of arduino program Version 0023<br>
<p>You are faced with the same problem as me.</p><p>A few posts below, I also asked about it, the reason is the version, this code only works with version 0023. </p><p>if you want ispolzovat recent version 1.0 and above you will have to spend a recoding, I now work with version 1.5 </p><p>here everything is clear described https://decibel.ni.com/content/thread/11196?tstart=0</p>
<p>Good afternoon. Collected on your grand project, there are several issues.</p><p>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.</p><p>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.</p><p>Thanks in advance for your answers.</p>
Hi,<br>Thankyou for your comments.<br>All code is an &quot;as is&quot; basis.<br>We copied the code from another project. &quot;Balancing skate board.&quot;<br>So we did not write the code. We did some changes.<br><br>The code works for us fine.<br><br>Check your gear ratio. Too high will not allow you to balance.<br>
<p>Produces here such errors</p><p>C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp: In member function 'void SoftwareSerial::begin(long int)':</p><p>C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:396: error: 'PCICR' was not declared in this scope</p><p>C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:399: error: 'PCMSK2' was not declared in this scope</p><p>C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:399: error: 'PCMSK0' was not declared in this scope</p><p>C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:399: error: 'PCMSK1' was not declared in this scope</p><p>C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp: In member function 'void SoftwareSerial::end()':</p><p>C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:414: error: 'PCMSK2' was not declared in this scope</p><p>C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:414: error: 'PCMSK0' was not declared in this scope</p><p>C:\arduino-1.0.2\libraries\SoftwareSerial\SoftwareSerial.cpp:414: error: 'PCMSK1' was not declared in this scope</p>
<p>Use version arduino-0023.<br>That will fix those errors.</p>
<p>Sorry for my English is not clear.</p><p>Thank you very much, I tried running without errors.</p><p>What do you think the account conversion here this way? </p><p><a href="https://decibel.ni.com/content/thread/11196?tstart=0" rel="nofollow">https://decibel.ni.com/content/thread/11196?tstart...</a> </p>
<p>Yes if you convert those codes it should work.</p><p>Just as easy to download the old version.</p>
<p>Which version of the Arduino sketch written? When compiling an error.</p><p>This one will be right for a gyro? http://www.ebay.com/itm/5DOF-module-accelerometer-and-dual-axis-gyro-instrument-IDG650-ADXL335-/261488421936?pt=LH_DefaultDomain_0&amp;hash=item3ce1ecac30</p>
<p>Hi. I am building my own SitWay and I think your components and codes are great. </p><p>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 &amp; Gyro Breakout SEN-11028</p><p>do you think I can use your code directly for that?</p><p>I am a high school student and am very eager to finish this project in time. Thank you</p>
<p>This IMU will not work with the code.<br>It's a digital IMU and the code is for an analog one.</p>
Making life easy,ha
Hello, how much RPM for my motors is recommend?
The specification is specified as 320 revolutions per minute
The documentation pdf file is not correctly specified the polarity of the battery. <br>You wrote about the blue LED that blinks for about 4 sec gyro calibration. But I did not find it on a map.
I apologize for the error - I write through a translator. <br>Maybe someone else is looking for an analog gyroscope. <br>Here's the link itself today already ordered a 2 piece <br>http://www.aliexpress.com/item/5DOF-axis-analog-gyro-sensors-module-IDG500-IDG655-IDG650-ADXL335-module/578668074.html
nice find
Why then the link does not want to be inserted <br>aliexpress.com/item/5DOF-axis-analog-gyro-sensors-module-IDG500-IDG655-IDG650-ADXL335-module/578668074.html
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. <br>
Yes the code can be used by leaning forward/backwards or using the joystick.
thank you sir for quick respond
are you useing 5k pot? for steering?
5k or 10k It's used as a voltage divider.
Hi ScitechWA, <br>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... <br> <br>We live in Adelaide and hope to have our self-balancing &quot;cockpit&quot; up and running in a few months...we would also love to send some photos and perhaps video when we finally get things sorted. <br> <br>Thank you for all the info in your instructable, it seems pretty straight forward and gave us the confidence to embark on our journey :)
I'll have to draw up a new diagram for the new IMU. <br>But in the mean while if you look at the old sparkfun IMU and connect the same names as the new IMU. <br>The buttons on the joystick should connect to the tilt adjust mechanism. <br>I'll check it! <br> <br>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???
is the code set to go slower than the segway-clone code you used?
no it should be the same. Is thee an issue?
how do I change the balance point? the annotations are not clear to me
Do a search through the code for the value 350. <br>This value is in the annotation as 350 but the value I used in the code is 340. <br>Change it up/down by about 5 and this will change the tip start position.
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.
That's awesome. I'll put the link up for that IMU. <br>We used a joystick that doesn't give full left or full right for the movement. <br>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. <br>If you disconnect the gnd and 5volt lines and fit a 2k resistor inline between the gnd side and the 5volt side. <br>This means the reading will never reach 0volt or 5volts. <br>That should fix your issue.
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 <br>http://www.ebay.com/itm/181004141876?ssPageName=STRK:MEWNX:IT&amp;_trksid=p3984.m1439.l2649
That's right that one won't work as it uses a different chip to the one we used. <br>We will be writting code for the 6DOF digital version soon. <br>John has written code for that IMU which it sound like you have. <br>http://www.instructables.com/id/Easy-build-self-balancing-skateboardrobotsegway-/step53/Code-for-use-with-new-6dof-DIGITAL-IMU-from-Sparkf/ <br> <br>Test it out and let us know how it goes.
greetings sir, <br>what the value of potentiometer is used in the steering??
Very cool looking! :) <br> <br>It looks almost like a wheelchair for a disabled person, except for the smallish wheels. <br> <br>Can it go up a curb from street to sidewalk?
lol. Except they don't use Carbon Fibre racing chairs. lol.<br>Nope won't go up curbs unless it's ramped.
Please explain Why TORQUE = 9
You might want to ask John that question. <br>He wrote the code. <br>http://www.instructables.com/id/Easy-build-self-balancing-skateboardrobotsegway-/ <br>
Hello, <br>With your code chair would like to build a scooter type V2 but with the steering right and left driven by two potentiometers at the base of the steering column. <br>You can do? <br>What should I change in the code? <br>What pots to use? <br>Sorry for the many questions .. <br>Thank you very much, <br>Sincerely, Gerry
Hi, <br>You only need one potentiometer for the steering. <br>Have the other one as a small one that you set to the middle position. <br>Tilting the unit will still work as normal. <br>Or remove that part out of the code like the scooter has. <br>As for a potentiometer get a good quality one for RS components or someone.
What is TORQUE.
In physics, a torque is a vector that measures the tendency of a force to rotate an object about some axis.
hi, i am building a self balance scooter using the pot steer code using 2 350w 2750 rpm motors, 2 12v 7.2ah sla battery. This thing happened to me when i doing a circuit dry run. when i tilt the gyro, it does not have any response, but when it does, it run full speed clockwise, tilting back to the opposite direction does not change the direction . One thing i notice is when the motor start running, the error led on the sabertooth blink one time and goes off. Any idea what i have done wrong? Thanks.

About This Instructable


343 favorites


More by ScitechWA: Multi Sega Case Retopie sega case mark 1 Sweeping Ultrasonic Rangefinder Build a Paint Spinner
Add instructable to: