Dalam tutorial ini, anda akan lihat beberapa contoh structure coding python yang mudah dilakukan dan senang difahami bagi sesiapa yang mempunyai pengalaman mengolah coding.
Tutorial ini akan menggunakan pin GPIO pada Raspberry pi untuk mengawal komponen elektronik. Penting untuk kita tahu bahawa pin GPIO ini mempunyai beberapa mode. Mode yang akan diterangkan adalah ‘BCM’ dan ‘BOARD’
Satu lagi yang perlu ambil perhatian adalah command GPIO.cleanup(). Command ini sngat penting untuk reset semula pin GPIO yang telah digunakan supaya dapat recycle semula pin tersebut untuk kegunaan project lain

mode BCM adalah pin yang berlabel GPIO
Menyalakan LED
# Sambungan Litar

- LED 1: sambung ke GPIO 25(mode BCM)
- LED 2: sambung ke GPIO 8(mode BCM)
- LED 3: sambung ke GPIO 7 (mode BCM)
- GND: sambung ke pin GND
#Coding/Sketch
Create file pada root dierctory dengan command ini pada terminal
$.nano led_test.py
#Bahagian ini adalah list library yang akan #digunakan dalam coding import RPi.GPIO as GPIO import time #set pin GPIO ke BCM GPIO.setmode(GPIO.BCM) #declare pin GPIO yang digunakan GPIO.setup(25, GPIO.OUT) GPIO.setup(8, GPIO.OUT) GPIO.setup(7, GPIO.OUT) #coding utama yang akan dijalankan GPIO.output(25,GPIO.HIGH) GPIO.output(8,GPIO.LOW) GPIO.output(7,GPIO.LOW) time.sleep(3) #time.sleep adalah sama seperti delay yang digunakan dlm Arduino #3 bersamaan dengan 3 saat GPIO.output(25,GPIO.LOW) GPIO.output(8,GPIO.HIGH) GPIO.output(7,GPIO.LOW) time.sleep(3) GPIO.output(25,GPIO.LOW) GPIO.output(8,GPIO.LOW) GPIO.output(7,GPIO.HIGH) time.sleep(3) GPIO.cleanup()
copy atau type kan coding diatas dan tekan Ctrl+x, kemudian tekan y dan tekan Enter
Coding di atas menggunakan 3 LED di mana setiap LED akan menyala selama 3 saat
Ultrasonic Sensor
#Sambungan Litar
#Coding 1
Create file pada root dierctory dengan command ini pada terminal
$.nano ultrsonicsensor1.py
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) TRIG=23 ECHO=24 GPIO.setup(TRIG, GPIO.OUT) GPIO.setup(ECHO, GPIO.IN) #Initial setup GPIO.output(TRIG, True) time.sleep(0.0001) GPIO.output(TRIG, False) #Coding Utama while GPIO.input(ECHO) == False: start = time.time() while GPIO.input(ECHO) == True: end = time.time() sig_time = end-start distance = sig_time / 0.000058 distance = round (distance, 2) print('Distace: {} cm'.format(distance)) GPIO.cleanup()
Menggunakan coding di atas anda akan dapat jumlah jarak object yang berada di hadapan ultrasonic sensor anda. Pada bahagian initial setup, ultrasonic sensor menembak signal ultrosonic sensor setiap o.ooo1 saat.
Kemudian pada coding utama pengiraan jarak dapat dihasilkan melalui masa signal ultrasonic sampai ke receiver.
Tetapi coding ini hanya berjalan sekali sahaja. Untuk menjadikan loop untuk coding diatas sedikit tambahan perlu di ubah suai.
Coding #2
Create file pada root dierctory dengan command ini pada terminal
$.nano ultrsonicsensor2.py
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) TRIG=23 ECHO=24 GPIO.setup(TRIG, GPIO.OUT) GPIO.setup(ECHO, GPIO.IN) try: def get_distance(): GPIO.output(TRIG, True) time.sleep(0.0001) GPIO.output(TRIG, False) while GPIO.input(ECHO) == False: start = time.time() while GPIO.input(ECHO) == True: end = time.time() sig_time = end-start distance = sig_time / 0.000058 distance = round (distance, 2) print('Distace: {} cm'.format(distance)) return distance while True: distance = get_distance() time.sleep(0.1) except KeyboardInterrupt: GPIO.cleanup()
Coding di atas akan menjadikan coding ultrasonic tadi ‘loop’. Terdapat syarat yang perlu dipenuhi sebelum coding ‘loop’ dijalankan iaitu perlu ada protocol ‘stop’
Dalam contoh di atas coding stop menggunakan function KeyboardInterrupt iaitu apabila Ctrl+C ditekan coding tersebut akan berhenti dan GPIO.cleanup() dpat dijalankan
Ultrasonic + LED
#Sambungan Litar
#Coding
Create file pada root dierctory dengan command ini pada terminal
$.nano ultrsonicsensor_led.py
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) TRIG=23 ECHO=24 LED1=25 LED2=8 LED3=7 GPIO.setup(TRIG, GPIO.OUT) GPIO.setup(ECHO, GPIO.IN) GPIO.setup(LED1, GPIO.OUT) GPIO.setup(LED2, GPIO.OUT) GPIO.setup(LED3, GPIO.OUT) try: def LED1_ON(): GPIO.output(LED1,GPIO.HIGH) GPIO.output(LED2,GPIO.LOW) GPIO.output(LED3,GPIO.LOW) def LED2_ON(): GPIO.output(LED1,GPIO.LOW) GPIO.output(LED2,GPIO.HIGH) GPIO.output(LED3,GPIO.LOW) def LED3_ON(): GPIO.output(LED1,GPIO.LOW) GPIO.output(LED2,GPIO.LOW) GPIO.output(LED3,GPIO.HIGH) def get_distance(): GPIO.output(TRIG, True) time.sleep(0.0001) GPIO.output(TRIG, False) while GPIO.input(ECHO) == False: start = time.time() while GPIO.input(ECHO) == True: end = time.time() sig_time = end-start distance = sig_time / 0.000058 distance = round (distance, 2) print('Distace: {} cm'.format(distance)) return distance while True: distance = get_distance() time.sleep(0.1) if distance<=10: LED1_ON if 10 > distance > 20: LED2_ON if distance >=20: LED3_ON except KeyboardInterrupt: GPIO.cleanup() print('Program Off')
Coding di atas adalah contoh cara menggunakan data sensor untuk trigger proses lain di mana data ultrasonic sensor digunakan untuk menghidupkan LED.
Servo motor
#Sambungan Litar

- Input : sambungkan ke GPIO 4
- Vcc: sambungkan ke 5V
- GND: sambungkan ke GND
#Coding
Create file pada root dierctory dengan command ini pada terminal
$.nano servo.py
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) SERVO = 4 GPIO.setup(SERVO, GPIO.OUT) p = GPIO.PWM(SERVO, 50) # GPIO 4 for PWM with 50Hz p.start(2.5) # Initialization try: while True: p.ChangeDutyCycle(5) time.sleep(0.5) p.ChangeDutyCycle(7.5) time.sleep(0.5) p.ChangeDutyCycle(10) time.sleep(0.5) p.ChangeDutyCycle(12.5) time.sleep(0.5) p.ChangeDutyCycle(10) time.sleep(0.5) p.ChangeDutyCycle(7.5) time.sleep(0.5) p.ChangeDutyCycle(5) time.sleep(0.5) p.ChangeDutyCycle(2.5) time.sleep(0.5) except KeyboardInterrupt: p.stop() GPIO.cleanup()
Coding diatas adalah coding untuk menggerakkan servo motor menggunakan Raspberry pi. Nilai indicator untuk darjah pusingan adalah:
- 2.5 = 0 darjah
- 7.5 = 90 darjah
- 12.5= 180 darjah