Workshop
Raspberry Pi GPIO 101
Indonesia Creative Open Source Software
Hotel Bumi, Surabaya, 2014
Introduction
PeenTar Team - Laboratorium Komputasi Pervasif,
Fakultas Ilmu Komputer, Universitas Indonesia
● Bob Hardian , PhD (hardian@cs.ui.ac.id)
○ Chief of Lab.
● Tonny Adhi Sabastian, M. Kom
○ Researcher, Gembala Kambing.UI.AC.ID
○ Netadmin dan Sysadmin UI
● Muhammad Mufid Afif
○ Final Year Students, Researcher
What We Will Learn Today ?
● Introduksi RaspberryPi dan Dunia Internet Of Things
● Konektivitas RaspberryPi dengan Perangkat IoT via
GPIO
● Peta GPIO RaspberryPi
● Koneksi dan Programming GPIO Dengan Python
● Koneksi dan Programming GPIO Dengan Scratch
● Demo Kontrol Sederhana dengan Scratch
Raspberry Pi & IoT
Raspberry Pi GPIO
Setup Cepat RPi
Peta GPIO RPi
GPIO (General Purpose Input Output) adalah sekumpulan Pin pada sebuah
chip yang dapat diset menjadi input, output atau pengontrolan fungsi.
System on A Chip (SoC) Broadcom BCM2835 di Raspberry Pi memiliki 26 Pin
GPIO terpasang pada board.
Pin - Pin tersebut terdiri atas :
● CLK Pin
● SPI Pin
● UART Pin
● I2C
● PWM
● General GPIO
Raspberry Pi GPIO Cheat Sheet : https://www.modmypi.
com/blog/raspberry-pi-gpio-cheat-sheet
Programming GPiO
Persiapan
Beberapa persiapan yang perlu dilakukan :
● Membuat Koneksi GPIO dengan Rangkaian Listrik
Sederhana
● Update Raspbian via Repository Lokal
● Memasang Pustaka Python GPIO
● Memasang Pustaka Scratch GPIO
● Melakukan Latihan Uji Coba Pemrograman dengan
Python dan Scratch
Rangkaian Uji Coba
Komponen Rangkaian :
● 2 Buah Momentary Push Switch
● 3 Buah LED
● 2 Buah Resistor 1 KiloOhm (Coklat, Hitam, Merah)
● 3 Buah Resistor 220 Ohm ( Merah, Merah, Coklat)
● 6 Buah Kabel Jumper Male to Female
Pemrograman GPIO dengan
Python (Persiapan)
Update Raspbian dengan menggunakan repository lokal :
sudo nano /etc/apt/sources.list
Tambahkan / edit baris berikut
deb http://$IP_LOKAL/raspbian wheezy main contrib
non-free
Pemrograman GPIO dengan
Python (Persiapan)
Lakukan update dan upgrade:
$sudo apt-get update
$sudo apt-get upgrade
Instalasi editor favorit :
$sudo apt-get install vim
Pemrograman GPIO dengan
Python (Persiapan)
Instalasi pustaka python-rpi-gpio:
$wget  http://$LOCAL_IP/deps/python-rpi.
gpio_0.5.3a-1_armhf.deb
$sudo dpkg -i  python-rpi.gpio_0.5.3a-
1_armhf.deb
LED Berkedip
Coba kode di bawah ini :
$vim blinkLED.py
import RPi.GPIO as GPIO
import time
# blinking function
def blink(pin):
GPIO.output(pin,GPIO.HIGH)
...
LED Berkedip
def blinkoff(pin):
GPIO.output(pin,GPIO.LOW)
# to use Raspberry Pi board pin numbers
GPIO.setmode(GPIO.BOARD)
# set up GPIO output channel
GPIO.setup(11, GPIO.OUT)
...
LED Berkedip
# blink GPIO17 50 times
for i in range(0,50):
blink(11)
time.sleep(1)
blinkoff(11)
time.sleep(1)
GPIO.cleanup()
Dapatkah Anda membuat semua LED berkedip ?
Dapatkah Anda mengontrol LED dengan tombol ?
Pemrograman GPIO dengan
Scratch (Persiapan)
Unduh dan instalasi modul Scratch GPIO:
$wget http://$IP_LOKAL/deps/scratch_gpio.sh
$chmod +x scratch_gpio.sh
$./scratch_gpio.sh
Unduh program contoh :
$wget http://$IP_LOKAL/deps/gpiogame.sb
Pemrograman GPIO dengan
Scratch (Persiapan)
Jalankan XWindows:
$startx
Setelah Anda berhasil menjalankan XWindows, Anda dapat
menjalankan Scratch GPIO via ikon GPIOScractch4 di
Desktop Anda.
Muat berkas contoh program gpiogame.sb pada Scratch
Anda.
GPIOGame
Rutin Handler LED Rutin Handler Tombol
Referensi
Python RPi GPIO
http://sourceforge.net/projects/raspberry-gpio-python/
Scratch GPIO
https://github.com/cymplecy/scratch_gpio
Kode Sumber Contoh
http://computers.tutsplus.com/tutorials/learn-how-to-use-
raspberry-pi-gpio-pins-with-scratch--mac-59941
MagPi Magazine : http://www.themagpi.com
Good Books For Reading
Programming the Raspberry Pi: Getting Started with Python,
By Simon Monk
Raspberry Pi Hacks, By Ruth Suehle
Raspberry Pi Home Automation with Arduino, By Andrew K.
Dennis
Raspberry Pi for Secret Agents, By Stefan Sjogelid

