Arduino by Example - Sample Chapter
Arduino by Example - Sample Chapter
P U B L I S H I N G
pl
C o m m u n i t y
E x p e r i e n c e
D i s t i l l e d
$ 39.99 US
25.99 UK
Sa
m
Arduino by Example
Arduino by Example
ee
Arduino by Example
Design and build fantastic projects and devices using the
Arduino platform
Preface
With the growing interest in home-made, weekend projects among students
and hobbyists alike, Arduino offers an innovative and feasible platform to create
projects that promote creativity and technological tinkering. Whether you are an
experienced programmer or a person who wants to enter the world of electronics
and do not know how to begin, this book will teach you the necessary skills that
you will need to successfully build Arduino-powered projects that have real-life
implications. Initially, you will learn how to get started with the Arduino platform.
The example-based, project-oriented setup of this book will progressively grow in
complexity to expand your knowledge. With what you will learn, you will be able to
construct your own devices.
Preface
Chapter 4, Burglar Alarm Part 1, introduces the reader to using PIR sensors or
motion sensors, implementing a remote camera with Arduino, and linking the
Arduino to a smart phone. Additionally, the reader will learn about Python
and how it interfaces with Arduino.
Chapter 5, Burglar Alarm Part 2, combines the elements learned in the preceding
project with a project that uses a sensor to detect motion at an entry point, which
triggers a security camera to take the intruder's photo via Bluetooth and sends that
image to your smart phone.
Chapter 6, Home Automation Part 1, follows the sophisticated security system's
path. This chapter involves connecting the Arduino to the Wi-Fi network using
an electro-magnetic switch called a relay to control an electric appliance and
communicating to it using Telnet.
Chapter 7, Home Automation Part 2, uses the Arduino to create a simple home
automation system operating within the bounds of the Wi-Fi that would allow
the user to control an appliance using a computer, smart phone, and their voice.
Chapter 8, Robot Dog Part 1, revolves around building a four-legged robot
dog from scratch. This part teaches you about the Arduino MEGA board, servos,
and stand-alone power requirements for the board.
Chapter 9, Robot Dog Part 2, involves using household items to build the chassis of
the dog and then completing the circuit using the Arduino MEGA board and a lot of
servos. This is where the bulk of the actual construction of the robot dog lies.
Chapter 10, Robot Dog Part 3, acts as the icing on the cake. The reader will finally
finish building the robot and will learn to calibrate and teach (program) the robot to
stand, walk, and play. Also, finally, speech recognition will be implemented so that
the dog can actually listen to the user.
Prerequisites
Setting up
Hello World
Summary
Prerequisites
Well, you can't jump onto a horse without putting on a saddle first, can you? This
section will cover what components you need to start coding on an Arduino. These
can be purchased from your favorite electrical hobby store or simply ordered online.
[1]
Materials needed
1x USB cable A to B
2x LEDs
2x 330 resistors
A mini breadboard
Note
The UNO can be substituted for any other Arduino board (Mega, Leonardo, and so
on) for most of the projects. These boards have their own extra features. For example,
the Mega has almost double the number of I/O (input/output) pins for added
functionality. The Leonardo has a feature that enables it to control the keyboard and
mouse of your computer.
Setting up
This topic involves downloading the Arduino software, installing the drivers,
hooking up the Arduino, and understanding the IDE menus.
[2]
Chapter 1
Windows
Once you have downloaded the setup file, run it. If it asks for administrator privileges,
allow it. Install it in its default location (C:\Program Files\Arduino or C:\Program
Files (x86)\Arduino). Create a new folder in this location and rename it My Codes
or something where you can conveniently store all your programs.
Mac OS X
Once the ZIP file has finished downloading, double-click to expand it. Copy the
Arduino application to the Applications folder. You won't have to install additional
drivers to make the Arduino work since we will be using only the Arduino UNO and
MEGA throughout the book. You're all set.
If you didn't get anything to work, go to https://www.arduino.cc/en/guide/
macOSX.
If you are using a different version of Linux, this official Arduino walkthrough at
http://playground.arduino.cc/Learning/Linux will help you out.
[3]
If the LEDs didn't turn on, ensure that the USB port on your computer is functioning
and make sure the cable isn't faulty. If it still does not light up, there is something
wrong with your board and you should get it checked.
Windows
The computer will begin to install the drivers for the Arduino by itself. If it does not
succeed, do the following:
1. Open Device Manager.
2. Click on Ports (COM & LPT).
3. Right-click on Unknown Device and select Properties.
4. Click on Install Driver and choose browse files on the computer.
5. Choose the drivers folder in the previously installed Arduino folder.
The computer should say that your Arduino UNO (USB) has been successfully
installed on COM port (xx). Here xx refers to a single or double digit number.
If this message didn't pop up, go back to the Device Manager and check if it has
been installed under COM ports.
Remember the (COMxx) port that the Arduino UNO was installed on.
[4]
Chapter 1
Mac OS X
If you are using Mac OS, a dialog box will tell you that a new network interface
has been detected. Click Network Preferences and select Apply. Even though the
Arduino board may show up as Not Configured, it should be working perfectly.
Linux
You are ready to go.
The serial ports for Mac OS and Linux will be obtained once the Arduino software
has been launched.
Arduino IDE
[5]
This is the window that you will see when you first start up the IDE. The tick/
check mark verifies that your code's syntax is correct. The arrow pointing right is the
button that uploads the code to the board and checks if the code has been changed
since the last upload or verification. The magnifying glass is the Serial Monitor. This
is used to input text or output debugging statements or sensor values.
Examples of Arduino
[6]
Chapter 1
All Arduino programmers start by using one of these examples. Even after mastering
Arduino, you will still return here to find examples to use.
Arduino tools
The screenshot shows the tools that are available in the Arduino IDE. The Board
option opens up all the different boards that the software supports.
Hello World
The easiest way to start working with Arduinos begins here. You'll learn how
to output print statements. The Arduino uses a Serial Monitor for displaying
information such as print statements, sensor data, and the like. This is a very
powerful tool for debugging long codes. Now for your first code!
[7]
Open Tools | Board and choose Arduino UNO, as shown in the following
screenshot:
[8]
Chapter 1
Open Tools | Port and choose the appropriate port (remember the previous COM
xx number? select that), as shown in the following screenshot. For Mac and Linux
users, once you have connected the Arduino board, going to Tools | Serial Port
will give you a list of ports. The Arduino is typically something like /dev/tty.
usbmodem12345 where 12345 will be different.
Finally, hit the Upload button. If everything is fine, the LEDs on the Arduino should
start flickering as the code is uploaded to the Arduino. The code will then have
uploaded to the Arduino.
To see what you have accomplished, click on the Serial Monitor button on the right
side and switch the baud rate on the Serial Monitor window to 9600.
You should see your message Hello World! waiting for you there.
[9]
LED blink
That wasn't too bad but it isn't cool enough. This little section will enlighten
you, literally.
Open up a new sketch.
Go to File | Examples | 01. Basics | Blink.
Blink example
[ 10 ]
Chapter 1
Before we upload the code, we need to make sure of one more thing. Remember
the LED that we spoke about in the prerequisites? Let's learn a bit about it before
plugging it in, as shown in the following image:
LED basics
We will make use of it now. Plug in the LED such that the longer leg goes into pin 13
and the shorter leg goes into the GND pin, as in the following:
[ 11 ]
Upload the code. Your LED will start blinking, as shown in the following image.
A lit up LED
[ 12 ]
Chapter 1
Isn't it just fascinating? You just programmed your first hardware. There's no
stopping you now. Before advancing to the next chapter, let's see what the code does
and what happens when you change it.
This is the blink example code that you just used:
/*
Blink
Turns on an LED on for one second, then off for one second,
repeatedly.
This example code is in the public domain.
*/
//Pin 13 has an LED connected on most Arduino boards.
//give it a name:
int led = 13;
//the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
//the loop routine runs over
void loop() {
digitalWrite(led, HIGH);
level)
delay(1000);
digitalWrite(led, LOW);
LOW
delay(1000);
}
We have three major sections in this code. This format will be used for most of the
projects in the book.
int led = 13;
This line simply stores the numerical PIN value onto a variable called led.
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
[ 13 ]
This is the setup function. Here is where you tell the Arduino what is connected on
each used pin. In this case, we tell the Arduino that there is an output device (LED)
on pin 13.
void loop() {
digitalWrite(led, HIGH);
level)
delay(1000);
digitalWrite(led, LOW);
LOW
delay(1000);
}
This is the loop function. It tells the Arduino to keep repeating whatever is inside it
in a sequence. The digitalWrite command is like a switch that can be turned ON
(HIGH) or OFF (LOW). The delay(1000) function simply makes the Arduino wait for a
second before heading to the next line.
If you wanted to add another LED, you'd need some additional tools and some
changes to the code. This is the setup that you want to create.
[ 14 ]
Chapter 1
If this is your first time using a breadboard, take some time to make sure all the
connections are in the right place. The colors of the wires don't matter. However,
GND is denoted using a black wire and VCC/5V/PWR is denoted with a red wire.
The two resistors, each connected in series (acting like a connecting wire itself) with
the LEDs, limit the current flowing to the LEDs, making sure they don't blow up.
As before, create a new sketch and paste in the following code:
/*
Double Blink
Turns on and off two LEDs alternatively for one second each
repeatedly.
This example code is in the public domain.
*/
int led1 = 12;
int led2 = 13;
void setup() {
// initialize the digital pins as an output.
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
// turn off LEDs before loop begins
digitalWrite(led1, LOW);
// turn the LED off (LOW is the voltage
level)
digitalWrite(led2, LOW);
// turn the LED off (LOW is the voltage
level)
}
//the loop routine
void loop() {
digitalWrite(led1,
level)
digitalWrite(led2,
level)
delay(1000);
digitalWrite(led1,
level)
digitalWrite(led2,
level)
delay(1000);
}
LOW);
LOW);
HIGH);
[ 15 ]
Once again, make sure the connections are made properly, especially the positive
LEDs (the longer one to OUTPUT PIN) and the negative (the shorter to the GND)
terminals. Save the code as DoubleBlink.ino. Now, if you make any changes to it,
you can always retrieve the backup.
Upload the code. 3 2 1 And there you have it, an alternating LED blink cycle
created purely with the Arduino. You can try changing the delay to see its effects.
For the sake of completeness, I would like to mention that you could take
this mini-project further by using a battery to power the system and decorate
your desk/room/house. More on how to power the Arduino will be covered in
subsequent chapters.
Summary
You have now completed the basic introduction to the world of Arduino. In short,
you have successfully set up your Arduino and have written your first code. You
also learned how to modify the existing code to create something new, making it
more suitable for your specific needs. This methodology will be applied repeatedly
while programming, because almost all the code available is open source and it saves
time and energy.
In the next chapter, we will look into sensors and displays. You will build a digital
ruler that you can use to measure short distances. It will consist of an ultrasound
sensor to compute distance and a small LCD screen to display it. Additionally, we
will look at safely powering the Arduino board using a battery so that you are not
dependent on your computer for USB power every time.
[ 16 ]
www.PacktPub.com
Stay Connected: