3DS Controlled RC Car

3DSCar_Final

The project I’m going to show you today is a project that I made few days ago: a 3DS controlled RC car!


Here you can see a video in which I show it and I make it run a little on my table:

To make the project I used:

  • An old RC car that I got from DealExtreme (if you want to do this project, I’d suggest you to use a bigger car, the one that I used caused me some issues that I will discuss later)
  • A Microchip RN171 WiFi module
  • A Toshiba TB6612FNG H-Bridge Dual Motor Driver
  • A Nintendo 2DS capable of running homebrews through ninjhax
  • A WiFi router connected to the internet (hopefully in a future versione I won’t need the router anymore)

The first thing I did was to disassemble the RC car and remove all the electronics inside of it, except for the DC motor and the steering wheels. This is how it looked:

3DSCar_Disassembled

To connect the motor driver with the WiFi module I used the integrated GPIOs of the RN171, that can be controlled via ASCII commands over WiFi. Specifically I used GPIO4, GPIO5, GPIO6 and GPIO7.

To allow me to control these GPIO and to make everything works correctly I had to configure the RN171, by interfacing with it through a serial terminal running on my computer (I used CoolTerm). The commands I sent to the module were:

Please read the WiFly commands datasheet for further information on the commands I used.

In the following crappy schematic you can see the connection made between the RN171, the TB6612FNG and the motors (actually the motor and the electromagnet used by the steering wheels.
Please note that here I show only the connections that I had to make, refer to the RN171 datasheet for the other components needed by the RN171 (unless you use the RN171 development board).

3DSCar_schematic

 

As you can see, I directly connected PWMA and PWMB to VCC, that’s because without a microcontroller I couldn’t generate a PWM signal. In a future version I will use PWM to have speed control.

With all the wiring done correctly and the RN171 module programmed, the only thing that I had to do was to make a small program for the 3DS to control the car:

This program is really simple and I should improve it a little bit, but it works pretty good. What it does is simply connect to the RC car, send $$$ (which tells the RN171 to switch to command mode) and then it periodically sends the command set sys out to control the RN171’s GPIOs.

That’s it, I hope you liked the project. If you have any question or doubt, please feel free to ask in the comments :)

 

This entry was posted in 3DS, Electronics. Bookmark the permalink.