Hướng tiếp cận với Raspberry Pi bằng python - Cài đặt thư viện và thử hiệu ứng nhấp nháy 1 đèn LED

Mô tả dự án: 

Hôm nay chúng ta sẽ tìm cách nói chuyện với Raspberry Pi bằng ngôn ngữ Python. Thay vì sử dụng ngôn ngữ khác như C++ và NodeJS, sử dụng Python trên Raspberry Pi là một điều cực kỳ tuyệt vời. Bởi vì, python là một ngôn ngữ rất dễ học. Mình cũng đang tự học python và vọc raspberry pi, vì vậy, mình sẽ giúp các bạn khám phá nó. Nào, cùng đi với mình thôi.

Cần chuẩn bị phần cứng

  • Raspberry Pi 2 trở lên (Bạn phải cài hệ điều hành Raspbian, có thể xem hướng dẫn tại các bài viết sau của raspi).
    • http://arduino.vn/bai-viet/688-cai-dat-raspbian-tren-raspberry-pi-he-dieu-hanh-danh-cho-developer-dua-tren-nen-debian
    • hoặc
    • http://arduino.vn/bai-viet/752-cai-dat-raspbian-tren-raspberry-pi-khong-can-man-hinh-va-khong-can-biet-dia-chi-ip
  • Bạn đã đăng nhập vào ssh của Raspberry Pi bằng tài khoản pi hoăc tài khoản root (khuyên nên là root để khỏi bị lỗi lắc nhắc).
  • 1 breadboard
  • Dây breadboard
  • 1 Đèn LED
  • Điện trở 220ohm.
  • Bản phân python hiện giờ có 2 phiên bản là python2.7 (gọi tắc là python2) và python3. Mình khuyên bạn nên chơi với python2 khi mới bắt đầu vì nó ít bug và hiện giờ rất thông dụng!

Sơ đồ chân của Pi2 cho các bạn chưa biết

Nối mạch

Trước khi nối mạch, mình muốn lưu ý với các bạn một điều, Raspberry Pi sử dụng điện thế hoạt động ở các chân GPIO là 3.3V nghĩa là nó chỉ xuất ra 3.3V và đọc ở mức 3.3V. Bạn nào xuất 5V vào Raspberry Pi thì ráng chịu nha. Nói vậy thôi, chứ cẩn thận một tí chứ không thì toi mất cái mạch.

Các bạn nối mạch như hình nhé.

Mình nối cực dương của LED vào GPIO18 và cực âm vào GND.

Chuẩn bị thư viện

Chúng ta sẽ dùng Python (một trong những ngôn ngữ chính thức của Raspberry Pi) để viết chương trình điều khiển khiển các chân GPIO.

Có 2 thư viện hỗ trợ bạn đó là thư viện GPIO Zero và thư viện RPi.GPIO. Cả 2 đều là những thư viện mã nguồn mở và đang được cộng đồng cùng chung tay xây dựng.

Lần lượt mình sẽ hướng dẫn các bạn sử dụng các thư viện này để tiếp cận với Raspberry Pi. Bản thân mình thích dùng RPi.GPIO hơn. Nhưng có thể bạn sẽ lại thích GPIO Zero, vì thế mình sẽ giúp bạn thông cả 2 cái trong bài này.

RPi.GPIO

Lưu ý:

Một lưu ý nhỏ là khi dùng RPi.GPIO, trong chương trình bạn phải có khai báo kiểu đánh số chân GPIO là kiểu BCM hay kiểu BOARD.

Nói gì thì nói, trước tiên ta phải cài thư viện RPi.GPIO phải không nào?

sudo apt-get install python-dev python-rpi.gpio

Sau khi đã cài xong, bạn có thể dùng nano hoăc vi để tạo file test_led.py với nội dung sau:

import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BCM)    # chọn kiểu đánh số chân GPIO là BCM. Đánh kiểu BCM là đánh kiểu theo GPIOx với x là tên của chân mà ta dùng, ví dụ ta đánh kiểu BCM thì dùng chân GPIO18 ta sẽ thiết đặt như dưới. Nhưng đánh kiểu board ý là dánh theo thứ tự từ chân 1 đến chân 28 hoặc 40 (tùy bản raspi). Trong ví dụ này, nếu dùng BOARD thì GPIO18 sẽ được gọi bởi số 12 (xem Pin number ở hình sơ đồ chân Rpi). Khuyên bạn dùng BCM, vì sao? Vì khi có lên bản mới thì GPIO number vẫn không đổi, còn thứ tự chân có thể đổi đó hehe
GPIO.setup(18, GPIO.OUT)
 
while True:
  GPIO.output(18, GPIO.HIGH) #digitalWrite(18, HIGH)
  time.sleep(1) #delay 1s
  GPIO.output(18, GPIO.LOW) #digitalWrite(18, LOW)
  time.sleep(1) #delay 1s

Nhìn vô là thấy yêu rồi :), phải không nào?

Sau đó chạy 

sudo python test_led.py 

là có ngay bài học đầu đời rồi.

GPIO Zero

Cài thư viện

sudo apt-get install python-gpiozero

Tạo file tên test_led.py với nội dung sau

# Khai báo các thư viện cần dùng
from gpiozero import LED
from time import sleep
 
led = LED(18) #khai báo GPIO, giống BCM với thư viện RPi.GPIO
 
while True:
    led.on()  # led sáng
    sleep(1)  # đợi 1s
    led.off() # led tắt
    sleep(1)  # đợi 1s

Công nhận nó ngắn hơn nhưng có vẻ đối tượng hóa quá, dân newbie như chúng ta khó quen :D. Phải như RPi.GPIO phải đã hơn không?

Chạy nào

sudo python test_led.py

 

Lời kết

Chúc các bạn thành công, mình sẽ làm một bài viết hướng dẫn sử dụng nanovi. Hai chương trình dòng lệnh dùng để sửa file phổ biến hiện nay trong môi trường linux.

lên
11 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Bộ điều khiển PID - ứng dụng phần 2 - xe dò line dùng thuật toán PID

Tiép nối bài viết về xe dò line cảm ơn Đỗ Hữu Toàn đã viết hộ mình phần 4. hôm nay mình sẽ làm cho chiếc xe dò line đi mượt và có hồn hơn 

lên
34 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Hướng dẫn sử dụng gói nano - Trình sửa file nổi tiếng trong thế giới linux (Raspberry Pi, Intel Galileo, Intel Edison)

Khi đăng nhập vào linux server qua ssh bạn sẽ phải cần đến một text editor để sửa chữa các file cấu hình, file html, các file script .... Có rất nhiều text editor như vi, emacs, ... Tuy nhiên với các editor này bạn sẽ phải mất nhiều thời gian để thông thạo. Riêng với nano thì lại quá dễ để làm quen và sử dụng. Hôm nay bạn sẽ sử dụng nano thành thạo ngay!

lên
11 thành viên đã đánh giá bài viết này hữu ích.

Cách reset board Arduino bằng phần mềm để giúp các dự án lọc nhiễu

Trong thực tế, có rất nhiều trường hợp cần phải reset mạch Arduino để giải quyết vấn đề. Ví dụ như: nhiễu điện khi dùng module NRF24L01 hoặc module 315MHz. Trong bài viết này mình sẽ hướng dẫn các bạn reset board mạch Arduino từ các dòng code trong Arduino để các bạn có thể "tự động reset" board để tự "giải nhiễu".

lên
20 thành viên đã đánh giá bài viết này hữu ích.