Introduction: Adeept 3 WD Bluetooth Car Kit for Arduino

Adeept is a technical service team of open source software and hardware. Dedicated to applying the Internet and the latest industrial technology in open source area, we strive to provide best hardware support and software service for general makers and electronic enthusiasts around the world. We aim to create infinite possibilities with sharing. No matter what field you are in, we can lead you into the electronic world and bring your ideas into reality.

The code and circuits of our product are open source. You can check on our website:

If you have any problems, feel free to send an email for technical support and assistance:

On weekdays, we usually will reply within 24 hours. Also welcome to post forums on our website.

Step 1: About the 3-Wheel-Driven Bluetooth Robot Car


The technology of artificial intelligence integrates the technologies of computer, physics, physiology, control, and sensor and so on. Apart from traditional industrial sector, its application grows in more and more fields including military affairs, entertainment, service, medical treatment, etc. As the growth of robotic technology, we now have higher requirement on performance of robots. Therefore, AI robots are now under the spot light.

In this context, this 3-wheel driven (WD) robot car based on Arduino is developed. It is agile and can be controlled conveniently. Various precision modules can be added onside to process data sent from sensors. It supports the following functions:

1. Obstacle avoiding – it can self-adjust its direction when running, in case of crash or scratch.

2. Line following – it can detect the black line on a white surface with the photoelectric diode (infrared radial parts include an emitter and a receiver), so it can run along the line.

3. Remote control – it can be controlled remotely to go forward and backward and turn left and right based on the command sent from a mobile on Android via Bluetooth.


Three working modes after the car is power on:

Mode No.1: Remote control via Bluetooth

You can control the car to go forward and backward and turn left and right by commands via Bluetooth. At the same time, you can switch between the modes and control the buzzer to beep.

Mode No.2: Obstacle avoidance by ultrasonic

Under this mode, the car can detect and bypass the obstacles in front automatically.

Mode No.3: Line following

Under this mode, on a white surface with routes of 3cm-width black lines, the car can go along the black lines.

Step 2: Components List

The acrylic plates are fragile, so please be careful when assembling them in case of breaking.

The acrylic plate is covered with a layer of protective film. You need to remove it first.

Some holes in the acrylic may have residues, so you need to clean them before the use.

Step 3: Preparations Before Assembly – Modules + Wires

Step 4: Assemble Modules to the Car

Step 5: Assemble the Car's Lower Part

Step 6: Final Assembly

Step 7: Circuit Connection

Step 8: Install and Remove Batteries

Step 9: What Is Arduino?

Arduino is an open-source electronics platform

based on easy-to-use hardware and software. Arduino boards are able to read inputs - light on a sensor, a finger on a button, or a Twitter message - and turn it into an output - activating a motor, turning on an LED, publishing something online. You can tell your board what to do by sending a set of instructions to the microcontroller on the board. To do so you use the Arduino programming language (based on Wiring), and the Arduino Software (IDE), based on Processing.

Over the years Arduino has been the brain of thousands of projects, from everyday objects to complex scientific instruments. A worldwide community of makers - students, hobbyists, artists, programmers, and professionals - has gathered around this open-source platform, their contributions have added up to an incredible amount of accessible knowledge that can be of great help to novices and experts alike.

Arduino was born at the Ivrea Interaction Design Institute as an easy tool for fast prototyping, aimed at students without a background in electronics and programming. As soon as it reached a wider community, the Arduino board started changing to adapt to new needs and challenges, differentiating its offer from simple 8-bit boards to products for IoT applications, wearable, 3D printing, and embedded environments. All Arduino boards are completely open-source, empowering users to build them independently and eventually adapt them to their particular needs. The software, too, is open-source, and it is growing through the contributions of users worldwide.

Step 10: Why Arduino?

Thanks to its simple and accessible user experience, Arduino has been used in thousands of different projects and applications. The Arduino software is easy-to-use for beginners, yet flexible enough for advanced users. It runs on Mac, Windows, and Linux. Teachers and students use it to build low cost scientific instruments, to prove chemistry and physics principles, or to get started with programming and robotics. Designers and architects build interactive prototypes, musicians and artists use it for installations and to experiment with new musical instruments. Makers, of course, use it to build many of the projects exhibited at the Maker Faire, for example. Arduino is a key tool to learn new things. Anyone - children, hobbyists, artists, programmers - can start tinkering just following the step by step instructions of a kit, or sharing ideas online with other members of the Arduino community.

Step 11: How Should I Use Arduino?

If you are a beginner with Arduino, Arduino learning kits on our website would be a prefect step into this fantastic field!

One type of Arduino board are used in this car kit: Adeept UNO R3 board


The Arduino/Genuino Uno board can be powered via the USB connection or with an external power supply. The power source is selected automatically.

External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or battery. The adapter can be connected by plugging a 2.1mm center-positive plug into the board's power jack. Leads from a battery can be inserted in the GND and Vin pin headers of the POWER connector.

The board can operate on an external supply from 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may become unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts.

The power pins are as follows:

Vin. The input voltage to the Arduino/Genuino board when it's using an external power source (as opposed to 5 volts from the USB connection or other regulated power source). You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin.

5V. This pin outputs a regulated 5V from the regulator on the board. The board can be supplied with power either from the DC power jack (7 - 12V), the USB connector (5V), or the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins bypasses the regulator, and can damage your board. We don't advise it.

3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA.

GND. Ground pins.

IOREF. This pin on the Arduino/Genuino board provides the voltage reference with which the microcontroller operates. A properly configured shield can read the IOREF pin voltage and select the appropriate power source or enable voltage translators on the outputs to work with 5V/3.3V.

Input and Output

Each of the 14 digital pins on the Uno can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 5 volts. Each pin can provide or receive 20 mA as recommended operating condition and has an internal pull-up resistor (disconnected by default) of 20-50k ohm. A maximum of 40mA is the value that must not be exceeded on any I/O pin to avoid permanent damage to the microcontroller.

In addition, some pins have specialized functions:

Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data. These pins are connected to the corresponding pins of the ATmega8U2 USB-to-TTL Serial chip.

External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attachInterrupt() function for details.

PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite() function.

SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI communication using the SPI library.

LED: 13. There is a built-in LED driven by digital pin 13. When the pin is HIGH value, the LED is on, when the pin is LOW, it's off.

TWI: A4 or SDA pin and A5 or SCL pin. Support TWI communication using the Wire library.

The Uno has 6 analog inputs, labeled A0 through A5, each of which provide 10 bits of resolution (i.e. 1024 different values). By default they measure from ground to 5 volts, though is it possible to change the upper end of their range using the AREF pin and the analogReference() function.

There are a couple of other pins on the board:

AREF. Reference voltage for the analog inputs. Used with analogReference().

Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset button to shields which block the one on the board.

Step 12: Arduino Software (IDE)

Arduino Software (IDE) is used to write and upload the code for Arduino Board. First, install Arduino software (IDE): visit Download the corresponding installation program according to your operating system. If you are a Windows user, please select the “Windows Installer” to download and install the driver correctly.

After the download completes, run the installer. For Windows users, there may pop up an installation dialog box of the driver during the installation. Please agree the installation when it appears.

After installation is completed, an Arduino software shortcut will be generated on the desktop. Run the IDE.

The Arduino Integrated Development Environment - or Arduino Software (IDE) - contains a text editor for writing code, a message area, a text console, a toolbar with buttons for common functions and a series of menus. It connects to the Arduino and Genuino hardware to upload programs and communicate with them.

Verify: Checks your code for errors when compiling it.

Upload: Compiles your code and uploads it to the configured board.

Before uploading your sketch, you need to select the correct items from the Tools > Board and Tools > Port menus. The boards are described below. On the Mac OS X, the serial port is probably something like /dev/tty.usbmodem241 (for an Uno or Mega2560 or Leonardo) or /dev/tty.usbserial-1B1 (for a Duemilanove or earlier USB board), or /dev/tty.USA19QW1b1P1.1 (for a serial board connected with a Keyspan USB-to-Serial adapter). On Windows, it's probably COM1 or COM2 (for a serial board) or COM4, COM5, COM7, or higher (for a USB board) - to find out, you look for USB serial device in the ports section of the Windows Device Manager. On Linux, it should be /dev/ttyACMx, /dev/ttyUSBx or similar.

Once you've selected the correct serial port and board, press the upload button in the toolbar or select the Upload item from the Sketch menu. Current Arduino boards will reset automatically and begin the upload. With older boards (pre-Diecimila) that lack auto-reset, you'll need to press the reset button on the board just before starting the upload. On most boards, you'll see the RX and TX LEDs blink as the sketch is uploaded. The Arduino Software (IDE) will display a message when the upload is completed, or show an error.

When you upload a sketch, you're using the Arduino bootloader, a small program that has been loaded on to the microcontroller on your board. It allows you to upload code without using any additional hardware. The bootloader is active for a few seconds when the board resets; then it starts whichever sketch was most recently uploaded to the microcontroller. The bootloader will blink the on-board (pin 13) LED when it starts (i.e. when the board resets).

Note: If you are using an external programmer with your board, you can hold down the "shift" key on your computer when using this icon. The text will change to "Upload using Programmer".

New: Creates a new sketch.

Open: Presents a menu of all the sketches in your sketchbook. Clicking one will open it within the current window overwriting its content.

Note: Due to a bug in Java, this menu doesn't scroll; if you need to open a sketch late in the list, use the File | Sketchbook menu instead.

Save: Saves your sketch.

Serial Monitor: Opens the serial monitor.

Additional commands are found within the five menus: File, Edit, Sketch, Tools, and Help. The menus are context sensitive, which means only those items relevant to the work currently being carried out are available.

Since version 1.0, files are saved with an .ino file extension. Previous versions use the .pde extension. You may still open .pde named files in version 1.0 and later, and the software will automatically rename the extension to .ino.

Step 13: Upload Program

After the preparations above, next we will upload the program (example sketches provided) to the Adeept UNO R3 board.

Note: Before downloading the program, please remove the Bluetooth module first, otherwise the download program will fail.

Open the program provided for the control board, the file “Adeept3WDBluetoothCar.ino”.

Connect the Arduino UNO R3 board to the PC. Select Tool -> Board “Arduino/Genuino Uno”, and Port - > COM10. Also here is COM10, assigned to the Uno, but it can be COM1, COM2, COM3...