Contents
Raspberry Pi adalah komputer mini seukuran kartu kredit buatan Raspberry Pi di UK (walapun sebagian besar pabrikasinya di China). Dengan Raspberry Pi kita dapat menginstal berbagai macam Operating System (OS) Linux seperti Armbian, Raspbian, Manjaro, RetroPie, DietPi, Kano OS, Ubuntu, OSMC, Kali Linux, dan masih banyak lainnya. Untuk OS officialnya adalah Raspbian yang sekarang dikembangkan dengan nama ‘Raspberry Pi OS’. Dengan Raspberry Pi ini kita dapat melakukan banyak hal seperti halnya komputer/laptop biasa seperti pengeditan dokumen, browsing internet sampai dengan mendengarkan musing atau memainkan video. Dengan Raspberry Pi ini kita juga dapat melakukan kegiatan kontrol dan monitoring lingkungan sepertinya halnya Arduino dan NodeMCU namun dalam skala yang lebih advanced lagi. Raspberry Pi juga dapat dikembangkan untuk aplikasi berbasis AI (Artificial Intelligence)
Baiklah, mari kita coba belajar Raspberry Pi ini dari dasar. Sebagai alat bantu pembelajaran, kita bisa menggunakan modul ‘Basic Trainer Kit’ buatan startup kami ‘Indomaker’. Sebagai flash info, modul ini merupakan modul pembelajaran elektronika yang didesain khusus untuk mempelajari berbagai macam komponen (sensor dan aktuator) dan bagaimana cara mengakses/mengontrolnya melalui script/program. Modul Basic Trainer Kit ini merupakan bagian pertama dari modul pembelajaran Indomaker (ada modul kategori basic, intermediate, advanced, IoT, AI). Khusus Basic Trainer Kit, modul ini mempelajari komponen-komponen dasar (6 sensor dan 5 aktuator) yang sering digunakan dalam project elektronika. Selain ringkas dan mudah dibawa kemana saja, modul ini didesain supaya mudah dipelajari dan terjangkau harganya.
Tutorial GPIO Raspberry Pi 3/4
Mari kita coba praktekkan bagaimana bekerja dengan GPIO Raspberry Pi 3/4 dengan bantuan modul Basic Trainer Kit ini. Pertama-tama kita siapkan dulu alat dan bahannya sebagai berikut:
- Modul Basic Trainer Kit
- Jumper female-female (sudah tersedia dalam paket modul)
- Power supply (sudah tersedia)
- Laptop/komputer
- koneksi WIFI (bisa menggunakan smartphone)
- micro SD yang sudah terinstal Raspberry Pi OS
Dari sisi perangkat lunak, yang perlu disiapkan adalah:
- Putty, software terminal client untuk remote login ke Raspberry Pi
- Notepad++ dan plugin NppFTP. Aplikasi Notepad++ ini digunakan untuk sebagai sofware editing untuk script (Python) yang nantinya akan dieksekusi Raspi, sedangkan plugin NppFTP adalah plugin yang digunakan untuk mengirim file ke Raspi menggunakan protokol SFTP (Secure FTP di port 22). Untuk instalasi plugin NppFTP bisa dibaca di artikel “plugin NppFTP Noepad++“, sedangkan setup SFTP untuk Raspberry Pi bisa dibaca di artikel “SFTP Raspberry Pi“. Kelebihan menggunakan Notepadd++ NppFTp ini adalah kita bisa mengedit script di laptop dan langsung tersimpan di Raspberry Pi ketika ketika menekan tombol Save. Jadi kita tidak perlu bolak balik dari laptop ke Raspberry Pi.
Penggunaan Notepad++ sifatnya opsional, jika Anda lebih familiar dengan software lain dipersilahkan, atau jika ingin langsung mengedit di Raspberry Pi juga bisa (dengan aplikasi IDLE, Thonny atau Text Editor Nano). Yang penting Anda nyaman dengan environment programming yang Anda pilih
Percobaan 1 : On/Off Led Menggunakan Raspberry Pi
Untuk memulai percobaan yang pertama ini, silahkan jumper pin 12 Raspberry Pi (GPIO 18) ke pin L1 (LED-1) pada papan modul Basic Trainer Kit. Lihat gambar di bawah untuk lebih jelasnya
Buka Notepad++ kemudian tulis script sebagai berikut
from gpiozero import LED from time import sleep led = LED(18) led.on() sleep(1) led.off() sleep(1)
Save script di atas dengan nama led.py
Pastikan Notepad++ login ke Raspberry Pi Anda ya, supaya bisa tersimpan di Raspberry Pi. Caranya bisa dibaca di artikel “persiapan environment pemrograman Raspberry Pi“. Kemudian untuk penulisan nama file harus diapit tanda petik dua. Contoh “led.py”
Berikutnya, eksekusi script di atas melalui Putty dengan mengetikkan perintah ‘python led.py’. Lihat yang terjadi pada LED-1 di papan Basic Trainer Anda (seharusnya LED akan nyala selama 1 detik kemudian akan mati
– Pastikan aplikasi Putty Anda sudah berhasil remote login ke Raspberry Anda. Jika belum, bisa Anda baca tutorialnya di artikel “Putty Raspi“.
– perintah ‘python’ adalah perintah untuk menjalankan script menggunakan python versi 2 (2.7) sedangkan jika ingin menggunakan python versi 3 Anda bisa menggunakan perintah python3 led.py
Penjelasan program On/Off LED Raspberry Pi 3 / 4
Baris 1 : memanggil library bawaan Raspberry Pi untuk kendali GPIO (General Purpose Input Output)
Baris 2 : memanggil library time untuk keperluan delay
Baris 4 : mendefinisikan pin GPIO18 sebagai pin yang terhubung ke LED-1 di papan Basic Trainer Kit melalui jumper female to female
Baris 6 : perintah untuk menghidupkan LED-1
Baris 7 : jeda waktu (delay) satu detik
Baris 8 : perintah untuk mematikan LED-1
Baris 9 : jeda waktu (delay) satu detik sebelum program berakhir
di papan Basic Trainer Kit, LED didesain katoda terhubung ke ground (melalui resistor 1K), jadi untuk menghidupkan LED cukup dengan memberikan logic 1 (HIGH/tegangan 3.3V) ke kaki anoda LED di pin header ‘L1’
Gambar rangkaian untuk percobaan di atas ditunjukkan pada gambar berikut ini
Percobaan 2 : Blinking LED di RASPI 3 / 4
Masih menggunakan gambar rangkaian di atas, sekarang mari kita buat LED-1 berkedip terus menerus (blinking). Silahkan masuk kembali ke Notepad++ dan bikin file baru (New File) dan ketikkan script sebagai berikut:
from gpiozero import LED from time import sleep led = LED(18) while True: led.on() sleep(1) led.off() sleep(1)
Save script di atas dengan nama “ledblink.py”. Perhatikan di jendela sebelah kanan, pastikan file sudah tersimpan.
Awas!!! Pemrograman dengan Python cukup berbeda dengan pemrograman bahasa lain. Python mengenal indentation, artinya karakter spasi atau tab di paling kiri tiap baris program akan diperhitungkan saat compile. Beda spasi/tab dengan baris di bawahnya, artinya bisa beda. Jika Anda kesulitan, bisa download script yang ada di tutorial ini di link github ini
Silahkan remote login kembali Raspberry Pi melalui Putty, dan ketikkan perintah ‘python ledblink.py’, kemudian lihat hasilnya di modul Basic Trainer Anda. Seharusnya LED akan berkedip/blinking terus menerus. Ini adalah efek dari perulangan ‘while True pada baris [6] yang menjalankan baris 9-12 secara terus menerus (looping) karena perintah while True (jika kondisi selalu benar)
Sampai di sini sudah mulai paham bukan mengenai cara handling GPIO di Raspberry Pi 3/4 menggunakan Python?
Supaya lebih paham dan menggugah ketertarikan terhadapa pemrograman low level menggunakan Raspberry Pi, mari kita lanjut lagi percobaannya
Percobaan 3 : LED Geser degan RASPI
Kalau pada percobaan sebelumnya kita hanya menggunakan 1 LED, kini kita tingkatkan menggunakan 4 LED sekaligus. Silahkan jumper dulu pin header L2 ke pin 16 Raspi (GPIO23), L3 ke pin 18 (GPIO24), dan L4 ke pin 22 (GPIO25). Lihat gambar di bawah untuk detailnya
Buka Notepad++, buat file baru dengan nama “ledshift.py”. Kemudian isikan script berikut ini
from gpiozero import LED from time import sleep led1 = LED(18) led2 = LED(23) led3 = LED(24) led4 = LED(25) led1.on() sleep(1) led1.off() sleep(1) led2.on() sleep(1) led2.off() sleep(1) led3.on() sleep(1) led3.off() sleep(1) led4.on() sleep(1) led4.off() sleep(1)
Buka Putty, kemudian ketikkan perintah ‘python ledshift.py’. Amati nyala LED setelah script ledshift.py dijalankan. Led akan nyala bergantian (bergeser ke kanan) selama satu kali saja. Jika ingin terus bergeser Anda dapat memodifikasi script dengan perulangan ‘while true’ sebagai berikut:
from gpiozero import LED from time import sleep led1 = LED(18) led2 = LED(23) led3 = LED(24) led4 = LED(25) while True: led1.on() sleep(0.3) led2.on() sleep(0.3) led3.on() sleep(0.3) led4.on() sleep(0.3) led1.off() led2.off() led3.off() led4.off() sleep(0.3)
File di atas dapat Anda simpan dengan nama “ledshift2.py”. Jalankan program melalui Putty dan perhatikan sekarang LED akan bergeser dan terus berulang. Anda dapat mencoba berbagai macam variasi LED sesuai imajinasi Anda. Silahkan dicoba-coba sendiri ya 🙂
Jika Anda perhatikan pada program-program di atas, kita masih menjalankan perintah led.on() dan led.off() satu-satu saat akan menyalakan dan mematikan led. Bagaimana jika ingin menjalankan banyak variasi nyala/hidup LED? tentu akan memakan banyak baris program, bukan? Nah untuk mengatasi hal tersebut mari kita lakukan percobaan berikut:
Percobaan 4 : [BONUS] LED Geser dengan Function Python di Raspberry Pi
Masih sama dengan rangkaian hardware pada percobaan 3, pada percobaan 4 ini kita hanya akan mempermudah sisi programnya aja. Kali ini kita akan buat function yang akan mempermudah kita mengendalikan nyala LED. Buka Notepad++, buat file baru dengan nama “ledshift4.py”, kemudian tulis baris program sebagai berikut:
from gpiozero import LED from time import sleep led1 = LED(18) led2 = LED(23) led3 = LED(24) led4 = LED(25) def geserled (a,b,c,d): if a==1: led1.on() else: led1.off() if b==1: led2.on() else: led2.off() if c==1: led3.on() else: led3.off() if d==1: led4.on() else: led4.off() while True: #geserled (0,0,0,0) #sleep(0.3) geserled (1,0,0,0) sleep(0.3) geserled (0,1,0,0) sleep(0.3) geserled (0,0,1,0) sleep(0.3) geserled (0,0,0,1) sleep(0.3) geserled (0,0,1,0) sleep(0.3) geserled (0,1,0,0) sleep(0.3) #geserled (1,1,1,1) #sleep(0.3)
Perhatikan bahwa pada baris 9-17 adalah function ‘geserled’ yang memudahkan kita dalam mengendalikan LED. Function ini memiliki 4 buah parameter yakni (a, b, c, d) yang masing-masing adalah representasi nyala LED. Jika bernilai 1 pada parameter-parameter ini maka, LED akan dinyalakan, dan sebaliknya jika bernilai 0 maka LED akan mati.
Langkah selanjutnya adalah memanggil function saat akan mengendalikan LED dengan perintah “geserled (1,0,0,0)”. Ini artinya kita akan menyalakan LED-1 dan mematikan LED-2 s.d LED-4. Dengan adanya function ini akan memudahkan Anda mengendalikan LED sesuai nyala yang Anda inginkan. Contohnya adalah script di atas. Sedangkan untuk perintah sleep (0.3) maksudnya adalah memerintahkan Raspberry Pi untuk menjeda waktu 0.3 detik (300 milidetik) sebelum menjalankan perintah berikutnya.
Bagaimana, mudah bukan? Pada tahap ini saya rasa pemahaman Anda sudah mulai bertambah tentang bagaimana cara memprogram Raspberry Pi untuk menyalakan LED. Modul Basic Trainer Kit ini memang didesain untuk membangun pemahaman penggunanya melalui percobaan-percobaan yang disusun secara bertahap. Jika Anda tertarik dengan modul Basic Trainer Kit ini bisa membelinya melalui link berikut ini. Ada banyak tutorialnya sehingga dapat membantu mengasah skill pemrograman hardware Anda. Modul ini juga kompatibel dengan Arduino Uno, NodeMCU, Orange Pi, dll sehingga multi fungsi dan dapat digunakan untuk belajar controller lain (ada tutorialnya juga).
Untuk memudahkan Anda belajar atau barangkali ada hal-hal yang terlewat, sudah saya buatkan video tutorial untk percobaan-percobaan di atas. Silahkan disimak
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com