Showing posts with label arduino. Show all posts
Showing posts with label arduino. Show all posts

Arduino Traffic Light System


Here is a traffic light system based on Arduino that can be use in a 3-way ond 4-way intersections. It has an additional blinking orange led that is used to signal when the pedestrians can cross the street. The code is a little bit complicated but I think you can understand how it works, right?

Check out this video below to see how the traffic lights system is working.
The code is written based on 4 situations:
  1. the first traffic light (TF1) has the red signal and the pedestrians ON; the second one (TF2) has green ON.
  2. TF1 has red and yellow ON; TF2 has yellow ON
  3. TF1 is green now and TF2 is red and pedestrians ON
  4. TF1 is yellow and TF2 is red and yellow
The schematic is too easy, all you have to do is connect the leds in series with a 470Ω resistor between the ground and the Arduino pins mentioned in the code.
arduino traffic lights
Code of the Arduino Traffic Lights Sketch
// Source: http://www.electroschematics.com/10178/arduino-traffic-light-system/
int trafficLights1[] = {2,3,4,5}; // red, yellow, green, pedestrians led pins
int trafficLights2[] = {6,7,8,9}; // red, yellow, green, pedestrians led pins
int situations = 4;
int duration[] = {8000,3000,10000,3000}; // duration of each situation
long previousCars = 0;
long previousPeds = 0;
long interval = 300; //blink interval for pedestrians
int ledState = LOW;
int state;
int i = 0;

void setup()
{
  for(int i = 0; i < 4; i++) {
   pinMode(trafficLights1[i], OUTPUT);
   pinMode(trafficLights2[i], OUTPUT);
  }
 Serial.begin(9600);
}

void loop()
{ 
 unsigned long currentMillis = millis();  
 if(currentMillis - previousCars < duration[i]) {   
  situation(i);  
 } else { 
  previousCars = currentMillis; 
  if(i >= situations) {
   i = 0;
   } else {
   i++;
  }  
 }
}

void activateTrafficLight1(String lights, int pedestrians) 
{ 
 for(int x = 0; x < 3; x++) 
 {
  if(lights[x] == '0') state = LOW;
  if(lights[x] == '1') state = HIGH;
  digitalWrite(trafficLights1[x], state); 
 }
 if(pedestrians == 1) {
  blinkPed(trafficLights1[3]);
 } else {
  digitalWrite(trafficLights1[3], LOW);
 }
}

void activateTrafficLight2(String lights, int pedestrians)
{ 
 for(int x = 0; x < 3; x++)
 {
  if(lights[x] == '0') state = LOW;
  if(lights[x] == '1') state = HIGH;
  digitalWrite(trafficLights2[x], state);
 }
 if(pedestrians == 1) {
  blinkPed(trafficLights2[3]);
 } else {
  digitalWrite(trafficLights2[3], LOW);
 }
}

void situation(int i)
{
 switch(i){
  case 0: 
   activateTrafficLight1("100",1); // 100 means red ON, yellow OFF, green OFF
   activateTrafficLight2("001",0); // the second parameter is for pedestrians
   break;       // 1 is ON and 0 is OFF
  case 1: 
   activateTrafficLight1("110",0); // 110: red ON, yellow ON, green OFF
   activateTrafficLight2("010",0);
   break; 
  case 2: 
   activateTrafficLight1("001",0);
   activateTrafficLight2("100",1);
   break;
  case 3: 
   activateTrafficLight1("010",0);
   activateTrafficLight2("110",0);
   break; 
 }
}

void blinkPed(int ped) {
 unsigned long currentMillis = millis();
 if(currentMillis - previousPeds > interval) {  
  previousPeds = currentMillis;  
  if (ledState == LOW)
  ledState = HIGH;
  else
  ledState = LOW;
  digitalWrite(ped, ledState);
 } 
}

Traffic Light System proposal

Here is a traffic light system based on Arduino that can be use in a 3-way ond 4-way intersections. It has an additional blinking orange led that is used to signal when the pedestrians can cross the street. The code is a little bit complicated but I think you can understand how it works, right?

Check out this video below to see how the traffic lights system is working.
The code is written based on 4 situations:
  1. the first traffic light (TF1) has the red signal and the pedestrians ON; the second one (TF2) has green ON.
  2. TF1 has red and yellow ON; TF2 has yellow ON
  3. TF1 is green now and TF2 is red and pedestrians ON
  4. TF1 is yellow and TF2 is red and yellow
The schematic is too easy, all you have to do is connect the leds in series with a 470Ω resistor between the ground and the Arduino pins mentioned in the code.
arduino traffic lights
Code of the Arduino Traffic Lights Sketch
// Source: http://www.electroschematics.com/10178/arduino-traffic-light-system/
int trafficLights1[] = {2,3,4,5};	// red, yellow, green, pedestrians led pins
int trafficLights2[] = {6,7,8,9};	// red, yellow, green, pedestrians led pins
int situations = 4;
int duration[] = {8000,3000,10000,3000}; // duration of each situation
long previousCars = 0;
long previousPeds = 0;
long interval = 300;	//blink interval for pedestrians
int ledState = LOW;
int state;
int i = 0;

void setup()
{
  for(int i = 0; i < 4; i++) {
	  pinMode(trafficLights1[i], OUTPUT);
	  pinMode(trafficLights2[i], OUTPUT);
  }
	Serial.begin(9600);
}

void loop()
{	
	unsigned long currentMillis = millis();		
	if(currentMillis - previousCars < duration[i]) {			
		situation(i);		
	} else { 
		previousCars = currentMillis; 
		if(i >= situations) {
			i = 0;
			} else {
			i++;
		}		
	}
}

void activateTrafficLight1(String lights, int pedestrians) 
{	
	for(int x = 0; x < 3; x++) 
	{
		if(lights[x] == '0') state = LOW;
		if(lights[x] == '1') state = HIGH;
		digitalWrite(trafficLights1[x], state);	
	}
	if(pedestrians == 1) {
		blinkPed(trafficLights1[3]);
	} else {
		digitalWrite(trafficLights1[3], LOW);
	}
}

void activateTrafficLight2(String lights, int pedestrians)
{	
	for(int x = 0; x < 3; x++)
	{
		if(lights[x] == '0') state = LOW;
		if(lights[x] == '1') state = HIGH;
		digitalWrite(trafficLights2[x], state);
	}
	if(pedestrians == 1) {
		blinkPed(trafficLights2[3]);
	} else {
		digitalWrite(trafficLights2[3], LOW);
	}
}

void situation(int i)
{
	switch(i){
		case 0: 
			activateTrafficLight1("100",1); // 100 means red ON, yellow OFF, green OFF
			activateTrafficLight2("001",0); // the second parameter is for pedestrians
			break;							// 1 is ON and 0 is OFF
		case 1: 
			activateTrafficLight1("110",0); // 110: red ON, yellow ON, green OFF
			activateTrafficLight2("010",0);
			break;	
		case 2: 
			activateTrafficLight1("001",0);
			activateTrafficLight2("100",1);
			break;
		case 3:	
			activateTrafficLight1("010",0);
			activateTrafficLight2("110",0);
			break;	
	}
}

void blinkPed(int ped) {
	unsigned long currentMillis = millis();
	if(currentMillis - previousPeds > interval) {		
		previousPeds = currentMillis;		
		if (ledState == LOW)
		ledState = HIGH;
		else
		ledState = LOW;
		digitalWrite(ped, ledState);
	}	
}

