General Purpose Input Output atau singkatannya GPIO adalah salah satu cara di mana Raspberry Pi dapat mengawal dan memantau dunia luar melalui sambungan ke litar elektronik (seperti LED dan suis). – Pengenalan –

Oleh Muhammad Ilyasaa dalam Tutorial Raspberry Pi
Tahap Kesukaran : Baru Mula Belajar

Kami persembahkan bacaan di laman NADI Eleczone Solutions ini kepada para pelajar, mahasiswa dan peminat teknologi, demi kepentingan perkembangan ilmu teknologi ilmiah dan amaliah di Malaysia tercinta kita.
Semoga diberkahi dan diredhai Allah Subhanahu wa Ta’ala – Amin!

# Pembacaan di bawah sesuai digunakan bersama sama papan Raspberry Pi 3, Raspberry Pi Zero, Raspberry Pi 4 dan mana mana papan Raspberry Pi yang bersesuaian.

Penulisan “Raspberry Pi GPIO Pemilihan BCM Atau Board?” ini ditulis menggunakan asas dari penulisan “Raspberry Pi Bagaimana Untuk Menggunakan Diod Pemancar Cahaya“.

Jika anda belum membaca tutorial Raspberry Pi Bagaimana Untuk Menggunakan Diod Pemancar Cahaya, anda boleh membaca tutorial tersebut dahulu.

>> Pengenalan <<

General Purpose Input Output atau singkatannya GPIO adalah salah satu cara di mana Raspberry Pi dapat mengawal dan memantau dunia luar melalui sambungan ke litar elektronik (seperti LED dan suis).

Melalui pin GPIO, Raspberry Pi dapat mengawal LED dengan menghidupkan atau memadamkannya, menggerakkan motor, dan berinteraksi dengan banyak objek elektronik lain. Ia juga dapat mengesan keadaan suis, perubahan suhu atau cahaya, dan lain-lain melalui pemasangan sensor elektronik yang bersesuaian. Aktiviti aktiviti GPIO seperti contoh contoh di atas kebiasaanya dikategorikan sebagai pengkomputeran fizikal.

>> GPIO <<

Kebanyakkan model Raspberry Pi mempunyai 40 pin seperti di bawah :

Pin pin ini adalah perantara diantara Raspberry Pi dan dunia fizikal. Dengan memprogram Raspberry Pi dan membuat sambungan kepada pin pin ini, anda boleh menghidupkan dan mematikan peranti output atau menerima data dari sensor dan suis (input). Daripada 40 pin tersebut, 26 pin adalah GPIO dan yang selebihnya adalah pin power, ground serta ditambah dua pin EEPROM ID (kebiasaanya EEPROM ID tidak digalakkan untuk disentuh oleh beginner).

>> Penomboran Pin GPIO <<

Terdapat dua cara untuk mengawal pin pin GPIO yang terdapat di atas papan komputer Raspberry Pi.

Pertama adalah BCM iaitu menggunakan nombor BCM GPIO yang unik. Bulatan bewarna kuning di dalam gambar di bawah adalah pin BCM GPIO Raspberry Pi. Susunan angka yang terdapat di dalam bulatan tersebut adalah sesuatu yang pelik pada kebiasaannya. Jadi ia menjadikan pengguna susah untuk mengingat nombor nombor pin tersebut.

Kedua adalah BOARD iaitu menggunakan nombor fizikal pin Raspberry Pi. Kaedah ini lebih mudah kerana susunan nya lebih teratur dan mudah diingati seperti gambar di bawah.

Untuk tutorial di laman sesawang NADI Eleczone Solutions ini, kadangkala kami akan merujuk kepada pin menggunakan skema penomboran BCM dan kadangkala kami akan menggunakan skema penomboran BOARD.

Sebagai contoh, jika anda ingin menggunakan pin yang ditandakan pada gambar di atas menggunakan kaedah:

  • BCM : Anda perlu memanggil pin tersebut dengan nombor 21 di dalam kod.
  • BOARD : Anda perlu memanggil pin tersebut dengan nombor 40 di dalam kod.

Menggunakan asas dari penulisan “Raspberry Pi Bagaimana Untuk Menggunakan Diod Pemancar Cahaya“, kami akan cuba untuk menerangkan tentang cara penetapan GPIO menggunakan kaedah BCM dan BOARD.

