특정 상황마다 특정 음악을 재생해주는 장치가 있다면 인터렉티브 창작품 제작시 매우 유용합니다. 이미 소개해 드린 웨이브 실드를 이용할 수 도 있습니다만, 오늘은 좀더 간단하게 사용할 수 있는 MP3 Trigger 보드를 소개해 드리겠습니다.
특징 1. 프로그래밍 할 필요가 없습니다. 2. 제작자가 제공해주는 파일만 복사해주면 내장 프로그램(펌웨어)을 업그레이드 할 수도 있습니다. 3. 많이 사용되는 MP3 음원을 지원합니다. 4. 간단한 사용법( MP3 파일을 숫자로 시작되는 이름으로 수정하여 복사 후 해당 숫자 버튼만 눌러주면 작동)
) 2. xxxxxx.zip 다운로드 후 압축해제하면 hex 파일이 보입니다. 3. hex 파일은 SD 메모리에 복사하고, 파일명을 MP3TRIGR.HEX 로 변경해줍니다. 4. SD 메모리를 MP3 Trigger 에 장착합니다. 5. 네비게이션 핸들 (play/stop 버튼)을 누른 상태로 전원을 켜줍니다. 6. 상태 LED가 ON상태를 유지하게 될 동안 기다립니다. 완료되면 전원을 껐다 켜주면 완료됩니다.
관련사진
참고 동영상 아래의 동영상은 일반 전선 대신 전도성실(전기가 통하는 실)을 이용하여 원하는 mp3음원을 재생시키는 장면입니다.
이미 소개해 드렸던 촬영된 이미지를 JPEG 포멧으로 압축하여 시리얼통신으로 전송해주는 카메라를 PC와 직접 연결하여 테스트해봤습니다. 시리얼 통신으로 촬영된 데이타를 전송해주므로 시리얼통신을 지원하는 모든 기기에 연결 가능합니다. 게다가 JPEG 이미지 포멧으로 압축하여 전송을 해주므로 저장만 해주면 PC에서도 그대로 확인이 가능해집니다. 본 동영상에서는 USB to 시리얼 변환기를 통해 PC와 연결한 뒤, 기본 제공되는 PC 용 테스트 프로그램을 이용하여 실시간 이미지 전송과 Single Shot(한장촬영) 기능을 테스트 및 해상도와 전송속도 조절기능도 사용해봤습니다.
PC와 연결 구성
PC USB포트<-> USB 케이블 <-> USB to Serial FTDI 변환기 <-> TTL Serial JPEG Camera
오늘은 울트라 하이테크놀로지의 결합체인 디지탈 카메라를 만들어봤습니다. "정말 피눈물나는 노력을 통해 완성한 나만의 아두이노 호환 똑딱이입니다." 라고 말씀드리면 거짓말이고요, 사실 제가 한 일이라곤 촬영된 이미지를 JPEG 포멧으로 시리얼통신을 통해 전송해주는 카메라와 이값을 수신하여 microSD메모리에 저장해주는 역활을 해주는 JPEG Trigger 아두이노 호환보드를 단순히 조립해주고 버튼한개 달랑 단것이 전부입니다. 아, 그리고 휴대용 카메라의 역활을 다할 수 있도록 3.7V Lipo충전지도 장착해줬습니다. 성능은 최신 카메라에 비길수 없겠지만 그래도 좋은건 센서연동 및 자유로운 제어가 가능한 아두이노 호환형 디지탈 카메라 시스템이라는 점입니다.
시리얼통신 JPEG 카메라가 무엇인가? 시중에서 많이 구경할 수 있는 카메라들과 달리 촬영된 이미지를 JPEG 이미지 포멧으로 압축하여 시리얼 통신(TTL 레벨)으로 전송해주는 특수 카메라입니다. 즉, 시리얼 통신이 가능한 모든 기기에서 압축된 디지탈 이미지 데이타를 수신할 수 있습니다.(일반적인 video 신호 출력도 지원) PC의 경우엔 FTDI USB시리얼 변환보드를 경유하여 카메라를 제어하고 이미지를 수신해 볼 수 있습니다. (
관련글 - 시리얼통신 카메라 PC연결하기
) 그리고 무엇보다도 아두이노같은 8bit 저속 MCU 보드들에서도 시리얼통신으로 촬영된 이미지를 수신할 수 있게 되어 유용한 카메라입니다. 물론 압축된 이미지(JPG) 데이타라도 아두이노에서 실시간 처리를하는 것은 무리가 있습니다. 하지만 데이타를 SD메모리에 저장하고 참고하는 형태의 응용이라면 충분히 제 역활을 할수 있게되는데요, 이 역활을 하는 전용 보드(JPEG Trigger)가 있어 함께 사용하면 손쉽게 디지탈 카메라 기능 구현이 가능해집니다.
JPEG Trigger 보드 본 제품은 JPEG Camera와 짝을 이뤄 사용하도록 최적화된 아두이노 호환 보드이지만 몇가지 특수 기능을 갖쳐서 프로그램을 바꿔서 다른 용도로 사용하는것도 좋을 것 같습니다. JPEG 이미지 저장용 microSD 메모리 인터페이스와 1V~ 5V 사이의 전원을 입력해주면 내장된 승압회로를 통해 5V전원으로 작동되도록 설계되어 건전지(1.5V or 3V)나 Lipo(3.7V) 충전지 하나만으로 작동이 가능합니다. 야호! 더불어 총 6개의 범용 IO핀( 아두이노 D2,D3,D4,A0,A1,A2) 홀이 제공되어 트리거(Trigger, 셔터눌러주기) 용도 및 기타 IO기능으로 사용이 가능합니다.
오픈 소스 하드웨어 공개된 소스코드와 라이브러리를 설치해주면(이미 프로그램되어 있음) 원하는 방식으로 카메라 구현이 가능하므로 응용범위가 무궁무진해 집니다.
사진. 초간단 디지탈 카메라 구현 연결이미지 카메라 + 보드 + Lipo충전지 + 버튼 을 연결해주기만 하면 프로그래밍 없이도 바로 작동합니다.
동영상. 결합상태 확인 및 사진촬영 테스트
동영상 내용 소개 보드, 카메라, 충전지, 버튼이 연결된게 보입니다. 스위치를 켜주면 상태점검 후 상태 LED가 켜집니다. 이게 안켜지거나 깜빡거리면 카메라나 메모리에 문제가 있는것입니다. 초기상태의 경우 D2,D3,D4 버튼중의 하나를 GND에 연결하는 순간 카메라 셔터가 작동(촬영)되고 JPEG으로 압축된 이미지가 시리얼 통신으로 보드에 전달되고 이 정보가 SD메모리에 저장됩니다. 마침 네모로봇 군이 옆에 있어 버튼을 눌러 촬영을 해봤습니다. 이미지가 저장되는 중에 상태 LED가 깜빡거리는게 보입니다. 저장이 완료되면 상태 LED가 다시 켜집니다. 저장된 이미지는 PC에 연결하여 (변환과정 없이) 볼 수 있습니다. (단, 초기 프로그램된 상태에선 확장자가 txt로 저장이되는 문제가 있어서 이를 PC에서 jpg 확장자로 변환해야 볼 수 있습니다. 신규 소스로 업로드하시면 이문제는 해결됩니다.)
사진. 촬영된 이미지 예
카메라와 보드 연결 JPEG카메라 <-> JPEG트리거보드 VCC -- 5V GND -- GND TXD -- D5(Rx) 주의. 카메라측 송신(Tx)단자가 트리거보드 측 수신(Rx)에 (교차)연결됩니다. RXD -- D6(Tx) 주의. 카메라측 수신(Rx)단자와 트리거보드 측 송신(Tx)에 (교차)연결됩니다. TV(미연결) 일반적인 video 신호출력선입니다. 본 예제에서는 사용안함.
전원 배터리 단자에 3.7V 정도의 Lipo충전지를 연결하여 사용하거나, 배터리 단자 옆에있는 GND와 1~5V 핀에 1~5V 전원을 연결해줍니다. (입력된 전원은 5V승압회로를 통해 5V로 승압되어 공급되게됩니다.) (FTDI USB시리얼 보드 연결시엔 usb 전원이 상시 연결됩니다.)
스위치 기능 배터리 입력전원을 승압회로에 연결여부를 선택해준다.(회로도를 꼭 참고하세요) 배터리 사용시 보드 ON/OFF 기능으로 사용됩니다. (FTDI USB시리얼 보드 연결시엔 usb 전원이 상시 연결됩니다.)
사용법 카메라와 FAT 포멧된 메모리를 장착후 전원을 켜주면 LED가 ON된다. 메모리가 없거나 포멧상태 문제등으로 초기화가 안되면 LED는 깜빡인다. 카메라가 연결되지않은경우 LED가 안켜진다. (단, 상태LED 모드는 펌웨어에 따라 다를수있으므로 해당 소스 상단 주석을 확인바랍니다.)
입출력핀 카메라 촬영신호를 받거나 I/O용으로 아래의 6개핀을 사용할 수 있습니다. 아두이노 디지탈핀 D2,D3,D4와 아두이노 아날로그핀 A0,A1,A2를 입출력 보드에는 손쉽게 전원활용을 할수있도록 각 입출력핀마다 GND,5V 홀(구멍)이 함께 있어서 총 18개의 구멍이 있습니다. 이때 GND, 5V 구멍이 안쪽에 있고 바깥쪽이 D2,D3,D4,A0,A1,A2 핀이므로 주의바랍니다.
카메라 촬영법 초기 제공되는 펌웨어(소스참조)의 경우 D2,D3,D4 핀을 GND에 연결하거나 (내부 Pullup되므로 별도 저항없어도 됩니다) A0,A1,A2 핀을 5V에 연결하는 순간 카메라 촬영이 되고,이미지가 메모리에 저장됩니다. 이때 LED가 깜빡거리고, 저장이 끝날때까지는 재촬영이 안됩니다.
저장된 JPEG이미지 초기 제공되는 펌웨어의 경우, 저장된 이미지는 001.TXT 와 같이 확장자가 TXT로 저장되는 문제가있으며 이를 PC에서 JPG로 변경하셔야 이미지 확인이 가능합니다. 하지만 새로 제공되는 소스코드로 재프로그래밍 하시면 JPG확장자로 저장되므로 꼭 업그레이드 하시기 바랍니다.
주의사항: 보드가 켜있는 상태에서 메모리카드를 뽑지 마세요! 메모리 상태 및 보드 펌웨어 상태가 손상될 수 있습니다. 이경우 보드 펌웨어를 재프로그래밍하고 메모리를 재 포맷해야할 수 있습니다.
오늘은 귀가 즐거운 녀석을 소개해드리겠습니다. 이녀석을 아두이노 호환보드들에 장착하면 MP3 player 기능 구현이 가능하며, wma, wav, midi 포멧도 지원합니다.
완성도 높은 하드웨어 휴대용 mp3와 같은 조그셔틀 버튼과 음량버튼이 내장되어있고 ipod dock에 장착할수있는 포트도 내장되어있습니다. 게다가 헤드폰단자외에 마이크입력단자도 제공됩니다. 오호~ 녹음도 되냐고요??? 네, 가능합니다. 하지만 ATmega1280이나 2560 급 보드에서만 가능하답니다. 즉, 일반 아두이노 UNO보드는 안되고 Mega2560 보드에서 가능합니다. 그리고, DIY 창작을 하는 여러분들에게는 하드웨어만 좋아서는 안되겠죠!
오픈소스(Open Source) 본 제품을 위한 player 구현 소스코드가 공개되어 있으므로 마음대로 모든 기능을 계량 or 해킹이 가능하다는것이 가장 마음에 드는 점입니다.
첨부파일 제조사 wiki 페이지 링크가 문제일경우 첨부된 소스코드 파일을 참고하시기 바랍니다.