AI For Humanoid Robotics
Adediran Enoch
RaspberryPi
Outline
• Introduction to Raspberry Pi
• Python
• Electronics
• Linux
What is a Raspberry Pi?
• A credit card sized PC
• Plugs into a TV or monitor
• Inexpensive(ish) 30,000 each
• Capability:
– Programming
– Electronic Projects
– Office
– Play HD Videos
Variations of Raspberry Pi
• Hardware platform
– Raspberry Pi
– Raspberry Pi 2
– Raspberry Pi 3 (with Wifi + Bluetooth)
– Raspberry Pi 4
• Software platform
– Noobs
– Raspbian
– 3rd OS
– https://www.raspberrypi.org/downloads/
Kit Components
• Essential:
– Raspberry Pi board
– Prepared Operating System SD Card
– USB keyboard
– Display (with HDMI, DVI, or Composite input)
– Power Supply
• Highly suggested extras include:
– USB mouse
– Internet connectivity - LAN cable
– Powered USB Hub
– Case
Programming Languages
• The Raspberry Pi Foundation recommends Python
• Any language which will compile for ARMv6 can be
used
• Installed by default on the Raspberry Pi:
– C
– C++
– Java
– Scratch
– Ruby
Challenges and Opportunities
• New operating system: linux
• Open-source, all almost tools/software
are free
• Rich resources on the web due to its
popularity
• Resources link: www.raspberrypi.org
Linux
• Interesting, powerful
• Variations (Ubuntu, debian, feroda,
redhat)
• Command line
• Raspberry Pi: Raspian (Debian-based)
• Pinet: Ubuntu server + Raspberry Pis
• Linux: robust, secure, easy to use,
powerful
SETUP
Power
5v micro
USB
connector
(Similar to the one on a lot of mobile
phones!)
3.5mm Audio
Standard
A/V (Audio/Video) headphone
socket
RCA Video
(works with most
older TVs)
HDMI Audio & Video
(works with modern TVs and DVI monitors)
Connectivity
2 x USB 2.0
ports
GPIO
(General
Purpose
Input &
Output)
10/100Mb
Ethernet
Internals LAN Controller
DSI
(display
interface) CSI
(camera
interface)
SOC (System On a Chip)
Broadcom BCM2835 700Mhz
Storage
SD Card Slot
(supports SD cards up to 32GB)
A GPIO pin designated as an
input pin can be read as high
(3V3) or low (0V). This is
made easier with the use of
internal pull-up or pull-down
resistors. Pins GPIO2 and
GPIO3 have fixed pull-up
resistors, but for other pins
this can be configured in
software.
PULSE WIDTH MODULATION
The signal can only be high
(usually 5V) or low (ground)
at any time, we can change
the proportion of time the
signal is high compared to
when it is low over a
consistent time interval.
10 USES FOR
A RASPBERRY PI
9 Programming
10 8 7 6 5 4 3 2 1
Programming
10 9 8 7 6 5 4 3 2 1
Operating System
• Linux on a bootable SD card
– Fedora
– Debian
– ArchLinux
Programming
• By default, supporting Python as
the educational language.
• Any language which will compile
for ARMv6 can be used with the
Raspberry Pi, though; so you’re
not limited to using Python.
• For primary age SCRATCH game
maker is bundled
Scratch
scratch is free from MIT .. thanks MIT !
Scratch
Python Code
http://teampython.wordpress.com/category/pi
What kind of projects ?
• Video DJ Mixer integrated Media player
for your TV to fight the rampant Lego
Robot Monster who is detected by your
Home monitoring webcam network
which reports also from the Weather
Station that uses the Car Super
Bramble Computer to tell the School
Notice-board that the Solar powered
Wireless Rocket Widget should be sent
back to earth ...
Tinkering
• GPIO pins if you’re after an
interesting electronics project.
• Gertboard - A GPIO expansion board
from the foundation for electronics
projects
• USB Devices / Ethernet / Hubs / AV out
• Can be powered by 4 x AA batteries ...
Game
8
Console
10 9 7 6 5 4 3 2 1
Game
Console
10 9 8 7 6 5 4 3 2 1
7 Web Server
10 9 8 6 5 4 3 2 1
Web Server
10 9 8 7 6 5 4 3 2 1
6 Tor Router
10 9 8 7 5 4 3 2 1
Tor Router
10 9 8 7 6 5 4 3 2 1
5 HTPC
10 9 8 7 6 4 3 2 1
HTPC
10 9 8 7 6 5 4 3 2 1
4 Bird House
10 9 8 7 6 5 3 2 1
Bird House
10 9 8 7 6 5 4 3 2 1
Super
3
Computer
10 9 8 7 6 5 4 2 1
Supercomputer
10 9 8 7 6 5 4 3 2 1
2 Clock
10 9 8 7 6 5 4 3 1
Clock
10 9 8 7 6 5 4 3 2 1
1 PiBot!
10 9 8 7 6 5 4 3 2
PiBot!
10 9 8 7 6 5 4 3 2 1
Credits:
RaspberryPi Foundation
Ethan Sprissler @ UAlbany
http://damnfineraspberrypi.com/