라즈베리파이에는 GPIO라는 장치를 제공하여 주변에 다양한 센서들을 연결하여 제어할 수 있도록 해준다.
이번에는 이 GPIO를 이용하는 방법과 예제를 다뤄보고자 한다
GPIO 인터페이스는 라즈베리파이 가장자리에 위치한 핀이다. 여기에 원하는 장치를 연결해서 구동시키도록 설정해주는 것인데, 각 핀마다 가지고 있는 고유의 역할이 있다. 아래 사진을 통해 핀num, 역할을 확인하고 이 구조는 암기가 어렵다면 한장 출력해서 두고두고 보면서 활용하면 도움이 된다.
자, 각 GPIO핀이 하는 역할을 확인했다면, 이제 예제를 통해 라즈베리파이 콘솔에서 GPIO를 제어해보도록 하겠다.
1. GPIO 폴더로 이동하여 어떤 파일이 존재하는지 확인해본다
cd /sys/class/gpio
ls -l
ls를 통해 내용물을 보니 깔끔하다. 이 상태에서 gpio17번 핀을 초기화해서 LED를 켜보도록 할거다
echo 17 > /sys/class/gpio/export
ls -l
gpio 17번 핀을 초기화하니 위 사진처럼 gpio 17핀이 생성되었다. 이건 gpio17에 대한 심볼릭 링크로, 이제 이녀석을 통해 17번핀을 제어한다.
echo out > /sys/class/gpio/gpio17/direction
gpio17핀 모드설정을 out값으로 지정주었더니 위 사진과 같이 derection파일에 out값이 설정되있는걸 볼 수 있다.
gpio17핀은 digital핀으로 설정되어 있기에 0, 1값을 넣어서 LED를 켜주도록 설정해보자
echo 1 > /sys/class/gpio/gpio17/value
1값을 넣었더니 바로 LED에 불이 들어왔다!
반대로 LED를 끄는 방법은 value값에 0을 넣어주면 된다
echo 0 > /sys/class/gpio/gpio17/value
자, 예제를 다뤄보았으니 지금까지 설정한 값들을 모두 초기화시켜서 다음 과정에서 활용할 수 있도록 설정해주도록 하자
cd /sys/class/gpio
echo 17 > /sys/class/gpio/unexport
ls -l
위 코드처럼 17번핀을 unexport해주면 이전에 생성되었던 심볼릭 링크가 삭제되는 걸 볼 수 있다.
위 일련의 과정은 사실 따지고 보면 굳이? 이렇게? 라는 생각이 들 정도로 번거롭고 귀찮은 작업이기 하나... 학습목적상 이러한 과정이 진행된다~ 라고 이해하고 짚고 넘어가는 수준으로 생각하면 좋을 것 같다
'& 프로그래밍 > & Linux' 카테고리의 다른 글
라즈베리파이(미디어센터 개발/Kodi) (0) | 2021.05.24 |
---|---|
라즈베리파이(카메라모듈 활용하기) (0) | 2021.05.24 |
라즈베리파이(SSH서버 설치/구축) (0) | 2021.05.20 |
라즈베리파이(os설치) (0) | 2021.05.20 |
라즈베리파이(기본준비) (0) | 2021.05.20 |