디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

잠을 깨게 만드는 캬루 인형 알람 제작기

멜리사J갤로그로 이동합니다. 2023.02.22 10:12:01
조회 31635 추천 367 댓글 263


내용이 길어서 결과만 보고싶은 사람을 위한 결과물 미리보기


viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87e7b4a4c15c688e20b72e820



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4e08f1bf83e08a6ab7d780a50dd5d466733b387a6d112db


원래 목적인 던져서 알람 끄는 방법


viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4e08f1bf83e08a6ab7d780a06d70f1768635c190dbb62f6


충격 감지 스트레스 테스트 해본 결과.



반갑다.



지금은 권고사직 당했지만 출근하기위해 일어나는게 정말 짜증났던 일이 많았던거 같아.


알람이 울릴때 일어나기 너무 힘들고, 기분좋은 알람으로 설정해도 들으면 짜증만 나고


사실 지금도 알람울릴때 일어나려고하면 못일어나기도 하고..



그래서 생각난게 일어나기 위하여 몸을 격하게 움직이는 행동을 유도시켜서 일어나게 하는거야.


덤으로 짜증나는 알람듣고 화난 기분 푸는 것도 같이하는거고.


그러기 위해서 대충 눈앞에있는 친근한 무언가 + 때려도 기분좋을듯한 아이템을 찾았어.


이렇게 실직자 등록하는동안 심심해서 프로젝트를 진행하게 된게 캬루 알람 인형이야.



난 절대로 캬루를 싫어하지 않아! 우연히 캬루가 이 주제랑 어울려서 적용했을 뿐이야. 믿어줘!




만들어 지는 과정에 대한 목차는 다음과 같아.



1. 계획


2. 준비


3. 소프트웨어 제작


4. 하드웨어 제작


5. 실사용 후기





1. 계획


먼저, 처음 제작은 콧코로 인형으로 하려다가 캬루 인형으로 전환하게 된 이유를 하나 설명해줘야 할 듯 싶어.


캬루는 배신자니까. 모든게 납득 될 꺼야.



그러므로 캬루인형에 알람 시스템을 구축한다음에 시간맞춰 울리게되면 던져서 알람을 끄는거야. 이러면 잠깨기 좀 수월하겠지???





그런데 캬루 인형 하나로 무엇을 하기는 어렵다고 보는게 맞아. 좀더 구체적으로 어떻게 해야할지 정해볼거야.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87b2ecd4ddada92056bd8cdd7


캬루 인형은 생각보다 크지 않아.


무언가를 넣을 수 있는 공간은 100mm x 100mm x 100mm 정도로 되어 있었어.


여기에 인형 하나로 알람을 위한 모든걸 구현하기란 쉽지 않음을 짐작 할 수 있어.


그러므로 스마트폰을 이용한 무선 통신방식으로 진행할까 하고있어.



2. 준비


캬루인형과 무선통신 하기 위해서는 와이파이, 지그비, 블루투스, BLE 를 후보로 놔뒀는데 와이파이와 지그비는 예전 회사에서도 잘 다루지 않았던 물건이고 블루투스(클래식)은 써보면 배터리 소모량이 생각보다 큰편이야.


그래서 BLE (bluetooth low energy, 저전력 블루투스) 를 캬루에 심어야해.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2ddcf3e15969673675293a4fc213799484cd68ea9a8823eceae5


다행히 아두이노중에 나노 라인업에 33 BLE 라는 제품이 있어. 이 제품에는 BLE 외에 IMU, 기압, 온도, 습도 센서 등의 다양한 센서가 모여있고 크기도 40mm x 20mm로 적당해.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87e20d97a54fc1d94dbf6566d


인형 내부에서 보이스가 나오도록 해야하니까 음악 재생 모듈과 스피커도 필요해져.


여기서는 dplayer mini 를 사용할거야. sd 카드를 이용한 mp3재생 및 스피커 연결이 포인트야.


스피커는 1W 의 초소형 스피커를 사용하여 동작 시킬예정이야.


둘이 합해서 사이즈는 20mm x 20mm 정도로 작은 편이야.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2ddcf3e15969673675293a4fc2132ba38c15bc470c42795a99c5


