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
9 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

Vỏ hộp cho ARDUINO UNO

Tự làm 1 chiếc vỏ hộp bảo vệ cho ARDUINO UNO của bạn chưa bao giờ đơn giản như thế này. Chỉ việc đem file dxf của mình ra ngoài tiệm cắt laser (quảng cáo và cắt thôi)!

Mình mới học ARDUINO cũng được khoảng 1 tuần thôi, đọc bài viết trên page cũng nhiều nhưng chả đóng góp được gì. Hôm nay rãnh rỗi ngồi làm cái hộp cho con UNO vì mấy hôm trước mình toàn lót giấy phía dưới rồi đặt em nó lên thấy cũng bất tiện, nếu các bạn có hứng thú thì làm theo file cad mình để ở cuối bài nha.

lên
14 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 điều khiển stepper 28BYJ-48 bằng mạch điều khiển động cơ bước ULN2003

Động cơ bước 28BYJ-48 có đến 5 dây chứ không phải thuộc loại 4 dây hoặc 6 dây như ta thường thấy. Nhưng thật may mắn, chúng ta lại có board điều khiển động cơ bước ULN2003 với 5 giây vừa khít với con động cơ bước này luôn. Vì vậy, bộ động cơ bước + stepper driver này thường được dùng trong các dự án DIY. Hôm nay, mình sẽ chỉ các bạn cách sử dụng thư viện để sử dụng bộ combo này cho dễ nhé.

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

Giới thiệu về các loại hộp số (bộ giảm tốc) chúng ta thường dùng khi làm xe mô hình với Arduino

Là một người yêu thích chế tạo xe, vì vậy mình mong muốn truyền cảm hứng cho các bạn yêu thích Arduino có thể tự làm cho mình một chiếc xe điều khiển từ xa. Tuy nhiên, khi mình triển khai hướng dẫn thì có nhiều bạn hỏi về các loại hộp số dùng cho xe mô hình. Vì vậy, hôm nay, mình sẽ tổng hợp các loại hộp số thường dùng trong xe mô hình điều khiển từ xa.

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