BlueRCCar

Bluetooth RC Car remote controller upgrade from standard RF to Bluetooth 3.0


Project maintained by NicolasBesson Hosted on GitHub Pages — Theme by mattgraham

BlueRCCar

BlueRCCar is a Bluetooth RC Car driver controller solution replacing standard radio RC Car equipped with HT8A978 radio receiver, by a Bluetooth 3.0 interface. The addition of Bluetooth on the RC Car makes it compatible with most of the Smart Phones on the market (in 2017).

The BlueRCCar system has been mounted on a Nikko Lazer 3.

Nikko Lazer 3

Device Usage

The system makes the RC Car addressable via Bluetooth through an SPP (Serial Port Profile) profile using a really simplistic bidirectional protocol.

Commands

The protocol is composed of Ascii commands that have the following meaning:

Command Value   Command Value
Forward F   Extra ON X
Backward B   Extra OFF x
Left L   Speed 0 0
Right R   Speed 10 1
Forward Left G   Speed 20 2
Forward Right I   Speed 30 3
Backward Left H   Speed 40 4
Backward Right J   Speed 50 5
Stop S   Speed 60 6
Front Lights ON W   Speed 70 7
Front Lights OFF w   Speed 80 8
Rear Lights ON U   Speed 90 9
Rear Lights OFF u   Speed 100 q
Horn ON V   Stop All D
Horn OFF v      

Bluetooth RC Android application

The supported protocol is compatible with an existing Android application called Arduino Bluetooth RC Car developed by ‘Andi.Co’. It is a free application and working on Android 2.3.3 and above.

User Interface

Bluetooth RC Interface

Building the Hardware

The RC Car electronic already in place is composed of two main parts, the RF Receiver that translate RF Commands into electric commands, and the motor commands through an H-Bridge. The system is replacing the Radio Receiver, by translating Bluetooth commands into electric commands. The system is composed of three parts, the Bluetooth receiver with a USART bus, the ATtiny 85 that translates the commands and drive the last element, the GPIO Expander onto an I2C Bus.

Schematic

Building the Software

The ATtiny 85 is a really cool Micro Controller that have 8 KB of Flash and 512 B of RAM to run any kind of C or C++ software. This gives some space to run a simple software and for this reason some optimization are required. The project has been developed in C++ (C++11) in order to reuse and give more flexibility in case of development of new features. It is required to use the VisualMicro extension for Visual Studio 2015 in order to build the project.

Tools

Before starting some tools are required :

Install Visual Studio 2015 or 2017, and make sure to select the support for C++ (Visual C++) during installation.

Install the Arduino IDE application, and launch the application. You first need to add the support of the ATtiny family as by default only Arduino based platforms are supported. From the File menu, select the Preferences submenu, and then find the “Additional Boards Manager URLs” field near the bottom of the dialog. Add the following url: https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json You can then validate and close the preferences dialog box. Then from the Tools menu you have to :

Project Dependencies

The project depends on the following libraries:

In oder to be able to build the software all the dependencies need to be installed as following from Arduino IDE application :

VisualMicro configuration

Close the Arduino IDE application and install the Visual Micro plugin for Visual Studio. Launch Visual Studio and open the BlinkyBike.sln from the project folders. On first usage of Visual Micro, you have to configure the various parameters of the plugin.

Then validate the configuration window and access the Visual Studio IDE. From vMicro menu:

The development environment is now ready for building and flashing.

Compilation

The source code compiles in Visual Studio 2015 using the VisualMicro plugin and Arduino IDE (cf Tools chapter for installation details). To compile the project you have to :

Then you are ready to program your ATtiny 85.

Programming

The ATtiny 85 micro controller can be programmed using the USBTinyISP programmer. The programmer is visible through a serial com port. You need to identify the associate port index (using Windows Device Manager) in order configure the Visual Micro plugin.

USB Tiny ISP

You need to wire the programmer as following:

USB Tiny ISP with ATtiny85

Assembling

Original RF Main board

RF Main Board interface

Revision History

V1.0 - 2017-06-10