알람이 울릴경우 던져서 멈추기로 했으니까 충격 감지 센서가 필요해.


SW-18010P 라는 진동 센서모듈을 이용할거야.


이 모듈은 안에 있는 스프링이 충격을 감지하는 방식을 사용하고 있어.


사이즈는 35mm x 15mm 로 괜찮은 것 같아.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2ddcf3e15969673675293a4fc2132c1de2d12814525da7617c1a


앗.. 지금은 3500mAh 배터리로 교체했어


안정성과 크기를 고려하여 리튬폴리머 배터리를 사용하기로 했어.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2ddcf3e15969673675293a4fc2137ae34a1120534b7866ae7d53


그리고 5V 승압변환모듈도 같이 구매했어. 리튬폴리머 배터리는 3.7V 정도의 출력만 나오기 때문에 5V로 승압해서 출력해야 할 이유가 있어.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2ddcf3e15969673675293a4fc213201d0b9c000abff0e88e05d1


계획에는 없던 물건인데 아두이노 배터리 측정에 문제가 생겨서 사게된 모듈이야. DM452 라는 모듈이고 배터리 전압을 아두이노로 표시해줘.



어플은 항상 해오던거니 준비과정에 크게 안적어도 될 듯 싶다.




3. 소프트웨어 제작.


1) 모듈 기능 구현



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba874205b1170cccc8af100c5d0


먼저 음악재생용 dplayer mini를 확인해볼거야.


rx / tx 연결시에는 크로스 연결해야 한다는 점 잊지마.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87c2f11c400c5a9cd5d39259e

코드는 제조 회사에서 기본적인 예제를 주긴하는데 33 BLE의 RX / TX 소켓에 꽃으니 동작이 잘 안되는 현상이 있어서 다른 라이브러리를 이용했어.


여기서는 음악재생, 음악중지, 저전력(버그로 안됨), 등의 기능을 이용 할 수 있어.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87b7a766789568131b25a10a0

SD카드에 0001, 0002, 0003 ..... 의 형식으로 넣은다음에 play() 함수를 이용하여 재생 시킬 수 있어.




1W 초소형 스피커 치고는 성능이 매우 잘 나옴을 확인 할 수 있어.



캬루 보이스는 저번 외국인분에게 받은 프로그램을 바탕으로 구현했어. 캬루 말투를 상상하면서 만들긴했는데 전 혀 똑같지 않다는게 포인트야 ㅠㅠ



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2ddcf3e15969673675293a4fc2137cfc1d8ea02b451452138efb


충격 감지센서는 아날로그핀에 꽃아서 사용 할 수 있어.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2ddcf3e15969673675293a4fc2132d2f1819fce8ad6a1497dbca


이 제품은 충격 값을 1023 - 0 수치로 보여주기 때문에 세부설정이 용이한 장점이 있어.




영상찍은 당일 패킷작업 도와주던 지인이 놀러와서 음악틀어놨던거 잊고 찍었나봐.. 음악들리는거 양해부탁할게.


충격 발생 시 LED 가 점등됨을 확인 할 수 있어.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba82a7903047c113add869d778f


아두이노는 스마트폰과 BLE 통신을 하기 위해 패킷 통신 방법을 사용 할 예정이야.


그리고 회사에서 자주 사용하던 패킷 통신 양식을 사용 할 거야.


시작 / ID / 패킷값 / 패킷값 / 사이즈 / 끝 순으로 보낼거야.


이후 스마트폰 (혹은 아두이노) 에서 시작값과 끝값을 찾은뒤 사이즈가 보낸 패킷길이와 맞는지 점검하고 패킷값에 따른 설정 완료하고 답장 패킷 전송을 목표로 하고 있어.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba82d2feb04204919414e61caf2


약속대로 지우진 않았다???

지인이 나랑 친해서 스프레드 시트에 장난 쳐 놓고 지우지 못하도록 해놨더라.. 아...



기능 구현을 위한 패킷은 지인을 동원해서 정리를 해놨어.


보답으로 일본여행 갔을때 원하던 물건 다 사줬으니 할 일 다해줬어.



패킷 전송의 분류는 기능상 다음과 같이 분류되어 있어.


1. 처음 연결 시 패킷

- 배터리와 현재 설정된 시간 정보를 공유한다.

