MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 1 VJEC CHEMPERI
CHAPTER-1
INTRODUCTION
Many of us think of the Internet as a global community. But two-thirds
of the world’s population does not yet have Internet access. Our project is a
network of balloons traveling on the edge of space, designed to connect people in
rural and remote areas, help fill coverage gaps, and bring people back online after
disasters. The ‘Ultra Stable Flying Robo’ project is to create a small, cost
effective and highly stable autonomous flying robot that can be used both indoors
and outdoors under any weather conditions. Also it is easy to provide
unidirectional communications like Television radio etc. As the range from
receiver and transponder is less also better clarity and better reception can be
achieved with least error rates in the communication.
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 2 VJEC CHEMPERI
CHAPTER-2
FLOATING SYSTEM
The floating system of this project is a balloon having 8ft in diameter. This
is a super pressure balloon filled with Helium (He). This balloon is in circular
shape. The word super pressure means that volume of the balloon will not
increase with height. Legs of the floating system are attached to the balloon.
There will be eight legs of 2 meter in length. These legs are equidistant from one
another when attached to the balloon. Movement on this legs are made using
servo motors. All the electronic components are attached at the bottom of the
balloon.
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 3 VJEC CHEMPERI
Fig 2.1 Floating system
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 4 VJEC CHEMPERI
2.1 SYSTEM WORKING
Our system is designed in such a way that weight of the system will be
zero at a particular height. In this project, we are designed such a way that weight
of the system at 1000 feet will be zero. There will be a shift in position of the
balloon due to wind, gravitational force etc. This movement is compensated by
the motion of legs. Initially the system will be in rest at a particular height. At this
stage intermittent flaps are necessary to maintain the system stable. There will be
a shift in position mainly due to the effect of wind and gravity. This shift in
position is compensated by the movement of legs. The legs can be operated
individually so that movement of system in any direction can be achieved. From
the ground we will give command through RF signal. From the balloon, we get
GPS co-ordinates through the RF module in the balloon. Both ground station and
balloon will have each RF modules for communication. The range of
communication is 1.2km.
.
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 5 VJEC CHEMPERI
Fig 2.2 system overview
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 6 VJEC CHEMPERI
Fig 2.3 System overview
Our floating system consists of 6 legs. Each leg is attached to each servo
motor. When the motor rotates, wings will generate to and fro motion. This
motion is used to keep the system stable at a particular GPS co-ordinate.
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 7 VJEC CHEMPERI
CHAPTER-3
BLOCK DIAGRAM
Signals to/from GND
FIG.3.1 CIRCUITRY BLOCK DIAGRAM: FLOATING SYSTEM
ARDUINO-1
MOTORS
GPS
XBee
ARDUINO-2
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 8 VJEC CHEMPERI
BLOCK DIAGRAM EXPLANATION
The block diagram consists of mainly:-
1.Arduino
2.Xbee Shield
3.Xbee
4.GPS
5.Motors
3.1 Arduino UNO
Arduino is a microcontroller platform that can be used to control almost
any electronic device/equipment. The Arduino board actually is a specially
designed circuit board for programming and prototyping with Atmel
microcontrollers. Arduino board is relatively cheap, plugs straight into a
computer’s USB port, and it is dead simple to setup. Arduino/Genuino Uno is a
microcontroller board based on the ATmega328P. It has 14 digital input/output
pins (of which 6 can be used as PWM outputs), 6 analog inputs,16MHz quartz
crystal, a USB connection, a power jack, an ICSP header and a reset button.
It contains everything needed to support the microcontroller; simply connect
it to a computer with a USB cable or power it with an AC-to- DC adapter or
battery to get started.
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 9 VJEC CHEMPERI
Fig 3.2 Arduino UNO
"Uno" means one in Italian and was chosen to mark the release of Arduino
Software (IDE) 1.0.The Uno board and version 1.0 of Arduino Software
(IDE) were the reference versions of Arduino, now evolved to newer releases.
The Uno board is the first in a series of USB Arduino boards, and the reference
model for the Arduino platform; for an extensive list of current, past or outdated
boards see the Arduino index of boards. It is using C programming language but
it has a lot of available libraries that makes the programming very easy. It has
its own IDE( Integrated Development Environment) and compiler that is free.
There is no need for an external programmer to program the Arduino (such as
pickit3 for PIC microcontrollers).
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 10 VJEC CHEMPERI
V
3.3.1 Technical specifications
3.3.2. Programming
The ATmega328 on the Arduino/Genuino Uno comes pre-programmed with
a bootloader that allows to upload new code to it without the use of an external
hardware programmer. It communicates using the original STK500 protocol. The
Arduino/Genuino Uno has a resettable polyfuse that protects computer's USB
The Arduino/Genuino Uno can be programmed with the ports from shorts
and overcurrent. If more than 500 mA is applied to the USB port, the fuse will
automatically break the connection until the short or overload is removed.
Microcontroller ATmega328P
Operating Voltage 5V
Input Voltage
(recommended)
7-12V
Input Voltage (limit) 6-20V
Digital I/O Pins 14
PWM Digital I/O Pins 6
Analog Input Pins 6
DC Current per I/O Pin 20 Ma
DC Current for 3.3V Pin 50 Ma
Flash Memory 32 KB
SRAM 2 KB
EEPROM 1 KB
Clock Speed 16 MHz
Length 68.6 mm
Width 53.4 mm
Weight 25 g
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 11 VJEC CHEMPERI
3.3.3 Differences with other boards
The Uno differs from all preceding boards in that it does not use the FTDI
USB-to-serial driver chip. Instead, it features the Atmega16U2 (Atmega8U2 up
to version R2) programmed as a USB-to-serial converter. The Arduino/Genuino
Uno board can be powered via the USB connection or with an external
power supply. The power source is selected automatically. External (non-USB)
power can come either from an AC-to DC adapter (wall-wart) or battery. The
adapter can be connected by plugging a 2.1mm center-positive plug into the
board's power jack. Leads from a battery can be inserted in the GND and Vin pin
headers of the POWER connector. The board can operate on an external supply
from 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply
less than five volts and the board may become unstable. If using more than 12V,
the voltage regulator may overheat and damage the board. The recommended
range is 7 to 12 volts.
The power pins are as follows:
Vin:- The input voltage to the Arduino/Genuino board when it's using an
external power source (as opposed to 5 v from the USB connection or other
regulated power source).
5V:-This pin outputs a regulated 5V from the regulator on the board. The board
can be supplied with power either from the DC power jack (7 - 12V), the USB
connector (5V), or the VIN pin of the board (7-12V). Supplying voltage via the
5V or 3.3V pins bypasses the regulator, and can damage the board.
3.3V:- A 3.3 volt supply generated by the on-board regulator Maximumcurrent
drawn is 50 mA.
GND:- Ground pins.
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 12 VJEC CHEMPERI
IOREF:-This pin on the Arduino/Genuino board provides the voltage
reference with which the microcontroller operates. A properly configure shield
can read the IOREF pin voltage and select the appropriate power source or
enable voltage translators on the outputs to work with the 5V or 3.3V.
3.3.4. Memory
The ATmega328 has 32 KB(with 0.5KBoccupied by the boot loader). It also
has 2 KB of SRAM and 1 KB of EEPROM.
3.3.5 Communication
Arduino/Genuino Uno has a number of facilities for communicating with a
computer, another Arduino/Genuino board, or other microcontrollers. The
ATmega328 provides UART TTL(5V) serial communication, which is available
on digital pins 0 (RX) and 1 (TX). An ATmega16U2 on the board channels this
serial communication over USB and appears as a virtual com port to
software on the computer. The 16U2 firmware uses the standard USB COM
drivers, and no external driver is needed. However, on Windows, a .inf file is
required. The Arduino Software (IDE) includes a serial monitor which
allows simple textual data to be sent to and from the board. The RX and TX LEDs
on the board will flash when data is being transmitted via the USB-to-serial chip
and USB connection to the computer (but not for serial communication
on pins 0 and 1) A Software Serial library allows serial communication on
any of the Uno's digital pins. The ATmega328 also supports I2C (TWI) and
SPI communication. The Arduino Software (IDE) includes a Wire library to
simplify use of the I2C bus. For SPI communication, the SPI library is used.
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 13 VJEC CHEMPERI
3.3.6 Automatic (Software) Reset
Rather than requiring a physical press of the reset button before an upload,
the Arduino/Genuino Uno board is designed in a way that allows it to be reset
by software running on a connected computer. One of the hardware flow control
lines (DTR) of the ATmega8U2/16U2 is connected to the reset line of the
ATmega328 via a 100 nano farad capacitor. When this line is asserted (taken
low),the reset line drops long enough to reset the chip. The Arduino Software
(IDE) uses this capability to allow you to upload code by simply pressing the
upload button in the interface toolbar. This means that the boot loader can have
a shorter timeout, as the lowering of DTR can be well-coordinated with the
start of the upload. This setup has other implications. When the Uno is
connected to either a computer running Mac OS X or Linux, it resets each time
a connection is made to it from software (via USB). For the following half-
second or so, the bootloader is running on the Uno. While it is programmed to
ignore malformed data (i.e. anything besides an upload of new code), it will
intercept the first few bytes of data sent to the board after a connection is
opened. The Uno board contains a trace that can be cut to disable the auto-
reset. The pads on either side of the trace can be soldered together to re-enable
it. It's labeled "RESET-EN".
Some of the key features of the Arduino Uno include:
An open source design: The advantage of it being open source is that it has a
large community of people using and troubleshooting it. This makes it easy to
someone to help debugging projects.
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 14 VJEC CHEMPERI
An easy USB interface: The chip on the board plugs straight into USB port
and registers on computer as a virtual serial port. This allows to interface with
it as through it were a serial device. The benefit of this setup is that serial
communication is an extremely easy (and time-tested) protocol, and USB makes
connecting it to modern computers really convenient.The very convenient power
management and built-in voltage regulations : An external power source of up
to 12V can be connected and it will regulate the both 5V and 3.3V. It also
can be powered directly off of a USB port withoutany external power. Arduino
is an open-source prototyping platform based on easy-to-use ardware and
software. It is flexible, offers variety of analog and digital inputs SPI and seriel
interface and digital and PWM outputs. In our project Arduino’s are used to
control varies devices. There are 3 Arduino’s used in our project. In the base
station one Arduino is used to connect to the Xbee module. On the other hand
other two Arduino’s are connected in floating system with Xbee and GPS
respectively.Between the arduino’s serial communication is established. The
need of two arduino is we are not able to connect GPS and Xbee modules directly
to one arduino.
4.2 XBee Module
Digi International XBee®&XBee-PRO® ZB ZigBee® RF modules provide
cost-effective wireless connectivity to devices in ZigBee mesh networks. They
are interoperable with other ZigBee and ZigBee PRO feature set devices. These
modules require no configuration or additional development. Users can have their
network up and running in a matter of minutes. Programmable versions of the
XBee-PRO ZB ZigBee and the SMT ZigBee modules make customizing ZigBee
applications easy, even without wireless design expertise. All of these modules
also include iDigi Manager Pro, a feature of all Digi cellular gateways, routers,
devices, and components. iDigi Manager Pro provides a robust suite of network
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 15 VJEC CHEMPERI
management tools including authentication, configuration management, account
management, asynchronous updates and alerts, group and individual software
updating, network data storage, and gateway programming. With iDigi Manager
Pro.Network managers can remotely configure, upgrade, monitor, and
troubleshoot remote devices, and create applications that improve productivity,
speed, and efficiency. Programmable versions of XBee-PRO ZB and XBee-PRO
ZB SMT modules make customizing ZigBee applications easy. Programming
directly on the module eliminates the need for a separate processor. Because the
wireless software is isolated, applications can be developed with no risk to RF
performance or security,
4.2.1 Features & Benefits
 Interoperability with ZigBee compliant devices No configuration needed
