DIY, code nháy LED với Python trên Raspberry Pi 2
Nhân một buổi chiều rảnh rỗi, mình ngồi viết bài này hướng dẫn các bạn code một chương trình nho nhỏ bằng Python để điều khiển đèn LED nháy trên Rasberry Pi 2.
Chiếc Rasberry Pi của mình là Rasberry Pi 2, mình tậu em nó từ hồi năm cuối Đại học (2015), hàng UK nên dùng rất bền, mua về nhà cũng vọc vạch được khá nhiều trò hay ho với cái board này: Cài OSMC lên rồi cắm vô chiếc “stupid” TV nhà mình để biến nó thành smart hơn và cũng hỗ trợ đầy đủ app Youtube, multimedia server các kiểu…
Pi cũng rất thích hợp để nhóc em trai mình học lập trình, với cấu hình RAM: 1GB, SoC: BCM2836 kèm thẻ nhớ 8GB của nó là quá đủ để code Python, C… rồi.
Chiếc Pi của mình trông nó như thế này:
Để thực hiện việc điều kiển nháy LED bằng code Python, thì việc đầu tiên cần làm là chuẩn bị những phần cứng và phần mềm cấn thiết.
Phần cứng
- Board mạch Raspberry Pi
- Board trắng để cắm đèn LED, dây nối và jump
- Điện trở 220 Ohm
Phần mềm
Mình sẽ cài Raspbian lên Pi, Raspbian là hệ điều hành nhân Linux được tuỳ biến riêng cho Rasberry Pi. Hướng dẫn này sẽ nêu chi tiết các bước cài đặt. Remote đến Pi thông qua giao thức ssh để bắt tay vào lập trình, chi tiết tại đây.
Lập trình
Giờ đến công đoạn cuối cùng là code và cài cắm đèn LED vào Pi.
Sơ đồ chân GPIO phục vụ cho việc lập trình như hình dưới đây:
Mình sẽ cắm dây nối đèn LED vào board trắng thông qua jumb để kết nối với chân GPIO trên Pi theo sơ đồ sau:
Đèn LED được mắc nối tiếp với điện trở, cực dương của LED nối với chân số 19 tức GPIO10 của Raspberry Pi còn cực âm được nối với chân số 9 tức Ground nối đất của Raspberry Pi
Mã nguồn chương trình
blink.py
import RPi.GPIO as GPIO
import time
numTimes = int(input("Enter total number of times to blink: "))
speed = float(input("Enter length of each blink (seconds): "))
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(19, GPIO.OUT)
def Blink(numTimes, speed):
for i in range (0, numTimes):
GPIO.output(19, True)
print "Iteration ", (i+1)
time.sleep(speed)
GPIO.output(19, False)
time.sleep(speed)
Blink(numTimes, speed)
print("Done")
Chạy chương trình trên, nhập vào số lần nháy mong muốn và “tần số nháy”
$ python blink.py
Enter total number of times to blink: 50
Enter length of each blink (seconds): 0.5
Và đây là kết quả:
Hi vọng bài viết sẽ giúp các bạn DIY được một ứng dụng nho nhỏ và thú vị này.
Hải Phòng, 27-10-2018.