라즈베리파이:GPIO: 두 판 사이의 차이
둘러보기로 이동
검색으로 이동
편집 요약 없음 |
(→개요) |
||
5번째 줄: | 5번째 줄: | ||
===유의=== | ===유의=== | ||
GPIO 핀으로 3.3V 이상이 들어오지 않게 각별히 주의하자. | |||
* GPIO 핀으로 3.3V 이상이 들어오지 않게 각별히 주의하자. | |||
* 코드가 종료되는 등 상황에서 GPIO.cleanup() 을 실행해주어 자원을 돌려주고 점유한 핀을 초기화 해야 한다. | |||
다양하게 제어하는 방식이 있지만, 파이썬이 적절한 대안일 듯하다. | 다양하게 제어하는 방식이 있지만, 파이썬이 적절한 대안일 듯하다. | ||
47번째 줄: | 49번째 줄: | ||
|} | |} | ||
== I^2C 통신 == | ==I^2C 통신== | ||
Inter-Integrated Circuit. 동기식 시리얼 통신. SPI통신에선 슬레이브 기기가 추가될 때마다 통신라인이 필요한 것에 비해, IIC에선 간단하게 많은 기기를 설치할 수 있다. 대신 느리다. 때문에 저속 장치들 사이의 통신에 사용된다. | Inter-Integrated Circuit. 동기식 시리얼 통신. SPI통신에선 슬레이브 기기가 추가될 때마다 통신라인이 필요한 것에 비해, IIC에선 간단하게 많은 기기를 설치할 수 있다. 대신 느리다. 때문에 저속 장치들 사이의 통신에 사용된다. | ||
2022년 10월 28일 (금) 07:37 판
개요
general-purpose input/output. 다용도 입출력. 라즈베리파이 보드에서 센서들을 추가하기 위해 기본적으로 사용되는 인터페이스. 기본적으로 아두이노와 유사한 구조로, 핀을 통해 신호를 읽거나 내뱉는 방식이다.
유의
- GPIO 핀으로 3.3V 이상이 들어오지 않게 각별히 주의하자.
- 코드가 종료되는 등 상황에서 GPIO.cleanup() 을 실행해주어 자원을 돌려주고 점유한 핀을 초기화 해야 한다.
다양하게 제어하는 방식이 있지만, 파이썬이 적절한 대안일 듯하다.
파이썬의 RPi.GPIO, WiringPi로 제어가 가능하다.
입출력
입력
3.3V까지 받아들이며, 디지털신호만 받는다. 아날로그를 받기 위해선 ADC기능을 가진 IC를 사용해야 한다.
SPI 통신
Serial Peripheral Interface. 시리얼 통신을 사용하려면 다음과 같은 과정이 필요하다.
과정 | 설명 | 방법 |
---|---|---|
설정 | 라즈베리파이의 설정을 변경한다. | 라즈베리파이 설정 > 인터페이스 > SPI, I2C를 Enable로 설정 |
리부팅 | 설정을 반영하기 위해. | sudo reboot |
SPI라이브러리 설치 | 설치하고자 하는 위치에서 실행한다. | git clone [./Git://github.com/doceme/py-spidev git://github.com/doceme/py-spidev] |
파이썬에서의 활용 | import spidev
spi = spidev.SpiDev() # 인스턴스 생성.
spi.open(0,0) # 통신 시작.
spi.max_speed_hz = 100000 # 통신속도 설정.
|
I^2C 통신
Inter-Integrated Circuit. 동기식 시리얼 통신. SPI통신에선 슬레이브 기기가 추가될 때마다 통신라인이 필요한 것에 비해, IIC에선 간단하게 많은 기기를 설치할 수 있다. 대신 느리다. 때문에 저속 장치들 사이의 통신에 사용된다.
모든 기기들을 SCL과 SDA핀에 병렬연결해주면 된다.
과정 | 설명 | 방법 |
---|---|---|
설정 | 라즈베리파이의 설정을 변경한다. | 라즈베리파이 설정 > 인터페이스 > SPI, I2C를 Enable로 설정 |
리부팅 | 설정을 반영하기 위해. | sudo reboot |
확인 | /dev/i2c-1 과 같은 답변을 얻었다면 설정이 제대로 된 것. | ls /dev/i2c* |
툴 설치 | 기기를 SCL과 SDA에 연결한 후에
|
sudo apt-get install -y i2c-tools |
파이썬에서의 활용 | 보통 기기를 활용하는 라이브러리를 사용할 때 자동으로 지정하여 읽는데..
라이브러리별로 지정하는 방법이 다르다. |