0% found this document useful (0 votes)
1 views21 pages

Iot Unit-Iv-B

The document provides an overview of the Raspberry Pi, a low-cost mini-computer designed for educational purposes, capable of running various Linux distributions and interfacing with sensors and actuators. It discusses the development environment, including recommended operating systems and programming languages like Python, as well as debugging techniques. Additionally, it compares the Raspberry Pi with other devices like the BeagleBone Black, highlighting their differences in design and intended use.

Uploaded by

raju
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
1 views21 pages

Iot Unit-Iv-B

The document provides an overview of the Raspberry Pi, a low-cost mini-computer designed for educational purposes, capable of running various Linux distributions and interfacing with sensors and actuators. It discusses the development environment, including recommended operating systems and programming languages like Python, as well as debugging techniques. Additionally, it compares the Raspberry Pi with other devices like the BeagleBone Black, highlighting their differences in design and intended use.

Uploaded by

raju
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 21

UNIT-IV

Raspberry
Pi
Outline

• Raspberry Pi
• Developing on The Raspberry Pi
• Operating system
• Programming Raspberry Pi
• Debugging
RASPBERRY PI

The Raspberry Pi, unlike the Arduino, wasn’t designed for physicalcomputing at
all, but rather, for education.

The vision of Eben Upton, trustee and cofounder of the Raspberry Pi Foundation,
was to build a computer that was small and inexpensive and designed
to be
programmed and experimented with, like the ones he’d used as a child.

The Foundation gathered a group of teachers, programmers, and hardware


experts
to thrash out these ideas from 2006.
While working at Broadcom, Upton worked on the Broadcom BCM2835
-system-on-chip
-which featured an exceptionally powerful graphics processing unit (GPU)
-capable of high-definition video and fast graphics rendering.
-It also featured a low-power
-Cheap
-serviceable 700 MHz ARM CPU

Upton described the chip as “a GPU with ARM elements grafted on”

• Raspberry Pi is a low-cost mini-computer with the physical size of a credit card.

• Raspberry Pi runs various flavors of Linux and can perform almost all tasks that a normal
desktop computer can do.

• Raspberry Pi also allows interfacing sensors and actuators through the


general purpose I/O pins (GPIO’s).

• Since Raspberry Pi runs Linux operating system, it supports Python "out of the box".
Raspberry Pi

Book website: Bahga & Madisetti, ©


http://www.internet-of-
Raspberry Pi GPIO
The Raspberry Pi is effectively
- A computer that can run a real, modern operating system
- Communicate with a keyboard and mouse
- Talk to the Internet
- Drive a TV/monitor with high-resolution graphics

the Pi Model B has built-in Ethernet, convenient USB WiFi dongles, rather than having
to use an extension “shield”.

The Arduino has a fraction of the raw processing power, memory, and storage
required for it to run a modern OS.

A whole host of devices is available in the same target market as the Raspberry Pi: the
Chumby Hacker Board, the BeagleBoard, and others, which are significantly more
expensive.
DEVELOPING ON THE RASPBERRY PI
Operating System

Although many operating systems can run on the Pi, we recommend


using a popular Linux distribution, such as

• Raspbian: Released by the Raspbian Pi Foundation, Raspbian is a


distro based on Debian. This is the default “official” distribution and
is certainly a good choice for general work with a Pi.

* Occidentalis: This is Adafruit’s customised Raspbian. Unlike Raspbian,


the distribution assumes that you will use it “headless”—not connected
to keyboard and monitor—so you can connect to it remotely by
default. (Raspbian requires a brief configuration stage first.)
For Internet of Things work, we recommend something such as the Adafruit distro.
You’re most probably not going to be running the device with a keyboard and display,
so you can avoid the inconvenience of sourcing and setting those up in the first place.

The main tweaks that interest us are that

* The sshd (SSH-secure shell protocol daemon) is enabled by default, so you can connect
to the console remotely.

• The device registers itself using zero-configuration networking (zero- conf) with the
name raspberrypi.local , so you don’t need to know or guess which IP address it
picks up from the network in order to make a connection.

With the Raspberry Pi, however, you’ve already had to make decisions about the distro
and down- load it. Now that distro needs to be unpacked on the SD card, which you
purchase separately.

“Class 10” cards work best.

An Electric Imp (left), next to a micro SD card (centre), and an SD card (right).
At this point, the Pi may boot up, if you have enough power to it from the USB.

After you boot up the Pi, you can communicate with either with the keyboard and monitor
that you’ve attached, or with the Adafruit distro, via SSH

The following command, from a Linux or Mac command line, lets you log in to the Pi just as
you would log in to a remote server:

$ ssh [email protected]

