일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- AWS
- 구글
- Windows
- docker
- error
- 설정
- Kibana
- Es
- 엘라스틱서치
- elasticsearch
- JS
- build
- logstash
- ChatGPT
- nodejs
- 영어
- Linux
- sample
- unity
- Python
- Ai
- API
- mariadb
- 유니티
- s3
- ssh
- MySQL
- MSSQL
- JavaScript
- Today
- Total
가끔 보자, 하늘.
blink 샘플 실행 본문
gpio의 helloworld 예제인 블링크를 wiringPi를 이용해 샘플을 실행해 봤다.
일단 wiringPi lib 설치부터... 아래와 같다.
설치
1. git 설치
sudo apt-get install git-core
2. wiringPi 프로젝트 다운
git clone git://git.drogon.net/wiringPi
3. build
clone한 위치에 wiringPi안에 들어가서 ./build 실행.
빌드가 이상없이 되었다면 "find / -name "gpio"를 실행해 보자. "/usr/local/bin"과 방금 빌드한 곳, 두 곳에 gpio를 발견할 수 있다.빌드한 곳 gpio 폴더 안에서 ./gpio -v 한 결과와,
gpio -v 한 결과가 다르다면 gpio 파일을 "/usr/local/bin"에 복사해주라.
build하면 복사될 줄 알았는데 안된 듯. pi2라서 gpio old version에서 제대로 인식을 못해서 한참 원인을 찾다보니 이거였어.
4. raspberryPi의 핀 번호 및 역할 보기
gpio를 활용하면 보드에 핀 번호를 어떻게 보는지 쉽게 알 수 있다.
"gpio readall" 을 해보면 아래와 같은 결과를 볼 수 있다.
보드에는 두 줄의 핀이 있는데 rapberryPi2는 위와 같은 순서로 구성되어 있다. 위 표 중앙에 Physical 부분이 보드의 핀 순서와 일치한다. (1,2번이 보드의 전원램프 쪽. 39,40이 usb가 위치한쪽)
Physical을 중심으로 양쪽의 컬럼명이 일치하는 것을 볼 수 있다. (노란색 라인을 참고할 것!)
각 컬럼의 정보는 다음과 같다.
BCM |
Broadcom의 BCM2835 칩에서 사용하는 핀번호 |
wPi |
WiringPi 라이브러리의 핀번호 |
Name |
GPIO의 이름 |
Mode |
IN - 입력모드 , OUT - 출력모드 |
V |
핀의 값. 1 - 전압이 High상태, 0 - Low상태 |
Physical |
핀헤더의 번호 |
붉은색 라인 부분을 보자.
wiringPi의 blink 샘플을 보면 pin값을 0으로 사용한다. wiringPi에서 0은 wPi가 0인 것이며, 핀헤더 번호는 11번, 핀의 위치는 전원램프 쪽에서 6번째에 위치하다는 걸 알 수 있다.
이제 샘플 코드를 보자.
5. 샘플 코드
#include <wiringPi.h>
int main (void)
{
int PIN = 0;
wiringPiSetup () ;
pinMode (PIN, OUTPUT) ;
int max_count = 5;
int cnt = 0;
for (;;)
{
digitalWrite (PIN, HIGH) ;
delay (500) ;
digitalWrite (PIN, LOW) ;
delay (500) ;
++cnt;
if(cnt>=max_count)
break;
}
return 0 ;
}
기존의 샘플 코드에서 LED의 깜밖임이 5번 반복 후 종료하도록 수정했다. PIN변수는 wPi값을 의미한다.
빌드는 아래와 같이 하면된다.
gcc -o blink blink.c -l:libwiringPi.so.2.25 -I/usr/local/include -L/usr/local/lib
'개발 이야기 > 개발툴 및 기타 이야기' 카테고리의 다른 글
프로토타입 _ 1 2015-05-03 (0) | 2015.05.04 |
---|---|
버튼으로 LED, Sound 처리하기 (31) | 2015.05.01 |
라즈베리파이로 인터넷 라디오 만들기 1 ... 라이브러리 설치 및 테스트 (22) | 2015.04.18 |
기본적이지만 중요 정보 몇가지 (31) | 2015.04.18 |
드디어 왔다!! (0) | 2015.04.17 |