Here at Scribd, we like to take a break from coding and hack on the real world. Here are just some of the things we've come up with.
Timmy the Skeleton
On Halloween, a skeleton driving a go-kart showed up at Scribd. He drove around, scaring and scracing (our term for racing go-karts along our indoor course).
Video: Timmy the Skeleton drives a go-kart around Scribd
How to Build
This idea actually was first brought up several months before Halloween by our esteemed Chief Scientist. This gave us plenty of time to order parts.
Figure 1: Drawing of the original plans
First, we took apart a Razor Ground Force Drifter, removing all electronics except for the motor itself and the battery. The motor is powered using 24V, so started to look into building a 24V motor controller. Due to the extremely low resistance of the motor (~ 2 Ohm), the MOSFETs we experimented with got too hot though, and we also fused a couple of them due to the high reverse currents when stopping the motor.
Given that we wanted to steer the kart using the cursor keys on a laptop and thus did not have a concept of adjustable forward speeds (you either press CursorUp or you don't), we switched to using a relay board instead. The relay board delivers either 12V or 24V (our "turbo boost" mode, triggered by hitting the shift key) to the motor, giving us two speeds. The relays were connected to an (ATMEGA8 based) quadkopter controller board which was also able to power the linear actuator. The controller board was connected to the Eee PC via USB. This gave us a remote-controlled go-kart that could go forwards and backwards.
Figure 2: Top (left) and bottom (right) of go-kart
Next, in order to be able to turn the wheels, we used a 12V linear actuator. This was powerful enough to move the wheels even when the go-kart is standing. We measured where it should be placed, and drilled a hole in the chasis of the go-kart. We screwed the linear actuator in place with one end in the hole in the chasis and the other end on the kingpin, using a piece of wood and washers to space it out enough as not to scrape the bottom of the go-kart while extending and contracting.
After everything was in place on the go-kart directly, we wrote a python script to send UDP packets given the IP address of the Eee PC. This script controlled the steering and driving of the go-kart. The "server side" (i.e., the kart) would expect regular packets and if it didn't receive anything, it would continue doing the last thing it was told to do; there are several patches of poor WiFi in our office and we were hoping the skeleton would be able to drive through those patches itself without human intervention by just following the last trajectory. Sometimes, however, this would just cause Timmy to drive straight into a wall.
We also attached a USB camera to the steering column of the go-kart and plugged it into the Eee PC. A wire decorated in bands of colored electrical tape was attached in a stationary location at the bow of the go-kart. We set-up a Skype account for the Eee PC that auto-accepted calls to view the camera. Since the camera was placed on the steering column, it could see where the wheels were pointed. The position of the colored wire on the screen would signify the angle of the wheels, since we couldn't rely on the distance that the actuator was extended due to wheel slippage and friction to the ground.
The Eee PC was secured to the go-kart using wire and we proceeded to conduct several weekend test runs through an empty office, making sure we could drive only through the camera without looking at the go-kart directly. When we were satisfied, we added the finishing touches. This included creating LED throwies (by taping the LEDs onto the button batteries) and using liquid nails to attach them as the eyes of the skeleton, tying the skeleton onto the go-kart using fishing line, editing the python script to make the Eee to play spooky sounds given various button presses, and adding Scribd license plates to the front and rear of the go-kart.
The night before Halloween, we hid the skeleton and the go-kart in a room in the back of the office and covered him with blankets so nobody would spot him. On Halloween day, after lunch, we snuck into the room to set him up and hid on different ends of the office. We took turns connecting to the Eee and controlling the go-kart while bewildered co-workers tried to figure out what was going on.
Possible Future Work
Something that we wanted to do but didn't have time to finish, was to add an electromagnet to Timmy's jaw so it could open and close to talk. We had also tried to attach an elastic resistor between the other kingpin and the chasis of the go-kart to measure turning distance. We ran out of input ports on the controller board though, so we didn't actually get to use it. It was suggested that the microphone input could be used. Another obvious to-do would be to make him fully-automated. We might have to lay tape on the ground for a track for him to do this, but there also was some talk about using a Kinect sensor device in order to do a 3D scan for obstacles in from of the kart. We do happen to have an XBox Kinect at Scribd, so stay tuned.
The Scribd zipline has been shown on an episode of TechCrunch Cribs, commented on by visitors to the office (when we learned that a zipline is also known as a flying fox, foefie slide, zip wire, aerial runway, aerial ropeslide, death slide or tyrolean traverse), and displayed on our own jobs page.
How to Build
Scribd's office space consists of six pairs of 8-sided concrete pillars in a rectangle. The zipine currently runs along one of the diagonals, but originally ran from one of the corner pillars to centerpoint of the furthest edge. It was built over the span of three nights.
6" pieces of 2 x 4s were glued to each of the eight sides on the pillar. Screws were put into into the wood, forming a path for the cable to be wrapped around having screws being slightly higher and lower than the cable itself. The wood pieces on the pillar by the entrance of the office was placed higher for an appropriate slope.
The Petzl trolley was threaded through the galvanized steel cable. Turnbuckles were used to take in the slack for a taut cable. The cable was then held in place by the galvanized steel cable clips.
250 ft of 1/4 inch galvanized steel cable
24 1/4 inch galvanized steel cable clips
4 1/4 inch steel rope thimbles
2 enormous steel turnbuckles
24 feet of 2 by four, cut into 6 inch pieces
100 KwikTap 1/4 inch by 2 and 3/4 inch flat head concrete screws
steel cable cutter
petzl tandem steel pulley
1/4 inch steel biner to attach the hand-hold to the pully
At various points, we tried to find ways to make the zipline faster and more fun. We have tried to propel people using a slingshot, pulling them along with string, and even some attempts to have a motor pull the trolley. It has been suggested that instead of the screws, a router can be used to cut a slot in the wood for the cable. Unforunately the cable is continously slipping so we have to retighten it every so often.