Raspberry Pi GPIO 101

  • 1.
    Workshop Raspberry Pi GPIO101 Indonesia Creative Open Source Software Hotel Bumi, Surabaya, 2014
  • 2.
    Introduction PeenTar Team -Laboratorium Komputasi Pervasif, Fakultas Ilmu Komputer, Universitas Indonesia ● Bob Hardian , PhD (hardian@cs.ui.ac.id) ○ Chief of Lab. ● Tonny Adhi Sabastian, M. Kom ○ Researcher, Gembala Kambing.UI.AC.ID ○ Netadmin dan Sysadmin UI ● Muhammad Mufid Afif ○ Final Year Students, Researcher
  • 3.
    What We WillLearn Today ? ● Introduksi RaspberryPi dan Dunia Internet Of Things ● Konektivitas RaspberryPi dengan Perangkat IoT via GPIO ● Peta GPIO RaspberryPi ● Koneksi dan Programming GPIO Dengan Python ● Koneksi dan Programming GPIO Dengan Scratch ● Demo Kontrol Sederhana dengan Scratch
  • 6.
  • 8.
  • 9.
  • 11.
    Peta GPIO RPi GPIO(General Purpose Input Output) adalah sekumpulan Pin pada sebuah chip yang dapat diset menjadi input, output atau pengontrolan fungsi. System on A Chip (SoC) Broadcom BCM2835 di Raspberry Pi memiliki 26 Pin GPIO terpasang pada board. Pin - Pin tersebut terdiri atas : ● CLK Pin ● SPI Pin ● UART Pin ● I2C ● PWM ● General GPIO Raspberry Pi GPIO Cheat Sheet : https://www.modmypi. com/blog/raspberry-pi-gpio-cheat-sheet
  • 13.
  • 14.
    Persiapan Beberapa persiapan yangperlu dilakukan : ● Membuat Koneksi GPIO dengan Rangkaian Listrik Sederhana ● Update Raspbian via Repository Lokal ● Memasang Pustaka Python GPIO ● Memasang Pustaka Scratch GPIO ● Melakukan Latihan Uji Coba Pemrograman dengan Python dan Scratch
  • 15.
    Rangkaian Uji Coba KomponenRangkaian : ● 2 Buah Momentary Push Switch ● 3 Buah LED ● 2 Buah Resistor 1 KiloOhm (Coklat, Hitam, Merah) ● 3 Buah Resistor 220 Ohm ( Merah, Merah, Coklat) ● 6 Buah Kabel Jumper Male to Female
  • 17.
    Pemrograman GPIO dengan Python(Persiapan) Update Raspbian dengan menggunakan repository lokal : sudo nano /etc/apt/sources.list Tambahkan / edit baris berikut deb http://$IP_LOKAL/raspbian wheezy main contrib non-free
  • 18.
    Pemrograman GPIO dengan Python(Persiapan) Lakukan update dan upgrade: $sudo apt-get update $sudo apt-get upgrade Instalasi editor favorit : $sudo apt-get install vim
  • 19.
    Pemrograman GPIO dengan Python(Persiapan) Instalasi pustaka python-rpi-gpio: $wget http://$LOCAL_IP/deps/python-rpi. gpio_0.5.3a-1_armhf.deb $sudo dpkg -i python-rpi.gpio_0.5.3a- 1_armhf.deb
  • 20.
    LED Berkedip Coba kodedi bawah ini : $vim blinkLED.py import RPi.GPIO as GPIO import time # blinking function def blink(pin): GPIO.output(pin,GPIO.HIGH) ...
  • 21.
    LED Berkedip def blinkoff(pin): GPIO.output(pin,GPIO.LOW) #to use Raspberry Pi board pin numbers GPIO.setmode(GPIO.BOARD) # set up GPIO output channel GPIO.setup(11, GPIO.OUT) ...
  • 22.
    LED Berkedip # blinkGPIO17 50 times for i in range(0,50): blink(11) time.sleep(1) blinkoff(11) time.sleep(1) GPIO.cleanup() Dapatkah Anda membuat semua LED berkedip ? Dapatkah Anda mengontrol LED dengan tombol ?
  • 23.
    Pemrograman GPIO dengan Scratch(Persiapan) Unduh dan instalasi modul Scratch GPIO: $wget http://$IP_LOKAL/deps/scratch_gpio.sh $chmod +x scratch_gpio.sh $./scratch_gpio.sh Unduh program contoh : $wget http://$IP_LOKAL/deps/gpiogame.sb
  • 24.
    Pemrograman GPIO dengan Scratch(Persiapan) Jalankan XWindows: $startx Setelah Anda berhasil menjalankan XWindows, Anda dapat menjalankan Scratch GPIO via ikon GPIOScractch4 di Desktop Anda. Muat berkas contoh program gpiogame.sb pada Scratch Anda.
  • 25.
    GPIOGame Rutin Handler LEDRutin Handler Tombol
  • 26.
    Referensi Python RPi GPIO http://sourceforge.net/projects/raspberry-gpio-python/ ScratchGPIO https://github.com/cymplecy/scratch_gpio Kode Sumber Contoh http://computers.tutsplus.com/tutorials/learn-how-to-use- raspberry-pi-gpio-pins-with-scratch--mac-59941 MagPi Magazine : http://www.themagpi.com
  • 27.
    Good Books ForReading Programming the Raspberry Pi: Getting Started with Python, By Simon Monk Raspberry Pi Hacks, By Ruth Suehle Raspberry Pi Home Automation with Arduino, By Andrew K. Dennis Raspberry Pi for Secret Agents, By Stefan Sjogelid