for out-of-the-box RF communications Common XBee footprint for a
variety of RF modules
 ZigBee mesh networking protocol
 Improved data traffic management
 Remote firmware updates
 Self-healing and discovery for network stability
 Programmable versions of the XBee-PRO ZB enable custom
ZigBee application development
 8-bit Freescale™ S08 microprocessor brings intelligence to
devices
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 16 VJEC CHEMPERI
XBee 802.15.4 RF modules provide OEMs with a common footprint shared by
multiple platforms, including multipoint and ZigBee/Mesh topologies, and both
2.4 GHz and 900 MHz solutions. OEMs deploying the XBee can substitute one
XBee for another, depending upon dynamic application needs, with minimal
development, reduced risk and shorter time-to market. XBee 802.15.4 RF
modules are ideal for applications requiring low latency and predictable
communication timing. Providing quick, robust communication in point-to-point,
peer-to-peer, and multipoint/star configurations, XBee 802.15.4 products
XBEE® 802.15.4 RF MODULES enable robust end-point connectivity with
ease. Whether deployed as a pure cable replacement for simple serial
communication, or maximise module performance and ease of development.
XBee 802.15.4 modules seamlessly interface with compatible gateways, device
adapters and range extenders, providing developers with true beyond-the-horizon
connectivity.
Fig 3.3 XBee module
Shields are boards that can be plugged on the top of the Arduino PCB
extending it’s capabilities. Every Arduino shield must have the same form-factor
as the standard Arduino. Power and ground pins on one eight (previously six) pin
header, and analog pins on a six-pin header next to that. Digital pins cover the
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 17 VJEC CHEMPERI
other edge on the other side, an eight-pin header separated from a 10-pin. Some
shields also require a connection to the Arduino’s ICSP header (the 2x3
programming header on the end). The Xbee shield allows an Arduino board to
communicate wirelessly using Zigbee. The module can communicate up to 100
feet indoors or 300 feet outdoors (with line-of-sight). It can be used as a
serial/parallel placement or you can put it into a command mode and configure it
for a variety of broadcast and mesh networking options.
XBee and XBee-PRO ZigBee RF modules provide cost-effective wireless
connectivity to electronic devices. They are interoperable with other ZigBee PRO
feature set devices, including devices from other vendors. XBee and XBee-PRO
ZigBee modules are ideal for applications in the energy and controls markets
where manufacturing efficiencies are critical. The Serial Peripheral Interface
(SPI) provides a high-speed interface and optimizes integration with embedded
microcontrollers, lowering development costs and reducing time to market.
Features like binding and multicasting also allow are features. XBee modules are
used in the base station to communicate with flying system to give commands.
Also balloon communicate with base station to give current GPS position.
5.3 XBee shield
XBee radios are an awesome way to add wireless capability to your Arduino
project and now it’s even easier with the SparkFun XBee Shield. The shield form-
factor mates directly with any dev board that has an Arduino standard footprint
and equips it with wireless communication capabilities using the popular XBee
module. This unit works with all XBee modules including the Series 1 and 2,
standard and Pro versions.The serial pins (DIN and DOUT) of the XBee are
connected through an SPDT switch, which allows you to select a connection to
either the UART pins (D0, D1) or any digital pins on the Arduino (D2 and D3
default). Power taken from the 5V pin of the Arduino and is regulated on-board
to 3.3V DC before being supplied to the XBee. The shield also takes care of level
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 18 VJEC CHEMPERI
shifting on the DIN and DOUT pins of the XBee. In the latest revision the diode
level shifter is replaced with a more robust MOSFET level shifter. The board also
includes LEDs to indicate power and activity on DIN, DOUT, RSSI, and DIO5
pins of the XBee. The Arduino’s reset button is brought out on the shield, and a
9x11 grid of 0.1" holes are available for prototyping. The shield does not come
with headers installed.
5.3.1 Features:
 Mounts directly onto your Arduino
 DIN and DOUT pins of XBee can be connected to either the UART pins or