From Windows, you can use an SSH client such as PuTTY (www.chiark
.greenend.org.uk/~sgtatham/putty/ ). After you connect to the device, you can develop a
software application for it as easily as you can for any Linux computer.
Programming Language

Python as a good language for educational programming (and indeed the


name “Pi” comes initially from Python).
Python is a general-purpose high level programming language and
suitable for providing a solid foundation to the reader in the area of
cloud computing.
• The main characteristics of Python are:
• Multi-paradigm programming language
• Python supports more than one programming paradigms
including object-oriented programming and structured
programming.
• Interpreted Language
• Python is an interpreted language and does not require an
explicit compilation step. The Python interpreter executes the
program source code directly, statement by statement, as a
processor or scripting engine does.
• Interactive Language
• Python provides an interactive mode in which the user can
submit commands at the Python prompt and interact with the
interpreter directly.
Led Blinking Program

import RPi.GPIO as GPIO


from time import sleep
GPIO.setmode(GPIO.BOARD) # set the numbering scheme to be the same
as on the board
GPIO.setup(18, GPIO.OUT) # set the GPIO pin to output mode
18

While True
GPIO.output(18, True)
Time.sleep(1)
GPIO.output(18, False)
Time.sleep(1)
Raspberry Pi Example:
Interfacing LED and switch with Raspberry Pi

from time import sleep


import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)

#Switch Pin
GPIO.setup(25, GPIO.IN)
#LED Pin
GPIO.setup(18,
GPIO.OUT)
state=false

def toggleLED(pin):
state = not state
GPIO.output(pin, state)

while True:
try:
if (GPIO.input(25) == True):
toggleLED(pin)
sleep(.01)
except KeyboardInterrupt:
exit()
using a more expressive “high-level” language like Python will almost certainly make
the following tasks easier:
- Handling strings of character data
- Completely avoiding having to handle memory management (and bugs related to
it)
- Making calls to Internet services and parsing the data received
- Connecting to databases and more complex processing
- Abstracting common patterns or complex behaviours

1. Python, as with most high-level languages, compiles to relatively large (in terms
of memory usage) and slow code, compared to C++.

Python is likely to be “fast enough” for most tasks, and certainly for anything that
involves talking to the Internet, the time taken to communicate over the network is
the major slowdown.

if the electronics ofthe sensors and actuators you are working with require split-
second timing, Python might be too slow.
2. Python handles memory management automatically.

automatic memory management generally results in fewer bugs and performs


adequately.

the memory may never be released until the process terminates: this is a so-
called
memory leak.

Because an Internet of Things device generally runs unattended for long periods of
time, these leaks may build up and eventually end up with the device running out of
memory and crashing.

3. Linux itself arguably has some issues for “real-time” use

Due to its being a relatively large operating system, with many processes that may
run simultaneously, precise timings may vary due to how much CPU priority is given to
the Python runtime at any given moment.

4.An Arduino runs only the one set of instructions, in a tight loop, until it is turned off
or crashes.
The Pi constantly runs a number of processes.
DEBUGGING

While Python’s compiler:


catches a number of syntax errors and attempts to use undeclared variables, it is also
a relatively permissive language (compared to C++) which performs a greater number
of calculations at runtime.

Python code on Linux gives you the advantages of both the language and the OS.

Because the Pi is a general-purpose computer, without the strict memory limitations ,


you can simply use try... catch... logic so that you can trap errors in your Python code
and determine what to do with them.

Python and other high-level languages also have mature testing tools which allow
you to assert expected behaviours of your routines and test that they perform
correctly.
Other Devices
• pcDuino
• BeagleBone Black
• Cubieboard
BeagleBone Block
The BeagleBone Black is the latest device to come from the BeagleBoard group. This
group largely consists of employees of Texas Instruments.

the BeagleBoard team want to create “powerful, open, and embedded devices”
with a goal of contributing to the open source community, including facilitating
education in electronics.

there is less of an emphasis on creating a general purpose computer for


education

these boards are very much designed with the expectation that they will be used for
physical computing and experimentation in electronics.

The BeagleBone Black is the smallest and cheapest of the team’s boards, with a form
factor comparable to that of the Raspberry Pi.

The original BeagleBone has no video or audio outputs built in, but it does have
a
far larger number of GPIO pins, extracted into two rows of female headers.

It also has the crucial ADC pins for analogue input which the Raspberry Pi lacks.
This shows the development team’s focus on building something for working with
electronics rather than as a general-purpose computer.
The BeagleBone was released before the Raspberry Pi

The influence of the Pi can be seen in the latest revision of the BeagleBone platform,
the BeagleBone Black. Although still missing the analogue video and audio connectors,
it adds a micro-HDMI connector to provide digital outputs for both audio and video.
The price is also much and it retains the much better electronics interfacing capabilities
of the original BeagleBone.

You might also like