2. 배터리 잔량 전송 패킷

- 배터리 잔량 정보를 정기적으로 공유한다.

3. 알람(타이머) 설정 패킷

- 설정된 시간 값과 동작해야할 타이머 카운트를 공유한다.

4. 알람(타이머) 중단 패킷

- 타이머를 중단 시킨다.

5, 설정 불러오기 패킷

- 설정 데이터(사운드, 알람 반복, 음악 리스트, 충격 감도)를 공유한다.

6. 설정 저장하기 패킷

- 설정 데이터(사운드, 알람 반복, 음악 리스트, 충격 감도)를 공유한다.

7. (알람이 울릴 때) 울리는 알람 전송 패킷

- 알람이 울리는 상태에서 스마트폰과 연결 시 알림이 울리고 있음을 공유한다.

8. (알람이 울릴 때) 알람 중지 패킷

- 스마트폰에서 알람 중지 패킷을 전송 할 경우 처리한다.

9. (알람이 울릴 때) 알람 충격 발생

- 알람이 울리는 상황에서 충격 발생 시 스마트폰에 중지됨을 공유한다.


패킷에 대한 상세 내용을 전부 적고 싶은데 너무 많은 내용이 적힐 듯 싶어서 패킷 정리해놨든 스프레드 시트를 공유할게.


여기에 정리 다 해놨어.


https://docs.google.com/spreadsheets/d/1zqOIscimEf2tIPX3FKa5HgBziu-IAGmjvsWRCMEdhH8/edit?usp=sharing


 



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87f2d4357f37053dcfe3e1157


마지막으로 알람 카운트를 위한 타이머 인터럽트 구현이야.


타이머 인터럽트를 간단하게 설명하자면, 소스코드로 돌고있는 부분이 아닌 내부 기능를 이용하여 일정 시간마다 태클 걸고 무엇을 하라고 지시 할 수 있어.


아두이노는 소스 사용시 딜레이를 자주 사용하게되어 시간 측정이 많이 꼬이는 편 인데 타이머 인터럽트를 이용하여 카운트를 정확하게 지시 할 수 있어.


(타이머 인터럽트 동작 사진)


이와 같이 1초마다 카운트가 잘 작동함을 알 수 있어.



이제 센서 동작을 위한 코드 작업은 끝났어. 이걸 하나로 합치는 작업을 하면 되는데 이 부분은 어플리케이션 개발과 같이 보여줄게.




2) 아두이노 소스코드 통합 및 어플리케이션 개발


이제부터 나오는 사진은 흰색바탕 : 아두이노, 검은바탕 : 어플리케이션 이야.


어플리케이션의 경우 컨트롤러의 기능만 필요하단 점을 강조할게.


그러므로 메인 액티비티 + 세팅 액티비티 + 블루투스 검색용 액티비티 + 알람 설정 액티비티 로 구현될 예정이야.



메인 액티비티에서는 블루투스 연결 진입, 알람 설정 진입, 세팅 메뉴 진입, 캬루 를 구현 할 거야.



블루투스 연결 과정은 이전 작업에서도 보여준 클래식 연결과 크게 다르지 않긴 한데 중요포인트 하나만 짚고 넘어갈게.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87529c1c7f2b65a44d0ca39b2


UUID 설정을 클래식에서는 하나만 대충 설정해도 알아서 연결 잡아주는 반면, BLE 는 아두이노 설정 UUID 와 앱 설정 UUID 가 일치해야하고 서비스, TX, RX, 클라이언트 UUID 까지 다 일치해야 연결된단점 참고 부탁할게.


여기서마저 아두이노 TX = 앱 RX 방식은 여전해.


추가로 블루투스 검색을 하게되면 해당 블루투스 리스트 + 수신감도를 확인 할 수 있도록 해놨어.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba8282cc9a023ff19812d815b0e


아두이노 측에서는 블루투스가 연결 이벤트 발생 시 초기연결 패킷 전송을 하도록 해놨어.


초기 연결에서 가져오는 데이터는 알람동작여부, 알람시간 정도야.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba82f7df023808eabf0c3016be5


캬루만 갖다놓고 있기에는 심심하니까 저번처럼 gif 를 이용하여 눈깜빡이거나 말하는것처럼 꾸미기, 대화 자막등을 구현할거야.


viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2ddcf3e15969673675293a4fc2132c1ee2d2264d550aa7617c1a


캬루 대화 ui는 이렇게 구상하기로 했어


버튼은 세팅 진입 버튼을 제외하면 하나의 버튼을 이용하여 구현할거야.


viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba8282e87d175282ebed4365f3f


캬루 연결 버튼 -> 알람 설정 버튼 -> 알람 중지 버튼 -> 알람 종료 버튼 의 순서로 나타나게 할 거야.


viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba8292889457d15caa2ce3477a4


다음과 같이 하나의 버튼에서 구현할 수 있어.


알람과 세팅은 프래그먼트를 이용하여 이동하는 방식을 사용하기로 했어.


viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4e08f1bf83e08a6ab7d780a51d35e14653357b978b416c8


viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87a28e07bef5b8a1938303f4d


추가로 싸구려틱한 애니메이션도 넣어놨어. 난 디자인쪽 하나도몰라서 이게 최대한 잘 구현한거야 ㅠㅠ


viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2ddcf3e15969673675293a4fc2132c1ae18b7c135708a7617c1a


알람은 timepicker 를 이용하여 다이얼을 돌리는 방식을 이용할거야.

! 내용 수정 !

초로 단위변환 시도하니 카운트 들어갈때 배터리 소모량이 너무커져서 분단위로 변경.


원하는 시간을 설정하고나서 시, 분을 분으로 단위변환 한 다음에 다음 공식을 이용해서 카운트로 바꿀거야.


시간 계산식


설정된 시간이 현재 시간보다가 작을 경우

(설정된시간) + 24시간 - 현재시간 = 알람시간.


설정된 시간이 현재 시간보다가 클 경우

설정된시간 - 현재시간.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87c2c81cc3c01f688f135bba7


이렇게하면 카운트 해야할 변수가 나오고 이걸 아두이노에서 수신받아서 타이머 인터럽트 동작에 사용하면 끝이야.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87a2bb2d49d74b35461d3a286


세팅메뉴는 누르면 캬루 인형에 사전 설정된 세팅값을 먼저 불러오도록 되어 있어.


만약 캬루 인형에서 저장된 값이 없다면 기본값(자동 알람 X, 볼륨 15, 캬루보이스 알람, 센서 감도 2레벨) 을 전송하도록 할거야.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba82e28f36c915c48f91dd2dc34


자동 알람은 해당 알람이 꺼진 경우 1440분(24시간)을 다시 타이머 인터럽트에 적용시키는 방식을 이용 할 거야.


자동 알람을 취소 할 때 까지 이 기능은 계속해서 돌아갈거야.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba8752cc7d990b4703594f8fbf0


볼륨 설정의 경우 dfplayer mini 의 볼륨설정 부분에서 0 - 30 의 범위로 설정해달라는 정보가 있었어.


그러므로 seekbar 기능을 통하여 0 - 30 까지 드래그로 설정 할 수 있도록 해놨어.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba8292888107c4398a3ce3477a4


알람 음악의 경우 spinner를 통해서 음악 리스트중 하나를 선택 할 수 있게 해놨어.


1. 캬루 보이스 사용한 알람

2. lost princess (karyl solo)

3. absolute secret


총 3가지의 알람 음악을 사용 할 거야.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87b28d04df01eadf5b81a6f99


충격 감지 센서는 위에서도 설명 했지만 1023 - 0 의 충격 범위를 감지하도록 되어 있어.


seekbar 의 감도 범위는 1 - 10 인데, 이 값이 아두이노로 넘어가서 x50 한 뒤 감도를 적용하도록 할 거야.


실 적용 감도는 50 - 500 란 이야기야. 기본 값은 2(100) 이고 10(500) 정도면 살짝 들기만해도 감지 될 수 있으니 엄청 민감한 수준이야.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba82f2f95e0cc9b92dec4dece16


자동 연결 관련은 어플리케이션 내부에서 처리되는 기능이야.


블루투스에 연결되면 현재 연결되었던 캬루 인형의 블루투스 데이터를 SharedPreferences로 저장하게 되는데, 자동연결까지 켜게 되면 어플 시작할때 과정을 생략하고 바로 연결 시도부터 하도록 해줘.


