반응형

나이가 40을 넘어가면서 체력이 뚝뚝 떨어지는 것을 느낀다.

매년 연초에 계획하는 운동 계획은 1월을 넘기지 못하고 흐지부지 되었고, 단 한번도 계획을 세운적은 없지만 매일 같이  어기지 않고 저녁마다 먹는 맥주는 내 몸을 더욱 무겁게 만들고 있다.

이런 저런 이유로 요즘 무기력함이 커지는 가운데 현대자동차에서 주관하는 '롱기스트런'이라는 이벤트가 눈에 들어왔다. 몇가지 달리기 미션을 도전하고 그 보상으로 마일리지를 받아 경품 추첨에 응모할 수 있으며 파이널 런이라는 10km 미터 단축 마라톤 대회를 개최하는 이벤트다. 

이 활동은 현대자동차가 주관하는 사회공헌 활동의 하나로 쉽게 말하자면 이용자가 달린 만큼 현대자동차가 나무를 심는 프로젝트라고 할 수 있겠다.

뭐 솔직히 그런건 기업이 사회공헌을 하는 핑계 정도에 불과할테니 내가 크게 신경쓸 건 아니고 뭔가 운동을 시작하는 핑계정도라고 생각하고 파이널런에 도전하기로 했다.

 

본격적으로 10km 달리기 준비하기!

솔직히 말하면 군대를 제대하고 20년이 넘도록 10km 라는 거리를 달려본적은 없다.

뭔가 뛸수 있을 것 같은 느낌적인 느낌은 있지만 막상내가 달릴 수 있을지... 

황근출 해병님이 뒤에서 쫒아오며 '잡히면 건조장'을 외치지 않으면 달릴 수 없는 몸이 된 것인가.

매년 연초에 운동한다고 나가서 4km 이상을 달린적이 없는 내게 10km 는 약간 높은 벽이었다.

4km 정도를 달리면 항상 종아리가 앞뒤로 많이 땡기고 무릎이 아팠기 때문에 뭔가 변화를 주어야 겠다 생각했고 신발을 구입했다.

참고로 본인은 175cm 에 70kg 인 평범한 몸매에 근육은 1도 없고 배만 뽈록한 전형적인 사무실 차장님 체형이다.

 

그래서 구입한 신발은?

아식스 타사 엣지 

내가 구입한 아식스 타사 엣지

 

소싯적에 10만원이 넘는 러닝화를 보며 와... 나도 이런 신발 살 수 있을까 하며 군침을 흘렸었는데... 

40이 넘어서야 구입을 하게 되었다.ㅜㅜ

가난했던 내 젊은 시절..

 

어쨌든 난 발볼이 넓으므로 4E 로 구입! (발 볼에 맞게 구입할 수 있다니 아식스 짱)

오호.. 신발 구입의 효과는 굉장했다.

뭔가 쿠션은 약한듯한데 뒷굼치 쪽에 통통 튀어오르는 반발력이 있고 창의 좌우 뒤틀림이 거의 없는 느낌이다. 앞쪽의 독특한 그립때문인지 땅바닥에 발바닥이 쫙쫙 붙는 느낌이 든다. 차고 나가는 힘도 덜 드는 느낌이랄까.

 

4~5만원짜리 저렴한 러닝화랑은 땅바닥을 딛는 느낌자체가 달라졌다. 

결정적으로 똑같이 4km 를 뛰었을때 무릎과 종아리가 전~~혀 아프지 않았다. 

이건 놀라운데?

 

 

얼마뒤 바로 10km 미터 달리기에 도전했다.

완주를 목표로 달렸고 최근 몇차례 4km 이상을 달린적이 있었기 때문에 무리하지 않고 완주를 목표로 달렸다.

 

결과는...

처음 도전에 성공한 10km 달리기

이정도면 만족.

이대로면 파이널런에서 1시간을 목표로 완주는 할 수 있겠다 싶었다.

 

하지만 그 이후 10km 도전할 때 마다 번번히 실패했다.

몇 차례 도전해 봤지만 4km, 3km, 6km, 7km, 5km... 번번히 10km 에 실패했다.

어쩌다 자기전에 맥주라도 먹고나면 근육통 때문에 한 2~3일은 달릴수가 없었다. 

뛰다 보면 장트러블이 항상 와서 집으로 향해야 했고, 그렇지 않은 경우엔 1시간을 달려야 하는 그 시간이 너무너무 지루했다. 정신이 육체에게 그만 두라고 발을 내 딛을 때마다 강요하는 느낌에 도저히 지쳐서 달릴 수가 없었다.

그래서 필요한건? 

바로 음악!

그리고 오래 착용해도 불편하지 않고, 오래 달려도 귀에서 빠지지 않는 블루투스 이어폰을 구입했다. 요즘 핫 하다는 

QCY-ailyPods

QCY aliPods bluetooth earphone

적당한 가격에, 적당한 음질, 적당하지 않은 디자인과 사용성 까지 아주 괜찮은 이어폰이다.

블루투스 통화음질은 별로인 듯 

 

그리고 1시간 러닝을 책임져 줄 180bpm workout 음악! (유튜브에 널려있음)

https://www.youtube.com/watch?v=8z6GKCwHZuE&ab_channel=WorkoutMusicSource 

뭐 대충 이런 음악

여기서 180bpm 이 중요하다.

이 180bpm 비트에 맞게 발을 내 딛으면 거의 정확하게 분당 180 걸음으로 달릴수 있어 운동 효과도 극대화 되고 페이스 조절도 문제 없다. 게다가 음악이 주는 힘 때문인지 달려나가는 힘이 훨씬 덜 든다. 뭔가 전장으로 달려나가는 전사가 된 듯한 느낌?

 

효과는?

Really good!

다시 한번 10km 달리기 도전 

신발과 음악이 더해진 기록

 

성공!!

 

또 한번 기록을 단축할 수 있었다.

 

 

그럼 이게 끝이냐 하면,,,

 

인터넷에 각종 운동관련 정보를 보던 중 심박수를 모니터링 하는게 운동에 상당히 중요하다는 것을 알게 되었다. 지방을 효율적으로 태울 수 있는 수준의 심박수를 유지한다거나 자신의 최대 운동 능력과 지속 가능한 운동능력의 수준을 심박수를 통해 모니터링 가능하다는 것이다.

뭐 더이상의 자세한 설명은 집어 치우고 쇼핑모드 진입!

운동 센서하면 가민이지. 가민 제품을 알아봤는데..

너무 비싸다.

나약한 정신상태를 갖고 있는 저질 몸뚱아리가 언제 러닝을 포기할지 모르는 나이기에 좀 저렴한 센서를 찾다가 그나마 평이 좋은 제품을 찾았다.

결국 알리에서 구입하는걸로... 

알리에서 Magene H303 이라는 제품이 눈에 들어와 구입했다. H64 는 구형인듯 해서 H303으로 구입했고 일주일만에 배송되었다.

가성비 HR 센서 Magene H303

 

내가 사용하는 운동 기록 어플은 스포츠트래커 (sportstracker) 인데...  사람들이 많이 사용하지는 않는 어플인것 같다. 보통 스트라바(strava) 나 나이키 러닝 앱 같은 뭔가 이름부터 메이저한 앱을 많이 사용하는 것 같은데 나는 몇년전에 우연히 자전거를 타며 깔았던 스포츠 트래커 앱을 그냥 사용하기로 했다.

결국 스포츠 트래커를 계속 사용하게 된 가장 중요한 이유가 스트라바의 강력한 커뮤니티 기능이 난 싫었기 때문인데 (내가 원하지 않는데 마구 사람들의 기록을 보여주고 내기록을 공유할 것인지 자꾸만 물어봄) 스포츠 트래커는 뭔가 그런 기능이 약했고 강요하는 느낌이 없어 좋았다. 사실 난 SNS를 거의 하지 않는 아싸니까.

암튼 첫번째 걱정은 스포츠트래커 어플에서 구입한 심박센서가 잘 인식 되는가 였는데

 

예스!

잘됨. (걱정말고 구입하세요)

페어링 방법은 먼저 밴드 안쪽에 매끈한 재질로 심전도를 인식하는 부분이 있다. 그 부분에 물을 뭍힌 후 가슴에 적당히 조이도록 부착한다음 H303의 똑딱이 단추에 맞춰 부착하면 된다. (정상적으로 장착이 되었다면 상단에 빨간 LED 가 들어옴)명치 부분근처에 센서가 오도록 밴드를 조절해주면 자동으로 H303의 중간에 빨간 불이 들어온다. 그럼 페어링 준비 끝

블루투스 연결 메뉴로 가지 말고 바로 스포츠트래커 앱을 켠다.

설정으로 들어가서 아래와 같이 심박수센서를 연결해주면 된다.

사진과 같은 순서로 들어가면 센서 연결을 할 수 있다

연결되면 바로 심장 박동이 모니터링 되는데 준비 페이지에 들어가면 자동으로 모니터링을 시작한다.

 

심박센서를 연결하니 스포츠트래커에서 1km 마다 음성으로 알려주는 피드백 정보에 심박수도 알려준다. ㅎ 물론 피드백을 주는 간격을 거리로 정할 수도 있으니 원하는 타이밍에 피드백을 받을 수 있다.

심박수 센서를 동작하며 달려 본 결과 

편안하게 시속 10km/h 정도로 뛰면 145~155 사이, 10 ~ 11km/h 정도로 뛰면 155~165 사이, 11.5km/h 까지 올렸더니 175에 육박하는 엄청난 속도로 심장이 뛴다는 것을 알 수 있었다. 

이번에 초반에 페이스 조절을 잘해서 인지 9km 를 통과했을때 체력이 좀 남아 있는 듯하여 마지막 500m 정도에 페이스를 마구 올렸더니 180이 넘어버렸다.

심장이 터저버렷

 

자. 이제 알게된 것은 내 심박수 기준으로 150 ~160 수준으로 맞추면 10km 를 뛰는데 문제가 없다는 것을 알았다. 

심박수까지 모니터링하면서 뛰었더니 거짓말처럼 기록이 좋아졌다.

 

무려 5분 초반대 페이스를 기록함

대박

 

 

자 그럼 이제 10km 파이널런 참가를 위한 준비는 끝난 것인가?

 

그런데 코로나 시국 아닌가!

정부가 바뀌면서 거리두기도 안하고 뭐 질병관리청이 뭐하는 곳인지 당췌 이해가 안가는 코로나 시국이니 만큼 내건강은 내가 챙겨야지. 

마스크를 쓰고 달려야 하면 이야기가 달라지자나!

주최측에 물어봤다.

이런 제길

 

ㅜㅜ

 

마스크를 쓰면 땀이랑 습기 때문에 2km 만 뛰어도 마스크가 입에 달라붙여 도처히 숨을 쉴 수 없었기에 달릴때 마스크 착용을 권고한다는 주최측의 답변은 나에겐 절망적인 소식이었다.

 

그렇게 내가 포기 할 것 같음? 마스크가 입에 붙지 않게 하면되지.

이너가드를 만들자!

(인터넷 쇼핑몰에서 그냥 사면 된다는 사실을 모르는 나란 남자)

집에 있는 3D 프린터용 필라멘트를 이용해서 마스크 이너가드를 만들었다.

짜잔~

3D 펜으로 대충 떼워서 붙여주었다.
마스크에 장착하면 이런 모양

뭔가 착용해 보면 자꾸 입술에 필라멘트가 닿는다.

뛰면서 혀로 낼름거리며 필라멘트를 빨거나 입술로 만지작하는 재미가 있기는 한데...

 

앞쪽만 남기로 안쪽은 없애야 겠다.

 

-_-

 

자 이제 준비완료.

 

