GPIO: tất cả về kết nối Raspberry Pi 4 và 3

GPIO Raspberry Pi 4

Các Chân GPIO của bo mạch Raspberry Pi 4, 3, và cũng là những người tiền nhiệm của nó, cung cấp cho bảng SBC các khả năng tương tự như Arduino có thể có, vì với chúng, bạn có thể tạo các dự án điện tử rất thú vị được điều khiển từ hệ điều hành bằng mã ở các ngôn ngữ khác nhau, chẳng hạn như Python.

Điều đó làm cho bảng không chỉ là một máy tính rẻ tiền. Nó sẽ cho phép bạn kết nối vô số yếu tố điện tử mà bạn có thể sử dụng với Arduino, nhưng điều đó cũng có thể được điều khiển từ Pi. Trong hướng dẫn này, tôi sẽ cố gắng cung cấp cho bạn nhiều thông tin nhất có thể về các chân GPIO này để bạn có thể bắt đầu tận dụng chúng ...

GPIO là gì?

GPIO

GPIO là từ viết tắt của General Purpose Input / Output, nghĩa là Đầu vào / Đầu ra có mục đích chung. Các sản phẩm điện tử khác nhau có thể có nó, chẳng hạn như bản thân chip hoặc một số bảng mạch PCB nhất định như Raspberry Pi này. Như tên gọi của chúng cho thấy, chúng là các chân có thể được cấu hình để thực hiện các chức năng khác nhau, do đó chúng có mục đích chung chứ không phải cho một mục đích sử dụng cụ thể.

Nó sẽ là người dùng trong thời gian chạy có thể định cấu hình các chân GPIO này để họ làm những gì anh ta muốn. Nó có thể được thực hiện theo nhiều cách khác nhau, chẳng hạn như với một số mã hoặc tập lệnh nhất định từ bảng điều khiển hoặc với chương trình Python, đây là một trong những cách đơn giản và được ưa thích nhất do số lượng tùy chọn bạn có theo ý của mình.

Bằng cách này, Raspberry Pi không chỉ có một loạt các cổng và giao diện để kết nối nhiều thiết bị tiêu chuẩn, nhưng hãy thêm các chân GPIO này để bạn có thể thêm các thiết bị điện tử khác hoặc các dự án của nhà sản xuất mà bạn đã tự tạo. Theo cách tương tự như bạn làm với Arduino và các chân I / O của nó để điều khiển.

Y không dành riêng cho Arduino hoặc Raspberry Pi, các bảng SBC tương tự và các sản phẩm nhúng khác cũng vậy.

Tính năng GPIO

Và giữa ĐẶC ĐIỂM KỸ THUẬT của cô ấy Nổi bật nhất:

  • Họ có thể được cấu hình như vậy như đầu vào như đầu ra. Chúng có tính hai mặt như nó xảy ra với Arduino.
  • Các chân GPIO cũng vậy có thể được kích hoạt và hủy kích hoạt bằng mã. Tức là, chúng có thể được đặt thành 1 (mức điện áp cao) hoặc 0 (mức điện áp thấp).
  • Tất nhiên họ có thể đọc dữ liệu nhị phân, như những cái và số không, có nghĩa là, tín hiệu điện áp hoặc không có nó.
  • Giá trị đầu ra của Đọc và viết.
  • Các giá trị đầu vào có thể được định cấu hình trong một số trường hợp như Sự kiện để chúng tạo ra một số loại hành động trên bảng hoặc hệ thống. Một số hệ thống nhúng sử dụng chúng làm IRQ. Một trường hợp khác là định cấu hình khi một hoặc nhiều chân hoạt động bởi một số cảm biến nhất định, hãy thực hiện một số hành động ...
  • Đối với điện áp và cường độ, bạn phải biết rõ về công suất tối đa có thể chấp nhận được đối với bo mạch, trong trường hợp này là Raspberry Pi 4 hoặc 3. Bạn không nên vượt qua chúng để tránh làm hỏng nó.

Nhân tiện, khi một nhóm các chân GPIO được nhóm lại, như trường hợp của Raspberry Pi, nhóm này được gọi là Cổng GPIO.

Các chân GPIO của Raspberry Pi

Raspberry Pi GPIO

Lược đồ hợp lệ cho phiên bản 4, 3, Zero

mới Bảng Raspberry Pi 4 và phiên bản 3 Chúng được trang bị một số lượng lớn các chân GPIO. Không phải tất cả các phiên bản đều cung cấp số lượng như nhau, và chúng cũng không được đánh số theo cách giống nhau, vì vậy bạn phải cẩn thận với điều này để biết rõ bạn nên thực hiện kết nối như thế nào theo mô hình và bản sửa đổi mà bạn có.

Nhưng điều chung chung hơn là các loại GPIO mà bạn có thể tìm thấy trong cổng của bảng Raspberry Pi. Và đó sẽ là điều đầu tiên tôi muốn nói rõ, vì đó là cách bạn sẽ biết các loại ghim bạn có thể tin tưởng vào các dự án của mình:

  • Alimentacion: các chân này được sử dụng để kết nối đường dây điện hoặc hệ thống dây điện cho các dự án điện tử của bạn. Chúng tương ứng với các chân tương tự như trên bảng Arduino và cung cấp điện áp 5v và 3v3 (3.3v giới hạn ở tải 50mA). Ngoài ra, bạn cũng sẽ tìm thấy những cái mặt đất (GND hoặc Ground). Nếu bạn không sử dụng các nguồn điện bên ngoài như pin hoặc bộ điều hợp, các chân này có thể giúp ích rất nhiều cho việc cấp nguồn cho mạch của bạn.
  • DNC (Không kết nối): chúng là các chân có trong một số phiên bản và không có chức năng nào, nhưng trong các bảng mới chúng đã được sử dụng cho một mục đích khác. Bạn sẽ chỉ tìm thấy những điều này trong các mô hình nguyên thủy hơn của Pi. Trong nhóm 3 và 4 mới, chúng sẽ được đánh dấu là GND nói chung, có thể tích hợp vào nhóm trước đó.
  • Các chân có thể định cấu hình: chúng là GPIO bình thường và chúng có thể được lập trình bằng mã vì tôi sẽ giải thích sau để làm những gì bạn cần.
  • Ghim đặc biệt: đây là một số kết nối dành cho các kết nối hoặc giao diện đặc biệt như kết nối nối tiếp UART, TXD và RXD, v.v., như nó xảy ra với Arduino. Bạn thậm chí sẽ tìm thấy một số như SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, v.v. Chúng nổi bật trong số đó:
    • PWM, có thể điều chỉnh độ rộng xung như chúng ta đã thấy trong một bài viết trước. Trên Raspberry Pi 3 và 4, chúng là GPIO12, GPIO13, GPIO18 và GPIO19.
    • SPI là một giao diện giao tiếp khác mà tôi cũng đã thảo luận trong một bài viết khác. Trong trường hợp của bảng mạch 40 chân mới, chúng là các chân cắm (với các kênh giao tiếp khác nhau như bạn có thể thấy):
      • SPI0: MOSI (GPIO10), MISO (GPIO9), SCLK (GPIO11), CE0 (GPIO8), CE1 (GPIO7)
      • SPI1: MOSI(GPIO20); MISO(GPIO19); SCLK(GPIO21); CE0(GPIO18); CE1(GPIO17); CE2 (GPIO16)
    • I2C là một kết nối khác mà tôi cũng đã giải thích trong blog này. Bus này được tạo thành từ tín hiệu dữ liệu (GPIO2) và đồng hồ (GPIO3). Ngoài Dữ liệu EEPROM (GPIO0) và Đồng hồ EEPROM (GPIO1).
    • Nối tiếp, một giao tiếp rất thiết thực khác với các chân TX (GPIO14) và RX (GPIO15) giống như những chân bạn có thể tìm thấy trên bảng Arduino UNO.

Hãy nhớ rằng GPIO là giao diện giữa Raspberry Pi và thế giới bên ngoài, nhưng chúng có những hạn chế của nó, đặc biệt là điện. Một điều mà bạn phải tính đến để không làm hỏng bo mạch là hãy nhớ rằng các chân GPIO này thường không có bộ đệm, tức là không có bộ đệm. Điều này có nghĩa là chúng không có bảo vệ, vì vậy bạn phải theo dõi mức độ lớn của điện áp và cường độ được áp dụng để không kết thúc với một tấm vô dụng ...

Sự khác biệt về GPIO giữa các phiên bản

Chân GPIO Raspberry Pi cũ

Như tôi đã nói, không phải tất cả các mô hình đều giống nhauDưới đây là một số sơ đồ để bạn có thể thấy sự khác biệt giữa các mô hình và do đó có thể tập trung vào Raspberry Pi 4 và 3, là phiên bản mới nhất và có thể bạn đang sở hữu. Nó khác nhau giữa (tất cả mỗi nhóm chia sẻ cùng một chân):

  • Raspberry Pi 1 Model B Rev 1.0, với 26 chân hơi khác so với Rev2.
  • Raspberry Pi 1 Model A và B Rev 2.0, cả hai đều có 26-pin.
  • Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero và Zero W, và cả 4 kiểu máy. Tất cả đều có đầu cắm GPIO 40 chân.

Tôi có thể cắm gì vào GPIO?

Mũ Raspberry Pi

Bạn sẽ không chỉ có thể kết nối các thiết bị điện tử như Linh kiện bán dẫn, cảm biến độ ẩm / nhiệt độ, nhiệt điện trở, động cơ bước, đèn LED, Vân vân. Bạn cũng có thể kết nối các thành phần hoặc mô-đun được tạo riêng cho Raspberry Pi và điều đó mở rộng khả năng của bo mạch ngoài những gì được bao gồm trong đế.

Tôi đang đề cập đến sự nổi tiếng mũ hoặc nón và đĩa mà bạn có thể tìm thấy trên thị trường. Có nhiều loại, từ loại dùng để điều khiển động cơ bằng trình điều khiển, đến loại khác để tạo một cụm máy tính, Với Bảng điều khiển dẫn có thể kiểm soát, để thêm Khả năng truyền hình DVB, Man hinh LCD, Vv

Những chiếc mũ hoặc những chiếc mũ này Chúng được gắn trên bảng Raspberry Pi, khớp với các GPIO cần thiết để nó hoạt động. Do đó, việc lắp ráp nó khá đơn giản và nhanh chóng. Tất nhiên, hãy đảm bảo rằng phiên bản biển số tương thích với từng chiếc mũ, vì cổng GPIO khác như bạn đã thấy ...

Tôi nói điều này trong trường hợp bạn có một tấm cũ hơn, vì mũ chỉ tương thích với cái mới nhất. Cũng như các mẫu Raspberry Pi Model A +, B +, 2, 3 và 4.

Giới thiệu về cách sử dụng GPIO trên Raspberry Pi

Đầu ra lệnh sơ đồ

Nguồn: Raspberry Pi

Để bắt đầu, trên Raspbian, bạn có thể mở bảng điều khiển và nhập lệnh pinoutNhững gì nó sẽ trả lại cho bạn là một hình ảnh trong thiết bị đầu cuối với các chân GPIO có sẵn trên bo mạch của bạn và mỗi chân dùng để làm gì. Một cái gì đó rất thiết thực để luôn có nó hiện diện tại thời điểm làm việc để bạn không bị nhầm lẫn.

Dự án đầu tiên: nhấp nháy đèn LED với GPIO

GPIO với đèn LED trên Raspberry Pi

Cách cơ bản nhất để tạo ra một loại "Xin chào thế giới" với GPIO là sử dụng một đèn LED đơn giản được kết nối với các chân của Raspberry Pi để bạn có thể thấy chúng hoạt động như thế nào. Trong trường hợp này, tôi đã kết nối nó với GND và chân kia vào chân 17, mặc dù bạn có thể chọn một chân cắm bình thường khác ...

Sau khi kết nối, bạn có thể kiểm soát chúng từ Raspbian sử dụng thiết bị đầu cuối. Trong Linux, các tệp cụ thể được sử dụng giống như các tệp trong thư mục / sys / class / gpio /. Ví dụ, để tạo một tệp với cấu trúc cần thiết để bắt đầu hoạt động:

echo 17 > /sys/class/gpio/export