Story and History of Development of Arduino


It was in the year 2005 that the first ever Arduino board was born in the classrooms of the Interactive Design Institute in Ivrea, Italy. Well, if you are not very familiar with the term, an Arduino is an Open Source microcontroller based development board  that has opened the doors of electronics to a number of designers and creative engineers.
It was in the Interactive Design Institute that a hardware thesis was contributed for a wiring design by a Colombian student named Hernando Barragan. The title of the thesis was “Arduino–La rivoluzione dell’open hardware” (“Arduino – The Revolution of Open Hardware”). Yes, it sounded a little different from the usual thesis but none would have imagined that it would carve a niche in the field of electronics.
A team of five developers worked on this thesis and when the new wiring platform was complete, they worked to make it much lighter, less expensive, and available to the open source community.
About the Arduino
The new prototype board, the Arduino, created by Massimo Banzi and other founders, is a low cost microcontroller board that allows even a novice to do great things in electronics. An Arduino can be connected to all kind of lights, motors, sensors and other devices; easy-to-learn programming language can be used to program how the new creation behaves. Using the Arduino, you can build an interactive display or a mobile robot or anything that you can imagine.
You can purchase an Arduino board for just about US $30 or build your own board from scratch. Consequently, Arduino has become the most powerful open source hardware movement of its time.
David A. Mellis, the lead software developer of Arduino, states that this little board has made it possible for people to do things they wouldn’t have done otherwise.
Today, there are Arduino-based LED cubes, Twitter displays, DNA analysis kits, breathalyser and so much more. There are Arduino parties and Arduino clubs. As a feather to its crown, Google has recently released an Arduino-based development kit for its Android Smartphone!
Now, the Story in Detail…
As mentioned earlier, it all started in Ivrea, Italy.
To begin with, let’s have a look at how the name Arduino, that sounds quite strange for an electronic device, was chosen. This beautiful town of Ivrea, situated in Northern Italy, is quite famous for its underdog kings. In the year 1002 AD, King Arduin (you got it right!) ruled the country; two years later, he was dethroned by King Henry II of Germany. In memoir of this King Arduin, there is this ‘Bar Di Re Arduino’, a pub on the cobble stoned street in the town. Well, this place is where a new era in electronics had its roots!
This bar was frequently visited by Massimo Banzi, one of the founders of Arduino, who taught at Ivrea. He was the one who gave the name Arduino to this low-cost microcontroller board in honor of the place!
Before getting into how the Arduino was developed and used, let’s know who the core members of the Arduino developer team are: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, and David Mellis.
Arduino developer team - David Cuartielles, Gianluca Martino, Tom Igoe, David Mellis, and Massimo Banzi
Arduino developer team - David Cuartielles, Gianluca Martino, Tom Igoe, David Mellis, and Massimo Banzi. Photo Courtesy - Randi Klett/IEEE Spectrum
Arduino was an answer to how to teach students to create electronics fast…
It was in the year 2002 that Banzi, a software architect by profession, was recruited as an associate professor by IDII in order to promote novel ways of doing interactive design, in other words, physical computing. Though he had some good ideas, limited class time and shrinking budget didn’t help him much. Like most of his colleagues, Banzi had to rely on the BASIC Stamp, a microcontroller developed by Parallax, a California based company. Engineers had been making use of this microcontroller for about a decade. The Stamp was coded using the BASIC programming language and looked like a tidy little circuit board packed with essentials of a power supply, memory, a microcontroller, and input/output ports to which hardware can be attached. However, the BASIC Stamp had two issues according to Banzi. One, it did not have sufficient computing power for some of the projects his students had conceptualized and two, it was pretty expensive. In fact, a board with its basic parts cost about US $100. Moreover, Banzi also required something that could run on Macintosh computers which were largely used by designers at IDII. The new Arduino microcontroller that best suited their needs had signs of its roots at this point of time.
Meanwhile a designer-friendly programming language called “Processing” had been developed by Banzi’s colleague from MIT. Processing was quickly gaining popularity as it enabled even amateur programmers to create complex and beautiful data visualizations! It was an extremely easy-to-use Integrated Development Environment or IDE. Banzi really liked this concept and wondered if he and his team could create similar software programs to code a microcontroller instead of graphics on a screen.
Contribution of Hernando Barragan
One of Banzi’s students, Hernando Barragan, took the first baby step in the direction towards creating software tools similar to Processing. He developed a new prototyping platform known as Wiring; it included both a user-friendly IDE as well as a ready-to-use circuit board. It turned out to be a promising project the success of which continues till date; however, Banzi was already having bigger dreams. He wished to make a platform that was even cheaper, simpler and easier to use.
The First Prototype Board
Well, Banzi succeeded in creating the first prototype board in the year 2005; it was a simple design and at that time, it wasn’t called Arduino. Of course, by now, you would know how he had coined the name later that year.
Open Source Model – A Big Decision
Banzi and his collaborators strongly believed in open-source software. As the purpose was to develop a quick and easily accessible platform, they thought it would be better to open up the project to as many people as possible instead of keeping it closed. Another crucial factor that contributed to that big decision was that after operating for nearly five years, IDII had no more funds left and was in fact going to shut its doors. All the faculty members feared that their projects might not survive or would be embezzled. It was at this crucial point of time that Banzi decided to go ahead and make it open source!
How Banzi and team managed to create Arduino and make it available for public
Pretty obviously, the open source model had always been used to fuel innovation for software and never hardware. If they had to make it work, they had to find a suitable licensing solution that could apply to the board. After a little investigation, Banzi and team looked at the whole thing from a different angle and decided to use a license from Creative Commons, a nonprofit group whose agreements were normally used for cultural works like writing and music. According to Banzi, hardware is a piece of culture that must be shared with other people!
Well, the next step was to make the board. The group decided to fix a specific, student-friendly price of $30 as their goal. Banzi felt that the Arduino should be affordable for all students. However, they also wanted to make it really quirky, something that would stand out and look cool as well. While other boards were green, they wanted to make theirs blue. While a few manufacturers saved on input and output pins, they added a lot to their board. Quite weirdly, they added a little map of Italy on the back of the Arduino board!
Gianluca Martino, one of the ‘real’ engineers on the team felt that the nontraditional and raw approach to circuit board design was pretty enlightening. He thought that the product created was a result of a new way of thinking about electronics; not in an engineering way wherein you have to count electrodes, but using a DIY approach.
The product created by the team comprised of inexpensive parts that could be found easily if users wanted to create their own boards. However, an important decision was to ascertain that it would essentially be plug and play: something someone could just take out of a box, plug into a system and use it right away. On the other hand, boards such as the BASIC Stamp demanded the users to shell out a lot of other items that ultimately added to the total cost. However, for the Arduino, a user needs to just pull out a USB cable from the board and merely connect it to a computer to program the device.
A telecommunications engineer of the team, David Cuartielles laurels the philosophy of Arduino stating that if one wants to learn electronics, he or she must be able to learn from day one rather than starting with Algebra and Arduino is ideal to learn electronics from day one.
Tom Igoe, a professor of physical computing at the New York University was very much impressed with the affordability and extraordinary concept of the Arduino and he is now a core member of the Arduino team.
Philosophy in Action….
The team soon decided to put that philosophy to test. They gave 300 blank printed circuit boards to students of IDII with a simple directive: Look up the assembly instructions available online, build your own board and use it to create something. Many projects came up and one was a homemade alarm clock that hung from the ceiling by a cable. The clock would rise tauntingly higher into the air until you just had to get up whenever you hit the snooze button!
Very soon, many people came to know of the boards and they wanted one as well. It was Banzi’s friend who ordered one unit and became the first customer. The project started to take off and one major aspect was missing – a name for the invention! And, one night, over drinks at the local bar, it struck Banzi: Arduino, just like the bar – and the king…..
As you could easily figure it out, word of Arduino rapidly spread online – with no marketing or advertising, taking the DIY world by storm!!
if u like the post just say thank u in comment box.

proposal Arduino Robot

Arduino Robot

Robot Top Robot Bottom

Overview

The Arduino Robot is the first official Arduino on wheels. The robot has two processors, one on each of its two boards. The Motor Board controls the motors, and the Control Board reads sensors and decides how to operate. Each of the boards is a full Arduino board programmable using the Arduino IDE.
Both Motor and Control boards are microcontroller boards based on the ATmega32u4 (datasheet). The Robot has many of its pins mapped to on-board sensors and actuators.
Programming the robot is similar to the process with the Arduino Leonardo. Both processors have built-in USB communication, eliminating the need for a secondary processor. This allows the Robot to appear to a connected computer as a virtual (CDC) serial / COM port.
As always with Arduino, every element of the platform – hardware, software and documentation – is freely available and open-source. This means you can learn exactly how it's made and use its design as the starting point for your own robots. The Arduino Robot is the result of the collective effort from an international team looking at how science can be made fun to learn. Arduino is now on wheels, come ride with us!

Control Board Summary

MicrocontrollerATmega32u4
Operating Voltage5V
Input Voltage5V through flat cable
Digital I/O Pins5
PWM Channels6
Analog Input Channels4 (of the Digital I/O pins)
Analog Input Channels (multiplexed)8
DC Current per I/O Pin40 mA
Flash Memory32 KB (ATmega32u4) of which 4 KB used by bootloader
SRAM2.5 KB (ATmega32u4)
EEPROM (internal)1 KB (ATmega32u4)
EEPROM (external)512 Kbit (I2C)
Clock Speed16 MHz
Keypad5 keys
Knobpotentiomenter attached to analog pin
Full color LCDover SPI communication
SD card readerfor FAT16 formatted cards
Speaker8 Ohm
Digital Compassprovides deviation from the geographical north in degrees
I2C soldering ports3
Prototyping areas4

Motor Board Summary

MicrocontrollerATmega32u4
Operating Voltage5V
Input Voltage9V to battery charger
AA battery slot4 alkaline or NiMh rechargeable batteries
Digital I/O Pins4
PWM Channels1
Analog Input Channles4 (same as the Digital I/O pins)
DC Current per I/O Pin40 mA
DC-DC convertergenerates 5V to power up the whole robot
Flash Memory32 KB (ATmega32u4) of which 4 KB used by bootloader
SRAM2.5 KB (ATmega32u4)
EEPROM1 KB (ATmega32u4)
Clock Speed16 MHz
Trimmerfor movement calibration
IR line following sensors5
I2C soldering ports1
Prototyping areas2

Schematic & Reference Design

EAGLE files for control and motor boards: arduino-robot-reference-design.zip

Power

The Arduino Robot can be powered via the USB connection or with 4 AA batteries. The power source is selected automatically.
The battery holder holds 4 rechargeable NiMh AA batteries.
NB : Do not use non-rechargeable batteries with the robot
For safety purposes, the motors are disabled when the robot is powered from the USB connection.
The robot has an on-board battery charger that requires 9V external power coming from an AC-to-DC adapter (wall-wart). The adapter can be connected by plugging a 2.1mm center-positive plug into the Motor Board's power jack. The charger will not operate if powered by USB.
The Control Board is powered by the power supply on the Motor Board.

Memory

The ATmega32u4 has 32 KB (with 4 KB used for the bootloader). It also has 2.5 KB of SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM library).
The Control Board has an extra 512 Kbit EEPROM that can be accessed via I2C.
There is an external SD card reader attached to the GTFT screen that can be accessed by the Control Board's processor for additional storage.

Input and Output

The Robot comes with a series of pre-soldered connectors. There are a number of additional spots for you to install additional parts if needed.
All the connectors are labelled on the boards and mapped to named ports through the Robot library allowing access to standard Arduino functions. Each pin can provide or receive a maximum of 40mA at 5V.
Some pins have specialized functions :
  • Control Board TK0 to TK7: these pins are multiplexed to a single analog pin on theControl Board's microprocessor. They can be used as analog inputs for sensors like distance sensors, analog ultrasound sensors, or mechanical switches to detect collisions.
  • Control Board TKD0 to TKD5: these are digital I/O pins directly connected to the processor, addressed using Robot.digitalRead() and Robot.digitalWrite) functions. Pins TKD0 to TKD3 can also be used as analog inputs with Robot.analogRead()
    Note: if you have one of the first generation robots, you will see that the TKD* pins are named TDK* on the Robot's silkscreen. TKD* is the proper name for them and is how we address them on the software.
  • Serial Communication: The boards communicate with each other using the processors' serial port. A 10-pin connector connects both boards carries the serial communication, as well as power and additional information like the battery's current charge.
  • Control Board SPI: SPI is used to control the GTFT and SD card. If you want to flash the processor using an external programmer, you need to disconnect the screen first.
  • Control Board LEDs: the Control Board has three on-board LEDs. One indicates the board is powered (PWR). The other two indicate communication over the USB port (LED1/RX and TX). LED1 is also accessible via software.
  • Both boards have I2C connectors available: 3 on the Control Board and 1 on the Motor Board.

Control Board Pin Mapping

ARDUINO LEONARDOARDUINO ROBOT CONTROLATMEGA 32U4FUNCTIONREGISTER
D0RXPD2RXRXD1/INT2
D1TXPD3TXTXD1/INT3
D2SDAPD1SDASDA/INT1
D3#SCLPD0PWM8/SCLOC0B/SCL/INT0
D4MUX_IN A6PD4
ADC8
D5#BUZZPC6???OC3A/#OC4A
D6#MUXA/TKD4 A7PD7FastPWM#OC4D/ADC10
D7RST_LCDPE6
INT6/AIN0
D8CARD_CS A8PB4
ADC11/PCINT4
D9#LCD_CS A9PB5PWM16OC1A/#OC4B/ADC12/PCINT5
D10#DC_LCD A10PB6PWM16OC1B/0c4B/ADC13/PCINT6
D11#MUXBPB7PWM8/160C0A/OC1C/#RTS/PCINT7
D12MUXC/TKD5 A11PD6
T1/#OC4D/ADC9
D13#MUXDPC7PWM10CLK0/OC4A
A0KEY D18PF7
ADC7
A1TKD0 D19PF6
ADC6
A2TKD1 D20PF5
ADC5
A3TKD2 D21PF4
ADC4
A4TKD3 D22PF1
ADC1
A5POT D23PF0
ADC0
MISOMISO D14PB3
MISO,PCINT3
SCKSCK D15PB1
SCK,PCINT1
MOSIMOSI D16PB2
MOSI,PCINT2
SSRX_LED D17PB0
RXLED,SS/PCINT0
TXLEDTX_LEDPD5

HWB
PE2
HWB

Motor Board Pin Mapping

ARDUINO LEONARDOARDUINO ROBOT CONTROLATMEGA 32U4FUNCTIONREGISTER
D0RXPD2RXRXD1/INT2
D1TXPD3TXTXD1/INT3
D2SDAPD1SDASDA/INT1
D3#SCLPD0PWM8/SCLOC0B/SCL/INT0
D4TK3 A6PD4
ADC8
D5#INA2PC6???OC3A/#OC4A
D6#INA1 A7PD7FastPWM#OC4D/ADC10
D7MUXAPE6
INT6/AIN0
D8MUXB A8PB4
ADC11/PCINT4
D9#INB2 A9PB5PWM16OC1A/#OC4B/ADC12/PCINT5
D10#INB1 A10PB6PWM16OC1B/0c4B/ADC13/PCINT6
D11#MUXCPB7PWM8/160C0A/OC1C/#RTS/PCINT7
D12TK4 A11PD6
T1/#OC4D/ADC9
D13#MUXIPC7PWM10CLK0/OC4A
A0TK1 D18PF7
ADC7
A1TK2 D19PF6
ADC6
A2MUX_IN D20PF5
ADC5
A3TRIM D21PF4
ADC4
A4SENSE_A D22PF1
ADC1
A5SENSE_B D23PF0
ADC0
MISOMISO D14PB3
MISO,PCINT3
SCKSCK D15PB1
SCK,PCINT1
MOSIMOSI D16PB2
MOSI,PCINT2
SSRX_LED D17PB0
RXLED,SS/PCINT0
TXLEDTX_LEDPD5

HWB
PE2
HWB

Communication

The Robot has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers. The ATmega32U4 provides UART TTL (5V) serial communication, which is available on digital the 10-pin board-to-board connector. The 32U4 also allows for serial (CDC) communication over USB and appears as a virtual com port to software on the computer. The chip also acts as a full speed USB 2.0 device, using standard USB COM drivers. On Windows, a .inf file is required. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the Robot board. The RX (LED1) and TX LEDs on the board will flash when data is being transmitted via the USB connection to the computer (but not for serial communication between boards).
Each one of the boards has a separate USB product identifier and will show up as different ports on you IDE. Make sure you choose the right one when programming.
The ATmega32U4 also supports I2C (TWI) and SPI communication. The Arduino software includes a Wire library to simplify use of the I2C bus; see the documentation for details. For SPI communication, use the SPI library.

Programming

The Robot can be programmed with the Arduino software (download). Select "Arduino Robot Control Board" or "Arduino Robot Motor Board" from the Tools > Board menu. For details, see the getting started page and tutorials.
The ATmega32U4 processors on the Arduino Robot come preburned with a bootloader that allows you to upload new code to it without the use of an external hardware programmer. It communicates using the AVR109 protocol.
You can bypass the bootloader and program the microcontroller through the ICSP (In-Circuit Serial Programming) header; see these instructions for details.

Automatic (Software) Reset and Bootloader Initiation

Rather than requiring a physical press of the reset button before an upload, the Robot is designed in a way that allows it to be reset by software running on a connected computer. The reset is triggered when the Robot's virtual (CDC) serial / COM port is opened at 1200 baud and then closed. When this happens, the processor will reset, breaking the USB connection to the computer (meaning that the virtual serial / COM port will disappear). After the processor resets, the bootloader starts, remaining active for about 8 seconds. The bootloader can also be initiated by double-pressing the reset button on the Robot. Note that when the board first powers up, it will jump straight to the user sketch, if present, rather than initiating the bootloader.
Because of the way the Robot handles reset it's best to let the Arduino software try to initiate the reset before uploading, especially if you are in the habit of pressing the reset button before uploading on other boards. If the software can't reset the board you can always start the bootloader by double-pressing the reset button on the board. A single press on the reset will restart the user sketch, a double press will initiate the bootloader.

USB Overcurrent Protection

Both of the Robot boards have a resettable polyfuse that protects your computer's USB ports from shorts and overcurrent. Although most computers provide their own internal protection, the fuse provides an extra layer of protection. If more than 500 mA is applied to the USB port, the fuse will automatically break the connection until the short or overload is removed.

Physical Characteristics

The Robot is 19cm in diameter. Including wheels, GTFT screen and other connectors it can be up to 10cm tall.
Some Importantant links below with reports.just view the lik below
Arduino interesting projects:   
Arduino 30 simple and good projects 
Atmega projects lists
Android Electronics projects lists
Rf based Projects with report
engineering study notes 
GSM GPS based projects with report
Bluetooth based projects with reports




if u like the post just say thank u in comment box.

Arduino project list

Some Importantant links below with reports.just view the link below. if u want any project report just search any project on our search box
Arduino interesting projects:   
Arduino 30 simple and good projects 
Atmega projects lists
Android Electronics projects lists
Rf based Projects with report
engineering study notes 
GSM GPS based projects with report
Bluetooth based projects with reports



  1. RGB LED Rainbow Fader using an Arduino>>>>Report here
  2. Arduino Digital 7-Segment Thermometer>>>>Report here
  3. Arduino 7-Segment Thermometer>>>>>Report here
  4. Audio Input using an Arduino Board>>>>Report here
  5. A credit card sized Ethernet Arduino compatable controller board
  6. How To Make A Board Game Using Arduino>>>Report here
  7. Arduino Board Step Sequencer>>>Report here
  8. Arduino Wireless Animatronic Hand
  9. Build Your Own BARBOT using Arduino>>>Report here
  10. Appliance Remote Control using Arduino>>.Report here
  11. Cheap lcd screen for the Arduino>>.Report here
  12. Arduino MIDI Foot Pedal Keyboard
  13. Android Accessories Made Easy With Arduino
  14. 2-Player Pong Game with Arduino Uno>>>>>Report here
  • Low Cost LED Grid
  • A Voice Shield for Arduino Board
  • Transforming Chandelier
  • The 4x4x4 LED cube using an Arduino...>>>>Report here
  • High Speed Outdoor Photography
  • Arduino Laser Engraver
  • Simple 2-way motor control for the arduino
  •  All the report based on the below projects will soon be uploaded be connected.


  1. Audio VU Meter using Arduino...>>report here
  2. LED Dot Matrix Display using an Arduino...>>report here
  3. Mint Tin Hero using Arduino
  4. Easy Bluetooth Enabled Door Lock With Arduino + Android
  5. Arduino Liquid Crystal Displays
  6. Second degree equation solver with Arduino
  7. Interactive Logo using an Arduino
  8. Arduino controlled Bluetooth-bot
  9. The Arduino OctoSynth
  10. Arduino Automatic Watering System For Plants Sprinkler
  11. Jeopardy Ring-in Buttons with Built-in Rules using Arduino
  12. Arduino Servo Basic Code>>>report here
  13. PCB on a Box using Arduino Board
  14. 4x4x4 interactive LED-cube with Arduino
  15. Introduction to Packet Radio and Arduino Controlled LED Strips
  16. Happy Androids with Arduino Video instructions
  17. Controlling Cubase with Arduino based MIDI
  18. Serial Call and Response with ASCII-encoded output using Arduino
  19. Measuring Battery Capacity With an Arduino
  20. Perfboard Hackduino Arduino-compatible circuit
  21. Use your android phone sensors on the arduino
  1. Arduino FM radio receiver shield>>>REport here
  2. Arduino MIDI Volume Pedal
  3. How To Interface a CDV 700 Geiger Counter to a PC Using an Arduino Video instrucitons
  4. Arduino Solar Tracker
  5. Control Arduino Wirelessly with MATLAB
  6. Cheap Arduino Controled Yogurt Maker
  7. Pressure Activated Light-Up Umbrella using an Arduino
  8. Arduino Esplora Temperature Sensor
  9. LCD Shifter for Arduino
  10. Analog Input using Arduino
  11. Interactive Arduino Powered Coffee Table
  12. Sonic Switch: Use a Sonic Screwdriver to turn on your computer!
  13. Paperduino 2.0 with Circuit Scribe – Paper Arduino
  14. Arduino String Appending Operators Code
  15. Robot arm from a desk lamp (IKEA Tertial hack)
  16. Control an iPod with the Arduino
  17. Troubleshoot your car battery with ATtiny
  18. Arduino Bluetooth Serial Connections
  19. Chicken Light Timer using an Arduino
  20. Remake the Mosquito Killer using Arduino
  21. Arduino makes 2D Level
  22. Model Airplane Autopilot using Arduino
  23. Mechanical Led Matrix Display
  24. Domotic arduino
  25. RGB / RFID Lamp
  26. Rainbow Word Clock using Arduino
  27. Sous-vide Arduino Shield
  28. 4X4X4 LED Cube w/ Arduino Un
  29. Salvaging Liquid Crystal Displays (LCDs)
  30. Learn how to use 7-Segment LED Display using Arduino
  31. Python Meets the Arduino
  32. Hookup an LCD to an Arduino in 6 seconds with 3, not 6 pins
  33. TankWars: A Physical Video Game using Arduino
  34. SPI Interfaces using Arduino
  35. Build Your Own Arduino
  36. The morse code generator by a PS\2 keyboard using Arduino
  37. Arduino Scouting Robot
  38. Use foot switch to open Linux terminal using an Arduino
  39. Quasi real-time oscilloscope using Arduino
  40. Push-button using an Arduino
  41. An FM Stereo Broadcaster PLL using Arduino
  42. Displaying Twitter feed without a PC! using Arduino
  43. Alarm Clock with Tetris to Prove You’re Awake using Arduino
  44. Autonomous Control of RC Car Using Arduino
  45. Building a semi Smart, DIY boat with Arduino and some other sensors
  46. Arduino RFID Lock
  47. Potentiometer or variable resistor control LED Code
  48. LED Calculator with Rotary Quadrature Encoder for Target System Voltage Selection using Arduino
  49. UltraSonic Arduino Video instructions How To – Parking your car with an Arduino
  50. Breathalyzer using an Arduino
  51. The iButton garage-door opener using an Arduino
  52. MP3 Interface for Arduino
  53. Read ASCII String using Arduino
  54. How To Control A Stepper Motor With An Arduino Uno
  55. Capacitive Touch Arduino Lamp
  56. Plantduino Greenhouse using an Arduino
Arduino Esplora Blink Code
Tissue Box Guitar – Light Strings using Arduino
Arduino traffic lights
Tweetosapien: Hack a Robosapien With Arduino to React to Tweets
Arduino Wireless Programming with XBee Series 1 or 2
How to build your very own Time Fountain using Arduino
Piano Stairs with Arduino and Raspberry Pi
Theremin with Zapper,laser,Arduino
The Arduino Internet Gizmo
Arduino Voltmeter Code
Wi-Fi Body Scale with Arduino Board
How to control arduino board using an android phone and a bluetooth module
Burning the Bootloader on ATMega328 using Arduino UNO as ISP
Auto reset stuff with Arduino
Arduino LCD Twitter display
Android & Arduino Controlled Projector Screen
Analog Clock And Temperature sensor On An Oscilloscope using Arduino
Arduino GSM shield
Cheap and Easy MP3 Shield for Arduino
Arduino 2-axis servo solar tracker
Web Client Repeating using Arduino
Using the Parallax RFID Reader with an Arduino
More Humane Moisture sensor
DIY Arduino Nebulophone Synth
A arduino library for the MAX7221 and MAX7219
Plugduino – Arduino based 120 Volt outlet controller
Programming the Arduino I/O pins
Arduino Backlit LCD shield
Low cost Ethernet shield with ENC28J60 using Arduino
Make your own Custom Electronic Widgets, like my Arduino LED Day/Night Widget
Arduino MicroControllers, Card Readers, 3D Printing, GS4, Flip Camera!
Rainbow Mega Pong Clock using Arduino
Arduino Esplora Pong
Android talks to Arduino board
Debounce an input using Arduino
Using FM RC Controllers using an Arduino
Arduino EMF Detector
UnDecima Audio Output from Arduino
House Temperature Monitor using Arduino
Colorful Countdown Clock for tight timeline management using Arduino
How to build an Arduino WiFi 4×4 with Android Controller
LED Cylinder using Arduino
Building an Breathalyzer with MQ-3 and Arduino
Arduino Sound Alarm
Arduino The 5$ Karduinoss pad
Tree Climbing Robot using Arduino
Fart Operated Random Channel TV Remote using an Arduino
Arduino Clock using Standard Clock Display
Arduino Hexapod Robot
Analog Read Voltage using Arduino
How to make a servo leg using Arduino
Arduino Row-column Scanning to control an 8×8 LED Matrix Code
LED Super Mario Piranha Plant using an Arduino
Multitouch Music Controller
Speech Synthesizer using Arduino
How to build a whole home energy monitor using Arduino
Walleye using Arduino
Geiger Counter with Touch Interface!
Make A Digital Clock From Scratch using arduino
Time Lapse Digital Camera using Arduino
Sensing Squeeze using Arduino
Introduction: T.A.B.U. A Robot using Arduino
Arduino Seismic Activity Monitor – Ethernet Shield
Arduino Waveform Generator Shield
Arduino desktop application on java in LAN
Arduino lets you play Atari 2600 and ZX Spectrum using a NES controller
Arduino Analog Inputs
Arduino Electromagnetic Field Detector
Radio link between two Arduino boards
Build Your Own Arduino Web server
RFID pet feeder using Arduino
Simple keyboard using the tone() function using Arduino
Android-Controlled Pneumatic Cannon Powered By Arduino
Arduino-l3dgecomm – Integrating L3DGEWorld and Arduino
Arduino powered 7seg led display with Port Manipulation
Arduino Pedometer
How to: Use Arduino to Generate Glitchy Audio VGA Visuals
Arduino Photocell Theremin Synth (glitchamin)
Pi…In A Single Digit using an Arduino
Augmenting Plant Behavior Through Robotics using Arduino
Wireless nunchuk controlled animatronic doll using Arduino
USB Freeform using an Arduino
Visual Network Threat Level Indicator v2 using Arduino
Arduino Double Dice Jewelry Box w/ Secret Switch
Candy Tossin Coffin using an Arduino
How To Smell Pollutants using an Arduino
Audio Input to Arduino
The Motivational Moody Workout T-Shirt using an Arduino
iAndroidRemote – Control Android mobile using an Apple Remote
Autonomous Autonavigation Robot using Arduino
Interface a rotary phone dial to an Arduino
Arduino temperature controlled PC Fan
STEAMPUNK STEAM GAUGE, POWERED BY ARDUINO
3D AIR mouse | Arduino + Processing
Pee to Check-In to Foursquare – Mark Your Territory using Arduino
Midi Light Show using Arduino
Bubble Alarm Clock Makes Waking Up Fun using Arduino
Analog In, Out Serial using Arduino
Arduino: Making a set of traffic lights
Connecting Arduino LCD Display Code
DIY 3D Laser Scanner Using Arduino
Drive by wire go kart using Arduino
Wii Nunchuk Controlled Model Train using Arduino
Custom Large Font For 16×2 LCDs using Arduino
Hookup an LCD to an Arduino
Visual Computer Stress Meter using an Arduino
Arduino SD Cards and Datalogging
Pan & Tilt Servo bracket controlled by Arduino
Bicycle North Indicator using Arduino
Bootload an Arduino with a ZIF Socket
Traffic Lights Beginner Arduino Project
How to control 8 leds using Arduino UNO
Arduino (optic fibre)
Arduino Powered Four Letter Word Generator
Sign Language Translator using Arduino
Gas Cap using an Arduino board
Pet Curfew: An Arduino Controlled Pet Door
Arduino String Comparison Operators Code
Tweeting Cat Door using an Arduino
The KITT-duino, DIY Larson Scanner with an Arduino
CustomKeys using an Arduino
Kaosduino: Create your own kaosillitaor using Arduino
Arduino SOS signal with 8ohms speaker and LED blinking
Visual Navigator Making it MOBILE using Arduino
Build a big crane game using Arduino
Standalone Arduino chip on breadboard
The Tetris Pumpkin using an Arduino
Arduino theremin like musical instrument
How to access 5 buttons through 1 Arduino input
5×5 LED Cube using Arduino Uno
Rainbowduino Sign using Arduino
ARDUINO Laser 3D Tracking or Range Finder
Serial Servo Controller with Arduino
Ethernet Switching – with Arduino
Arduino Esplora Kart
Simple RFID access system using Arduino
Arduino True Random Number Generator
Network Time Protocol (NTP) Client using Arduino
Homemade Infrared Rangefinder (Similar to Sharp GP2D120) using Arduino
NESBot: Arduino Powered Robot beating Super Mario Bros for the NES
Ultrasonic Range Finder with an ATtiny85 using an Arduino
Arduino Audio DAC Options
ST7565 LCDs: Graphical LCDs
Barcode Reading using Roborealm Output on Arduino LCD
Arduino-based line follower robot using Pololu QTR-8RC line sensor
Arduino I2C and Processing
Proximity Sensing Origami Flower using Arduino
How to Build an Arduino Voice Controlled TV Remote
Arduino and 7 segment LED display decoder
Arduino Powered Mushroom Environment Control
How To Make The Easiest Breadboard Arduino-Compatible Sanguino-Equivalent
Arduino controls cheap RC car transmitter
iTime clock in a Mac Mini box using Arduino
Arduino Knight Rider Code
DIY Arduino FM Radio (Part 2)
Lightning Shutter Trigger for a Camera using Arduino
Arduino Chicken Coop Controller
Nocturnal Emissions: My Arduino Powered Internet Enabled Dream Generator
Switch Statement used with serial input using Arduino
Arduino Joystick Breadboard with LCD Output
Reaction Timer using an Arduino
How to Control a Ton of RGB LEDs with Arduino & TLC5940
Arduino LCD Metronome
Turing Alarm for Arduino
Control your motors with L293D and Arduino
Arduino home energy monitor shield
ArduinoISP Bootloader/Programmer Combination Shield
Arduino Robotic Arm
AIR Project using an Arduino
2 player Pong using Arduino
Arduino 7 segment Displays Digital Clock With Charlieplexing LEDs
GoFly – paragliding/hangliding/gliding altimeter-variometer from Your car navigation using Arduino
Play Music using Arduino Esplora
  • Wii Nunchuck Arduino Spirit Level
  • Arduino + Temperature + Humidity
  • Arduino Wall Lamp
  • Digital Read Serial using Arduino
  • How to use a Piezo element to detect vibration using Arduino
  • Combo Blocks using an Arduino
  • Arduino-controlled, Aluminum Archangel Costume Wings
  • Nokia LCD & Sensors using an Arduino
  • Arduino Street Traffic Light – Breadboard Edition
  • Arduino Serial Communication Code
  • The Talking Breathalyzer using an Arduino
  • Using an Arduino to Control an Infrared Helicopter
  • Making Robots Using Android and Arduino
  • A watering controller that can be home networked using an Arduino
  • Easily control your iPod using Arduino
  • Remote controlled webcam using Arduino
  • Box Scurity Package using Arduino
  • Arduino Personal Soundtrack Hoodie
  • Connecting a 12V relay to Arduino
  • PS/2 Keyboard Or Mouse using Arduino
  • Larson Scanner with Relay Module using Arduino

Some Importantant links below with reports.just view the link below. if u want any project report just search any project on our search box
Arduino interesting projects:   
Arduino 30 simple and good projects 
Atmega projects lists
Android Electronics projects lists
Rf based Projects with report
engineering study notes 
GSM GPS based projects with report
Bluetooth based projects with reports

if u like the post just say thank u in comment box.

LPG GAS DETECTOR AND LEAK PREVENTION BASED MICROCONTROLLER

Some Important links below with reports. if u want any project report just search with the name  on our search box.
Arduino interesting projects:   
Arduino 30 simple and good projects 
Atmega projects lists
Android Electronics projects lists
Rf based Projects with report
engineering study notes 
GSM GPS based projects with report
Bluetooth based projects with reports
 ABSTRACT
The manufacture of detectors and prevention LPG gas based microcontroller aims to prevent fires due to leakage of liquefied petroleum gas that cause harm. This tool can given someone warning if the LPG gas leak. The used method for making leak detection equipment and handling of LPG is a microcontroller based- design method that consists of several stages, namely, (1) Identification of Needs, (2) Needs Analysis, (3) Design System, (4) manufacturing, (5) Testing Tools, (6) discussion. This tool comprises several parts consisted of a power supply circuit which generates 5 V, a series of sensor MQ-6 as LPG gas detector, a series of minimum system ATmega16 AVR microcontroller, the circuit function is to process the input from the sensor MQ-6 and displays the output value, the data viewer in the form of a series of 2x16 LCD, a part of this function displays an abnormal condition of the range 0-10% and 11-100% range of the dangers of, relay and buzzer driver circuit and an exhaust fan as an indicator of an LPG gas leak. Detector and control microcontroller-based LPG gas leak has been successfully made to the draft. Based on testing tools,


 PROJECT-1
 LPG GAS DETECTOR AND LEAK PREVENTION BASED MICROCONTROLLER

PROJECT-2
MICROCONTROLLER BASED LPG GAS DETECTOR USINGGSM MODULE

Some Important links below with reports. if u want any project report just search with the name  on our search box.
Arduino interesting projects:   
Arduino 30 simple and good projects 
Atmega projects lists
Android Electronics projects lists
Rf based Projects with report
engineering study notes 
GSM GPS based projects with report
Bluetooth based projects with reports

if u like the post just say thank u in comment box.

[ ARDUINO ] LEARNING PDF

 The following is link for the aurduino project initialization and how to continue in the hard ware as well as coding .Actually the coding and the hardware interface of the arduino is a very easy [process so you can use it for the good project..
dowload it

[ Arduino ] Tv weather channel

For other  interesting ARDUINO PROJECTS here

Darren Yates shows you how to hook up an Arduino Uno board to your TV using just three resistors to create your own personal TV weather channel.


Here’s what you’ll need to build our TV weather channel.
  • Arduino Uno R3 board
  • 1kohm 0.5W metal film resistor
  • 470ohm 0.5W metal film resistor
  • 100ohm 0.5W metal film resistor
  • 4.7kohm 0.5W metal film resistor
  • DHT11 temperature/humidity sensor
  • 1 x RCA socket (available from Jaycar or Altronics)
  • 2 x alligator test leads (only if you don’t wish to solder the RCA socket) 

[ Arduino ] how to tweet with arduino

 

For other  interesting ARDUINO PROJECTS here

An Arduino sending tweets? Absolutely! Darren Yates shows you how to get your Arduino its own Twitter account and tweeting automatically.


APC's Arduino Twitter Weather station
Our Twitter weather station needs no soldering and uses just three parts — build it for under $30.
From many people I’ve talked to, Twitter is one of those things you either love or hate. Even so, its hundreds of millions of devotees make it as key to the internet as Facebook or YouTube. If selfies from C-grade celebrities tweeting what they’re eating or wearing isn’t doing it for you, how about putting it to better use — with your Arduino? Yep, you can connect your Arduino directly to Twitter and have your microcontroller automatically send tweets that you can monitor on any Twitter client. All of a sudden, Arduino and Twitter becomes a combination full of possibilities.

Twitter weather station

[ Arduino ] Digital audio player


For other  interesting ARDUINO PROJECTS here

So far in this series, we’ve had a diverse look at how Arduino can interact with a range of real-world devices from servo motors to ultrasonic range finders, TVs to humidity sensors. Now we'll see if we could get the Arduino to make a few sounds. We’ll actually do a bit better than that — we’ll look at the importance of pulse width modulation (PWM) to microcontrollers by building our own digital audio player called Auduino.

The two versions of our Auduino audio player. The Ethernet shield version (bottom) gives better results with more flash cards.

What we’re building

[ REPORT ] [ PROJECT] [ARDUINO] Build a Retro Gamebox


For other  interesting ARDUINO PROJECTS here



APC Arduino-based Retro Gamebox
Our Retro Gamebox is built into a see-through container.
The games market may well dwarf the music and movie industries combined in global revenue, and new-release games offer lighting effects and texture detail that make you forget you’re in a game and not a movie. But there’s always something that tugs us back to retro gaming — the blocky graphics, corny 8-bit sound and those golden memories.
Our Arduino microcontroller doesn’t come with a video output, although we showed you in the TV Weather Channel Station Project how you could hook it up to the composite video input of your TV and display your own TV weather channel.
So for this project, we’re combining all this knowledge and putting together our very own retro arcade games console we’re calling the Retro Gamebox.


[ Report ] ROBOT ARDUINO

Some Importantant links below with reports.just view the lik below
Arduino interesting projects:   
Arduino 30 simple and good projects 
Atmega projects lists
Android Electronics projects lists
Rf based Projects with report
engineering study notes 
GSM GPS based projects with report
Bluetooth based projects with reports

For other  interesting ARDUINO PROJECTS here

Arduino Robot

Robot Top Robot Bottom

Overview

The Arduino Robot is the first official Arduino on wheels. The robot has two processors, one on each of its two boards. The Motor Board controls the motors, and the Control Board reads sensors and decides how to operate. Each of the boards is a full Arduino board programmable using the Arduino IDE.
Both Motor and Control boards are microcontroller boards based on the ATmega32u4 (datasheet). The Robot has many of its pins mapped to on-board sensors and actuators.
Programming the robot is similar to the process with the Arduino Leonardo. Both processors have built-in USB communication, eliminating the need for a secondary processor. This allows the Robot to appear to a connected computer as a virtual (CDC) serial / COM port.
As always with Arduino, every element of the platform – hardware, software and documentation – is freely available and open-source. This means you can learn exactly how it's made and use its design as the starting point for your own robots. The Arduino Robot is the result of the collective effort from an international team looking at how science can be made fun to learn. Arduino is now on wheels, come ride with us!

Control Board Summary

MicrocontrollerATmega32u4
Operating Voltage5V
Input Voltage5V through flat cable
Digital I/O Pins5
PWM Channels6
Analog Input Channels4 (of the Digital I/O pins)
Analog Input Channels (multiplexed)8
DC Current per I/O Pin40 mA
Flash Memory32 KB (ATmega32u4) of which 4 KB used by bootloader
SRAM2.5 KB (ATmega32u4)
EEPROM (internal)1 KB (ATmega32u4)
EEPROM (external)512 Kbit (I2C)
Clock Speed16 MHz
Keypad5 keys
Knobpotentiomenter attached to analog pin
Full color LCDover SPI communication
SD card readerfor FAT16 formatted cards
Speaker8 Ohm
Digital Compassprovides deviation from the geographical north in degrees
I2C soldering ports3
Prototyping areas4

Motor Board Summary

MicrocontrollerATmega32u4
Operating Voltage5V
Input Voltage9V to battery charger
AA battery slot4 alkaline or NiMh rechargeable batteries
Digital I/O Pins4
PWM Channels1
Analog Input Channles4 (same as the Digital I/O pins)
DC Current per I/O Pin40 mA
DC-DC convertergenerates 5V to power up the whole robot
Flash Memory32 KB (ATmega32u4) of which 4 KB used by bootloader
SRAM2.5 KB (ATmega32u4)
EEPROM1 KB (ATmega32u4)
Clock Speed16 MHz
Trimmerfor movement calibration
IR line following sensors5
I2C soldering ports1
Prototyping areas2

Schematic & Reference Design

EAGLE files for control and motor boards: arduino-robot-reference-design.zip

Power

The Arduino Robot can be powered via the USB connection or with 4 AA batteries. The power source is selected automatically.
The battery holder holds 4 rechargeable NiMh AA batteries.
NB : Do not use non-rechargeable batteries with the robot
For safety purposes, the motors are disabled when the robot is powered from the USB connection.
The robot has an on-board battery charger that requires 9V external power coming from an AC-to-DC adapter (wall-wart). The adapter can be connected by plugging a 2.1mm center-positive plug into the Motor Board's power jack. The charger will not operate if powered by USB.
The Control Board is powered by the power supply on the Motor Board.

Memory

The ATmega32u4 has 32 KB (with 4 KB used for the bootloader). It also has 2.5 KB of SRAM and 1 KB of EEPROM (which can be read and written with the EEPROM library).
The Control Board has an extra 512 Kbit EEPROM that can be accessed via I2C.
There is an external SD card reader attached to the GTFT screen that can be accessed by the Control Board's processor for additional storage.

Input and Output

The Robot comes with a series of pre-soldered connectors. There are a number of additional spots for you to install additional parts if needed.
All the connectors are labelled on the boards and mapped to named ports through the Robot library allowing access to standard Arduino functions. Each pin can provide or receive a maximum of 40mA at 5V.
Some pins have specialized functions :
  • Control Board TK0 to TK7: these pins are multiplexed to a single analog pin on theControl Board's microprocessor. They can be used as analog inputs for sensors like distance sensors, analog ultrasound sensors, or mechanical switches to detect collisions.
  • Control Board TKD0 to TKD5: these are digital I/O pins directly connected to the processor, addressed using Robot.digitalRead() and Robot.digitalWrite) functions. Pins TKD0 to TKD3 can also be used as analog inputs with Robot.analogRead()
    Note: if you have one of the first generation robots, you will see that the TKD* pins are named TDK* on the Robot's silkscreen. TKD* is the proper name for them and is how we address them on the software.
  • Serial Communication: The boards communicate with each other using the processors' serial port. A 10-pin connector connects both boards carries the serial communication, as well as power and additional information like the battery's current charge.
  • Control Board SPI: SPI is used to control the GTFT and SD card. If you want to flash the processor using an external programmer, you need to disconnect the screen first.
  • Control Board LEDs: the Control Board has three on-board LEDs. One indicates the board is powered (PWR). The other two indicate communication over the USB port (LED1/RX and TX). LED1 is also accessible via software.
  • Both boards have I2C connectors available: 3 on the Control Board and 1 on the Motor Board.