자 진지하게 좀 달려보기 위한 준비물을 정리해보자면

  • 자신에게 잘맞는 러닝화 구입 (좋은걸로)
  • 180bpm 음악 준비, 편안하고 사용하기 좋은 이어폰 필수
  • 운동 전후로 술 먹지 않기
  • 배가 부른 상태에서 달리지 않기
  • 심박센서와 같은 자신의 운동 모니터링 장비 구입
  • 마스크 이너가드 (옵션)

요정도가 초보 러너에게 필요한 10km 도전을 위한 준비물이라 할 수 있겠다. 

경품으로 응모한 가민 포러너가 당첨된다면 ㅎㅎ 너무 좋겠다.

 

 

2022년 10월 15일 여의도.

롱기스트런 파이널런

과연 성공할 수 있을까?

 

 

 

건강한 신체에 건강한 정신이 깃든다는 아식스 창립자의 창립 이념을 난 좋아한다. 아식스라는 브랜드를 좋아하는 이유이기도 하다.

이 글을 보는 모든 분들에게 건강한 신체와 건강한 정신이 깃들기를 바랍니다.

반응형
반응형

만능 리모컨을 만들기로 해놓고 정말 많은 시간이 흘렀습니다.

2019.11.10 - [DIY/Arduino] - [DIY] 아두이노로 만능 (통합) 리모콘 만들기 1/3

2019.11.10 - [DIY/Arduino] - [DIY] 아두이노로 통합(만능) 리모콘 만들기 2/3

2020.06.17 - [DIY/Arduino] - [DIY] 아두이노로 통합(만능) 리모콘 만들기 3/3

결국 이번에도 완성되지 못한채 프로젝트가 끝나는것이 안타까워 마무리를 해보기로 합니다.

(리모컨 신호 따기, 각 기능별 동작 확인하는 과정 등은 위 링크의 글을 참고해 주세요)

사실 로직도 다 만들었고 테스트도 어느정도 완료 했으니 하드웨어만 만들면 되는데요, 항상 그렇지만 적당한 하드웨어를 구성하는 것이 쉬운일은 아닙니다. 3D 프린터가 있긴 하지만 완전한 완성품을 만드는게 쉽지 않더군요.

저처럼 DIY 를 하는 경우에는 개조에 적당한 다른 하드웨어를 가지고 튜닝을 하는게 더 쉽고 완성도도 높다 보니 적당한 녀석을 찾는 것이 일이었습니다.

 

그러던 와중!

완전 적당한 녀석을 발견했지 뭡니까.

바로 알리에서 구입한 18650 배터리를 이용한 파워뱅크 케이스 입니다. 병렬로 2개의 18650 배터리가 들어가게 되는데 그 중 하나를 넣지 않아도 정상 동작하기에 다른 한쪽에 아두이노 나노와 필요한 부품을 넣으면 되겠다 싶더군요.

 

그냥 이전에 만들었던거 집어 치우고 새로 만들겁니다.

 

바로 작업에 들어갑니다.

아래 사진처럼 납작한 택트 스위치를 덮개 위에 얹으면 될 것 같았습니다.

파워뱅크 케이스 위에 택트 스위치를 배열해본 모습

음.. 그럴싸 하군요.

하지만 작업의 편의성을 위해 만능 기판 위에 올리기로 합니다.

만능기판 위에 올린 모습

네.. 요게 더 작업이 수월할 것 같군요.

요렇게 가기로 합니다.

표면에 스위치가 그대로 노출되면 예쁘지 않으니 덮개를 만들어야 겠습니다.

잽싸게 3D 모델링을 한 다음 바로 3D 프린터로 프린트 해 봅니다.

3D 프린터로 덮개를 출력중임

 

만능 기판 위에 덮어본 모습

네.. 잘 맞는 군요. (몇차례 수정이 있었습니다)

 

 

그럼 이제 만능 기판위에 스위치와 인디케이터용 LED 를 납땜해 봅니다.

양면으로 사용가능한 만능 기판이므로 위쪽에 버튼과 LED 를 모두 붙여 준 뒤 아래 쪽에서 실제 배선을 하기로 합니다.

지금 보이는 모든 점퍼 선은 그라운드에 연결할 예정이에요. 

부품 장착 및 윗면 배선을 모두 마친 모습
인디케이터용으로 작은 SMD LED 를 장착했다.

그리고 인디케이터 용으로 LED 를 장착 했는데요, 위쪽에 보이는 4개는 각각 제가 선택한 제품을 표시하도록 하고 아래쪽 한개는 동작 할 때마다 신호가 나가는지 확인하기 위한 용도로 사용하기로 하였습니다.

워낙 SMD 부품이 작아 삐뚤빼뚤 하긴 하지만 뭐 큰 문제는 없습니다.

 

버튼의 위치와 버튼별 기능 목록

실제 버튼별 기능 목록과 각 기능별로 전달될 신호는 위와 같습니다.

 

아래쪽에서 본 버튼별 위치

 

뒷면에서 보면 위와 같은 모양으로 버튼들이 배치되어 있습니다. 헷갈리지 않도록 저렇게 만들어 놓고 배선을 시작하기로 합니다.

 

반응형

 

이제 실제 아두이노와 연결을 해야 겠죠?

파워뱅크 덮개 중앙을 뚫어 배선이 내부로 들어갈 수 있도록 해 주었고요,

제작한 기판이 올라갈 위치에 맞게 구멍을 뚫어 주었다.

안쪽에 아두이노 나노를 넣어서 문제 없이 장착이 될 지 확인해 봅니다.

기판과 덮개를 덮어 본 모습

네.. 아주 딱 맞아 떨어집니다.

이제 살인적인 납땜이 남았군요.

 

 

배선 시작 

..

분노의 땜질 시작!!!!

..

 

 

 

네.

끝냈습니다.

살인적인 케이블 들..
아래쪽에는 나노의 USB 포트를 노출시켰다.

 

.

.

 

 

네.. 아두이노의 거의 모든 포트와 연결이 되어있기 때문에 정말 힘들었습니다.

신호를 전달 하는 케이블은 사용하지 않는 랜선 내부의 케이블을 이용해서 연결해 주었습니다.

그리고 아두이노 나노의 USB 연결 포트를 노출 시켜서 나중에라도 프로그래밍을 손쉽게 변경할 수 있도록 했고요, 구석쪽으로 IR LED 를 꺼내주었습니다.

 

배터리를 넣고 동작이 되는지 테스트 해보았습니다.

일단 불은 들어오는 것 확인

 

네 일단 동작은 되는 것 같군요.

TV 에 와서 동작하는지도 확인해 보았고,, 약간의 코드 수정이 필요해 보이는 것을 제외하면 버튼들은 모두 동작하는 것을 확인했습니다.

 

 

그리고 단순히 리모컨으로써의 기능 뿐만 아니라 간단한 플래쉬와 레이저 포인터 기능도 동작하도록 할 생각입니다.

리모컨은 항상 거실의 중심에 있으니 플래쉬가 필요할 때도 빠르게 찾아 사용할 수 있을 것입니다.

 

최종 마무리가 된 모습은 아래와 같습니다.

좌측 하단에 1W LED 를 넣어주고 아래쪽으로 푸쉬락 기능이 있는 스위치를 하나 달아 주었고요,

좌측 위쪽으로는 레이저 다이오드를 넣은뒤 택트 스위치를 연결해주었습니다.

배터리에서 아두이노로 전원을 공급하기 위해 5V 승압 보드를 연결해서 전원 공급을 해주게 됩니다. 물론 스압 보드와 배터리 사이에 푸쉬락 기능이 있는 스위치를 하나 달아 주었습니다.

 

이렇게 하면 일반 USB 충전기를 이용해서 리모컨을 충전할 수 있으며 만약 배터리가 방전되어 교체가 필요하더라도 18650 배터리만 교체하면 되므로 사용성이나 유지보수도 용이한 구성이 되겠습니다.

 

 

 

UI 디자인 올리기

이제 슬슬 마무리를 해야하는데요,

어떤 버튼이 어떤 동작을 하는지 알아야 하지 않겠습니까? 그래서 전면부 UI 디자인을 해보았습니다.

이래뵈도 디자이너 아뉘겠습니까?

리모컨에 사용될 UI 작업 중

일러스트로 버튼의 위치에 맞게 UI 를 그려보았습니다.

좌측에 뒤집혀 있는 그림은 뭘까요?

조금뒤에 알려드리겠습니다.

일단 프린트해서 크기와 위치, 배치 등이 적당한지 확인해 봅니다.

버튼의 위치와 크기 확인 중

또 실제 버튼의 모양, 위치, 기능이 모두 정상 동작하는지 최종 확인을 해봅니다.

 

그럼 이제 OHP 필름을 꺼내 프린트를 다시 합니다!

네. 바로 OHP 필름입니다.

OHP 필름에 뒤집힌 그래픽이 출력되었다.

 

자 OHP 필름에도 출력이 잘 되었습니다.

그럼 출력된 면에 

영일 락카 등장

띠용~ 락카가 등장했네요.

 

네 출력된 면에 백색 락카를 칠해주면 

OHP 필름 출력면에 락카 칠 하는 중

 

칠해주면~

 

그리고 뒤집으면 ~ 

 

쨔쟌~

 

요렇게 반짝 반짝 하는 예쁜 그래픽을 볼 수 있답니다. 손으로 눌르거나 해도 지워질 염려가 없지요.

요렇게 만들어진 전면부를 제작한 리모컨 위에 똭 붙여 주면

완 to the 성!

완성된 아두이노 만능리모컨

오예~

완성 되었습니다.

 

사실 처음 계획이랑 전원 스위치 와 제품 변경 기능이 뒤바뀌긴 했지만 뭐 괜찮습니다.

 

부가기능들을 볼까요? 

플래쉬 동작!
레이저 포인터 동작!

오~예! 오~ 예!

모두 잘 동작 합니다. ㅋㅋ

 

며칠에 한번씩 배터리 방전을 막기 위해 핸드폰 충전기로 배터리를 충전해 주면 끝

충전 중인 만능 리모컨

 

네.. 이렇게 마무리가 되었습니다.

 

어휴 생각보다 힘들었지만 이제 거실 테이블 위에 널브러져 있는 리모컨들을 치울 수 있다고 생각하니 후련 합니다.

 

끝으로 최종으로 적용한 아두이노 소스코드를 아래에 올립니다.

상당히 긴 코드가 되어 버렸네요. 

더보기
#include <boarddefs.h>
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>
#include <EEPROM.h>
/*
 * IRremote: IRsendDemo - demonstrates sending IR codes with IRsend
 * An IR LED must be connected to Arduino PWM pin 3.
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * http://arcfn.com
 */
/*
 * tv (NEC)
 * power :      0x2DF10EF, 32
 * input :      0x2DFD02F, 32
 * chnnel up :  0x2DF00FF, 32
 * chnnel dn :  0x2DF807F, 32
 * volumn up :  0x2DF40BF, 32
 * volumn dn :  0x2DFC03F, 32
 * OK :         0x2DF22DD, 32
 * sw up :      0x2DF02FD, 32
 * sw dn :      0x2DF827D, 32
 * sw left :    0x2DFE01F, 32
 * sw right :   0x2DF609F, 32
 * 
 * android tv (NEC)
 * power :      0x807F02FD, 32
 * sw up :      0x807F6897, 32
 * sw dn :      0x807F58A7, 32
 * sw left :    0x807F8A75, 32
 * sw right :   0x807F0AF5, 32
 * sw OK :      0x807FC837, 32
 * back :       0x807F9867, 32
 * volumn up :  0x807F18E7, 32
 * volumn dn :  0x807F08F7, 32
 * 
 * 
 * lonpoo speaker
 * power :      0x40BF807F, 32
 * volumn up :  0x40BF50AF, 32
 * volumn dn :  0x40BFD02F, 32
 * bt :         0x40BFA05F, 32
 * bt esc :     0x40BF906F, 32
 * opt :        0x40BF20DF, 32
 * 
 * 
 * LED
 * tv :     9
 * tv box : 10
 * btv :    11
 * spk :    12
 * 
 * input
 * s01 
 * 
 * 
 * 
 * 
 */