Sau đó bạn có thể cấu hình như một đầu vào (vào) hoặc như một đầu ra (ra) pin 17 được chọn cho ví dụ của chúng tôi. Bạn có thể làm điều đó rất dễ dàng với:

echo out > /sys/class/gpio/gpio17/direction

Trong trường hợp này là đầu ra, vì chúng tôi muốn gửi một xung điện đến đèn LED để bật đèn, nhưng nếu đó là cảm biến, v.v., bạn có thể sử dụng trong. Bây giờ cho bật (1) hoặc tắt (0) đèn LED bạn có thể sử dụng:

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value

Nếu bạn muốn chuyển sang một dự án khác và xóa mục nhập đã tạo, bạn có thể thực hiện theo cách này:

echo 17 > /sys/class/gpio/unexport

Nhân tiện, bạn cũng có thể tập hợp tất cả các lệnh cần thiết cho dự án của mình, giống như tất cả các lệnh trước đó, lưu chúng trong một loại tệp kịch bản bash và sau đó chạy chúng trong một nhóm cùng một lúc, thay vì nhập từng cái một. Điều này rất tiện lợi khi bạn lặp lại cùng một bài tập nhiều lần, vì vậy bạn không phải viết lại. Chỉ cần chạy và đi. Ví dụ:

nano led.sh

#!/bin/bash
source gpio 
gpio mode 17 out
while true; do 
gpio write 17 1 
sleep 1.3 
gpio write 17 0 
sleep 1.3 done

Sau khi hoàn thành, bạn lưu và sau đó bạn có thể cấp cho nó quyền thực thi và thực thi thích hợp kịch bản để đèn LED bật, hãy đợi 1.3 giây và tắt như thế này trong một vòng lặp ...

chmod +x led.sh
./led.sh

Chương trình tạm ứng

mã nguồn ngôn ngữ lập trình

Rõ ràng những điều trên phù hợp với các dự án điện tử nhỏ với ít thành phần, nhưng nếu bạn muốn tạo thứ gì đó cao cấp hơn, thay vì các lệnh, những gì bạn có thể sử dụng là ngôn ngữ lập trình để tạo các tập lệnh hoặc mã nguồn khác nhau để tự động hóa hoạt động.

Chúng có thể được sử dụng các công cụ khác nhau để lập trình, với các ngôn ngữ rất khác nhau. Các thư viện mà cộng đồng đã phát triển giúp bạn làm mọi thứ dễ dàng hơn nhiều, chẳng hạn như WiringPi, sysfs, pigpio, v.v. Các chương trình có thể rất đa dạng, từ Python, là lựa chọn ưa thích của nhiều người, đến Ruby, Java, Perl, BASIC và thậm chí cả C #.

Chính thức, Raspberry Pi cung cấp cho bạn nhiều cơ sở để lập trình các GPIO của bạn, chẳng hạn như:

  • Scratch, dành cho những người không biết cách lập trình và muốn sử dụng các khối câu đố của dự án này mà Arduino cũng có thể được lập trình, v.v. Lập trình với các khối đồ họa khá trực quan và rất thiết thực cho lĩnh vực giáo dục.
  • Python: Ngôn ngữ lập trình thông dịch đơn giản này cho phép bạn tạo các mã đơn giản và mạnh mẽ, với vô số thư viện tùy ý sử dụng để thực hiện hầu hết mọi thứ bạn tưởng tượng.
  • C / C ++ / C #: là các ngôn ngữ lập trình mạnh mẽ hơn để tạo các tệp nhị phân để tương tác với các GPIO. Bạn có thể làm điều đó theo một số cách, sử dụng biểu mẫu chuẩn hoặc giao diện hạt nhân thông qua thư việnlibgpiod, mà còn thông qua thư viện của bên thứ ba, chẳng hạn như pygium.
  • Xử lý3, tương tự như Arduino.

Lựa chọn linh hoạt cái bạn thích nhất hoặc bạn nghĩ là đơn giản.


4 bình luận, để lại của bạn

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Kẻ thù dijo

    Bài viết rất hay về việc bắt đầu tại Rasperry

    1.    Isaac dijo

      Cám ơn rất nhiều.

      1.    Ruth Medina dijo

        bạn có phải là tác giả?

        1.    Isaac dijo

          Vâng