Arduino Seminar Report
Arduino Seminar Report
A Training Report on
Major Training
in
Embedded Systems Design & Development
Using Arduino
From
Techoz Solution & Information Services Pvt. Ltd.
Submitted by:
CERTIFICATE
Communication Engineering, in the academic year 200 - of this institute have completed their
major training work entitled "Embedded Systems Design & Development" and submitted a
satisfactory report as a part of requirement for the award of degree of Bachelor of Engineering
from Rajiv Gandhi University, Bhopal (M.P.).
Director
Project Guide
COMPANY DETAILS
Head office
5th Floor, Malhar Mega Mall, AB Road, Indore
Phone: (+91) 9407136294
[email protected], www.techozsolutions.com
Head of Department
Organization Profile:
Development Board, Smart Witching Solutions, Home Automation Solutions, Sensor Modules &
Customized Products.
Directors Message
Techoz Wish To Stay Updated With The Latest Technical Issues, Trends And Happenings In
The Technical World. It's An Association Of Persons Sharing Technical Interests. We Endow
With The Interchange Of Ideas And Advancement Of The Technical Professions, To Broaden
The Acquaintances Of Members, And To Make The Technical Knowledge Available To All.
Chapter 1
ARDUINO
Arduino interface boards provide the engineers, artists, designers, hobbyists and anyone
who tinker with technology with a low-cost, easy-to-use technology to create their creative,
interactive objects, useful projects etc., A whole new breed of projects can now be built that can
be controlled from a computer.
1.1 WHAT IS ARDUINO?
Anyone can buy this device through online auction site or search engine. Since the Arduino
is an open-source hardware designs and create their own clones of the Arduino and sell them, so
the market for the boards is competitive. An official Arduino costs about Rs 1000.
The name Arduino is reserved by the original makers. However, clone Arduino designs often
have the letters duino on the end of their name, for example, Freeduino or DFRduino. The
software for programming your Arduino is easy to use and also freely available for Windows,
Mac, and LINUX computers at no cost.
1.1.1 Microcontroller
Microcontroller can be described as a computer embedded on a rather small circuit board.
To describe the function of a microcontroller more precisely, it is a single chip that can perform
various calculations and tasks, and send/receive signals from other devices via the available
pins. Precisely what tasks and communication with the world it does, is what is governed by
what instructions we give to the Microcontroller. It is this job of telling the chip what to do, is
what we refer to as programming on it.
However, the uC by itself, cannot accomplish much; it needs several external inputs:
power, for one; a steady clock signal, for another. Also, the job of programming it has to be
accomplished by an external circuit. So typically, a uC is used along with a circuit which
provides these things to it; this combination is called a microcontroller board. The Arduino Uno
is one such microcontroller board. The actual microcontroller at its heart is the chip called
Atmega328. The advantages that Arduino offers over other microcontroller boards are largely in
terms of reliability of the circuit hardware as well as the ease of programming and using it.
1.1.2 Open-source hardware
Open-source hardware shares much of the principles and approach of free and opensource software. The founders of Arduino wanted people to study their hardware, to understand
how it works, make changes to it, and share those changes with the world. To facilitate this, they
release all of the original design files (Eagle CAD) for the Arduino hardware. These files are
licensed under a Creative Common Attribution Share-Alike license, which allows for both
personal and commercial derivative works, as long as they (people) credit Arduino and release
their designs under the same license.
The Arduino software is also open-source. The source code for the Java environment is
released under the GPL and the C/C++ microcontroller libraries are under the LGPL
1.2 HISTORY OF ARDUINO
While teaching a physical computing class at the Interaction Design Institute Ivrea in 2005,
Massimo Banzis students were unwilling to spend the 76 euros for the BASIC Stamp
microcontrollers commonly used in such applications. Banzi and his collegues looked for
alternatives, finally settling on the wiring platform developed by one of Banzis students. In his
own words:
we started to figure out how could we make the whole platform even simpler, even cheaper,
even easier to use. And then we started to essentially re implement the whole thing as an open
source project.
Once they had a prototype, a student wrote the software that would allow wiring programs to run
on the new platform. Upon seeing the project, visiting professor Casey Reas suggested that there
might be wider applications than just design schools for the new product. The prototype was
redesigned for mass production and a test run of 200 boards was made. Orders began coming in
from other design schools and the students looking for Arduinos, and the Arduino project was
born and Massimo Banzi and David Cuartielles became its founders.ARDUINO is an Italian
word, meaning STRONG FRIEND. The English version of the name is Hardwin. As of
May 2011, more than 300,000 Arduino units are in the wild.
1.2.1 Design Goals
Since the entire project is open source, anyone can build and sell Arduino-compatible
devices. So in this sense, the Arduino project relies heavily on its branding for its financial
success. Other projects manufacture compatible and cheaper boards, however people are loyal to
the Arduino branded boards because they associate quality and a certain image to the final
product.
1.2.2.1 By the Numbers
Year
Units Sold
2005
200
2006
10 000
2010
120 000
2011
300 000
1.2.3 Competitors
Before Arduino, the largest players in the design/hobbyist market segment were the PIC
microcontroller family (made by Microchip) and the BASIC Stamp (made by Parallax). Since
the introduction of the Arduino, other large companies have tried to enter the hobbyist market,
including Texas Instruments, and even Microsoft . However, the open-sourced tools of the
Arduino and the size of its community are large barriers for new platforms to overcome.
1.2.4 Community
As the project is aimed at students and hobbyists who may not have any formal electronics
background, there are many excellent guides online covering everything from making a light
blink to creating a laser harp. The official forum has almost 60 000 registered users, and along
with helping users with their projects, is extremely active in developing new libraries to extend
the functionality of the Arduino . The open-source share and share alike sentiment is very strong,
and the vast majority of users freely publish the code to their projects.
1.3 PHYSICAL COMPUTING
Physical Computing is an approach to learn how humans communicate through computers
that starts by considering how humans express themselves physically.
Chapter 2
PLATFORM
2.1 HARDWARE
2.1.1 ARDUINO Board Layout
16 MHz
8 Kbyte Flash RAM(1K taken by the boot loader)
1 Kbyte RAM(eg.for auto/local variables and stack)
14 digital Input/Output Ports
2.1.2.2
Single
chip
transfer interface
Figure 5 ATmega8
Figure 7 ARDUINO can run off with USB or EXTERNAL power source
The power requirement for ARDUINO is 9 to 12V DC, 250mA or more, 2.1mm plug, centre pin
positive.
The
OFF-the
shelf
adapter
must
AC)
should be between
be
DC
must be rated for a minimum of 250mA current output, although you will likely want
something more like 500mA or 1A output, as it gives you the current necessary to power
Current rating: Since you'll probably be connecting other things to the Arduino (LEDs, LCDs,
servos) you should get an adapter that can supply at least 500mA, or even 1000 mA (1 ampre).
That way you can be sure you have enough juice to make each component of the circuit function
reliably.
The Arduino's on-board regulator can actually handle up to 20V or more, so you can actually use
an adapter that puts out 20V DC. The reasons you don't want to do that are twofold: you'll lose
most of that voltage in heat, which is terribly inefficient. Secondly, the nice 9V pin on the
Arduino board will actually be putting out 20V or so, which could lead to potential disaster when
you connect something expensive to what you thought
was the 9V pin. Our advice is to stick with the 9V or
12V DC adapter.
started
to
ship
with
of
theATmega168.
4. Arduino Fio:
An Arduino intended for use as a wireless node.
Has a header for an XBee radio, a connector
for
a LiPobattery,
and
battery
chargingcircuit.
5. LilyPad Arduino:
A stripped-down, circular Arduino board
designed for stitching into clothing and
other
fabric/flexible
applications.
Needs
an
that
the
board
has
no
pokey
bits
sticking
out
the
back.
8. Arduino NG Rev.C
Revision C of the Arduino NG does not have a built-in LED on pin 13 - instead you'll see
two small unused solder pads near the labels "GND" and "13". There is, however, about 1000
ohms of resistance on pin 13, so you can connect an LED without external resistor.
9. Arduino Extreme
The Arduino Extreme uses many more surface mount components than previous USB
Arduino boards and comes with female pin headers. It also has RX and TX LEDs that
indicate when data is being sent to or from the board.
10.
Arduino Mini 04
On this version of the Arduino Mini, two of the pins changed. The third pin became reset
(instead of ground) and fourth pin became ground (instead of
being unconnected). These boards are labelled "Mini 04".
Still there are ,Arduino Serial,Arduino Serial v2.0,Arduino Nano 3.0,Arduino Nano
2.x,Serverino(S3V3),Arduino Stamp 02,Mini USB adapter 03,Mini USB Adapter,Arduino
Bluetooth.
2.3.1.1 Wiring
Wiring is an open-source programming framework for microcontrollers. Wiring allows
writing cross-platform software to control devices attached to a wide range of microcontroller
boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
The framework is thoughtfully created with designers and artists in mind to encourage a
community where beginners through experts from around the world share ideas, knowledge and
their collective experience. There are thousands of students, artists, designers, researchers, and
hobbyists who use Wiring for learning, prototyping, and finished professional work production.
2.3.2 Arduino development environment(based on processing)
2.3.2.1 Processing
Processing is an open source programming language and environment for people who
want to create images, animations, and interactions. Initially developed to serve as a software
sketchbook and to teach fundamentals of computer programming within a visual context,
Processing also has evolved into a tool for generating finished professional work. Today, there
are tens of thousands of students, artists, designers, researchers, and hobbyists who use
Processing for learning, prototyping, and production.
2.3.3 Software
The software used by the arduino is Arduino IDE.
he Arduino IDE is a cross-platform application written in Java, and is derived from the IDE for
the Processing programming language and the Wiringproject. It is designed to introduce
programming to artists and other newcomers unfamiliar with software development. It includes a
code editor with features such as syntax highlighting, brace matching, and automatic indentation,
and is also capable of compiling and uploading programs to the board with a single click. There
is typically no need to edit makefiles or run programs on acommand-line interface. Although
building on command-line is possible if required with some third-party tools such as Ino.
The Arduino IDE comes with a C/C++ library called "Wiring" (from the project of the same
name), which makes many common input/output operations much easier. Arduino programs are
written in C/C++, although users only need define two functions to make a runnable program:
setup() a function run once at the start of a program that can initialize settings
Figure 10 A screenshot of the Arduino IDE showing the "Blink"program,a simple biginner
program
A typical first program for a microcontroller simply blinks a LED on and off. In the Arduino
environment, the user might write a program like this:
#define LED_PIN 13
void setup () {
pinMode (LED_PIN, OUTPUT);
}
void loop () {
digitalWrite (LED_PIN, HIGH);
delay (1000);
milliseconds)
digitalWrite (LED_PIN, LOW);
delay (1000);
}
For the above code to work correctly, the positive side of the LED must be connected to pin 13
and the negative side of the LED must be connected to ground. The above code would not be
seen by a standard C++ compiler as a valid program, so when the user clicks the "Upload to I/O
board" button in the IDE, a copy of the code is written to a temporary file with an extra include
header at the top and a very simple main() function at the bottom, to make it a valid C++
program.
The Arduino IDE uses the GNU toolchain and AVR Libc to compile programs, and
uses avrdude to upload programs to the board.
For educational purposes there is third party graphical development environment called Minibloq
available under a different open source license.
2.3.3.1 language reference
Arduino programs can be divided in three main parts: structure, values (variables and
constants), and functions.
Available datatypes in ARDUINO IDE are
void
boolean
char ( 0 255)
byte - 8 bit data ( 0 255)
int - 16-bit data (32,767 - -32,768)
long 32 bit data (2,147,483,647 to -2,147,483,648)
float
double
string - char array
String - object
array
Arithmetic operators
Arithmetic operators include addition,subtraction,multiplication and division.For math that
requires fractions,you can use float variables,if you can bear large size and slow computation
speeds in your microcontroller.
e.g. ,
y = y + 3;
x = x 7;
i = j * 6;
r = r / 5;
Comparision operators
Comparisons of one variable or constant against another are often used in if statements to test if
a specified condition is true.
e.g. ,
x == y // x is equal to y
x != y // x is not equal to y
x < y // x is less than y
Logical operators
Logical operators are usually a way to logically combine two expressions and return a TRUE or
FALSE depending on the operator.
There are three logical operators, AND, OR, and NOT.
e.g. ,
Logical AND:
if (x > 0 && x < 5) // true only if both expressions are true
Logical OR:
if (x > 0 || y > 0) // true if either expression is true
Logical NOT:
if (!x > 0) // true only if expression
TRUE/FALSE
These are Boolean constants that define logic levels of the arduino.
FALSE is easily defined as 0 (zero)
TRUE is often defined as 1, but can also be anything else except zero. So in a Boolean sense, -1,
2, and -200 are all also defined as TRUE.
e.g. ,
if (abcd== TRUE);
{
DoSomethingNice;
}
else
{
DoSomethingHorrible;
}
HIGH/LOW
These constants define pin levels as HIGH or LOW and are used when reading or writing to
digital pins.
HIGH is defined as logic level 1, ON, or 5 volts
LOW is logic level 0, OFF, or 0 volts.
e.g. ,
digitalWrite(13, HIGH);
INPUT/OUTPUT
These constants define pin levels as HIGH or LOW and are used when reading or writing to
digital pins.
HIGH is defined as logic level 1, ON, or 5 volts
LOW is logic level 0, OFF, or 0 volts
e.g. ,
pinmode(13, OUTPUT);
2.3.3.2
This app is an easy way to work through Arduino projects. With customisable codes, and a
simple to use interface, this Arduino Simulator app from Schogini Systems is a convenient
app for Arduino developers.
A screenshot of Arduino simulator is shown in the figure below
Chapter 3
APPLICATIONS OF ARDUINO
Arduino was basically designers to make the process of using electronics in
multidisciplinary projects more accessible. It is intended for artists, designers, hobbyists, and
anyone interested in creating interactive objects or environments. Arduino can sense the
environment by receiving input from a variety of sensors and can affect its surroundings by
controlling lights, motors, and other actuators. Because of these features, Arduino finds extensive
application in various fields. Arduino projects can be stand-alone or they can communicate with
software running on a computer.
ARDUINO is spreading rapidly across the globe. Arduino is actually an open source
hardware project that can be programmed to read temperatures, control a motor, and sense touch.
The Arduino is both a cute, blue micro controller platform that fits nicely in the palm of your
hand and an expanding community of developers who support it, distributed across two dozen
countries, four continents, and counting.
The Arduino board is for anyone who wants to build a basic level of intelligence into an object.
Once programmed, it can read sensors, make simple decisions, and control myriad devices in the
real world. Using it is a snap: first, hook up a few sensors and output devices to the Arduino, then
program it using the free developers software. Next, debug your code and disconnect the
Arduino. Then, the little blue Arduino becomes a standalone computer.
The original intention of the Arduino project was to see what would happen if community
support were substituted for the corporate support that is usually required for electronics
development. The first developers Massimo Banzi, David Cuartielles, David Mellis, and
Nicholas Zambetti ran a series of workshops on assembling the Arduino, giving away the
board to stimulate development.
Thousands of projects have been done worldwide using this tiny little device.some of which to
mention are:
Oscilloscope
Light harp
VU meter
Various power projects like
LCD Thermostat
Computer controlled fan
The hypnotizer
Miscellaneous Projects like
Lie detector
Magnetic door lock
Infrared remote
Lilypad binary clock
Just to name a few.as the trademark goes, there are nearly infinite possible projects
using this tiny device, which we still yet to discover
Some of the major applications are 3D printers, whose founder went out to become an
enterprenuer, and major pride came to ARDUINO, when giant firm GOOGLEs most
ambitious ANDROID, deployed ARDUINO in its new venture ANDROID OPEN
ACCESSORY DEVELOPMENT KIT. which allows external USB hardware to
interact with an Android-powered device in a special accessory mode. ANDROID
executive announced this in annual GOOGLE IO meet conference 2011.ANDROID
calls that device made of Arduino as ADK(Android development kit).
Arduino also has won annual 2012 INTERACTION AWARD sponsored by
GOOGLE, for its extensive applications in various fields.
Starter Projects: Editing and rewriting is often easier than writing from scratch. Its the
same with electronics. Its easier to mod an idea than start with a blank slate. Thats
where the Beagle Board falls short. It has virtually no example application that you can
just copy and hack to learn from, says Massimo Banzi, one of the co-founders of the
Arduino project. Its a chicken-and-egg problem for the Beagle Board. Unless there are
more example codes out there, it is difficult to draw in the audience. And without the
audience it is challenging to get enough sample projects into the community.
A Thriving Community: Arduinos popularity means its easy to get started. Companies
such as Adafruit, Spark Fun and Liquidware not only sell chips, but they also host blogs
that suggest ideas on how to use your Arduino while providing extensive project plans to
guide you in completing your creations. Will Chellman, a student who has played with
Arduino for years, says hes now experimenting with the Beagle Board. But finding
documentation and information to work off is not easy, he says. The lack of welldocumented projects done with the Beagle Board can be intimidating to new users as
well, says Banzi. Theres lots of of interesting stuff (about the Beagle Board) but it is
very technical, he wrote in a comment recently on Gadget Lab in response to the launch
of Beagle Board-XM. Banzi says Beagle Board documentation is also scattered and
fragmented. Parts of it have aged and you spend quite a bit of time jumping from wikis
to mailing list to track which specific bit of documentation applies to your board, boot
loader etc., he says.
Maturity is the key: Arduino has had a head start on the Beagle Board. By October
2008, about 50,000 Arduino boards had already been shipped. That year, the first Beagle
Boards started making their way into the hands of hardware enthusiasts. The Beagle
Board is just two years old. Since it hasnt been around long enough, theres not enough
people building apps based on it, says Chellman. Thats not to say that Beagle Board
isnt catching up. Earlier this month, we showed five projects ranging from a video wall
to the iPad of ham radios that use the Beagle Board. Theres also a build-your-own tablet
kit that is based off the Beagle Board.
REFERENCES
1. http://www.arduino.cc
2. http://en.wikipedia.org/wiki/Arduino -wikipedia
3. Jonathan Oxer,Hugh Blemings Practical Arduino-cool projects for open source hardware
4.Simon monk 30 ARDUINO PROJECTS for the EVIL GENIUS.
5. http://www.arduino.cc/playground/Projects/ArduinoUsers
6.http://www.arduinothedocumentary.org
7.http://www.google.com
8. http://www.accessories.android.com