#include <IRremote.h>

const int s01 = 0;
const int s02 = 18;   // select sw 
const int s03 = 1;
const int s04 = 2;
const int s05 = 19;
const int s06 = 4;
const int s07 = 5;
const int s08 = 6;
const int s09 = 7;
const int s10 = 8;
const int s11 = 14;
const int s12 = 15;
const int s13 = 16;
const int s14 = 17;
//LED
const int L00 = 9;    // TV
const int L01 = 10;   // TV BOX
const int L02 = 11;   // BTV
const int L03 = 12;   // LONPOO SPEAKER

//
// define sw value
int sw_01;
int sw_02;
int sw_03;
int sw_04;
int sw_05;
int sw_06;
int sw_07;
int sw_08;
int sw_09;
int sw_10;
int sw_11;
int sw_12;
int sw_13;
int sw_14;

bool canWorking_01 = true;
bool canWorking_02 = true;
bool canWorking_03 = true;
bool canWorking_04 = true;
bool canWorking_05 = true;
bool canWorking_06 = true;
bool canWorking_07 = true;
bool canWorking_08 = true;
bool canWorking_09 = true;
bool canWorking_10 = true;
bool canWorking_11 = true;
bool canWorking_12 = true;
bool canWorking_13 = true;
bool canWorking_14 = true;
// 
int productIdx = 0; //0 : TV / 1: TV BOX / 2: BTV / 3: SPK

int addr = 0;
bool chkon = false;
IRsend irsend;

void setup()
{
  pinMode(s01, INPUT_PULLUP);
  pinMode(s02, INPUT_PULLUP);
  pinMode(s03, INPUT_PULLUP);
  pinMode(s04, INPUT_PULLUP);
  pinMode(s05, INPUT_PULLUP);
  pinMode(s06, INPUT_PULLUP);
  pinMode(s07, INPUT_PULLUP);
  pinMode(s08, INPUT_PULLUP);
  pinMode(s09, INPUT_PULLUP);
  pinMode(s10, INPUT_PULLUP);
  pinMode(s11, INPUT_PULLUP);
  pinMode(s12, INPUT_PULLUP);
  pinMode(s13, INPUT_PULLUP);
  pinMode(s14, INPUT_PULLUP);
  
  pinMode(L00, OUTPUT);
  pinMode(L01, OUTPUT);
  pinMode(L02, OUTPUT);
  pinMode(L03, OUTPUT);
  
  pinMode(13, OUTPUT);
  //EEPROM.write(0, productIdx);  
  productIdx = EEPROM.read(0);

  sw_01 = HIGH;
  sw_02 = HIGH;
  sw_03 = HIGH;
  sw_04 = HIGH;
  sw_05 = HIGH;
  sw_06 = HIGH;
  sw_07 = HIGH;
  sw_08 = HIGH;
  sw_09 = HIGH;
  sw_10 = HIGH;
  sw_11 = HIGH;
  sw_12 = HIGH;
  sw_13 = HIGH;
  sw_14 = HIGH;
  
  canWorking_01 = true;
  canWorking_02 = true;
  canWorking_03 = true;
  canWorking_04 = true;
  canWorking_05 = true;
  canWorking_06 = true;
  canWorking_07 = true;
  canWorking_08 = true;
  canWorking_09 = true;
  canWorking_10 = true;
  canWorking_11 = true;
  canWorking_12 = true;
  canWorking_13 = true;
  canWorking_14 = true;

  Serial.begin(9600);
  Serial.println(productIdx);

  
}

void loop() {

  digitalWrite(13, LOW);
  
  sw_01 = digitalRead(s01);
  sw_02 = digitalRead(s02);
  sw_03 = digitalRead(s03);
  sw_04 = digitalRead(s04);
  sw_05 = digitalRead(s05);
  sw_06 = digitalRead(s06);
  sw_07 = digitalRead(s07);
  sw_08 = digitalRead(s08);
  sw_09 = digitalRead(s09);
  sw_10 = digitalRead(s10);
  sw_11 = digitalRead(s11);
  sw_12 = digitalRead(s12);
  sw_13 = digitalRead(s13);
  sw_14 = digitalRead(s14);
  

  // change product
  if (sw_02 == HIGH) {
    chkon = true;
    ledON(productIdx);
  }else{
    if (chkon)
    {
      productIdx++;
      if (productIdx > 3) productIdx = 0;
      EEPROM.write(0, productIdx);
      chkon = false;
    }
    ledON(productIdx);
  }
  
  if (sw_01 == HIGH) {    
    canWorking_01 = true;
  }else{
    digitalWrite(13, HIGH);
    if (canWorking_01)
    {
      press_S01(productIdx);
      canWorking_01 = false;
    }
  }
  if (sw_03 == HIGH) {   
    canWorking_03 = true; 
  }else{
    digitalWrite(13, HIGH);
    if (canWorking_03)
    {
      press_S03(productIdx);
      canWorking_03 = false;
    }
  }
  if (sw_04 == HIGH) {
    canWorking_04 = true;     
  }else{
    digitalWrite(13, HIGH);
    if (canWorking_04)
    {
      press_S04(productIdx);
      canWorking_04 = false;
    }
  }
  if (sw_05 == HIGH) {  
    canWorking_05 = true;    
  }else{
    digitalWrite(13, HIGH);
    if (canWorking_05)
    {
      press_S05(productIdx);
      canWorking_05 = false;
    }
  }
  if (sw_06 == HIGH) {    
    canWorking_06 = true;  
  }else{
    digitalWrite(13, HIGH);
    if (canWorking_06)
    {
      press_S06(productIdx);
      canWorking_06 = false;
    }
  }
  if (sw_07 == HIGH) {  
    canWorking_07 = true;    
  }else{
    digitalWrite(13, HIGH);
    if (canWorking_07)
    {
      press_S07(productIdx);
      canWorking_07 = false;
    }
  }
  if (sw_08 == HIGH) {    
    canWorking_08 = true; 
  }else{
    digitalWrite(13, HIGH);
    if (canWorking_08)
    {
      press_S08(productIdx);
      canWorking_08 = false;
    }
  }
  if (sw_09 == HIGH) {  
    canWorking_09 = true;   
  }else{
    digitalWrite(13, HIGH);
    if (canWorking_09)
    {
      press_S09(productIdx);
      canWorking_09 = false;
    }
  }
  if (sw_10 == HIGH) {    
    canWorking_10 = true;   
  }else{
    digitalWrite(13, HIGH);
    if (canWorking_10)
    {
      press_S10(productIdx);
      canWorking_10 = false;
    }
  }
  if (sw_11 == HIGH) {    
    canWorking_11 = true;   
  }else{
    digitalWrite(13, HIGH);
    if (canWorking_11)
    {
      press_S11(productIdx);
      canWorking_11 = false;
    }
  }
  if (sw_12 == HIGH) {    
    canWorking_12 = true;  
  }else{
    digitalWrite(13, HIGH);
    if (canWorking_12)
    {
      press_S12(productIdx);
      canWorking_12 = false;
    }
  }
  if (sw_13 == HIGH) {    
    canWorking_13 = true;  
  }else{
    digitalWrite(13, HIGH);
    if (canWorking_13)
    {
      press_S13(productIdx);
      canWorking_13 = false;
    }
  }
  if (sw_14 == HIGH) {    
    canWorking_14 = true;  
  }else{
    digitalWrite(13, HIGH);
    if (canWorking_14)
    {
      press_S14(productIdx);
      canWorking_14 = false;
    }
  }

	delay(10); //5 second delay between each signal burst
}

void press_S14 (int idx) // vol -
{
  switch (idx) {
  case 0:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DFC03F,32);   // tv vol -
    break;
  case 1:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x807F06F9,32);  // tv box vol -
    break;
  case 2:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x1FE42BD,32);  // BTV box vol -
    break;
  case 3:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x40BFD02F,32);  //  spk vol -
    break;
  default:
    // statements
    break;
  }
}

void press_S13 (int idx) // chnl -
{
  switch (idx) {
  case 0:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DF807F,32);   // tv chnl -
    break;
  case 1:
    //for (int i = 0; i < 1; i++) irsend.sendNEC(0x807F18E7,32);  // tv box vol +
    break;
  case 2:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x1FE827D,32);   // Btv chnl -
    break;
  case 3:
    //for (int i = 0; i < 1; i++) irsend.sendNEC(0x40BF50AF,32);  //  spk vol +
    break;
  default:
    // statements
    break;
  }
}

void press_S12 (int idx) //vol +
{
  switch (idx) {
  case 0:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DF40BF,32);   // tv vol +
    break;
  case 1:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x807F18E7,32);  // tv box vol +
    break;
  case 2:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x1FEC23D,32);   // Btv vol +
    break;
  case 3:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x40BF50AF,32);  //  spk vol +
    break;
  default:
    // statements
    break;
  }
}

void press_S11 (int idx) // chnl +
{
  switch (idx) {
  case 0:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DF00FF,32);   // tv chnl +
    break;
  case 1:
    //for (int i = 0; i < 1; i++) irsend.sendNEC(0x807F58A7,32);  // tv box
    break;
  case 2:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x1FE02FD,32);   // Btv chnl +
    break;
  case 3:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x40BF906F,32);  //  spk bt esc
    break;
  default:
    // statements
    break;
  }
}

void press_S10 (int idx) // down
{
  switch (idx) {
  case 0:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DF827D,32);   // tv down
    break;
  case 1:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x807F58A7,32);  // tv box down 
    break;
  case 2:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x1FE52AD,32);   // Btv down
    break;
  case 3:
    //for (int i = 0; i < 1; i++) irsend.sendNEC(0x40BF20DF,32);  //  
    break;
  default:
    // statements
    break;
  }
}

void press_S09 (int idx) // right
{
  switch (idx) {
  case 0:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DF609F,32);   // tv right
    break;
  case 1:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x807F0AF5,32);  // tv box right 
    break;
  case 2:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x1FE32CD,32);   // Btv right
    break;
  case 3:
    //for (int i = 0; i < 1; i++) irsend.sendNEC(0x40BF20DF,32);  // tv box up 
    break;
  default:
    // statements
    break;
  }
}
void press_S08 (int idx) // ok
{
  switch (idx) {
  case 0:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DF22DD,32);   // tv ok
    break;
  case 1:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x807FC837,32);  // tv box ok 
    break;
  case 2:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x1FE629D,32);   // Btv ok
    break;
  case 3:
    //for (int i = 0; i < 1; i++) irsend.sendNEC(0x40BF20DF,32);  // tv box up 
    break;
  default:
    // statements
    break;
  }
}

void press_S07 (int idx) // arrow left
{
  switch (idx) {
  case 0:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DFE01F,32);   // tv left
    break;
  case 1:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x807F8A75,32);  // tv box left 
    break;
  case 2:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x1FED22D,32);   // Btv left
    break;
  case 3:
    //for (int i = 0; i < 1; i++) irsend.sendNEC(0x40BF20DF,32);  // tv box up 
    break;
  default:
    // statements
    break;
  }
}
void press_S06 (int idx)
{
  switch (idx) {
  case 0:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DF02FD,32);   // tv back
    break;
  case 1:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x807F9867,32);  // tv box back 
    break;
  case 2:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x1FE728D,32);   // Btv back
    break;
  case 3:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x40BF20DF,32);  // spk OPT 
    break;
  default:
    // statements
    break;
  }
}

