Let's Make Robots!

Penny - An Arduino SHR

starthere1.0.pde3.38 KB
starthere1.2.pde3.88 KB

Introducing Penny. She's beginning her existence as a Start Here style robot. However, she's based on an Arduino Mega.

  • Video 1: Early testing of the servo and Sharp IR sensor used to test my code.
  • Video 2: Penny prototyped on a breadboard and running fine


I re-used the motors, wheels and chassis from my original SHR, which has been gathering dust for a while.

Penny is configured back-to-front from the old SHR, with her drive wheels in the lead. I set the Sharp IR sensor back as far as practical, since it doesn't work well closer than 10 cm anyway.

The messy breadboard will get cleaned up. I plan to use Ro-Bot-X's Arduino shield for building robots, which will take care of .some of that wiring for me.

Update 2010-10-05: I have received the Ro-Bot-X designed Arduino shield and gave Penny an upgrade. Look at her now. Quite a difference!


Penny 1.0 is based on a straight translation of fritls' Start Here code for the Picaxe. This is my first Arduino robot, so I wanted to start simple. I'm very pleased with the result.

I have attached the original code as well as an updated version that is fit for the Arduino shield and adds a backup function.


I'm using an SN754410NE dual h-bridge motor driver. No other electronics yet.


As you can see in the 2nd video, Penny is working fine. I adjusted some parameters, like how far away she reacts to an obstacle. There's plenty of room for enhancement of the basic SHR code, and I'll use Penny as a platform for learning more about  the Arduino.


The future is bright for Penny. I have a lot of possible enhancements with an Arduino Mega as the brain power. We may see features like:

  • Wheel encoders
  • PWM
  • Line following
  • Edge/cliff detection
  • More actuators
  • Perhaps... penmanship

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

HI I am just starting out and would like to build Penny. Ccn I use the Arduino Uno instead of the Mega? Did you ever post a wiring diagram? Form the LBR website it looks like activity in this project stopped in 2011. Are there any posted updates?

DO you have a step by step outline on the assembly of Penny? 

I see that you also live in NJ and have held classes teaching robotics. Do you still offerr offer classes on building robots using Arduino Uno?  If so how can I get more information?

Nice job so far, congrats on your progress :)

Hi do you use any motor controller, I did not noticed clearly in here, I wonder if it is H bridge, My next Q, what if the robot withoutencoder, will it able to do the avoidance task

I used Ro-Bot-X's Arduino shield for building robots, which includes a motor driver chip. No encoders yet, but I have bought some that I can to the motors.

You can do obstacle avoidance without encoders. You just need some sort of sensor to tell the robot when something is in its way. Then turn and test again.

Adding encoders will allow more accurate navigation, which I want so I can use Penny to control a pen and write while she drives.

I ordered some new parts for Penny. I'll replace the worn out traction bands on her wheels so she has grip again. More importantly, I ordered a pair of wheel watcher motor encoders for Penny's motors. This will let her track her movements precisely, which she'll need for good penmanship.

What type of file is the code in? Is it in the .pde file attached? Plz reply fast thnx!

I finally finished the 1.0 version. Thanks for the inspiration!

The Bliss Robot

I already have my pololu plastic geared motors 120:1 ... and the ro-bot-x shield is on its way! :-)

May you give me a "for dummies" explanation on how to wire the motors to the shield/arduino? I have looked in several pages but I am not 100% sure... and I seem to see a resistor in front of yor motors?


Cool, good luck with it.

There's no resistor in front of the motors. They connect directly to the screw terminals for the motors on the shield. There are capacitors soldered across the motor leads, which helps reduce electrical noise from the motors.

Everything else is pretty straight forward. The servo connects to one of the servo ports (make sure you connect it in the correct orientation). The Sharp IR sensor connects to one of the sensor ports (again, make sure you connect power, signal and ground correctly).

The new assembly guide I wrote for the V3 explains better how to connect the servos and the sensors. For the motors, you get 2 wires per motor, just plug them in the screw connectors, then load the program in the Arduino and have it drive the robot forward. Look how the wheels spin, if one motor spins in the wrong direction, just reverse the wires for that motor in the screw connector. Then have the program turn the robot to the left and see if it turns properly. If not, you need to swap the motors in the screw connectors, then have the robot drive forward again. Use the program in the guide to test your robot.