저장된 연결 초기화를 누르면 기존에 저장된 블루투스 연결 데이터는 삭제되도록 해놨어.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba82a28dcdec5977672c313231c


기타 기능으로는 배터리 잔량 감지 기능을 넣어놨어.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87a28b57dbc0c8f4b382a214d


과방전 주의!


리튬폴리머 배터리는 4.2v 상태가 완충, 3.2v 상태가 방전위험 상태니까 이 사이값을 이용하여 퍼센티지로 환산 시키면 될거야.


문제점은 배터리는 아두이노 33 BLE 기본 배터리 측정 기능 덕분에 아날로그A0에 다이렉트로 연결하면 되지만.. Vin 혹은 A0 에 배터리를 연결 할 경우 5V 핀이 출력 안되는 문제가 있어.


그리고 5V가 기본적으로 비활성화인데 하드웨어 제작 부분에서 활성화 방법을 적어놓을게.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba82f2cded25529e1e39980c24f


(전압 측정 센서가 fritzing에 없어서 아무거나 사용했음 양해 부탁해.)


그러므로 전압 측정 모듈을 배터리에 연결하고 배터리 입력은 5핀 USB 를 잘라서 넣도록 할거야. 여기는 5V 출력이 가능해. 배터리 측정 센서를 배터리 부분에 연결하는걸로 대체 하도록 할거야.




4. 하드웨어 제작



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87f28ccf9cc6aac81975dc1c3


모든 센서를 아두이노와 연결 할 거야.


dfplayer mini는 rx ->tx, tx->rx, gnd, 5V 에 연결할거야.


여기서 중요한점! 아두이노 나노 33 ble 는 기본 출력이 3.3v로 되어있어. dfplayer의 데이터시트를 보니 3.3v가 지원한다 되어있는데 실제로 써보니 3.3v사용시 전압부족으로 노이즈가 생기는 문제가 있어.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2ddcf3e15969673675293a4fc213201a0acb515bb7f5e88e05d1


아두이노 뒷부분을 보면 vsub 부분에 납땜할수있는 부분이있어. 여기를 납땜해주면 5v 핀이 활성화 가능하니 연결하고 5v 핀으로 연결해주자.


잘못해서 나처럼 터트리지말고


충격 감지 센서는 gnd, 3.3v, 아날로그A2 핀에 연결하기로 했어.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87a2ce92e6254568a256d567d


최대한 공간을 덜 사용하도록 하다보니 합쳐놓은게 외형이 별로 안좋긴한데.. 3일테스트 해보니 별 문제 없더라.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba8292a1c7d940e17e1b8ee3d34

viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87a2abab30cd4fed9567f9705


이걸 (55mm x 35mm x 20mm) x2 의 엔클로저 박스에 넣고 하나로합친다음



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba82e2ffd74fcea955efc93e484



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87a7add7cc49024faae99f03b


중학교 기술가정시간에 익혀놨던 서툰 바느질로 마무리를 해놓으면



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba87b28d74da619a8a6b8007199


캬루 알람 인형은 완성이야.



viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4a64b2db19de85969663c702b3f4ba82d2c2460b1717eab9173fe8a


뒷부분에 흰색 5핀 usb 케이블은 충전용도고 검은색 케이블은 pc 연결 및 아두이노 연결용이라 생각하면 될거야.





이렇게 완성했으니 실제 사용이 잘 되나 확인해봐야지!




어플리케이션에서 캬루에게 명령을 내릴 수 있는 기능만 모아놓은 영상이야.




이건 계획대로 알람이 울릴때 던지면 꺼지는 영상이야.


던졌을때 그냥 알람이 꺼지면 심심하니까 캬루 비명소리를 첨가했어.




혹시 모르니 스트레스 테스트를 한번 해보는게 맞다고 생각했어.


야구배트같은 강력한 충격에도 정상적으로 동작하는지 확인 해본 영상이야.


배트의 충격에도 부품이 손상가지 않고 정상적으로 종료됨을 알 수 있어.