Control Board Pin Mapping

ARDUINO LEONARDOARDUINO ROBOT CONTROLATMEGA 32U4FUNCTIONREGISTER
D0RXPD2RXRXD1/INT2
D1TXPD3TXTXD1/INT3
D2SDAPD1SDASDA/INT1
D3#SCLPD0PWM8/SCLOC0B/SCL/INT0
D4MUX_IN A6PD4ADC8
D5#BUZZPC6???OC3A/#OC4A
D6#MUXA/TKD4 A7PD7FastPWM#OC4D/ADC10
D7RST_LCDPE6INT6/AIN0
D8CARD_CS A8PB4ADC11/PCINT4
D9#LCD_CS A9PB5PWM16OC1A/#OC4B/ADC12/PCINT5
D10#DC_LCD A10PB6PWM16OC1B/0c4B/ADC13/PCINT6
D11#MUXBPB7PWM8/160C0A/OC1C/#RTS/PCINT7
D12MUXC/TKD5 A11PD6T1/#OC4D/ADC9
D13#MUXDPC7PWM10CLK0/OC4A
A0KEY D18PF7ADC7
A1TKD0 D19PF6ADC6
A2TKD1 D20PF5ADC5
A3TKD2 D21PF4ADC4
A4TKD3 D22PF1ADC1
A5POT D23PF0ADC0
MISOMISO D14PB3MISO,PCINT3
SCKSCK D15PB1SCK,PCINT1
MOSIMOSI D16PB2MOSI,PCINT2
SSRX_LED D17PB0RXLED,SS/PCINT0
TXLEDTX_LEDPD5
HWBPE2HWB

Motor Board Pin Mapping

ARDUINO LEONARDOARDUINO ROBOT CONTROLATMEGA 32U4FUNCTIONREGISTER
D0RXPD2RXRXD1/INT2
D1TXPD3TXTXD1/INT3
D2SDAPD1SDASDA/INT1
D3#SCLPD0PWM8/SCLOC0B/SCL/INT0
D4TK3 A6PD4ADC8
D5#INA2PC6???OC3A/#OC4A
D6#INA1 A7PD7FastPWM#OC4D/ADC10
D7MUXAPE6INT6/AIN0
D8MUXB A8PB4ADC11/PCINT4
D9#INB2 A9PB5PWM16OC1A/#OC4B/ADC12/PCINT5
D10#INB1 A10PB6PWM16OC1B/0c4B/ADC13/PCINT6
D11#MUXCPB7PWM8/160C0A/OC1C/#RTS/PCINT7
D12TK4 A11PD6T1/#OC4D/ADC9
D13#MUXIPC7PWM10CLK0/OC4A
A0TK1 D18PF7ADC7
A1TK2 D19PF6ADC6
A2MUX_IN D20PF5ADC5
A3TRIM D21PF4ADC4
A4SENSE_A D22PF1ADC1
A5SENSE_B D23PF0ADC0
MISOMISO D14PB3MISO,PCINT3
SCKSCK D15PB1SCK,PCINT1
MOSIMOSI D16PB2MOSI,PCINT2
SSRX_LED D17PB0RXLED,SS/PCINT0
TXLEDTX_LEDPD5
HWBPE2HWB

Communication

The Robot has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers. The ATmega32U4 provides UART TTL (5V) serial communication, which is available on digital the 10-pin board-to-board connector. The 32U4 also allows for serial (CDC) communication over USB and appears as a virtual com port to software on the computer. The chip also acts as a full speed USB 2.0 device, using standard USB COM drivers. On Windows, a .inf file is required. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the Robot board. The RX (LED1) and TX LEDs on the board will flash when data is being transmitted via the USB connection to the computer (but not for serial communication between boards).
Each one of the boards has a separate USB product identifier and will show up as different ports on you IDE. Make sure you choose the right one when programming.
The ATmega32U4 also supports I2C (TWI) and SPI communication. The Arduino software includes a Wire library to simplify use of the I2C bus; see the documentation for details. For SPI communication, use the SPI library.

Programming

The Robot can be programmed with the Arduino software (download). Select "Arduino Robot Control Board" or "Arduino Robot Motor Board" from the Tools > Board menu. For details, see the getting started page and tutorials.
The ATmega32U4 processors on the Arduino Robot come preburned with a bootloader that allows you to upload new code to it without the use of an external hardware programmer. It communicates using the AVR109 protocol.
You can bypass the bootloader and program the microcontroller through the ICSP (In-Circuit Serial Programming) header; see these instructions for details.

Automatic (Software) Reset and Bootloader Initiation

Rather than requiring a physical press of the reset button before an upload, the Robot is designed in a way that allows it to be reset by software running on a connected computer. The reset is triggered when the Robot's virtual (CDC) serial / COM port is opened at 1200 baud and then closed. When this happens, the processor will reset, breaking the USB connection to the computer (meaning that the virtual serial / COM port will disappear). After the processor resets, the bootloader starts, remaining active for about 8 seconds. The bootloader can also be initiated by double-pressing the reset button on the Robot. Note that when the board first powers up, it will jump straight to the user sketch, if present, rather than initiating the bootloader.
Because of the way the Robot handles reset it's best to let the Arduino software try to initiate the reset before uploading, especially if you are in the habit of pressing the reset button before uploading on other boards. If the software can't reset the board you can always start the bootloader by double-pressing the reset button on the board. A single press on the reset will restart the user sketch, a double press will initiate the bootloader.

USB Overcurrent Protection

Both of the Robot boards have a resettable polyfuse that protects your computer's USB ports from shorts and overcurrent. Although most computers provide their own internal protection, the fuse provides an extra layer of protection. If more than 500 mA is applied to the USB port, the fuse will automatically break the connection until the short or overload is removed.

Physical Characteristics

The Robot is 19cm in diameter. Including wheels, GTFT screen and other connectors it can be up to 10cm tall.
Some Importantant links below with reports.just view the lik below
Arduino interesting projects:   
Arduino 30 simple and good projects 
Atmega projects lists
Android Electronics projects lists
Rf based Projects with report
engineering study notes 
GSM GPS based projects with report
Bluetooth based projects with reports




if u like the post just say thank u in comment box.