raspi_gpio_led

Bagaimana Cara Mengontrol Lampu LED Menggunakan Raspberry Pi dan REBOL


Mengontrol lampu LED menggunakan GPIO Raspberry Pi sangatlah mudah. GPIO dapat diakses seperti layaknya mengakses file. Dan memanglah setahu saya segala sesuatu yang namanya IO pada sistem operasi linux dapat diakses secara file. Pada postingan kali ini saya akan berikan contoh bagaimana cara mengontrol lampu LED menggunakan Raspberry Pi dan REBOL.

Mengakses GPIO Raspi Dengan Shell

GPIO Raspberry Pi dapat kita akses secara langsung melalui shell menggunakan perintah-perintah Shell seperti echo (write) dan cat (read). Sebelum dapat mengakses GPIO, maka perlu dilakukan export terlebih dahulu. Export akan menciptakan folder baru untuk pin yang di-export dan sekaligus menciptakan file-file fungsi kontrol untuk mengontrol fungsi pin yang di-export. Fungsi kontrol tersebut antara lain:

  • active_low
  • direction
  • edge
  • power
  • subsystem
  • uevent
  • value

File-file fungsi kontrol tersebut dapat dibaca oleh non-root (user) akan tetapi untuk menuliskan data hanya dapat dilakukan oleh root sebagai pemilik. Oleh karenanya diperlukan sudo.

Berikut adalah contoh menyalakan lampu LED pada GPIO-5 (pin-29) menggunakan shell.

  1. Buka terminal
  2. Rangkai LED seperti foto di atas (LED aktif LOW)
  3. Aktifkan akses root dengan perintah:
    $ sudo -i
  4. Konfigurasi GPIO-5 sebagai OUTPUT dan LED=OFF dengan perintah:
    $ echo "5" > /sys/class/gpio/export
    $ echo "out" > /sys/class/gpio/gpio5/direction
    $ echo "1" > /sys/class/gpio/gpio5/value
  5. Menyalakan LED dengan mengeset GPIO-5 = LOW (“0″)
    $ echo "0" > /sys/class/gpio/gpio5/value
  6. Mematikan LED dengan mengeset GPIO-5 = HIGH (“1″)
    $ echo "0" > /sys/class/gpio/gpio5/value
  7. Kembalikan GPIO-5 ke kondisi semula setelah digunakan
    $ echo "5" > /sys/class/gpio/unexport
  8. Dan kita kembalikan kembali ke akses user
    $ exit

Guampang, bukan? Nah, sekarang kita akan melakukan hal yang sama dengan REBOL3.

Mengakses GPIO Raspi Dengan REBOL3

  1. Masih dengan rangkaian LED yang sama, kita buka terminal
  2. Jalankan REBOL3 dengan perintah:
    $ sudo ./r3
  3. Konfigurasi GPIO-5 sebagai output dan LED=OFF dengan perintah:
    >> write %/sys/class/gpio/export "5"
    >> write %/sys/class/gpio/gpio5/direction "out"
    >> write %/sys/class/gpio/gpio5/value "1"
  4. Menyalakan LED dengan mengeset GPIO-5 = LOW (“0″)
    >> write %/sys/class/gpio/gpio5/value "0"
  5. Mematikan LED dengan mengeset GPIO-5 = HIGH (“1″)
    >> write %/sys/class/gpio/gpio5/value "1"
  6. Membuat Blinking LED dengan perulangan 10 kali – delay 500ms
    >> gpio5: %/sys/class/gpio/gpio5/value
    >> loop 10 [write gpio5 "0" wait .5 write gpio5 "1" wait .5]
  7. LED pada GPIO-5 pun berkedip sebanyak 10 kali dengan durasi-on/off 500 milidetik.

raspi_gpio_rebol

Contoh Program Flip-Flop

Setelah sukses mengontrol sebuah lampu LED pada GPIO-5 (pin-29), sekarang kita akan mengontrol dua lampu LED dengan membuat aplikasi Flip-Flop. LED1 terhubung ke GPIO-5 dan LED2 terhubung ke GPIO-6. Berikut adalah kode program REBOL-nya.

Listing Program flipflop56.r3

REBOL [
  filename: %flipflop56.r3
  title: "Flip-Flop LED Raspi GPIO-5 dan GPIO-6"
  programmer: "Chandra MDE"
  blog: "Raspberry Pi Notes"
  website: http://raspi.teknikelektrolinks.com
]

jumlah-loop: 1000 ; default = seribu kedip
		  ; jumlah-kedip bisa diatur menggunakan parameter
		  ; contoh: ./r3 flipflop56.r3 10 ===> 10 kali

all [system/script/args jumlah-loop: to integer! system/script/args]

DLED1: %/sys/class/gpio/gpio5/direction
DLED2: %/sys/class/gpio/gpio6/direction
VLED1: %/sys/class/gpio/gpio5/value
VLED2: %/sys/class/gpio/gpio6/value

;inisialisasi GPIO-5 dan GPIO-6 sebagai OUTPUT
init-gpio: func [
][
	write %/sys/class/gpio/export "5"
	write DLED1 "out"
	write VLED1 "1"
	write %/sys/class/gpio/export "6"
	write DLED2 "out"
	write VLED2 "1"
]

;lampu kedip alias flipflop
flip-flop: func [
][
	write VLED1 "0" ;on
	wait .5
	write VLED1 "1" ;off
	write VLED2 "0" ;on
	wait .5
	write VLED2 "1" ;off
]

init-gpio
for n 1 jumlah-loop 1 [
        print ["Perulangan ke-" n]
	flip-flop
]
quit

Menjalankan Program Flip-Flop

Setelah kode program flipflop56.r3 selesai diketik, kita dapat langsung mencobanya dengan menjalankan perintah pada shell sebagai berikut:

$ sudo ./r3 flipflop56.r3

Pemanggilan tanpa argument (parameter) akan menyebabkan program menjalankan proses flip-flop sebanyak 1000 kali, yakni nilai default dari jumlah-loop. Untuk menjalankan proses flip-flop sebanyak 10 kali, gunakan perintah sebagai berikut:

$ sudo ./r3 flipflop56.r3 10

Screenshot Flip-Flop RASPI-REBOL

raspi_rebol_flipflop

Video Pengujian Flip-Flop REBOL

Anda dapat menyaksikan video pengujian program dan rangkaian di atas pada situs youtube melalui link berikut ini:

https://youtu.be/X_hM9Dj7Ao0

Sangat menarik, bukan? Pada postingan yang akan datang saya akan memberikan contoh bagaimana membaca masukan (input) dari GPIO Raspberry Pi menggunakan Shell dan REBOL. File aplikasi REBOL3 (r3) dan kode program flipflop56.r3 dapat Anda miliki secara GRATIS dengan MEMBERIKAN KOMENTAR di bawah postingan ini.

Silakan memberikan komentar beserta nama dan alamat email Anda dan saya akan mengirim file-file tersebut langsung ke email Anda.

Sekian Catatan Eksperimen Raspberry Pi kali ini. Semoga bermanfaat.

Selamat berkarya!

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s