viewimage.php?id=3da8c22feedd36a351add3b11fc721&no=24b0d769e1d32ca73dea82fa11d028318d8d127b7d4f8c0d9764208696184aa09cdf1d21fb506484a84632da5c85f4e08f1bf83e08a6ab7d780a04d45b4032340fe39c1b6b89



a04f30666938fc2a924698b21fd70403dde77dc778bf83be3aa6f0

테스트 하다보니 이게 떠오르더라 




결론은 캬루 인형을 던져보니 생각보다 체력을 쓰게되어서 잠깨는데 문제가 없다고 판단했어.



심지어 던져서 알람 안멈추면 던진곳까지 가서 또 꺼야하거나 스마트폰 켜고 꺼야하니 아주 좋아.






해당 작업에 대한 소스코드는 이전에 작업했던 코드를 참고해서 제작했어. 깃허브를 이용해서 공유 해 놓을게. 혹시 관심있거나 다른 인형에 이식해보고싶다면 한번 참고해봐.






출처: 프린세스커넥트 리다이브 갤러리 [원본 보기]

추천 비추천

367

고정닉 163

21

원본 첨부파일 1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 SNS로 싸우면 절대 안 질 것 같은 고집 있는 스타는? 운영자 24/05/06 - -
17654 [요리대회] 제목은 최애의 오리 곷장 조림으로 하겠습니다 [스압] [200] 개아무갤로그로 이동합니다. 23.06.28 29312 209
17653 브금)수술하는 만화 5(끝).manhwa [375] 머스크메론갤로그로 이동합니다. 23.06.28 37644 488
17652 [피규어 제작기]동방프로젝트 모리야 스와코 제작기 [스압] [250] 개구리나무갤로그로 이동합니다. 23.06.27 34935 343
17651 모터로 움직이는 임페리얼 나이트 완성함 [136] 샤전용갤로그로 이동합니다. 23.06.27 26893 253
17650 [사진 스압주의] 오키나와 본섬 전투다이빙 후기 [85] 유동성갤로그로 이동합니다. 23.06.26 21932 70
17649 (스압) 혼자 9박 10일 발리 여행기 3탄 [72] 생상스를사랑하세요... 23.06.26 25357 105
17648 나루카미 쇼군상 + 돌하우스 제작기 ( 데이터 스압) [158] 넌행복해갤로그로 이동합니다. 23.06.24 27604 265
17647 WWE RAW 로얄석 직관후기 (스압) [172] limzi갤로그로 이동합니다. 23.06.23 37057 134
17646 날씨의 아이 본 만화 [473] ㅇㅇ갤로그로 이동합니다. 23.06.23 45128 486
17645 구작을 실기로 플레이 해보자! [스압][완] [195] 환상전파사갤로그로 이동합니다. 23.06.22 35679 244
17644 스압)토붕이 네코미미 라미 피규어 만드러 봐써 [435] ㅇㅇ(27.115) 23.06.22 41441 673
17643 뒤늦은 마지막 르망 사진 투척 + 향후 일정...? [77] 보누치갤로그로 이동합니다. 23.06.21 22725 71
17642 레이커스가 우승할까봐 가슴조렸던 만화.manhwa [403] 참느바갤로그로 이동합니다. 23.06.21 32283 468
17641 보더콜리 제대로 키우려고 집지음 [스압] [696] bisan(121.187) 23.06.20 56549 944
17640 세상에서 가장 귀여운 상어 가우르 구라 피규어 제작기 [360] bazelisk갤로그로 이동합니다. 23.06.20 56989 625
17639 추억의 라디오 조립 Kit을 만들었다! [219] O(211.212) 23.06.19 30596 346
17638 대학원생의 자취방 오마카세 [291] 공돌(118.36) 23.06.19 66564 464
17637 [단편] [일상 추리] 할머니 부처님상 박살사건 [293] 유순영갤로그로 이동합니다. 23.06.17 46146 420
17636 전복치 점농어 후기(스압) [157] 금태충(1.216) 23.06.16 37530 218
17633 예전에 그렸던 워해머 팬아트 갈아엎기 [132] 뻬인타놉갤로그로 이동합니다. 23.06.16 26106 143
17632 (스압)이스탄불 무박 4일 챔결 직관기 [100] 유로지바갤로그로 이동합니다. 23.06.15 22882 228
17630 수세미+랩+은박지로 만든 이나리우스 [207] 스머프부자갤로그로 이동합니다. 23.06.15 41814 486
17629 열 좀 식히고 가 [스압] [117] 펜형갤로그로 이동합니다. 23.06.14 34175 170
17628 스압) 고대 이집트 컨셉의 키보드 빌드해봄 [343] 205g2갤로그로 이동합니다. 23.06.14 39673 252
17627 두정갑을 만들어 보자 [완][스압] [441] 아르군갤로그로 이동합니다. 23.06.13 37546 940
17626 미래가젯1호 드디어 완성! [185] Nine갤로그로 이동합니다. 23.06.13 25395 227
17625 [해병공작] 황근출 해병님 피규어 제작 [526] 끾뀪이갤로그로 이동합니다. 23.06.12 70537 1486
17624 냉혹한 뒷세계의 해결사.manhwa [170] 권일홍갤로그로 이동합니다. 23.06.12 39698 241
17623 점점 커져가는 미국 바둑 대회 개최 및 참가 후기 [346] ㅇㅇ(98.227) 23.06.10 56671 490
17622 일렉트릭기타 마이너 갤러리 별자리가 될 수 있다면 콜라보레이션 [312] Rane갤로그로 이동합니다. 23.06.09 43262 323
17621 0.28 볼펜으로 한선그리기한 그림 [186] 김7l린갤로그로 이동합니다. 23.06.09 38532 312
17620 (스압) 한국 거주 외국인과 같이 출사 나간 썰 & 사진 [75] 스캔갤로그로 이동합니다. 23.06.08 34366 85
17619 판타지 한컷 스토리 -우주개척시대- [151] A.Shipwright갤로그로 이동합니다. 23.06.08 27814 226
17618 실베에 올라왔던 폐카페로 테라리움 만들었어 [253] 애바갤로그로 이동합니다. 23.06.07 35423 494
17617 (스압)휘발유 1L.manhwa [289] 장곤단갤로그로 이동합니다. 23.06.07 30836 379
17616 찐따 히키 야순이의 한걸음 - [최종화] [744] 김말복갤로그로 이동합니다. 23.06.06 121138 1376
17615 천추육 만들어봤다. [스압] [252] 이계피갤로그로 이동합니다. 23.06.05 41541 361
17614 본격 메이플 유저가 소송거는만화 마지막화 [798] 제룬갤로그로 이동합니다. 23.06.05 86204 1652
17613 삼각두 만듬 [281] 취미맨갤로그로 이동합니다. 23.06.03 54570 348
17612 아무사진 [스압] [92] MilK갤로그로 이동합니다. 23.06.02 29190 108
17611 링크 vs 재앙가논 피규어 만들어옴 (스압) [257] ㅇㅇ갤로그로 이동합니다. 23.06.02 28792 308
17610 22년5월~23년5월 1년간의 코스프레 대장정 [560] 김백치갤로그로 이동합니다. 23.06.01 54955 184
17609 (스압) 오토마타 갤러리 예술제에 참가합니다. [122] Deos갤로그로 이동합니다. 23.06.01 25644 197
17608 [스압] 서울에서 일본 이와테 온천까지 재래선 철도여행 [260] 사토리켄갤로그로 이동합니다. 23.05.31 52098 460
17607 데프콘 만난 후기 [250] 맥주수염갤로그로 이동합니다. 23.05.31 79001 226
17606 (스압,단편) 누나와 함께 다시 태어나는 이야기 ReBorn [196] 유동왕갤로그로 이동합니다. 23.05.30 45290 158
17605 초등학교 탐조수업 후기 (+어린이들의 새그림) [268] RURO갤로그로 이동합니다. 23.05.30 26653 428
17604 모듈형 기타 새 바디 만들고 리피니쉬 했어 [94] 도박사갤로그로 이동합니다. 23.05.29 22493 102
17603 대학생 만붕이의 축제기간 Manwha [601] 사춘기마시멜로갤로그로 이동합니다. 23.05.27 94784 686
17602 알오 + 1224금 이곳저곳 디헤이즈 풀빵 하늘샷 [스압] [55] 됴둉사갤로그로 이동합니다. 23.05.26 17068 41
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2