Introduction: DIY Life-Size Remote Control (transparent) BB-8
Inspired by ASCAS (Techbuilder)'s instructable on building a life size BB-8, our team wanted to build a Bluetooth controlled transparent BB-8 (using an Arduino Uno) that could also react to music for our electronics project. We wanted it to be transparent so that other people could see how it worked. While the full version is still in progress, we have successfully built the BB-8 to the point that it moves via Bluetooth. The current Instructable will therefore present a variation of building a life-size BB-8, with steps regarding music to be added in the future. Please be patient with us as we continue working on the BB-8. At the very least, you will have a moving BB-8 to play with while you wait!
Special shout-out to the Pomona College Physics Department for their amazing support, especially Janice, David, Glen and Tony!
Step 1: Figure Out How BB-8 Works
We started by getting a general feel for the project. We first researched information on www.howbb8works.com. We also explored Disney's own patent on its "Magnetic spherical balancing robot drive." We realized BB-8's motion mechanism was based on this spherical balancing approach, and began to base our design and sketch on this principle. Here is the link to the patent:
https://www.google.com/patents/US8269447
We also watched several videos on the Sphero BB-8, a popular toy that operates on the same principles we were trying to understand:
and
Another useful source was ASCAS's approach:
https://www.instructables.com/id/DIY-Life-Size-Phon...
We realized BB-8 operates much like a hamster wheel—that is, the motor mechanism inside the sphere stays stationary relative to the sphere while the sphere moves.
Step 2: Materials
At first, we considered 3-D printing the BB-8 parts. We quickly realized this approach would be too expensive, and decided to get resourceful with our materials. We ended up buying the necessary parts separately. We purchased a transparent, polycarbonate sphere for our body so you can see the internal mechanism during operation. Note that you can use anything spherical for the body as long as it's sturdy (e.g. a globe).
Body:
1.) 20''-24"" diameter transparent sphere (We bought 2 polycarbonate hemispheres from California Quality Plastics)
2.) Arduino Uno
3.) Pololu Dual VNH5019 Motor Shield
4.) 2 Pololu (19:1) 37D Metal Gearbox Motors
5.) HC05 or HC06 Bluetooth Module
6.) 8 rolling deodorants (to serve as makeshift ball bearings)
7.) Lots of spare wood (to make disks and poles)
8.) 2 wheels (W-30-EO-3/8)
9.) Neodymium magnets
10.) Heavy brass cylinders (for counterweights)
Head:
1.) 12'' diameter hollow styrofoam hemisphere
2.) 12'' diameter styrofoam disk
3.) Rubber band ball casing (to serve as the main eye)
4.) 2 antennas
5.) Spray paint
Etc:
1.) Hot glue, super glue, Velcro strips
2.) Two AA battery holders
3. MAX 4466 Mic amp
Step 3: Cut the Platform
We used Adobe Illustrator to design a platform that would serve as our main body of the inner mechanism. As you can see, it has 2 rectangular cutouts on each side to mount the wheels. We then used a laser cutter (Trotec engraver) to cut out the design. Note that if you don't have access to a laser cutter, a jigsaw will work just fine.
Step 4: Make Ball Bearings!
We emptied the contents of the deodorants and cut them so that we could use them as ball bearings on both the head and main internal platform.
Step 5: Fit the Wheels and the Motors
We extended and thickened the axles on each motor so the wheels would fit snugly on the axles and maintain strong traction.
Step 6: Assemble!
Using a roll of metal strip with holes, we fashioned a clamp to mount the wheels, which then we screwed down using a drill. We attached the motor shield on top of the Arduino and used Velcro to attach the whole module to the center of the wooden board. We hot-glued the two AA battery compartments and deodorant rollers to the wooden board as shown in the pictures.
Step 7: Make Two Poles to Hold the Upper Platform
We used two pieces of long scrap wood of equal length and fashioned them to the wooden platform. These pieces reach close to the top of the sphere, but don't quite touch it (to maintain a proper magnetic connection to keep the head on the body...more on this in Step 17). We screwed them in and hot glued them to the base for good measure.
Step 8: Build the Magnetic Platform
In order for BB-8's head to stay on via magnetic connection, we built a smaller round wooden platform (made of MDF board) and attached it to the top of the 2 wooden posts. We then hot-glued neodymium magnets to this MDF board in a triangular formation. If you look closely, the magnets are atop smaller wooden blocks, which were necessary in our build to bring the magnets as close to the top of the sphere as we could without them scraping the inner surface.
Step 9: Connect the Wires!
First, connect the two battery holders in parallel by putting the red wires of both into Vin of the motor shield and the black wires into Ground. Next, connect the wires of the left motor to M1A and M1B, then the wires of the right motor to M2A and M2B. Power the Arduino using a 9V battery (which you can ideally attach via Velcro strips).
Step 10: Connect the Bluetooth Module to the Arduino
We placed the Bluetooth module next to the Arduino using Velcro strips. We soldered wires to each branch of the Bluetooth module and connected the wires of the Bluetooth as follows:
-RX to TX of Arduino.
-TX to RX of Arduino.
-Vin to 5V of Arduino.
-Ground to GND of Arduino.
Step 11: Arduino Codes for Motor Control
For the Bluetooth motor control code, we used the code provided in
https://www.instructables.com/id/DIY-Life-Size-Phon...
with a little bit of modification...we reversed the speed gauge such that speed increases as you move the guage from left to right instead of from right to left (in other words, we corrected the code that accidentally flipped the direction of the speed controls for the motors). To work this code, we used a free Android app called Bluetooth RC Controller. Simply download the app, connect to HC05/HC06, and you'll be able to use it! (*credits to ASCAS for the motion code).
To completely operate the BB-8, we also used a library for the motor shield, which can be found at:
https://github.com/pololu/dual-vnh5019-motor-shiel...
To install the motor shield, just download the package from the link above, decompress it and move it to the folder titled "libraries" inside the Arduino folder.
Attachments
Step 12: Arduino Code for Music Response
This aspect of our project is still in development. Our goal is to integrate a low-pass filter code using a microphone to make the BB-8 responsive to music (specifically lower frequencies like bass). We will return to this in a bit.
We designed a low-pass filter using this free website:
http://t-filter.engineerjs.com/
The resulting code differs on the microphone you will likely use because you need to calibrate the code multiple times to get the correct input signal with which to render the filter code. We've included our sample filter code here for reference.
To use this website, first set the limits of the frequencies you want to pass and block and set your input frequency to an arbitrary value (such as 2000Hz). We chose to let through only the bass signals. Once you get that filter, run the code using your microphone and read the input signals, then remake the filter using that value as the input signal. You should end up with the right filter!
Step 13: Upload the Arduino Package!
Unplug the wires of the Bluetooth module and upload the Arduino file into the Arduino. We're good to go!
Step 14: Add Counterweights
Depending on how unstable the inner mechanism is inside the sphere, consider using counterweights to increase the overall weight and keep the center of mass below the equator to maximize the hamster ball effect. We added three, spaced-out weights to prevent concentrated stress on any part of the wood.
Step 15: Put Dowels Along the Perimeter of the Sphere for Fastening Mechanism
As shown, we drilled 36 corresponding holes along the edge of each of the two hemispheres every 30 degrees to insert dowels. These dowels make it easy to fasten and unfasten the polycarbonate hemispheres.
Tip: If you'd like to paint the inside of these hemispheres, use specialized Lexan spray paint and paint from the INSIDE of the sphere.
Step 16: Try It Out!
Put everything inside and try it out. This is where a lot of debugging takes place, so make sure it rolls to your satisfaction before you proceed further.
Step 17: Build the Head
Once you're satisfied with the body mechanism, make sure it rolls properly, and check that the internal mechanism has a low enough center of mass, you can start building the head! For the main eye, we used a plastic hemisphere that held a rubber band ball. For the smaller eye, we actually used another one of the deodorant ball bearings and simply spray-painted it black.
We used Styrofoam to keep the head light and sturdy in the event that it falls off (which it definitely will the first several tries!).
As you can see, on the underside of the head we placed 3 magnets in a triangular formation that corresponds with the magnetic arrangement atop the MDF board on the top of the internal mechanism inside the sphere. This magnetic connection is what keeps BB-8's head on top of the sphere even as the sphere moves. Note that you may have to test a variety of magnetic arrangements depending on your magnet strength before you find the right balance.
The 3 deodorant roller balls act as ball bearings to decrease the friction of the head as the body moves below the head.
Also note that we used duct tape to keep the sphere together in addition to the 36 dowels. The dowels alone were not enough to keep the hemispheres together, so we found that duct taping the perimeter keeps everything together nicely and doesn't inhibit the motion!
23 Comments
3 years ago
Why do you need to power both the motor shield and Arduino uno? Aren't power suppose to go through both since they are connected?
6 years ago
can i use cytron 2amp motor driver and what is the required code ??????
7 years ago
Awesome! <3
Reply 6 years ago
ASACS I Am doing your BB-8 project and I just finished the body and the head. This has been really fun. I am building it with my five year old son and I've cried at times cause it has been so fun. I am on to the next part. Do you have the .pdf files for the drawing and the measurements for the MDF board and posts that are inside BB-8? Again, thanks for everything you've done so far
6 years ago
I see that you haven't used a servo, does that make any difference to the stability of the head?
7 years ago
Hi really nice job !
Can you tell us more for the wood mesurement ?
Thank you again !
7 years ago
Awesome design. Trying one myself. Could u please tell me the diameter of the round platform and the length of the wooden shafts? Thank you very much for your amazing work!
7 years ago
Can you tell me what you ordered from California Quality Plastics. When I look all I see are ones with lip on it. Did you cut the lip off or get one with out? Thank you.
Reply 7 years ago
We ordered 2 custom hemispheres with NO lip. Together, they created a 24" sphere, which are the life-size dimensions of BB-8. If you want to go a little smaller, you can get 2 hemispheres that create a 20" sphere for only $100.
7 years ago
Would someone please tell me the final price of this? thanks
Reply 7 years ago
TLDR: Anywhere between $300 and $750.
Custom plastic hemispheres ($400). We wanted to make it accurately life-size, so we got hemispheres that created a 24" diameter. If you want to go a little smaller, you can get hemispheres that create a 20" sphere for only $100/
Motors: Approx. $50 total.
Circuitry, Arduino, Bluetooth Controller: $100.
Paint: $50 (we used special polycarbonate paint.
7 years ago
Sorry if I missed it but how does the two halves of the body join? Did you use glue? Or some mechanism which can be easily opened and closed?
Because I am making a bb8 DROID and I am having issues for the locking mechanism, I would want to access the inside, so if you have any suggestions would love to hear them. Thanx
Btw do check out some of our other instructables!
Reply 7 years ago
Our lab technician helped us drill 36 dowel holes equally spaced on each of the plastic hemispheres, then we used really small dowel rods to attach the hemispheres...a lengthy process, and in the end it didn't even keep the sphere together. We ended up just duct-taping around the seam where the hemispheres connect.
Reply 7 years ago
One of our biggest challenges was figuring out a way to be able to put the two halves together and pull apart easily, and we eventually drilled holes along the edges and inserted dowels. We also taped around the equator for good measure when the dowels seemed to slip out.
Reply 7 years ago
good idea, although it won't be the right way with out model because the body is make out of fiberglass.
7 years ago
and do you have an alternative idea for the deodorant rollers
Reply 7 years ago
One alternative to deodorant rollers would be to create your own metal bearings (which would be hard). We learned that the deodorant balls didn't really roll against the plastic, they just decreased the friction between the internal mechanism and the plastic sphere.
7 years ago
What equipment did you use to insert the dowels?
Reply 7 years ago
I'm not sure, our lab technician used a router to position the sphere, then used a small drill bit to create the dowel holes.
7 years ago
This is Awesome, I'm definitely going to have to make one now. I have the little remote one, but it's not the same.