Jika anda belum membaca tutorial Raspberry Pi Bagaimana Untuk Menggunakan Diod Pemancar Cahaya, anda digalakkan untuk mencuba tutorial tersebut dahulu.

>> Jom kita mulakan <<

Dalam tutorial ini, anda perlukan :

>> Sambungan Litar <<

Ambil papan Raspberry Pi anda dan bina litar di bawah. Kita akan menggunakan pin BCM GPIO 18 (kaedah penomboran BCM) atau pin BOARD 12 (kaedah penomboran BOARD) Raspberry Pi untuk mengawal diod pemancar cahaya. Pin BCM GPIO 18 dan pin BOARD 12 adalah merujuk kepada pin yang sama.

Fail Fritzing : rasp led.fzz

>> Kod Python Raspberry Pi menggunakan kaedah BCM <<

Di bawah adalah kod python penuh menggunakan kaedah penomboran BCM yang akan digunakan kita dalam tutorial ini.

#!/usr/bin/python

# Bahagian Pustaka
import RPi.GPIO as PIN
import time

# Nota tentang Pin papan Raspberry PI
# +5  +5   - TX RX IO  - IO IO   -  IO SPI SPI I2C  - IO  - IO IO IO
#  2   4   6  8 10 12 14 16 18  20  22  24  26  28 30 32 34 36 38 40
#  1   3   5  7  9 11 13 15 17  19  21  23  25  27 29 31 33 35 37 39
# +3 I2C I2C IO  - IO IO IO +3 SPI SPI SPI   - I2C IO IO IO IO IO  -

# Fungsi Kod Utama
def main():
    # Jadikan Pin BCM GPIO 18 sebagai Output
    PIN.setmode(PIN.BCM)
    PIN.setwarnings(False)
    PIN.setup(18,PIN.OUT)

    # Pusingan selama lamanya
    while True:

        PIN.output(18,PIN.HIGH)
        print ("Hidupkan Lampu.")
        time.sleep(1)

        PIN.output(18,PIN.LOW)
        print ("Padamkan Lampu.")
        time.sleep(1)

# Fungsi kod bagi memastikan pin ditetapkan kepada input semula
def endprogram():
    PIN.cleanup()

# Susun atur kod untuk dilaksanakan
if __name__ == '__main__':

    try:
        main()
    except KeyboardInterrupt:
        print ("\nKod siap dilaksanakan.")
    finally:
        endprogram()

Fungsi PIN.setmode()

Di dalam fungsi main(), kita akan mengkonfigurasikan kod supaya nombor pin yang digunakan adalah mengikut skema penomboran BCM. Ini dapat dilakukan dengan menggunakan arahan PIN.setmode(PIN.BCM).

Seterusnya, kita akan mengkonfigurasikan pin BCM GPIO 18 sebagai pin Output dengan menggunakan arahan PIN.setup(). Nombor 18 di dalam kod Python PIN.setup(18,PIN.OUT) kini adalah merujuk kepada skema penomboran BCM.

.
.

# Jadikan Pin BCM GPIO 18 sebagai Output
PIN.setmode(PIN.BCM)
PIN.setwarnings(False)
PIN.setup(18,PIN.OUT)

.
.

>> Kod Python Raspberry Pi menggunakan kaedah BOARD <<

Di bawah adalah kod python penuh menggunakan kaedah penomboran BOARD yang akan digunakan kita dalam tutorial ini.

#!/usr/bin/python

# Bahagian Pustaka
import RPi.GPIO as PIN
import time

# Nota tentang Pin papan Raspberry PI
# +5  +5   - TX RX IO  - IO IO   -  IO SPI SPI I2C  - IO  - IO IO IO
#  2   4   6  8 10 12 14 16 18  20  22  24  26  28 30 32 34 36 38 40
#  1   3   5  7  9 11 13 15 17  19  21  23  25  27 29 31 33 35 37 39
# +3 I2C I2C IO  - IO IO IO +3 SPI SPI SPI   - I2C IO IO IO IO IO  -

