Instructables
Picture of Fijibot
Fijibot is an autonomous, self-charging photovore. I built him using a 1.5 liter Fiji Water bottle, an Arduino Uno, 6v solar panel (plus various other parts) from Radio Shack, an Arduino Proto Shield (plus various other parts) from Adafruit, and the wheels and steering arrangement from an RC car.

I decided to use a Fiji Water bottle as the robot's exoskeleton because Fiji Water is an environmentally conscious company and Fijibot recharges its batteries via a solar panel. Plus, I think the round-edged rectangular shape and the (see through) clear bottle make a really cool looking robot!
 
Remove these adsRemove these ads by Signing Up

Step 1: Materials & Tools

Picture of Materials & Tools
protoshield_MED.jpg
malebreakawayheader_MED.jpg
ffjumpers_MED.jpg
Materials:

1 - 1.5 Liter Fiji Water Bottle (I actually used several bottles during my trial and error stages, but at least I had plenty of great water to drink!)
1 - Hacked RC car
1 - Arduino Uno (Radio Shack #276-128)
1 - Arduino Proto Shield (Adafruit #51)
1 - Break-away pins (Adafruit #392)
1 - Female/Female jumper wires (Adafruit #266)
1 - 6 Volt solar panel (Radio Shack #277-052)
2 - Parallax Continuous Rotation Servos (Radio Shack #273-457)
2 - Parallax 4-6VDC Standard Servos (Radio Shack #273-441)
1 - Parallax Ping Sensor (Radio Shack #276-136)
1 - 4-AA Battery Holder (Radio Shack #270-391)
1 - 9 Volt Batter Holder (Radio Shack #270-324)
4 - Photoresistors (Radio Shack #276-1657)
4 - Panel Mount LED Holders (Radio Shack #276-080)
4 - 10K ohm resistors (Radio Shack #271-1335)
1 - 1N4001 Micro 1A Diode (Radio Shack #276-1101)

Tools:

Soldering Iron
Solder
Helping Hands
Wire strippers
Side cutters
Dremel

Step 2: The Brain

Picture of The Brain
iPhone 074.JPG
iPhone 075.JPG
iPhone 078.JPG
iPhone 079.JPG
I chose the Arduino Uno for this robot because I think it's an awesome microcontroller for small projects, I enjoy programming in C++ , and my local Radio Shack has a good selection of Arduino boards and shields.

Fijibot includes four servos: one continuous servo for each rear wheel, one standard servo to turn his head (the Ping sensor), and another standard servo to move the front axle left or right for turning.

Considering working in the tight space of the Fiji Water bottle, I decided I wanted to be able to easily connect and disconnect everything (sensors, servos, etc.) from the Arduino board. So I purchased a Proto Shield, male breakaway pins, and 6" female/female jumper wires from Adafruit. I soldered the pins to the proto shield and hooked up everything with jumpers!

The middle section of the proto board has two parallel rails connected to +5V and GND. To the right and left of these rails are 3-terminal perpendicular pads. I took advantage of this arrangement by mounting 5 (3-terminal) breakaway pins across the two rails and into the perpendicular pads. This basically gave me power, ground, and signal pins for each servo and the Ping sensor. Then, I added 4 (2-terminal) breakaway pins to the +5V and signal pads for the plug-in photoresistors. 

NOTE: Notice in the photo that I did not solder the pin headers (that came with the proto kit) to the analog pins or the second bank of digital pins. I left these out so I could solder wires directly to the pads.

I connected wires to the digital PWM pins (for the servos) and to the analog pins (for the photoresistors). I also added a 10K resistor to ground for each photoresistor.

I connected wires from pins 7 & 9 of the proto board to the positive terminals of the green and red LEDs respectively.

In order to run the four servos and the Arduino, I used two separate power supplies. The Arduio runs on a 9v battery connected to Vin. The four servos and the Ping sensor run on a 4-AA battery pack, which is wired in parallel to a 6v solar panel for in-circuit charging. Since the solar panel and battery pack are closely matched, I just wired a diode between them to prevent back current.

I ran both power supplies through a DPST switch so I can power him off completely, but still leave the solar panel connected to the 4-AA battery pack. This way he can charge his batteries even when not in use.

Step 3: The Sensors

Picture of The Sensors
fijibot 010.JPG
fijibot 011.JPG
fijibot 012.JPG
The jumper wires Adafruit sells come in a single bus of 40 wires. All you have to do is "rip off" the number of wires you need and you have a nice little pluggable cable!

Since the photoresistors would be mounted to the chassis via LED holders, I needed a quick and easy way to disconnect them from the circuit board during and after construction. So I just connected one end of the female/female jumper wires to each photoresistor lead and the other end to the pins on the proto board. The rubber spacers in the LED holders keep the leads from touching each other and shorting out.

Step 4: The Chassis

I found a cheap RC car with big cushy wheels and I thought they would work well for Fijibot. So I removed all of the "extra" parts and basically kept the rear wheels and the front end (including wheels and suspension).

I decided to use the rear wheels for power and the front wheels and suspension for stearing. I attached two continuous servos to the back of the water bottle using double-sided tape. I also used double-sided tape to secure the servos to each other. Then I cut a small slot in the plastic bottle to feed in the servo cables.

For the front end, I attached a standard servo to the suspension system so that it could turn the front wheels left or right. Then I cut a rectangular hole in the water bottle and drilled four holes. Next I slid the servo into the opening and mounted the assembly to the bottle using 6/32 nuts and bolts.

I cut a flap on the back label side of the bottle to allow me to work inside. I was worried it would reduce the stability of the bottle, but it's still actually very sturdy. I used a strip of Velcro to reseal the flap. Then, I drilled four 5/16" holes in the front, rear, and two sides of the water bottle and mounted the LED holders.

Fijibot's head is a Ping ultrasonic sensor mounted to the top of a standard servo. I drilled a hole in the top of the bottle for the servo gear to meet up with the Ping mounting bracket and then added four holes for 6/32" bolts to secure the servo to the bottle.

Finally, I ran all of the wires out of the flap and labeled them accordingly for connection to the circuit board.

Step 5: The Program

Picture of The Program
Fijibot's main mission is to find "food". His food is light to charge his batteries via the solar panel on his back. I used four photoresistors mounted in LED holders (front, right, left, and top) to help him find the brightest spot in the room. The main program loop compares the values of the four resistors and moves toward the most light. Once he's found the brightest spot (his top resistor sees the most light), he stops and enjoys the free meal!

While looking for light to charge his batteries, Fijibot avoids running into things using ultrasound (via a Ping sensor). The main program loop is constantly checking for obstacles within a specified range (30 inches). If something is detected, Fijibot stops, looks left and right (using a standard Parallax servo), and decides which direction is clear. If he's blocked forward, left, and right he will backup for half a second and try again.

The source code is available at https://github.com/mikesoniat/Fijibot

Step 6: Putting it all together

Once I loaded the sketch onto the Arduino, I was ready to put Fijibot together!

First I connected the jumper wires from the servos and sensors to the male pins on the circuit board. With the flap secured open via a Velcro strap, I attached the two battery packs and organized everything inside the bottle. I also used Velcro strips to secure the circuit board and battery packs inside the bottle.

Finally, I installed the wheels and solar panel and I was ready to test him out!

I setup my garage with two low-hanging spot lights and placed a plastic recycle bin between them. The plan was for Fijibot to find the closest light source and position himself underneath it. Then, I would turn that light off and see if he can find the remaining light source without running into the recycle bin. 

Good news, he passed with flying colors! Check out the video below!

Ingenious robot! Do you think I could compact it's size?

abencomo5 months ago
Nice work! We built a similar project. However, we installed an Android device onto a RC car and used an IOIO board instead to control it autonomously. Here is the preliminary result:

http://youtu.be/vkvkfcqEUkk
sgm10648 months ago
I'm pretty set on making this bot, it looks great! I was wondering if you had any schematics for the wiring so I can get started
I like very much this DIY robot and I'm looking forward for many more projects
dberebi1 year ago
Hi, this is really awesome! thanks for sharing!

Which photoresistors should be used for Fijibot? I can't use the ones mentioned here since there's no shipping to my area.
(BTW, each photoresistor in the pack of radioshack has a different size)

Which photoresistor from the following list will be ok?
http://www.ebay.com/sch/i.html?LH_BIN=1&_sacat=0&_from=R40&_nkw=CdS+photo+resistors&_sop=15

Thanks
mikesoniat (author)  dberebi1 year ago
Thanks! Since we're comparing the resistances, you can really use any photoresistors you want as long as they are all the same. I picked ones that fit nicely into the LED holders.
Awesome robot! Do you think I could use an Arduino Nano to reduce its size?
mikesoniat (author)  EZtechProjects1 year ago
Thanks! The Nano 3.0 should work as far as I can tell.
DayBowBow2 years ago
Do you have the wiring diagram for your Figibot
mikesoniat (author)  DayBowBow2 years ago
Sorry for my delayed response. I've been out of town on business and no time to follow up. I'll add the schematics as soon as possible.
LJduino2 years ago
wow!! awesome hope you can get the sketch out
mikesoniat (author)  LJduino2 years ago
Thanks! The sketch is available at https://github.com/mikesoniat/Fijibot
fozzy132 years ago
This is a cool project! However, because the Arduino runs off a 9v battery, can your Fijibot actually fully recharge itself? Or can it only recharge the 6v pack, leaving the Fijibot abandoned in the wilderness when the 9v dies?
mikesoniat (author)  fozzy132 years ago
You're right, but to charge both batteries he would need a solar panel bigger than his bottle (body)!
Instructable is great but I have to agree with parkerq. Not only is the water pumped with diesel it is then shipped over 5000 miles to the US + shipping inside the US.Add to that the plastic bottle (Unless you build a bot with it) . Very bad deal for the planet. If tap water turns you off then get a filter & a reusable water bottle. But THANKS FOR RECYCLING !!
mikesoniat (author)  Lectric Wizard2 years ago
Well it's still a cool bottle, right?
parkerq2 years ago
Not that it affects your instructable (which is great by the way) but the corporate marketing of the bottled water industry which says "Fiji Water is an environmentally conscious company" does not mention that though we can easily buy water from Fiji, less then half of the citizens of Fiji have access to clean drinking water and all power to the Fiji water plant comes from generators burning diesel.. :-(
mikesoniat (author)  parkerq2 years ago
I didn't know that. Thanks for the heads up!
Misac-kun2 years ago
Amazing and campact. even Green in nature! let's us see how it behaves on sun light!
mikesoniat (author)  Misac-kun2 years ago
Yeah, since he looks for the brightest spot and just sits there and basks in it, he's not too much fun in the Sun. I guess I could modify his program to wander around after his battery is fully charged.
Dy7lan2 years ago
This seriously could be mass prodiced as an amazing toy/kit for kids.
mikesoniat (author)  Dy7lan2 years ago
I would probably have to simplify some things, but maybe so...
randofo2 years ago
It took me a moment to realize why this was called Fijibot, and then I laughed out loud. This is great.
mikesoniat (author)  randofo2 years ago
Thanks!
Kiteman2 years ago
Oh, the ultimate pet - never poops, feeds itself, stays out from under the furniture and your feet!

Add a pair of big doe eyes, and you could sell millions!
mikesoniat (author)  Kiteman2 years ago
Doe eyes, huh? I'll have to consider that for the next generation!