Lập trình

Lập Trình Cơ Bản Raspberry Pi Với GPIO

Huy Erick

Khi chúng ta bắt đầu làm quen với một dòng vi xử lý mới nào đó, chúng ta luôn cần chuẩn bị những thông tin và kiến thức cần thiết trước khi bắt đầu. Điều...

Khi chúng ta bắt đầu làm quen với một dòng vi xử lý mới nào đó, chúng ta luôn cần chuẩn bị những thông tin và kiến thức cần thiết trước khi bắt đầu. Điều này cũng áp dụng khi lập trình cơ bản cho Raspberry Pi với GPIO. Hãy cùng tìm hiểu những kiến thức cần thiết để bắt đầu.

1. Kiến Thức Phần Cứng

Trước hết, chúng ta cần tìm hiểu về GPIO mapping của Raspberry Pi. Trên Raspberry Pi 2 Model B, có tổng cộng 40 chân GPIO, bao gồm:

  • 26 chân GPIO có thể được sử dụng như chân interupt khi thiết lập là input.
  • 1 chân UART, 1 chân I2C, 2 chân SPI, 1 chân PWM (GPIO 4).
  • 2 chân nguồn 5V, 2 chân nguồn 3.3V, và 8 chân GND.
  • 2 chân ID EEPROM.

Ngoài ra, Raspberry Pi sử dụng vi xử lý ARMv7 32bit quad-core với tốc độ 900MHz, dung lượng RAM 1GB, và bộ nhớ micro SD dung lượng tùy chọn (nên >=4GB). Khi một chân GPIO được thiết lập lên mức cao, nó sẽ đạt điện áp 3.3V và dòng ra tối đa là 5mA.

2. Kiến Thức Về Ngôn Ngữ Lập Trình

Lập trình trên Raspberry Pi có nhiều lựa chọn. Bạn có thể lập trình trực tiếp từ bash-shell của Linux, sử dụng ngôn ngữ lập trình c , Python, Perl, hoặc Ruby. Một bộ thư viện là một lựa chọn tốt hơn so với việc lập trình với ngôn ngữ đơn thuần, vì nó giúp giảm công việc phức tạp và tốn công sức như gán địa chỉ GPIO hay làm việc với thanh ghi. Bạn có thể tập trung hơn vào xây dựng ứng dụng của mình.

Trên Raspberry Pi, có nhiều thư viện để lập trình, ví dụ như WiringPi và RPi.GPIO. WiringPi được viết dưới dạng framework của wiring, cũng là framework mà Arduino sử dụng.

3. Bắt Đầu Với Bài Lập Trình GPIO

Bây giờ chúng ta đã có đủ kiến thức cần thiết, hãy bắt đầu với bài lập trình GPIO cơ bản trên Raspberry Pi. Trong bài này, chúng ta sẽ lập trình để điều khiển LED.

Bài 1: Lập Trình Bật Tắt LED

Để bắt đầu, cần thiết lập chọn kiểu đánh số chân GPIO và thiết lập chân LED là chế độ output. Sau đó, bật và tắt LED bằng cách ghi giá trị HIGH hoặc LOW vào chân GPIO.

Ví dụ:

#include   int main(void) {     wiringPiSetupGpio();    // Chọn kiểu đánh số chân GPIO     pinMode(17, OUTPUT);    // Thiết lập chế độ output cho chân 17      digitalWrite(17, HIGH);    // Bật LED     delay(1000);                // Đợi 1 giây     digitalWrite(17, LOW);        // Tắt LED     delay(1000);                // Đợi 1 giây      return 0; }

Bài 2: Nhấp Nháy LED

Trong bài này, chúng ta sẽ sử dụng một vòng lặp để thay đổi trạng thái của LED theo một chu kỳ nhất định, tạo hiệu ứng nhấp nháy.

Ví dụ:

import RPi.GPIO as GPIO import time  GPIO.setmode(GPIO.BCM) GPIO.setup(17, GPIO.OUT)  while True:     GPIO.output(17, GPIO.HIGH)     time.sleep(1)     GPIO.output(17, GPIO.LOW)     time.sleep(1)

Bài 3: Điều Khiển LED Bằng Button

Trong bài này, chúng ta sẽ sử dụng một button để điều khiển việc bật/tắt LED. Khi nhấn button, trạng thái của chân GPIO sẽ xuống mức thấp.

Ví dụ:

import RPi.GPIO as GPIO import time  GPIO.setmode(GPIO.BCM) GPIO.setup(17, GPIO.OUT) GPIO.setup(2, GPIO.IN, pull_up_down=GPIO.PUD_UP)  while True:     if GPIO.input(2) == GPIO.LOW:         GPIO.output(17, GPIO.HIGH)     else:         GPIO.output(17, GPIO.LOW)

Dù bạn chạy chương trình từ terminal hoặc sử dụng IDE Python IDLE, hãy nhớ giải phóng GPIO bằng cách sử dụng GPIO.cleanup() khi kết thúc chương trình.

Như vậy, chúng ta đã tìm hiểu cách lập trình cơ bản cho Raspberry Pi với GPIO. Bạn có thể áp dụng kiến thức này để thực hiện các dự án phức tạp hơn trên Raspberry Pi của mình.

1