any digital pin on the Arduino (D2 and D3 default)
 3.3V power regulation and MOSFET level shifting on-board
 9x11 grid of 0.1" spaced prototyping holes
 Reset button brought out to shield
 Power, DIN, DOUT, RSSI and DIO5 indicator LED
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 19 VJEC CHEMPERI
6.4 GPS
FIG3.4.GPSshield
With this GPS Shield populated with GPS module from rhydoLABZ you can
add GPS functionality to your Arduino or you can receive the NMEA data on
your PC/Laptop with a easiness of sliding a switch. A footprints for popularEM-
406 GPS receiver, EM-408,PA4 GPS and EB-85A connectors are also made
available (connectors are not soldered on or included ). This GPS shield is based
on the latest Arduino R3 Layout with additional pins and is compatible to latest
Arduino DUE which requires 3V3 as well as all other Arduinos and clones @
5V.There is an board level converter for this purpose level conversion is achieved
by 3 state buffer IC and MOSFET Level converter instead of normal Resistive
voltage devider. The DPDT switch (SW1) switches the GPS module's
input/output between Arduino's and USB Transceiver so as to get NMEA data
on PC via USB connector on ARDUINO board. This feature help you to verify
the GPS data and test its functionalities before doing and coding on arduino. Apart
from this an onboard PCB jumper is provided at the bottom of PCB to select the
Digital UART or Software UART on ARDUINO. Power to the GPS module is
taken from Arduino board throgh 3v3 LDO Voltage Regulator. Finally, the
Arduino reset switch is also brought out at the PCB for your easy access.
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 20 VJEC CHEMPERI
6.4.1 Features:
 Compatible with all Arduinos including latest Arduino Due
 On-board A6B GPS Receiver
 Can be used as GPS development board
 Mounts directly onto your Arduinos
 Selectable level Shifting (5V & 3V3)
 3.3V power regulation and level shifting on-board
 Reset button brought out
 Power, RXD, TXD, 3DFix indicator LEDs
 EM-406 Footprint and Filter caps on board
 EM-408 Footprint and Filter caps on board
 EB-85A Footprint and Filter caps on board
 Arduino R3 sized shield - Suitable for present and future arduinos as
well.
 Arduino reset button
