I was putting together the robot kits for the Brisbane International NodeBots Day event in July, and thought it would be cool to experiment with a tracked robot design. While researching what other kit designs were out there, I found a micro TrinketRover published by Adafruit with OpenSCAD 3D design files. I thought it was clever how it used silicone bracelets for tracks, and decided to remix the TrinketRover for our kits.
NodeBots are programmed using the Open Source Johnny-Five Node.js Robotics framework, communicating over a serial connection using the Firmata protocol. Johnny-Five is compatible with a variety of platforms, but to keep our kit prices down, we use Arduino clones.
Feedback we'd had from previous NodeBots events was that it took too much time for people to get up to speed with the electronics side of things so there wasn't enough time left for the programming, and that working with breadboards was too fiddly, plus wires would sometimes fall out of the breadboard while the bots were moving around. We usually ended up with a fair few fried components in our communal hardware pool, where people had connected things up incorrectly. We were amassing a collection of Arduino Nano clones with fried D1 diodes, for example. For our NodeBots day in 2013, we'd borrowed some educational NICTA ED1 boards that had been designed for teaching, and had common components like buttons, LEDs etc wired up to them, and they'd been very popular with beginners. So I was looking for something similar for the new kits.
After trying a few different shields, I settled on the multi-purpose HCARDU0085 / A1010 Arduino shield available on Aliexpress, which had a built in digit display, buzzer, LEDs, buttons, potentiometer, temperature sensor and servo and sensor connector pins. These would allow participants to experiment with developing for a range of components without having to worry about wiring up the circuits.
I used the TrinketRover OpenSCAD files as a starting point to create a new chassis design for our slightly larger robot based around the Arduino Uno and multi-purpose shield instead of a Trinket, with wheels that attached directly to larger continuous rotation servos. This was achieved by modifying the parameters in the OpenSCAD source files and then regenerating the STLs. I also wanted to use a laser cut baseplate rather than 3D printed, for improved strength, and to keep fabrication time down for the kits. I imported the STL for the base into Sketchup and cut it down to just an axle part, and then added holes to bolt it onto the lasercut baseplate.
NodeRover in action, featuring my canine helper Shya
I wanted to provide some context for the programming challenges that went along with the kits, so having been inspired by the NASA Dawn mission exploring Vesta and Ceres the and Pluto flyby, I visited Wikipedia and collated information about different asteroids into "Mission Documents" to round out the kits.
I put the digital files for the parts and kit assembly documentation up on GitHub under Creative Commons CC-BY 4.0, code under a MIT license, and mission docs under CC-BY-SA at https://github.com/AnnaGerber/NodeRover
On the day, we had some problems with the screws that came with the servos being slightly too short, so the 3d printed wheels were popping off the axles while driving. This was also partly due to the poor quality of some of the silicone bracelets, although they all came from the same supplier, some were warped. We were able to workaround the wheels popping off by using hot glue on the end of the axle so that the shorter screws could grip in. Either making the wheels thinner or using longer screws would prevent this issue. I had also cut some small acrylic wheels and they ended up being a popular alternative to the tracks.
We ran out of time to get the ESP8266 bridge up and running to make our robots wireless. We ended up using very long USB cables instead, but hopefully we'll get the wireless rovers happening at a future meetup.
Here are some bots built from the kit by Brisbane NodeBoteers:
After the event, I presented a short summary of NodeBots day at the BrisJS meetup. Here are the slides: