지난번에 1회용 전자담배 vuse go 를 충전이 가능하도록 소개를 해 드린 적이 있습니다.
충전만 해서는 재사용하기라는 목적을 완수 했다고 보기는 어렵다고 볼수 있겠죠? 얼마 뒤에 회사 동료가 온전한 제품을 하나 사서 선물로 주는 바람에 이번에는 새로 받은 녀석에 충전 포트를 달고 틈틈히 충전을 해가며 일단 액상을 다 사용한 뒤에 액상을 보충할 수 있는 구조로 개조를 해볼까 합니다.
충전도 할 수 있고, 액상도 보충할 수 있다?
그럼 이제 더이상 1회용 전담이 아니게 되는거죠 ㅎ
뭐 간단합니다.
먼저 액상이 들어 있는 동안 개조하기 불편하므로 하단부 충전단자 먼저 달아 놓고 채워져있는 액상을 모두 소진합니다. 충전 단자를 장착하는 내용은 이전 포스팅을 참고하시면 됩니다. 이번에도 동일하게 진행하였습니다.
상단부 액상 탱크 부분에 1.5mm ~ 2mm 정도의 구멍을 뚫어 주사기 같은 걸로 액상을 주입하는 구멍을 만들어 주면 됩니다. 처음 구입하시면 바닥면에 공기 흡입구를 막는 실리콘이 하나 있죠? 그걸 마개로 사용할 겁니다.
ㅎㅎ
집에 있는 드릴로 그냥 구멍을 뚫어 주시면 되는데요, 혹시 얇은 드릴 비트가 없으신 분은 이참에 알리 같은데서 구입하셔도 좋을 것 같습니다. DIY에 한번만 사용하셔도 전담 기계 값은 뽑고도 남는달까요? 또 뜻하지 않게 고장이 나서 기계를 버리고 다시 구입하더라도 1회용 전자담배 특성상 기존 전담기계보다 저렴하니까요.
일단 구멍을 뚫으셨으면 마개가 잘 들어가는지 확인합니다.
액상이 새면 안되므로 일단 너무 잘들어가면 안됩니다. 요리조리 살살 돌려가며 끼웠을 때 겨우 들어가면 됩니다. 어짜피 저처럼 체인 스모커들도 1.5ml 정도 액상을 주입하면 하루는 거뜬히 피우더라고요.
본사에서 초기에 주입해 놓은 액상보다 제가 사용하는 액상이 묽어서인지 금방 피우긴 하지만 그래도 하루에 한번 정도면 아주 양호 한 편이죠.
액상은 집에 굴러다니는 바늘 공병이나 주사기로 주입합니다.
네 액상 보충이 완료되었습니다.
다시 구멍을 실리콘 마개로 막아주고 사용해 주시면 되겠습니다. ㅎ
참고로 part.1 에서는 어떻게 분해 하는지 몰라 라벨 스티커를 때어냈었는데요, 사실 스테커는 떼어내지 않아도 되더라고요. 그냥 하단부 스티커랑 플라스틱 사이 부분을 얇은 물체로 조금씩 틈을 벌리면 하단부를 열 수 있답니다. 물론 아주 꽉 끼워져 있으니 인내심을 가지고 조금씩 이쪽 저쪽을 서서히 열어 주어야 열린 답니다. 따로 고정하는 장치는 없으니 천천히 인내심을 가지고 해보시면 됩니다.
네. 배터리 충전도 잘 되고 액상도 충전하여 사용할 수 있게 되었습니다.
해당 전자담배내부에 들어 있는 li-ion 배터리는 그냥 버리면 환경에 매우 치명적인 물질 입니다. 무조건 분리 수거해야 한는 전자부품인데요, 이렇게 1회용을 판매하게 되면 대부분의 사용자 분들은 그냥 휴지통에 버릴것 같아 안타깝다는 생각도 듭니다.
이렇게 재사용하게 되면 제품을 오래 사용할 수 있기도 하고 더불어 환경 파괴도 조금이나마 덜 할 수 있지 않을까 생각을 해보았습니다.
혹시 나중에 무화기 역할을 하는 코일의 수명이 다하게 되면 코일도 교체할 수 있을지 한번 시도해 보겠습니다.
며칠전 1회용 전자 담배 하나를 충전하여 계속 사용할 수 있게 개조를 한것을 본 다른 동료가 본인의 것도 가능하냐고 문의를 해왔습니다.
무의 한 제품은 Vuse go 라는 제품이고 아주 작고 귀여운 모습을 한 1회용 전자 담배입니다.
일단 가능할 것 같다고 했는데요, 우선 배터리가 완전 방전되지 않도록 지금 상태에서 바로 개조하는게 좋겠다고 하니 선 뜻 내주었습니다.
요렇게 생긴 제품이지요.
우선 분해를 해야 하니 겉에 붙어있는 건 떼어 내기로 하였습니다.
스티커를 떼어내고 나니 은색의 금속 몸체가 나오는 군요.
전체가 플라스틱인줄 알았더니 중간의 몸체는 금속으로 만들어져 있었습니다. 그렇다면 위쪽과 아래쪽이 분리가 된다는 의미가 되겠네요.
먼저 위쪽 틈사이로 얇은도구를 이용하여 틈을 벌려 봅니다.
그리고 열었습니다 ㅋ
네. 예상한 데로 상부에는 액상 탱크가 있고 중간에 리튬 이온 배터리가 있네요. 아마 아래쪽에 공기 흡입을 이용한 스위치가 있는 것으로 보입니다.
아래쪽도 분해해 보겠습니다. 역시 날카로운 도구로 틈을 만들어 빼내면 됩니다.
네 이제 완전히 분해가 되었습니다.
전에 재활용 했던 BELOW MONS 제품에 비하여 뭔가 만듬새도 훨씬 좋고요. 소재도 훨씬 고급 스럽습니다. 이정도 품질의 제품을 1회용으로 만든게 조금 아쉬울 정도입니다.
그래서 저는 이 제품을 여러번 사용할 수 있는 제품으로 개조할 예정인데요, 우선 아직 탱크에 액상이 많이 남아있기 때문에 배터리가 방전되는 것을 막기위하여 충전 보드를 달아줄 계획입니다. 액상을 다 사용하는 동안 배터리가 최저 전압까지내려가는 불상사가 일어나면 배터리를 버려야 하기 때문이죠.
USB C 타입으로 리튬이온 배터리를 충전할 수 있는 보드를 하나 준비합니다. 알리에서 구입하면 하나에 500~1000 원 사이면 구입 할 수 있는 그런 제품입니다. 워낙 개조할 뷰즈고 제품의 크기가 작고 공간의 제약이 많은 관계로 제가 가지고 있는 부품중에 가장 작은 녀석을 준비했습니다.어디에 어떻게 넣을까 구상을 해보며 요리조리 끼워 맞추어 봤는데요그러던 중 딱 맞는 공간을 찾았습니다.
쫘좐~ 숨어있는 보드를 찾으셨나요? ㅋㅋ 네 바로 배터리와 에어 플로우 스위치 사이에 딱! 아주 딱 맞는 공간이 있네요. 뭐 이건 더도 말고 덜도 말고 충전 보드를 넣기 위한 자리라고 볼 수 있겠습니다.바로 아래쪽 뚜껑에 구멍뚫기 작업 들어갑니다. 한참을 드릴로 뚫고 줄로 갈아주고... 쓱쓱 싹싹 드레멜로 윙윙 갈아내주면 구멍이 딱 만들어 집니다.
완전 딱 맞는구멍 뚫기 성공.
뭐 이제다 끝났습니다. 전선만 배터리의 +, - 에 연결하면 끝이네요.
이런경우 무조건 조립하기 전에 충전 테스트를 해봐야 합니다. DIY 에는 언제나 복병이 있을 수 있기 때문인데요, 조립을 다하고 났더니 충전이 안된다던가.. 충전보드가 해필 불량이었다던가.. 납땜을 하면서 어딘가 냉납 현상으로 단선이 발생했다던가 하는 안타까운 일이 있을 수 있기 때문이죠.
으흐흐흐흐
충전도 잘 되는군요.
왠일로 제가 이렇게 일이 술술 풀리는 지 모르겠습니다. 오늘은 어쩐지 일이 잘 풀리더니.. 하는 일은 없었으면 좋겠네요.
자 이제 그럼 다시 조립을 해보겠습니다.
뭐 조립이라야 본드를 살짝 뭍혀서 충전 보드를 고정해 주고 나머지는 적당히 원래 위치에 자리잡은 뒤 상하단 뚜겅만 끼우면 됩니다.
최종 조립도 뚝딱. 완성
이렇게 하고 서너시간 방치해 줍니다. 급한 마음에 충전기를 꼽거나 하면 아직 마르지 않은 본드가 떨어지면서 보드가 안으로 밀려 들어가는 안타까운 일이 발생될 수 있기 때문이죠. ㅋ
한참을 방치했다가 이제 충전기를 꼽아 봅니다. ㅋ
저 희끄므리한 초록색 불 보이시나요?? 네 충전이 잘 되고 있습니다.
이제 이 1회용 전자 담배는 적어도 배터리가 방전되서 못쓰게 되는 일은 없을 겁니다. ㅋ
아래쪽에 USB C 타입 방수 마개를 끼워 줬습니다.
이게 USB 포트로 공기 흐름이 생기다 보니 아무래도 없을 때보다 흡입하는 느낌이 좀 약해진 듯 했거든요. USB C 타입 방수 마개를 끼우고 나니 처음과 같이 뻑뻑한 흡입감!
배터리가 완충되서 인지 기분 탓인지 무화량도 좋아진 것 같네요 ㅋㅋ
이제 내부에 있는 액상을 모두 소진할 때 까지 원래 주인에게 돌려 줄 예정이고요. 액상이 모두 소진되면 제가 리필하는 방법을 또 고민해서 리필이 가능한 제품으로 탈바꿈 시켜줄 예정입니다.
과연 어떻게 하면 리필을 할 수 있을까나..
PS. 근데 생각해 보니 제품을 둘러싸고 있던 스티커는 사실 떼어낼 필요가 없었군요. ㅎㅎ
연초 담배를 끊은지 거의 10년 가까이 되었나 싶은데요, 그렇다고 담배를 끊은건 아니고 액상 전자 담배만을 이용하는 전담 유저인 저는 DIY 도 좋아하겠다.. 뭐 거의 전담도 만들어서 피는 수준입니다.
얼마전에 회사 동료가 일회용 전자담배를 편의점에서 구입하여 피는 것을 보고
'그거 다 피우고 나면 나한테 버려줄래요?'
ㅎㅎ 사실 1회용 전자담배 구조가 궁금하기도 했고 요즘 내가 주로 피우는 IORE LITE POD 이랑 뭔가 비슷할 것 같은 느낌이 들었기 때문입니다.
얼마간 시간이 지나 동료에게 받은 전자 담배는 바로 아래와 같습니다.
BELOW MONS 라고 써있는 것 같습니다. 빌로우 몬스 라고 읽어야 하나요?
암튼 이녀석을 이제 분해해 볼겁니다.
먼저 아래쪽 뚜껑을 따볼 건데요, 날카로운 도구를 이용하여 틈새를 만들고 서서히 벌리면 아래와 같이 뚜껑을 딸 수 있습니다. 별도의 접착이나 고정 장치는 없는 것 같고, 원통형 몸체에 딱 맞는 마개가 있는 형태라 쉽게 뚜껑을 딸 수 있었습니다.
음.. 재미있네요. 아래쪽에는 리튬 폴리머 배터리가 들어있고요, 제일 아래에는 공기 흡입에 의한 스위치가, 그리고 위쪽으로는 1회용 담배에 걸맞게 별도의 탱크라기보다는 단순히 원통형 플라스틱에 솜이 채워져 있고 내부에 atomizer 가 들어있는 형태였습니다. 위아래로는 실리콘 마개가 액상이 흘러나오지 않도록 막고 있었고 약간의 흐름에 대비하기 위하여 솜이 조그맣게 들어있는게 전부였습니다.
생각보다 구조가 간단하여 배터리만 별도로 충전해 보았는데요,
이미 한번 완전 방전된 상태여서 그런지 배터리 내부 저항이 매우 높고 충방전 용량이 거의 없는 상태 였습니다.
만약 제가 구입한다면 구입하자마자 외부 충전 표트를 장착했을 것 같습니다. ㅎ
일단 이녀석의 배터리를 교체하면 그대로 다시 사용할 수 있을 듯 하여 개조해 보기로 합니다.
먼저 이 전자담배의 구조를 간단하게 이해하는 시간이 필요하겠네요.
아래 그림을 보시죠.
1회용 전자 담배에 배터리를 교체하고 (배터리 상태가 좋다면 그냥 사용해도 무방함) 배터리 충전 회로를 추가하면 이제 더이상 1회용이 아닌 다회용으로 사용이 가능하게 됩니다. ㅎㅎ
자 충전 회로를 넣고 새로운 배터리로 교체하려면 기존의 케이스에서는 어려울 것 같으니 3D 프린터로 제작을 해보기로 합니다
클릭, 클릭.. 클릭 하다보면 모델링 완성. 한 30분 걸렸나봅니다.
뭐 일단 대충 만들어 봅니다. 안 맞을 수도 있으니까요.
3D 프린터에서 출력하기 위해 슬라싱을 한뒤 프린터로 뽑으면
요렇게 똭!
나왔습니다.
물론 약간의 표면처리를 해주었습니다. 3D 프린터로 출력하면 층층이 레이어가 조금 눈에 거슬리죠. 사포로 살살 문질러 주면 어느정도 표면이 매끈하게 됩니다.
이제 내부를 채울 녀석들을 준비해봅니다.
나중에 조립하다 보니 배터리가 불량이어서 배터리는 다른것을 사용했지만 집에 굴러다니는 14500 규격의 li-ion 배터리를 이용하여 개조를 하였습니다.
위아래 마개가 딱 맞아야 하므로 원통을 잘라서 위아래 마개부분에 끼워줄거에요.
그리고 위에 소개해 드렸던 구조대로 결선을 한 뒤 조립을 해보면 아래와 같이
쫘좐~~
참쉽죠?
네 완성되었습니다.
뚜껑을 따고 실리콘 마개를 열어준 뒤 액상을 채우면 저 투명하게 보이는 스펀지 부분이 촉촉하게 젖어 들어가는 모습이 보이고요, 아래쪽에는 USB C 타입 충전기로 충전을 해주면 됩니다. 배터리는 14500 배터리라서 600mah 정도되는 크지 않은 용량이기는 하지만 한나절 정도는 충분히 피울 수 있을 것 같습니다. (조금만 피우시는 분은 하루 이상도 충분히 가능할 듯) 물론 리튬 이온 배터리를 장착하였으므로 너무 끝까지 사용하지 말고 중간 중간 충전을 해주시는게 좋을 것 같기는 합니다.
마지막으로 크기 참고를 위해 사진 한장 추가 합니다.
네 아주 아담한 크기가 되겠습니다. 손안에 쏙 들어와서 손으로 움켜쥐면 보이지 않을 정도로 작은 크기입니다. ㅋ
주머니에 넣어도 작아서 부담이 없고 좋을 것 같습니다.
저는 만드는 즐거움을 누렸으니 전담을 제공해준 회사 동료에게 선물로 다시 줘야 겠습니다 ㅋㅋ
도전해 보고 싶으신 분을 위하여 3D 프린트용 파일을 올려놓을 테니 관심 있으신 분은 받으셔서 한번 도전해 보시기 바랍니다. ㅋ
참고로 나사 구멍은 매우 좁게 출력될 수 있으니 사용하실 나사에 맞게 구멍을 확장하는 작업은 해주셔야 합니다
도대체 왜 D 형 건전지 같은 무시무시하고 쓰잘데기 없는 것 같은 크기의 배터리를 만든걸까?
물론 망간 건전지 시절에는 장시간 사용해야 하는 기구에 많은 전력을 담아야 하면 물리적으로 건전지의 크기가 커야만 했을 것 같습니다. 요즘은 알칼라인 건전지가 워낙 작은 크기에도 전력을 많이 담을 수 있기 때문에 작은 크기로 오랜시간 사용이 가능하지만 예전에는 그렇지 않았겠죠.
그래서인지 요즘은 D 형 건전지 같은 커다란 배터리를 잘 사용하지 않고 그러다 보니 사용자 입장에서 상대적으로 비싼 가격으로 건전지를 구매할 수 밖에 없습니다.
그래서 쇼핑몰에서 배터리 변환 홀더를 구매하여 사용해 보려고 했는데요.
흐미~
왠일인가요. 홀더 두개에 배송비까지 하면 가격이 생각보다 적지 않습니다.
흠.. 이럴일인가.
음..
뭐 만들면 되지
오리혀 좋아~ 히힛!
바로 3D 모델링 프로그램을 열고 모델링을 시작합니다.
간단하죠? 뭐 복잡하게 만들기도 귀찮고 해서 원통에 구멍 뚫고 아래쪽에 - 단자 연결을 위한 구멍을 두개 뚫어 주었습니다. 가준에 구멍은 가장 구하기 좋고 흔한 AA 건전지 크기로 하였습니다.
참고로 모델링 프로그램은 무료 프로그램인 Blender를 이용하였습니다.
어쨋든 DIY 의 핵심은 쉽게 만들고 사용하기 좋아야 한다는 점 입니다. (중요)
3D 프린트 하는 과정은 없고 그냥 바로 완성 사진입니다. 두개 프린트 하는데 3시간 정도 걸렸네요.
위쪽에는 건전지가 너무 쉽게 빠져버리지 않도록 고무를 조금 잘라 붙였습니다. 고무는 빵꾸난 자전거 타이어를 조금 잘라서 순간 접착제로 붙였습니다.
손으로 잡아 빼거나 조금 세게 거꾸로 흔들면 적당히 빠질 정도로만 잘라 붙여 줍니다.
아래쪽은 굴러다니는 니켈 스트립( 5mm 짜리)을 이용하여 감싸듯이 감아 주었습니다. 땜질같은거 없이 그냥 감아주고 마무리.
위쪽에서 보면 이런 모양입니다. (타이어를 조금 예쁘게 잘라 붙일껄 후회가 약간 된다능)
배터리를 끼워볼까요?
쫘좐~
홀더에 끼워넣으면 위쪽으로 배터리가 조금 올라오도록 해서 나중에 꺼내기 쉽게 해 주었습니다.
냉동실에 문제가 생긴건 아닐까 하여 살펴 보았지만 냉동실 내에 넣어 둔 식품들은 별다른 문제 없이 꽁꽁 잘 얼어 있더군요.
어쨌거나 찝찝하기 그지 없어 잘 살펴 보니 바닥쪽에 물이 고여 얼어있었습니다.
아마 그쪽에서 흘러 나온듯 하여 문제를 해결해보기로 합니다.
먼저 김치 냉장고를 냉동 모드로 변경한 뒤 냉동실에 있는 것들을 모조리 옮겨놓고 냉장고 전원을 내립니다.
우선 냉동실 내부의 서랍과 선반들을 모두 분리해 냅니다.
그런 다음 뒤쪽 덮개를 떼어내야 하는데요. 상단, 하단으로 구분되어 있는데, 우선 상단 가운데 있는 나사를 풀어내고 위쪽부터 뜯어냅니다.
뜯어 낼때는 양쪽에 고정 걸쇠가 있는데요, 별다른 도구는 필요하지 않고 살살힘을 주어 한쪽씩 당기면 투툭! 하며 빠집니다.
전선 정리 홀더 같은 곳에 있는 전선 (내부 조명용) 을 함께 제거하면 위와 같은 모습이 됩니다.
그다음 아래쪽 덮개를 떼어내야 하는데 아래쪽은 별도로 나사 같은 것으로 고정되어 있지는 않고 그냥 윗부분을 좌우 한쪽씩 잡고 당기면서 떼어내면 하나씩 걸쇠가 풀리면서 분리가 됩니다. 분리 방법은 제품마다 다르겠으나 큰 차이는 없을 것으로 생각됩니다.
하부 덮개를 떼어내니 안쪽에 열교환기가 보이는데요, 아래쪽에 어마어마 한 얼음이 얼어 있습니다.
반응형
딱봐도 여기가 문제군요.
엄청나게 얼어있는 얼음을 살살 제거해 줍시다.
드라이를 이용해서 얼음과 주변을 좀 녹여 준 뒤 1자 드라이버와 망치를 이용해서 살살 쳐서 얼음을 깨 주었습니다.
드라이버로 녹이는게 가장 안전하겠지만 아주 단단히 얼어있는 얼음이기 때문에 녹이는데 시간이 많이 걸릴 것으로 보여 벽면이나 부품에 달라 붙어있는 부분만 우선 녹여낸 뒤 얼음을 깨 내면 부품에 손상 없이 얼음만 똑 떼어낼 수 있습니다.
중간 중간 아래쪽에 있는 얼음도 깨주었습니다. 주변이 살짝 녹을 정도면 조금만 톡톡 쳐줘도 덩어리로 얼음이 툭 깨져 나옵니다.
10여분 정도 사투한 결과 이제 거의 얼음이 해결되어 가고 있습니다.
과연 저것만 깨내면 문제가 해결되는 것일까요?
보이는 얼음을 일단 다 제거하고 보니 ... 수정한 구멍이 발견되었습니다.
네.. 얼음을 모두 제거 하고 보니 아래쪽으로 구멍이 보이는군요.
그런데 구멍 역시 얼어 있습니다. 뭔가 구조상 물이 빠지는 구멍처럼 생겼는데 얼음이 여길 막고 있는 느낌이네요. 아마 여길 따라 흘러내려가야 할 물이 얼어서 구멍을 막고 , 막힌 구멍 때문에 물이 고여서 얼고, 또 그위로 물이 흘러 넘쳐 문 밖 까지 나온것으로 보여지네요.
네, 그럼 구멍 안쪽의 얼음도 녹여보기로 합니다.
드라이를 이용하여 좀 녹여 보았지만 녹은 물이 고여 아래쪽으로 열이 잘 전달이 되지 않는 것 같습니다.
그래서 도구를 하나 추가하였습니다.
네 보이는 그대로 어항용 호스를 낀 주사기를 하나 준비하였습니다. 호스로 녹은 물을 빨아내서 드라이의 열이 바로 얼음에 닿을 수 있도록 합니다.
요렇게 몇변을 반복하다 보니 드라이 바람이 구멍 안쪽까지 잘 안들어 가는 것 같네요.
그래서 물을 조금 끓여서 부어 주고 드라이버로 살살 저어 주었더니 갑자기 아래로 쭉 하고 물이 내려가더군요.
네.. 호스가 끝까지 들어갔고 물은 빨아내지지 않네요.
뭔가 해결이 된 것 같습니다. ㅎㅎ
이제 떼어낸 모든 부품을 다시 조립하면 끝!
냉동실은 다시 정상 적으로 잘 구동되는 걸 보니 문제가 해결된것 같습니다. (물론 전에도 문제 없이 동작했지만요 -_-;;)
한시간 정도 걸렸으려나요? 냉장실에 있는 음식들이 상할까봐 급하게 진행을 했는데요, 저와 같은 문제가 생기셨다면 당황하지 마시고 저처럼 진행하시면 되겠습니다.
끝으로 오늘 저런 사태가 왜 나타난건지 생각해 보았습니다.
요즘 냉장고를 사용하다 보면 예전처럼 안쪽에 성애가 꽉 끼거나 하는 문제가 없죠? 왜 그럴까요?
아까 사진에 보았던 열 교환기에 분명히 성애가 잔뜩 붙어 있을 줄 알았는데 아니더라고요.
바로 아래쪽에 있는 부품에서 주기적으로 열을 발생시켜 위쪽 열교환기에 붙은 성애를 녹여주는거죠. 그럼 성애가 녹아서 물이되고 물은 흘러내려 아래 구멍으로 빠져 나가게 됩니다.
그런데 예전 냉장고 처럼 아래쪽에 물받이 같은 것은 또 없죠? 오래전 냉장고들은 아래쪽에 넓적한 물받이 같은게 있어서 어떤 이유에서 생겼든 물이 고이도록 되어있는데요, 이렇게 흘러나온 물이 과연 어디로 가는 걸까요?
냉동실 제일 아래 부분이 불룩한 것으로 보면 그 안에 컴프레셔가 들어있을 텐데요. 아마 컴프레셔 열로 흘러나온 물을 증발시키는 것이 아닌가 생각됩니다. 그럼 따로 물받이 같은걸 통해 물을 받아서 버려야할 필요는 없겠습니다.
오늘은 앞에서 소개해드린 mp6050 을 이용하여 측정한 회전 정보를 이용하여 서보모터를 제어하는 것을 응용하여 무선으로 서보모터를 제어하는 과정을 소개해 드릴 예정인데요, 여기에서는 아주아주 놀랍고 멋진 무선 송수신 칩인 nrf24L01 칩을 이용하여 구현을 할 계획입니다.
nrf24L01 칩의 경우 저렴하면서도 놀라운 성능을 보여주는 아주아주 애정하는 부품입니다.
실제로 해당 칩을 이용하여 RC 카 조종장치와 수신 장치를 만들기도 한적이 있습니다. 제어되는 범위, 거리도 아주 훌륭하고 신호 수준도 좋으며 중요한 것은 1개의 송신부에서 여러개의 수신장치를 제어할 수 있는 멋진 칩 입니다. 게다가 송신과 수신을 하나의 칩에서 지원하고 있으므로 양방향 통신을 구현하는데에도 어려움이 없습니다.
일단 오늘 도전할 목표는 앞서 말씀 드렸던것 처럼 mp6050 자이로 센서에서 측정된 회전 값을 NRF24L01 칩을 이용하여 보내고 또다른 NRF24L01 칩에서 이 신호를 받아 2축 서보모터를 제어하는 과제가 되겠습니다.
이전 포스팅에서 소개해 드린 것에서 무선 송수신이 추가만 되었을 뿐 크게 달라지는 건 없습니다.
무선 송수신을 위한 라이브러리는 웹상에도 많이 있고요, 아래 첨부해둔 라이브러리를 받으셔서 바로 내문서-아두이노 폴더에 넣으셔도 됩니다.
자 이젠 무선 송수신 칩이 들어오면서 배선이 조금 복잡해 집니다.
차근차근 따라 오시면 됩니다.
NRF24L01 칩에 대하여
여기서 NRF24L01 칩 외에 추가 준비물이 필요한데요, 준비물은 바로 10uf 전해콘덴서 입니다. 이 전해 콘덴서를 nrf24l01 의 전원 (3.3v) 단에 연결을 해 주셔야 문제 없이 잘 동작합니다. 용량은 가능하면 10uf 로 준비해 주세요, 제가 처음 테스트 할 때 전해 콘덴서 용량이야 뭔들 중요하랴... 싶어 용량이 안 맞는 부품을 적당히 연결해서 해보았지만 잘 안되서 정말 골머리를 썩었는데요, 10uf 콘덴서를 달면 정말 거짓말처럼 동작이 잘 됩니다.
물론 소스코드나 배선에 실수는 없어야 겠지요.
한가지더, nrf24l01 칩은 몇가지 타입이 있는데요, 크기가 작은 SMD 타입과 일반 핀이 달려있는 Dip 타입, 그리고 원거리 송수신이 가능한 PA LN 타입이 있습니다. 핀 구성은 모두 동일하고 배열만 약간 차이가 있으며 코드는 모두 동일하게 지원 합니다. 저는 소형화된 부품이 좋아 보통은 SMD 타입 부품을 사용하고요, 배선이 일렬로 되어 있어 브래드 보드 등에 테스트 하기도 편리한 점이 장점이라 할 수 있습니다. 해외 어떤 사용자 분은 성능도 SMD 타입이 좋다고 하시는데.. 실제로 그런지는 잘 모르겠습니다. (- -)>;;
DIP 타입을 이용하실 경우 확장 보드가 있으면 조금더 편리하게 사용하실 수 있지만 부피가 조금 커진다고 보시면 되고, PA-LNA 보드는 DIP 타입의 확장보드와 호환이 가능하며 아래쪽에 SMD 타입과 같은 보드 실장을 위한 연결 단자가 있으므로 보드에 바로 연결이 가능합니다. PA-LNA 보드의 경우 NRF24L01 칩이 기본 탑제되어 있고 위에서 말씀드린것과 같이 코드 및 배선은 동일하게 하시면 되며 원거리까지 송수신이 가능하므로 무선으로 멀리까지 신호를 보내고 받아야 하는 경우 사용하시면 되겠습니다.
배선 시작
자 이제 배선을 해보겠습니다.
먼저 제가 사용할 SMD 타입은 만능기판에 바로 핀을 꼽기가 어려운데요. 그래서 생각해낸 것이 아래와 같은부품을 이용하는 것 입니다.
가운데 있는 보드를 가운데를 잘라주고 반쪽만 사용하게 되는데요, 이 pcb 를 이용하면 NRF24L01 SMD 칩의 핀 간격과 정확히 일치 하게 되며 실제로 사용하지 않는 가장 오른쪽 IRQ 는 무시하고 왼쪽부터 맞추어 납을 흘려넣어 납땜을 해주면 됩니다.
하단의 구멍에는 1.24mm pin 이 정확히 맞으므로 일렬로 배열된 핀을 만능기판에 꼽아 사용할 수 있게 됩니다.
위에서 말씀드린 10uF 전해 콘덴서까지 연결하게 되면 아래와 같은 모양이 됩니다.
NRF24L01 칩은 아래와 같은 핀 구성을 하고 있고요, 각각 아두이노와 그림처럼 연결하시면 됩니다.
CE, CSN 은 각각 7번 8번에 연결하여야 하는데 이 두핀은 위치가 바뀌어도 상관 없습니다. 코드상에서 정의해준 핀의 번호와 일치하기만 하면 되고요, 나머지 핀은 지정된 핀에 연결하시면 됩니다.
저처럼 SMD 타입을 사용할 경우 전원은 아두이노의 반드시 3.3V 에 연결해 주셔야 하고 dip 타입을 사용하시는 경우 확장보드를 이용하시면 5V 를 바로 연결하셔도 되며 10uf 전해 콘덴서는 필요 없습니다.
특별 초대손님이 있다고?
자~ 오늘의 특별 초대손님이 계신데요...
두구두구
두구
두구
짜잔~
네~ 바로 아두이노로 제작한 RC 카 수신기 입니다. 물론 송신기도 아두이노로 만들었었습니다.
해당 보드는 왼쪽 상단에 3핀 소켓을 통해 ESC 로부터 전원을 입력 받고 신호 선을 통해 모터스피드(속도)를 제어하게 되고요, 우측 아래 두개의 3핀 소켓을 통해 조향서보와 2-speed gear 의 조작용 서보에 연결하게 제작되었습니다. 오늘은 해당 두개의 서보모터 핀을 이용하여 x,y 축을 제어해 보도록 할 계획입니다. 보드 중간에 가로로 보이는 구멍이 NRF24L01 보드를 장착하기 위한 소켓입니다.
무선 모듈을 연결하면 아래와 같은 모양이 됩니다.
한동안 즐겁게 가지고 놀았었는데요, 일반적인 RC 카 수신기에 비하면 덩치가 조금 크기는 하지만 4개의 2pin 포트를 통해 헤드라이트나 후미등, 좌우측 깜박이 등을 이 보드 하나로 제어할 수 있어 멀펑 보드가 별도로 필요하지 않으므로 나름 쓸만하다고 할 수 있겠습니다.
언제 시간이 나면 핀 사진의 커넥터 대신 일반 적인 RC 카에 많이 사용하는 후타바 짹이나 JR 커넥터 등을 이용하여 부피를 줄여볼 계획입니다. 나중에 작업하게 되면 소개해 드리겠습니다.,
배선은 송신부, 수신부 두개의 아두이노에 동일하게 해주시면 되고 송신부와 수신부는 코드에서 정의를 해주게 됩니다.
배선이 완료된 송신부 입니다.
네 사진상으로는 조금 복잡하지만 기존 설명드린데로 잘 연결 하셨다면 어려움 없이 잘 하실 수 있으리라 믿습니다.
수신기 쪽을 볼까요?
네 수신부에는 예상하시다 시피 두개의 서보모터와 NRF24L01 보드가 연결되어 있습니다.
코딩을 해보자
코드를 볼까요?
먼저 송신부 입니다. 기존 작성해 놓은 mp6050 코드에 무선 송수신 코드만 추가할 예정입니다.
// init for nrf24L01
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(8,7); // CE, CSN
const byte address[6] = "00001"; //송신기와 수신기 동일한 주소 사용
int msg[8];
//pinout smd version
//3.3v --- 3.3v
//GND --- GND
//CE --- 8
//CSN --- 7
//SCK --- 13
//MOSI --- 11
//MISO --- 12
//IRQ --- none
// init for mpu6050
#include "I2Cdev.h"
#include "MPU6050_6Axis_MotionApps_V6_12.h"
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
#include "Wire.h"
#endif
MPU6050 mpu;
#define OUTPUT_READABLE_YAWPITCHROLL
#define INTERRUPT_PIN 2 // use pin 2 on Arduino Uno & most boards
#define LED_PIN 13 // (Arduino is 13, Teensy is 11, Teensy++ is 6)
bool blinkState = false;
// MPU control/status vars
bool dmpReady = false; // set true if DMP init was successful
uint8_t mpuIntStatus; // holds actual interrupt status byte from MPU
uint8_t devStatus; // return status after each device operation (0 = success, !0 = error)
uint16_t packetSize; // expected DMP packet size (default is 42 bytes)
uint16_t fifoCount; // count of all bytes currently in FIFO
uint8_t fifoBuffer[64]; // FIFO storage buffer
// orientation/motion vars
Quaternion q; // [w, x, y, z] quaternion container
VectorInt16 aa; // [x, y, z] accel sensor measurements
VectorInt16 gy; // [x, y, z] gyro sensor measurements
VectorInt16 aaReal; // [x, y, z] gravity-free accel sensor measurements
VectorInt16 aaWorld; // [x, y, z] world-frame accel sensor measurements
VectorFloat gravity; // [x, y, z] gravity vector
float euler[3]; // [psi, theta, phi] Euler angle container
float ypr[3]; // [yaw, pitch, roll] yaw/pitch/roll container and gravity vector
volatile bool mpuInterrupt = false; // indicates whether MPU interrupt pin has gone high
void dmpDataReady() {
mpuInterrupt = true;
}
void setup() {
// join I2C bus (I2Cdev library doesn't do this automatically)
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
Wire.begin();
Wire.setClock(400000); // 400kHz I2C clock. Comment this line if having compilation difficulties
#elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE
Fastwire::setup(400, true);
#endif
Serial.begin(115200);
while (!Serial); // wait for Leonardo enumeration, others continue immediately
// initialize device
Serial.println(F("Initializing I2C devices..."));
mpu.initialize();
pinMode(INTERRUPT_PIN, INPUT);
// verify connection
Serial.println(F("Testing device connections..."));
Serial.println(mpu.testConnection() ? F("MPU6050 connection successful") : F("MPU6050 connection failed"));
// wait for ready
Serial.println(F("\nSend any character to begin DMP programming and demo: "));
//while (Serial.available() && Serial.read()); // empty buffer
//while (!Serial.available()); // wait for data
//while (Serial.available() && Serial.read()); // empty buffer again
// load and configure the DMP
Serial.println(F("Initializing DMP..."));
devStatus = mpu.dmpInitialize();
// supply your own gyro offsets here, scaled for min sensitivity
mpu.setXGyroOffset(51);
mpu.setYGyroOffset(8);
mpu.setZGyroOffset(21);
mpu.setXAccelOffset(1150);
mpu.setYAccelOffset(-50);
mpu.setZAccelOffset(1060);
// make sure it worked (returns 0 if so)
if (devStatus == 0) {
// Calibration Time: generate offsets and calibrate our MPU6050
mpu.CalibrateAccel(6);
mpu.CalibrateGyro(6);
Serial.println();
mpu.PrintActiveOffsets();
// turn on the DMP, now that it's ready
Serial.println(F("Enabling DMP..."));
mpu.setDMPEnabled(true);
// enable Arduino interrupt detection
Serial.print(F("Enabling interrupt detection (Arduino external interrupt "));
Serial.print(digitalPinToInterrupt(INTERRUPT_PIN));
Serial.println(F(")..."));
attachInterrupt(digitalPinToInterrupt(INTERRUPT_PIN), dmpDataReady, RISING);
mpuIntStatus = mpu.getIntStatus();
// set our DMP Ready flag so the main loop() function knows it's okay to use it
Serial.println(F("DMP ready! Waiting for first interrupt..."));
dmpReady = true;
// get expected DMP packet size for later comparison
packetSize = mpu.dmpGetFIFOPacketSize();
} else {
// ERROR!
// 1 = initial memory load failed
// 2 = DMP configuration updates failed
// (if it's going to break, usually the code will be 1)
Serial.print(F("DMP Initialization failed (code "));
Serial.print(devStatus);
Serial.println(F(")"));
}
// Radio setup
//setupRadio();
msg[0] = 0;
msg[1] = 0;
msg[2] = 0;
msg[3] = 0;
msg[4] = 0;
msg[5] = 0;
msg[6] = 0;
msg[7] = 0;
radio.begin();
radio.openWritingPipe(address); //이전에 설정한 5글자 문자열인 데이터를 보낼 수신의 주소를 설정
radio.setPALevel(RF24_PA_MIN); //전원공급에 관한 파워레벨을 설정합니다. 모듈 사이가 가까우면 최소로 설정합니다.
radio.stopListening(); //모듈을 송신기로 설정
}
void loop() {
// if programming failed, don't try to do anything
if (!dmpReady) return;
// read a packet from FIFO
if (mpu.dmpGetCurrentFIFOPacket(fifoBuffer)) { // Get the Latest packet
#ifdef OUTPUT_READABLE_YAWPITCHROLL
// display Euler angles in degrees
mpu.dmpGetQuaternion(&q, fifoBuffer);
mpu.dmpGetGravity(&gravity, &q);
mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);
float angle_x = (ypr[0] * 180 / M_PI) * -1 + 90 ; //* -1 + 90;
float angle_y = (ypr[1] * 180 / M_PI) + 90 ; //* -1 + 30;
if (angle_y < 60) angle_y = 60;
if (angle_y > 120) angle_y = 120;
if (angle_x < 30) angle_x = 30;
if (angle_x > 150) angle_x = 150;
msg[0] = int(angle_x);
msg[1] = int(angle_y);
radio.write(&msg, sizeof(msg)); //해당 메시지를 수신기로 보냄
Serial.print("ypr\tx:");
Serial.print(int(angle_x));
Serial.print("\ty:");
Serial.print(int(angle_y));
Serial.print("\t");
#endif
}
Serial.println(".");
delay(10);
}
아무래도 셋업해주는 부분이 약간 생소할 수 있겠습니다만 저도 인터넷에서 긁어 모은 코드를 조합하였을 뿐 상세하게는 모른답니다. 중요한 것은 노드의 이름을 정해주었는데요, 수신부에서도 동일한 이름을 지정해 주어야 한다는 점과, 다른 분들과의 혼선을 막기 위하여는 해당 이름을 유니크한 이름으로 정해주는 것이 좋다는 것 정도 입니다.
제가 사용한 코드는 (존경하는)새다리 님의 코드를 참고 하였고 NRF24L01 로 검색하시면 해외 여러 개발자 분들이 올려주신 멋진 코드들이 많이 있으므로 참고하시면 좋을 것 같습니다.
이번에는 수신부 입니다.
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(8,7); // CE, CSN
const byte address[6] = "00001"; //송신기와 수신기 동일한 주소 사용
int msg[8];
//pinout smd version
//NRF24L01 ARDUINO
//3.3v --- 3.3v
//GND --- GND
//CE --- 8
//CSN --- 7
//SCK --- 13
//MOSI --- 11
//MISO --- 12
//IRQ --- none
#include <Servo.h>
Servo myservo_LR;
Servo myservo_UD;
int pin_servo_LR = 9;
int pin_servo_UD = 10;
void setup() {
radio.begin();
radio.openReadingPipe(1, address);
radio.setPALevel(RF24_PA_MIN); //
// RF24_PA_MIN / RF24_PA_LOW / RF24_PA_HIGH / RF24_PA_MAX
radio.startListening(); //수신기로 설정
//setting 2 servo
myservo_LR.attach(pin_servo_LR);
myservo_LR.write (90);
myservo_UD.attach(pin_servo_UD);
myservo_UD.write (90);
}
void loop() {
if (radio.available()) {
radio.read(&msg, sizeof(msg));
for(int i = 0; i < 8 ; i ++)
{
Serial.print(msg[i]);
Serial.print("\t");
}
int angle_x = int(msg[0]);
int angle_y = int(msg[1]);
if (angle_x < 150 && angle_x > 30)
{
myservo_LR.write (angle_x);
}
if (angle_y < 120 && angle_y > 60)
{
myservo_UD.write(angle_y);
}
}
}
수신부는 서보모터 제어코드와 무선 수신 코드가 있는데요, 송신부에 비하면 간단하게 구성되어 있습니다.
무선 패킷이 들어오면 동작하도록 되어 있으므로 수신에 실패하면 아무런 동작도 하지 않도록 되어 있으며 만약을 대비하여 잘못된 값이 수신되더라도 서보모터에 전달되지 않도록 최대, 최소 범위를 제한하여 서보에 입력되도록 하였습니다.
RC 카에 헤드트래킹을 이용한 FPV 를 구현하려는 목표가 생기고나니 과정을 잘 정리하는게 필요하겠다 싶어 포스트를 남깁니다.
우선 첫번째 스텝으로 2축으로 제어가 가능한 서보모터 마운트를 만들고 서보모터를 제어하는 것인데요, 이미 언젠가 사용하겠지 싶어서 구입해 둔 2축 서보모터 마운트가 있기에 이 부분은 간단히 해결될 거라 생각했습니다.
바로 중국에서 구입한 이런 제품이죠.
9g 서보모터를 이용하여 바로 연결이 가능하도록 나온 제품이고 약간 헷갈리기는 하지만 조립이 어렵지는 않습니다.
그런데 너무 쉽게 생각한게 오산이었을까요?
일단 어떻게 연결해도 약간 제가 생각하는 머리의 움직임과 괴리감이 있었습니다.
사람은 목이라는 놀라운 구조에 의해 상하좌우 회전이 거의 동일한 한 점에서 이루어 집니다. 심지어는 틸트까지 되죠, 3축이 하나의 구조에서 이루어지는 놀라운 구조가 아닐수 없습니다.
제가 구입하였던 2축 서보 마운트는 그런 개념에서 완전히 빗나가 있더군요. 일단 x, y 축의 회전 축이 상당히 어긋나 있다는 점이 첫번째 문제점이었고 두번째로는 기본 각도가 수평에서 시작한다는 점 이었습니다.
위의 사진에서 보이는 것처럼 상단 평평한 면이 이미 최대 상향(y축) 각도인데요, 말하자면 더이상 고개를 들거나 또는 내리는건 불가능한 상태 입니다. 물론 90도를 꺽은 상태에서 카메라를 부착하는 방법도 있지만 그렇게 되면 축에서 더욱 멀어지게 되므로 이미 상당한 수준의 거북목이 진행된 것처럼 되어 버립니다. 무슨 목을 쭉 앞으로 뺀 거북이처럼 회전이 되게 되는 것이죠.
세번째 문제는 전체 부품의 부피가 너무 크다는 것인데요, RC 카 운전석 안에 장착을 해야 하는데 이런 저런 부품이 너무 자리를 많이 차지하더군요, 음...
반응형
2축 서보 연결을 위한 브라켓 제작하기
그래서 아주 간단한 구조에 부피도 아주 작은 2축 회전축을 만들어 보기로 하였습니다.
제 포스트를 보시는 분도 제가 만든 것처럼 구현하시면 축의 위치를 거의 같은 선상에 두고 사람의 머리처럼 제어되는 축을 만드실 수 있을 거에요.
저는 3D 프린터를 이용하여 핵심 부품을 출력하였습니다만, 구조상 그냥 L 자 꺽쇠를 이용하여 만드시는 것도 가능합니다. 필요하신 크기로 가공만 하면 되는 것이죠.
저는 부품의 부피를 최소화 하기 위하여 서보모터의 고정 부품 안쪽으로 브라켓이 장착되도록 제작을 하였습니다.
이렇게 되면 상단의 서보모터는 Y 축(상하회전)을 제어하고 하단의 서보모터는 X 축(좌우회전)을 제어하게 되는데요, 우리의 목의 구조를 봐도 보통 회전은 귀를 중심으로 머리통이 상하로 움직이고 좌우 회전은 목 전체가 회전되므로 상대적으로 제가 만든것과 유사한 구조로 움직이는 것을 알 수 있습니다. 물론 사람의 목은 대단히 유연하고 훌륭한 관절이어서 상하회전이 꼭 한군데서 이루어지는 것은 아닙니다만 유사한 움직임이 구현되기는 합니다.
제가 만든 것처럼 브라켓의 상하 길이를 작게 만들게 되면 상하 회전 움직임에 제약이 있기는 합니다. 서보모터에 부딪힐 수 있기 때문인데요, 사람의 목이 상하로 180도를 움직이지 않는 것을 고려해보면 크게 문제될 것은 없어 보입니다.
만약 서보모터의 동작 범위 전체를 커버하기를 원하시면 브라켓의 상하 길이를 서보모터의 회전 반경보다 크게 제작하면 문제 없이 동작하게 됩니다.
아두이노와 연결을 해보자
자 이제 아두이노로 잘 제어가 되는지 확인해 보도록 하겠습니다.
2축 제어를 위하여 간단하게 2축 아날로그 조이스틱을 연결하고 제어를 해봅니다.
연결은 아래와 같이 하시면 됩니다.
소스코드는 아주 간단합니다.
아날로그 신호를 받아 서보모터를 움직이는 기본 소스코드 그대로 약간만 응용하면 구현이 가능합니다.
지난 크리스마스에 아이들 선물로 스위치를 사주었습니다. 아이들은 흥분했고 이틀만에 대리석 바닥에 LCD 쪽으로 정확히 떨어지는 모습을 슬로우 비디오처럼 바라본 저역시 흥분했습니다.
-_-;;
다행히 LCD 는 전혀 손상이 없었습니다.
왜? 바로 조이스틱이 있었기 때문이죠.
네. 그래서 구입한지 하루만에 오른쪽 조이스틱이 맛이 갔습니다.
처음에는 동작 범위가 점점 좁아지더니 일주일 정도 지나니 위 쪽으로 전혀 움직이지 않더군요.
그리고 이틀정도 지나니 조이스틱을 이용한 클릭도 되지 않았습니다.
구입한지 얼마 되지 않았으니 당연히 공식 A/S 를 받으려 하였지만 소비자 과실로 인한 손상의 경우 무상 A/S 가 안된다는 답변을 받았습니다. ㅜㅜ. 그런데 A/S 를 보내봐야 무상인지 유상인지 안다는 군요. 흠...
와이프 : 설마 구입한지 한달도 안된 스위치를 공식 A/S 가 아닌 니가 직접 수리를 한다고???
어찌어찌 중국에서 교체용 부품을 수급해서 직접 교체를 하기로 마음먹었습니다.
중국에서 하나에 3000 원 정도에 구입한 조이스틱입니다.
만약을 위하여 2개를 구매하였고, 구매할 때 동시에 중국산 조이콘 세트도 함께 주문하였습니다.
품질은 괜찮은 것 같습니다. 조작 느낌이나 생김새도 정품이랑 거의 동일한 것 같습니다.
쏠림현상으로 말들이 많은 것 같던데 나중에 교체용으로 사용하면 될 것 같네요.
어쨌든 수리를 시작해 보겠습니다.
준비물
교체용 조이스틱 부품
Y 드라이버 2.0mm (전 샤오미 와우스틱 세트 사용)
+ 드라이버 (작은것)
작은 핀셋 (트위저)
뭐 재끼고 열기 적당한 헤라 같은것 (전 디자인 할때 사용했던 헤라를 이용했습니다)
먼저 그럴듯 하게 준비물을 늘어 놓습니다.
그다음 뚜껑을 열어 주어야 하는데요. Y 드라이버 비트를 끼우고 뒷면에 4개의 나사를 풀어 줍니다.
뚜껑을 열면 예쁜 자태가 모습을 보입니다.
아흑~
의외인 것은 덮개가 걸쇠 같은 걸로 고정되어 있지 않네요. 그냥 레일 있는 부분 부터 살살 열면서 사방을 조금씩 들어 올리면 쉽게 열립니다. 아마 AS 직원들의 편의를 위한 배려가 아니었을까요?
조이스틱은 저 배터리와 배터리 커버를 열어야 교환이 가능합니다.
사진에 보이는 빨산색 화살표 부분을 그냥 손으로 조금씩 들어올리면 배터리가 떨어집니다. 그리고 우측 동그라미 부분에 배터리 연결 단자가 있는데요. 기판의 수직 방향으로 (위쪽으로) 그냥 들어올리면 툭 하고 빠집니다. 잘 모르시겠으면 마데전자 가셔서 교체 방법 동영상을 한번 보시는 것을 추천 드립니다.
그런 다음 베터리 케이스를 뜯어내기 위하여 3개의 나사를 풀어 주어야 합니다. + 자 정밀 드라이버를 이용하세요.
사진에 보이는 동그라미 부분의 나사를 풀고 돼지꼬리 화살표처럼 기판 하나를 빼냅니다. 아마 무선 안테나가 아닌가 생각됩니다.
안테나를 빼네면 위의 사진처럼 됩니다. 따로 메인보드에서 분리할 필요는 없습니다.
이제 가운데 파란색 배터리 케이스를 재껴내듯 뒤집어 줍니다. 리본 케이블이 살짝 타이트한 느낌이 있으니 부드럽게 안쪽으로 살짝 밀듯이 뒤집으면 뒤집힙니다.
하... 열고 보니까 한숨이 나옵니다. 얼마나 세게 떨어졌으면 조이스틱 부품의 바닥면이 저렇게 돌출 되었을까요?
닌텐도 A/S 맡겼으면 호갱님 과실이십니다~ 수리비는 00000 입니다. 할 뻔 했네요.
어쨌든 조이스틱에 연결되어 있는 두개의 나사를 풀어주면 조이스틱은 분리되는데 메인 보드에 연결 되어 있는 리본 케이블을 빼내에 합니다.
이런 류의 회로기판을 자주 안보신 분들은 생소하실 텐데요. 저 빨간 네모 부분의 검은 색 조각을 핀셋이나 뾰족한 도구를 이용하여 위로 들어올려주어야 리본 케이블이 빠집니다.
아래 사진을 잘 보세요. 해당 부품을 들어올린 사진입니다.
차이가 느껴 지시나요? 들어올리는 것이 힘이 들지 않으니 이쑤시개 같은 걸로도 충분히 가능합니다. 너무 겁먹지 마시고 해보세요.
저걸 들어올린 뒤 리본 케이블을 핀셋 (쪽집개도 가능) 같은 걸로 당기듯 빼내면 가볍게 빠집니다.
자 이제 문제의 조이스틱을 보겠습니다.
아후... 정말 말이 안나오네요. 이건 뭐 스위치 하드웨어 욕은 못하겠습니다.
어쨌든 교체용 부품을 다시 원래 위치에 부착한 뒤 나사를 조이고 리본 케이블을 원래대로 끼워 넣습니다.
네. 솔직히 어렵지 않습니다. 차근차근 하시면 되고요. 끼워 넣으신 뒤에 아까 그 검은색 리본 케이블 고정 부품을 손으로 꾹 눌러서 내려주면 됩니다.
이제 조립만 하면 됩니다.
재껴 놓았던 배터리 케이스를 다시 덮고 안테나를 원위치 시킵니다.
자 거의 마무리 되었습니다.
마지막으로 배터리를 원위치 시켜야 하는데요. 제 개인적인 생각으로는 이 단계가 초보 분들에게 가장 생소하지 않나 싶지만 막상 해보면 어렵지 않습니다.
배터리 단자를 빼냈던 그곳에 살포시 올려둔 후 위에서 아래로 꾹 눌러주면 되는데요. 연필 뒤에 있는 지우개 같은 걸로 눌러주시면 됩니다. 아니면 면봉이나 플라스틱 막대기도 좋고요. 금속은 합선이 될 수 있으니 금속만 아니면 됩니다.
자 이제 덮개를 원위치 하고 나사 4개를 조여주시면 수리 끝.
끝으로 본체에 연결하시고 스틱보정 1회 진행하면 수리 끝 입니다.
잘 되네요. 동물의 숲 2인 플레이를 못해서 아쉬워 하던 아이들이 좋아할 것 같습니다.
사진이 많고 설명이 길어 어려울 것 같지만 DIY 초보자도 10~20분이면 충분히 하실 수 있는 어렵지 않은 작업입니다. 저렴한 가격으로 직접 수리하는 즐거움을 맛보시길 바랍니다.
반응형
끝으로 제 경험을 바탕으로 이런 류의 자가수리를 할 때 중요한 몇가지 포인트를 알려드립니다.
자가수리! 이것만 기억하자
규격에 맞는 드라이버, 공구를 사용하자.
분해한 나사는 분해한 순서대로 잃어버리지 않도록 잘 보관하자.
분해 전 과정과정 마다 반드시 사진을 남겨라.
힘으로 분해하지 말자. 반드시 어딘가 걸려있는 부분이 있다.
전자제품이라면 반드시 전원을 가장 먼저 제거하자.
고장은 복잡한 곳에서 일어나지 않는다. 분명 어딘가 전선이 끊어졌거나 납떔한 곳이 떨어졌을 것이다.