You are on page 1of 43

Introduction to Embedded

systems and Robotics


PREPARED AND PRESENTED BY

RAKESH MENON
HEAD DEVELOPMENT,
INTEGRATED TECHNOLOGIES

Session one:

What do
you mean
by
embedded
systems?

Why do we
go for
Embedded
computing?

Why Study
Embedded
Systems?

Embedded systems
It is a combination of hardware and
software that performs a specific task.
+
Software programs; Hardwaremicrocontroller
Is a system built to perform its duty,
completely or partially independent of
human intervention.
Interacts with physical elements in
our environment, e.g. controlling and
driving a motor, sensing temperature,
etc.

Examples..

Need for Embedded Systems:


Reduces system
Implementation

costs.

A cheap microcontroller
can replace 1000s of
logic gates and analog
circuitries.

Embedded systems are


often required to provide
Real-Time responsewhere delay in response
is a fatal error.

Producing a custommade chip to handle


a particular task or set
of tasks costs far more
time and money.

Why study embedded


rapidly growing industry with numerous growth opportunities.
systems?

About 99 percent of all computers today are embedded they


are found in cell phones, game consoles, digital cameras, cars,
airplanes, medical equipment, home appliances, robots,
etcetera.

fosters new skill sets for engineers to address the challenges of


ever-increasing device complexity coupled with reduced timeto-market requirements.

Application areas:
Energy

Industry
Consumer
Electronics

Power quality monitoring


Inverter control
Oil and gas pressure pump monitoring
Wind turbine monitoring

Industrial Robotics
Industrial Automation ( PLC, SCADA )
Machine condition monitoring

Washing Machine
Microwave Oven
DVD player

Various fields of applications

Unmanned Rover

Asimo humanoid robot

Session: 2
Components of Embedded System
Embedded hardware
Embedded Software

Arduino and robotics


Arduino board
Getting started with Arduino IDE
Building a rover

Electrical properties

Voltage
V

Define
d as

Current
I

The
rate of

Resistance
R

Current flow analogy

High Current

Low Current

Voltage Analogy
Water
Tower
Water
Tower

Resistance analogy
Water
Tower

Water
Tower

Big Pipe == Lower Resistance

Small Pipe == Higher Resistance

Embedded Hardware Architecture

Embedded Hardware
Microprocessors and microcontrollers
Microprocessor-a CPU, which just executes instructions
fetched on to it.

Microcontroller
Integrated circuit(C) = Microprocessor + peripherals
ADC
DAC
TIMERS
COUNTERS
RAM
ROM
I/O PORTS
USART
BUS PROTOCOLS
And much more..

Selection criteria for a C

Embedded software

Written to control machines or devices that are


specialized for the particularhardware.

Has time and memory constraints.

Unlike application software, embedded software has


fixed hardware requirements and capabilities

Software development requires use of across compiler,


which runs on a computer but produces executable
code for the target device

Across compileris acompilercapable of


creatingexecutablecode for a platform
other than the one on which the compiler is
running.

interpreteris acomputer programthat


directlyexecutes, i.e.performs, instructions
written in aprogrammingorscripting
language, without previouslycompiling
them into amachine languageprogram.

Arduino

Arduino is an open-source electronics platform based on easy-touse hardware and software. It's intended for anyone making
interactive projects.

Arduino senses the environment by receiving inputs from many


sensors, and affects its surroundings by controlling lights, motors,
and other actuators.

PWR IN

USB
(to Computer)

RESET
SCL\SDA
(I2C Bus)

POWER
5V / 3.3V /
GND

Analog
INPUTS

Digital I\O
PWM(3, 5, 6, 9, 10,
11)

IDE

Input/Output

Image from Theory and Practice of Tangible User Interfaces at UC Berkley

Topic 2: Digital Input/Output

Digital IO is binary valuedits


either on or of, 1 or 0

Internally, all microprocessors are


digital, why?

Arduino Digital I/0

pinMode(pin, mode)

Sets pin to either INPUT or OUTPUT

digitalRead(pin)

Reads HIGH or LOW from a pin

digitalWrite(pin, value)
Writes HIGH or LOW to a pin

Electronic stuff

Output pins can provide 40 mA of current


Writing HIGH to an input pin installs a 20K
pullup

Our First Program

Motor driver board

Pin connection diagram

motors

Finally assembled bot

Robot features

It should be a vehicle that can move forward, backwards and


turn.

It should be easy to assemble and disassemble.

It should have a mode in which it is able to move on its own,


detecting obstacles ahead and avoiding them.

It should have a mode in which it can be fully controlled from


my Android smartphone.

It should be easy to hack, change and improve.

Differential Drive control

Differential drive is a drive system in which both


motion and steering can be done by two set of
powered wheels.

In differential drive their is a LEFT wheel and


RIGHT wheels. Both are powered. It does not
requires turning of front wheel for the steering like
we steer car or bikes.

To turn the vehicle (or robo) the LEFT and RIGHT wheels are
rotated at "different" speeds. That's why its called differential
drive.

For example If the RIGHT wheels rotates faster than the LEFT
wheels then the robot will turn towards LEFT.

For this robot we will use the following rotation of wheel for the
steering and straight motion

table
Motion

LEFT Wheel

RIGHT Wheel

Forward

Counter Clockwise

Clockwise

Backward

Clockwise

Counter Clockwise

Rotate LEFT

Clockwise

Clockwise

Rotate RIGHT

Counter Clockwise

Counter Clockwise

coding

Inside void set up()

// set any 4 digitals pins as output

In void loop()

// write differential drive code

Thank you

Queries??

You might also like