TECHNOLOGICAL EDUCATIONAL INSTITUTE OF MESOLONGHI DEPT. OF TELECOMMUNICATION SYSTEMS AND NETWORKS EMBEDDED SYSTEM DESIGN AND APPLICATIONS GROUP (HTTP://ESDA-LAB.TESYD.TEIMES.GR/) RC CAR CONTROLED BY ARDUINO UNO Dimitris Dedousis 30/9/2011
Table of Contents 1. The Arduino board... 1 1.1. Introduction to Arduino... 1 1.2. Hardware... 2 2. Reviewing the Project... 2 2.1. Components... 3 2.2. Design and implementation... 4 3. References... 5 4. Relative links... 5 1. The Arduino board The project began in Ivrea, Italy (a town that, as the site of Olivetti, hosted a high concentration of IT professionals), in 2005 to make a device for controlling student-built interaction design projects less expensively than other prototyping systems available at the time. As of February 2010 more than 120,000 Arduino boards had been shipped. Founders Massimo Banzi and David Cuartielles named the project after Arduin of Ivrea, the main historical character of the town. "Arduino" is an Italian masculine first name, meaning "strong friend". The English version of the name is "Hardwin". 1.1. Introduction to Arduino Arduino is an open-source single-board microcontroller, descendant of the open-source Wiring platform, designed to make the process of using electronics in multidisciplinary projects more accessible. Arduino hardware is programmed using a Wiring-based language (syntax + libraries), similar to C++ with some simplifications and modifications. The IDE that Arduino uses is based on the processing programing
language which is built on Java programing language but uses a simplified syntax and graphics programming model. The microcontroller on the board is programmed using the Arduino programing language which is based on Wiring programing language. 1.2. Hardware An Arduino board consists of an 8-bit Atmel AVR microcontroller with complementary components to facilitate programming and incorporation into other circuits. An important aspect of the Arduino is the standard way that connectors are exposed, allowing the CPU board to be connected to a variety of interchangeable addon modules (known as shields). Official Arduinos have used the megaavr series of chips, specifically the ATmega8, ATmega168, ATmega328, ATmega1280, and ATmega2560. A handful of other processors have been used by Arduino compatibles. Most boards include a 5 volt linear regulator and a 16 MHz crystal oscillator (or ceramic resonator in some variants), although some designs such as the LilyPad run at 8 MHz and dispense with the onboard voltage regulator due to specific form-factor restrictions. An Arduino's microcontroller is also pre-programmed with a boot loader that simplifies uploading of programs to the on-chip flash memory, compared with other devices that typically need an external chip programmer. At a conceptual level, when using the Arduino software stack, all boards are programmed over an RS-232 serial connection, but the way this is implemented varies by hardware version. Serial Arduino boards contain a simple inverter circuit to convert between RS-232-level and TTL-level signals. Current Arduino boards are programmed via USB, implemented using USB-to-serial adapter chips such as the FTDI FT232. Some variants, such as the Arduino Mini and the unofficial Boarduino, use a detachable USB-to-serial adapter board or cable, Bluetooth or other methods. (When used with traditional microcontroller tools instead of the Arduino IDE, standard AVR ISP programming is used.) 2. Reviewing the Project The purpose of this project was to make an RC car controlled by tilting a board. The idea was pretty simple. Using an Arduino all that had to be done was to send
commands to the RC car so it would be moved around the room. The model of Arduino that was used is Arduino uno SMD edition. The difference from the regular Arduino uno is that the SMD edition uses a surface-mounted version of the Atmega328 processor. The first thing that had to be done was the connection of the Arduino board with the remote control of the RC car. By using the serial connection of Arduino, commands could be sent to the RC car from the computer. But how could there be ability of sending the same commands without using a computer? The problem would be solved by the use of an accelerometer that can take measures from the three different axis. Finally by assembling all the parts together there was the ability of controlling the RC car by a tilting hand. Figure 1. Arduino Uno SMD Edition 2.1. Components The components that I used to do this project was: 1. Arduino Uno SMD edition with Atmega328 processor 2. Breadboard 3. 3-Axis accelerometer ADXL335 4. And an RC car
Figure 2. 3-Axis accelerometer ADXL335 2.2. Design and implementation The first thing that had to be done was some measures from the RC car remote control so it would be connected to the Arduino correctly and without harming the controller. With a multimeter it was found out that the controller was using around 7 Volts and the Arduino output pins send 5 Volts. Therefore the Arduino board was connected to the controller and it was programed in a way that it would be able to give the right commands to the controller. After this step, measures had to be taken from the accelerometer because even when it stood still the acceleration was between 320 and 350. Finally after lots of measures and after finding the correct levels of acceleration the accelerometer was connected to the board.
Figure 3. All the parts together 3. References http://arduino.cc/blog/2011/01/08/arduino-uno-smd/ http://en.wikipedia.org/wiki/arduino http://en.wikipedia.org/wiki/processing_%28programming_language%29 http://en.wikipedia.org/wiki/accelerometer http://arduino.cc/en/tutorial/memsic2125?from=tutorial.accelerometermemsic2125 4. Relative links http://www.youtube.com/watch?v=ttoe8swuags