Let's Make Robots!

The A.S.R.B.

Navigate via GPS, Compass, and avoids obstacles using 5 IR sensors
AttachmentSize
Main Components1.98 MB
GPS & Compass2.21 MB
Arduino Mega 2560 & Uno2.22 MB
Front shot with IR sensors1.89 MB
Full car shot1.93 MB
Main board separated from car2.03 MB
Duratrax Evader Ext-22.2 MB
Adhesive Velcro on car2.24 MB
Adhesive Velcro on bottom of board2.12 MB
close up of velcro on the board2.12 MB
Body separated from chassis2.26 MB
battery, esc, and reciever2.48 MB
esc & motor2.31 MB
Evader EXT-2, again1.88 MB
Missile switches flipped, lights on!2.69 MB
A.S.R.B._Gradual_Turns.txt7.01 KB
pitches.txt2.03 KB
Compass_Servo_Orientation.txt2.57 KB
A.S.R.B._Gradual_Turns_NOT_MAPPING.txt7.08 KB

Hi all, I'm Matt and currently a junior in high school. I built first robot called the "A.S.R.B." over the summer for the Authentic Science Reseach Program and I wanted to share it with all of you! *I'm going to apologize in advanced if my spelling/wording/grammar is terrible--It's been a long day and I'm in a rush to get this posted.* Using the chassis of the duratrax evader EXT-2, I built this robot from the ground up.  I swapped out the esc and dc motor for a traxxas 12t 550 that I had lying around, and the esc is now the traxxas xl-5.  The motor fits in quite snug and I needed to change the mount for the XL-5 a bit to align with previously drilled holes.

esc & motor

 

 

 

 

 

 

 

 

 

 

 

 

 

Velcro

On the body, I put some velcro on to match up with the to-be light weight plywood to hold all of the electronics. On the plywood that holds all of the electronics, I have an Arduino uno as well as an Arduino Mega 2560. The reason I have two microcontrollers on board is because I need the uno to program the esc before each run with a potentiometer to give it a boundary of what full reverse is and what full forward is.

Electronics

 

 

 

 

 

 

 

 

 

 

 

 

 

headlights on

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The mega controls all of the sensors, GPS, compass, lights, etc. starting with the front of the car, I have a custom bumper which I stripped from an old rc car, drilled some holes into, put some LEDs in, and thus gave my robot some headlights. Behind that is an arch (parallel with the plywood) where I mounted the 5 SHARP IR sensors. I am using the sensors with the range of 10-80 cm (if i'm not mistaken) and I plan on upgrading those to the longer ranged ones soon. Those 5 sensors trace back to a bread board that has 5 capacitors on a bus strip to balance the power going to the sensors. Each capacitor is 1000uF at 25V. Probably over kill, but hey, why not? The IR sensors trace back to the Mega to analog pins 0-4.

Mega & Uno

 

 

 

 

 

 

 

 

 

 

 

 

 

I have a second breadboard near by that holds 4 of my LEDs. Each one has it's own job. from left to right, the first one is connected to pin 13 so it will alert me if somethings happening with the arduino (mainly if code is uploading). the next three tell when the IR sensors see an object, if the car is backing up, and if the code has completed running or not. On the same breadboard I broke out three pins for the servo (which controls the steering in the front of the car). I also have a capacitor (same specifications as above) to balance out the current being drawn by by the servo. The last of the things on the breadboard are three buttons, which will be used for storing waypoints later, but they currently have no use.

It looks like a girrafe...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Behind the breadboard and the arduinos are most of the batteries I use to power the car. I have two 7.4v 1000mAh LiPo batteries in parallel as back up batteries in case my main battery dies. The main battery for the mega 2560 is a 7.4v 2200mAh LiPo battery. I also have an 11.1v 1500mAh battery that powers the uno. The last battery I use is a 8.2v 4000mAh NiMh to power the esc and the dc motor. I have two missile switches in the rear, one powering the mega and the other powering the headlights. I have another basic switch to turn on the uno. (the uno doesn't have that amazing of a task, so why waist an amazing button? :-P )

Lastly on the plywood, I have a piezo speaker to alert someone if the car is about to back up, and then makes a "backing up" sound when it's going in reverse. I think it suits the cause.

Towards the rear of the plywood, I have an 18 inch wood pole sticking up out of the plywood. It is support by a 3 1/2" decking screw. On top of the pole, I have my GPS and compass on another breadboard. The wires trace down the pole and to the mega. I'm using the Compass Module - HMC6352, and the 66 Channel LS20031 GPS 5Hz Receiver. They work quite well.

GPS and Compass

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I ordered most (if not all) the electronics from SparkFun (they are a godsent) and I ordered the rc car from a hobby distributor, not sure which one.

The code is not 100% finished, but I have an algorithm for obstacle avoidance which works well in hallways as well as outdoors. All that's left for me to do is incorporate the GPS and compass into the working code, and set it off to run! I've used these both before, but I haven't created the distance formulas or anything similar.

If you have any questions, please feel free to ask me!

 

__________________________________________________________________________________________________________

edit on December 24th, 2012

 

Hi all, I'm trying to get my robot to go to waypoints, and I'm not really sure how to accomplish that task.  Can anyone give me some sort of direction to start at?  I don't really want the code done for me, but I need to know what needs to be accomplished in order for the robot to be able to go to one(or mutiple) waypoint(s)

 

____________________________________________________________________________________________________________

Last edit on January 9th, 2013

 

Hey guys, happy late new year!

Just thought I'd do a quick update on my progress with new pictures to follow.  Over christmas break, I received gift cards to various places (including sparkfun) and I ordered some Xbees (series one, 1 mile range).  I'm going to try to do an easy xbee started guide here on lmr, just not sure when that will be.  I also decided to buy a wireless camera to transmit data (with about a 150' range) to a tv, which I'm going to mount on the robot this weekend.  Hopefully I'll be able to improve the range on that somehow, but I'm looking forward to being able to drive an rc car from my living room or bedroom!!  I'm also planning on cutting a few inches off of the tower because it's starting to sway a bit and I need it to be a little more secure.  Another thing that I've been wanting to do for a while (and hopefully will finally become a reality) is to create my own website!  I've wanted to share my stuff somewhere, and now I'll finally have a place to put everything!!!  anyone have any tips on where to go to make an easy website with an already purchased domain?

Comment viewing options

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

very nice!  What does the algorithm entail for the car to turn and avoid obstacles?

As of right now I am still trying to implent a detect and turn policy. How are you doing on the algorithm?

Yesterday, I attempted to make the algorithm more efficient by mapping values from the IR sensors to the servo, but unfortunately, that actually worsened the algorithm and made the car less responsive.  I'm not sure if I have what might be the final steering algorithm uploaded--let me check now.  By the time you read this, it should be up.  Trying to figure out how to get the GPS stuff going now.....

check out this great tutroial written by Patrick Mccabe for GPS.

http://letsmakerobots.com/node/19554.

I've been to his tutorial and even emailed him, but I'm still trying to get the hang of it.  How's your robot comming?

pretty good! im still trying to mess around with the gps and the compass without sucess

What issues are you running into?

Im having trouble acutally created a program

What's the biggest issue with that?  Is it still the communication problem between processing and Arduino?

*edit---sorry I posted this twice--ignore this