일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Git
- s3
- unity
- Kibana
- JS
- JavaScript
- API
- Ai
- ChatGPT
- build
- Python
- logstash
- AWS
- 구글
- Linux
- 설정
- 유니티
- sample
- nodejs
- ssh
- error
- MSSQL
- MySQL
- elasticsearch
- docker
- 영어
- 엘라스틱서치
- mariadb
- Windows
- Today
- Total
가끔 보자, 하늘.
버튼으로 LED, Sound 처리하기 본문
이전에서는 LED를 주기적으로 깜밖이는 것만 했었다. 이번에는 두가지를 복합적으로 해봐야겠다.
이거 다음엔 바로 인터넷 라디오로 간다. -0-a
일단 오늘의 보드는 아래와 같이 설정한다.
LED : 11번 핀에서 입력을 받아 330옴 저항을 통해 LED의 긴다리(+)로 연결되고 짧은다리(-)에서 GND로 나간다.
YELLOW BUTTON : 3.3V로 전원이 들어가고 10K옴을 통해 버튼으로 들어간다. 위 그림에서 위 오른쪽 다리 방향으로 GND로 이어지고, 버튼의 입력은 18번 핀으로 받도록 설정했다.
Raspberry pi2 이름로 각 핀의 wiringpi 번호는 아래와 같다.
개발 목표는 버튼을 누르면 10초간 LED가 켜지고, 지정한 사운드를 출력하도록 한다. 출력 중 입력이 다시 들어오면 기존의 사운드를 중지하고 다시 출력하도록 하자.
코드는 아래와 같다.
#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>
int main (void)
{
int SWITCH = 5; // pin 18
int LED = 0; // pin 11
int sndPID = 0;
if(-1 == wiringPiSetup())
return 1;
pinMode( SWITCH, INPUT); // 버튼의 입력을 받는다.
pinMode (LED, OUTPUT) ; // LED에 신호를 보낸다.
for (;;)
{
digitalWrite (LED, 0) ;
if( digitalRead(SWITCH) == 0)
{
digitalWrite (LED, 1) ;
sndPID = fork();
if(sndPID == 0)
{
// 사운드 출력에는 mplayer를 사용한다. 기존에 출력 중이라면 중지시킨다.
system("killall mplayer");
execlp("/usr/bin/mplayer", " ", "/home/pi/media/sound/dragon.wav", NULL);
}
delay(10000); // ms. 10초간 불을 켜둔다.
}
}
return 0 ;
}
mplayer 설치법은 여기 를 참고하길 바란다.
테스트 사운드는 아이가 가지고 노는 요괴워치 중 하나를 녹음 한거라 음질이 엄청 나쁘니 양해 바란다. ^^a
이상. 다음은 인터넷 라디오 프로토타입으로 하단의 "인터넷 라디오" 카테고리에 업데이트 됩니다. ^^
'개발 이야기 > 개발툴 및 기타 이야기' 카테고리의 다른 글
Hangouts , Google Drive를 사용하면서.. (0) | 2015.06.30 |
---|---|
프로토타입 _ 1 2015-05-03 (0) | 2015.05.04 |
blink 샘플 실행 (0) | 2015.04.29 |
라즈베리파이로 인터넷 라디오 만들기 1 ... 라이브러리 설치 및 테스트 (22) | 2015.04.18 |
기본적이지만 중요 정보 몇가지 (31) | 2015.04.18 |