Pengenalan Raspberry Pi
Pengenalan bahasa pemrograman Python
Mengakses I/O digital
Menyalakan LED
Membaca penekanan Switch
Mengeluarkan sinyal PWM
Aplikasi Dimmer LED
Menggerakan Motor Servo
Wi-Fi dan Bluetooth
Aplikasi LED dengan Bluetooth
Aplikasi motor servo dengan Bluetooth
Apa itu Raspberry Pi?
GPIO Raspberry Pi
Burn Image (Raspbian)
Sistem Operasi Raspbian
Pengenalan Program Terminal / Command Line
Pengenalan Editor Nano
Library WiringPi
Inisialisasi library WiringPi
Fungsi-fungsi pada library WiringPi
Raspberry Pi Komputer sebesar kartu kredit
Eben Upton (University of Cambridge)
Berawal dari ide untuk membuat komputer kecil
yang bisa gunakan oleh anak-anak dalam
mempelajari komputer dan logika pemrograman
Pertama kali board prototype terbuat dari PCB
lubang dengan menggunakan ATmega644.
Proses pembuatan terus berlangsung dari 2006
2008.
Pada September 2012, Raspberry Pi diproduksi
oleh Sony di UK.
Menggunakan IC Broadcom BCM2837
Merupakan SoC
(ARM Cortex-A53, Memory, GPU)
Raspberry Pi 3 model B memiliki 40 pin
I/O
Semua pin I/O (kecuali pin 5VDC) bekerja pada level
tegangan 3,3VDC
Sebagai output : mampu mengerluarkan tegangan High
Low dengan range tegangan 0VDC 3,3VDC
Sebagai input : mampu menerima tegangan High Low
dengan range tegangan 0VDC 3,3VDC
Jika menerima input logika dengan range 5VDC akan
merusakan IC BCM2837
Raspbian turunan dari Debian
Khusus digunakan untuk Raspberry Pi
Menggunakan LXDE untuk tampilan
Desktop
Memerlukan SD Card dengan kapasitas
minimal 8GB
1) Pilih lokasi Sistem Operasi Raspbian
2) Tentukan drive dari SD Card
3) Tekan tombol Write untuk proses
pengisian Sistem Operasi ke SD Card
Sistem Operasi Raspbian yang digunakan
merupakan edisi update dari Learn
Innovative Electronics
Dilengkapi dengan beberapa software
tambahan : wiringPi, wiringPi-Python,
VNCServer, dan Minicom
Raspberry Pi bisa diakses melalui 2 cara :
Direct
Menggunakan konektor HDMI Tampilan
Bisa menggunakan monitor VGA (HDMI to VGA)
Keyboard dan Mouse USB
Remote
Menggunakan PC / Notebook sebagai media
tampilan dari kontrol (Keyboard dan Mouse)
Menggunakan koneksi SSH (LAN / WiFi)
Direct
Remote
Masukan SD card ke slot SD Card di Rasbperry Pi
Hubungkan kabel LAN dari PC ke Raspberry Pi
Atur sebagai IP Static di PC.
IP Address : [Link]
Subnet mask : [Link]
Gateway : [Link]
Hubungkan kabel miniUSB sebagai
sumber catu daya.
Tunggu sekitar 15 detik untuk proses
booting dari Raspberry Pi, kemudian
jalankan program [Link] di PC.
Jika koneksi SSH berhasil, maka akan diminta untuk
mengisikan username dan password dari Raspberry Pi
Username : pi
Password : raspberry
Aktifkan vncserver di Raspberry Pi
sudo vncserver geometry 1024x680 :1
Jalankan program VNCViewer di PC
[Link]
Password : 8karakter
Jika Command Line :
pi@raspberrypi ~$ sudo shutdown h now
atau
pi@raspberrypi ~$ sudo halt
Pada Sistem Operasi Raspbian, software terminal
dinamakan LXTerminal
Terminal digunakan untuk menjalankan
program, mengatur konfigurasi, menuliskan
kode program, dll
Trik :
autocomplete | Tab
command history | panah atas atau
bawah
Daftar Perintah :
ls
Melihat daftar isi file dari direktori.
Contoh :
pi@raspberrypi ~ $ cd ls
touch
Membuat file kosong.
Contoh
pi@raspberrypi ~ $ touch coba.c
cd
Masuk ke dalam direktori tertentu
Contoh
pi@raspberrypi ~ $ cd Desktop
cp
rm
Menggandakan suatu file dan diletakan pada lokasi
yang baru.
Contoh :
Menggandakan file coba.c yang ada di lokasi
/home/pi dan ingin dipindahkan ke
/home/pi/Desktop/ :
pi@raspberrypi ~ $ cp /home/pi/coba.c
/home/pi/Desktop/
Menghapus suatu file.
Contoh
pi@raspberrypi ~ $ rm /home/pi/Desktop/coba.c
mv
Memindahkan suatu file dan diletakan pada lokasi yang
baru. File pada lokasi awal akan dihapus.
Contoh :
Memindahkan file coba.c yang ada di lokasi /home/pi
dan ingin dipindahkan ke /home/pi/Desktop/ :
pi@raspberrypi ~ $ mv /home/pi/coba.c
/home/pi/Desktop/
mkdir
Membuat sebuah directory baru
Contoh
pi@raspberrypi ~ $ mkdir folderBaru
rmdir
Menghapus directory kosong (tidak ada
file/directory lagi di dalamnya).
Contoh
pi@raspberrypi ~ $ rmdir folderBaru
rm -r
Menghapus directory yang masih terdapat file
atau sub-directory di dalamnya.
Contoh
pi@raspberrypi ~ $ rm -r folderBaru
Contoh instalasi software Arduino :
pi@raspberrypi ~ $ sudo apt-get install
arduino
Akses melalui Terminal
pi@raspberrypi ~ $ sudo nano gpio.c
Merupakan text editor yang ada pada Sistem Operasi
Linux.
ctrl + x : menutup program nano dan akan diminta untuk
melakukan penyimpanan file tersebut.
ctrl + o : menyimpan file tersebut. Setiap proses
penyimpanan akan diminta konfirmasi ulang nama file
tersebut.
ctrl + w : mencari text atau karakter
alt + 6 : menyalin baris
ctrl + u : meletakan hasil salinan
WiringPi -> library untuk bahasa
pemrograman C (Gordon Henderson)
WiringPi-Python -> berbasiskan WiringPi,
tetapi dimodifikasi untuk Python
(Philip Howard)
[Link]
Mengatur ulang penomoran GPIO dan memiliki gaya
pemrograman seperti Arduino.
Insialisasi awal
wiringPiSetup(void)
Penamaan pin seperi Arduino (0-21)
wiringPiSetupGpio(void)
Penamaan pin sesuai BCM2837
wiringPiSetupPhys(void)
Penamaan pin sesuai dengan konektor P1
wiringPiSetupSys(void)
Penamaan pin sesuai BCM2837, tetapi dalam
mengakses pin menggunakan file yang ada di dalam
/sys/class/gpio
pinMode(int pin, int mode)
Pin : nomor pin I/O
mode : Input/Output/PWM_OUTPUT/GPIO_CLOCK
pullUpDnControl(int pin, int pud)
Pin : nomor pin I/O
pud : PUD_OFF, PUD_DOWN, PUD_UP
digitalWrite(int pin, int value)
Pin : nomor pin I/O
Value : LOW / HIGH
digitalRead(int pin)
Pin : nomor pin I/O
Bahasa pemrograman tingkat tinggi
Perintah lebih sedikit
Lebih mudah dimengerti alur logikanya
Bersifat portable
Termasuk dalam jenis interpreter
Interpreter
Membaca perintah per baris
Compiler
Mengolah kode program secara lengkap
Interactive Mode
Terminal
Ketikan perintah python
IDLE Python
Script Mode
Mengetikan semua perintah terlebih dahulu
di sebuah file dengan ekstensi .py
Python tidak memerlukan definisi jenis variabel
Contoh pada bahasa pemrograman C
char coba;
coba = a;
Interactive Mode
Script Mode
Logika untuk menentukan alur percangan
x
x
x
x
x
x
== y
!= y
> y
< y
>= y
<= y
#
#
#
#
#
#
x
x
x
x
x
x
is
is
is
is
is
is
equal to y
not equal to
greater than
less than y
greater than
less than or
y
y
or equal to y
equal to y
Contoh logika percabangan
if x%2 == 0:
print x is even
else:
print x is odd
Nilai x bisa diganti
dengan nilai lain
Nilai x dan y bisa diganti
dengan nilai lain
for
for in range
while
Digital Output :
Contoh : Aplikasi Blink
Latihan : Aplikasi Running LED
Digital Input :
Contoh : Pembacaan logika switch
Latihan : Mendeteksi penekanan 2 switch
Menggunakan library WiringPy-Python
untuk mengakses I/O
Library ini tidak tersedia pada instalasi
awal Raspbian
Cara instalasi driver dapat mengikuti
pentunjuk pada link berikut ini :
[Link]
Pada SD Card terdapat contoh program
[Link]
Jalankan program [Link] dengan mengetikan
peritah berikut ini di Terminal
sudo python [Link]
LED 1 menyala dan padam dengan jeda 1 detik.
Jika ingin melihat kode program, pada program
Terminal ketikan perintah
sudo nano [Link]
import wiringpi # import library WiringPi2-Python
from time import sleep # import library sleep
# Must be called before using IO function
[Link]()
# Set pin 0 to 1 (OUTPUT) / 0 (INPUT)
[Link](0,1)
while True:
# endless loop
# Write 1 (High) / 0 (Low) to pin 0
[Link](0,1)
sleep(1)
# delay for 1 second
# Write 0 (Low) / 1 (High) to pin 0
[Link](0,0)
sleep(1)
# delay for 1 second
Membuat aplikasi agar LED bisa bergerak
ke kanan dan ke kiri
Ketikan perintah di Terminal :
sudo nano [Link]
Lengkapi beberapa perintah program
yang kurang pada file [Link]
Menggunakan switch sebagai
sumber input logika
Menggunakan konfigurasi aktif Low
Switch ditekan memberikan
logika Low
Switch dilepas memberikan
logika High
Jalankan program terminal, ketikan
perintah berikut ini :
sudo python [Link]
Tekan SW untuk menyalakan LED1.
Jika ingin melihat kode program, pada
program Terminal ketikan perintah
sudo nano [Link]
import wiringpi
# import library WiringPi2-Python
# Must be called before using IO function
[Link]()
[Link](1,0) # Set pin 1 to 0 (INPUT)
[Link](0,1) # Set pin 0 to 1 (OUTPUT)
while True:
# endless loop
# read pin 0, if pin 1 is 0 (LOW)
if [Link](1)==0:
# if True, write pin 0 to 1 (HIGH)
[Link](0,1)
else:
# if False, write pin 0 to 0 (LOW)
[Link](0,0)
Membuat aplikasi agar 2 buah switch bisa
mengendalikan 2 LED yang berbeda
Ketikan perintah di Terminal :
sudo nano [Link]
Lengkapi beberapa perintah program
yang kurang pada file [Link]
SoftPWM:
Contoh : Dimmer LED
Latihan : Dimmer LED with Switch
Contoh : Menggerakan motor servo
Latihan : Mengatur arah putaran motor servo
Duty Cycle
Sinyal PWM untuk komunikasi data
Rumus duty cycle
=
Contoh perhitungan
(V=5V, duty cycle=50%)
50
= 5
100
= 2,5
Raspberry Pi hanya memiliki 1 pin PWM
Hardware (pin 1/BCM_GPIO18)
SoftPWM membantu semua pin GPIO dari
Raspberry Pi mampu mengeluarkan sinyal
PWM
softPwmCreate
Pin
initialValue
pwmRange
(int pin,
int initialValue,
int pwmRange)
: nomor pin I/O
: nilai awal PWM
: range nilai PWM / periode
(default =100)
softPwmWrite (int pin, int value)
Pin
: nomor pin I/O
Value : lebar pulsa high (default =100 -> 10ms)
Pada program Terminal, ketikan perintah
sudo python [Link]
LED dari terang perlahan redup dan akhirnya
padam.
LED dari padam perlahan menjadi terang.
Jika ingin melihat kode program, pada program
Terminal ketikan
sudo nano [Link]
import wiringpi
from time import sleep
# import library WiringPi2-Python
# import library sleep
#Must be called before using IO Function
[Link]()
[Link](0,0,100)
while True :
# endless loop
# range min 0, max 101, (0-100)
for i in range(0,101,1):
# PWM pulse on pin 0
[Link](0,i)
sleep(0.02)
# delay for 20ms
sleep(0.1)
# delay for 100ms
# range min 100, max 0, (100-0)
for i in range(100,-1,-1):
# PWM pulse on pin 0
[Link](0,i)
sleep(0.02)
# delay for 20ms
sleep(0.1)
# delay for 100ms
Membuat aplikasi agar 2 buah switch bisa
mengendalikan 2 LED yang berbeda
Ketikan perintah di Terminal :
sudo nano dimmer_switch.py
Lengkapi beberapa perintah program
yang kurang pada file dimmer_switch.py
Standar
Kontinyu
[Link](0,0,200)
[Link](0,10)
Pada program Terminal ketikan perintah
berikut ini :
sudo python [Link]
Motor Servo akan berputar ke arah 00 (6ms)
dan kemudian berputar ke arah 1800 (24ms).
Jika ingin melihat kode program, pada
program Terminal ketikan perintah berikut ini
:
sudo nano [Link]
Membuat aplikasi agar 2 buah switch bisa
mengendalikan arah putar motor servo
Ketikan perintah di Terminal :
sudo nano servo_switch.py
Lengkapi beberapa perintah program
yang kurang pada file servo_switch.py