Raspberry-Pi

Preview:

DESCRIPTION

 

Citation preview

Raspberry PiRaspberry PiRaspberry PiRaspberry Pi

Content Layout

Raspberry Pio Introductiono Types & Specificationso OSo Architectureo GPIO Pinso Hardware & Connectivityo Use of PI

Wireless Display over Bluetooth using Pi and Android Phone

Videoo Raspberry Pi based FM Transmittero Difference between Raspberry Pi & Arduino

What is Raspberry Pi?

Raspberry Pi is a single board computer which is the size as small as a credit card.

Developed by Raspberry Pi foundation in UK

Costs around US$25 to $35

KEY FEATURES

• Connect to the TV via HDMI interface

• For learning programming

• Act as a media centre for video playback or gaming functions

The Raspberry Pi measures 85.60mm x 56mm x 21mm (or roughly 3.37″ x 2.21″ x 0.83″) & It weighs 45g

Types & Specification Of Raspberry Pi 

There are two types of Raspberry Pi :

Model A Model B

OPERATING SYSTEM USED IN RASPBERRY PI

First you have to write it to a suitable (2GB or 4GB) SD card using the UNIX tool dd. Windows users can use Win32 Disk Imager.

Install NOOBS in your primary PC

List of OSRaspbian “wheezy”OpenELECOccidentalis v0.2PidoraRaspBMCRISC OSArchLinux based OS

ARCHITECTURE OF RASPBERRY PI

PINS LAYOUT

• 17 GPIO pins• most have alternated functions • two pins for UART; two for I2C;

six for SPI• All 17 pins can be GPIO (i.e., INPUT

or OUTPUT)• all support interrupts• internal pull-ups & pull-downs for

each pin

•Pins are 3.3V not 5V like on the Arduino•They are connected directly to the Broadcom chip •Sending 5V to a pin may kill the Pi•Maximum permitted current draw from a 3.3V pin is 50mA

Diagram includes BCM GPIO references (GPIO.BCM), common functions, WiringPi pin references, and Pin numbers (GPIO.BOARD).

The Bigger Picture

Hardware & Connectivity inside the PiCOMPONENTS OF A RASPBERRY PI

POWER

5v microUSB

connector

(Similar to the one on a lot of mobile phones!)

A/V (AUDIO/VIDEO)

HDMI Audio & Video(works with modern TVs and DVI monitors)

A/V (AUDIO/VIDEO)RCA Video(works with most older

TVs)

HDMI Audio & Video(works with modern TVs and DVI monitors)

A/V (AUDIO/VIDEO)

RCA Video(works with most older

TVs)

HDMI Audio & Video(works with modern TVs and DVI monitors)

3.5mm AudioStandard

headphone socket

CONNECTIVITY

2 x USB 2.0ports

CONNECTIVITY

2 x USB 2.0ports

10/100MbEthernet

CONECTIVITY2 x USB 2.0

ports

10/100MbEthernet

GPIO(GeneralPurposeInput &Output)

INTERNALS

SOC (System On a Chip)Broadcom BCM2835 700Mhz & 256Mb / 512Mb RAM

INTERNALS

LAN Controller

SOC (System On a Chip)Broadcom BCM2835 700Mhz & 256Mb / 512Mb RAM

INTERNALS

JTAG(debug ports)

LAN Controller

SOC (System On a Chip)Broadcom BCM2835 700Mhz & 256Mb / 512Mb RAM

INTERNALS

JTAG(debug ports)

LAN Controller

SOC (System On a Chip)Broadcom BCM2835 700Mhz & 256Mb / 512Mb RAM

CSI(camera

interface)

INTERNALS

JTAG(debug ports)

LAN Controller

SOC (System On a Chip)Broadcom BCM2835 700Mhz & 256Mb / 512Mb RAM

CSI(camera

interface)

DSI(display interface)

STORAGE

SD Card Slot(supports SD cards up to 32GB)

10 USES FOR A RASPBERRY PI

10 Office

123456789

12345678910

Office

9 Programming

1234567810

12345678910

Programming

8GamesConsole

1234567910

12345678910

GamesConsole

7 Minecraft

1234568910

12345678910

Minecraft

6 Tor Router

1234578910

Tor Router

12345678910

5 HTPC

1234678910

12345678910

HTPC

4 Bartender

1235678910

Bartender

12345678910

3 Camera

1245678910

12345678910

