GeekSession:Lab

Linux Embedded Intro: Raspberry PI

Nelson Neves

http://twitter.com/botdream

https://plus.google.com/u/0/114456351183795885149/posts/p/pub

nelson.s.neves no gmail ponto com

11-Aug-2012 @CoworkinFAO

http://www.coworkinfao.com/

http://devrendezvous.com/

Raspberry Pi - Intro. into Linux embedded systems:

What is a Raspberry Pi?

Broadcom BCM2835 system on a chip (SoC)

ARM1176JZF-S 700 MHz processor (ARM 6 with support to hardware floating point calculation)

Videocore GPU with HDMI video output (support to FULL HD 1080p - MPEG-4 video) - 3D OpenGL ES 2.0

Ethernet

2 USB Host

Analog video output

Analog audio output

Digital audio output via HDMI

GPIO (Serial Port, general I/O, I2C, SPI)

Additional expansion ports for future connections (HD Camera, etc)

Linux OS

Boot from SD card (optinal from USB pendrive/harddrive)

What can it be used for?

NAS file server (Samba)

Bittorrent client (Transmission)

Light WebServer (Lighttp/Nginx + php5)

Node.js geek projects

Light Database server (mysql, PostgreSQL, sqlite)

SSH server (excellent for proxy)

OpenVPN server

4 Kids and wife to play arcade games (advance MAME, Quake3) or surf the web

Thin client to a windows machine (via FreeRDP)

MediaCenter with raspbmc (XBMC) or OpenElec

To connect to an Arduino (or other microcontroller) to fetch sensor data, or to send commands to the micro, etc …

WebCam interface to stream video over ethernet/wifi/3G (cheap ip camera)

Remote data acquisition system (weather station), powered by a solar panel + battery, sending data from a 3G usb modem or Wifi (if in reach of the network signal)

Car WarDriving (map GPS coords + wifi signals) - google already uses this ‘technique’!

Robots (real time OS/kernel)

CNCs/Repraps 3d printer (real time OS/kernel)

RC / Quadcopter controller (real time OS/kernel)

… I’ll stop here …

Initial SD Card preparation

http://www.engadget.com/2012/09/04/raspberry-pi-getting-started-guide-how-to/

http://elinux.org/RPi_Hardware_Basic_Setup

http://elinux.org/RPi_Easy_SD_Card_Setup

Insert sd card on a Linux Pc

$ sudo gparted

select card and unmount partitions + Exit Gparted

download image from rPi site

$ sudo dd bs=1M if=rpi.img of=/dev/sdb

Booting the recommended Linux image (Raspbian "Wheezy" - Armhf)

The raspi-config configuration utility

Explore the LXDE Graphical Environment

Operating System Updates

Install rpi-update for firmware/kernel updates (future stable release of rPi Debian will not require this)

https://github.com/Hexxeh/rpi-update/

Updates commands:

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo rpi-config

Explore package installer (add some Linux Applications)

// install git-core and builde-essential packages

$ sudo apt-get install git-core build-essential

// search for a package

$ sudo apt-cache search libssl | more

Demo of games written in Python

$ cd /home/pi/python_games

Demo of Scratch (kid's graphical programming environment)

Demo of AdvMame

Demo of Quake3

Demo of 1080p HD video playback

Demo rPI2: XMBC media center for Raspberry Pi

Raspberry Pi resources:

Debian resources:

Development resources:

Electronic resources:

Cool Projects:

http://petrockblog.wordpress.com/2012/07/03/snesdev-rpi-a-snes-adapter-for-the-raspberry-pi/

http://www.designspark.com/content/raspberry-pi-remote-control-music-player

http://www.raspberrypi.org/phpBB3/viewtopic.php?t=15554&p=158083#p158083

http://davidhunt.ie/?p=2641

http://www.retrocomputers.eu/raspberry-pi/how-to-compile-the-fuse-zx-spectrum-emulator-on-the-raspberry-pi/

tons of interesting things, just look into my delicious: http://delicious.com/sevensins/raspberrypi

GeekSession workbench projects