# Fungsi Kod Utama
def main():
    # Jadikan Pin BOARD 12 sebagai Output
    PIN.setmode(PIN.BOARD)
    PIN.setwarnings(False)
    PIN.setup(12,PIN.OUT)

    # Pusingan selama lamanya
    while True:

        PIN.output(12,PIN.HIGH)
        print ("Hidupkan Lampu.")
        time.sleep(1)

        PIN.output(12,PIN.LOW)
        print ("Padamkan Lampu.")
        time.sleep(1)

# Fungsi kod bagi memastikan pin ditetapkan kepada input semula
def endprogram():
    PIN.cleanup()

# Susun atur kod untuk dilaksanakan
if __name__ == '__main__':

    try:
        main()
    except KeyboardInterrupt:
        print ("\nKod siap dilaksanakan.")
    finally:
        endprogram()

Fungsi PIN.setmode()

Di dalam fungsi main(), kita akan mengkonfigurasikan kod supaya nombor pin yang digunakan adalah mengikut skema penomboran BOARD. Ini dapat dilakukan dengan menggunakan arahan PIN.setmode(PIN.BOARD).

Seterusnya, kita akan mengkonfigurasikan pin BOARD 12 sebagai pin Output dengan menggunakan arahan PIN.setup(). Nombor 12 di dalam kod Python PIN.setup(12,PIN.OUT) kini adalah merujuk kepada skema penomboran BOARD.

.
.

# Jadikan Pin BOARD 12 sebagai Output
PIN.setmode(PIN.BOARD)
PIN.setwarnings(False)
PIN.setup(12,PIN.OUT)

.
.

>> JOM KITA CUBA KOD PYTHON <<

Siapkan litar dan salin atau muat turun kod led_BCM.py dan led_BOARD.py ke dalam papan Raspberry Pi anda. Ini dapat dilakukan dengan pertama membuka terminal.

Tulis arahan di bawah untuk pergi ke direktori home pi :

cd

Anda boleh memuat turun kedua dua kod di atas secara automatik dengan menulis arahan di bawah pada terminal, pastikan anda telah membuat sambungan kepada WiFi :

wget -O led_BCM.py https://bit.ly/3f6TSRl
wget -O led_BOARD.py https://bit.ly/2MISlVq

>> melaksanakan kod python <<

Seterusnya, laksanakan kod python di atas dari terminal. Kita mulakan dengan kod led_BCM.py terlebih dahulu. Ini dapat dilakukan dengan menaip arahan berikut di terminal :

thonny led_BCM.py

Klik ENTER pada keyboard. Ini akan membuka IDE Thonny bersama sama kod led.py. IDE Thonny adalah IDE yang mampu melaksanakan kod Python dan ianya dikonfigurasikan untuk menggunakan Python 3. Klik pada butang RUN untuk mula melaksanakan kod.

Hasilnya, diod pemancar cahaya akan memancar cahaya dengan selang masa selama satu ketika. Selain itu, terminal juga akan memaparkan :

Kod led_BCM.py akan berjalan selama lamanya selagi tidak dihentikan. Kod boleh dihentikan dengan menekan “Ctrl+c” di terminal.

Tips : Jika diod pemancar cahaya tidak menyalakan cahaya, cuba tukarkan polariti diod pemancar cahaya anda.

>> Seterusnya … <<

Seterusnya, ulangi langkah melaksanakan kod python ini ke atas fail led_BOARD.py dan anda akan dapati hasil yang sama iaitu diod pemancar cahaya akan memancar cahaya dengan selang masa selama satu ketika. Walaupun nombor pin yang digunakan di dalam kod led_BCM.py dan led_BOARD.py adalah berbeza namun ianya masih dapat mengawal pin yang sama.

Inilah yang dimaksudkan dengan pin menggunakan skema penomboran BCM dan menggunakan skema penomboran BOARD.

>> Tahniah, Anda Hebat <<

Kunjungi sekarang kedai Raspberry Pi Pulau Pinang di

Nadi Eleczone Solutions
Lot 1667, Tingkat 1, Jalan Teluk Air Tawar, Taman Air Tawar Indah, 13050 Butterworth, Penang
04 – 351 1802

TINGGALKAN JAWAPAN BALAS ANDA

Sila masukkan ulasan anda!
Sila masukkan nama anda di sini