라즈베리파이의 GPIO를 제어할 수 있는 wiringPi라이브러리의 설치 방법을 알아보자.
wiringPi 설치
라즈베리 파이의 GPIO를 제어할 수 있는 언어는 C, C++, C#, Python, Java등 매우 다양하게 있다. 그 중에서 제일 많은 사용자들이 있고, 초기부터 최근까지 꾸준이 업데이트가 유지된 wiringPi(Gordon이 개발, GNU LGPLv3 라이선스, 홈페이지 http://wiringpi.com)를 이용한다.
GPIO 란?
GPIO(General Purpose Input Output)란 하나의 연결 단자를 입력이나 출력으로 고정시키지 않고 선택적으로 사용할 수 있게 융통성을 높인 범용 입출력 단자를 말한다. GPIO 단자를 입력으로 프로그래밍하면 인터럽트 소스로 사용 가능하며, 마찬가지로 일부 GPIO 단자는 프로세서를 휴면 상태에서 깨우는 사건(event)를 생성하기도 한다.
1. 새로운 패키지를 실행하기 전에 꼭 해주어야 할것이 하나 있다. 바로 $sudo apt-get update 이다. 이 명령은 패키지 관리 서버로부터 이용 가능한 프로그램 패키지의 목록을 최신버전으로 업데이트 하는 명령이다.
$sudo apt-get update
2. 다음으로 업데이트 명령어로 갱신된 패키지 목록 중 컴퓨터에 설치된 프로그램이 업데이트 되었으면 새로운 버전으로 설치하게 해주는 작업이다. 사용하는 OS 배포버전에 따라 많은 업데이트가 이루어진 경우도 있으며 이러한 경우에는 시간이 오래 걸릴 수 도 있다.
$sudo apt-get upgrade
3. 소스관리 툴인 git를 다운로드와 함께 설치한다.
$ sudo apt-get install git-core
4. git를 이용하여 “wiringPi” 라이브러리를 다운로드하고 빌드한다.
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi
$ ./build
설치가 잘 되었는지 다음의 명령어로 확인한다.
$ gpio -v
pi@raspberrypi ~ $ gpio readall
+-----+-----+---------+------+---+--B Plus--+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| | | 3.3v | | | 1 || 2 | | | 5v | | |
| 2 | 8 | SDA.1 | ALT0 | 1 | 3 || 4 | | | 5V | | |
| 3 | 9 | SCL.1 | ALT0 | 1 | 5 || 6 | | | 0v | | |
| 4 | 7 | GPIO. 7 | IN | 0 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 |
| | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 |
| 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 1 | IN | GPIO. 1 | 1 | 18 |
| 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | |
| 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 1 | IN | GPIO. 4 | 4 | 23 |
| | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 |
| 10 | 12 | MOSI | ALT0 | 0 | 19 || 20 | | | 0v | | |
| 9 | 13 | MISO | ALT0 | 0 | 21 || 22 | 1 | IN | GPIO. 6 | 6 | 25 |
| 11 | 14 | SCLK | ALT0 | 0 | 23 || 24 | 1 | ALT0 | CE0 | 10 | 8 |
| | | 0v | | | 25 || 26 | 1 | ALT0 | CE1 | 11 | 7 |
| 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 |
| 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | |
| 6 | 22 | GPIO.22 | IN | 0 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 |
| 13 | 23 | GPIO.23 | IN | 1 | 33 || 34 | | | 0v | | |
| 19 | 24 | GPIO.24 | IN | 1 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 |
| 26 | 25 | GPIO.25 | IN | 1 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 |
| | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 |
+-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
+-----+-----+---------+------+---+--B Plus--+---+------+---------+-----+-----+
pi@raspberrypi ~ $
$ gpio readall
명령어는 현재 GPIO 핀 상태를 모두 보여준다. 테이블 상단의 BCM 열의 번호가 회로도에 나왔는 GPIO 핀 번호를 나타내고, 옆의 wPi 열의 핀 번호가 wiringPi 라이브러리를 사용할 때의 실제 번호이다. 프로그램으로 구현시 우리는 wPi 의 핀 번호를 사용하게 된다.
'개발자 > Raspberry Pi' 카테고리의 다른 글
| 라즈베리파이 RC522 RFID Module 테스트 (0) | 2015.03.17 |
|---|---|
| raspberry pi i2c, spi 동작 안 할 때 확인할 것 (0) | 2015.03.10 |
| 라즈베리 파이2 에 관해 알아야 할 5가지. (0) | 2015.03.10 |
| 라즈베리 파이 2 gpio 업데이트 - raspberry pi 2 gpio not work (0) | 2015.03.10 |
| 라즈베리파이 GPIO 포트를 인터럽트로 사용하기 (0) | 2015.01.29 |
| Tutorial: Comparing the Arduino and Raspberry Pi (0) | 2015.01.27 |
| pi4j 사용시 GPIO 21 사용법 (0) | 2015.01.17 |
| 라즈베리 파이 케이스들 이미지 모아 봄~ (0) | 2015.01.13 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