void press_S05 (int idx) // arrow up
{
  switch (idx) {
  case 0:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DF02FD,32);   // tv up
    break;
  case 1:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x807F6897,32);  // tv box up 
    break;
  case 2:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x1FE926D,32);   // Btv up
    break;
  case 3:
    //irsend.sendNEC(0x40BFA05F,32);  
    break;
  default:
    // statements
    break;
  }
}

void press_S04 (int idx)
{
  switch (idx) {
  case 0:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DFD02F,32);   //외부입력
    break;
  case 1:
    //for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DF10EF,32);   
    break;
  case 2:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x1FE40BF,32);   // Btv home
    break;
  case 3:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x40BFA05F,32);   // blue tooth
    break;
  default:
    // statements
    break;
  }
}

void press_S03 (int idx) // power
{

  irsend.sendNEC(0x2DFD02F,32); // tv 외부입력
  // S03 번은 편의를 위해 항상 외부입력으로 동작한다
  /*
  switch (idx) {
  case 0:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DF10EF,32);   // tv power
    break;
  case 1:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x807F02FD,32);   // tv box power
    break;
  case 2:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x1FE807F,32);   // Btv power1 
    break;
  case 3:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x40BF807F,32);   
    break;
  default:
    // statements
    break;
  }*/
}
void press_S01 (int idx) //  S01
{
  Serial.println(productIdx);
  switch (idx) {
  case 0:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x2DF10EF,32);   
    break;
  case 1:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x807F02FD,32);   
    break;
  case 2:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x1FE807F,32);   
    break;
  case 3:
    for (int i = 0; i < 1; i++) irsend.sendNEC(0x40BF807F,32);   
    break;
  default:
    // statements
    break;
  }
}
void ledON (int idx)
{
  digitalWrite(L00, LOW);
  digitalWrite(L01, LOW);
  digitalWrite(L02, LOW);
  digitalWrite(L03, LOW);
  switch (idx) {
  case 0:
    digitalWrite(L00, HIGH);
    break;
  case 1:
    digitalWrite(L01, HIGH);
    break;
  case 2:
    digitalWrite(L02, HIGH);
    break;
  case 3:
    digitalWrite(L03, HIGH);
    break;
  default:
    // statements
    break;
  }
}

 

 

이상으로 아두이노 만능 리모컨 만들기를 마칩니다. 

 

반응형
반응형

해외여행시 첫번째로 잊지 말아야하는 요소가 바로 환전이 아닐까 싶은데요, 이번에 베트남을 다녀오면서 저역시 환전을 어떻게 할 것인가로 고민을 좀 했습니다.

베트남을 다녀오신 분들은 아시겠지만 원화에서 바로 베트남 동으로 환전하는 것이 효율적이지 않으므로 달러로 환전한 후 베트남 공항 등에서 동으로 환전을 하실텐데요. 환전소마다 수수료도 다르고 요율이 달라 실갱이가 있는 경우도 있고 이곳 저곳 정보를 찾느라 고생이시리라 생각됩니다. 사실 공항 환전소는 별로라고 알고 있고 저역시 2년전에 다녀오면서 좋지 않은 기억이 있습니다. 

오늘 소개해 드릴 정보는 바로 위와 같은 고민을 없애줄 수 있는 괜찮은 아이템을 찾아 소개해 드릴까 합니다.

트레블 월렛 (Travel walet )

직역해보자면 여행 지갑 정도 되겠네요.

관련한 장점이 많이 인터넷에 소개되어 있으니 중요한 내용, 사용 방법만 작성하겠습니다.

사전 준비

  • 출국 1주일 전에는 가입하자!
  • 실물 카드를 반드시 신청하여 발급 받는다. (3~5일 소요)

 

장점

  • 원 > 달러 > 동 의 절차 없이 원 > 동 으로 바로 환전 가능
    • 이중 수수료 지출 불필요
    • 원 > 동 환율만 적용 받음
  • 실물 카드를 이용하여 현지 ATM (visa) 기계에서 바로 출금 가능 
    • 별도 환전소 이용 불필요
    • 현금 인출 수수료 없는 경우도 있음 (good!)
  • 필요한 만큼만 그때 그때 환전하여 출금 가능
  • 실물 카드를 이용하여 매장에서 바로 결재 가능

 

환전 (충전) 방법

앱을 이용하여 바로 베트남 동을 충전 할 수 있는데요, 저는 일단 500만동을 충전 하였습니다. 달러 환전 없이 바로 동으로 환전하기 때문에 현재 원 -> 동 환율의 영향을 받기 때문에 환율이 쌀때 충전을 하면 보다 효과 적이라는 것을 알 수 있습니다.

베트남 동 충전 방법

구글에서 블로그 글 작성 시점인 2022년 8월 2일 현재 환율을 검색해 보면 아래와 같습니다.

실제 환율

실제 환율로 500만동을 원화로 해보면 278,700 원이라는 것을 알 수 있습니다. 살때, 팔때 수수료가 붙는 것을 고려해 보면 트레블 월렛에서 280,500 이라는 수수료를 포함한 금액이 매우 저렴한 것을 알 수 있습니다.

반응형

 

현금 인출 방법

  1. ATM 기계 찾기 (구글 맵 등)
  2. VISA 카드 지원이 되는 기계인지 확인, 실제 은행에서 운영하는 ATM 기계 추천
    1. 은행에서 운영하는 ATM 기계인 경우 수수료가 없는 경우도 있음
  3. 카드 입력
  4. 사용 언어를 English 선택
  5. 비밀번호 입력
  6. Cash Withdrawal 선택 
  7. Default Account 선택 (없는 경우 Current Account)
  8. 찾을 금액 입력
  9. 영수증 받을 것인지 확인
  10. 현금 인출 완료

사진으로 보면 아래와 같습니다. (사진이 깨끗하지 않아 죄송합니다)

 

저는 다낭 한시장 근처에 있는 크록스 매장 (VuiVui shop) 맞은 편에 있는 SBC 은행 ATM 기계를 이용하였습니다.

(참고로 달러 -> 동 환전시에도 한시장 금은방이나 공항 환전소 보다 SBC 은행이 훠~~~얼 씬 저렴합니다.)

트레블 월렛 실물 카드

 

카드를 먼저 삽입 합니다.
언어를 영어로 선택
카드 확인중
비밀번호 입력 후 Enter 버튼 눌러줍니다
Cash Withrawal 선택
Default Account 선택
원하는 금액이 없으면 Other Amount 선택
테스트를 위해 30만동 입력
돈을 받으라는 메시지
예스! 돈 찾기 성공
영수증은 안받는 걸로~

 

폰으로 바로 인출 결과 확인 가능

 

 

어렵지 않죠? 

이번 인출에는 수수료 없이 30만동이 인출된 것을 확인할 수 있습니다

 

저의 경우 처음 사용 시 계정을 어떤 것을 사용할 것인지 묻는 창에서 좀 혼란 스러웠는데요, 위 7번에 소개한 것처럼 Default Account 또는 Current Account 로 선택하시면 됩니다. 다른 트레블 월렛관련 페이지에 그런 내용이 없어 좀 혼란 스러웠습니다.

시도해보시고 위의 계정이 동작 하지 않는다면 그냥 다른 기계로 바로 가시면 됩니다.

 

참고로 베트남 입국 시 공항에서 빠져 나오면 왼편에 환전소가 있는데요, 오른쪽에는 ATM 기계가 바로 있습니다. HSBL 은행 ATM 기계로 200만 동을 인출했을 때 5만동이 수수료로 나왔고요, 45만동을 인출할때는 수수료가 없었습니다. (why??)

 

총 500만동을 충전 했고 490만동을 찾을 수 있었습니다. 아마 일요일이어서 수수료가 붙은 것인지 모르겠습니다.

환전에 비하면 수수료가 비싼 편은 아니라고 생각되지만 개인적인 생각으로는 입국 시 평일이 아니라면 한번만 인출을 한 뒤 평일에 은행 ATM 기계에서 수수료 없이 인출을 하는 것이 최선일 것이라 생각됩니다.

 

또한 인출 수수료는 은행 ATM 기계마다 차이가 있는 것 같습니다. 평일 낮에 SCB 은행에서는 30만동, 5만동 등 소액을 찾아 보았는데 둘다 수수료가 없었으나 다른 지역의 은행 (CN QUANG NAM) ATM 기계에서는 200만동을 찾을 때 49,500 동이 수수료로 나왔습니다. 아마 은행 업무 날짜나 시간 등에 영향을 받는 것일 수도 있습니다. 권종에 따른 수수료가 있는지도 모르겠습니다. 

어떤 기계는 10만동 미만의 지폐는 취급을 하지 않는 기계도 있었으니 참고 바랍니다.

 

환전한 돈이 남았다면 다시 원화로 환불 가능

끝으로 여행을 마치고 79,500 동이 트레블월렛 카드에 남았는데요. 남은 동은 다시 원화로 환불할 수 있어 해보니 4,412원으로 환불이 되었습니다. 팔때 환율로 바로 환불이 된 것인데요. 여행에서 남은 금액을 거의 손해 없이 환불 받을 수 있는점도 아주 좋은것 같습니다.

최종 환불된 금액

 

저도 사용해 보기 전엔 좀 걱정이었습니다. 특히 베트남 동의 경우 달러로 1차 환전한 뒤 베트남 동으로 환전하는 것이 일반 적이다보니 환전 수수료가 이중으로 나가는게 상당히 불편하고 부담스러웠고요, 요즘처럼 달러 환율이 높은 경우는 더더욱 그랬습니다.

그런데 트레블 월렛을 사용해 보니 너무 편리하고 수수료도 저렴하며 그때 그때 현지에서도 부족하면 바로 충전하여 인출할 수 있다는 큰 장점이 있어 여행시 여행 경비에 대한 계획에 좀더 자유로울 수 있다는 점과 visa 카드 가맹점에서 직접 결재가 가능하므로 트래블 월렛 실물 카드 이용시 국내 카드 수수료를 이중으로 지출할 필요가 없다는 점도 아주 큰 매리트 인것 같습니다. 

 

이상으로 본 포스팅을 마칩니다.

혹시 잘못된 내용이 있다면 뎃글로 남겨주시면 수정하도록 하겠습니다.

 

코로나 관련하여 베트남 여행시 알아야 할 내용은 아래 포스트에 작성되어 있으니 참고 부탁드립니다.

2022.08.07 - [여행] - 해외여행 정보 - 베트남 여행 정보 (2022.07 위드코로나 이후)

 

해외여행 정보 - 베트남 여행 정보 (2022.07 위드코로나 이후)

코로나로 인해 해외여행은 생각지도 않았는데 어느덧 상황이 좋아지고 (어쩌면 그냥 감수하고) 해외 입국을 허용한 베트남에 다녀왔습니다. 코로나로 인해 해외 여행에 어려움이 있는 분들을

diy-dev-design.tistory.com

 

반응형
반응형

코로나로 인해 해외여행은 생각지도 않았는데 어느덧 상황이 좋아지고 (어쩌면 그냥 감수하고) 해외 입국을 허용한 베트남에 다녀왔습니다.

코로나로 인해 해외 여행에 어려움이 있는 분들을 위해 제가 경험한 관련 절차를 적어보려 합니다.

여행 준비하시는 분들께 도움이 되기를 바랍니다.

 

전반적인 과정은 아래와 같으며 제가 여행한 시기(2022,07/31~2022,08/05)에 한정되므로 검역 및 질병 관리 정책 등이 바뀜에 따라 내용은 달라질 수 있습니다.

  1. 항공권 구입 (코로나 이전 대비 별도 조치 필요 없음)
  2. 환전 (트레블 월렛 설치, 실물 카드 받기https://diy-dev-design.tistory.com/208
  3. 베트남 입국 시 여행자 보험 필요 하다고 함 > 가입 ( 하지만 별도 검사, 확인 과정 없음 )
  4. 인천공항을 통해 출국 (2022,07/31)
  5. 베트남 (다낭) 입국 ( 코로나 관련 문의, 서류 필요 없음 )
  6. 호텔 체크인 ( PCR 음성 확인서 필요 없음 )
  7. 여행지 내 어떤 곳도 코로나 관련 검사, 확인 없음
  8. 다낭 국제 공항을 통해 출국 (2022,08/05)
    1. 다낭 국제 공항 입구 좌우측으로 신속 항원 검사 시행중 (무료)
    2. 여권 보여주고 (여권 첫페이지 사진찍음) 검사 후 대기
    3. 10분 정도 지난 후 음성인경우 확인서 발급해 줌
  9. 항공기 탑승
  10. Q 코드 홈페이지를 통하여 검역정보 입력 (https://cov19ent.kdca.go.kr/cpassportal/)
  11. 하지만 Q 코드에서 검역 정보를 미리 입력하지 않은 경우도 문제없음
    1. 항공기 내에서 나누어 주는 노란색 검역 관련 서식 작성 (여권번호, 여행국, 증상 관련 정보)
    2. 입국장 진입 후 국내 입국 전 검역정보 제출 및 담당자 확인 (Q코드 입력자는 자동시스템 사용)
      (저는 수기입력 진행하였으며 Q 코드 사용자가 대부분이어서 사실 담당자 확인이 속도가 빨랐습니다)
    3. 여권에 PCR 검사 필요 스티커 부착
  12. 입국심사 (코로나 관련 별도 문의 없음)
  13. 입국 후 다음날 보건소 방문. 여권 보여주며 해외 입국자라고 하면 무료 PCR 검사 가능
  14. 익일 문자 메시지로 음성 결과 전송
  15. Q-code 홈페이지에서 '입국 후 검사등록' 으로 이동하여 관련 정보 입력
    1. 음성인 경우 메시지 화면 캡쳐후 파일로 등록

     

 

여기까지가 모든 과정이었습니다.

저도 출국 전 많은 걱정이 있었고 고민도 많았으나 생각보다 절차가 복잡하지 않았고 큰 문제 없이 진행이 잘 되었습니다.

호텔 예약시 PCR 음성 확인서가 체크인시 필요하다는 내용이 있어 직접 호텔로 문의 해 보았으나 필요없다는 답변을 받았고 베트남 관광청에서 입국시 여행자 보험이 필요한 것으로 나와있었지만 베트남 입국시 사실 별도의 확인 과정이 없이 기존 코로나 이전처럼 입국이 가능했습니다. 

 

베트남 국민들은 사실 코로나로 인한 생활에 큰 차이가 있는지 모를 정도로 외부에서는 마스크를 착용하지 않은 분들이 대부분이었고 실내에서 일하는 서비스 직 인원들 정도만 마스크를 착용하고 있었습니다. 호이안과 오행산등의 여행지에서도 코로나로 인한 어떤 제약이나 제지 없이 관광이 가능했습니다.

 

2년 전에 다녀온 베트남에 비하여 크게 변한게 없는 것을 보며 관광으로 큰 경제 수혜를 보는 다낭인 만큼 코로나로 인해 많은 부분에 타격이 있었음을 느낄 수 있었습니다. 그래서인지 공항에서 무료로 신속 항원 검사를 해주는 등 더욱 적극적으로 외국 관광객을 유치하려고 노력하는 것처럼 보였습니다. 사실 베트남에서 국내 입국시에도 별도 기관에서 PCR 검사를 받을 필요가 없다는 점도 요즘 같은 시기에 여행의 부담을 줄여주는 좋은 제도라고 생각 됩니다.

 

여전히 베트남은 관광객에게 친절하고 소박한 나라였고 저렴하고 맛있는 음식들이 많은 멋진 휴양지임은 달라지지 않았습니다. 

 

여행의 과정이 코로나 이전에 비하여 생각보다 어렵지 않았고 부담스러울 것도 없었으므로 길고긴 코로나 여파로 지친 몸과 마음을 즐거운 여행으로 달래보시길 바랍니다.

 

베트남 동 환전 관련한 트레블 월렛 사용기, ATM 인출 방법은 아래 포스트를 참고해 주세요

2022.08.07 - [여행] - 트레블 월렛 사용후기 - 베트남 여행

 

트레블 월렛 사용후기 - 베트남 여행

해외여행시 첫번째로 잊지 말아야하는 요소가 바로 환전이 아닐까 싶은데요, 이번에 베트남을 다녀오면서 저역시 환전을 어떻게 할 것인가로 고민을 좀 했습니다. 베트남을 다녀오신 분들은 아

diy-dev-design.tistory.com

 

반응형
반응형

저는 가전제품을 오래 사용하기로 유명합니다.

뭐 그런걸로 널리 이름을 알렸다는 유명은 아니고,,, 우리 가족안에서 그냥 하는 말입니다. 

제가 손 덴 제품은 고장난것도 고쳐지는 것이 다반사고요... 남들은 2년 3년만에 고장나서 버리는 보통의 전자제품도 5년 ~ 10년 까지도 사용하는 일이 흔하기 때문인데요.

가장 큰 이유는 바로 제품의 관리가 아닐까 생각해 봅니다.

사실 그저 제품을 잘 닦아주고 틈틈히 청소해 주는 정도의 관리만으로도 대부분의 제품은 수명이 훨씬 길어지는것 같습니다.

오늘은 샤오미 미지아 무선 청소기를 관리하는 방법을 소개해 드릴까 합니다.

 

사용하다보면 먼지통이 꽉 차고 지저분해지는 것은 물론이고 어느날인가 부터 흡인력이 너~~ 무 약해지지 않으셨던가요?

흡입력이 약해져 청소기로써의 성능이 무의미해지는 순간 버려지는 경우가 많더라고요.

그런데말입니다.

흡입력은 그저 필터만 깨끗이 청소해주어도 거의 초기상태로 돌아온다는 것을 아시나요?

 

 

자 오늘은 무선 청소기를 관리하는 (청소하는) 것을 보여드리겠습니다.

 

먼저 제일 먼저 더러움이 눈에 보이는 청소용 브러쉬 입니다.

흡입구에 있어 집안의 각종 먼지와 오물을 가장 먼저 만나는 부분이다 보니 지저분해지기 쉽습니다.

정말 더러운 청소기 해드

 

더럽네요. 집안 청결의 수호신이라 믿습니다.

하지만 저정도로 더러우면 이쯤이면 더러움을 전파하고 다닐것 같은 느낌이네요.

 

헤드 브러쉬 분해 완료

한쪽 끝부분에 빨간 레버를 당기면 잠금장치가 열립니다.

그런다음 잠금 장치가 있는 부분부터 위로 들어 올리며 빼네면 청소용 브러쉬가 빠지게 됩니다.

 

안쪽의 사이클론 집진 장치를 분해한다

 

내부의 먼지 필터도 빼냅니다.

바닥면 뚜껑을 열고 손으로 잡고 돌려주면 쉽게 빠집니다.

먼지가 많이 날 수 있으니 살살 합니다.

저는 1주일에 한번 정도 저 사이클론 필터를 청소해 주기 때문에 많이 더럽지는 않네요.

 

사이클론 장치 내부에 미세 먼지가 가득하다. 살살 열고 꺼낼 것

하지만 그럼에도 내부에는 미세 먼지들이 가득합니다.

최종 헤파필터의 수명 연장을 위해서도 자주 청소해 주는게 좋습니다.

 

요렇게 잡으시면 되고요

 

제품 상단에는 헤파필터가 들어있고요. 제 손모양으로 잡고 돌려주면 헤파필터가 빠집니다.

 

윗부분을 돌려서 열어줍니다.

요렇게요.

 

헤파필터에 끼워져 있는 스펀지 필터.

빼내보면 내부에 스펀지 필터가 한겹 들어있는데 대부분 머리카락 같은 가벼운 이물질이 끼게 됩니다. 

무론 청소를 주기적으로 하지 않아 몇개월 씩 방치해두었다면 스펀지 필터며 헤파필터 역시 머지가 가득할거에요.

흐르는 물로잘 헹구어 주면 됩니다.

 

참고로 헤파 필터는 물로 씻어어 사용해도 잘 말려서 사용하면 아무런 문제가 없습니다.

저는 매주 청소를 해주기 때문에 헤파필터는 이번에 청소하지 않았지만 헤파필터 내부에 먼지가 끼어있는 것이 보일 정도면 물로 깨끗이 행구어 주는 게 좋겠습니다.

워터픽같은 구강 청소용 제품이 있다면 헤파필터 내부의 틈틈이 끼어있는 먼지 제거에 아주 효과적이니 참고하세요.

 

자 이제 더러워진 청소용 브러쉬를 세척해볼 차례 입니다.

정말 더럽!

아우 더러워... 

제가 즐겨 사용하는 가루비누를 춉춉 뿌려줍니다.

가루비누를 이용하여 세척을 진행한다.

저는 '무궁화 가루비누' 라는 제품을 사용하는 데... 음.. 오픈 마켓 같은데서 파는지는 잘 모르겠습니다. 

일단 찌든때를 빼내는데 탁월한 효과가 있고 헹굼이 빠르게 되는 장점이 있어 매우매우 애정하는 아이템 입니다.

 

구정물이 펑펑 나오는 청소용 브러쉬. 실제로는 훨씬 심했음

손으로 부비부비 해서 빨아주고 행구어 줍니다.

 

두어번 만에 깨끗하게 빨아진 청소용 브러쉬

두번 정도 빨아주었더니 땟갈이 아주 그냥 새것 같습니다.

공기청정기는 아주 쓸만한 건조기임

이렇게 세척한 필터와 브러쉬를 저는 주로 공기청정기 위에서 말립니다.

24시간 바람이 쉬지 않고 나오고 있고 적어도 저곳으로 나오는 바람은 먼지 없는 깨끗한 바람일테니 재오염도 안될거고요, 무엇보다 실내 습도 조절에도 효과가 있을 것이므로 아주 좋은 건조방법이라 생각됩니다.

참고로 실제 마르기도 아주 빨리 마른답니다.

저는 운동화 같은거 빨고난뒤 말릴때도 항상 저곳에 올려두고 말립니다. 하루저녁이면 싹 마르거든요.

 

참고로 볕이 좋다면 적당히 건조된 각종 부품들을 햇볕에 말려주는 것도 좋겠습니다. 아무래도 세균을 없애는데 일광 소독만큼 안전하고 확실한 방법은 없을 테니까요.

 

 

자 이제 브러쉬와 필터가 마를 동안 해드를 청소해 봅니다.

정말 더러운 내부 청소를 위한 물티슈. 뒷광고 아니고요~ 집에서 사용하는 일반 물티슈 입니다.

먼저 물티슈로 지저분한 먼지들을 최대한 제거합니다.

어후 더러워.. 

물티슈만으로도 깨끗해진 해드 내부

물티슈 만으로도 제법 깨끗하게 정리가 되었습니다.

 

가구와 부딪혀 생긴 오염물은 물티슈로 잘 지워지지 않는다. 그럴땐 오븐 클리너 출동!

외부에 이런 흔적들은 가구같은 곳에 부딪히며 오염이 된 것인데요. 보통의 물티슈나 걸레 등으로는 잘 닦이지 않습니다.

저는 오븐 클리너를 청소포에 적셔 살살문질러 닦아 줍니다.

대부분의 오염물을 싹 닦이게 됩니다.

 

그렇게 시간이 흘러 흘러 

 

 

자 한나절이 흐르고 빨아두었던 브러쉬가 말랐습니다.

새것 같아진 브러쉬. 가루비누의 힘 입니다.

쨔잔~~~

완전 새것 같죠?

 

깨끗해진 브러쉬를 다시 장착하였다

깨긋하게 닦아둔 헤드에 브러쉬를 장착해 보았습니다.

뭐 사용감이 없는 것은 아니지만 이정도면 거의 새것 같은 기분으로 사용할 수 있을 것 같습니다.

무엇보다 직접적으로 바닥을 쓸어대는 브러쉬가 깨끗해진게 제일 중요하지 않겠습니까?

 

오늘 청소의 핵심인 브러쉬 세척 전후 사진을 올리며 포스팅을 마칩니다.

세척 전후의 브러쉬

 

 

사실 저처럼 가전 제품을 관리하는 것이 아주 쉬운 일은 아닙니다. 그렇다고 어려운 일도 아니긴 하지만서도 무척 귀찮은 일이죠.

하지만 저렇게 .. 저정도로 극단적인 깨끗해짐을 맛보는 것은 정말 즐거운 일입니다.

저와 같은 기종이 아니더라도 집에 있는 청소기 한번 새것처럼 관리해보지 않으시렵니까?

 

2021.12.17 - [청소장인] - [청소장인]까맣게 타버린 냄비 손쉽게 닦기

 

[청소장인]까맣게 타버린 냄비 손쉽게 닦기

뭔가 심상치 않은 일이 일어나는 것을 직감한 적이 있으신가요? 냄비에 불을 안끄고 집을 나온 것 같은 적 있으시죠? 네 바로 그겁니다. 제가 그랬다고요. 냄비가 타버렸어요. 으악! 렌지에 낮에

diy-dev-design.tistory.com

 

2021.09.07 - [DIY] - [청소장인] 누렇게 변한 밥주걱, 낡은 가위 새것처럼 닦기 (초간편)

 

[청소장인] 누렇게 변한 밥주걱, 낡은 가위 새것처럼 닦기 (초간편)

당신의 일상에 단 하루도 빠지지 않고 사용하는 물건이 있으신가요? 핸드폰? 지갑? 요즘 재택을 하는 저에게 밥주걱이 그 중에 하나입니다. 밥을 안먹고 살 수는 없으니 밥 주걱은 늘 쓰이는 물

diy-dev-design.tistory.com

 

2021.09.14 - [DIY] - [DIY] 스타벅스 텀블러 벗겨짐, 리폼으로 해결 해 볼까

 

[DIY] 스타벅스 텀블러 벗겨짐, 리폼으로 해결 해 볼까

스타벅스에서 거금을 들여 와이프의 선물로 샀던 텀블러의 도장이 벗겨졌습니다. 헐... 싸구려 5000원 짜리였다면 어땠을까요.. 뭔가 배신 당한 느낌이었습니다. 이렇게 쉽게 벗겨지다니... 실제

diy-dev-design.tistory.com

 

반응형
반응형

딸내미가 롱보드에 관심있다고 합니다.

그럼 모다?

바로 당근을 뒤적거려 매우매우 훌륭하신 판매자 분 만남.

그리고 덜컥 구입해 버린 롱보드!

6만원이라는 저렴한 가격에 구입한 물건은 무려

클래식 보드 데크 2개, 패리스 트럭 1set, 바퀴는 뭣인지 잘 모르겠지만 70mm 짜리 6개.

당근에서 중고로 구입한 롱보드와 여분의 데크

와우

뭔가 짝이 잘 맞지는 않지만 어쨌든 롱보드 한대는 굴리는데 문제가 없겠고,

트럭도 패리스 트럭이면 아주 훌륭하며

데크도 클래식 티퍼래트 라는 양호한 브랜드의 데크를 구했습니다.
(사실 저도 잘 모릅니다만. 새상품 가격이 ㅎㄷㄷ. 좋겠죠 ㅋㅋ)

본품과 여분의 데크 모두 클래식 롱보드의 TIPHERETH 데크.

판매자님 감사합니다. OTL (감사한 마음에 스타벅스 쿠폰 드렸습니다)

물론 정확히 말하자면 롱보드 완성차 1세트에 사용하지 않는 낡은 데크를 덤으로 주신 셈이고, 바퀴도 두개를 얹어 주신 셈인데요, 브랜드 벨류를 생각하면 6만원이라는 금액은 매우 저렴한 듯 합니다.

 

어쨌든 딸내미가 정말 롱보드에 재미를 붙일지 알 수 없었기 때문에 일단 중고로 구입을 한 것인데 뜻밖에 여분의 데크를 얻게된 것은 운이 아주 좋았던것 같습니다.

 

요즘 딸내미가 원피스에 흠뻑 빠져 있었기 때문에 여분의 롱보드를 커스터마이징해서 꾸며주기로 결정 했습니다.

여분의 데크는 정말 많이 더럽고 ... 상태가 좋지 않았음

처음 가져올 때 여분의 롱보드는 외관만 보면 썩 좋은 상태는 아니었습니다. 스티커자국도 많고 여기저기 까이고 부서진곳도 있었고요, 무엇보다 상판 도색이 다 벗겨지고 해서 영 지저분한 모습이었습니다.

 

 

 

일단 작업 시작!!

스티커 자국을 칼로 긁어 날려버리고 사포질을 시작합니다.

사포질 시작!
으악! 힘들어
퀘퀘하게 죽은 나무색을 벗겨내 깨끗해진 바닥면
윗면도 이정도면 다시 태어난 듯

 

사포질에만 거의 하루를 날린 것 같네요.

이제 좀 깨끗해 졌나요?

 

자 이제 저는 이 깨끗한 보드에 나무 질감도 살릴겸, 나무의 수명도 늘릴 수 있는 좋은 방법이 없을까 고민하다가 ''을 올려 보기로 합니다.

 

이라니?? 좀 생소하신가요?

우리나라 전통 칠 재료이며 자세히 알아보면 정말 만병 통치약같은 나무의 마감 재료계의 사기템입니다.

일단 옻칠을 한 나무는 수분, 습기에 강해지고요, 썩지 않으며, 벌레가 먹지 않고, 나무의 틈틈이 먹어 들어가 굳어진 옻칠은 나무를 아주 견고하게 만들어 준답니다.

주방에서 사용하는 검붉은 주걱 같은거 그거 , 그게 옻칠한 나무 입니다.

시꺼먼 자개장 있죠? 것도 옻칠입니다. 100년이 지나도 가구가 변하지 않죠?

 

이정도면 옻칠을 하지 않을 이유가 없지 않습니까?

그래서 전통 옻을 구입했습니다.

옻칠하다가 옻 알러지가 오르는 경우가 많다던데.. 괜찮을까요..

걱정이긴 한데, 옻닭 백숙을 먹을때는 괜찮았으니 일단 주문해 봅니다.

상주합 무광! - 무슨 뜻인지는 모름. -_-;;

자 옻칠이 도착했고요. 옻칠 색감과 흉내만 낸 옻칠 스테인 아니죠. 정통 정제 옻칠입니다. -_- (가격도 꽤 합니다)

슬슬 칠해 봅니다.

니트릴 장갑을 끼고요, 끈적끈적이는 옻칠은 얇은 천에 뭍혀서 나무에 얇게 펴 발라주면 됩니다. 

최대한 얇게 바르는 것이 중요하고요, 옻칠을 하기 전에 물론 나무는 500방 이상의 고운 사포로 매~~끈하게 다듬어진 상태여야 합니다.

옻을 한번 올린 상태
색깔 너무 예쁜 전통 옻칠

자 옻칠을 한번 올린 상태입니다. 색감 너무 예쁘죠? 정말 너무너무 마음에 듭니다.

나무의 무늬가 그대로 보이죠? 원래 여러번 겹쳐 칠해서 나무표면의 강도도 올리고 옻칠 특유의 색상이 올라오게 해야 하지만 저는 이정도의 나무 질감이 보이는 것이 마음에 들어 1번만 칠해 주었습니다.

또 여기에 작업을 해야하거든요.

참고로 저는 처음 칠하는 과정에서 옻칠 건조장 같은게 있어야 하는줄도 모르고 그냥 칠했더니 세월아 네월아 마르지 않더군요. 옻은 습도 75 % 정도의 아주 습한 환경에서 잘 마른다고 합니다. 옻의 주성분이 우르시올이라는 성분이 습기와 만나 굳어진다고 하네요. 그것도 모르고 칠하고 그냥 뒀는데.. 영 마르지 않아 시간만 버렸습니다. 날씨가 건조하고 좋으면 절대 마르지 않습니다. 참고하세요. 옻칠 건조장이 없으시면 비오는 날이나 장마철에 칠하면 딱이겠습니다. 습도만 잘 맞으면 하루저녁이면 다 마른다고 합니다.

얼마후 장마철이 되고 나서야 대충 마른 듯 해서 다음 작업을 이어갈 수 있었답니다.

전 마르는데 거의 3주 정도 걸렸네요. ㅜㅜ

또한가지 에피소드는... 저렇게 칠하는 동안 아무렇지도 않았던 제가.. 적당히 마른 표면을 사포로 다듬어 주었는데.. 그때 나온 가루가 피부에 뭍은게 화근이었는데 양쪽 팔이 옻 알러지가 엄청나게 올라 고생을 좀 했었습니다. ㅋ

딸내미도 옆에서 도와준답시고 얼쩔거리다가 덩달아 옻 알러지가 올라 고생을 좀 했네요 ㅋㅋ

죽는거 아니니 큰 문제는 없겠지만... 행여나 걱정되시면 안하시는게 좋을 것 같기는 합니다.

 

 

자 . 어쨌든..  딸내미가 원피스를 좋아한다고 했었죠? 

그래서 원피스 주인공들의 현상금 수배서를 이용해서 바닥면 디자인을 해보았습니다.

적당한 이미지를 다운받은 뒤 포토샵으로 이리저리 자리 배치를 해봅니다.

 

뭔가 괜찮죠?

이걸 보드에 그린다고요? 네. 그릴겁니다.

 

 

자 이제 그려보겠습니다.

바닥면에 먼저 연필로 스케치를 합니다. 

레이웃을 그려준 뒤 캐릭터 스케치를 한다.

먼저 수배서 레이아웃을 그려넣습니다. 원래 도안과 달라져도 큰 상관 없습니다. 원래 도안이란게 뭐 첨부터 있던것도 아니고요.

 

그다음은 한칸한칸 주인공들의 모습을 그려넣어 줄거에요.

상디와 조로, 라이벌 구도이니 나란히 위치
멋진 로빈 짱도 넣어 주자.

나중에 채색은 적당히 네임펜을 이용해서 해줄겁니다. 

색칠은 네임펜으로 쓱쓱 . 먼저 칸을 그려준다.

 

이후에 수성 바니쉬를 발라주면 튼튼하게 보호될 겁니다.

 

자.. 주인공들을의 스케치가 마무리 되었으면 한땀 한땀 네임펜으로 그려나갑니다.

제일 쉬울것 같은 브룩먼저 쓱쓱
주인공인 루피도 쓱쓱
헥헥 이제 캐릭터 다 그림

일단 캐릭터는 다 그렸네요.

참쉽죠?

 

제가 특히 신경쓴 부분은 바로 상디 군의 포스터 입니다. ㅋㅋ

원작에서도 반응이 좋았던 상디군의 포스터 ㅋㅋ

아깝게도 나미 양은 트럭에 좀 가리게 될 처지에 놓였고요, 제가 좋아하는 로빈양은 가리지 않도록 잘 배치했습니다.

쵸파 네이놈. 왜 혀를 날름 거리는거뉘?

WANTED 와 같은 글자를 계속 반복해서 써야 하는 게 매우 고생스러웠고요, 캐릭터들을 그리는건 매우 재미있었습니다. 

글씨 쓰는게 그림보다 훨씬 어려웠음

자 뒷면그리는데 주말 하루 나절이 다 걸렸습니다.

사랑스런 딸내미가 자기 보드 만드는거 도와둔다며 색칠하는거 도와줌

ㅋㅋ 딸내미랑 붙어서 뒷면 그리는데 하루를 다 보냈습니다. 힘드네요.

완성된 아랫면 디자인

 

 

이제 윗판을 그릴 차례인데요, 

 

윗판은 검정색을 다 칠해준뒤 젯소를 이용해서 해적깃발을 그려줄겁니다.

근데 손으로 그리면 뭔가 지저분해질 것 같아서 시트지를 따낸뒤 스폰지로 찍어서 스텐실처럼 표현을 할 겁니다. 잘되려나 모르겠지만 그리 복잡한 형상은 아니니 걱정은 없습니다.

 

먼저 상판의 검은색을 칠하기 전 테두리 부분을 마스킹해줍니다.

테두리와 구멍부분을 마스킹해준다

 

상판 칠에는 딸내미가 또 도와 주었습니다.

열심히 칠하고 있는 딸내미

다이소에서 산 1000 원짜리 검정 페인트로 상판을 칠합니다. 

ㅋㅋ 옻칠까지 해놓고 왠 1000원짜리.. 

저나 딸내미나 옻 알러지가 올라 고생한거  생각하면 그냥 편하게 1000원짜리 페인트가 마음이 편합니다 ㅋ

요렇게 칠해진 데크를 잘 말리고 칠하고 말리고를 반복하면 이렇게 예쁜 검정색이 나옵니다.

예쁘게 잘 칠해진 데크

 

자 이게 해적 깃발을 올려야 겠죠?

먼저 해적깃발 도안을 프린드 해서 시트지 위에 붙여줍니다.

해적깃발과 원피스 로고

이렇게 붙여준 시트지를 칼로 파내야 하는데요. 

검정색 부분이 파내야 하는 부분입니다.

섬처럼 남겨진 조각이 떨어져 나가지 않도록 힘조절 하는게 관건이고요, 바닥면 종이가 완전히 뚫려서 떨어져 나가지 않도록 해야 하는 것이 중요합니다.

흰수염 해적단 해적기
흰수염 해적단과 백수 해적단 깃발 완성

일단 양쪽 끝에 붙일 두개의 해적깃발을 완성하고 보드에 찍어 보기로 하였습니다.

솔직히 중앙에 들어갈 원피스 로고는 지쳐서 파낼 엄두가 안나더라고요.

어짜피 발로 계속 밟혀서 금방 떨어질거라며 합리화를 한 뒤 중앙의 로고는 빼기로 합니다.

 

먼저 시트지 위에 또다른 시트지를 붙여야 하는데.. 허벅지 같은 맨살에 시트지를 붙였다 떼어내서 점착력을 약하게 만듭니다.

그리고 파낸 시트지위에 붙인다름 아래쪽 종이를 떼어냅니다.

요렇게요.

요렇게 하면 섬처럼 남아있는 조각들이 원위치 그대로 붙어있을 수 있게 됩니다.

요거를 보드에 붙이는 거죠.

그런다음 매직블럭 같은 스펀지에 흰색 페인트나 젯소를 붙혀서 콕콕콕콕 찍어주면 구멍 뚫린 부분만 흰색 페인트가 뭍게 되겠죠?

바로 스텐실 기법 되겠습니다.

흰수염 해적단 깃발 부분

딸내미랑 같이 찎었는데 바깥부분에도 좀 삐져 나갔군요. ㅜㅜ

완전히 마르기 전에 젖은 천으로 닦아주면 됩니다.

 

완성된 백수해적단 부분

음.. 백수 해적단 부분 페인트가 스티커에 달라붙어 조금 떨어져 나갔습니다 ㅜㅜ

옻칠위에 바로 칠한 검정 페인트가 역시 나무에 흡수된게 아니다 보니 떨어지는군요.

옻칠이 정말 방수가 확실한가봅니다. 좋은건지 나쁜건지...

 

완성된 흰수염 해적단 부분

 

흰수염 해적단 부분도 좀 지저분... 이럴려면 뭐하러 열심히 칼질을 한걸까 싶어 담배 생각이 나네요.

...

 

 

전체적으로 수성 바니쉬를 칠해서 말려줍니다. 한 두세번 정도 칠한것 같네요.

무광 바니쉬를 칠해주니 느낌이 좋습니다.

 

 

 

자 이제 트럭 장착을 해볼까?

뭐 트럭장착은 엄청 쉽습니다. 그냥 나사를 풀고 새로운 보드에 그대로 장착하면 끝. 더군다다 두개의 보드가 모두 티퍼래트 동일한 보드다 보니 뭐 신경쓸게 없네요.

기존 보드에서 바퀴를 떼어낸다
양쪽모두 떼어냈으면 새로운 보드에 이식한다

그냥 트럭을 떼어내고 붙이면 끝 입니다.

끝. 참쉽죠. 역시 나미가 좀 가리는군

딸내미 몸무게가 가벼워 킹핀 너트를 조금 풀어 주었습니다.

 

나 이제 나가볼까요?

세상에 하나뿐인 보드를 들고 서있는 우리 딸내미! ㅋ

후훗~

땔내미가 아주아주~ 마음에 들어 합니다.

세상에 하나뿐인 자기만의 롱보드라며 너~~무 좋다고 고맙다고 하네요.

아빠야 말로 땡큐베리 감사~

 

자 그럼 이제 달려볼까나!

슈슝~~ 바람을 가르며 달리는 롱보더 딸랭구

ㅋㅋ 아주 마음에 들어하는 우리 딸내미 입니다.

아직 뭐 스킬이고 뭐고 없고요. 그냥 타고 달리는게 전부입니다. 카빙을 겨우 하는 정도랄까요? 

자기는 그냥 앞으로만 가는게 재미있답니다. (무서운가봐요)

암튼 오늘도 나가서 무려 6km 나 달려주신 열정적인 딸내미

만들어준 보람이 넘쳐납니다.

 

 

자 여러분들도 세상에 하나뿐인 나만의 특별한 보드 하나 만들어 보시지 않으시렵니까?

취미를 더욱 취미로 진정 즐기기 위해 가장 필요한 것은 애정이 아닐까 생각해 봅니다. 내가하는 취미가 노동의 시간이라면, 그래서 즐겁지 않다면 그게 무슨 취미인가요. 정말 내손을 타고 태어난 결과물이 이렇게 사랑스러울 수 있는게 진정한 취미가 아닐까 생각됩니다.

 

저는 이제 트럭을 떼어낸 다른보드를 어떻게 꾸밀까 조금 고민을 해봐야 할 시간이 왔습니다.

 

즐겁고 안전한 보딩 하시길바랍니다.

 

그럼 이만~

 

2022.07.16 - [DESIGN] - [3D print] 조금 멋진 기타 행거 만들어 보기

 

[3D print] 조금 멋진 기타 행거 만들어 보기

집에 기타, 우쿨렐레, 일렉트릭 베이스 기타까지 기타 종류가 몇개 되다 보니 이녀석들을 어디 두기가 영 불편하기 짝이 없습니다. 아무래도 쉽게 보이는 곳에 두어야 자주 치게 되다보니 주로

diy-dev-design.tistory.com

 

2022.07.15 - [DESIGN] - [디자인 스케치] 아이오닉 6 왜건이 나온다면?

 

[디자인 스케치] 아이오닉 6 왜건이 나온다면?

저는 왜건을 사랑하는 운전자입니다. 인터넷에 아이오닉 6 왜건 모델 출시 계획은 없을까 해서 검색해보니 어디선가 그려 놓은게 하나 있던데.. 영 제마음에 들지 않아 직접 한번 그려봤습니다.

diy-dev-design.tistory.com

 

2021.09.14 - [DIY] - [DIY] 스타벅스 텀블러 벗겨짐, 리폼으로 해결 해 볼까

 

[DIY] 스타벅스 텀블러 벗겨짐, 리폼으로 해결 해 볼까

스타벅스에서 거금을 들여 와이프의 선물로 샀던 텀블러의 도장이 벗겨졌습니다. 헐... 싸구려 5000원 짜리였다면 어땠을까요.. 뭔가 배신 당한 느낌이었습니다. 이렇게 쉽게 벗겨지다니... 실제

diy-dev-design.tistory.com

 

반응형
반응형

집에 기타, 우쿨렐레, 일렉트릭 베이스 기타까지 기타 종류가 몇개 되다 보니 이녀석들을 어디 두기가 영 불편하기 짝이 없습니다. 아무래도 쉽게 보이는 곳에 두어야 자주 치게 되다보니 주로 거실에 두게되는데 집이 엄청 큰것도 아니어서 영 마땅치가 않더군요.

그래서 벽에 부착하는 방식으로 거치를 해야겠다 마음을 먹었습니다.

예전에 우쿨렐레 거치대를 3D 펜으로 만들어서 걸어 둔적이 있습니다.

2019.06.23 - [DIY] - 3D Pen 으로 우쿨렐레 스텐드 만들기

 

3D Pen 으로 우쿨렐레 스텐드 만들기

집에 우쿨렐레가 두개가 있어 따로 거치대를 만들었었는데 이게 바닥에 놓는 형식이다 보니 두대를 놓고나면 이래저리 자리를 많이 차지하여 여간 불편한게 아니었습니다. 그래서 이번에 우쿨

diy-dev-design.tistory.com

3D 펜으로 만들었던 우쿨렐레 벽 행거
기타와 우쿨렐레가 잘 정리가 된 모습

 

결과물을 보면 위와 같이 만들어 졌고 잘 사용하고 있었는데요. 이번에 일렉 베이스가 새식구로 들어오게 되면서 기존 기타 거치대를 차지하게 되었답니다.

우쿨렐레는 기존 만들어 놓은 것을 사용하면 되는데 이제 기타를 둘곳이 없어 새로운 행거를 하나 만들어 보기로 했습니다.

기존처럼 3D pen 으로 그려서 만들어 볼까 하다가 3D 프린터도있고 하니 좀 멋있게 만들어 볼까 하는 생각이 들어 인터넷도 둘러보며 아이디어를 좀 구상하던 중 좋은 생각이 떠올라 3D 프로그램을 열었습니다.

그리고 뚝딱 뚝딱~ 아니, 클릭 클릭 해서 요렇게 디자인을 해봤습니다.

벽 부착물 모델링 중

헤헤. 쉽네요.

아 안피곤하다.

 

 

외국보면 막 사슴 머리 박제해서 벽에 붙여놓지 않습니까? 그건 너무 잔인하자나요. 우리는 이렇게 3D 모델링을 해서 멋은 취하고 살생은 피하는 멋진 방법이 있습니다.

이걸 3D 프린터로 뽑아서 저 뿔 부분에 기타를 걸면 어떨까 하는 생각이 들었던거죠.

모델링을 마쳤으니 출력을 해봅니다.

프린터에 물려 있는건 PLA 필라멘트인데.. 내구성이 좀 걱정 되기는 하지만, 

일단 아이디어가 떠오른 순간 우리는 기다릴 수는 없지 않겠습니까?

'좋아! 빠르게 가~'

줄여서

안구 테러 방지용

좋빠가~!!

 

오~ 왠열, 프린팅이 한번에 성공했다.

 

짜잔~

왠일로 제 허접한 프린터가 정상적으로 프린팅을 해주었습니다. 

지저분한 프린터 똥들을 옆에 보이는 아트나이프로 대강 정리를 해줍니다.

 

대충 지저분한 부분을 정리한 사슴장식 모습
대충 지저분한 부분을 정리한 사슴장식 모습

 

음~ 좋네요. 하얀색이 영롱하네요.

표면도 깔끔해 졌습니다.

이제 자리를 잡아 볼까요

 

베란다 확장한 기둥 사이에 붙이면 딱 좋을 것 같아 구멍을 뚫고 석고 앙카를 끼워 넣은 뒤 고정을 해보았습니다.

벽에 부작한 모습

 

오~ 재법 모양이 나옵니다.

정말 무슨 외국에 있는 장식물 같지 않습니까? ㅋㅋ 

엄청 쪼그만 녀석이긴 하지만요.

 

자 이제 대망의~... 두구두구 기타를... 두구두구 걸어보도록... 하겠습니다!!

기타를 예상과 달리 잘 버텨주는 내 작품

 

성!!! to the 공!!

와우!!

 

 

사실 정말 부러질까봐 조마조마조마조마 하면서 타코야끼위에 가스오부시 얹듯 조심조심조심 올려놓기는 했습니다 ㅋ

우쿨렐레도 거치 가능함

 

당연히 우쿨렐레도 OK~

 

아 이거 마음에 드네요.

잘 나온것 같습니다.

시간나면 ABS 로도 뽑아서 기존 우쿨렐레 거치대도 갈아치고, 일렉 기타는.. 그냥 놔둬야겠죠? 

암튼 맘에 듭니다.

뭔가 기타 행거같은 느낌없고, 나이스하네요.

기타 3형제 사진

 

이렇게 해서 기타 3형제가 모두 자리를 잡았습니다.

아 보람찹니다.

 

끝으로 엄청난 목 근육으로 기타를 받쳐들고 있는 우리 사슴님! 사진으로 마무리 하겠습니다.

사슴머리에 기타를 올렸을 떄와 올리지 않았을때

간만에 맘에 드는 DIY 작업이었습니다.

그럼 이만~

 

2019.06.23 - [DIY] - 3D Pen 으로 우쿨렐레 스텐드 만들기

 

3D Pen 으로 우쿨렐레 스텐드 만들기

집에 우쿨렐레가 두개가 있어 따로 거치대를 만들었었는데 이게 바닥에 놓는 형식이다 보니 두대를 놓고나면 이래저리 자리를 많이 차지하여 여간 불편한게 아니었습니다. 그래서 이번에 우쿨

diy-dev-design.tistory.com

2019.11.08 - [DIY] - [repair] 3D pen 으로 빨래 바구니 손잡이 수리하기

 

[repair] 3D pen 으로 빨래 바구니 손잡이 수리하기

집에서 사용하는 여러 살림살이들 중에 비싼것을 살 필요는 없는데 디자인은 좀 예뻤으면 좋겠고 그런 것들이 있습니다. 전자제품처럼 어떤 다양한 기능이나 품질을 요구하는 게 아닌 보통의

diy-dev-design.tistory.com

 

반응형
반응형

저는 왜건을 사랑하는 운전자입니다.

인터넷에 아이오닉 6 왜건 모델 출시 계획은 없을까 해서 검색해보니 어디선가 그려 놓은게 하나 있던데.. 영 제마음에 들지 않아 직접 한번 그려봤습니다.

차량 길이는 세단과 동일하고 기본적인 캐릭터 라인 등을 최대한 살려서 물 흐르듯 떨어지는 윈도우 라인, 실루앳의 느낌은 살리고 왜건으로써의 실용성을 확보 할 수 있도록 캐빈 공간을 그려봤습니다.

이미 창문이 c필러 뒤쪽까지 이어져 있기 때문에 C 필러와 D 필러 사이에 별도의 창을 따로 두지는 않았고 트렁크쪽 창을 안쪽으로 당겨서 캐릭터 라인을 살릴겸 후방 쪽 개방감도 확보할 수 있도록 해봤습니다.

특유의 스포일러를 지붕쪽으로 배치하였고요,, 다른 디자인 요소는 최대한 원형을 살려 보았습니다.

 

아이오닉 6 세단 (원본)
내맘데로 디자인한 아이오닉 6 왜건

매끈하고 뒤쪽에 무게감이 실리는 모습이 뭔가 벨런스가 잘 맞는것 같지 않습니까?

 

툴레의 간지 폭풍 루프박스 모션 XT Alpine도 한번 얹어 보겠습니다. 

툴레 루프박스를 얹어본 아이오닉 6 왜건

저라면 요렇게 나오면 지를 것 같은데 어떠신가요?

 

아 그리고.. 뭔가 아이오닉의 정체성이 갑자기 사라진것 같아서 전변부를 아이오닉 5처럼 약간 수정해 보았습니다.

아이오닉 5의 DNA 를 조금 넣은 아이오닉 6 왜건

어떠신가요? 요런 느낌도 나쁘지 않죠?

스포티 해 보이면서도 아이오닉 5의 아이덴티티를 담고 있어 같은 아이오닉이라는 패밀리 느낌도 살릴 수 있겠고 약간은 점잔은 이미지도 있기 때문에 중년남성들에게도 좀더 어필할 수 있지 않을까 생각해봅니다.

 

참고로 기사에 보니 슈팅브레이크 형식으로 출시할 수도 있을 것 같은데요, 괜히 멋부리느라 슈팅브레이크 만들다가 정작 실용성은 놓치는 실수를 하지 않기를 바래봅니다.

 

그럼 이만~

 

2021.02.25 - [DESIGN] - [아이오닉5] 현대차에 바란다. 이런 차 만들어주면 안될까?

 

[아이오닉5] 현대차에 바란다. 이런 차 만들어주면 안될까?

어제 아이오닉 온라인 공개 라이브 방송을 봤습니다. 음... 현대차가 이제 본격적으로 칼을 갈고 있구나... 하는 마음 한 켠에는 아쉬운 마음이 사라지지 않는데요. 바로 왜건을 향한 저의 마음이

diy-dev-design.tistory.com

 

2020.06.18 - [DESIGN] - 현대차에서 이런 왜건 차량이 나온다면 ?

 

현대차에서 이런 왜건 차량이 나온다면 ?

대한민국은 정말 왜건 차량의 무덤인것 같습니다. 저는 개인적으로 해치백이나 왜건 형태의 차량을 선호합니다. 스포티해 보이기도 하고 실용적이기도 하지요. 실제로 트렁크가 달려있는 세단

diy-dev-design.tistory.com

 

반응형
반응형

오늘 소개해 드릴 내용은 엑셀 시트에 이미지 파일명과 경로가 있는 상태에서 선택한 이미지만 뷰어로 바로 확인하는 방법 입니다.

이미지가 수백개 들어있는 엑셀 시트에 이미지를 모두 붙여넣는 기능도 사용할 수 있겠지만 이미지가 매우 크거나 이미지가 수시로 업데이트 될 수도 있겠고요, 또 이미지가 너무 많은 경우 이미지를 모두 붙여 넣으면 엑셀 파일의 용량이 매우 커지겠죠.

그럴 때 사용하면 괜찮은 기능입니다.

바로 어떻게 생긴 이미지인지 궁금한 대상만 선택하여 바로 이미지 뷰어로 보는 것이죠.

 

먼저 이미지 파일명이 쭈~ 욱 들어있는 엑셀 파일을 준비하시고 스크립트를 동작시킬 단추를 하나 추가합니다.

상단을 틀고정 같은걸로 고정해 놓으면 리스트를 내려도 단추가 계속 보일 거에요.

단추를 추가하는 방법을 모르고 계시만 아래 포스트를 참고해 주세요
https://diy-dev-design.tistory.com/59

 

이미지 리스트와 단추가 준비된 엑셀

위 엑셀 리스트는 예전에 제가 폴더 내의 파일 정보를 가져오는 스크립트를 이용하여 만든 리스트 입니다.

제가 원하는 기능은 이미지 파일명을 선택하고 버튼을 누르면 윈도우에서 지정된 이미지 뷰어로 해당 파일을 열어서 보여주는 것입니다.

그럼 선택한 셀 정보를 얻어오는 스크립트가 필요하겠고 윈도우 shell 명령으로 이미지 파일을 연결하면 윈도우에서 지정한 이미지 뷰어가 이미지를 열어주겠죠?

먼저 선택한 셀 정보를 얻는 스크립트가 필요하겠죠? 여기를 참고하세요

선택한 셀에 이미지 파일명을 아래와 같이 shell 명령을 사용하면 이미지가 열리게 됩니다.

Dim wsh As Object
    
Set wsh = VBA.CreateObject("WScript.Shell")
wsh.Run imgName

 

전체 코드를 볼까요?

Sub showImage()

    Dim aSht As Worksheet
    Dim currentSelection As Range
    Dim imgExtName As String
    Dim imgName As String
    Dim curext As String
    Dim wsh As Object
    
    Set wsh = VBA.CreateObject("WScript.Shell")
    
    Set aSht = ActiveSheet
    Set currentSelection = Selection.Cells()
    
    imgExtName = ".png.jpg.jpeg.bmp.gif.webp.pct.ico...."
    
    curext = LCase(Right(currentSelection.Value, 4))
    
    If (InStr(imgExtName, curext)) Then ' 현재 선택한 셀 내용 중 이미지 확장자를 가지고 있으면
        imgName = currentSelection.Offset(0, -1).Value & "\" & currentSelection.Value
        If Dir(imgName) <> "" Then
            wsh.Run imgName
            
        End If
    Else
        MsgBox ("이미지 파일명이 들어있는 셀을 선택해 주세요")
    End If
    
End Sub

 

선택한 셀이 이미지 파일명인지 아닌지는 확장자로 검사를 하도록 했습니다. imgExtName 이라는 문자열에 이미지 확장자들을 쭈욱 넣어둔 뒤에 실제 선택한 셀의 텍스트에서 뒤에서 4글자를 떼어낸 뒤에 위에 말씀드린 문자열 중에 포함되는지를 검사하는 것이죠.

아주 정교한 방식이라고 볼 수는 없지만 간단하게 구현할 수 있는 이미지 검출 방식이라 할 수 있겠습니다.

어쨌든 이렇게 이미지 파일명이 맞는지 확인한 뒤에 앞에있는 경로명과 결합해서 해당 이미지가 실제로 존재하는 이미지 인지 추가로 확인한 뒤에 shell 명령을 통해 이미지를 열어주게 됩니다. 

저는 바로 왼쪽 옆칸에 경로가 있어 offset(0,-1) 과 같은 방법으로 연결하였지만 별도 셀에 이미지 경로가 들어있다면 해당 경로를 따로 지정해 주거나 스크립트 내에 문자열로 넣어 주셔도 되겠습니다.

이렇게 만들어진 매크로를 버튼에 연결하는 방법은

버튼을 최초 생성할때도 보였겠지만 매크로를 연결하는 메뉴가 있습니다. 단추에서 오른쪽 클릭한 다음 "매크로지정" 을 선택하면 매크로 선택창이 나타나게 되는데요, 여기서 지금 만들어준 스크립트를 선택해주면 됩니다.

매크로 지정하는 과정

 

자 이제 어떻게 동작하는지 한번 볼까요?

먼저 이미지 들이 들어있는 폴더가 있을 거고요. 만약 이미지가 아닌 셀을 선택하면 경고창을, 이미지 이름을 선택하면 윈도우 이미지 뷰어로 바로 열리게 됩니다.

선택한 이미지가 열리는 기능이 실제 동작되는 화면

 

자 간단하게 원하는 기능이 구현되었습니다.

필요하신 분들은 소스 복사하셔서 사용하시면 될 것 같고요. 잘 응용하셔서 본인의 엑셀 문서에 딱 맞는 기능으로 추가하시면 되겠습니다..

 

그럼 이만~

반응형

+ Recent posts