검색결과 리스트
raspberry 에 해당되는 글 4건
- 2015.05.04 프로토타입 _ 1 2015-05-03
- 2015.05.01 버튼으로 LED, Sound 처리하기
- 2015.04.18 기본적이지만 중요 정보 몇가지
- 2015.04.17 드디어 왔다!!
인터넷 라디오 프로토타입을 완성. 실행 후 버튼을 누르면 채널이 변경되도록 만들었다.
일단 회로도 구성은 아래와 같다. 아직은 버튼이 하나라 간단하다.
YELLOW BUTTON : 3.3V로 전원이 들어가고 10K옴을 통해 버튼으로 들어간다. 위 그림에서 위 오른쪽 다리 방향으로 GND로 이어지고, 버튼의 입력은 18번 핀으로 받도록 설정했다. 18번 pin은 wiringPI에서 5번이다.
실행 후 노란 버튼을 누르면 미리 입력된 채널이 변경되도록 했다. mms 출력을 위해 mplayer를 사용하며, mplayer 설치 방법 을 참고하기 바란다.
코드는 아래와 같다.
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <time.h>
#include <unistd.h>
#include <wiringPi.h>
int main (void)
{
if(-1 == wiringPiSetup())
return 1;
int SWITCH = 5; // pin 18
pinMode( SWITCH, INPUT);
clock_t startPush = 0;// for shutdown
const char *radiolist[] = {
"mms://210.105.237.100/mbcam"
,"mms://211.181.136.136/livefm"
,"mms://114.108.140.39/magicfm_live"
,"mms://115.84.165.160/fmlive"
,"mms://211.218.209.124/L-FM_300k"
};
int count = sizeof(radiolist)/sizeof(int);
printf("radio list count = %d\n", count);
printf("now time = %d \n", startPush);
pid_t sndPID = -1;
pid_t myPID = getpid();
int radioIdx = 0;
for (;;)
{
if( digitalRead(SWITCH) == 0)
{
if(sndPID != -1)
kill(sndPID, SIGQUIT);
sndPID = fork();
if(sndPID == 0)
{
sndPID = execl("/usr/bin/mplayer", "mplayer", "-quiet", radiolist[radioIdx], NULL);
}else{
++radioIdx;
if(radioIdx >= count)
radioIdx = 0;
}
}
}
return 0 ;
}
18번 핀의 입력을 받으면 저장한 라디오 주소를 바꿔주도록 했다.
결과는 아래와 같다.
다음에는 볼륨 조절, 종료 코드를 추가해 볼 예정이다.
이후 블루투스 스피커 연결, 외형 제작, 실기 테스트 순서로 진행되어 마무리 될 예정.
다들 좋은 하루 되세요. ^^
'프로젝트 > 인터넷 라디오' 카테고리의 다른 글
프로토타입 _ 1 2015-05-03 (0) | 2015.05.04 |
---|---|
라즈베리파이로 인터넷 라디오 만들기 1 ... 라이브러리 설치 및 테스트 (0) | 2015.04.18 |
이전에서는 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
이상. 다음은 인터넷 라디오 프로토타입으로 하단의 "인터넷 라디오" 카테고리에 업데이트 됩니다. ^^
'개발/경험 > RaspberryPi' 카테고리의 다른 글
버튼으로 LED, Sound 처리하기 (0) | 2015.05.01 |
---|---|
blink 샘플 실행 (0) | 2015.04.29 |
기본적이지만 중요 정보 몇가지 (0) | 2015.04.18 |
드디어 왔다!! (0) | 2015.04.17 |
기본 id는 "pi", pw는 "raspberry".
--------------------------------
sd에 라즈비안 설치 시 기본 비번은 변경하는게 좋으며,
초기 설정에서 놓쳤다면 이후 "raspi-config"를 입력하면 다시 설정할 수 있다.
보드에 전원 스위치가 없다.
--------------------------------
전원이 연결되면 바로 가동되는데, 종료시 전원을 바로 내리면 주변장치에 문제가 발생할 수 있다. ( sd카드와 같은.. )
" shutdown -h now " 커멘트를 통해 꼭 모든 디바이스가 unmount 된 이후 종료되도록 해줘야 한다.
재가동하려면 전원선을 뺐다가 다시 연결하니 되네. 이거 몰라서 한참 찾음.
SD 카드는 가능한 큰걸로
---------------------------------
http://www.raspberrypi.org/downloads 에서 os 이미지를 다운받아 http://sourceforge.net/projects/win32diskimager/ 유틸리티를 이용해 SD에 구워 사용하게 되며, 보통 이 sd를 통해 계속 운영하게 된다.
GPIO용이 아닌 개발 device로 사용하려면 여러가지 라이브러리를 사용해야 하기 때문에 가능한 큰 용량의 sd로 시작하는게 좋다.
전원만 연결하면 원격으로 바로 사용할 수 있게 세팅하자.
---------------------------------
이를 위해 무선랜 설치, 자동 로그인 두가지 설정이 필요하다.
아래 과정시 관리자 권한을 필요로 하기 때문에 sudo를 입력하거나 혹은 sudo su를 입력 후 아래 절차를 진행하자.
무선랜 설치
------------------------------------
공간활용을 위해 가능한 무선랜을 추천한다. 난 처음 구매시 netis 제품이 동봉되어 도착했다.
무선랜은 아래와 같은 순서로 설치하면 된다. (x-windows에서 설정은 간단하니 패스, 콘솔에서 설정하는 방법을 다룬다.)
1. 설치된 공유기에 접속 설정
nano /etc/wpa_supplicant/wpa_supplicant.conf 를 실행하면 아래와 같은 화면이 뜬다.
아래와 같이 입력하자. ssid와 psk는 각자 공유기의 설정에 따른 값을 입력해야 한다.
nano editor는 vi보다는 좀 더 사용하기 쉽다.
문자열을 찾을 때는 ctrl+w 입력 후 찾고자 하는 문자를 입력하면 된다.
ctrl+x를 입력하면 수정된 경우, overwrite할지 물어보고 Y를 입력하면 저장하고 종료된다.
2. nic(network interface card) 설정
nano /etc/network/interfaces 를 입력하고 해당 정보를 아래와 같이 수정한다.
이제 설정은 모두 마무리 되었다. 아래와 같이 무선 인터넷을 재시작해보자.
ifdown wlan0
ifup wlan0
만약 에러가 발생한다면 해당 메세지에 따라 수정이 필요할 수 있다. 잘 안된다면 전체 오류 메세지를 댓글로 달아주면 확인 후 답변 할지도 ^^;;;
재시작되면 ifconfig 명령으로 할당된 ip를 확인할 수 있다. 이제 자동 로그인 되도록 해보자.
2. 자동 로그인 설정
nano /etc/inittab 를 입력해 시스템 기동시 처리되는 내용이 기록된 파일을 연다.
각 런레벨별로 실행하는 정보 라인을 찾아보자.
1:2345:respawn:/sbin/getty --noclear 38400 tty1 => 이와 유사한 라인을 찾아볼 수 있다. ctrl+w로 noclear를 검색해서 찾아보자.
이를 주석 처리하고 (문장 제일 앞에 #을 붙이면 된다.), 아래 라인을 입력하자.
1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 > /dev/tty1 2>&1
'개발/경험 > RaspberryPi' 카테고리의 다른 글
버튼으로 LED, Sound 처리하기 (0) | 2015.05.01 |
---|---|
blink 샘플 실행 (0) | 2015.04.29 |
기본적이지만 중요 정보 몇가지 (0) | 2015.04.18 |
드디어 왔다!! (0) | 2015.04.17 |
작년부터 라즈베리파이를 살까 말까 고민했었는데..
무얼 만들지를 고민하다가 최근 아내가 간단한 라디오를 원해서,
1) 부엌에 설치할 음성인식 인터넷 라디오..
아이가 요괴워치 시계를 사고 싶어 하는데 갈 때 마다 없어서 만들기로 한.
2) 메달을 삽입하면 TFT 화면에 소환 영상이 같이 출력되면서 소리가 나는 요괴워치 장남감.
을 만들려고 구매를 결정.
어제 손이 들어왔다.
새로운걸 배우는건 언제나 두근두근이라.. ^^
게다가 이런 소식도... 윈도우10 라즈베리파이 지원!!
'개발/경험 > RaspberryPi' 카테고리의 다른 글
버튼으로 LED, Sound 처리하기 (0) | 2015.05.01 |
---|---|
blink 샘플 실행 (0) | 2015.04.29 |
기본적이지만 중요 정보 몇가지 (0) | 2015.04.18 |
드디어 왔다!! (0) | 2015.04.17 |