GPIO : Raspberry Pi 4 및 3 연결에 관한 모든 것

라즈베리 파이 4 GPIO

Raspberry Pi 4 보드의 GPIO 핀, 3, 그리고 그 전임자들은 아두 이노가 가질 수있는 것과 유사한 기능을 SBC 보드에 제공합니다. 왜냐하면 파이썬과 같은 다른 언어로 된 코드를 사용하여 운영 체제에서 제어되는 매우 흥미로운 전자 프로젝트를 만들 수 있기 때문입니다.

이것은 보드를 값싼 컴퓨터 이상으로 만듭니다. 그것은 당신이 다수를 연결할 수 있습니다 전자 요소 Arduino와 함께 사용할 수 있지만 Pi에서도 제어 할 수 있습니다. 이 가이드에서는 이러한 GPIO 핀에 대해 최대한 많은 정보를 제공하기 위해 노력할 것입니다.

GPIO 란 무엇입니까?

GPIO

GPIO 범용 입력 / 출력, 즉 범용 입력 / 출력의 약어입니다. 칩 자체 또는이 Raspberry Pi와 같은 특정 PCB 보드와 같은 다양한 전자 제품이이를 가질 수 있습니다. 이름에서 알 수 있듯이 다른 기능을 수행하도록 구성 할 수있는 핀이므로 특정 용도가 아닌 범용입니다.

런타임시 사용자가 이 GPIO 핀 구성 그가 원하는 것을 할 수 있도록. 콘솔의 특정 코드 나 스크립트를 사용하거나 Python 프로그램을 사용하는 등 다양한 방법으로 수행 할 수 있습니다. 이는 사용자가 원하는 옵션의 양으로 인해 가장 간단하고 가장 선호되는 방법 중 하나입니다.

이런 식으로 Raspberry Pi에는 일련의 포트와 인터페이스 여러 표준 장치를 연결하지만 이러한 GPIO 핀을 추가하면 직접 만든 다른 전자 장치 또는 메이커 프로젝트를 추가 할 수 있습니다. Arduino 및 제어를 위해 I / O 핀을 사용하는 것과 같은 방식입니다.

Y Arduino 또는 Raspberry Pi에만 국한되지 않음, 다른 유사한 SBC 보드 및 임베디드 제품도 마찬가지입니다.

GPIO 기능

그리고 사이 그녀의 CARACTERISTICS 가장 뛰어난 :

  • 그들은 할 수있다. 구성되다 그래서 출력으로 입력으로. 그들은 그 이중성을 가지고 있습니다. 아두 이노.
  • GPIO 핀도 활성화 및 비활성화 가능 코드로. 즉, 1 (고전압 레벨) 또는 0 (저전압 레벨)으로 설정할 수 있습니다.
  • 물론 그들은 할 수 있습니다 이진 데이터 읽기, XNUMX과 XNUMX, 즉 전압 신호 또는 부재.
  • 출력 값 읽기와 쓰기.
  • 입력 값은 경우에 따라 다음과 같이 구성 할 수 있습니다. 이벤트 그래서 그들은 보드 또는 시스템에 어떤 유형의 행동을 생성합니다. 일부 임베디드 시스템은이를 IRQ로 사용합니다. 또 다른 경우는 하나 이상의 핀이 특정 센서에 의해 활성화되면 몇 가지 작업을 수행하도록 구성하는 것입니다.
  • 전압 및 강도와 관련하여 보드에 허용되는 최대 용량 (이 경우 Raspberry Pi 4 또는 3)을 알아야합니다. 손상을 방지하기 위해 통과해서는 안됩니다.

그건 그렇고, Raspberry Pi의 경우와 같이 GPIO 핀 그룹이 그룹화되면 그룹은 GPIO 포트.

Raspberry Pi의 GPIO 핀

라즈베리 파이 GPIO

버전 4, 3, Zero에 유효한 체계

새로운 Raspberry Pi 4 보드 및 버전 3 다수의 GPIO 핀이 장착되어 있습니다. 모든 버전이 동일한 금액을 제공하거나 동일한 방식으로 번호가 매겨지지는 않으므로 보유한 모델 및 개정판에 따라 연결하는 방법을 알기 위해주의해야합니다.

그러나 더 일반적인 것은 Raspberry Pi 보드 포트에서 찾을 수있는 GPIO 유형입니다. 이것이 제가 가장 먼저 분명히하고 싶은 것이 될 것입니다. 핀의 종류 프로젝트를 신뢰할 수 있습니다.

  • 급송:이 핀은 전자 프로젝트의 전원 라인 또는 배선을 연결하는 데 사용됩니다. 이들은 Arduino 보드의 핀과 유사하며 5v 및 3v3의 전압을 제공합니다 (3.3v는 50mA 부하로 제한됨). 또한 접지 (GND 또는 접지)도 찾을 수 있습니다. 배터리 나 어댑터와 같은 외부 전원을 사용하지 않는 경우 이러한 핀은 회로에 전원을 공급하는 데 큰 도움이 될 수 있습니다.
  • DNC (연결 안 함): 일부 버전에 있고 기능이없는 핀이지만 새 보드에서는 다른 용도로 사용되었습니다. Pi의 더 원시적 인 모델에서만 찾을 수 있습니다. 새로운 3과 4에서는 일반적으로 GND로 표시되어 이전 그룹에 통합 할 수 있습니다.
  • 구성 가능한 핀: 일반 GPIO이며 나중에 필요한 작업을 수행하기 위해 설명 할 코드로 프로그래밍 할 수 있습니다.
  • 특수 핀: 이들은 Arduino에서 발생하는 UART, TXD 및 RXD 직렬 연결 등과 같은 특수 연결 또는 인터페이스를위한 일부 연결입니다. SDA, SCL, MOSI, MISO, SCLK, CE0, CE1 등과 같은 것을 찾을 수도 있습니다. 그들은 그들 사이에서 두드러집니다.
    • PWM, 이전 기사에서 본 것처럼 펄스의 폭을 조절할 수 있습니다. Raspberry Pi 3 및 4에서는 GPIO12, GPIO13, GPIO18 및 GPIO19입니다.
    • SPI는 다른 기사에서도 논의한 또 다른 통신 인터페이스입니다. 새로운 40 핀 보드의 경우 핀입니다 (보시다시피 다른 통신 채널이 있음).
      • 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 이 블로그에서도 설명했던 또 다른 연결입니다. 이 버스는 데이터 신호 (GPIO2)와 클럭 (GPIO3)으로 구성됩니다. EEPROM 데이터 (GPIO0) 및 EEPROM 클럭 (GPIO1) 외에
    • 직렬, 보드에서 찾을 수있는 것과 같은 TX (GPIO14) 및 RX (GPIO15) 핀과의 또 다른 매우 실용적인 통신 Arduino UNO.

GPIO는 Raspberry Pi와 외부 세계 사이의 인터페이스이지만 그 한계, 특히 전기. 보드를 손상시키지 않기 위해 고려해야 할 사항은 이러한 GPIO 핀이 일반적으로 버퍼링되지 않음, 즉 버퍼가 없음을 기억하는 것입니다. 이것은 보호 기능이 없으므로 쓸모없는 판으로 끝나지 않도록 적용된 전압 및 강도의 크기를 모니터링해야 함을 의미합니다 ...

버전 간 GPIO 차이점

구형 Raspberry Pi GPIO 핀

내가 말했듯이, 모든 모델이 동일한 핀은 아닙니다.다음은 모델 간의 차이점을 확인할 수 있도록 몇 가지 다이어그램입니다. 따라서 최신 버전이고 소유하고있는 Raspberry Pi 4 및 3에 집중할 수 있습니다. 다음과 같이 다릅니다 (각 그룹 모두 동일한 핀을 공유 함).

  • Raspberry Pi 1 Model B Rev 1.0, 26 핀은 Rev2와 약간 다릅니다.
  • Raspberry Pi 1 모델 A 및 B Rev 2.0, 두 모델 모두 26 핀.
  • Rapsberry Pi 모델 A +, B +, 2B, 3B, 3B +, Zero 및 Zero W 및 4 개 모델 모두 40 핀 GPIO 헤더가 있습니다.

GPIO에 무엇을 연결할 수 있습니까?

라즈베리 파이 모자

당신은 할 수있을뿐만 아니라 전자 장치 연결 으로 트랜지스터, 습도 / 온도 센서, 서미스터, 스테퍼 모터, LED가등 또한 Raspberry Pi 용으로 특별히 제작 된 구성 요소 또는 모듈을 연결하여베이스에 포함 된 것 이상으로 보드의 기능을 확장 할 수 있습니다.

나는 유명한 것을 언급하고있다 모자 또는 모자 그리고 시장에서 찾을 수있는 접시. 드라이버로 모터를 제어하는 ​​데 사용되는 것부터 생성하는 다른 유형에 이르기까지 많은 유형이 있습니다. 컴퓨팅 클러스터,와 LED 패널 제어 가능, 추가 DVB TV 기능, LCD 화면

이 모자 또는 모자 Raspberry Pi 보드에 장착되어 있습니다. 작동하는 데 필요한 GPIO를 일치시킵니다. 따라서 조립이 매우 간단하고 빠릅니다. 물론 GPIO 포트가 본 것과 다르기 때문에 각 모자와 호환되는 플레이트 버전을 확인하십시오 ...

나는 당신이 오래된 접시를 가지고 있다면 이것을 말합니다. 최신 버전과 만 호환. Raspberry Pi 모델 A +, B +, 2, 3, 4 모델도 마찬가지입니다.

Raspberry Pi에서 GPIO 사용 소개

핀아웃 명령 출력

출처 : Raspberry Pi

시작하려면 Raspbian에서 콘솔을 열고 명령 반환되는 것은 보드에서 사용할 수있는 GPIO 핀과 각 핀의 용도가있는 터미널의 이미지입니다. 당신이 혼란스럽지 않도록 항상 직장에 존재하는 매우 실용적인 것.

첫 번째 프로젝트 : GPIO로 LED 깜박임

Raspberry Pi의 LED가있는 GPIO

종류를 만드는 가장 기본적인 방법 GPIO가있는 "Hello world" Raspberry Pi의 핀에 연결된 간단한 LED를 사용하여 작동 방식을 확인할 수 있습니다. 이 경우 일반 핀 중 다른 것을 선택할 수 있지만 GND에 다른 하나를 핀 17에 연결했습니다.

연결되면 다음을 수행 할 수 있습니다. Raspbian에서 제어 터미널을 사용합니다. Linux에서 특정 파일은 / sys / class / gpio / 디렉토리에있는 파일과 같이 사용됩니다. 예를 들어, 작업을 시작하는 데 필요한 구조로 파일을 만들려면 다음을 수행하십시오.

echo 17 > /sys/class/gpio/export

그런 다음 입력 (입력) 또는 출력 (출력)으로 구성 우리의 예를 위해 선택된 17 번 핀. 다음과 같이 매우 쉽게 할 수 있습니다.

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

이 경우 출력으로 LED에 전기 펄스를 보내서 켜고 싶지만 센서 등이라면 사용할 수 있습니다. 이제 켜기 (1) 또는 끄기 (0) 사용할 수있는 LED :

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

다른 프로젝트로 이동하고 싶다면 항목 삭제 생성되면 다음과 같이 할 수 있습니다.

echo 17 > /sys/class/gpio/unexport

그건 그렇고, 이전의 모든 명령과 마찬가지로 프로젝트에 필요한 모든 명령을 수집하여 파일 형식으로 저장할 수도 있습니다 bash 스크립트 그런 다음 하나씩 입력하는 대신 한 번에 번들로 실행하십시오. 이것은 같은 운동을 여러 번 반복 할 때 편리하므로 다시 작성할 필요가 없습니다. 그냥 뛰고 가세요. 예를 들면 :

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

완료되면 저장 한 다음 적절한 실행 및 실행 권한을 부여 할 수 있습니다. 스크립트 LED가 켜지도록 1.3 초간 기다렸다가 이와 같이 루프에서 꺼집니다.

chmod +x led.sh
./led.sh

프로그래밍 사전

프로그래밍 언어 소스 코드

분명히 위의 내용은 구성 요소가 거의없는 작은 전자 프로젝트에서 작동하지만 명령 대신 더 고급을 만들고 싶다면 사용할 수있는 것은 다음과 같습니다. 프로그래밍 언어 작업을 자동화하는 다양한 스크립트 또는 소스 코드를 만듭니다.

그들은 사용할 수 있습니다 다른 도구들 매우 다른 언어로 프로그래밍 할 수 있습니다. 커뮤니티에서 개발 한 라이브러리는 WiringPi, sysfs, pigpio 등과 같은 작업을 훨씬 쉽게 만듭니다. 프로그램은 Ruby, Java, Perl, BASIC 및 C #까지 많은 사람들이 선호하는 Python에서 매우 다양 할 수 있습니다.

공식적으로 Raspberry Pi는 많은 시설 다음과 같은 GPIO 프로그래밍 :

  • 지우고, 프로그래밍 방법을 모르고 Arduino도 프로그래밍 할 수있는이 프로젝트의 퍼즐 블록을 사용하려는 사용자 등을 위해 그래픽 블록을 사용한 프로그래밍은 교육 분야에서 매우 직관적이고 매우 실용적입니다.
  • Python:이 간단한 해석 프로그래밍 언어를 사용하면 상상하는 거의 모든 작업을 수행 할 수있는 다양한 라이브러리를 사용하여 간단하고 강력한 코드를 만들 수 있습니다.
  • C / C ++ / C # : GPIO와 상호 작용할 바이너리를 생성하는 더 강력한 프로그래밍 언어입니다. 라이브러리를 통해 표준 양식 또는 커널 인터페이스를 사용하여 여러 가지 방법으로 수행 할 수 있습니다.라이브러리뿐만 아니라 다음과 같은 타사 라이브러리를 통해 Pigio.
  • 처리 3, Arduino와 유사합니다.

유연하게 선택 당신이 가장 좋아하거나 당신이 생각하는 것이 간단합니다.


4 코멘트, 당신의 것을 남겨주세요

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.  

    Rasperry에서 시작하는 것에 대한 아주 좋은 기사

    1.    이삭

      정말 감사합니다.

      1.    루스 메디나

        당신이 저자입니까?

        1.    이삭