Yet another ambitious beginner robot project

I'm planning of building a small Arduino-based robot, but it seems there is a lot for me to learn. I'd be grateful of comments from more experienced and knowledgeable people. I consider myself an absolute beginner on electronics front, though I do know some of the basic electrical components and connections. I'll start with some questions.

Arduino runs on 5V, but accepts power input from 7 to 12V, some circuits on the other hand run on 3.3V. Some examples use different power sources e.g. different power source for motors, but some examples simply use the same power. Fundamentally, when constructing a arduino-based robot with several devices and circuits, is it possible to withdraw all of the different voltages from the same battery if using some sort of voltage conversion? Is it possible to connect the devices/circuits running on different voltages in paraller? It seems to me that most of the connections are in series - only two wires (plus and minus) to arduino board, but e.g. stronger motors might require more power than basic Arduino (what I've read should be on 5V, something like 500mA to 1A). So.. One or several rechargable battery units?

My plans so far:

Phase 1; learning the basics

- Autonomous movement and object avoidance

This is where I'd start from, making a robot very similar to Start Here -robot by Fritsi. I'd use Arduino platform instead, because of possibilities with multiple Arduino Shields later on. Not to mention I have more useful experience from C++.

Phase 2; creating a soul

- mp3 playback; I'd accomplish this by installing mp3 shield. Hopefully possible to control playback via code.

The idea behind this is to make the robot play emotional sounds. First phase would be probably something like R2D2 bleeping and playing some happy tunes if lots of activity on the infrared sensor.

- very_crude_emotional_AI

This would be controlled by some variables (e.g. happiness (1 to 100), boredness (1 to 100), humans_around (yes, maybe or no), daytime(night or day) and so on). Actions of the robot would be then affected by these simple emotional states.

Phase 3; extended brain

- XBee connection to computer

Accomplished by installing Xbee Shield. Used to communicate with computer, and then hopefully I could use the desktop computer to act as an extended brain for the robot. Some more complex tasks later on would probably require this.

Phase 4; this is what i dream of

- simple robot gripper hand; something to pick up and manipulate objects

- visual sight (camera, simple object or symbol recognition)

- hear (low grade microphone)

- small display, able to draw an emotional face

Useful gripper hand seems like a tough thing to build and code. Optimally it would be a hand that could grab onto or pick up suitable objects, possibly even help in more advanced motor tasks such as lifting one side of the robot itself. This would be something fun to work on (for a long time). (Ultimate fantasy would of course be the beer bringing robot, but lets not get ahead of ourselves)

Sight would probably be mostly used for understanding shapes and special symbols (e.g. reading barcodes). Possibly motion detection to affect humans_around -variable. Hear might be used for same purposes.

Display would be used for whatever comes to mind. Showing debug info, news from internet, emotional smiley face.

Re: Power.

You can connect everything to your batteries, as long as, you A) don’t draw more current than your batteries can supply at one time, B) don’t supply too much voltage to something expecting 3.3V or 5V. Voltage regulators are common, but, some regulators are more efficient than others. Capacitors are your friends. You may need to add a few capacitors to your circuits to be sure you don’t cause brown outs and other nastiness when powering high current draw devices like motors and microcontrollers from the same power source.

Thank you for the answer!

Thank you for the answer! I’ll probably use a single set of batteries from the beginning. For starters though, Arduino and Shields luckily do voltage regulation on board, I suppose there’s no need to add capasitors just yet.

I’m thinking between two different development boards. First is chipKIT Uno32, with 80mhz clock and 128k flash, 16k SRAM. Other is Arduino Mega 2560 with 16mhz clock and 256k flash. So… Fundamental question: How much code can I fit into 128k flash? Is it enough? :wink:

Capasitor question

I ended up ordering freeduino kit. Unfortunately the kit was short of one 4.7uF ceramic capacitor. I have one electrolytic capacitor of that size, but I wonder if I can use it instead. Any idea which way it should go?

It’s C13 in this diagram http://www.vintagecomputercables.com/img/fk_schematic_L.jpg

Oddbot: I did use search, but I guess I didn’t use the right search terms. There is so much info here. Thanks for the links anyway!

Just a small status update,

Just a small status update, although I might soon make a robot-page for this.

Electrolytic capacitor seems to work equally as well.

As of now, I have a bot beeping when something comes close, and turning head away from all objects. If you bother it, it slowly gets angrier and beeps higher and turns head more forcefully away. I also got the DC motor working fairly easy with the help of small H-bridge motor driver. Programming and prototyping this thing is quite straightforward after all! :smiley:

I now have a Freeduino

I now have a Freeduino (based on Arduino Duemilanove) with DRV8833 motor driver and two small DC-motors. Everything runs quite nice with 12V from wall socket, but when running on 8xAA 1.2V recharhables, the board reboots if I try to run the motors. My guess is that motors are drawing the power… but… 8xAA should be enough? Any ideas?

Motors are Dagu DG02S, "no Load current 125mA (max 170mA)"

Here is a pic of the awesomeness: http://www.northernrealms.net/random/castroII.JPG

Uh oh. Noob problem.

Uh oh. Noob problem. Apparently low battery can run logic and servo okay, but not two DC motors. With full battery this thing seems to work. :stuck_out_tongue: