본문 바로가기

개발자/라즈베리파이4

라즈베리파이 음성 녹음 재생 모듈 ISD1820

반응형

 

 

라즈베리파이 GPIO를 이용하여 음성 녹음 및 재생하는 장치를 제어해보도록 한다. 여기서는 음성 녹음(Voice Record) 모듈은 마이크를 통하여 음성을 녹음하고 스피커를 통하여 녹음된 음성을 재생한다. 여기서 사용된 모듈은 다중 메시지를 녹음/재생하는 디바이스인 ISD1820 칩을 사용한다. 이 모듈은 단일 칩 음성 녹음 및 비휘발성 데이터 저장, 그리고 8~20초 동안 재생 기능을 제공한다. 3.3V 전원에서 동작하며, 범위를 초과하면 모듈이 손상될 수 있다.  

 

아두이노 연결과 코드는 이 링크를 따라가세요.

 

 

음성 녹음 재생 모듈 ISD1820

 

IDS1820 모듈 설명

 

음성 녹음 및 재생 구동회로  

 

 

REC 버튼 : S1은 버튼 스위치이며 이 버튼을 누르고 있는 동안 녹음이 된다. 그러므로 라즈베리파이 GPIO 핀으로 제어가 가능하다. 이 핀은 녹음하는 동안 HIGH(버튼을 누른 상태)로 유지되어야 한다.

 

PLAY버튼 : 이 신호에 상승에지가 공급되거나 High 레벨이 검출될 때 재생이 시작된다. 재생은 메시지의 끝이나 메모리 공간의 끝까지 계속되지만 레벨이 Low로 떨어져도 재생이 종료된다. 

 

라즈베리파이와 회로 연결도는 아래 그림을 참고한다.

 

라즈베리파이와 ISD1820 음성 모듈 연결도

 

소스 코드와 코드 설명은 아래를 참고한다.

 

#include <wiringPi.h>
#include <stdio.h>

#define REC	11
#define PLAYE	9
#define PLAYL	10

int main(void)
{
	if(wiringPiSetupGpio() == -1){
		return 1;
	}
	pinMode(REC, OUTPUT);
	pinMode(PLAYE, OUTPUT);
	pinMode(PLAYL, OUTPUT);

	while(1)
	{
		printf("Play Voice\n");

// PLAYE, Edge activated mode
		digitalWrite(PLAYE, 1);
		delay(5000);
		digitalWrite(PLAYE, 0);
// PLAYL, Level activated mode
//		digitalWrite(PLAYL, 1);
//		delay(5000);
//		digitalWrite(PLAYL, 0);
	}

}

 

 

Program Source Description
#include <wiringPi.h> GPIO access library 헤더파일 선언
#include <stdio.h> 표준입출력 관련 헤더파일 선언
#define REC  11
#define PLAYE  9
#define PLAYL  10
REC Pin 정의
PLAYE Pin 정의
PLAYL Pin 정의
int main(void)
{
 
  if(wiringPiSetupGpio() == -1){
  return 1;
  }
Wiring PiGPIO를 사용하기 위한 설정

 

  pinMode(REC, OUTPUT);
  pinMode(PLAYE, OUTPUT);
  pinMode(PLAYL, OUTPUT);
REC 핀 출력설정
PLAYE 핀 출력설정
PLAYL 핀 출력설정
  while(1)
  {
  printf("Play Voice\n");


메시지 출력
  digitalWrite(PLAYE, 1);
  delay(5000);
  digitalWrite(PLAYE, 0);
  }
}
PLAYE 핀에 HIGH(1) 출력
5000ms 지연
PLAYE 핀에 LOW(0) 출력

 

컴파일 프로그램 실행은 아래와 같은 명령어로 한다. REC버튼을 누르고 원하는 소리를 녹음한다. audio_record.c를 컴파일하고 실행한 다음 녹음했던 소리가 재생되는지를 확인한다.  

 

컴파일 명령어 gcc o audio_record audio_record.c -lwiringPi 실행파일명을 audio_record설정하여 컴파일한다.
실행 sudo ./audio_record 프로그램을 실행한다.

 

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