With this GPS Shield populated with GPS module from rhydoLABZ you can
add GPS functionality to Arduino or we can receive the NMEA data on your
PC/Laptop with a easiness of sliding a switch. A footprints for popular EM-406
GPS receiver, EM-408,PA4 GPS and EB-85A connectors are also made
available. This GPS shield is based on the latest Arduino R3 Layout with
additional pins and is compatible to latest Arduino DUE which requires 3V as
well as all other Arduinos and clones @ 5V. GPS modules are attached on the
flying system to fix the flying system in a specific GPS co-ordinate. Base station
could give new co-ordinates which causes the system to move to new coordinate.
From base station, we could analyses the position of balloon using GPS.
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 21 VJEC CHEMPERI
7.5 Motors:
Servo motors (or servos) are self-contained electric devices that rotate or
push parts of a machine with great precision. The simplicity of a servo is among
the features that make them so reliable. The heart of a servo is a small direct
current (DC) motor, similar to what you might find in an inexpensive toy. These
motors run on electricity from a battery and spin at high RPM (rotations per
minute) but put out very low torque (a twisting force used to do work— you
apply torque when you open a jar). An arrangement of gears takes the high speed
of the motor and slows it down while at the same time increasing the torque. A
tiny electric motor does not have much torque, but it can spin really fast (small
force, big distance). The gear design inside the servo case converts the output to
a much slower rotation speed but with more torque (big force, little distance). The
amount of actual work is the same, just more useful. Gears in an inexpensive
servo motor are generally made of plastic to keep it lighter and less costly.
Fig 3.5 Servo Motor
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 22 VJEC CHEMPERI
8 individual motors are connected to the individual legs of the flying system.
These motors used to move legs individually. Rotation of the motors helps the
system to stabilize in the air. Motor rotation also causes bring the system to
specific co-ordinates.
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 23 VJEC CHEMPERI
CHAPTER-4
CIRCUIT DIAGRAM
Flying End Connections
GPS
XBEE
Uno - 1
Uno - 2 M
6 Servos Connected to 6 PWM Channels
4.5V
6
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 24 VJEC CHEMPERI
4.1 CIRCUIT DIAGRAM DESCRIPTION
Circuit diagram consist of 2 arduino boards, Xbee module GPS module and
motors. GPS module is connected to 1st
Arduino board. The TXD and RXD
pins of arduino connected to TX and RX pins of GPS module. Data from 1st
arduino board connected serially with 2nd
arduino board. ADC5 and ADC4 of 1st
arduino is connected to same two pins 2nd
arduino. Motors, Xbee modules are
connected to 2nd arduino board. Motors are connected IO9.Txt and Rxr pins of
GPS module are connected to pin 0 and 1 of 1st
arduino board. This data is serially
connected to 2nd
arduino. Txt and Rxr pins of Xbee module are connected to 0
and 1 of 2nd
arduino. Pulse signals for motors are taken from pin 9 (IO9) of 2nd
arduino. GPS co-ordinates from GPS module are send to 1st
arduino. This data is
taken serially by 2nd
arduino and send through RF signal by Xbee module. This
same Xbee module is used to receive commands from base station. Based on this
command,2nd
arduino board will run the motors attached to it. For servo motors,
pulse signals are required to run it. This pulse signal are obtained from pin 9 (IO9)
of 2nd
arduino board.
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 25 VJEC CHEMPERI
CHAPTER-5
FLOW CHART
Start
InitializeServoMotors
InitializetheGPS&X–Bee
Modules
WaitForthe
Commands
B
C
Yes
No
InBalloonSystem
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 26 VJEC CHEMPERI
GetDirection
Commands
GetCurrentLocation
fromGPS
B
Auto/
Manual
Mode/
Stop
AutoMode)&Co( -Ordinates ManualMode&Directions
RotateServoMotors
GetDestinationCo-
ordinatesFromX-bee
B
Stop
C
StopServoMotors
RotateServoMotors
GetCurrentLocation
E
D
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 27 VJEC CHEMPERI
E
D
IsCurrentLocation
issameasthe
Received
Location?
No
Yes
SendLocation
SendLocation
C
FloatMode
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 28 VJEC CHEMPERI
CHAPTER-6
PROGRAM
#include <Wire.h>
#include <Servo.h>
Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
Servo myservo6;
intpos = 0;
int command = 0;
intgps_en = 0;
void setup() {
myservo1.attach(3);
myservo2.attach(5);
myservo3.attach(6);
myservo4.attach(9);
myservo5.attach(10);
myservo6.attach(11);
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 29 VJEC CHEMPERI
int a = 10;
Wire.begin(8); // join i2c bus with address #8
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
}
void loop() {
delay(1);
if (Serial.available() > 0) {
// read the incoming byte:
int command = Serial.read();
Serial.write(command);
if (command == '0')// 2. stop hands = 0
{
stop_hands();
}
else if (command == '1') // 7. Stay Here = 1
{
stay_here();
}
else if (command == '2') //4. Move backward = 2
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 30 VJEC CHEMPERI
{
move_back();
}
else if (command == '4') // 5. Move left = 4
{
move_left();
}
else if (command == '5') // 8. Move Up = 5
{
move_up();
}
else if (command == '6') // 6. Move right = 6
{
move_right();
}
else if (command == '8') // 3. Move forward = 8
{
move_forward();
}
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 31 VJEC CHEMPERI
else if (command == '9')// gps disable / enable
{
gps_en = 1;
Serial.println(gps_en);
}
else if (command == '3')
{
gps_en = 0;
Serial.println(gps_en);
}
else
{
Serial.write("Command Not Recognised");
}
}
command = 12;
}
voidrun_normal()
{
for (pos = 0; pos<= 80; pos += 1) { // goes from 0 degrees to 180 degrees
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 32 VJEC CHEMPERI
// in steps of 1 degree
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo2.write(pos);
myservo3.write(pos);
myservo4.write(pos);
myservo5.write(pos);
myservo6.write(pos);
delay(10); // waits 15ms for the servo to reach the position
}
delay(670);
for (pos = 80; pos>= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo2.write(pos);
myservo3.write(pos);
myservo4.write(pos);
myservo5.write(pos);
myservo6.write(pos);
delay(10); // waits 15ms for the servo to reach the position
}
delay(550);
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 33 VJEC CHEMPERI
}
void fastest()
{
for (pos = 0; pos<= 80; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo2.write(pos);
myservo3.write(pos);
myservo4.write(pos);
myservo5.write(pos);
myservo6.write(pos);
delay(5); // waits 15ms for the servo to reach the position
}
delay(670);
for (pos = 80; pos>= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo2.write(pos);
myservo3.write(pos);
myservo4.write(pos);
myservo5.write(pos);
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 34 VJEC CHEMPERI
myservo6.write(pos);
delay(5); // waits 15ms for the servo to reach the position
}
delay(550);
}
voidstop_hands()
{
Serial.println("Stoping Hands");
here:
myservo1.write(0); // tell servo to go to position in variable 'pos'
myservo2.write(0);
myservo3.write(0);
myservo4.write(0);
myservo5.write(0);
myservo6.write(0);
delay(500);
if (Serial.available() > 0)
goto back;
else
goto here;
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 35 VJEC CHEMPERI
back:
Serial.println("Stopped Hands and Coming down");
return;
}
voidmove_back()
{
Serial.println("Moving Backward for 4 seconds initiated");
here:
run_normal();
for(int j = 80; j <= 80; j+=1)
{
myservo4.write(j); // tell servo to go to position in variable 'pos'
myservo5.write(j);
myservo6.write(j);
delay(5);
}
delay(500);
for(int j = 80; j>=0; j-=1)
{
myservo4.write(j); // tell servo to go to position in variable 'pos'
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 36 VJEC CHEMPERI
myservo5.write(j);
myservo6.write(j);
delay(6);
}
delay(600);
if (Serial.available() > 0)
goto back;
else
goto here;
back:
Serial.println("Move Back over");
return;
}
voidmove_left()
{
Serial.println("Moving Left for 4 seconds initiated");
here:
run_normal();
for(int j = 80; j <= 80; j+=1)
{
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 37 VJEC CHEMPERI
myservo2.write(j); // tell servo to go to position in variable 'pos'
myservo3.write(j);
myservo4.write(j);
myservo5.write(j);
delay(5);
}
delay(500);
for(int j = 80; j>=0; j-=1)
{
myservo2.write(j); // tell servo to go to position in variable 'pos'
myservo3.write(j);
myservo4.write(j);
myservo5.write(j);
delay(6);
}
delay(600);
if (Serial.available() > 0)
goto back;
else
goto here;
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 38 VJEC CHEMPERI
back:
Serial.println("Move Left over");
return;
}
voidmove_right()
{
Serial.println("Moving right for 4 seconds initiated");
here:
run_normal();
for(int j = 80; j <= 80; j+=1)
{
myservo1.write(j); // tell servo to go to position in variable 'pos'
myservo2.write(j);
myservo5.write(j);
myservo6.write(j);
delay(5);
}
delay(500);
for(int j = 80; j>=0; j-=1)
{
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 39 VJEC CHEMPERI
myservo1.write(j); // tell servo to go to position in variable 'pos'
myservo2.write(j);
myservo5.write(j);
myservo6.write(j);
delay(6);
}
delay(600);
if (Serial.available() > 0)
goto back;
else
goto here;
back:
Serial.println("Move Right over");
return;
}
void move_up()
{
Serial.println("Moving up for 4 seconds initiated");
here:
fastest();
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 40 VJEC CHEMPERI
if (Serial.available() > 0)
goto back;
else
goto here;
back:
Serial.println("Move Up over");
return;
}
void move_forward()
{
Serial.println("Moving forward for 4 seconds initiated");
here:
run_normal();
for(int j = 80; j <= 80; j+=1)
{
myservo1.write(j); // tell servo to go to position in variable 'pos'
myservo2.write(j);
myservo3.write(j);
delay(5);
}
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 41 VJEC CHEMPERI
delay(500);
for(int j = 80; j>=0; j-=1)
{
myservo1.write(j); // tell servo to go to position in variable 'pos'
myservo2.write(j);
myservo3.write(j);
delay(6);
}
delay(600);
if (Serial.available() > 0)
goto back;
else
goto here;
back:
Serial.println("Move Forward over");
}
voidstay_here()
{
Serial.println("Staying initiated");
here:
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 42 VJEC CHEMPERI
run_normal();
if (Serial.available() > 0)
goto back;
else
goto here;
back:
Serial.println("Stay Sequence Interrupted");
return;
}
// function that executes whenever data is received from master
// this function is registered as an event, see setup()
voidreceiveEvent(inthowMany) {
while (1 <Wire.available()) { // loop through all but the last
chargps = Wire.read(); // receive byte as a character
if (gps_en == 1)
Serial.write(gps); // print the character
else
break;
}
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 43 VJEC CHEMPERI
int x = Wire.read(); // receive byte as an integer
Serial.println(x); // print the integer
}
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 44 VJEC CHEMPERI
CHAPTER-7
CONCLUSION
So by doing the project ‘ULTRA STABLE FLYING ROBO’ which can
be used as internet hub at rural areas for free internet points. Also it is easy to
provide unidirectional communications like Television, radio etc. As the range
from receiver and transponder is less also better clarity and better reception can
be achieved with least error rates in the communication. Incorporating of laser
and RF communication will be a great achievement today. Thus the device can
be implemented like lowest distant earth wireless points at desired orbits.
MINIPROJECT 2015 ULTRA STABLE FLYING ROBO
DEPT. OF ECE 45 VJEC CHEMPERI
CHAPTER-8
BIBLIOGRAPHY
 Arduino website: http//www. Arduino.cc/
 Robort Electronics: http//www,robort-electronics .co.uk/
 www.instructables.com
 www.intorobotics.com
 www.sparkfun.com

More Related Content

PDF
Aircraft Anti collision system using ZIGBEE Communication
PPTX
Where buy arduino robomart
PPTX
Arduino
PPTX
Lcd with arduino uno
DOCX
Arduino windows remote control
PDF
Bluetooth Module HC-06
PDF
Xtrem n p1960t
PPTX
Buy arduino uno in bulk by robomart
Aircraft Anti collision system using ZIGBEE Communication
Where buy arduino robomart
Arduino
Lcd with arduino uno
Arduino windows remote control
Bluetooth Module HC-06
Xtrem n p1960t
Buy arduino uno in bulk by robomart

What's hot (20)

PPTX
Basics of open source embedded development board (
PPTX
PPTX
Arduino 習作工坊 - Lesson 1 燈光之夜
PDF
Arduino uno
ODP
Robotics and Arduino (Arduino UNO)
PPTX
Arduino UNO R3 Projects - Robomart
PPTX
Arduino uno
PPT
PPTX
Buy arduino locally by Robomart
ODP
Multipilot pres-ufficiale last 2
ODP
Multipilot pres-ufficiale alpago 2011
PDF
Arduino arduino boardnano
PDF
Music easel-operation-manual-2nd-ed
PPT
Important
PPTX
Cell Phone Operated Robot
PDF
Arduino arduino boarduno
PPTX
Arduino Microcontroller
PPT
ARDUINO AND ITS PIN CONFIGURATION
PPTX
Basics of open source embedded development board (
Arduino 習作工坊 - Lesson 1 燈光之夜
Arduino uno
Robotics and Arduino (Arduino UNO)
Arduino UNO R3 Projects - Robomart
Arduino uno
Buy arduino locally by Robomart
Multipilot pres-ufficiale last 2
Multipilot pres-ufficiale alpago 2011
Arduino arduino boardnano
Music easel-operation-manual-2nd-ed
Important
Cell Phone Operated Robot
Arduino arduino boarduno
Arduino Microcontroller
ARDUINO AND ITS PIN CONFIGURATION
Ad

Similar to Full details of implementation of flying internet balloon (20)

PDF
Office automation system using arduino
PDF
Education Documantary
PDF
IOT BASED HEALTH MONITORING SYSTEM.pdf
PDF
Arduino Uno
PDF
Digital home automation with arduino bluetooth
DOCX
Touch Switch (Smart Switches) by arduino Project report file
PDF
Arduino a000066-datasheet
DOCX
The arduino uno is a microcontroller board based on the
DOCX
Wireless E-Notice Board Using Bluetooth Report.docx
PDF
IRJET- Android based Home Automation System with Power Optimization Modes
PDF
Automatic Enable and Disable Speed Breaker
PDF
HOME AUTOMATION SYSTEM USING IOT TECHNOLOGY.pdf
PPTX
Summer training project
PDF
Ht usb5130-v2
PDF
Adding Remote Controller Functionality To Any Stereo
PDF
IRJET- Speaking Microcontroller for Deaf and Dumb People
DOCX
water level edit.docx
PDF
Animatronic hand controller
PDF
IRJET- Automated Elevator-An Attentive Elevator to Elevate using Speech Recog...
PDF
Project report on home automation using Arduino
Office automation system using arduino
Education Documantary
IOT BASED HEALTH MONITORING SYSTEM.pdf
Arduino Uno
Digital home automation with arduino bluetooth
Touch Switch (Smart Switches) by arduino Project report file
Arduino a000066-datasheet
The arduino uno is a microcontroller board based on the
Wireless E-Notice Board Using Bluetooth Report.docx
IRJET- Android based Home Automation System with Power Optimization Modes
Automatic Enable and Disable Speed Breaker
HOME AUTOMATION SYSTEM USING IOT TECHNOLOGY.pdf
Summer training project
Ht usb5130-v2
Adding Remote Controller Functionality To Any Stereo
IRJET- Speaking Microcontroller for Deaf and Dumb People
water level edit.docx
Animatronic hand controller
IRJET- Automated Elevator-An Attentive Elevator to Elevate using Speech Recog...
Project report on home automation using Arduino
Ad

Recently uploaded (20)

PDF
Visual Aids for Exploratory Data Analysis.pdf
PDF
August -2025_Top10 Read_Articles_ijait.pdf
PPTX
Current and future trends in Computer Vision.pptx
PPTX
"Array and Linked List in Data Structures with Types, Operations, Implementat...
PDF
Categorization of Factors Affecting Classification Algorithms Selection
PPTX
Fundamentals of safety and accident prevention -final (1).pptx
PPTX
CyberSecurity Mobile and Wireless Devices
PPTX
communication and presentation skills 01
PDF
Abrasive, erosive and cavitation wear.pdf
PPT
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
PPTX
Management Information system : MIS-e-Business Systems.pptx
PPTX
introduction to high performance computing
PDF
III.4.1.2_The_Space_Environment.p pdffdf
PDF
EXPLORING LEARNING ENGAGEMENT FACTORS INFLUENCING BEHAVIORAL, COGNITIVE, AND ...
PDF
Influence of Green Infrastructure on Residents’ Endorsement of the New Ecolog...
PDF
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
PPTX
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
PDF
distributed database system" (DDBS) is often used to refer to both the distri...
PDF
737-MAX_SRG.pdf student reference guides
PDF
22EC502-MICROCONTROLLER AND INTERFACING-8051 MICROCONTROLLER.pdf
Visual Aids for Exploratory Data Analysis.pdf
August -2025_Top10 Read_Articles_ijait.pdf
Current and future trends in Computer Vision.pptx
"Array and Linked List in Data Structures with Types, Operations, Implementat...
Categorization of Factors Affecting Classification Algorithms Selection
Fundamentals of safety and accident prevention -final (1).pptx
CyberSecurity Mobile and Wireless Devices
communication and presentation skills 01
Abrasive, erosive and cavitation wear.pdf
INTRODUCTION -Data Warehousing and Mining-M.Tech- VTU.ppt
Management Information system : MIS-e-Business Systems.pptx
introduction to high performance computing
III.4.1.2_The_Space_Environment.p pdffdf
EXPLORING LEARNING ENGAGEMENT FACTORS INFLUENCING BEHAVIORAL, COGNITIVE, AND ...
Influence of Green Infrastructure on Residents’ Endorsement of the New Ecolog...
UNIT no 1 INTRODUCTION TO DBMS NOTES.pdf
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
distributed database system" (DDBS) is often used to refer to both the distri...
737-MAX_SRG.pdf student reference guides
22EC502-MICROCONTROLLER AND INTERFACING-8051 MICROCONTROLLER.pdf

Full details of implementation of flying internet balloon

  • 1. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 1 VJEC CHEMPERI CHAPTER-1 INTRODUCTION Many of us think of the Internet as a global community. But two-thirds of the world’s population does not yet have Internet access. Our project is a network of balloons traveling on the edge of space, designed to connect people in rural and remote areas, help fill coverage gaps, and bring people back online after disasters. The ‘Ultra Stable Flying Robo’ project is to create a small, cost effective and highly stable autonomous flying robot that can be used both indoors and outdoors under any weather conditions. Also it is easy to provide unidirectional communications like Television radio etc. As the range from receiver and transponder is less also better clarity and better reception can be achieved with least error rates in the communication.
  • 2. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 2 VJEC CHEMPERI CHAPTER-2 FLOATING SYSTEM The floating system of this project is a balloon having 8ft in diameter. This is a super pressure balloon filled with Helium (He). This balloon is in circular shape. The word super pressure means that volume of the balloon will not increase with height. Legs of the floating system are attached to the balloon. There will be eight legs of 2 meter in length. These legs are equidistant from one another when attached to the balloon. Movement on this legs are made using servo motors. All the electronic components are attached at the bottom of the balloon.
  • 3. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 3 VJEC CHEMPERI Fig 2.1 Floating system
  • 4. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 4 VJEC CHEMPERI 2.1 SYSTEM WORKING Our system is designed in such a way that weight of the system will be zero at a particular height. In this project, we are designed such a way that weight of the system at 1000 feet will be zero. There will be a shift in position of the balloon due to wind, gravitational force etc. This movement is compensated by the motion of legs. Initially the system will be in rest at a particular height. At this stage intermittent flaps are necessary to maintain the system stable. There will be a shift in position mainly due to the effect of wind and gravity. This shift in position is compensated by the movement of legs. The legs can be operated individually so that movement of system in any direction can be achieved. From the ground we will give command through RF signal. From the balloon, we get GPS co-ordinates through the RF module in the balloon. Both ground station and balloon will have each RF modules for communication. The range of communication is 1.2km. .
  • 5. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 5 VJEC CHEMPERI Fig 2.2 system overview
  • 6. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 6 VJEC CHEMPERI Fig 2.3 System overview Our floating system consists of 6 legs. Each leg is attached to each servo motor. When the motor rotates, wings will generate to and fro motion. This motion is used to keep the system stable at a particular GPS co-ordinate.
  • 7. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 7 VJEC CHEMPERI CHAPTER-3 BLOCK DIAGRAM Signals to/from GND FIG.3.1 CIRCUITRY BLOCK DIAGRAM: FLOATING SYSTEM ARDUINO-1 MOTORS GPS XBee ARDUINO-2
  • 8. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 8 VJEC CHEMPERI BLOCK DIAGRAM EXPLANATION The block diagram consists of mainly:- 1.Arduino 2.Xbee Shield 3.Xbee 4.GPS 5.Motors 3.1 Arduino UNO Arduino is a microcontroller platform that can be used to control almost any electronic device/equipment. The Arduino board actually is a specially designed circuit board for programming and prototyping with Atmel microcontrollers. Arduino board is relatively cheap, plugs straight into a computer’s USB port, and it is dead simple to setup. Arduino/Genuino Uno is a microcontroller board based on the ATmega328P. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs,16MHz quartz crystal, a USB connection, a power jack, an ICSP header and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with an AC-to- DC adapter or battery to get started.
  • 9. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 9 VJEC CHEMPERI Fig 3.2 Arduino UNO "Uno" means one in Italian and was chosen to mark the release of Arduino Software (IDE) 1.0.The Uno board and version 1.0 of Arduino Software (IDE) were the reference versions of Arduino, now evolved to newer releases. The Uno board is the first in a series of USB Arduino boards, and the reference model for the Arduino platform; for an extensive list of current, past or outdated boards see the Arduino index of boards. It is using C programming language but it has a lot of available libraries that makes the programming very easy. It has its own IDE( Integrated Development Environment) and compiler that is free. There is no need for an external programmer to program the Arduino (such as pickit3 for PIC microcontrollers).
  • 10. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 10 VJEC CHEMPERI V 3.3.1 Technical specifications 3.3.2. Programming The ATmega328 on the Arduino/Genuino Uno comes pre-programmed with a bootloader that allows to upload new code to it without the use of an external hardware programmer. It communicates using the original STK500 protocol. The Arduino/Genuino Uno has a resettable polyfuse that protects computer's USB The Arduino/Genuino Uno can be programmed with the ports from shorts and overcurrent. If more than 500 mA is applied to the USB port, the fuse will automatically break the connection until the short or overload is removed. Microcontroller ATmega328P Operating Voltage 5V Input Voltage (recommended) 7-12V Input Voltage (limit) 6-20V Digital I/O Pins 14 PWM Digital I/O Pins 6 Analog Input Pins 6 DC Current per I/O Pin 20 Ma DC Current for 3.3V Pin 50 Ma Flash Memory 32 KB SRAM 2 KB EEPROM 1 KB Clock Speed 16 MHz Length 68.6 mm Width 53.4 mm Weight 25 g
  • 11. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 11 VJEC CHEMPERI 3.3.3 Differences with other boards The Uno differs from all preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it features the Atmega16U2 (Atmega8U2 up to version R2) programmed as a USB-to-serial converter. The Arduino/Genuino Uno board can be powered via the USB connection or with an external power supply. The power source is selected automatically. External (non-USB) power can come either from an AC-to DC adapter (wall-wart) or battery. The adapter can be connected by plugging a 2.1mm center-positive plug into the board's power jack. Leads from a battery can be inserted in the GND and Vin pin headers of the POWER connector. The board can operate on an external supply from 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may become unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts. The power pins are as follows: Vin:- The input voltage to the Arduino/Genuino board when it's using an external power source (as opposed to 5 v from the USB connection or other regulated power source). 5V:-This pin outputs a regulated 5V from the regulator on the board. The board can be supplied with power either from the DC power jack (7 - 12V), the USB connector (5V), or the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins bypasses the regulator, and can damage the board. 3.3V:- A 3.3 volt supply generated by the on-board regulator Maximumcurrent drawn is 50 mA. GND:- Ground pins.
  • 12. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 12 VJEC CHEMPERI IOREF:-This pin on the Arduino/Genuino board provides the voltage reference with which the microcontroller operates. A properly configure shield can read the IOREF pin voltage and select the appropriate power source or enable voltage translators on the outputs to work with the 5V or 3.3V. 3.3.4. Memory The ATmega328 has 32 KB(with 0.5KBoccupied by the boot loader). It also has 2 KB of SRAM and 1 KB of EEPROM. 3.3.5 Communication Arduino/Genuino Uno has a number of facilities for communicating with a computer, another Arduino/Genuino board, or other microcontrollers. The ATmega328 provides UART TTL(5V) serial communication, which is available on digital pins 0 (RX) and 1 (TX). An ATmega16U2 on the board channels this serial communication over USB and appears as a virtual com port to software on the computer. The 16U2 firmware uses the standard USB COM drivers, and no external driver is needed. However, on Windows, a .inf file is required. The Arduino Software (IDE) includes a serial monitor which allows simple textual data to be sent to and from the board. The RX and TX LEDs on the board will flash when data is being transmitted via the USB-to-serial chip and USB connection to the computer (but not for serial communication on pins 0 and 1) A Software Serial library allows serial communication on any of the Uno's digital pins. The ATmega328 also supports I2C (TWI) and SPI communication. The Arduino Software (IDE) includes a Wire library to simplify use of the I2C bus. For SPI communication, the SPI library is used.
  • 13. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 13 VJEC CHEMPERI 3.3.6 Automatic (Software) Reset Rather than requiring a physical press of the reset button before an upload, the Arduino/Genuino Uno board is designed in a way that allows it to be reset by software running on a connected computer. One of the hardware flow control lines (DTR) of the ATmega8U2/16U2 is connected to the reset line of the ATmega328 via a 100 nano farad capacitor. When this line is asserted (taken low),the reset line drops long enough to reset the chip. The Arduino Software (IDE) uses this capability to allow you to upload code by simply pressing the upload button in the interface toolbar. This means that the boot loader can have a shorter timeout, as the lowering of DTR can be well-coordinated with the start of the upload. This setup has other implications. When the Uno is connected to either a computer running Mac OS X or Linux, it resets each time a connection is made to it from software (via USB). For the following half- second or so, the bootloader is running on the Uno. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened. The Uno board contains a trace that can be cut to disable the auto- reset. The pads on either side of the trace can be soldered together to re-enable it. It's labeled "RESET-EN". Some of the key features of the Arduino Uno include: An open source design: The advantage of it being open source is that it has a large community of people using and troubleshooting it. This makes it easy to someone to help debugging projects.
  • 14. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 14 VJEC CHEMPERI An easy USB interface: The chip on the board plugs straight into USB port and registers on computer as a virtual serial port. This allows to interface with it as through it were a serial device. The benefit of this setup is that serial communication is an extremely easy (and time-tested) protocol, and USB makes connecting it to modern computers really convenient.The very convenient power management and built-in voltage regulations : An external power source of up to 12V can be connected and it will regulate the both 5V and 3.3V. It also can be powered directly off of a USB port withoutany external power. Arduino is an open-source prototyping platform based on easy-to-use ardware and software. It is flexible, offers variety of analog and digital inputs SPI and seriel interface and digital and PWM outputs. In our project Arduino’s are used to control varies devices. There are 3 Arduino’s used in our project. In the base station one Arduino is used to connect to the Xbee module. On the other hand other two Arduino’s are connected in floating system with Xbee and GPS respectively.Between the arduino’s serial communication is established. The need of two arduino is we are not able to connect GPS and Xbee modules directly to one arduino. 4.2 XBee Module Digi International XBee®&XBee-PRO® ZB ZigBee® RF modules provide cost-effective wireless connectivity to devices in ZigBee mesh networks. They are interoperable with other ZigBee and ZigBee PRO feature set devices. These modules require no configuration or additional development. Users can have their network up and running in a matter of minutes. Programmable versions of the XBee-PRO ZB ZigBee and the SMT ZigBee modules make customizing ZigBee applications easy, even without wireless design expertise. All of these modules also include iDigi Manager Pro, a feature of all Digi cellular gateways, routers, devices, and components. iDigi Manager Pro provides a robust suite of network
  • 15. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 15 VJEC CHEMPERI management tools including authentication, configuration management, account management, asynchronous updates and alerts, group and individual software updating, network data storage, and gateway programming. With iDigi Manager Pro.Network managers can remotely configure, upgrade, monitor, and troubleshoot remote devices, and create applications that improve productivity, speed, and efficiency. Programmable versions of XBee-PRO ZB and XBee-PRO ZB SMT modules make customizing ZigBee applications easy. Programming directly on the module eliminates the need for a separate processor. Because the wireless software is isolated, applications can be developed with no risk to RF performance or security, 4.2.1 Features & Benefits  Interoperability with ZigBee compliant devices No configuration needed for out-of-the-box RF communications Common XBee footprint for a variety of RF modules  ZigBee mesh networking protocol  Improved data traffic management  Remote firmware updates  Self-healing and discovery for network stability  Programmable versions of the XBee-PRO ZB enable custom ZigBee application development  8-bit Freescale™ S08 microprocessor brings intelligence to devices
  • 16. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 16 VJEC CHEMPERI XBee 802.15.4 RF modules provide OEMs with a common footprint shared by multiple platforms, including multipoint and ZigBee/Mesh topologies, and both 2.4 GHz and 900 MHz solutions. OEMs deploying the XBee can substitute one XBee for another, depending upon dynamic application needs, with minimal development, reduced risk and shorter time-to market. XBee 802.15.4 RF modules are ideal for applications requiring low latency and predictable communication timing. Providing quick, robust communication in point-to-point, peer-to-peer, and multipoint/star configurations, XBee 802.15.4 products XBEE® 802.15.4 RF MODULES enable robust end-point connectivity with ease. Whether deployed as a pure cable replacement for simple serial communication, or maximise module performance and ease of development. XBee 802.15.4 modules seamlessly interface with compatible gateways, device adapters and range extenders, providing developers with true beyond-the-horizon connectivity. Fig 3.3 XBee module Shields are boards that can be plugged on the top of the Arduino PCB extending it’s capabilities. Every Arduino shield must have the same form-factor as the standard Arduino. Power and ground pins on one eight (previously six) pin header, and analog pins on a six-pin header next to that. Digital pins cover the
  • 17. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 17 VJEC CHEMPERI other edge on the other side, an eight-pin header separated from a 10-pin. Some shields also require a connection to the Arduino’s ICSP header (the 2x3 programming header on the end). The Xbee shield allows an Arduino board to communicate wirelessly using Zigbee. The module can communicate up to 100 feet indoors or 300 feet outdoors (with line-of-sight). It can be used as a serial/parallel placement or you can put it into a command mode and configure it for a variety of broadcast and mesh networking options. XBee and XBee-PRO ZigBee RF modules provide cost-effective wireless connectivity to electronic devices. They are interoperable with other ZigBee PRO feature set devices, including devices from other vendors. XBee and XBee-PRO ZigBee modules are ideal for applications in the energy and controls markets where manufacturing efficiencies are critical. The Serial Peripheral Interface (SPI) provides a high-speed interface and optimizes integration with embedded microcontrollers, lowering development costs and reducing time to market. Features like binding and multicasting also allow are features. XBee modules are used in the base station to communicate with flying system to give commands. Also balloon communicate with base station to give current GPS position. 5.3 XBee shield XBee radios are an awesome way to add wireless capability to your Arduino project and now it’s even easier with the SparkFun XBee Shield. The shield form- factor mates directly with any dev board that has an Arduino standard footprint and equips it with wireless communication capabilities using the popular XBee module. This unit works with all XBee modules including the Series 1 and 2, standard and Pro versions.The serial pins (DIN and DOUT) of the XBee are connected through an SPDT switch, which allows you to select a connection to either the UART pins (D0, D1) or any digital pins on the Arduino (D2 and D3 default). Power taken from the 5V pin of the Arduino and is regulated on-board to 3.3V DC before being supplied to the XBee. The shield also takes care of level
  • 18. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 18 VJEC CHEMPERI shifting on the DIN and DOUT pins of the XBee. In the latest revision the diode level shifter is replaced with a more robust MOSFET level shifter. The board also includes LEDs to indicate power and activity on DIN, DOUT, RSSI, and DIO5 pins of the XBee. The Arduino’s reset button is brought out on the shield, and a 9x11 grid of 0.1" holes are available for prototyping. The shield does not come with headers installed. 5.3.1 Features:  Mounts directly onto your Arduino  DIN and DOUT pins of XBee can be connected to either the UART pins or any digital pin on the Arduino (D2 and D3 default)  3.3V power regulation and MOSFET level shifting on-board  9x11 grid of 0.1" spaced prototyping holes  Reset button brought out to shield  Power, DIN, DOUT, RSSI and DIO5 indicator LED
  • 19. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 19 VJEC CHEMPERI 6.4 GPS FIG3.4.GPSshield With this GPS Shield populated with GPS module from rhydoLABZ you can add GPS functionality to your Arduino or you can receive the NMEA data on your PC/Laptop with a easiness of sliding a switch. A footprints for popularEM- 406 GPS receiver, EM-408,PA4 GPS and EB-85A connectors are also made available (connectors are not soldered on or included ). This GPS shield is based on the latest Arduino R3 Layout with additional pins and is compatible to latest Arduino DUE which requires 3V3 as well as all other Arduinos and clones @ 5V.There is an board level converter for this purpose level conversion is achieved by 3 state buffer IC and MOSFET Level converter instead of normal Resistive voltage devider. The DPDT switch (SW1) switches the GPS module's input/output between Arduino's and USB Transceiver so as to get NMEA data on PC via USB connector on ARDUINO board. This feature help you to verify the GPS data and test its functionalities before doing and coding on arduino. Apart from this an onboard PCB jumper is provided at the bottom of PCB to select the Digital UART or Software UART on ARDUINO. Power to the GPS module is taken from Arduino board throgh 3v3 LDO Voltage Regulator. Finally, the Arduino reset switch is also brought out at the PCB for your easy access.
  • 20. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 20 VJEC CHEMPERI 6.4.1 Features:  Compatible with all Arduinos including latest Arduino Due  On-board A6B GPS Receiver  Can be used as GPS development board  Mounts directly onto your Arduinos  Selectable level Shifting (5V & 3V3)  3.3V power regulation and level shifting on-board  Reset button brought out  Power, RXD, TXD, 3DFix indicator LEDs  EM-406 Footprint and Filter caps on board  EM-408 Footprint and Filter caps on board  EB-85A Footprint and Filter caps on board  Arduino R3 sized shield - Suitable for present and future arduinos as well.  Arduino reset button With this GPS Shield populated with GPS module from rhydoLABZ you can add GPS functionality to Arduino or we can receive the NMEA data on your PC/Laptop with a easiness of sliding a switch. A footprints for popular EM-406 GPS receiver, EM-408,PA4 GPS and EB-85A connectors are also made available. This GPS shield is based on the latest Arduino R3 Layout with additional pins and is compatible to latest Arduino DUE which requires 3V as well as all other Arduinos and clones @ 5V. GPS modules are attached on the flying system to fix the flying system in a specific GPS co-ordinate. Base station could give new co-ordinates which causes the system to move to new coordinate. From base station, we could analyses the position of balloon using GPS.
  • 21. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 21 VJEC CHEMPERI 7.5 Motors: Servo motors (or servos) are self-contained electric devices that rotate or push parts of a machine with great precision. The simplicity of a servo is among the features that make them so reliable. The heart of a servo is a small direct current (DC) motor, similar to what you might find in an inexpensive toy. These motors run on electricity from a battery and spin at high RPM (rotations per minute) but put out very low torque (a twisting force used to do work— you apply torque when you open a jar). An arrangement of gears takes the high speed of the motor and slows it down while at the same time increasing the torque. A tiny electric motor does not have much torque, but it can spin really fast (small force, big distance). The gear design inside the servo case converts the output to a much slower rotation speed but with more torque (big force, little distance). The amount of actual work is the same, just more useful. Gears in an inexpensive servo motor are generally made of plastic to keep it lighter and less costly. Fig 3.5 Servo Motor
  • 22. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 22 VJEC CHEMPERI 8 individual motors are connected to the individual legs of the flying system. These motors used to move legs individually. Rotation of the motors helps the system to stabilize in the air. Motor rotation also causes bring the system to specific co-ordinates.
  • 23. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 23 VJEC CHEMPERI CHAPTER-4 CIRCUIT DIAGRAM Flying End Connections GPS XBEE Uno - 1 Uno - 2 M 6 Servos Connected to 6 PWM Channels 4.5V 6
  • 24. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 24 VJEC CHEMPERI 4.1 CIRCUIT DIAGRAM DESCRIPTION Circuit diagram consist of 2 arduino boards, Xbee module GPS module and motors. GPS module is connected to 1st Arduino board. The TXD and RXD pins of arduino connected to TX and RX pins of GPS module. Data from 1st arduino board connected serially with 2nd arduino board. ADC5 and ADC4 of 1st arduino is connected to same two pins 2nd arduino. Motors, Xbee modules are connected to 2nd arduino board. Motors are connected IO9.Txt and Rxr pins of GPS module are connected to pin 0 and 1 of 1st arduino board. This data is serially connected to 2nd arduino. Txt and Rxr pins of Xbee module are connected to 0 and 1 of 2nd arduino. Pulse signals for motors are taken from pin 9 (IO9) of 2nd arduino. GPS co-ordinates from GPS module are send to 1st arduino. This data is taken serially by 2nd arduino and send through RF signal by Xbee module. This same Xbee module is used to receive commands from base station. Based on this command,2nd arduino board will run the motors attached to it. For servo motors, pulse signals are required to run it. This pulse signal are obtained from pin 9 (IO9) of 2nd arduino board.
  • 25. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 25 VJEC CHEMPERI CHAPTER-5 FLOW CHART Start InitializeServoMotors InitializetheGPS&X–Bee Modules WaitForthe Commands B C Yes No InBalloonSystem
  • 26. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 26 VJEC CHEMPERI GetDirection Commands GetCurrentLocation fromGPS B Auto/ Manual Mode/ Stop AutoMode)&Co( -Ordinates ManualMode&Directions RotateServoMotors GetDestinationCo- ordinatesFromX-bee B Stop C StopServoMotors RotateServoMotors GetCurrentLocation E D
  • 27. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 27 VJEC CHEMPERI E D IsCurrentLocation issameasthe Received Location? No Yes SendLocation SendLocation C FloatMode
  • 28. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 28 VJEC CHEMPERI CHAPTER-6 PROGRAM #include <Wire.h> #include <Servo.h> Servo myservo1; Servo myservo2; Servo myservo3; Servo myservo4; Servo myservo5; Servo myservo6; intpos = 0; int command = 0; intgps_en = 0; void setup() { myservo1.attach(3); myservo2.attach(5); myservo3.attach(6); myservo4.attach(9); myservo5.attach(10); myservo6.attach(11);
  • 29. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 29 VJEC CHEMPERI int a = 10; Wire.begin(8); // join i2c bus with address #8 Wire.onReceive(receiveEvent); // register event Serial.begin(9600); // start serial for output } void loop() { delay(1); if (Serial.available() > 0) { // read the incoming byte: int command = Serial.read(); Serial.write(command); if (command == '0')// 2. stop hands = 0 { stop_hands(); } else if (command == '1') // 7. Stay Here = 1 { stay_here(); } else if (command == '2') //4. Move backward = 2
  • 30. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 30 VJEC CHEMPERI { move_back(); } else if (command == '4') // 5. Move left = 4 { move_left(); } else if (command == '5') // 8. Move Up = 5 { move_up(); } else if (command == '6') // 6. Move right = 6 { move_right(); } else if (command == '8') // 3. Move forward = 8 { move_forward(); }
  • 31. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 31 VJEC CHEMPERI else if (command == '9')// gps disable / enable { gps_en = 1; Serial.println(gps_en); } else if (command == '3') { gps_en = 0; Serial.println(gps_en); } else { Serial.write("Command Not Recognised"); } } command = 12; } voidrun_normal() { for (pos = 0; pos<= 80; pos += 1) { // goes from 0 degrees to 180 degrees
  • 32. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 32 VJEC CHEMPERI // in steps of 1 degree myservo1.write(pos); // tell servo to go to position in variable 'pos' myservo2.write(pos); myservo3.write(pos); myservo4.write(pos); myservo5.write(pos); myservo6.write(pos); delay(10); // waits 15ms for the servo to reach the position } delay(670); for (pos = 80; pos>= 0; pos -= 1) { // goes from 180 degrees to 0 degrees myservo1.write(pos); // tell servo to go to position in variable 'pos' myservo2.write(pos); myservo3.write(pos); myservo4.write(pos); myservo5.write(pos); myservo6.write(pos); delay(10); // waits 15ms for the servo to reach the position } delay(550);
  • 33. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 33 VJEC CHEMPERI } void fastest() { for (pos = 0; pos<= 80; pos += 1) { // goes from 0 degrees to 180 degrees // in steps of 1 degree myservo1.write(pos); // tell servo to go to position in variable 'pos' myservo2.write(pos); myservo3.write(pos); myservo4.write(pos); myservo5.write(pos); myservo6.write(pos); delay(5); // waits 15ms for the servo to reach the position } delay(670); for (pos = 80; pos>= 0; pos -= 1) { // goes from 180 degrees to 0 degrees myservo1.write(pos); // tell servo to go to position in variable 'pos' myservo2.write(pos); myservo3.write(pos); myservo4.write(pos); myservo5.write(pos);
  • 34. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 34 VJEC CHEMPERI myservo6.write(pos); delay(5); // waits 15ms for the servo to reach the position } delay(550); } voidstop_hands() { Serial.println("Stoping Hands"); here: myservo1.write(0); // tell servo to go to position in variable 'pos' myservo2.write(0); myservo3.write(0); myservo4.write(0); myservo5.write(0); myservo6.write(0); delay(500); if (Serial.available() > 0) goto back; else goto here;
  • 35. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 35 VJEC CHEMPERI back: Serial.println("Stopped Hands and Coming down"); return; } voidmove_back() { Serial.println("Moving Backward for 4 seconds initiated"); here: run_normal(); for(int j = 80; j <= 80; j+=1) { myservo4.write(j); // tell servo to go to position in variable 'pos' myservo5.write(j); myservo6.write(j); delay(5); } delay(500); for(int j = 80; j>=0; j-=1) { myservo4.write(j); // tell servo to go to position in variable 'pos'
  • 36. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 36 VJEC CHEMPERI myservo5.write(j); myservo6.write(j); delay(6); } delay(600); if (Serial.available() > 0) goto back; else goto here; back: Serial.println("Move Back over"); return; } voidmove_left() { Serial.println("Moving Left for 4 seconds initiated"); here: run_normal(); for(int j = 80; j <= 80; j+=1) {
  • 37. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 37 VJEC CHEMPERI myservo2.write(j); // tell servo to go to position in variable 'pos' myservo3.write(j); myservo4.write(j); myservo5.write(j); delay(5); } delay(500); for(int j = 80; j>=0; j-=1) { myservo2.write(j); // tell servo to go to position in variable 'pos' myservo3.write(j); myservo4.write(j); myservo5.write(j); delay(6); } delay(600); if (Serial.available() > 0) goto back; else goto here;
  • 38. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 38 VJEC CHEMPERI back: Serial.println("Move Left over"); return; } voidmove_right() { Serial.println("Moving right for 4 seconds initiated"); here: run_normal(); for(int j = 80; j <= 80; j+=1) { myservo1.write(j); // tell servo to go to position in variable 'pos' myservo2.write(j); myservo5.write(j); myservo6.write(j); delay(5); } delay(500); for(int j = 80; j>=0; j-=1) {
  • 39. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 39 VJEC CHEMPERI myservo1.write(j); // tell servo to go to position in variable 'pos' myservo2.write(j); myservo5.write(j); myservo6.write(j); delay(6); } delay(600); if (Serial.available() > 0) goto back; else goto here; back: Serial.println("Move Right over"); return; } void move_up() { Serial.println("Moving up for 4 seconds initiated"); here: fastest();
  • 40. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 40 VJEC CHEMPERI if (Serial.available() > 0) goto back; else goto here; back: Serial.println("Move Up over"); return; } void move_forward() { Serial.println("Moving forward for 4 seconds initiated"); here: run_normal(); for(int j = 80; j <= 80; j+=1) { myservo1.write(j); // tell servo to go to position in variable 'pos' myservo2.write(j); myservo3.write(j); delay(5); }
  • 41. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 41 VJEC CHEMPERI delay(500); for(int j = 80; j>=0; j-=1) { myservo1.write(j); // tell servo to go to position in variable 'pos' myservo2.write(j); myservo3.write(j); delay(6); } delay(600); if (Serial.available() > 0) goto back; else goto here; back: Serial.println("Move Forward over"); } voidstay_here() { Serial.println("Staying initiated"); here:
  • 42. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 42 VJEC CHEMPERI run_normal(); if (Serial.available() > 0) goto back; else goto here; back: Serial.println("Stay Sequence Interrupted"); return; } // function that executes whenever data is received from master // this function is registered as an event, see setup() voidreceiveEvent(inthowMany) { while (1 <Wire.available()) { // loop through all but the last chargps = Wire.read(); // receive byte as a character if (gps_en == 1) Serial.write(gps); // print the character else break; }
  • 43. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 43 VJEC CHEMPERI int x = Wire.read(); // receive byte as an integer Serial.println(x); // print the integer }
  • 44. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 44 VJEC CHEMPERI CHAPTER-7 CONCLUSION So by doing the project ‘ULTRA STABLE FLYING ROBO’ which can be used as internet hub at rural areas for free internet points. Also it is easy to provide unidirectional communications like Television, radio etc. As the range from receiver and transponder is less also better clarity and better reception can be achieved with least error rates in the communication. Incorporating of laser and RF communication will be a great achievement today. Thus the device can be implemented like lowest distant earth wireless points at desired orbits.
  • 45. MINIPROJECT 2015 ULTRA STABLE FLYING ROBO DEPT. OF ECE 45 VJEC CHEMPERI CHAPTER-8 BIBLIOGRAPHY  Arduino website: http//www. Arduino.cc/  Robort Electronics: http//www,robort-electronics .co.uk/  www.instructables.com  www.intorobotics.com  www.sparkfun.com