Fire Bird V ATMEGA2560 Hardware Manual 2010-03-26
Fire Bird V ATMEGA2560 Hardware Manual 2010-03-26
Fire Bird V ATMEGA2560 Hardware Manual 2010-03-26
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 1
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 2
FIRE BIRD V
HARDWARE MANUAL
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 3
Version 1.09
March 26, 2010
Documentation author
Sachitanand Malewar, NEX Robotics Pvt. Ltd.
Anant Malewar, NEX Robotics Pvt. Ltd.
Credits (Alphabetically)
Aditya Sharma, NEX Robotics
Amey Apte, NEX Robotics
Anant Malewar, EE, M.Tech, IIT Bombay
Ashish Gudhe, CSE, M.Tech, IIT Bombay
Behlul Sutarwala, NEX Robotics
Gurulingesh R. CSE, M.Tech, IIT Bombay
Inderpreet Arora, EE, M.Tech, IIT Bombay
Prof. Kavi Arya, CSE, IIT Bombay
Prof. Krithi Ramamritham, CSE, IIT Bombay
Nandan Salunke, RA, CSE, IIT Bombay
Pratim Patil, NEX Robotics
Preeti Malik, RA, CSE, IIT Bombay
Prakhar Goyal, CSE, M.Tech, IIT Bombay
Raviraj Bhatane, RA, CSE, IIT Bombay
Rohit Chauhan, NEX Robotics
Rajanikant Sawant, NEX Robotics
Saurabh Bengali, RA, CSE, IIT Bombay
Vaibhav Daghe, RA, CSE, IIT Bombay
Vibhooti Verma, CSE, M.Tech, IIT Bombay
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 4
Notice
The contents of this manual are subject to change without notice. All efforts have been made to
ensure the accuracy of contents in this manual. However, should any errors be detected, NEX
Robotics welcomes your corrections. You can send us your queries / suggestions at
[email protected]
Content of this manual is released under the Creative Commence cc by-nc-sa license. For legal
information refer to: http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode
Robots electronics is static sensitive. Use robot in static free environment.
Read the hardware and software manual completely before start using this robot
Recycling:
Almost all of the robot parts are recyclable. Please send the robot parts to the recycling plant
after its operational life. By recycling we can contribute to cleaner and healthier environment for
the future generations.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 5
Index
1. Introduction
6
2. Fire Bird V ATMEGA2560
7
3. Using Fire Bird V Robot
10
4. Programming the Fire Bird V ATMEGA2560 Robot
30
5. Pin Functionality
62
6. PC Based Control Using Serial Communication
67
7. Robot Control using GUI for Fire Bird V ATMEGA2560
83
8. Hardware Description
88
9. Assembling the Robot and its Accessories
127
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 6
1 Introduction
Thanks for choosing the Fire Bird V mobile robot platform. Fire Bird V will give you good
exposure to the world of robotics and embedded systems. Thanks to its innovative architecture
and adoption of the Open Source Philosophy in its software and hardware design, you will be
able to create and contribute to complex applications that run on this platform, helping you
acquire expertise as you spend more time with them.
Safety precautions:
Robots electronics is static sensitive. Use robot in static free environment.
Read the assembling and operating instructions before working with the robot.
If robots battery low buzzer starts beeping immediately charge the batteries.
To prevent fire hazard, do not expose the equipment to rain or moisture.
Refrain from dismantling the unit or any of its accessories once robot is assembled.
Charge the NiMh battery only with the charger provided with the robot.
Never allow NiMh battery battery to deep discharge.
Mount all the components with correct polarity.
Keep wheels away from long hair or fur.
Keep the robot away from the wet areas. Contact with water will damage the robot.
To avoid risks of fall, keep your robot in a stable position.
Do not attach any connectors while robot is powered ON.
Never leave the robot powered ON when it is not in use.
Disconnect the battery charger after charging the robot.
Inappropriate Operation:
Inappropriate operation can damage your robot. Inappropriate operation includes, but is not
limited to:
Dropping the robot, running it off an edge, or otherwise operating it in an irresponsible
manner.
Interfacing new hardware without considering compatibility
Overloading the robot above its payload capacity.
Exposing the robot to wet environments.
Continuing to run the robot after hair, yarn, string, or any other item has become
entangled in the robots axles or wheels.
All other forms of inappropriate operation.
Using robot in areas prone to static electricity.
Read carefully paragraphs marked with caution symbol.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 7
2. Fire Bird V ATMEGA2560
The Fire Bird V robot is the 5
th
in the Fire Bird series of robots. First two versions of the robots
were designed for the Embedded Real-Time Systems Lab of Department of Computer Science
and Engineering, IIT Bombay. Theses platforms were made commercially available form the
version 3 onwards. All the Fire Bird V series robots share the same main board and other
accessories. Different family of microcontrollers can be added by simply changing top
microcontroller adaptor board. At present Fire Bird V supports ATMEGA2560 (AVR) and
P89V51RD2 (8051) microcontroller adaptor boards. This feature makes Fire Bird V robots very
versatile. User can also add his own custom designed microcontroller adaptor board
Figure 2.1: Fire Bird V Robots
Figure 2.2: ATMEGA2560 (AVR) and P89V51RD2 (8051) microcontroller adaptor board
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 8
Figure 2.3 Fire Bird V ATMEGA2560 robot
2.1 Fire Bird V Block Diagram:
Figure 2.4: Fire Bird V ATMEGA2560 robot block diagram
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 9
2.2 Fire Bird V ATMEGA2560 technical specification
Microcontroller:
Atmel ATMEGA2560 as Master microcontroller (AVR architecture based Microcontroller)
Atmel ATMEGA8 as Slave microcontroller (AVR architecture based Microcontroller)
Sensors:
Three white line sensors (extendable to 7)
Five Sharp GP2D12 IR range sensor (One in default configuration)
Eight analog IR proximity sensors
Eight analog directional light intensity sensors
Two position encoders (extendable to four)
Battery voltage sensing
Current Sensing (Optional)
Indicators:
2 x 16 Characters LCD
Indicator LEDs
Buzzer
Control:
Autonomous Control
PC as Master and Robot as Slave in wired or wireless mode
Communication:
Wireless ZigBee Communication (2.4GHZ) (if ZigBee wireless module is installed)
USB Communication
Wired RS232 (serial) communication
Simplex infrared communication (From infrared remote to robot)
Dimensions:
Diameter: 16cm
Height: 10cm
Weight: 1300gms
Power:
9.6V, 2100mAh Nickel Metal Hydride (NiMH) battery pack and external Auxiliary power using
battery charger.
Battery Life:
2 Hours while motors are operational at 75% of time
Locomotion:
Two DC geared motors in differential drive configuration and caster wheel at front as support
Top Speed: 24 cm / second
Wheel Diameter: 51mm
Position encoder: 30 pulses per revolution
Position encoder resolution: 5.44 mm
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 10
3. Using Fire Bird V Robot
In this chapter various components of the robot and there principal of operations are explained in
brief. For more details user can refer to Chapter 8, which covers robots hardware in detail. It is
very important that user go through chapter 3 and 8 before starting to use robot.
3.1 Powering up Fire Bird V
Fire Bird V has onboard rechargeable 9.6V, 2.1Ah Nickel Metal Hydride battery which can
power the robot for approximately 2 hours. In case experiments are to be performed for an
extended period robot can also be powered by external, auxiliary power supply.
.
Figure 3.1: Connecting the battery on the Fire Bird V main board
For the safety during transportation, robots battery is disconnected. Before connecting battery to
the robot, make sure that power switch is moved towards back direction of the robot (AP). You
need to charge the battery before first use. Refer to section 3.3 for battery charging. For running
the robot on battery power or auxiliary power, refer to the section 3.4 and 3.5.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 11
Figure 3.2: Battery Connector
Figure 3.3: Power Switch
3.2 Power management system on the Fire Bird V
Fire Bird V is powered by 9.6V, 2.1Ah rechargeable Nickel Metal Hydride battery pack.
When fully charged, battery pack gives 11.5V. When it is fully discharged, voltage drops to
about 8.5V. Battery pack should not be discharged below 8V (1V per cell) to extend the battery
life. Nickel Metal Hydride batteries must be recharged using smart charging circuit which
follows the appropriate charging profile for the batteries. To avoid any damage to the batteries,
only use charger provided with the robot.
Power management block on the Fire Bird V performs following functions.
1. Battery voltage monitoring
2. Battery current sensing*
3. Battery low warning in case battery is below critical level
4. Regulated supply for onboard payload.
* Current sensing is an optional accessory.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 12
Battery low threshold value is factory set at 8V. Battery low threshold value can be adjusted by
turning potentiometer which is shown in Figure 3.4. Robot will start giving beeping sound when
battery is critically low and needs recharge.
Figure 3.4: Power Management section on the main board
3.3 Battery Charging
Fire Bird V is powered by 9.6V, 2.1Ah NiMH rechargeable battery. NiMH charger provided
with the robot will charge the battery in 4.5 hours. Battery has built-in thermistor for monitoring
battery temperature during battery charging.
Figure 3.5: Smart NiMH battery charger for Fire Bird V
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 13
Figure 3.5 shows the smart battery charger for Fire Bird V robot. Battery charger checks state of
battery before initiating the charging process. If battery is deeply discharged it preconditions the
battery before starting full charging cycle. While charging the battery, by looking at battery
voltage, current and temperature it selects optimal charging algorithm.
Figure 3.6: Connection for battery charging
Battery Charging procedure:
1. Turn off the robot.
2. Connect AC adaptor in the mains. Connect AC adaptors output to the battery chargers
AC Adaptor jack connector as shown in figure 3.5 and turn on the adaptor. Battery
chargers power LED will turn on and red and green LEDs will blink twice.
3. Insert one end of the connector which is marked with the label Battery Charging in to
the socket which is located at the back side of the robot as shown in the figure 3.6. Insert
the other end of the connector in to Battery Connector 1 of the battery charger as
shown in the figure 3.5. To start the battery charging, press button marked with Start
Push Button. After a small delay green LED will turn on which indicates battery is being
charged.
4. When battery is fully charged red and green status LEDs will blink alternately.
5. If there is any fault then charger will give different types of LED indication to indicate
nature of fault. Refer to table 3.1 for interpretation of the LED status.
Table 3.1 Battery charging indicator LED status
Indicator LEDs
Green Red
Battery Status Charger Status
On Off Voltage <11.4 V Battery is getting charged
Off Off Charger idle Charger is in idle state.
Press Start push button to start charging
Off On Fault Charge termination due to over current
On On Fault Charge termination due to timeout
Alternate blinking Fully charged Battery is fully charged
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 14
Note:
If fault condition occurs, then wait for some time till battery is cooled down and start
recharging again after some time. If problem persists then replace the battery.
While battery is being charged robot will not turn on irrespective of the position of the
power switch.
3.4 Powering the robot on battery power
To turn on the robot on the battery power, make sure that battery is connected to the robot and
move the power switch towards forward direction (BP) as shown in the figure 3.3
3.5 Powering the robot on auxiliary power
Usually robot is powered by onboard battery. In order to do experiments for longer
duration with out worrying about the battery getting low, robot can be powered by external
power source which is also called as auxiliary power source. Auxiliary power source provides
regulated 12V, 1Amp. Supply to the robot.
Figure 3.7: Robot Powering via Battery and Auxiliary supply
To turn on the robot on the Auxiliary power use following steps:
1. Disconnect the battery by removing the battery connector on the main board which is
located at the bottom side of the robot.
2. Move the power switch to the BP (refer to figure 3.3).
3. Insert the connector marked with the Auxiliary Power in the connector which is located
at the back side of the robot as shown in the figure 3.7. Connect the other end of the
connector to the Battery Connector 1 on the battery charger (refer to figure 3.5)
Connect the AC adaptor to the battery charger unit and turn on the power.
4. Now to turn on the robot move power switch towards AP (backwards) (figure 3.3).
Warning:
Do not connect auxiliary power while battery is connected to the robot. In such case robot will
either run on the battery if switch is in Battery Power mode (BP or forward direction) or in
auxiliary power mode (AP or backward direction). Robot will not turn off.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 15
3.5B Battery Maintenance
Fully charged NiMh battery will get completely discharged with in a week. Always charge
battery before use. If battery is charged after for about a month in the first charge it can deliver
only 1/3
rd
power of its rating. To restore battery to its full potential again, perform at least 2-3
charge discharge cycles.
To ensure long life charge battery at least once a week and discharge it till robot starts giving
battery low warning. Charge battery again. Repeat this cycle for atleast 2-3 times. For faster
battery discharge load Motion_Control_Simple program which is located in the Experiments
folder in the documentation CD. Loading the program on the robot is covered in the chapter 4 in
the hardware manual or chapter 2 in the software manual.
3.6 Motion control
FIRE BIRD V robot has two DC geared motors for the locomotion. The robot has a top speed of
24cm/second. These motors are arranged in differential drive configuration. I.E. motors can
move independently of each other. Front castor wheel provides support at the front side of the
robot. Using this configuration, the robot can turn with zero turning radius by rotating one wheel
in clockwise direction and other in counterclockwise direction. Position encoder discs are
mounted on both the motors axle to give a position feedback to the microcontroller.
Figure 3.8: Motion Control
Robots motors are controlled by L293D motor driver IC from ST Microelectronics. To change
the direction of the motor, appropriate logic levels (High/Low) are applied to L293Ds direction
control pins. Velocity control is done using pulse width modulation (PWM). Single L293D can
drive 2 DC motors. Fire Bird V has onboard two L293D ICs to drive four DC motors. Each
channel of the motor driver IC can provide current up to 600mA to drive motor.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 16
Figure 3.9: Motor Drivers
Pulse Width Modulation for velocity control:
Pulse width modulation is a process in which duty cycle of constant frequency square wave is
modulated to control power delivered to the load i.e. motor.
Duty cycle is the ratio of T-ON/ T. Where T-ON is ON time and T is the time period of the
wave. Power delivered to the motor is proportional to the T-ON time of the signal. In case of
PWM the motor reacts to the time average of the signal.
PWM is used to control total amount of power delivered to the load without power losses which
generally occur in resistive methods of power control.
Figure 3.10: Pulse Width Modulation (PWM)
Above figure shows the PWM waveforms for motor velocity control. In case (A), ON time is
90% of time period. This wave has more average value. Hence more power is delivered to the
motor. In case (B), the motor will run slower as the ON time is just 10% of time period.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 17
For the Fire Bird V ATMEGA2560 version, logic level for the motor direction control is given in
the table 3.3.
Microcontroller Pin Function
PL3 (OC5A) Pulse width modulation for the left motor (velocity control)
PL4 (OC5B) Pulse width modulation for the right motor (velocity control)
PA0 Left motor direction control
PA1 Left motor direction control
PA2 Right motor direction control
PA3 Right motor direction control
Table 3.2: Pin functions for the motion control
DIRECTION
LEFT
BWD (LB)
PA0
LEFT
FWD(LF)
PA1
RIGHT
FWD(RF)
PA2
RIGHT
BWD(RB)
PA3
PWM
PL3 for left motor
PL4 for right
motor
FORWARD 0 1 1 0
As per velocity
requirement
REVERSE 1 0 0 1
As per velocity
requirement
RIGHT (Left wheel
forward, Right wheel
backward)
0
1
0
1
As per velocity
requirement
LEFT(Left wheel
backward, Right wheel
forward,)
1
0
1
0
As per velocity
requirement
SOFT RIGHT(Left wheel
forward,, Right wheel
stop)
0
1
0
0
As per velocity
requirement
SOFT LEFT(Left wheel
stop, Right wheel
forward,)
0
0
1
0
As per velocity
requirement
SOFT RIGHT 2 (Left
wheel stop, Right wheel
backward)
0
0
0
1
As per velocity
requirement
SOFT LEFT 2 (Left
wheel backward, Right
wheel stop)
1
0
0
0
As per velocity
requirement
HARD STOP 0 0 0 0
As per velocity
requirement
SOFT STOP (Free
running stop)
X X X X 0
Table 3.3: Logic table for motor direction control
We can see all the commands given on the Bargraph LED display which is located at the top
right side on the robot. Figure 3.11 shows the location and function of indicator LEDs related to
motion control.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 18
Figure 3.11: Motion status LED indication for ATMEGA2560 microcontroller adaptor
board for Fire Bird V
Important:
Auxiliary power can supply current up to 1 Ampere while Battery can supply current up to 2
Ampere. When robot is on auxiliary power and robot changes is direction suddenly from forward
to backward or vice versa, it will cause large current surge and robots microcontroller might get
reset. This will happen repeatedly and you might think that problem is in the software. To avoid
this problem use stop command for at least 0.5 second before changing direction. This problem
will not occur when robot is on battery power and battery have sufficiently charge. But still it is a
good practice to stop robot for 0.5 seconds before changing the direction to increase the life of
the motor.
3.7 Position Encoders
Position encoders give position / velocity feedback to the robot. It is used in closed loop to
control robots position and velocity. Position encoder consists of optical encoder and slotted
disc assembly. When this slotted disc moves in between the optical encoder we get square wave
signal whose pulse count indicates position and time period indicates velocity.
Optical encoder MOC7811 is used for position encoder on the robot. It consists of IR LED and
the photo transistor mounted in front of each other separated by a slot in the casing. When IR
light falls on the photo transistor it gets in to saturation and gives logic 0 as the output. In
absence of the IR light it gives logic 1 as output. A slotted encoder disc is mounted on the wheel
is placed in between the slot. When encoder disc rotates it cuts IR illumination alternately
because of which photo transistor gives square pulse train as output. Output from the position
encoder is cleaned using Schmitt trigger based inverter (not gate) IC CD40106.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 19
Figure 3.12: DC geared motors and position encoders
Figure 3.13: Position encoder assembly
Calculation of position encoder resolution:
Case 1: Robot is moving forward or backward (encoder resolution is in mm)
Wheel diameter: 5.1cm
Wheel circumference: 5.1cm * 3.14 =16.014cm =160.14mm
Number slots on the encoder disc: 30
Position encoder resolution: 163.2 mm / 30 =5.44mm / pulse.
Case 2: Robot is turning with one wheel rotating clockwise while other wheel is rotating
anti clockwise. Center of rotation is in the center of line passing through wheel axel and
both wheels are rotating in opposite direction (encoder resolution is in degrees)
Distance between Wheels =15cm
Radius of Circle formed in 360
0
rotation of Robot =Distance between Wheels / 2
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 20
=7.5 cm
Distance Covered by Robot in 360
0
Rotation =Circumference of Circle traced
=2 x 7.5 x 3.14
=47.1 cm or 471mm
Number of wheel rotations of in 360
0
rotation of robot
=Circumference of Traced Circle / Circumference of Wheel
=471 / 160.14
=2.941
Total pulses in 360
0
Rotation of Robot
=Number of slots on the encoder disc / Number of wheel rotations of in 360
0
rotation of robot
=30 x 2.941
=88.23 (approximately 88)
Position Encoder Resolution in Degrees =360 / 88
=4.090 degrees per count
Case 3: Robot is turning with one wheel stationary while other wheel is rotating clockwise
or anti clockwise. Center of rotation is center of the stationary wheel (encoder resolution is
in degrees)
In this case only one wheel is rotating and other wheel is stationary so robot will complete its
360
0
rotation with stationary wheel as its center.
Radius of Circle formed in 360
0
rotation of Robot =Distance between Wheels
=15 cm
Distance Covered by Robot in 360
0
Rotation =Circumference of Circle traced
=2 x 15 x 3.14
=94.20 cm or 942 mm
Number of wheel rotations of in 360
0
rotation of robot
=Circumference of Traced Circle / Circumference of Wheel
=942 / 160.14
=5.882
Total pulses in 360
0
Rotation of Robot
=Number of slots on the encoder disc / Number of wheel rotations of in 360
0
rotation of robot
=30 x 5.882
=176.46 (approximately 176)
Position Encoder Resolution in Degrees =360 /176
=2.045 degrees per count
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 21
Figure 3.13: Position encoder pulse LEDs on ATMEGA2560 microcontroller adaptor
board
Pulses coming from the position encoders are indicated by position encoder LEDs on the
ATMEGA2560 board as shown in figure 3.13
3.8 Sharp IR range sensors
For accurate distance measurement, robot uses Sharp IR range sensors. The robot can be fitted
with five IR range sensors as shown in figure 3.14. Sharp IR range sensors consists of narrow IR
beam for illumination and CCD array, which uses triangulation to measure the distance from any
obstacle. A small linear CCD array is used for angle measurement. When light hits the obstacle
and reflects back to the linear CCD array. Depending on the distance from the obstacle, angle of
the reflected light varies. This angle is measured using the CCD array to estimate distance from
the obstacle. It gives same response to different colored objects as measured distance is function
of the angle of reflection and not on the reflected light intensity. Figure 3.15 shows the internals
of the sensor. Figure 3.16 explains how change in the distance from the obstacle can be measured
by measuring angle of reflection of light beam from the obstacle. Since sensor measurement is
based on triangulation and not on intensity of the reflected light it is immune to disturbance
caused by ambient light.
Sensor gives out analog voltage corresponding to angle of reflection. Relationship between the
angle of reflection and output voltage is not linear because of trigonometry involved. Also these
sensors can not cover initial range of 0 to some distance depending on the type of sensor. It is
known as blind spot distance. In this range sensor gives incorrect readings. Table 3.4 gives
information about sensing range and the blind spot distance for each sensor.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 22
Figure 3.14: Sharp Sensors mounted on Fire Bird V
Figure 3.15: Infrared Range finder sensor and its inside view
Figure 3.16: Distance measurement based on angel of reflection
Fire Bird V supports three types of IR range sensors from Sharp Microelectronics.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 23
GP2D120 GP2D12 GP2Y0A02YK
Figure 3.17: Sharp IR Range sensors for Fire Bird V
Sensor Range Blind Spot
GP2D120X 30cm to 20cm 4cm to 0cm
GP2D12 80cm to 10cm 10cm to 0cm
GP2Y0A02 150cm to 20cm 20cm to 0cm
Table 3.4: Sharp IR Range sensors coverage
Figure 3.18: Distance Vs. Output voltage of GP2D120, GP2D12 and GP2Y0A02YK
Figure 3.18 shows the typical output character of the GP2D120, GP2D12 and GP2Y0A02YK
sensors. In these graphs X axis represents distance from the obstacle and Y axis represents the
output voltage. The sensors output characteristic is slightly logarithmic in nature hence to get
the distance in millimeters we have to use following formulas.
Distance in mm for GP2D120 =10.00*((1.00/ ((0.001240875*(float) ADC value) +0.005))
0.42)
Distance in mm for GP2D12 =
(int)(10.00 * (2799.6 * (1.00 / (float)((double)(ADC_Value)^(double)(1.1546)))));
Figure 3.14 shows locations of the Sharp IR range sensors on the robot. Each sensor consumes
about 30mA current. If a sensor emits some signal and senses any object based on the reflected
signal then it is known as active sensor. If many robots in the same field are using active sensors
such as Sharp IR range sensors, IR proximity sensors or ultrasound sensors then they will
interfere with the sensors of the other robots.
To prevent this interference from occurring Fire Bird V can switch all of its active sensors on
and off. This means that many Fire Bird series robots can work in same field without causing
interference with other Fire Bird robots sensor. Many robots can synchronize when particular
sensor should be turned on or off over wireless communication using ZigBee wireless modules.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 24
Another advantage of this feature is that robot can turn off these sensors when not in use to
conserve power.
Note: For more details about the sensor interfacing, turning on /off the sensors, refer to section
8.3 in the chapter 8. It also shows the jumpers for the bypassing the MOSFET switches. You can
also check weather particular sensor is on or off by looking at the LEDs which are located just
right side of the bar graph LED display.
Figure 3.19: Sensor status indicator LEDs
3.9 Infrared proximity and directional light intensity sensors
Infrared proximity sensors are used to detect proximity of any obstacles near the robot.
Directional light intensity sensor gives intensity of the light in particular direction. IR proximity
sensor consists of IR LED and IR photo diode. When obstacle comes within sensing range IR
photo diode detects reflected light of the IR LED. To reduce interference with ambient light
photo diode is cased in material which allows only IR light to pass. While sensing obstacle in
order to eliminate interference due to ambient light, reading should be taken while IR LED is on
and off. By comparing these two values effect of ambient light can be nullified. To detect
directional light intensity, IR LED is turned off and light intensity at photo diode is measured.
Fire Bird V has eight IR proximity sensors. IR LEDs of all these sensors can be turned on and off
by MOSFET Q3. To turn on IR LEDs permanently J 4 needs to be shorted. Refer to table 8.4 for
more details.
In the absence of the obstacle there is no reflected light hence no leakage current will flow
through the photo diode and output voltage will be around 5V. As obstacle comes nearer, more
light gets reflected and falls on the photo diode and leakage current flowing through the photo
diode starts to increase and voltage across the diode starts to fall.
When IR proximity sensors used in conjunction with Sharp IR Range sensors, IR proximity
sensors covers sensing range in which Sharp IR Range sensors have blind spot. IR proximity
sensors working together with Sharp IR range sensors covers range from 0 to maximum range of
the Sharp IR sensor without having any blind spot.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 25
Figure 3.20: Eight IR proximity sensors on Fire Bird V
3.10 White Line Sensor:
White line sensors are used for detecting white line on the ground surface. White lines are used
to give robot sense of localization. White line sensor consists of a highly directional
phototransistor for line sensing and red LED for illumination. Due to the directional nature of the
phototransistor it does not get affected with ambient light unless it is very bright.
Figure 3.21: White line sensor
Figure 3.22: White Line sensor
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 26
Figure 3.23: Schematic of the white line sensor
When the robot is not on a white line, amount of light reflected is less hence less leakage current
flows through the photo transistor. In this case, the line sensor gives an output in the range of 2
volts to 5 volts. When the sensor is on a white line, more light gets reflected resulting in
considerable increase in the leakage current and sensors output voltage falls to 0.15 to 0.8 volts.
Power to the red LEDs is controlled by MOSFET which can be turned Off to extend robots
battery life. This feature is also very useful in advanced methods of line following in which
reflected light intensity from the surface is measured while red LEDs are on and off to nullify the
effect of the ambient light on the sensor reading. To turn on red LEDs permanently put jumper
on J 4. J 4 controls power to the red LED of white line sensors 1, 2 and 3 and Sharp sensors 2, 3
and 4. Refer to the table 8.4 for more information on jumper settings.
White line Sensor ADC channel number
Left ADC channel no. 3
Center ADC channel no. 2
Right ADC channel no. 1
Table 3.5 White line sensor connections with ADC of ATMEGA2560
White Line sensor calibration
By using trimming potentiometers located on the top center of the main board, line sensors can
be calibrated for optimal performance. Line sensors are factory calibrated for optimal
performance. Using these potentiometers we can adjust the intensity of the red LEDs of the white
line sensor. Sensitivity adjustment is needed when color contrast between the white and non-
white surface in a white line grid is sub-optimal. In such cases the sensors can be tuned to give
maximum difference between white and non white surfaces. You can also turn on and turn off IR
LEDs and take sensor readings at the same place and nullify the effect of the ambient light.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 27
Figure 3.24: Potentiometers for white line sensor calibration
3.11 LCD Interfacing
Figure 3.25: LCD socket and other settings
Figure 3.26: LCD socket pin connection
Figure 3.27 LCD interfacing with the microcontroller
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 28
Microcontroller LCD PINS Description
VCC VCC Supply voltage (5V).
GND GND Ground
PC0 RS (Control line) Register Select
PC1 R/W (Control line) READ /WRITE
PC2 EN (Control Line) Enable
PC4 to PC7 D4 to D7 (Data lines) Bidirectional Data Bus
LED+, LED- Backlight control
Table 3.6 LCD Pin mapping and functions
To interface LCD with the microcontroller requires 3 control signals and 8 data lines. This is
known as 8 bit interfacing mode which requires total 11 I/O lines. To save number of I/Os
required for LCD interfacing we can use 3 control signals with 4 data lines. This is known as 4
bit interfacing mode and it requires 7 I/O lines. We are using 4 bit interfacing mode to reduce
number of I/O lines. In this mode higher nibble and lower nibble of commands/data set needs to
be sent separately. Figure 3.27 shows LCD interfacing in 4 bit mode. The three control lines are
referred to as EN, RS, and RW.
The EN line is called "Enable" and it is connected to PC2. This control line is used to tell the
LCD that microcontroller has sent data to it or microcontroller is ready to receive data from
LCD. This is indicated by a high-to-low transition on this line. To send data to the LCD, program
should make sure that this line is low (0) and then set the other two control lines as required and
put data on the data bus. When this is done, make EN high (1) and wait for the minimum amount
of time as specified by the LCD datasheet, and end by bringing it to low (0) again.
The RS line is the "Register Select" line and it is connected to PC0. When RS is low (0), the data
is treated as a command or special instruction by the LCD (such as clear screen, position cursor,
etc.). When RS is high (1), the data being sent is treated as text data which should be displayed
on the screen.
The RW line is the "Read/Write" control line and it is connected to PC1. When RW is low (0),
the information on the data bus is being written to the LCD. When RW is high (1), the program
is effectively querying (or reading from) the LCD.
The data bus is bidirectional, 4 bit wide and is connected to PC4 to PC7 of the microcontroller.
The MSB bit (DB7) of data bus is also used as a Busy flag. When the Busy flag is 1, the LCD is
in internal operation mode, and the next instruction will not be accepted. When RS =0 and R/W
=1, the Busy flag is output on DB7. The next instruction must be written after ensuring that the
busy flag is 0.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 29
Figure 3.28: LCD Timing Diagram.
3.12 Buzzer
Robot has 3 KHz piezo buzzer. It can be used for debugging purpose or as attention seeker for a
particular event. The buzzer is connected to PC3 pin.
Figure 3.29: Buzzer
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 30
4. Programming the Fire Bird V ATMEGA2560 Robot
There are lots of IDEs (Integrated Development Environment) available for the AVR
microcontrollers. There are free IDEs which are based on AVR GCC like AVR Studio from
ATMEL and WIN AVR and proprietary IDEs like ICC AVR, Code vision AVR, IAR and KEIL
etc. IDEs like ICC AVR and code vision AVR are very simple to use because of their GUI based
code generator which gives you generated code. Almost all the proprietary IDEs works as full
version for first 45 days and then there code size is restricted to some size. We have used free
IDE like AVR Studio from ATMEL and proprietary IDE like ICC AVR for the robot. In this
manual we are going to focus on the AVR studio from the ATMEL. It uses WIN AVR open
source C compiler at the back end. It has many attractive features like built-in In-Circuit
Emulator and AVR instruction set simulator. After writing and compiling the program it gives
.hex file. This .hex file needs to be loaded on the robot using In System Programmer (ISP).
IDE Installation
Since AVR studio uses WIN AVR compiler at the back end we need to install WIN AVR first
(Please note that WIN AVR must be installed before AVR Studio so that AVR Studio can easily
detect the AVRGCC plugins).
4.1 Installing WIN AVR
Insert the Fire Bird V documentation CD and from the Software and Drivers folder copy
WIN AVR 2009-03-13 on the PC and click on WinAVRxxxx.exe file.
Figure 4.1
WIN AVR installation package will open. Choose language as English.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 31
Figure 4.2
Click next in the WIN AVR setup wizard.
Figure 4.3
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 32
Press I Agree after going through license agreement.
Figure 4.4
Make sure that you select drive on which operating system is installed.
Figure 4.5
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 33
Select all the components and press Install.
Figure 4.6
Click Finish to complete WIN AVR installation
Figure 4.7
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 34
4.2 Installing AVR Studio
Go to Software and Drivers folder from the documentation CD, copy folder AVR Studio
4.17 on the PC and click on AvrStudio417Setup.exe to start the installation process.
Figure 4.8
Click on Run
Figure 4.9
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 35
Click Next to start installation of AVR Studio 4
Figure 4.10
After clicking Next go through the license agreement. If it is acceptable then click Next
Figure 4.11
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 36
Now choose the destination drive. Select the same drive in which your operating system and
WINAVR is installed.
Figure 4.12
Select for the Install / upgrade J ungo USB Driver to support In System Programming (ISP) by
AVRISP mkII
Figure 4.13
Important: If Install / upgrade J ungo USB Driver is not selected then AVRISP mkII
programmer will not work with the AVR Studio.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 37
Click Next to start the installation process.
Figure 4.14
Click Finish to complete the installation process.
Figure 4.15
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 38
4.3 Setting up Project in AVR Studio
AVR studio is an Integrated Development Environment (IDE) for writing and debugging AVR
applications. As a code writing environment, it supports included AVR Assembler and any
external AVR GCC compiler in a complete IDE environment.
AVR Studio gives two main advantages:
1. Edit and debug in the same application windows. Faster error tracking.
2. Breakpoints are saved and restored between sessions, even if codes are edited.
Figure 4.16
Middle window shows current code under development. Window on the left side shows view of
source files, header files, External dependencies, and other files. Right side window shows all the
ports and other peripherals status. Bottom window is known as Build window. It shows results
of the compilation, errors, HEX file size and other warning messages etc.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 39
1. Open AVR Studio. If any project is running it can be closed by clicking on Project in the
menu and select Close Project.
2. To create new project click on Project in the menu and select New Project.
Figure 4.17
3. Select Project Type as AVR GCC. Type project name in the Project name window. In this
case it is buzzer_test. Also check on Create folder check box. This will create all the files
inside the new folder. In the Location window select the place where would like to store your
project folder and then click Next.
Figure 4.18
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 40
4. Select debug platform and Device. In this case we have selected AVR simulator and
ATMEGA2560 microcontroller and click finish.
Figure 4.19
5. Now we are almost ready to write our first code. Before we start coding we will check other
setting to make sure that they are set properly.
Figure 4.20
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 41
6. Open Project menu and click on the Configuration option.
Figure 4.21
7. In the Project Option General tab will open. Select device as ATMEGA2560 and
frequency (Crystal Frequency) as 11.0592MHz i.e. 11059200. Set the optimization level be at -
O0.
Figure 4.22
Selecting proper optimization options
Optimization option defines the optimization level for all files. Higher optimization levels will
produce code that is harder to debug. Stack variables may change location, or be optimized
away, and source level debugging may "skip" statements because they too have been optimized
away.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 42
The levels of optimization are:
-O0 No optimization. This is the same as not specifying any optimization.
-01 Optimize. Reduces code size and execution time without performing any
optimizations that take a great deal of compilation time.
-O2 Optimize even more. avr-gcc performs almost all optimizations that don't involve a
space-time tradeoff.
-O3 Optimize yet more. This level performs all optimizations at -O2 along with -finline-
functions and -frename-registers.
-Os Optimize for size. Enables all -O2 optimizations that don't increase code size. It also
performs further optimizations designed to reduce code size.
For more information on optimization, see the 'man' pages for avr-gcc.
Important: During the coding choose appropriate optimization option. If you feel that code is
not working properly as it should be then turn off all optimization by selecting optimization
option as -O0. Once you know that your code is properly working then you can incrementally
increase optimization level.
We suggest that always use optimization level as -O0 at the beginner level.
8. Make sure that in the External Tools, proper path for avr-gcc.exe and make.exe are given and
press ok.
Now we are ready to write our first code.
Figure 4.23
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 43
4.4 Writing your first code in AVR Studio
We are going to write our first code for our Fire Bird V ATMEGA2560 robot.
This program will make robots buzzer beep.
Copy the following code in window code area. We will see how this code works in the next
chapter.
//Buzzer is connected at the third pin of the PORTC
//To turn it on make PORTC 3
rd
(PC3 )pin logic 1
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
//Function to initialize Buzzer
void buzzer_pin_config (void)
{
DDRC =DDRC | 0x08;
//Setting PORTC 3 as output
PORTC =PORTC & 0xF7;
//Setting PORTC 3 logic low to turnoff buzzer
}
void port_init (void)
{
buzzer_pin_config();
}
void buzzer_on (void)
{
unsigned char port_restore =0;
port_restore =PINC;
port_restore =port_restore | 0x08;
PORTC =port_restore;
}
void buzzer_off (void)
{
unsigned char port_restore =0;
port_restore =PINC;
port_restore =port_restore & 0xF7;
PORTC =port_restore;
}
void init_devices (void)
{
cli(); //Clears the global interrupts
port_init();
sei(); //Enables the global interrupts
}
//Main Function
int main(void)
{
init_devices();
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 44
while(1)
{
buzzer_on();
//delay
_delay_ms(1000);
buzzer_off();
//delay
_delay_ms(1000);
}
}
We are now going to compile this code to generate the hex file which we will load on the
Robots microcontroller. Select Build menu and click on Rebuild All. It will compile the
buzzer_test.c code and will generate buzzer_test.hex file for the robots microcontroller.
Figure 4.24
You can verify successful compilation in the bottom most Build window of the AVR Studio.
Figure 4.25
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 45
You can also verify that buzzer_test.hex file is generated in the default folder inside the
folder you have selected.
4.5 Debugging the code in AVR studio
After successful compilation of the code we can debug the code by AVR Debugger provided by
AVRStudio. Here is the illustration of debugging of code given in Exp1 (buzzer ON-OFF
folder).
Click on Debug tab in the menu and click on Start Debugging.
Figure 4.26
Now debugging mode is started and an arrow is visible at the first line of our main function from
where the debugging will start.
Figure 4.27
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 46
Press F11 key or Step into button from the toolbar to start debugging statement by
statement. Processor details are visible at left window and the I/O port status is displayed at the
rightmost window.
Figure 4.28
By this way we can continuously monitor the bit changes in any of the registers of
microcontroller and debug the code before actually burning it to the microcontroller. PORTC bits
changes as per our commands and these changes can be seen in right window. After debugging is
done select Stop Debugging from Debug tab.
Figure 4.29
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 47
4.6 Correct Jumper setting before loading hex file on the robot
Hex file on the robots microcontroller is loaded with out removing microcontroller socket from
the robot. It is known as In System Programming (ISP).
Fire Bird V ATMEGA2560 microcontroller adaptor board has two microcontrollers.
ATMEGA2560 (master microcontroller) and ATMEGA8 (slave) microcontroller.
ATMEGA2560 communicates with ATMEGA8 using SPI bus. ATMEGA2560 also uses SPI
bus to load hex file using ISP. ISP will not work when ATMEGA8 is still interfaced with the
ATMEGA2560 over SPI bus. Hence before loading hex file we need to disconnect SPI bus
connection between ATMEGA2560 and ATMEGA8 microcontroller. Remove three jumpers
marked by J 4 from the top board if they are present, jumper J 4 is provided for enabling the SPI
interface between ATMEGA2560 and ATMEGA8, programming either of the microcontroller
when the jumpers are present will give a certain error. Images below show the right and wrong
settings of jumper J 4 while performing ISP
Figure 4.30: Correct jumper setting before proceeding to ISP
Figure 4.31: Incorrect jumper setting before proceeding to ISP
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 48
Figure 4.32: ISP socket on the ATMEGA2560 microcontroller adaptor board
Note:
ATMEGA8 slave microcontroller is used for collecting analog data from IR proximity sensors 6,
7, 8, Robot current sense (if ACS712 current sensor is installed), extended white line sensor
channels 4, 5, 6, 7 and pin on the servo expansion port. If you are not using these sensors then for
convenience you can keep jumper J 4 disconnected.
4.7 Loading your code on the robot using AVR USB programmer from NEX
Robotics
There are lots of programmers available to load hex file on the robot. How to load this hex file
on the robot is shown in the respective programmers documentation. We are going to use
USBasp, USB port based programmer from NEX Robotics to load the buzzer_test.hex file on
the robot. This programmer requires avrdude.exe file which comes with WINAVR. So
installation of WINAVR is necessary for this programmer.
Driver Installation
Figure 4.33: AVR USB programmer from NEX Robotics
First we need to install driver for the USB port based USBasp ISP (In System Programmer).
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 49
Step1: Connect your programmer to the USB port, computer will show that a new device has
been found. It asks you to install the appropriate software (driver). Select "Install from a specific
location".
Figure 4.34
Step2: The computer asks you to select the installation path for the driver. Select the path where
the driver is located. Tick "Include this location in the search" and specify the path for the driver.
The driver is located in Software and Drivers \ AVR USB Programmer Driver \ in the
documentation CD. You can also download it from the nex robotics website. With WinAVR
version 20080512 or greater, use libusb_0.1.12.1. Use libusb_0.1.10.1 with older WinAVR
versions.
Figure 4.35
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 50
Step3: The computer installs the driver for the USB programmer by copying it in its system
folder.
Figure 4.36
Step 4: After the driver is successfully installed. Click Finish to end the installation process.
Using AVR ISP USB Programmer
Insure that AVR USB programmer is connected to the computer
Step 1: Go to My Computer, right click and select Properties.
Figure 4.37
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 51
Step 2: Click on the Hardware tab.
Figure 4.38
Step 3: Click Device Manager.
Figure 4.39
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 52
Step 4: Verify that an icon called LibUSB-Win32 Devices with USBasp appears in it.
Figure 4.40
Step 6: Go to Start.
Figure 4.41
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 53
Step 7: Click run Type cmd and press enter.
Figure 4.42
Step 8: The command window appears.
Figure 4.43
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 54
Step 9: Type avrdude and press enter to see the list of commands available. You can also refer
to the WIN AVR manual for more detailed information about various command line operations
available with avrdude. It is located in your destination drive\WinAVR20xxxxxx\doc\avrdude
Figure 4.44
Turn off the robot.
Insert 10 pin FRC cable in the ISP socket (shown in figure 4.32) of the ATMEGA2560
microcontroller adaptor board.
Turn on the robot
Step10: Copy the file buzzer_test.hex to desktop and type this command to transfer the file to
the ATMEGA2560 microcontroller.
avrdude -c usbasp -p m2560 -P Usb -U flash:w:buzzer_test.hex
And wait for program to upload.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 55
Figure 4.45
After successful loading of the buzzer_test.hex you will hear beeping sound being ON-OFF
continuously after some delay.
Note: You can also give path to the location of the hex file instead of putting hex file on the
desktop.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 56
4.8 Loading your code on the robot using ATMELs AVRISP mkII
programmer
AVRISP mkII programmer from the ATMEL is the most versatile programmer. It is very easy to
use and has more features. Only flip side is that its bit expensive.
Figure 4.46: AVRISP mkII
Step 1: Connect AVRISP mkII to the PC. It will install driver automatically provided that USB
driver installation option is selected while installing AVR Studio. For more details refer to figure
4. 13.
Start AVR Studio
Go to Tools tab and click on Program AVR. Select connect option.
Following window will open.
Figure 4.47
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 57
Figure 4.48
Step 2: Select AVRISP mkII, select USB port and press Connect.
Following window will open.
Figure 4.49
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 58
AVRISP mkII use 6 pin FRC connector for ISP while Fire Bird V robot uses 10 pin FRC
connector for programming. We need to use AVR ISP adaptor to convert 6 pin to 10 pin
connector.
Step 3: Connect AVR ISP adaptor between robot and AVRISP mkII. Insert 10 pin FRC
connector in the Fire Bird V ATMEGA2560 robot and turn the power on.
Figure 4.50
Step 4: Go to Main tab
Select ATMEGA2560 microcontroller.
Click on the Read Signature button.
It will read the signature and if its matches with the microcontroller signature then we are ready
to load hex file on the robot.
Figure 4.51
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 59
If ISP does not work properly then try to reduce the ISP frequency and try it again.
Figure 4.52: Changing ISP frequency if required
Step 5: Go to Program tab.
Check on Erase device before programming and Verify device after programming check box.
Browse and select the desired hex file in the flash section
Press Program button
Look at the comments at the bottom to verify that hex file is loaded in the flash.
Figure 4.53
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 60
Fuse settings for ATMEGA2560 (Master) microcontroller
Fuse settings are done in the factory. Do not change them. This information is only given for the
reference.
Figure 4.54
Figure 4.55: Fuse settings of ATMEGA2560 microcontroller
Go the Fuse tab while robot is powered on and AVRISP mkII is connected. Press Read
button. All the fuse settings will be visible.
Brown-out detection is disabled.
J TAGEN is set at Brown-out detection at VCC=2.7V
Boot size is at 4096 words with start address =$1F000
SUT_CKSEL is set at External crystal greater than 8MHz with startup time of 65ms
If needed you can set appropriate Fuse setting and write it by pressing Write button.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 61
Fuse settings for ATMEGA8 (Slave) microcontroller
Fuse settings are done in the factory. Do not change them. This information is only given for the
reference.
Figure 4.56
Go the Fuse tab while robot is powered on and AVRISP mkII is connected. Press Read
button. All the fuse settings will be visible.
Boot size is at 1024 words with start address =$0C00
SUT_CKSEL is set at Internal RC oscillator at 8MHz with startup time of 0ms.
If needed you can set appropriate FUSE setting and write it by pressing Write button.
Firmware for the ATMEGA8 (Slave microcontroller)
Firmware for the ATMEGA8 microcontroller is located in the folder GUI and Related
Firmware \ ATMEGA8 hex file
Important:
Before loading hex file or reading fuse settings ensure that jumpers at J 4 are open as shown in
figure 4:30 and are not as shown in figure 4.31.
Never ever select external crystal oscillator option for the ATMEGA8 microcontroller. If
selected microcontroller will become useless and needs replacement as it will not able to
communicate with any programmer as clock from the external crystal oscillator is absent.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 62
5. Pin Functionality
Fire Bird V ATMEGA2560 microcontroller adaptor board has two microcontrollers.
ATMEGA2560 (master microcontroller) and ATMEGA8 (slave) microcontroller.
ATMEGA2560 communicates with ATMEGA8 using SPI bus.
ATMEGA2560 is interfaced to all the important modules for the robot while ATMEGA8
microcontroller is interfaced with non critical modules such as IR proximity sensors 6, 7, 8,
Robot current sensing (if ACS712 current sensor is installed), extended white line sensor
channels 4, 5, 6, 7 and pin on the servo expansion port.
ATMEGA2560 microcontroller pin configuration
PIN
NO
Pin name USED FOR Status
1 (OC0B)PG5
Slave Select (SS) of the SPI expansion port on the main
board (refer to figure 8.5)
--
2 RXD0/PCINT8/PE0 UART 0 receive For ZigBee wireless module (if installed) Default
3 TXD0/PE1 UART 0 transmit For ZigBee wireless module (if installed) Default
4 XCK0/AIN0/PE2
GPIO* (Available on expansion slot of the microcontroller
socket)
5 OC3A/AIN1/PE3 PWM output for C2 motor drive Output
6 OC3B/INT4/PE4 External Interrupt for the left motors position encoder Input
7 OC3C/INT5/PE5 External Interrupt for the right motors position encoder Input
8 T3/INT6/PE6 External Interrupt for the C2 motors position encoder Input
9 CLK0/ICP3/INT7/ PE7
External Interrupt for Interrupt switch on the
microcontroller board, External Interrupt for the C1 motors
position encoder ********
Input
10 VCC 5V
11 GND Ground
12 RXD2/PH0 UART 2 receive for USB Communication Default
13 TXD2/PH1 UART 2 transmit for USB Communication Default
14 XCK2/PH2
Sharp IR ranges sensor 1and 5 disable.
Turns off these sensors when output is logic 1 *******
Output
15 OC4A / PH3
IR proximity sensors 1 to 8 disable.
Turns off these sensors when output is logic 1 *******
Output
16 OC4B / PH4 --
17 OC4C / PH5 --
18 OC2B / PH6
GPIO* (Available on expansion slot of the microcontroller
socket)
--
19 SS/PCINT0/PB0
20 SCK/PCINT1/PB1 Output
21 MOSI/PCINT2/PB2 Output
22 MISO/PCINT3/PB3
ISP (In System Programming), SPI Communication with
ATMEGA8 **, Connection to the SPI port on the main
board
Input
23 OC2A/PCINT4/PB4 Servo Pod GPIO --
24 OC1A/PCINT5/PB5 PWM for Servo motor 1. *** Output
25 OC1B/PCINT6/PB6 PWM for Servo motor 2. *** Output
26 OC0A/OC1C/PCINT7/ PWM for Servo motor 3. *** Output
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 63
PB7
27 T4/PH7 GPIO (Available On Expansion Slot) --
28 TOSC2/PG3
29 TOSC1/PG4
RTC (Real Time Clock)****
30 RESET Microcontroller reset
31 VCC 5V
32 GND Ground
33 XTAL2
34 XTAL1
Crystal 11.0592 MHz
35 ICP4/PL0 --
36 ICP5/PL1 --
37 TS/PL2
GPIO (Available on expansion slot of the microcontroller
socket)
--
38 OC5A/PL3 PWM for left motor. Output
39 OC5B/PL4 PWM for right motor. Output
40 OC5C/PL5 PWM for C1 motor. Output
41 PL6 --
42 PL7
GPIO* (Available on expansion slot of the microcontroller
socket)
--
43 SCL/INT0/PD0 --
44 SDA/INT1/PD1
I2C bus / GPIOs (Available on expansion slot of the
microcontroller socket)
--
45 RXD1/INT2/PD2 UART1 receive for RS232 serial communication Default
46 TXD1/INT3/PD3 UART1 transmit for RS232 serial communication Default
47 ICP1/PD4 --
48 XCK1/PD5 --
49 T1/PD6 --
50 T0/PD7
GPIO* (Available on expansion slot of the microcontroller
socket)
--
51 PG0/WR --
52 PG1/RD
GPIO* (Available on expansion slot of the microcontroller
socket)
--
53 PC0 LCD control line RS (Register Select) Output
54 PC1 LCD control line RW(Read/Write Select) Output
55 PC2 LCD control line EN(Enable Signal) Output
56 PC3 Buzzer Output
57 PC4
58 PC5
59 PC6
60 PC7
LCD data lines (4-bit mode) Output
61 VCC 5V
62 GND Ground
63 PJ 0/RXD3/PCINT9
64 PJ 1/TXD3/PCINT10
65 PJ 2/XCK3/PCINT11
66 PJ 3/PCINT12
67 PJ 4/PCINT13
68 PJ 5/PCINT14
69 PJ 6/PCINT15
LED bargraph display and GPIO* (Available on expansion
slot of the microcontroller socket)
Output
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 64
70 PG2/ALE
Sharp IR ranges sensor 2, 3, 4 and red LEDs of white line
sensor 1, 2, 3 disable. *******
Turns off these sensors when output is logic 1
Output
71 PA7 C2-2 Logic input 2 for C2 motor drive Output
72 PA6 C2-1 Logic input 1 for C2 motor drive Output
73 PA5 C1-2 Logic input 2 for C1 motor drive Output
74 PA4 C1-1 Logic input 1 for C1 motor drive Output
75 PA3 Logic input 1 for Right motor (Right back) Output
76 PA2 Logic input 2 for Right motor (Right forward) Output
77 PA1 Logic input 2 for Left motor (Left forward) Output
78 PA0 Logic input 1 for Left motor (Left back) Output
79 PJ 7
LED Bar Graph and GPIO* (Available on expansion slot
of the microcontroller socket)
80 VCC 5V
81 GND Ground
82 PK7/ADC15/PCINT23 ADC Input For Servo Pod 2
Input
(Floating)
83 PK6/ADC14/PCINT22 ADC Input For Servo Pod 1
Input
(Floating)
84 PK5/ADC13/PCINT21 ADC input for Sharp IR range sensor 5
Input
(Floating)
85 PK4/ADC12/PCINT20 ADC input for Sharp IR range sensor 4
Input
(Floating)
86 PK3/ADC11/PCINT19 ADC input for Sharp IR range sensor 3
Input
(Floating)
87 PK2/ADC10/PCINT18 ADC input for Sharp IR range sensor 2
Input
(Floating)
88 PK1/ADC9/PCINT17 ADC input for Sharp IR range sensor 1
Input
(Floating)
89 PK0/ADC8/PCINT16 ADC input for IR proximity analog sensor 5
Input
(Floating)
90 PF7(ADC7/TDI) ADC input for IR proximity analog sensor 4*****
Input
(Floating)
91 PF6/(ADC6/TD0) ADC input for IR proximity analog sensor 3*****
Input
(Floating)
92 PF5(ADC5/TMS) ADC input for IR proximity analog sensor 2*****
Input
(Floating)
93 PF4/ADC4/TCK ADC input for IR proximity analog sensor 1*****
Input
(Floating)
94 PF3/ADC3 ADC input for white line sensor 1
Input
(Floating)
95 PF2/ADC2 ADC input for white line sensor 2
Input
(Floating)
96 PF1/ADC1 ADC input for white line sensor 3
Input
(Floating)
97 PF0/ADC0 ADC input for battery voltage monitoring
Input
(Floating)
98 AREF ADC reference voltage pin (5V external) ******
99 GND Ground
100 AVCC 5V
Table 5.1: ATMEGA2560 microcontroller pin connections
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 65
* Not used pins are by default initialized to input and kept floating. These pins are available on
the expansion slot of the ATMEGA2560 microcontroller adaptor board. Some pins are especially
reserved for servo motor interfacing in the Fire Bird V Hexapod robot.
** MOSI, MISO, SCK and SS pins of ATMEGA2560 are associated to the ISP (In System
programming) port as well as the SPI interface to ATMEGA8. J 4 needs to be disconnected
before doing ISP. To communicate with ATMEGA8 jumper J 4 needs to be in place. Refer to
section 4.6 for more details.
*** PORTB pin5, 6, 7 are OC1A, OC1B, OC1C of the Timer1. Which are connected to the
servo motor sockets S1, S2, S3 on the microcontroller adaptor board.
**** External Crystal of 32 KHz is connected to the pins PG3 and PG4 to generate clock for
RTC (Real Time Clock).
***** For using Analog IR proximity (1, 2, 3 and 4) sensors short the jumper J 2. To use J TAG
via expansion slot of the microcontroller socket remove these jumpers.
****** AREF can be obtained from the 5V microcontroller or 5V analog reference generator IC
REF5050 (optional). Refer chapter 8 for more details.
******* Sensors switching can be controlled only is if corresponding jumpers are open. Refer
to section 8.3.4 for more details.
J 2: Sharp IR range sensor 2, 3, 4 and red LEDs of white line sensors;
J 3: Sharp IR range sensor 1, 5;
J 4: IR proximity sensors 1 to 8;
******** External interrupt from the position encoder C1 is disabled by removing pin 2 of the
CD40106 Schmitt trigger inverter buffer to avoid its wire anding with the interrupt switch.
ATMEGA8 pin configuration
PIN
NO
Pin name USED FOR
1 INT1/PD3 Not Used
2 XCK/TOSC1/PB6 Not Used
3 GND Ground
4 VCC 5V
5 GND Ground
6 VCC 5V
7 XTAL1/TOSC1/PB6 Not Used
8 XTAL2/TOSC1/PB7 Not Used
9 (T1) PD5 Not Used
10 (AIN0) PD6 Not Used
11 (AIN1) PD7 Not Used
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 66
12 (ICP) PB0 Not Used
13 (OC1A) PB1 Not Used
14 (SS/OC1B) PB2
15 (MOSI/OC2) PB3
16 (MISO) PB4
17 PB5 (SCK)
ISP (In System Programming) and SPI Communication with
ATMEGA2560. *
18 AVCC 5V
19 ADC6 ADC input for IR proximity analog sensor 7
20 AREF 5V
21 GND Ground
22 ADC7 ADC input for IR proximity analog sensor 8
23 PC0 (ADC0) ADC input for white line sensor 4
24 PC1 (ADC1) ADC input for white line sensor 5/Servo pod
25 PC2 (ADC2) ADC input for white line sensor 6
26 PC3 (ADC3) ADC input for white line sensor 7/Servo pod
27 PC4 (ADC4/SDA) ADC input for Current Sensing IC ACS712
28 PC5 (ADC5/SCL) ADC input for IR proximity analog sensor 6
29 PC6 (RESET) Microcontroller reset
30 PD0 (RXD) Not Used
31 PD1 (TXD) Not Used
32 PD2 (INT0) Not Used
Table 5.2: ATMEGA8 microcontroller pin connections
* MOSI, MISO, SCK and SS pins of ATMEGA2560 are associated to the ISP (In System
programming) port as well as the SPI interface to ATMEGA8. J 4 needs to be disconnected
before doing ISP. To communicate with ATMEGA8 jumper J 4 needs to be in place. Refer to
section 4.6 for more details.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 67
6. PC Based Control Using Serial Communication
Fire Bird V ATMEGA2560 robot can be controlled through the USB / serial port of the host PC
in wired or wireless mode. In order to do this you have to load appropriate hex file (firmware) on
the robot. Refer to chapter 4 for how to load hex file.
The communication between the host computer and Fire Bird V robot is made by sending and
receiving commands and data byte by byte. The host computer interacts with the Fire Bird V
robot by first sending a command byte followed by data byte or it waits for data from the robot.
All communication is initiated by host PC. The host computer acts as a master and Fire Bird V
robot acts as a slave. PC introduces delay of at least 3ms between two consecutive commands, so
that the microcontroller gets sufficient time to process the command sent to it.
You can also use NEX Robotics USB to Serial converter to control robot over USB or use NEX
Robotics ZigBee wireless communication modules to control robot over wireless data link. GUI
based robot control is covered in Chapter 7.
6.1 Communication Protocol
Communication protocol used for robot control is given below. You can build your own
application by using command set given below to control robot using serial, USB or over
wireless communication. Its a simple byte based protocol in which upper nibble is command
and lower nibble can be data or command.
Commands to set velocity of the left and right motor:
The motors velocity can be varied by writing the proper byte into the particular register, which
generates a pulse width modulation (PWM) signal with 8 bit resolution. The value of the velocity
control register can be set between 00 to FF hex, where a value 0 indicates that the motor is
stopped and 0xFF indicates motor is running at full speed.
Command
(HEX)
Function
1 Load the lower nibble of the left motor velocity control byte
into the robot.
2 Load the upper nibble of the left motor velocity control byte
into the robot and execute the command.
3 Load the lower nibble of the right motor velocity control byte
into the robot.
4 Load the upper nibble of the right motor velocity control byte
into the robot and execute the command.
Table 6.1
Example: Set left motors speed control byte to 0xAB
To set the speed of the left motor to 0xAB, follow the sequence of commands below. Attach
lower nibble B with command 1 and upper nibble A with command 2.
Step1: Send 0x1B Load the lower nibble of the left motor speed in the robot.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 68
Step2: Delay of at least 3 milliseconds
Step3: Send 0x2A Load the upper nibble of the left motor speed in the robot and execute the
command
Step4: Delay of at least 3 milliseconds before loading next command
Note: It is very important that you send the byte containing command 1 first and then send the
byte containing command 2 for proper operation. The same rule is applicable for commands 3
and 4.
Commands to set direction of the robot:
Command
( HEX )
DIRECTION
LEFT
BWD
(LB)
PA0
LEFT
FWD(LF)
PA1
RIGHT
FWD(RF)
PA2
RIGHT
BWD(RB)
PA3
51 FORWARD 0 1 1 0
52 REVERSE 1 0 0 1
53
RIGHT (Left wheel
forward, Right wheel
backward)
0
1
0
1
54
LEFT(Left wheel
backward, Right
wheel forward,)
1
0
1
0
55
SOFT RIGHT(Left
wheel forward,,
Right wheel stop)
0
1
0
0
56
SOFT LEFT(Left
wheel stop, Right
wheel forward,)
0
0
1
0
57
SOFT RIGHT 2
(Left wheel stop,
Right wheel
backward)
0
0
0
1
58
SOFT LEFT 2 (Left
wheel backward,
Right wheel stop)
1
0
0
0
59 HARD STOP 0 0 0 0
Table 6.2
Example: To set left motor velocity to 0x84, right motor velocity to 0x65, and move
backward.
Step1: 0x14 Load the lower nibble 4 of the left motor speed into the robot
Step2: Delay of at least 3 milliseconds
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 69
Step3: 0x28 Load the upper nibble 8 of the left motor speed into the robot and execute the
command
Step4: Delay of at least 3 milliseconds
Step5: 0x35 Load the lower nibble 5 of the right motor speed into the robot
Step6: Delay of at least 3 milliseconds
Step7: 0x46 Load the upper nibble 6 of the right motor speed into the robot and execute the
command
Step8: Delay of at least 3 milliseconds
Step9: 0x52 move backward
Step10: Delay of at least 3 milliseconds before loading next command
Commands to access the Analog sensor data:
Command
(HEX)
Data
60 Battery voltage
Robot sends back 8 bit battery voltage value. To convert this
value in to volts use the following conversion formula:
Battery Voltage = ADC data x 0.069
62 Front Sharp IR range sensor data (Front distance)
The Robot will return 8 bit value which indicates distance
between the obstacle and front Sharp sensor.
63 Sharp IR range sensor 2 data
The Robot will return 8 bit value which indicates distance
between the obstacle and Sharp sensor.
64 White line sensor 1 (Left)
The Robot will return an 8 bit analog value of the left white
line sensor
65 White line sensor 2 (Center)
The Robot will return an 8 bit analog value of the center
white line sensor
66 White line sensor 3 (Right)
The Robot will return an 8 bit analog value of the right white
line sensor
67 Sharp IR range sensor 4 data
The Robot will return 8 bit value which indicates distance
between the obstacle and Sharp sensor.
C1 IR Proximity sensor 1
The Robot will return an 8 bit analog value of the IR
Proximity sensor 1
C2 IR Proximity sensor 2
The Robot will return an 8 bit analog value of the IR
Proximity sensor 2
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 70
C3 IR Proximity sensor 3
The Robot will return an 8 bit analog value of the IR
Proximity sensor 3
C4 IR Proximity sensor 4
The Robot will return an 8 bit analog value of the IR
Proximity sensor 4
C5 IR Proximity sensor 5
The Robot will return an 8 bit analog value of the IR
Proximity sensor 5
C6 IR Proximity sensor 6
The Robot will return an 8 bit analog value of the IR
Proximity sensor 6
C7 IR Proximity sensor 7
The Robot will return an 8 bit analog value of the IR
Proximity sensor 7
C8 IR Proximity sensor 8
The Robot will return an 8 bit analog value of the IR
Proximity sensor 8
C9 Sharp IR range sensor 1 data
The Robot will return 8 bit value which indicates distance
between the obstacle and Sharp sensor.
CA Sharp IR range sensor 5 data
The Robot will return 8 bit value which indicates distance
between the obstacle and Sharp sensor.
Table 6.3
Commands to turn on / off the buzzer:
69 Turn on the buzzer.
6A Turn off the buzzer.
Table 6.3
Robot Version Signature
6B If 6B is sent to the robot will send back its ID
Table 6.4
Position encoder data:
Position encoder pulse count for the position tracking:
72 The robot will return lower byte of the pulse count for the left
motor.
73 The robot will return upper byte of the pulse count for left
motor.
79 The robot will return lower byte of the pulse count for the
right motor.
7 A The robot will return upper byte of the pulse count for right
motor.
Table 6.5
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 71
Note: To get an actual pulse count, combine the lower byte and upper byte to get a 16 bit value.
For more information on the position encoder resolution refer to the section 3.7.
Commands for servo motor control:
ATMEGA2560 microcontroller adaptor board can drive three servo motors. S1 and S2 servo
motors can be controlled with serial protocol. These motors are used to move the camera or
sensor pod in pan and tilt.
8 Data Load servo angle lower nibble
9 Data Load servo angle upper nibble and move the servo motor.
A Data Load servo angle lower nibble
B Data Load servo angle upper nibble and move the servo motor.
Table 6.6
The servo motor will move between 0 to180 given an 8 bit value between 0x15 and 0x65 (in
hex)
The Servo motion resolution is =180 / (0x65 0x15) =2.25 degrees / step.
Example: Move servo motor1 by 90 degrees.
Numbers of steps required =90/2.25 =40steps =0x28 hex
Byte to send =0x15 +0x28 =0x3D
Lower nibble =D hex
Upper nibble =3 hex
Combining these nibbles with the commands:
Step1: send 0x8D through the serial port
Step2: delay by 3 milliseconds
Step3: send 0x93 through the serial port
6.1B: Communication protocol for basic robot control
In the section 6.1, advanced protocol for complete robot control over GUI is covered. In this
section a basic protocol for robot control is explained. Using this protocol you can move robot in
all direction and turn on / off its buzzer.
To use this protocol you need to load following hex files on the robot which are located in the
Experiments folder in the documentation CD depending on the type of port used.
In all cases 9600 bps baud rate is used. Robot control covered in the section 6.2, 6.3 and 6.5 uses
communication protocol mentioned in this section. Keys are mapped in the intuitive way on the
Numerical pad of the keyboard.
Serial port: Serial_Communication.hex
USB port: Serial_Communication_USB-RS232.hex
ZigBee wireless module: Serial_Communication_ZigBee_wireless.hex
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 72
Character ASCII value Action
8 0x38 Forward
2 0x32 Backward
4 0x34 Left
6 0x36 Right
5 0x35 Stop
7 0x37 Buzzer On
9 0x39 Buzzer Off
Table 6.7
Important:
While using Numerical Pad of the key board, make sure that Num. Lock is on.
6.2 Using the Terminal software to control robot via Serial Communication
Terminal is easy to use free software for serial communication. It is located in the Software and
Drivers folder in the documentation CD. It can also be downloaded from http://hw-
server.com/software/termv19b.html. Serial communication protocol covered in the section 6.1
can be used with the terminal software control robot over wire or wireless medium.
Connect serial cable between the robot and the computer as shown in figure 6.1. Load the
Serial_Communication.hex file which is located in the Experiments folder in the
documentation CD on the robot. For loading hex file onto the robot refer to chapter 4.
Figure 6.1
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 73
Step 1: Copy Terminal software on the PC from the Software and Drivers folder from the
documentation CD and double click on the terminal software. The terminal window will open
up.
Figure 6.2
Step 2: Select the COM Port and set the baud rate and other settings as desired. Once all the
settings are done click connect. If you are using serial port then select COM1. If you are using
NEX Robotics USB to serial converter or Wireless ZigBee module then refer to section 6.3 and
6.4 for how to identify COM port. Set the baud rate at 9600 bps
Figure 6.3
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 74
Step 3: Now you are ready to transmit the data. Type the data into the text box and click send.
For more information about using terminal software click help.
Figure 6.4
Step 4: For controlling robot motion and buzzer use Numerical Pad Use commands from the
table 6.7 to control the robot. Make sure that Num lock is on for the numeric keypad.
Figure 6.5
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 75
6.3 Robot control using USB port
Fire Bird V ATMEGA2560 has onboard USB port for direct interface to computers USB port.
ATMEGA2560 microcontroller adaptor board has onboard FT232 USB to serial converter. We
need to load Serial_Communication_USB-RS232.hex on the robot which is located in the
Experiments folder in the documentation CD.
For using Fire Bird V in USB Communication mode place the jumpers J 1 on the top board as
shown in the figure 6.6 and connect the USB cable to the onboard USB port.
Figure 6.6: Jumper setting to enable USB communication
Before using USB port we need to install the driver software for FT232 USB to serial converter.
The software is located in the Software and Drivers \ CDM 2.06.00 WHQL Certified folder.
provided in the Fire Bird V CD or can also be downloaded from the NEX Robotics website.
After installation is complete follow the step 1 to 4 of the section 6.2 to control the robot using
keyboard by using the Terminal software.
Important: Make sure that jumper is configured to enable USB communication. J umpers should
be in the position as shown in the Figure 6.6.
Steps to install the drivers for USB to serial converter:
Step 1:
Copy the driver installation folder on your PC from Software and Drivers \ CDM 2.06.00
WHQL Certified Folder in the CD.
Step 2:
Connect the USB to serial converter cable between robot and the PC
Step 3:
On connecting the device Found New Hardware message will appear in the taskbar tray and
the following window opens.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 76
Figure 6.7
Step 4:
Check on the radio button No, not this time and then click on the next button.
Figure 6.8
The following window will appear.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 77
Figure 6.9
Select the second option manually to install the drivers and click on next button.
Step 5:
Now check the second option and set the location of folder containing drivers
E.g.(C:\CDM 2.06.00 WHQL Certified).
Figure 6.10
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 78
Step 6:
On clicking next driver installation will begin.
Figure 6.11
Step 7:
On successfully installing the driver following window will appear. Click Finish to complete the
installation.
Figure 6.12
After installation of FT232 USB UART software, PC may ask for USB serial port software. To
install this software follow steps 1 to 7 of USB serial converter software installation.
Important: When using USB port for the communication, for proper operation first turn on the
robot then insert the USB cable in the robot. We have to follow this sequence because USB to
serial converter chip is powered by USB. If any fault occurs then turn off the robot and remove
the USB cable and repeat the same procedure.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 79
6.4 Identifying COM Port number of the USB to serial converter or ZigBee
wireless module
To use terminal.exe or any other serial program for robot control we need to first identify
communication port which is generally referred as COM n, i.e. COM1 or COM2 etc. on which
USB to serial converter or wireless device is connected. Follow these steps to identify your COM
Port number.
Step 1:
Right Click My Computer and click on properties. System properties window will appear.
Figure 6.13
Step 2:
Click on the Device manager in the Hardware tab.
Figure 6.14
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 80
Step 3:
Expand Ports (Com & LPT) tree. COM Port number is mentioned in the parenthesis next to USB
Serial Port.
Figure 6.15
Step 4:
If the COM port number is greater than 10 Terminal will not be able to detect it. To resolve this
problem, change the port number by right clicking on USB serial Port and select properties.
Figure 6.16
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 81
In the Port settings tab click on the Advanced button, the following window will appear.
Figure 6.17
You can change the COM port number by clicking on the Com Port number drop down list and
select the appropriate number. Make sure the new COM port is not being used by any other
device.
6.5 Robot control using ZigBee wireless communication module
Figure 6.18: ZigBee Wireless USB Module from NEX Robotics
To control robot via wireless communication, load GUI_control_wireless.hex on the robot
which is located in the GUI and Related Firmware folder.
USB Wireless Module from the NEX Robotics enables wireless transmission of serial data
through PCs USB port. It uses Xbee module for wireless communication. The Xbee module can
be configured via PCs USB port easily using X-CTU utility to change frequency, baud rate etc.
It is located in the Software and Drivers folder in the documentation CD. On the PC side this
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 82
device is treated as the Communication Device Class (CDC) of USB family and it is assigned a
virtual Comport number allowing the user to make use of existing GUI. The destination side
(robot) requires another ZigBee wireless module.
Make sure that ZigBee wireless module s installed on the robot. Refer to chapter 9 for how to
install ZigBee wireless module on the robot.
We need to load Serial_Communication_ZigBee_wireless.hex on the robot which is located in
the Experiments folder in the documentation CD.
After all the driver installation is complete follow the step 1 to 4 of the section 6.2 to control the
robot using keyboard using the Terminal software.
Driver Installation
Step 1:
Locate the wireless communication folder from the CD
Step 2:
Copy Software and Drivers \ CDM 2.06.00 WHQL Certified folder from the installation CD.
Step 3:
Follow the same process as in section 6.3 to install the driver.
Step 4:
Install ZigBee wireless module on the main board as shown in figure 6.19. Refer to chapter 9 for
more details.
Step 5:
Identify Com port for the communication on the PC. Turn on the robot and start wireless
communication.
Note: Wait for at least 5 seconds to start the wireless communication after turning on the robot
and the USB wireless module.
Figure 6.19: ZigBee module on the main board
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 83
7. Robot Control using GUI for Fire Bird V
ATMEGA2560
Fire Bird V ATMEGA2560 robot can be controlled by GUI via serial / USB cable or using
ZigBee wireless module. To control the robot using GUI, via RS232 serial communication or
USB communication or wireless communication load appropriate hex file on the robot. GUI
works on at the 115200 baud rate.
RS232 serial communication: GUI_ control_serial.hex
USB communication: GUI control USB.hex
ZigBee wireless module based communication: GUI_control_wireless.hex
All these hex files are located in the GUI and Related Firmware folder.
For information on how to load hex file, refer to chapter 4.
7.1 Installing GUI
Before installing GUI you need to install Microsoft .net framework 2.0 on the PC. It is
located in the Software and Drivers folder in the documentation CD. It can also be
downloaded from http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-
4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en
Step1: Copy FB V ATMEGA2560 GUI Setup folder which is located inside the folder GUI
and Related Firmware
Click on setup.exe in FB V ATMEGA2560 GUI Setup\Debug folder.
Step 2: Click Next Button to continue.
Figure 7.1
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 84
Step 3: Browse the location where set up will install or set the default location and click Next
Button.
Figure 7.2
Step 4: Click Next to start Installation process.
Figure 7.3
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 85
Step 5: When installation is successfully completed, Click Close to exit.
Figure 7.4
Step 6: After successful installation go to All Programs ->FIRE BIRD V ATMEGA2560 ->
FIRE BIRD V ATMEGA2560 or click on Fire Bird V ATMEGA2560 on your desktop location,
GUI will open.
Figure 7.5
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 86
Figure 7.6
7.2 Using the GUI:
Step 1: Load appropriate firmware (hex file) on the robot.
RS232 serial communication: GUI_ control_serial.hex
USB communication: GUI control USB.hex
ZigBee wireless module based communication: GUI_control_wireless.hex
Step 2: Select COM Port to which communication to be done. If communication is being done
by directly connecting a serial cable to PC com port then default COM1 is selected. However if
USB port or ZigBee wireless module is used then for driver installation and to identify COM
port refer to sections 6.3, 6.4 and 6.5.
Step 3: Connect serial or USB cable between robot and PC or connect wireless USB module to
the PC.
Step 4: Turn on the robot
Step 5: Click Connect Button to make connection with selected Port.
All Sensors data of Firebird V Robot will be displayed on GUI
Warning:
While using USB communication, ensure that the appropriate jumpers are in place. For more
details refer Chapter 7-PC based communication, section 7.3 USB based communication.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 87
Figure 7.7
Important:
If you want to see data on the IR proximity sensors 6, 7, 8 then connect jumper J 4 on the
ATMEGA2560 microcontroller adaptor board
When using USB port for the communication, for proper operation first turn on the robot then
insert the USB cable in the robot. We have to follow this sequence because USB to serial
converter chip is powered by USB. If any fault occurs then turn off the robot and remove the
USB cable and repeat the same procedure.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 88
8. Hardware Description
This chapter contains the hardware description of the Fire Bird V ATMEGA2560 robot. In this
chapter full expansion capability of the robot is covered so that user can do custom modifications
as per the requirements.
Fire Bird V platform consists of 6 modules:
1. Power management
2. Sensing
3. Actuation (locomotion)
4. Other peripherals
5. Communication
6. Intelligence (microcontroller)
Figure 8.1: Fire Bird V ATMEGA2560 robot top view
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 89
Figure 8.2: Fire Bird V ATMEGA2560 bottom view
8.1 Connections
Figure 8.3: ATMEGA2560 microcontroller adaptor board for the Fire Bird V robot
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 90
Figure 8.4: Main board
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 91
Figure 8.5: Bottom view of the main board
8.1.1 Socket connections for the microcontroller adaptor board on the main board
Figure 8.6: Microcontroller adaptor board socket connections on the main board
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 92
Pin No. Pin Name uC Board Connection Function
1 CS* ATMEGA8 ADC4 Current sense analog value
2 IR Proximity sensor 8 ATMEGA8 ADC7 IR Proximity sensor 8 analog value
3 Ground Ground Ground
4 USB Data+ Pin 15 of FT232 USB to
serial converter going to
UART 2 of
ATMEGA2560 via
jumper J 1
5 USB Data- Pin 16 of FT232 USB to
serial converter going to
UART 2 of
ATMEGA2560 via
jumper J 1
6 VUSB FT232 pin20 and pin4
(5V to the FT232 USB
to serial converter)
USB connection going to the
ATMEGA2560 microcontroller via
FT232 USB to serial converter.
To enable USB communication, set
J umper 1 as shown in the figure 6.6
7 5V System Not connected 5V System Voltage. Can be used
for powering up any digital device
with current limit of 400mA.
8 IR Proximity Sensor
Drive
Not connected Drain of the IR proximity sensor
switching MOSFET. Any device
with current capacity of 1 Amp can
be connected
9 5V Sensor Not connected 5V Sensor voltage. Can be used for
additional sensor interfacing with
current limit: 300mA
10 5V System Not connected 5V System voltage. Can be used for
powering up any digital device with
current Limit: 400mA
11 SHARP IR Range
Sensor 1
ATMEGA2560 ADC9 Analog output of Sharp IR range
Sensor 1
12 IR Proximity Sensor 1 ATMEGA2560 ADC4 Analog output of IR Proximity
sensor 1
13 Zigbee RXD UART0 of
ATMEGA2560
Zigbee wireless module Serial data
in
14 Zigbee TXD UART0 of
ATMEGA2560
Zigbee wireless module Serial data
out
15 SHARP IR Range
Sensor 2
ATMEGA2560 ADC10 Analog output of Sharp IR range
sensor 2
16 IR Proximity Sensor 2 ATMEGA2560 ADC5 Analog output of IR Proximity
sensor 2
17 Not used
18 MOSI ATMEGA2560 Pin 21
19 MISO ATMEGA2560 Pin 22
SPI Communication lines for
communication with ATMEGA8
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 93
20 SCK ATMEGA2560 Pin 20
21 SSI ATMEGA2560 Pin 19
via J umper 4 and also for
programming ATMEGA2560 in
ISP mode
22 RS ATMEGA2560 PC0 LCD Register Select pin
(Command)
23 RW ATMEGA2560 PC1 LCD Read Write pin (Command)
24 EN ATMEGA2560 PC2 LCD Enable pin (Command)
25 DB5 ATMEGA2560 PC5 LCD data bit 5
26 DB4 ATMEGA2560 PC4 LCD data bit 4
27 DB6 ATMEGA2560 PC6 LCD data bit 6
28 DB7 ATMEGA2560 PC7 LCD data bit 7
29 V Battery System ATMEGA2560 ADC0 V Battery System (9V to 11.4V
depending on battery status).
Unregulated Supply for additional
module interfacing. Maximum
current capacity: 1Amp
32 White Line Sensor 1 ATMEGA2560 ADC3 Analog output of white line sensor
1
31 White Line Sensor 2 ATMEGA2560 ADC2 Analog output of white line sensor
2
32 White Line Sensor 3 ATMEGA2560 ADC1 Analog output of white line sensor
3
33 IR Proximity Sensor
Disable
ATMEGA2560 PH3 TTL/CMOS input. Disable IR
proximity sensors when V>2 is
applied. When V<0.65 IR
proximity sensors are turned on.
34 Sharp IR Sensors 1and
5 Disable
ATMEGA2560 PH2 TTL/CMOS input. Disable Sharp
IR range sensors 1 and 5 when V>2
is applied. When V<0.65 sharp
sensors 1 and 5 are turned on.
35 5V System Not connected 5V system Voltage. Can be used for
powering up any digital device.
Current Limit: 400mA.
36 White Line 4 ATMEGA8 ADC0 Analog output of white line sensor
4
37 White Line 5 ATMEGA8 ADC1 Analog output of white line sensor
5
38 White Line 6 ATMEGA8 ADC2 Analog output of white line sensor
6
39 White Line 7 ATMEGA8 ADC3 Analog output of white line sensor
7
40 Sharp IR Range
Sensors 2,3,4 and
White Line Sensors
Disable
ATMEGA2560 PG2 TTL/CMOS input. Disable Sharp
IR range sensors 2,3,4 and White
line sensors when V>2 is applied.
When V<0.65 sharp sensors 2,3,4
and white line sensors are turned
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 94
on.
41 Sharp IR Range
Finder 3
ATMEGA2560 ADC11 Analog output of Sharp IR range
sensor 3
42 IR Proximity Sensor 3 ATMEGA2560 ADC6 Analog output of IR Proximity
sensor 3
43 IR Proximity Sensor 4 ATMEGA2560 ADC7 Analog output of IR Proximity
sensor 4
44 Sharp IR Range
Finder 4
ATMEGA2560 ADC12 Analog output of Sharp IR Range
sensor 4
45 Sharp IR Range
Finder 5
ATMEGA2560 ADC13 Analog output of Sharp IR Range
sensor 5
46 IR Proximity Sensor 5 ATMEGA2560 ADC8 Analog output of IR Proximity
sensor 5
47 C1 1 ATMEGA2560 PA4 Logic input 1 for C1 motor drive
48 C1 PWM ATMEGA2560 OC5C PWM Iinput for C1 motor drive
49 C1 2 ATMEGA2560 PA45 Logic input 2 for C1 motor drive
50 PWM L ATMEGA2560 OC5A PWM input for Left motor drive
51 L1 ATMEGA2560 PA0 Logic input 1 for Left motor drive
52 L2 ATMEGA2560 PA1 Logic input 2 for Left motor drive
53 R1 ATMEGA2560 PA2 Logic input 1 for Right motor drive
54 PWM R ATMEGA2560 OC5B PWM input for Right motor drive
55 R2 ATMEGA2560 PA3 Logic input 2 for Right motor drive
56 Not connected Not Used
57 Not connected Not Used
58 Not connected Not Used
59 Not connected Not Used
60 5V System Not connected Not Used
61 IR Proximity Sensor
Drive
Not connected Drain of the IR proximity sensor
switching MOSFET. Any device
with current capacity of 1 Amp can
be connected
62 Position Encoder Left ATMEGA2560
PE4(INT4)
Output of Left position encoder (0-
5V)
63 Position Encoder
Right
ATMEGA2560
PE5(INT5)
Output of Right position encoder
(0-5V)
64 Position Encoder C2 ATMEGA2560
PE6(INT6)
Output of C2 position encoder (0-
5V)
65 Position Encoder C1 ATMEGA2560
PE7(INT7)
Output of C1 position encoder (0-
5V)
66 C2 2 ATMEGA2560 PA7 Logic input 2 for C2 motor drive
67 C2 1 ATMEGA2560 PA6 Logic input 1 for C2 motor drive
68 C2 PWM ATMEGA2560 OC3A PWM input for C2 motor drive
69 IR Proximity Sensor 6 ATMEGA8 ADC5 Analog output of IR Proximity
sensor 6
70 IR Proximity Sensor 7 ATMEGA8 ADC6 Analog output of IR Proximity
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 95
sensor 7
71 BUZZER ATMEGA2560 PC3 Input, V>0.65V turns on the Buzzer
72 DAC OUT
73 RS232 TXD UART1(RXD) of
ATMEGA2560 via
MAX202, TTL to
RS232 Converter
RS232 Transmit, connected to DB9
serial connector on main board.
74 RS232 RXD UART1(TXD) of
ATMEGA2560 via
MAX202, TTL to
RS232 Converter
RS232 Receive, connected to DB9
serial connector on main board.
Table 8.1: ATMEGA2560 Microcontroller adaptor board socket connections with the main
board
Note:
* CS will give output only if ACS712 hall effect current sensor is soldered on the main board
8.2 Power management module on the main board
Power management block on the Fire Bird V performs following functions.
1. Battery voltage monitoring
2. Battery current sensing*
3. Battery low warning in case battery is below critical level
4. Regulated supply for onboard payload.
* Current sensing is an optional accessory.
8.2.1 Battery
Fire Bird V is powered by 9.6V, 2.1Ah rechargeable Nickel Metal Hydride battery pack. When
fully charged, battery pack gives 11.5V and when it is fully discharged, voltage drops to about
8.5V. Battery has built-in thermistor for monitoring battery temperature during battery charging.
Figure 8.7: 9.6V, 2000mAH rechargeable NiMH battery and pin connection
The NiMH battery provided with Fire Bird V has a connector which will fit into the above
shown connector in only one orientation. Do not force the connection in any other way.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 96
Figure 8.8: Battery for Fire Bird V ATMEGA2560
Pin Number Function
1,2,9,10 Battery Positive
3,8 Thermistor Connection
4,5,6,7 Battery Negative
Table 8.2: Battery connections
8.2.2 Power sources and voltage regulation on the main board
Although Fire Bird V can be powered by NiMH battery but in order to do experiments for longer
duration with out worrying about the battery getting low, robot can be powered by external
power source which is also called as auxiliary power source. Auxiliary power source provides
regulated 12V, 1Amp. supply to the robot. You can apply up to 18V to the robot with out any
problems. Beyond 18V voltage regulators on the robot will start failing and system will get
damaged. The entire supply lines combined together robot can supply maximum of 1Ampere
current to the external load when operation on the battery.
Most of the systems on board the robot require 5V regulated supply. Only wireless module
requires 3.3V supply. Robots main board has three voltage regulators and two additional power
lines for different types of functionalities.
Depending on the power switch position and the presence of the auxiliary power robot can run
either on the battery or on the auxiliary power source. Supply is further divided in two types.
1. V Batt Supply
V Batt Supply stands for stabilized supply coming from the battery. When battery is
almost discharged (about 30% power remaining) and onboard payload draws large
current in excess of 2 amperes then battery voltage can fall below 6.3V momentary.
Voltage regulators will not be able to function properly and its output will fall below 5V
if input voltage falls below 6.3V. If output voltage falls below 5V then microcontroller
can get reset. To extend the usable battery life and to reduce the probability of
microcontroller getting reset diodes D7 and D8 along with the capacitor C54 is used.
When battery voltage suddenly drops, diode D7 and D8 prevents the reverse flow of the
current and capacitor C54 maintains voltage with in safe limits for about 300
milliseconds. For this duration capacitor C54 acts as small battery. Similar arrangement is
done in the V Mot Supply using diodes D9, D10 and capacitor C53. This scheme
extends usable range of the fully charged battery.
2. V Mot Supply
V Mot Supply stands for motor supply. It is used to power DC motors and other heavy
loads having lots of current fluctuations. It is the nosiest supply line on the robot. It
should be used for heavy loads which requires large amount of current. This supply can
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 97
varied between 8V to 11.7V depending on the battery state and type of power source
(battery / auxiliary power) used. This line can supply additional 800mA to the external
load.
Figure 8.9: Voltage regulators on the main board
3. 5V System
5V System is used to power various modules of the robots which does not require high
current and where voltage stability is very important. It is used to power logic supply of
the ICs, sensing elements of the sensors, LCD etc. It is the most stable source of the
supply on the main board. It can source 400mA current for the external load.
4. 5V Sensor
5V Sensor is used to power the active elements of the sensors and sensor modules. Its
voltage can fluctuate by about 100mV if sensors are turned on or off. In fully loaded Fire
Bird V robot this supply should not be used to power external load having current
requirement more than 100mA.
Figure 8.10: On / off switch position
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 98
8.2.3 Current sensing
Fire Bird V robot can sense its current consumption using Hall Effect current sensor ACS712.
Figure 8.11: Current sensing in Fire Bird V
ACS712s current sensing element is located between robots ground and the battery ground.
When no current is flowing through the sensor, it gives 2.5V output. This output value reduces
by 185mV / ampere of current flow if 5 Ampere type sensor is installed. If 20 Ampere type
sensor is installed value is reduced by 100mV / ampere. This sensor is an optional accessory.
When this sensor is absent its sensing path is shorted with 0 ohm resistor.
8.2.4 Battery low indication
Figure 8.12: Battery low indication
Fire Bird V robot uses 8 cell NiMH battery. Battery is considered as fully discharged if its
voltage drops below 8V. If robot is operated while battery is low, its performance will be
inconsistent. To prevent any abnormality in the robots behavior battery low indication is used.
When robots battery voltage goes below 8V robot starts giving beeping sound.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 99
Zener diode D1 produces stable 5.1V reference irrespective of change in the battery voltage. This
voltage is buffered by unity gain opamp module IC7B. Threshold value for the battery low
warning is set by the potentiometer R92. Its value is buffered using module IC7A. Reference
voltage and voltage form the potentiometer R92 are compared and difference is amplified with
the gain of 45.45 (100K / 2.2K) in the module IC7D. Output coming from the module IC7D is
buffered with IC7C unity gain opamp and given to the transistor Q5 which drives the battery low
warning buzzer.
Figure 8.13: Various components of the power management module
8.3 Sensors
Fire Bird V robot contains many types of sensors on the main board, microcontroller adaptor
module and on the separate boards. We will cover sensors located on the microcontroller board
in the separate section.
If a sensor emits some signal and senses any object based on the reflected signal then it is known
as active sensor. If many robots in the same field are using active sensors such as Sharp IR range
sensors, IR proximity sensors or ultrasound sensors then they will interfere with the sensors of
the other robots.
To prevent this interference from occurring Fire Bird V can switch all of its active sensors on
and off. This means that many Fire Bird series robots can work in same field without causing
interference with other Fire Bird robots sensor. Many robots can synchronize when particular
sensor should be turned on or off over wireless communication using ZigBee wireless modules.
Another advantage of this facility is that robot can turn off these sensors when not in use to
conserve power.
8.3.1 Sharp IR range sensors
For accurate distance measurement, the robot uses Infrared Range sensors. Up to 5 Sharp IR
range sensors can be installed on the Fire Bird V main board. Fire Bird V supports three types of
IR range sensors from Sharp Microelectronics.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 100
GP2D120 GP2D12 GP2Y0A02YK
Figure 8.14: Sharp IR Range sensors for Fire Bird V
Sensor Range Blind Spot
GP2D120X 30cm to 20cm 4cm to 0cm
GP2D12 80cm to 10cm 10cm to 0cm
GP2Y0A02 150cm to 20cm 20cm to 0cm
Table 8.3: Sharp IR Range sensors coverage
Figure 8.15: Sharp Sensors mounted on Fire Bird V
Working of the Sharp IR range sensors is covered in detail in the section 3.8 of the chapter 3.
Sharp IR range sensor is an active sensor i.e. it emits signal (IR beam) and measures angle of
reflection for distance from the obstacle.
In order to prevent interference with other robots sensors all the sharp sensors can be turned on
or off by the microcontroller.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 101
Figure 8.16: Sharp IR range sensors
Sharp IR range sensor 1 and 5 are controlled by the MOSFET Q4. Sharp IR range sensors 2,3
and 4 are controlled by the MOSFET Q2. These sensors can be permanently enabled by putting
jumper J 3 and J 2 on the main board. In the normal case when input is less than 0.65V or there is
no input at the Pin 35 and 40 of the main boards socket, corresponding transistors T16 and T9
are off. Gate of the MOSFETs Q4 and Q2 gets 5V which drives them in to saturation and sensors
are turned on. When input voltage more then 1V is applied at the Pin 35 and 40 of the main
boards socket, corresponding transistors T16 and T9 goes in to saturation, there by grounding
gates of the MOSFETs Q4 and Q2 which turns off the MOSFETs and sensors are switched off.
Sensors Main board
socket pin
number
Logic state Jumper on the
main board to
turn on sensors
permanently
0: Sensors are turned on
Sharp IR range sensor 1,5 34
1: Sensors are turned off
J 3
0: Sensors are turned on Sharp IR range sensor 2,3,4 and LEDs of the
white line sensors (left, center, right)
40
1: Sensors are turned off
J 2
0: Sensors are turned on
IR proximity sensors 1 to 8 33
1: Sensors are turned off
J 4
Table 8.4: Sensor power control pins and jumpers
Fig 8.17: Infrared Range finder sensor and its inside view
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 102
Figure 8.18: Installing Sharp IR range sensor on the main board
Note:
MOSFET Q2 also controls the turning on / off of the red LEDs of the white line sensors.
If you are not going to switch sensors on / off using MOSFETs then corresponding
jumpers as per the table 8.4 should be shorted on to turn on sensors permanently.
Sharp GP2Y0A02 sensors body is made up of conductive plastic. Hence foam tape is
added as an insulator between the sensor and the metal strip. If This isolation is not
provided then sensor will get direct ground path and switching MOSFTT will get
bypassed which is not recommended.
8.3.2 IR Proximity and directional light intensity sensors
Infrared proximity sensors are used to detect proximity of any obstacles near the robot.
Directional light intensity sensor gives intensity of the light in particular direction. IR proximity
sensor consists of IR LED and IR photo diode. When obstacle comes within sensing range IR
photo diode detects reflected light of the IR LED. To reduce interference with ambient light
photo diode is cased in material which allows only IR light to pass. In order to eliminate
interference due to ambient light while sensing obstacle, reading should be taken while IR LED
is on and off. By comparing these two values effect of ambient light can be nullified. To detect
directional light intensity, IR LED is turned off and light intensity at photo diode is measured.
Fire Bird V has eight IR proximity sensors. IR LEDs of all these sensors can be turned on and off
by MOSFET Q3. To turn on IR LEDs permanently J 4 needs to be shorted. Refer to table 8.4 for
more details. MOSFET operates in a same way as explained in section 8.3.1.
In the absence of the obstacle there is no reflected light hence no leakage current will flow
through the photo diode and output voltage will be around 5V. As obstacle comes nearer, more
light gets reflected and falls on the photo diode and leakage current flowing through the photo
diode starts to increase and voltage across the diode starts to fall.
When IR proximity sensors used in conjunction with Sharp IR Range sensors, IR proximity
sensors covers sensing range in which Sharp IR Range sensors have blind spot. IR proximity
sensors working together with Sharp IR range sensors covers range from 0 to maximum range of
the Sharp IR sensor without having any blind spot.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 103
Figure 8.19: IR Proximity sensors
Figure 8.20: IR Proximity sensor positions
8.3.4 Sharp IR range sensors and IR proximity sensor status indicator and jumpers
Figure 8.22 shows jumpers and corresponding MOSFETs used to turn on / off the sensors.
Figure 8.23 shows the LEDs which indicates the status of the sensors.
Figure 8.21: Sensor Control Switches and Jumpers
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 104
Name Function
J 1 LCD Backlight Enable/Disable
J 2 Front Sharp and White line sensors Enable/Disable
J 3 Side Sharp Sensors Enable/Disable
J 4 IR Proximity(TCRT) Sensors Enable/Disable
M2 Front Sharp and White Line Sensors MOSFET
M3 IR Proximity (TCRT) MOSFET
M4 Side Sharp MOSFET
Table 8.5 Jumper functions
Figure 8.22: Sensor status indicator LEDs
8.3.4 White line sensors
White line sensor consists of a highly directional phototransistor for line sensing and red LED
for illumination. Due to the directional nature of the phototransistor it does not get affected with
ambient light unless it is very bright.
Figure 8.23: Schematic of white line sensor
White line sensor consists of ultra bright red LED and highly directional phototransistor. Ultra
bright red LED illuminates the ground surface and the highly directional phototransistor senses
the reflected light from very small surface. White line sensor can be calibrated for different types
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 105
of operating conditions by adjusting the light intensity of the red LEDs. This can be done by
tuning potentiometers R65 (left white line sensor), R57 (center white line sensor), R55 (right
white line sensor). 100 ohms resistors which are in the series of the potentiometers R65, R57 and
R55 protect red LEDs from the excess of current if potentiometers tuned to 0 ohms.
Potentiometers are factory set for the best performance. There values should not be changed
unless required. LEDs are powered by 5V sensor supply while photo transistors are powered by
5V system supply for better stability. Resistors R48, R23 and R28 determine the sensitivity of
the phototransistor. By repeated experimentations we found 100K ohms as the optimal value for
best performance in all the conditions.
Figure 8.24: Potentiometers for white line sensor calibration
Figure 8.25: White line sensor pin connections
Figure 8.26: White line extension to mount 5 or 7 channel white line sensor
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 106
Pin No. Function
1,2 White line sensor 1 (Left sensor) Data Out
3,4 White line sensor 2 (Centre sensor) Data Out
5,6 White line sensor 3 (Right Sensor) Data Out
7,8 White line sensor 1 LED
9,10 White line sensor 2 LED
11,12 White line sensor 3 LED
13,14 System Supply, 5V
15,16 LED common cathode
17,18 GND
19,20 Sensor Supply, 5V
21 Expansion slot for White line sensor 5
22 Expansion slot for White line sensor 4
23 Expansion slot for White line sensor 6
24 Expansion slot for White line sensor 7
Table 8.6: White line sensor pin connections
In the default condition Fire Bird V is interface with the 3 channel white sensor. Robot can also
be easily interfaced with the 5 or 7 channel white line sensors. In the 3 channel white line sensor
20 pin FRC connector is used. To make support for 5 or 7 channel white line sensors 26 pin FRC
connector needs to be added. In the figure 8.23 and figure 8.26, pins Z2-1 to Z2-4 are used for
connecting additional 4 white line sensors. Figure 8.26 shows the location of these pins on the
main board.
8.3.5 Other sensors
Fire Bird V robot have many more sensors such as current sensor, position encoders, TSOP1738
IR receiver, Voltage sensing and lots of add-on sensors which will be covered in the different
topics in the manual.
8.4 Actuation (locomotion)
Fire Bird V robot has four motion control ports. Figure 8.30 shows the location of the required
ports. Each Port can drive one DC motor and also provides connections for the position encoder.
Motor is driven by L293D motor driver IC. Each IC can drive two DC motors with maximum
current rating of 500 mA. Fire Bird Vs main board has two L293D ICs.
5V system supply is used for driving L293Ds logic circuits. V Batt Mot is used to supply
power for motor driving. C22 C25 and C29 C32 is used for noise suppression.
Optical encoder MOC7811 is used for position encoder on the robot. It consists of IR LED and
the photo transistor mounted in front of each other separated by a slot in the casing. When IR
light falls on the photo transistor it gets in to saturation and gives logic 0 as the output. In the
absence of the IR light it gives logic 1 as output. A slotted encoder disc which is mounted on the
wheel is placed in between the slot. When encoder disc rotates it cuts IR illumination alternately
because of which photo transistor gives square pulse train as output. Output from the position
encoder is cleaned using Schmitt trigger based inverter (not gate) IC CD40106.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 107
Logic signals to drive the two L293D comes from the pins 47 to 55 and pins 66 to 68. Logic
level on the pins 47 to 55 can be seen on the bar graph LED display on the main board. Figure
8.32 shows the connections of pins from the main board socket in general.
Figure 8.27: Schematic of the motion control module
If you want to drive bigger robot using Fire Bird V main board then L293D motor drivers on the
main board can not provide sufficient power. In such case we can use drive high power motor
drivers such as Hercules 30 Amp. Mini Motor Driver (NR-MDR-02) from NEX Robotics for
driving these motors. Figure 8.30 shows the location of the external motor interface port. All the
logic signals coming from the pin 47 to 55 and ground pin is connected to this port. User can
solder 20 pin FRC connector and interface these pins to the external motor drivers. Up to 3
Hercules 30 Amp. Mini Motor Driver (NR-MDR-02) can be interface with this port. Logic state
on these pins can be observed on the bar graph LED display.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 108
Figure 8.28: DC geared motors and position encoders
Figure 8.29: Position encoder assembly
Figure 8.30: Motion control connections on the main board
Connector Name Description
L Left motor connector 1
R Right motor connector 2
C1 C1 motor connector
C2 C2 motor connector
External Motor
Interface Port
Logic signals of pins 47 to 55 of the main board socket for interfacing external high
current motor drivers
Table 8.7: Use of connectors of the motion control module
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 109
Pin
No.
Motor and encoder
module wire colors
Function
1 Black VCC, 5V System
2 Brown Position Encoder data
3 Red NC
4 Orange GND
5 Yellow Motor 2
6 Green Motor 1
Table 8.8: Motor drive port pin connections
Figure 8.31: L293D motor driver ICs on the main board
Figure 8.32: Motion status LED indication
Figure 8.33: Motion status LED indication for ATMEGA2560 microcontroller adaptor
board for Fire Bird V
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 110
Figure 8.34: Hercules 30 Amp. Mini Motor Driver (NR-MDR-02) for driving high power
motors
8.5 Other peripherals
8.5.1 LCD
Figure 8.35: LCD display schematics
Figure 8.36: LCD socket and other settings
LCD is interfaced to the pins 22 to 28 of the main board socket. LCD uses 5V System supply for
its operation. For LCD backlight V Battery supply is used. Figure 8.36 shows LCD backlight
jumper and LCD contrast control potentiometer. In order to save power LCD backlight can be
turned off by removing LCD backlight jumper. LCDs contrast can be adjusted by LCD contrast
control potentiometer.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 111
Figure 8.37: LCD interfacing with the ATMEGA2560 microcontroller adaptor board
Microcontroller LCD PINS Description
VCC
VCC Supply voltage (5V).
GND
GND Ground
P2.4
E (Control line) Enable
P2.5
-R/W (Control line) -READ /WRITE
P2.6
RS (Control line) Resistor select
P2.0 to P2.3
D4 to D7 (Data lines) Bidirectional Data Bus
LED+, LED- Backlight control
Table 8.9: LCD pin mapping with the ATMEGA2560 microcontroller adaptor board
8.5.2 Buzzer
Figure 8.38: Buzzer
Buzzer is driven by BC548 transistor. Resistor R40 of 100K is used to keep transistor off if the
input pin is floating. Buzzer will get turned on if input voltage is greater than 0.65V.
8.5.3 SPI expansion port on the main board
SPI expansion port will be used in future to add robotic arm, color sensing sensors etc. It has SPI
communication pins and important types supply for powering these devices. Port can be seen in
figure 8.5.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 112
Figure 8.39: SPI expansion port pin functions
8.6 Communication
8.6.1 Serial communication
Serial ports pin 2, 3 and 5 are connected with the main board socket. Other pins of the serial
port are also available on the main board. Figure 8.40 shows the serial port connections on the
main board and table 8.9 gives the pin functions of the each pin.
Figure 8.40: Serial port pins
Figure 8.41: Serial port connections with the main board socket
Pin No. Description Comments
1 Data Carrier Detect (DCD) Not Used
2 Receiver Data (RXD) Used
3 Transmit Data (TXD) Used
4 Data Terminal Ready (DTR) Not Used
5 Signal Ground (GND) Used
6 Data Set Ready (DSR) Not Used
7 Request to Send (RTS) Not Used
8 Clear to Send (CTS) Not Used
9 Ring Indicator (RI) Not Used
Table 8.10: Serial port pin out
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 113
8.6.2 USB communication
Fire Bird Vs main board have USB port. All its pins are connected to the main board socket.
Figure 8.42: USB port connections with the main board socket
8.6.3 ZigBee wireless communication
Fire Bird V uses XBee wireless modules form Digi international (www.digi.com). LEDs W1,
W2, W3 and W4 are used for status indication of the wireless module. Read the wireless
modules datasheet for more details.
Figure 8.43: ZigBee wireless module schematics
Figure 8.44: ZigBee wireless module and LED indicators
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 114
LED
Connection to Xbee Wireless
module Pin no.
Description
W1 13 On/Sleep Module Status
W2 15 Associate LED
W3 17 Reserved
W4 6 RX Signal Strength Indicator
Table 8.11: ZigBee LED Description
8.7 ATMEGA2560 microcontroller adaptor board
Figure 8.45: ATMEGA2560 microcontroller adaptor board
8.7.1 Power management
Power management block on the ATMEGA2560 microcontroller adapter board provides power
to the microcontroller and other devices and the power for the servo motor.
ATMEGA2560 microcontroller adapter board has two low drop voltage regulators:
1. 5V uC supplies power to the microcontroller and its peripherals.
2. 5V servo supplies power to the servo motor.
Figure 8.46 Power Supply Circuit
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 115
8.7.2 Battery voltage sensing
Filtered battery voltage is used for battery voltage sensing. Analog to Digital Converter (ADC)
can measure maximum voltage of 5V. Hence battery voltage is scaled down from 8-15V to less
than 5V using resistor divider network formed by R12 and R13. It scales down the voltage by
approximately 1/3 of the actual value.
ATMEGA2560 ADC has 8 bit resolution. Hence to calculate voltage from the ADCs digital
value we use following formula:
V Battery =0.7V +(ADC value * (5V/255) * ((10K +3.3K) / 3.3K))
V Battery =0.7V +(ADC value * 0.0790)
In the above formula:
0.7V represents voltage drop across the diodes D7 and D8. Refer to figure 8.9 for more
details.
5V/255 represents the ADC step resolution
(10K +3.3K) / 3.3K is a voltage divider formula
Figure 8.47 Battery Voltage Divider Bias Circuit
8.7.3 TSOP1738 RC5 IR receiver and decoder
TSOP1738 is an IR receiver and RC5 decoder. It is very commonly used in televisions for
receiving commands from the remote control. It can be used to control robot using TV remote
control or many robots can be controlled simultaneously if you make your own TV remote
equivalent and interface it with the PC. Such type of setup can be used in the preliminary form of
robo-soccer. SJ 2 J umper needs to be connected by soldering for enabling the TSOP sensor.
Figure 8.48 TSOP1738
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 116
Figure 8.49: Jumper to be shorted to connect TSOP1738 with INT7 (shorted jumper is
shown in the right image)
8.7.4 ATMEGA2560 Microcontroller Board Expansion Socket
ATMEGA2560 is a featur rich microcontroller with lots of available I/O ports. Many of the
ports are available on the uC Expansion Socket. Table 8.12 lists the connection details of all the
pins of the socket.
Fig 8.50: Expansion Header on Microcontroller Board
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 117
Figure: 8.51 ATMEGA2560 microcontroller board expansion socket schematic
Pin No. Pin Name Function
1 TXD2 UART2 TXD pin of ATMEGA2560 via J umper 1
2 RXD2 UART2 RXD pin of ATMEGA2560 via J umper 1
3 ATMEGA2560 INT7 ATMEGA2560 interrupt 7 pin
4 ATMEGA2560 OC4B/PH4
5 ATMEGA2560 OC4C/PH5
6 ATMEGA2560 PH6
Expansion slots for servo control
7 TDI
8 TCK
9 TDO
10 TMS
ATMEGA2560 J TAG port
11 ATMEGA2560 SS ATMEGA2560 Slave Select pin
12 No Connections
13 MOSI
14 SCK
15 RESET
16 MISO
ATMEGA2560 ISP/SPI port
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 118
17 ATMEGA2560 PL7
18 ATMEGA2560 PL6
Expansion slots for Servo motor control
19 ATMEGA2560 PD1/INT1 ATMEGA2560 interrupt 1 pin
20 ATMEGA2560 PD0/INT0 ATMEGA2560 interrupt 0 pin
21 5V (VSYS) 5V System Voltage. Can be used for powering up any
digital device. Current Limit: 400mA.
22 5V (VSYS) 5V System Voltage. Can be used for powering up any
digital device. Current Limit: 400mA.
23 GROUND Ground
24 GROUND Ground
25 ATMEGA2560 PD4
26 ATMEGA2560 PH7
27 ATMEGA2560 PL1
28 ATMEGA2560 PL0
29 ATMEGA2560
PD5/XCK1
30 ATMEGA2560 PL2
31 ATMEGA2560 PG1
32 ATMEGA2560 PG0
33 ATMEGA2560 PD6
34 ATMEGA2560 PD7
Expansion Slots For Servo Control
35
36
No Connections
37 TXD1 UART1 TX pin of ATMEGA2560
38 RXD1 UART1 RX pin of ATMEGA2560
39 ATMEGA2560 PJ 6
40 ATMEGA2560 PJ 7
41 ATMEGA2560 PJ 4
42 ATMEGA2560 PJ 5
43 ATMEGA2560 PJ 2
44 ATMEGA2560 PJ 3
45 ATMEGA2560 PJ 0/RXD3
46 ATMEGA2560 PJ 1/TXD3
Expansion slots for servo control
47
48
49
50
51
52
53
54
55
56
No Connections
Table 8.12: ATMEGA2560 microcontroller board expansion header table
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 119
8.7.5 SERVO POD Socket
Fig 8.52: Servo Pod Socket
Figure 8.53 Servo pod pin mapping
Pin No. Pin Name Description
1
2
Servo POD1 Connection with ATMEGA2560 ADC channel 14
3
4
Servo POD2 Connection with ATMEGA2560 ADC channel 15
5
6
GPIO Connection with ATMEGA2560 OC2A/PB4 pin (Pin no. 23)
7
8
Atmega8 ADC Connection with ATMEGA8 ADC channel 1
9
10
Atmega8 ADC Connection with ATMEGA8 ADC channel 3
11
12
Ground Ground
13
14
V SYS +5V (VCC)
15
16
V BATT Battery Voltage(9V 11V)
Table 8.13: Servo Pod socket pin description
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 120
8.7.6 Microcontroller Board Jumpers
Figure 8.54: Jumpers schematic
Microcontroller board has 4 jumpers labeled from J 1 to J 4 as shown in Figure 8.45 and figure
8.53.
J1: J umper J 1 is used to select between the UART2 pins connections of ATMEGA2560 on the
expansion slot and to the onboard USB driver circuit. When jumper is in position as shown in the
figure 8.53 below, it enables the onboard USB communication through UART2 (default state).
J2: When J 2 is on IR Proximity sensors 1 to 4 are connected to the ADC pins of the
ATMEGA2560. When J 2 is open, same ADC pins can be used for J TAG on the uC expainsion
socket. In the default state J 2 is on.
J3: If J 3 is on, all the pins of the PORT J are connected to the LED bargraph display. It can be
used for quick message display for debug purpose. If J 3 is off LED connection is disabled. All
the pins of the PORT J are available on the uC expainsion socket for use as GPIOs. In the default
state J 3 is kept on.
J4: When J 4 is on, SPI connection between ATMEGA2560 (master) and ATMEGA8 (slave)
enabled. Since SPI lines are connected together ISP programming of ATMEGA2560 and
ATMEGA8 can not be done. When J 4 is off, Communication between ATMEGA2560 and
ATMEGA8 is disabled and ISP programming of ATMEGA2560 and ATMEGA8 can be done.
In the default condition J 4 is kept open.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 121
In System Programming (ISP) sockets
Figure 8.55 ISP Schematic
ATMEGA2560 microcontroller adapter board has ISP sockets for the ATMEGA2560 and
ATMEGA8 microcontrollers.
Note: To do In System Programming of ATMEGA2560 and ATMEGA8 microcontrollers
jumper J 4 must be absent. For more details refer to section 8.7.6.
8.7.8 FT232 USB to serial converter on UART 2 of the ATMEGA2560 microcontroller
FT232 IC is a TTL/RS232 converter. It is used for onboard USB communication socket. With
onboard USB circuit Fire Bird V can communicate serially with the PC through USB port
without the use of any external USB to Serial converter. The USBD- and USBD+pins are
connected to USB socket on the main board. TX and RX LEDs are the indicator LEDs situated
near the FT232 IC. Refer to figure 8.45 for LED locations. To enable USB to serial
communication jumper J 1 should be configured in a particular way. Refer to section 8.7.6 for
correct jumper settings.
Figure 8.56 FT232 Schematic
8.7.9 TTL to RS232 converter on UART 1 of the ATMEGA2560 microcontroller
MAX202 IC is used for conversion of the TTL level signal of the UART 1 to the RS232 level. It
is connected to the DB9 female serial connector on the main board.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 122
Figure 8.57: MAX202 TTL to RS232 converter
8.7.10 REF5050 precision reference voltage generator
ATMEGA2560 microcontrollers ADC channels require external stable voltage reference. In the
default state microcontroller uses 5V uC Supply as a external reference voltage. In case if you
want to interface microcontroller with the sensors where precision is very important then
REF5050 external reference generator can be added on the microcontroller board. In the default
state voltage reference is directly taken from 5V uC supply by connecting pins 2 and 1 of jum
per SJ 1. To connect REF5050 with the microcontroller, pins 1 and 2 needs to be unsoldered and
pins 2 and 3 needs to be shorted.
Figure.8.58: REF5050 Schematic
Figure 8.59: Left- Jumper shorted to use 5V uC as A Ref. Right- REF5050 is installed and
jumper shorted to use its 5V output as reference.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 123
8.7.11 Interrupt Switch
Interrupt switch on the microcontroller adaptor board is connected to PE7 (INT7) pin of the
microcontroller. It has external 10K pullup resistor. When switch is pressed, PE7 becomes logic
low.
Figure 8.60 Interrupt switch
8.7.12 Servo Connectors
The microcontroller board has three Servo connectors as shown in figure 8.45. It can be used for
driving servo motors of camera pod or any other attachment. Power for the servo connector is
provided by the 5V servo supply regulator.
Figure: 8.61 Servo Connectors Schematic
8.7.13 Position Encoder LEDs
These LEDs are used to display the pulses coming from the left, right and C1 motor connectors.
In the default configuration Motor C1 is absent, hence input of the CD40106 schmitt trigger
inverting buffer is floating. Because of the floating input its LED might flicker some times.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 124
Figure 8.62: Encoder LEDs Schematic
8.7.14 Bargraph LED display
Bargraph LED display is used for quick debugging purpose. It is connected to the PORTJ of the
ATMEGA2560 microcontroller. To enable bargraph jumper J 3 needs to be connected. For more
details refer to the section 8.7.6.
Figure 8.63: LED BAR GRAPH Schematic
8.7.15 ATMEGA8 Slave Microcontroller
Fire Bird V robot can be interfaced with more than 30 sensors at the same time. ATMEGA2560
does not have sufficient number of ADC available of sensor interfacing. Hence ATMEGA8
microcontroller is connected with ATMEGA2560 microcontroller over the SPI port. J umper J 4
needs to be removed before attempting to do ISP with ATMEGA2560 and ATMEGA8 as there
SPI lines are connected with the jumper J 4. For more details on the jumpers, refer to the section
8.7.6.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 125
Figure 8.64: ATMEGA8 SCHEMATIC
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 126
8.7.16 ATMEGA2560 Microcontroller
ATMEGA2560 is interfaced directly to almost all the onboard peripherals. Its schematic is
shown in the figure 8.65.
Figure 8.65: ATMEGA2560 microcontroller schematic
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 127
9. Assembling the Robot and its Accessories
Figure 9.1: Fire Bird V ATMEGA2560 robot and its accessories
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 128
Figure 9.2: Fire Bird V main board
Figure 9.3: Mounting the ZigBee wireless module
Mount the ZigBee wireless module in the proper orientation
You might have to configure ZigBee wireless module to the appropriate settings using USB
wireless module and X-CTU software.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 129
Figure 9.4: Set jumpers as per the requirements (refer to chapter 8 for more details)
Figure 9.5: LCD mounting
Be carefule while inserting LCD connector pins into the socket on the main board. Screw
in the LCD firmly on the studs.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 130
Figure 9.6: Microcontroller adapter board mounting
Do not apply unnecessary pressure onto the PCB while inserting into the connectors on
the main board. Check for any bent pins before inserting the PCB. Mount 3 screws on the
microcontroller board.
Figure 9.7: Installing Sharp IR range sensor on the main board
Do not press down upon the sharp sensors to fit them into the socket. The screw
connections are provided so as to hold the sensors firmly in place.
Fire Bird V ATMEGA2560 Hardware Manual
NEX Robotics Pvt. Ltd. and ERTS Lab IIT Bombay, INDIA 131
Figure 9.8: Install top acrylic plate