Camera

2

1345678910

Clock

12345678910

Clock

1

2345678910

PiBot!

PiBot!

12345678910

WIRELESS DISPLAY OVER BLUETOOTH USING PI AND ANDROID PHONE

PROJECT OVERVIEW

Goal is to build a system using Raspberry Pi and an Android phone to get the wireless display over Bluetooth and setup a Virtual Network connection between them

The basic idea is to set up Bluetooth networking with the Pi, and use SDL VNC viewer to display the X screen on the Android device

Virtual Network Computing (VNC) is a graphical desktop sharing system that uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the keyboard and mouse events from one computer to another, relaying the graphical screen updates back in the other direction, over a network.

MOTIVATION

The basic idea of connecting a raspberry pi and an android over Bluetooth and VNC

Give user a flexibility to access and work remotely over the phone

Can help save and store data over the pi and phone. The phone can be accessed completely over the Raspberry Pi

The Raspberry Pi is a pretty powerful device, but much of its benefits come when it's connected to the Internet. If we want to utilize the Pi for mobility, we should try this method of tethering it to our smartphones to get it online anywhere we have mobile data

SYSTEM ARCHITECTURESystem Architecture:

An overall view of the system is as below:

Ping

On Pi Android Phone

Bluetooth network setup

Utility VNC Set-up

BLUETOOTH NETWORK SETUP

The Raspberry pi is not equipped with the built in Bluetooth, so we need to follow the below steps: Bluetooth dongle (We used version 2.0) Install drivers Commands on the command editor of pi to scan the

devices over Bluetooth. This is needed only for first time

Connect

VNC SETUP FOR RASPBERRY PI

Using commands, we installed TightVNCServer over Raspberry Pi

Set the pixel format and geometry settings as for the Android display screen

Install client over android

Connect to Raspberry pi

LEARNING

Basic Raspberry Pi setup and connection

Connecting Raspberry Pi and android phone over Bluetooth and access the data and folders of Android from pi

Establishing the Virtual Network connection between the Pi and Android

This enables the users to remotely access the Raspberry pi system over a phone

Once completely installed, the Pi should automatically mount and connect to our mobile device when we plug it in, without having to fiddle around in the command

Can be enhanced and improved for future works like live demonstrations, programming and learning

SERVO WITH THE PI

Controlling a Servo with the Pi• Controlling the servos requires PWM, aka Pulse Width Modulation

– The Arduino program has complete control of the microcontroller • when it is running loop() nothing else can use the CPU

– Except for interrupt handlers written as part of the Arduino program

– On the Raspberry Pi, your program runs within a Linux OS• The Linux OS may switch to running another program!

– But you can change your program’s scheduling priority• Some ways of getting the Pi to give the impression that it is a real time

system and to do PWM ‘properly’:

Connect a Parallax Servo

Servo Connector: Black – Pi’s ground Red – Pi’s 5V White – signal on GPIO 17

Image credit: http://www.parallax.com/

NOTE: For a single small servo you can take the 5 volts for it from the Pi header, but doing anything non-trivial with four servos connected pulls the 5 volts down far enough to crash the Pi

Using WiringPi’s servo example#include <stdio.h>#include <errno.h>#include <string.h>#include <wiringPi.h>#include <softServo.h>int main () { if (wiringPiSetup () == -1) { // setup to use Wiring pin numbers fprintf (stdout, "oops: %s\n", strerror (errno)) ; return 1 ; } softServoSetup (0, 1, 2, 3, 4, 5, 6, 7) ; // wiringPi pin numbers for (;;) { softServoWrite (0, 0) ; // wiringPi pin 0 is BCM_GPIO 17 delay (1000) ; softServoWrite (0, 500) ; delay (1000); softServoWrite (0, 1000) ; delay (1000); }}

Running servo.c• To compile: gcc -Wall -o servo servo.c wiringPi/wiringPi/softServo.c compile softServo.c -IwiringPi/wiringPi path to softServo.c -lwiringPi include wiring library• To run: sudo ./servo• Calling softServoWrite () ;

– The 1st input is the pin number– The 2nd input refers to the number of microseconds of the pulse.

• An input of 0 produces a 1000uSec (1mSec) pulse (hard left)• An input of 1000 produces a 2000uSec (2mSec) pulse (hard right)• An input of 500 produces a 1500uSec (1.5 mSec) pulse (stop)

Recommended