RC Car Controlled by Arduino and Xbox360 Controller

Hello all,

This is my first arduino project.

Basically, I ripped the circuit board out of my childhood RC Car and replaced it with an Arduino. I have a program running on my laptop which takes input from the Xbox 360 controller and sends data serially to the Arduino. The Arduino controls the drive and steering motors.

In the future, I will go wireless via Bluetooth, add a camera, and make the car go a lot faster.

http://vimeo.com/11317916

Nice job. We did something similar for a development platform where I work. We ended up choosing a different controller board and used 802.11 for the wireless interface.

Normally the cars weren’t manually driven, but when they were, we used this [USB joystick, because it was more like the controller used for normal RC driving. If you’re used to driving RC cars, it might be more natural for you than the Xbox controller.

-Michael](https://www.toysonics.com/hsp-virtual-rc-racing-pistol-grip-usb-controller.html)

I did the same a while ago but the RC car was autonomous. I think that your H-bridge might be too weak to get good acceleration, you’d better take the original H-bridge (the one originnaly in the RC car) and control it with the arduino.

mdipperstein:
We ended up choosing a different controller board and used 802.11 for the wireless interface.

Thanks. I am curious, I have seen projects on youtube that use 802.11. In order to do that, you need to have router on board the vehicle, no?

Voelker:
I think that your H-bridge might be too weak to get good acceleration, you’d better take the original H-bridge (the one originnaly in the RC car) and control it with the arduino.

Thanks for the advice. Unfortunately, when I examined the original circuit board I could not find an H-bridge!

I have attached a picture. Do you see an H-bridge on there? There is something on there with 10 pins on each side, is that it?

On this board, the H-bridge is made using discrete MOSFET. The top four components with heatsink are the MOSFET , the four transistors drives the gates of the MOSFET. By looking at the components reference and tracing the connections, you should be able to find schematic and compare it with existing h-bridge schematic. If i’m right it should be easy to use, by juste connecting wires on resistors connected to the transistors base.

Howdog:

mdipperstein:
We ended up choosing a different controller board and used 802.11 for the wireless interface.

Thanks. I am curious, I have seen projects on youtube that use 802.11. In order to do that, you need to have router on board the vehicle, no?

The vehicle doesn’t need to have a router on board any more than a PC needs to have a router on board.

If you’re using a traditional IP stack with 802.11, you need a router somewhere. We used an off the shelf router and placed it somewhere convenient.

I’ve heard of people building mesh networks using 802.11, I’m assuming those networks don’t use routing hardware, but that’s no more than an assumption on my part.

-Michael

So I just hooked up the Bluesmirf module. It was very exciting!

However, now that I can actually drive the car around, I noticed a problem.

The car will go very quick in short bursts, but then the car will slow to a crawl and I hear a hissing/whirring sound until the car finally just stops. When I let off the accelerator, the whirring stops. If I let the car stand still for several seconds and hit the accelerator, then the car springs to life and goes fast again for a short time. I just charged the battery a couple days ago and I can repeat this speed up slow down process for some time.

It almost seems like the battery gets drained quickly and then has to take a breather before it can go again.

Can someone please tell me what is going on?

I am a total noob :smiley:

Also, I have the Arduino and Bluesmirf running off a separate 9v battery. One thing that I found odd was that if I didn’t have a wire going from the ground rail on the bar to both the battery’s GRND AND the Arduino’s GRND, then the motors wouldn’t turn.

Does you H-bridge gets hot ? Some H-bridge include an over-temperature protection that make it shutdown unti it cools down. If it is the case you should consider changing the h-bridge for a more powerfull one and/or stick and heatsink on it. Try measuring the current that flow through the motor at high-speed when blocking the wheel.

Voelker:
Does you H-bridge gets hot ? Some H-bridge include an over-temperature protection that make it shutdown unti it cools down. If it is the case you should consider changing the h-bridge for a more powerfull one and/or stick and heatsink on it. Try measuring the current that flow through the motor at high-speed when blocking the wheel.

Voelker, thank you very much for your speedy response!

From spark fun product page "the SN754410 can drive 4.5V up to 36V at 1A continuous output current! " http://www.sparkfun.com/commerce/produc … cts_id=315

I am surprised that overheating could be the problem because the voltage is only 5V. I do not know what the current is though. I will try measuring it when I get home from work.

I did a quick google search and found an article which stated that “In order to get the full 1Amp you will need to add a dip heat sink”. The article also mentioned that the SN754410 has “Thermal Shutdown” as you suggested.

Thanks again for your response, it was very helpful. Hopefully adding a heatsink will solve the problem. I would purchase a more powerful H bridge, but I haven’t seen one on Sparkfun that isn’t way more money. I know that you suggested taking the old motor controller out of the car, but that is a little bit out of my experience range.

You could try using an L298N. Those things have a lot more grunt, and there’s a large metal backing plate to attach a heat sink.

Do you have an amp meter you could use to measure the stall current on your main motor? The motor I’m using stalls at 2.2 amps @ 5V.

I tried getting some snap on heat sinks from Mouser. I was going to use some thermal grease that I picked up at Radioshack to bond the heatsink to the IC, but the grease says that it only bonds metals to metals.

Anyways, the heatsink didn’t seem to help the problem all that much and it also made it so that the IC doesn’t fit snug in the breadboard.

I think that I will try using a different motor controller as people have suggested. Maybe I will take a look at this L298N motor controller. It is only $3 on Sparkfun.

60amp_relay:
You could try using an L298N. Those things have a lot more grunt, and there’s a large metal backing plate to attach a heat sink.

Do you have an amp meter you could use to measure the stall current on your main motor? The motor I’m using stalls at 2.2 amps @ 5V.

Thanks for the advice. I ordered the L298N and it works great. It completely solved my problem. I was surprised when I received the controller however because its pin configuration did not allow it to be placed on a breadboard. I had to bend the pins with pliers to get it to fit on the board nicely.

After getting this rigged up, I tested my car outside. For some reason, it seems like the bluesmirf gold has a very limited range. It probably only goes less than 50 feet (both in my apartment and outside on the sidewalk). The sparkfun page rates it at around 300ft. Does anyone know why I would be experiencing such a limited range?

The baud rate is set to 115k. The modem works like a dream within 20 feet, but after that it is really touch and go. Any ideas?

Thanks for everyone’s help with this project!

Here is a video of the completed project. I call it the Creeper Bot.

http://www.youtube.com/watch?v=BstbG4UrVfQ

I had a great time making this and I am looking forward to making something else. :smiley:

Awesome! I see the L298N :slight_smile:

good job done

Howdog:
So I just hooked up the Bluesmirf module. It was very exciting!

However, now that I can actually drive the car around, I noticed a problem.

The car will go very quick in short bursts, but then the car will slow to a crawl and I hear a hissing/whirring sound until the car finally just stops. When I let off the accelerator, the whirring stops. If I let the car stand still for several seconds and hit the accelerator, then the car springs to life and goes fast again for a short time. I just charged the battery a couple days ago and I can repeat this speed up slow down process for some time.

It almost seems like the battery gets drained quickly and then has to take a breather before it can go again.

Can someone please tell me what is going on?

I am a total noob :smiley:

Also, I have the Arduino and Bluesmirf running off a separate 9v battery. One thing that I found odd was that if I didn’t have a wire going from the ground rail on the bar to both the battery’s GRND AND the Arduino’s GRND, then the motors wouldn’t turn.

hi

thanks for the info

good job done

Clarkden

[RC hobby Cars](http://www.villoo.com)

I ended up making a better video, http://creeperbot.blogspot.com/

and a project page that details the parts list. The page also includes all the source code for the project.

http://www.youtube.com/watch?v=BstbG4UrVfQ

BTW, I ended up using Xbee Radios instead of the Bluesmirf and I fixed the steering since the video.

Excellent work! A few suggestions…

Since you’re new, I don’t know if you know about Arduino Shields. Basically they can be inserted directly on top of the Arduino to give access to different modules. SparkFun has a shield called the ArduMoto, which actually uses the L298. You might want to check it out, it will help clean out a lot of the wires which could end up coming out while driving:

http://www.sparkfun.com/commerce/produc … ts_id=9815

You can solder stackable headers onto the shield, too, so that more than one shield can be added:

http://www.sparkfun.com/commerce/produc … s_id=10007

These would allow you to put a proto shield on top of it all to connect to your camera and siren.

The only actual design change I think you should consider is just hacking your 360 controller to directly communicate with your bluetooth module so you can take the laptop out of the equation. Obiously you need the laptop if your using the camera, but if you want to just take the car out for a spin it might be cool not to need the laptop to ‘translate.’

Great work though. What camera did you use and how hard was it to control?

I have the parts list for the project on the project page, here: http://creeperbot.blogspot.com/

Here is the link to the camera, http://tinyurl.com/25sdu2p.

The camera system is standalone. It is mounted to a pan and tilt servo system and powered off of the same battery as the Arduino. The camera isn’t great, but the price was and it definitely suited the project.