Every 8 weeks at our company, we take two days off to hack on something new. It is a chance to try new ideas, learn new technologies, or exercise our brain in ways we don't tend to do in our everyday roles. These "Hackathons" are fully supported by the owner of our company as he believes these periodic shifting of gears are beneficial to our creativity and to our product portfolio.
We don't always produce something useful. Sometimes we learn that a given technology or approach is not for us. Sometimes, however, we take what we learn and apply the ideas directly to our product. Dozens of features and even full products have their roots in our "Hackathons". They have proven to be exceptionally beneficial for the culture of our workplace.
Trying Something New -- NodeBots
At our next Hackathon, we are organizing an event: "Battle of the NodeBots". Approximately 20 of us will be building robots that will fight in a ring for supremacy. Everyone will be given the same base kit. If any of us build the kit like the reference bot, it is very unlikely we will win -- those with beneficial innovations are likely to have the advantage.
Innovations will come in one of three forms:
- Software: Pre-programmed maneuvers, articulated control, sensing systems, etc will help the bot gain an edge in the "brains" department. Most people will be using Node and Jonhhy-Five to program their bots, though nothing is stopping anyone from writing C code that runs on the metal.
- Electronics: Extra servos, motors, controllers, or sensors will help the bot gain an edge in the "motion and sensing" department. This is where most of us will be learning the most. We are software developers, not electronics engineers! We will have a library of electronics components to pull from.
- Mechanical: Wheel traction, caster location, weight, size, articulated parts, etc will gain an edge in the "physical" department. We will have a library of building supplies to pull from.
- (1) SainSmart Uno Arduino Clone
- 5mm Wood Platform -- (1) 3" x 6.75" panel and (2) 2.5" wheels
- (2) Parallax Continuous Rotation Servos
- (1) 5/8" Ball Caster
- (1) Small Breadboard
- (6) Solderless Breadboard Wires
- (2) 3-pin Headers
- (1) 10' USB Cable (A to B)
- (1) 9v Battery
- (1) 9v to 2.1mm Battery Clip
- (4) Zipties
- (2) 1" Double-Stick Tape
- (6) #6x3/8" Self-Drilling Screws
Here is the bot fully assembled:
In order to enable everyone to be creative, we will have a stocked lab: - Electronics (Resistors, Capacitors, Diodes, Transistors, Wires, Headers, etc) - Displays (LEDs, LED Arrays, 8-Segments, Tri-color LEDs, LCDs, etc) - Locomotion (Servos, Motors, Gears, Propellers, etc) - Sensors (Light, Proximity, Temperature, Water, etc) - Control (Switches, Joysticks, Keypads, Potentiometers) - Building (Soldering Iron, Hot Glue Gun, Drills, Saws, Voltmeters, Screw Drivers, Pliers, etc) - Crafts (Wood, Popsicle Sticks, Dowel Rods, Wire, Flashing, Screws, etc)
We are going to use Jonhhy-Five to control our bots. This mechanism uses serial (USB) communications to talk to our Arduino via the Firmata protocol. This will require everyone to install StandardFirmata on the board. We will have a couple of these Bluetooth to Serial adapters available if anyone feels like spending their valuable time getting it working .
More to Come!
I plan to document more about this event as I go. We'll see how it goes. I'll be tweeting photos and recording video of the battles. Stay tuned!