The Formula AllCode Robot is a very powerful platform for learning robotics, communications and a variety of programming languages. However at the moment each and every Formula AllCode looks the same with the exact same set of features. How boring!
3D printers are common place at the moment. Most Schools, Colleges and Universities will have access to one and so lets find a way to use them to add a level of customisation to our robotics.
What follows is my attempt at creating a shell for the Formula AllCode. I would highly advise you to take my measurements and CAD files with a pinch of salt and make sure you are happy with the dimensions and fit before doing anything drastic like printing a whole class set of covers.
I started with a small 150mm plastic ruler and went around the Formula AllCode taking measurements. I do own a pair of electronic callipers but my battery was flat.
Here is the result of my measuring, there are no heights shown but all the important parts of the X,Y layout should be there. Note that based on these measurements my CAD was a little tight and clicked on rather then needing to use the mounting screw holes. If I were to re-do this then I would probably allow for a bit more tolerance and buy a new battery for my callipers.
My 3D design software of choice is SketchUp, simply because there is a completely free version which can be used with a free plugin to allow 3D models to be created and exported in a 3D print compatible format. We have also provided the files in Solidworks format as this is very popular and an easier tool to use to model with.
I made the shell in two parts, the first part is a base layer which allows me to get to a flat surface. The base layer sits on the 8 IR sensors and has cut outs for the slightly higher motor housings. Sitting on top of the IR sensors allows these sensors to remain functional and allows easy access to the charging and SD card sockets. Take care with the power switch and servo headers as these also comes above the height of the sensors. The power switch needs to be accessible to allow the user to switch the robot on and off.
This part was printed upside down with the flat surface against the print bed. The final version of the bottom piece has cut outs to allow servo cables to go over the motor mouldings.
The next piece is the top piece. Starting from the flat outline created from the lower section I took some additional height measurements and created a simple shell that would sit over the robot while allowing access to the LCD and user switches. To the rear of the vehicle I created a hole large enough to fit two Tower Pro mini servo motors back to back and again allowed room for the motor cables.
The holes for the switches are simply 3mm diameter holes. The switch is pressed via a M3 bolt which is inserted through the hole. A M3 locking nut is added to the end of the bolt before clipping the top part onto the robot and this allows the bolt to grab onto the press switch making the switch very easy and reliable to press. A second M3 nut can be used to hold the bolt down so it can’t come off the switch however getting this on and right is fiddly.
Here are some photos from the print and build.
The SketchUp CAD files and 3D Print STL file from the project are available here: SketchUp 2014 CAD Files
Solidworks can import the STL files allowing you to further edit them.
Before gluing the JCB’s arms to the motors I used Flowcode via the Formula AllCode API component to talk to the robot and position the two servo motors at positions 128. Once both motors were correctly aligned the arms could be glued on using super glue. This just helps the arms from falling off while your having JCB-BOT fun.
I created a simple Flowcode program to allow me to drive the robot around from the Flowcode simulation. Using the key mapping feature I can use the computer keyboard to control the robot.
W = Drive Forwards (Scoop denotes new front of the robot)
S = Drive Backwards
A = Turn Left
D = Turn Right
Q = Stop Moving
E = Scoop Up
F = Scoop Down
X = End Flowcode Simulation – All Stop and Arm default back to position 128, 128 before disabling Servo Motors
When I next get a minute I’ll use App Inventor to recreate the control program as a simple Android app to let me drive the robot around using my Phone.
Here is a short video of the robot in action.
Flowcode simulation controller is available here: Flowcode JCBBOT Control Software
Going further a second motorised joint on the bucket would be very helpful for both picking up items and unloading items at the other end, an ultrasonic sensor module or Wifi Webcam would also be good additions, oh to be a kid again.
6,272 total views, 3 views today