12월 첫주의 클쓰마쓰 느낌의 메가커피

오래간만에 포스팅을 올려봅니다~!

 

회사일에 치이다보니,, 얼마만의 포스팅인지 모르겠네요ㅠㅠ

 

이번에는 개발스러운 이야기보다는 결혼을 앞두고 이런저런 것들을 준비하면서 겪은 후기를 들려드릴까 합니다 :)

 

웨딩 준비를 하다보니 웨딩홀 예약, 스냅/스튜디오 촬영, 메이크업, 상견례, 등등 큰 일들은 다 지나갔다 생각했는데,

정작 중요한 반지를 아직 안맞추고 있었답니다...;;

 

그렇게 12월 첫 주, 월드컵 16강 경기가 있던 날 종로에서 웨딩 반지를 맞추러 다녔습니다!

 

물론, 온라인으로 이런저런 업체들을 먼저 알아보고는 제 짝꿍이 3군데를 예약해준 덕분에 투어가 시작되었죠!

- 제이버튼쥬얼리

- 나르샤쥬얼리

- 효성주얼리시티 일리아스

 

먼저 간 곳은 '제이버튼쥬얼리'였습니다.-

 

어디든 처음 가는 곳이면 기대와 걱정이 교차하는 마음이 들기 마련..!!

처음 입장 후, 반지의 디자인과 형태를 고르는 상담을 진행을 시작했는데,, 막상 여러 디자인의 반지들을 보니, 뭔가 고르기도 어렵고 내가 찾던 디자인이 뭔지 저희 스스로도 혼란스럽게 되더라구요...ㅠ

 엄청 화려한 것 부터 심플한 디자인까지 여러개를 보다보니 가격대도 너무 들쑥날쑥이고, 여러모로 판단이 어려운 상황에서 길것만 같았던 1시간의 상담이 다 지나가버렸습니다ㅠ (생각보다 시간이 정말 빨리 흘러갑니다....참고하시길..ㅋㅋ)

 

그렇게 두번째 샵을 향해 걸음을 옮겼습니다.

 

 

나르샤쥬얼리

 두번째로 간 곳은 멀지 않은 곳의 나르샤쥬얼리였습니다~! 흔히 가성비 좋은 곳이라고 들어 방문하면서 기대감이 높지는 않았습니다만,, 막상 들어가서 상담을 받아보니, 강압적이지 않고, 부담없이 상담을 해주셔서 오히려 마음이 편하긴 했습니다. (다른데서는 뭔가,,, 예산이 얼마인지를 먼저 물어보고는 이런저런 핑계(?)를 대면서 높은 가격에서 깎아내려오는 견적제안을 한답니다)

 첫번째 샵에서 어느정도 우리가 원하는 디자인의 가닥을 잡고나니, 두번째 가게에서는 '반지 올림픽'을 진행하면서 둘중에 좋은걸 킵, 아닌건 바로 탈락! 하다보니,, 마지막 반지가 골라지긴 하더라구요ㅋㅋㅋ

 

 이런저런 옵션을 적용해서 백만원 중반 선에서 최종 결정을 하게되.....ㄹ뻔 했지만, 그래도 다른 샵도 다녀오고싶어서, 다녀와서 결정하겠다고 말씀드리니, 흔쾌히 보내주시더라구요ㅋㅋㅋ 이런 쿨함이 좋았나봅니다...ㅋㅋ

최악의 일리아스(비추...)

 사실 세번째 샵은 나으샤에서 완전 반대쪽 가게인지라,, 갈지말지 고민하다 방문하게 되었습니다. 효성쥬얼리시티 지하에 위치한 일리아스는 다소 좁은 공간에서 상담이 이루어졌는데, 반지를 보기전부터 예산을 물어보시고 디자인을 보여주셨습니다. 그런데, 이전에 어느샵을 다녀왔는지 여쭤보시길래 다 얘기를 했더니, 나르샤는 가성비로 유명하고, 자기들의 퀄리티와 다르다는 얘기를 했습니다.

 보여준 반지가 신상이며, 수공예 + 속이 비어있지 않고 꽉 차있기에 확연히 다른 퀄리티고, 오래낄거면 여기서 사고, 쓰다 버릴거면(?) 나르샤에서 사라는 식으로 얘기를 해주셨다고....허허ㅋㅋ 무튼 최종 픽을 한 반지를 두고 고민고민 하다가 나르샤에 재방문 해보고 다시 알려드리겠다며 다시 나왔습니다.. (나올 때에도 딜을 자꾸 하시면서 얘기를 하시는데,, 크흐음..)

 

 또 다시 나르샤 (최종픽!!)

 다시 나르샤로 돌아와서는 최종픽 했던 반지를 보다 이게 더 깔끔해서 만족하고 계약을 진행하게 되었습니다. 그런데 문득 아까 일리아스에서 봤던 반지가 있는것 같아서 여쭤보니,, 정말로... 완전 똑같은 디자인의 반지가 있더라구요... 이때 일리아스에 정이 뚝.... 보다보니 해당 디자인은 공장에서 받아오는 디자인이고, 그닥 신상도 아니라는 말에 한번 더 충격.... 그렇게 일리아스에서 얘기하는 건 모두 비싸게 받기 위한 방법 (또는 비싸게 부른 다음 마구마구 할인을 해서 싸게 보이게 만드려는 방법) 이라는 걸 알게되었죠...

요거는 계약하고 서비스로 받은 혼주 진주 세트

 

 혹여나 다른분들께서도 이 글을 보시고 반지를 고르신다면 못해도 3군데를 정하시고, 꼭 세군대 견적을 모두 받고난 다음 정말 마음에드는 곳에서 한번 더 가격 합의를 보시길,,, 추천드립니다ㅋㅋ 물론 저희가 다이아 뙇!!! 이런 반지가 아니라, 평상시 낄수 있는 실용적인 디자인을 찾다보니 그런걸 수도 있겠지만, 그럴지언정 상담사분들의 모든 멘트를 믿지는 마시고, 조건을 다 따져보시길 바랍니다!!ㅋㅋ

웨딩반지는 아니지만, 다른 디자인으로 맘에 들었던 나르샤 반지

 

참, 개별 샵에서는 반지 사진을 못찍게합니다..(나르샤는 찍어도 된답니다ㅋㅋ) 디자인 유출 때문인지, 가격 공개가 꺼려지는지는 알 수 없지만, 그냥 이 시장 특유의 영업방식인가봅니다....ㅠ 언젠간 바뀌겠죠ㅋㅋ

 

그럼 이만,, 다음엔 정말 개발글로 돌아오겠습니다ㅎㅎ

'잡담 > Etc.' 카테고리의 다른 글

서피스 프로 펜 촉 제작  (2) 2018.05.21
사이트맵 제출용  (0) 2017.10.24
Windows 기반의 노트북 배터리 사이클 측정하기  (0) 2017.06.11
서피스 프로4 CPU 문제 해결  (0) 2017.04.06



안녕하세요~

이번 시간에는 서피스 프로와 함께 사용되는 서피스 펜의 팁(촉)을 만들어볼까 합니다.


사용해보신 분들은 아시다싶이...펜을 떨어뜨리면 굉장히 쉽게 부서지기 마련입니다ㅠ



막상 구매하려고 인터넷을 뒤져보면...



 작은 플라스틱 덩어리 하나를 사는데 저만한 돈을 지불하기란... 너무 아깝죠...

차라리 펜을 안쓰고 말지ㅠㅠ


검색을 해봐도 다른 대체할 방법은 소개가 되어있지 않더라구요,,

해외 사이트에서도 모두 정품 팁으로 교체하라는 얘기밖에;;


이가 없으면 잇몸으로!!


그래서 이번시간에는 서피스 펜의 팁(촉)을 만들어서 대체해보도록 하겠습니다.


준비물은 간단합니다!


- 가느다란 플라스틱 덩어리
(없으면 이쑤시개나 두꺼운 플라스틱을 알맞게 갈아서 쓰셔도 됩니다)


- 쿠킹호일



저는 기존에 Bamboo pad라는 와콤패드가 있었는데, 혹시나 펜 촉이 부러지면 쓰라고 여분으로 팁을 여러개 주더라구요,,

딱 두께가 알맞아서 요놈을 사용했답니다.

없으신 분들은 얼마든지 아무 플라스틱이나 대체가능합니다 :)


길이는 대략적으로 맞춰서 미리 잘라두시기 바랍니다.



실제로 서피스 펜이 동작하는데 있어 중요한 부분이 도통이 되어야한다는 것입니다.

플라스틱은 도전성이 없기때문에 쿠킹호일로 겉을 감싸줍니다.


(가느다란 쇠막대기를 쓴다면 쿠킹호일을 안감아도 될 것 같기도...??)



!! 너무많이 감싸면 팁을 펜에 끼울 때 호일이 찢어지거나 펜 안에 낄수 있으니 두바퀴 정도만 감아두셔요 !!



다 감으셨다면, 앞의 끝부분은 살짝 벗겨주세요!

끝부분까지 호일이 싸여있어도 상관은 없는데, 필기감이라던가, 추후에 호일이 찢어질 염려가 있으니

앞부분만 살짝 까주세요~



어느정도 완성이 되었다 싶으면 펜 끝부분에 본드를 이쑤시개에 묻혀

살짝만 발라서 호일이 안벗겨지도록 해주시면 끝입니다~



보시다싶이 잘써지죠??


혹시나 부러질 수 있어, 여분으로 여러개 만들어놓고나니 정말 맘이 편하네요ㅎㅎ


이상 서피스 펜(팁) 제작기 였습니다 :) 

sitemap.xml


안녕하세요~


지난번에는 샤오미의 미북 프로(Mi Book Pro)에 대해 알아봤는데요,

"

2017/10/10 - [잡담/Review] - 샤오미 미북 프로 VS 맥북 프로 성능비교

"


오늘은 샤오미의 스마트폰인 A1에 대해 알려드릴게요.



기존에 샤오미는 저가형 스마트폰을 생산하여 가성비가 좋다는 인식이 있었습니다.


네이밍은 삼성을 따라가고 외관은 애플을 따라가는 듯한 느낌이죠....


Mi 시리즈와 RedMi Note 시리즈, 흔히 홍미노트라고 불리는 시리즈가 있죠.


가격은 확실히 저렴하지만,, 안드로이드 기반의 MIUI

즉, 샤오미 자체의 커스텀 펌웨어가 올라가있어서 사용시에 불편한 점들이 많았습니다.


하지만!


이번에는 MIUI가 아니라 순정 구글 안드로이드가 올라간 A1이 출시되었습니다~


순정 구글 안드로이드라 하면 흔히들 안드로이드 레퍼런스폰 이라 부르는 넥서스 시리즈였지요.


샤오미 A1이 바로 넥서스와 같은 자리를 차지하게 된거죠~!


그럼 어떤 점들이 있는지 살펴봅시다.




# 샤오미 스마트폰 A1 구매


저는 주로 Qoo10에서 샤오미 물품을 구매하는데요, 찾아보시면 유럽판 글로벌 버젼이 있는데, 

30불 쿠폰까지 사용한다면 실 구매가가 24만원정도 되는듯 해요ㅎㅎ



배송도 1주일? 정도 걸렸던것 같아요!

설레는 맘으로 포장을 뜯었더니...



에어캡 빵빵하게 잘 포장되서 왔네요ㅋㅋㅋ



구매할때 젤리케이스도 같이 구매했는데 영 퀄리티가...ㅠㅠㅠ

케이스는 나중에 국내 사이트에서 별도로 구매하시길 추천합니다ㅋㅋ



보시는바와 같이 너무 얇아서 케이스라기보단,

양말..?같은 느낌ㅋㅋㅋㅋ



# A1의 구성품

자 그럼 구성품을 살펴봅시다.




샤오미 A1은 최신 스마트폰 답게 USB-C 타입을 지원하는 폰입니다.


다만 저가형 답게 이어폰과 같은 부수적인 악세서리는 없습니다ㅠㅠ


구성품은 A1, 충전기, USB-C타입 케이블 요 세개가 끝!


그래도 갖출건 다 갖췄고, 기기의 마감도 상당히 고퀄이라 맘에 드네요!



아래는 아이폰SE와 비교한 모습입니다.


크기는 한 손에 들고다니기 좋은 정도고,

외관은 아이폰7을 빼다박은 듯 합니다ㅋㅋㅋ


# 듀얼 유심

샤오미 폰의 장점중에 하나인 듀얼유심!!


물리적으로 유심이 2개가 들어갈 수 있어

회선이 여러개인 분들에게 굉장히 유리한 듯 합니다~



저도 여러 회선을 사용하다보니 굉장히 효율적이랍니다ㅋㅋ


두가지 번호로 착/발신이 모두 가능하고,

문자도 두 번호로 수신 발송이 가능합니다.





데이터도 어떤 유심의 데이터를 사용할 것인지도 설정이 가능하니


참 유용하죠ㅎㅎ

카톡도 가상앱을 깔면 두개 돌릴수도 있어요!



# 구글 순정 안드로이드



처음 폰을 열면 샤오미로고와 함께 구글스러운 로고들이 나타납니다.


MIUI를 쓰시던 분들은 꽤나 반가운 화면일지도 모르겠네요ㅋㅋ


다만 순정 안드로이드에서 키패드는 다소 불편한 점이 있습니다.


구글 래퍼런스 폰이다보니 Gboard라는 구글 자판기가 깔려있는데,

이놈이 한글은 아직 지원을 안하고 있어요.....큽ㅠㅠ


그래서 'Google 한국어 입력기' 나 기타 한글 입력기를 

플레이스토어에서 다운받으셔야합니다!



# 카메라 성능

12Mega Pixel의 50mm 망원렌즈와

12Mega Pixel의 26mm 광각렌즈를

사용한 샤오미 A1은 꽤나 괜찮은 카메라 성능을 가지고 있습니다.


다른 리뷰를 보면 카메라가 없다싶이 한다는 말이 많은데,


실제 사용자로써 DSLR급 카메라를 요구하는게 아니라면 충분히 괜찮습니다.


단! 조리개값이 2.2

낮에는 좋지만 밤에는 확실히 퀄리티가 많이 떨어지니...ㅠㅠ


이점은 고려하셔야 할 듯 하네요ㅋㅋ


아래 사진을 보시고 판단하시길ㅎㅎ



일반 모드



HDR 모드



야간 일반 모드...


물론 야간에도 광량이 넉넉하면 잘 찍힙니다만, 

별이라던가 작은 불빛을 찍기에는 부족하네요ㅋㅋ


그 외에도 전문가 모드가 있으니 수동초첨, 수동 노출조절 등

좀 더 디테일한 조정이 가능합니다.



이상으로 리뷰는 마칩니다~!



도움이 되셨다면 공감을 꾸~욱 눌러주세요^^

안녕하세요~


바로 몇주전에 샤오미에서 미북 프로 (Mibook Pro)를 런칭했다는 소식을 듣고 포스팅을 합니다.


올해 초(?)에는 미북 에어(Mibook Air)를 내어놓았는데, 얼마 안되서 Pro를 내어놓다니...


대놓고 Apple Macbook을 겨냥한 것으로밖에 보이질 않네요ㅋㅋㅋㅋ


실제로 외관도 그렇고, 충전 케이블 또한 USB-C 타입으로, 이번 맥북 신형과 아주 유사합니다.


자 그럼 먼저 가격부터 살펴봅시다.



#샤오미 미북 프로 (Xiaomi Mibook Pro, 15.6 Inch)


Qoo10에서 현재 판매중이구요, 쿠폰을 적용하면 실제 구매가가 \1,461,400 입니다.


꽤 비싸보이죠...? 그럼 성능을 봅시다.


Windows10 설치 + i7-8550U (8세대) + 16G 램 + 256G SSD 





유사급 맥북 프로와 비교한다면,,


거진 100만원 이상 차이가 난다고 볼 수 있겠네요...ㄷㄷ


굳이 따지자면 그래픽의 성능과 코어의 차이가 있지만, 큰 차이가 나지는 않는듯 합니다


두 기기의 차이를 한 번 살펴봅시다.




# 코어 프로세서 비교 


두 노트북에 사용된 코어는 i7으로 동일해 보이지만, 실제로 세대가 다릅니다.


맥북에는 i7-7820HQ (7세대 카비레이크, 맥북2017-mid)로, 기본 주파수 2.9GHz, 최대주파수 3.9GHz, 4코어, 8MB 캐시 메모리, 코어 내장 그래픽 Intel® HD Graphics 630, 45W 전력소모


미북에는 i7-8550U (8세대 커피레이크)로, 기본 주파수 1.8GHz, 최대주파수 4.0GHz, 4코어, 8MB 스마트 캐시 메모리, 코어 내장 그래픽은 Intel® UHD Graphics 620, 15W 전력소모


두 성능을 비교하면 그래도 맥북 코어가 좀 더 좋아보이네요ㅎㅎ


자세한 성능비교는 아래를 참조!


http://cpu.userbenchmark.com/Compare/Intel-Core-i7-8550U-vs-Intel-Core-i7-7820HQ/m320742vsm185229





# 그래픽 카드 비교


아래는 맥북 프로에 들어가는 Radeon Pro 555 그래픽과 미북 프로에 들어가는 Geforce MX150 그래픽의 비교표 입니다.


그래픽카드는 거의 비등비등하지만, Radeon Pro 555가 좀 더 좋은 성능을 낸다고 합니다~


https://technical.city/en/video/Radeon-Pro-555-vs-GeForce-MX150-mobile-GT-1030


아직 테스트가 안된 사항들이 있긴 하지만, 게임이나 미디어 작업하기에는 충분한 사양인듯 보입니다ㅋㅋㅋ


디스플레이의 경우, 맥북은 레티나 디스플레이 (4K) 라고 부르는 고해상도 디스플레이지만,


미북은 이의 절반 이에 버금가는 Full-HD (2K) 해상도의 디스플레이를 탑재하고 있습니다.







# 메모리 비교


미북 램은 DDR4 2400Hz 16G로, 맥북의 LPDDR3 2133Hz 형태의 램과 비교할때 


맥북이 낮은 전력의 램(Low Power DDR3, LPDDR3)인것을 제외하고는 비슷하다고 볼 수 있겠네요~


실제 램의 대기전력이 DDR 타입과 LPDDR타입이 많이 차이 난다고는 하는데, 


이미 코어에서 맥북 프로는 전력을 많이 사용하기때문에, 사실상 저전력의 큰 의미는 없어보입니다. 





# 오디오 성능 비교


맥북 내장 스피커에 대한 자료는 많이 없어서 찾질 못했지만, 맥북 사용자라면 스피커 성능이 우수하다는 것정도는 느끼셨을겁니다.


그러나 미북에서도 이에 못지않은 스피커를 달았더라지요ㅋㅋㅋ


하만그룹의 Infinity사 스피커를 통해 상당히 고퀄의 음질을 느낄수 있다고 합니다.


하만그룹은 산하에 상당이 고급 오디오 브랜드들을 거느리고 있는 회사로, 흔이 잘 알려진 JBL, 하만/카돈, Infinity 등이 있는데, 


메이커만 봐도 성능이 좋다는 것쯤은 알 수 있겠죠..?ㅎㅎ


기대됩니다!





# 기타 비교


그외 자잘한 성능들을 마저 비교해보겠습니다~!


하드드라이브는 SSD로, 제조사에 따라 성능이 차이가 나겠지만 체감으로는 비슷할 것으로 보입니다.


그 외 USB 포트로는




Mibook (위쪽)


USB 3.0 2개 - 일반 USB 이용 포트

USB-C 1개 - USB-C 이용 및 충전 포트

USB-C 멀티 1개 - USB 및 디스플레이 아웃풋이 가능한 포트

HDMI 포트

오디오 포트

SD카드 포트


Macbook (아래쪽)


썬더볼트3(USB-C) 4개   -  USB-C멀티커넥터와 동일한 것으로 보여집니다. 디스플레이 아웃풋이 가능한 USB-C 포트

오디오 포트



아마 맥북의 가장 골치거리였던 디스플레이 연결 포트가 없어도 HDMI로 바로 연결할 수 있는 부분이 미북의 또하나의 장점인 듯 합니다.


또한 미북에는 없는 맥북만의 장점은 터치바(Touch Bar) 인 듯 하네요ㅎㅎ


터치바에서 이것 저것 조작이 되는데, 지문인식도 된다고 합니다...ㄷㄷ

그리고 미북은 터치패드 구석에 지문인식 센서가 있어서 비슷한 느낌으로 사용할 수 있겠지요ㅋㅋㅋ




# 결론


사실상 결론이라기 보다는 위 비교를 참고하셔서 본인의 재량에 따라 선택하시면 될 듯 보입니다.


다만 주장하는 바는, 상당히 맥북의 외관과 성능을 잘 따라하면서, 


성능은 조금 떨어지더라고 가성비 측면에서 큰 강점을 보여주는 랩탑으로 보여진다는 것이죠!


저라면, 디스플레이에 영향을 많이 받지않는 시뮬레이션과 코딩을 주로 하기때문에 미북을 선호합니다.


하지만 미디어 프로세싱, 이미지 및 동영상 작업을 하시는 분들이라면 맥북을 추천드립니다.


이유는 화면 해상도나, 기타 성능들도 있겠지만, 


맥에서 운영되는 소프트웨어가 상당히 안정적이고 사용하기 쉽게 되어있기 때문이죠..!


하지만 여분의 돈만 생긴다면 전... 미북 프로...!!


이번에는 디지털 출력을 이용해 LED를 켰다 껐다만 하는 것이 아니라, 밝기까지 같이 조절하는 제어방법에 대해 봅시다!


#1 디지털 신호와 전압

흔히 디지털 신호는 0과 1의 값을 갖는다고 알려져있죠.

그럼 대체 그 0과 1의 신호는 어떻게 생긴 신호일까요?


앞선 포스팅에서 아날로그와 디지털을 간단히 설명했지만, 조금 더 명확하게 설명하자면

디지털 신호라 함은 전압 신호를 두가지 상태로만 나눠서 사용하는 경우를 말합니다.


특정 전압 이상이 되면 1, True, HIGH 상태가 되고, 특정 전압 이하면 0. False, LOW 상태가 됩니다.


이런 디지털 신호는 어느정도의 노이즈가 있어도 안정적으로 신호를 보낼 수 있기때문에 통신에 주로 사용이 됩니다.



#2 LED 밝기 제어

그럼 순수한 디지털 신호만 이용한다면 LED의 두가지 상태, 즉 On/ Off 를 제어할 수 있겠죠

 

그럼 LED의 밝기는 어떻게 조절 할 수 있을까요?


보통 밝기는 LED에 가해지는 전압에 따라 정해지게 되어있습니다.


위 회로처럼 꾸미고 나면 베터리에서 나온 전류는 스위치를 거치고 LED와 저항을 거쳐 흐르겠죠.


그렇다면 저항이 높아지면 어떻게 될까요?


상대적으로 LED에 걸리는 전압보다 저항에 걸리는 전압이 커지겠죠? 


위 회로는 저항과 LED가 직렬로 연결되어있으므로, 


i 는 LED와 저항에 동일하게 흐르지만, V=i*R 이므로, 저항(R) 이 커지면 저항에 걸리는 전압(V)도 커진답니다.


저항을 낮추면 어떨까요? 당연히 저항에 걸리는 전압은 낮아지겠죠


결국,


저항 -> 저항에 걸리는 전압 -> LED에 걸리는 전압 -> LED 밝기 감소

저항 -> 저항에 걸리는 전압 -> LED에 걸리는 전압 -> LED 밝기 증가


의 관계가 형성이 되죠!


때문에 밝기 제어를 위해서는 저항값을 바꿀 수 있는 가변저항(Potentiometer)가 필요합니다.


하지만 저항을 사용하게되면 LED를 켜는데 전력이 소모될 뿐만 아니라 가변저항에서도 에너지가 소모되겠죠?


그럼 어떻게 하면 쓸데없는 에너지 손실을 없애고 밝기를 제어할 수 있을까요...?



#3 아두이노를 이용한 디지털 LED 밝기 제어

자 우리가 가변저항을 없애고 제어를 한다면 불빛이 '켜진 경우' 와 '꺼진 경우' 두가지 상황밖에 만들수가 없습니다.


그럼 우리가 할 수 있는일은 껐다 켰다를 반복해보는거죠.


껐다 켜기를 1초에 2번, 4번, 10번, 100번, ... 빠른 속도로 껐다켰다를 하면 눈에는 어떻게 보일까요?


꺼진것 처럼 보일까요? 켜진것 처럼 보일까요? 깜빡인다는걸 인식할 수 있을까요?


사람의 눈은 흔히 초당 60번 (60Hz) 이상의 변화를 감지하기 힘들다고 하죠. 


물론 정량적으로 초당 몇번을 볼 수 있는지 아직까지는 말이 많습니다만, 


대락 수백 Hz 이상이면 사람의 눈으로는 깜빡임을 감지할 수 없습니다.


그리고 눈으로 확인했을때, 꺼진것도, 켜진것도 아닌 중간의 밝기로 보이게 됩니다.


즉, 껐다 켰다를 빠르게 반복하면 밝기가 조절된것 같은 효과를 낼 수 있다는 것 이지요.


실제로 LED 형광등으로 나오는 제품들이 이와 같은 원리를 사용한답니다.


그럼 어떤 요소가 밝기를 변화시키는 주된 요소일까요?


초당 LED를 깜빡이는 속도일까요?


아래 그림을 보시면 알 수 있습니다.



두 신호는 동일한 속도로 깜빡이는 신호입니다. 


즉 한 번 껐다 켜지는데 걸리는 시간이 동일한 신호죠.


다만 다른점은 한 주기 안에서 켜져 있는 상태의 비율(점유율)이 다릅니다.


켜져있는 상태의 폭이 다른 것이죠.


이런 형태의 신호로 하드웨어를 제어하는 방식을 


펄스 폭 변조, Pulse Width Modulation (PWM) 


라고 부른답니다.


그렇다면 어느 신호가 LED를 밝게 만들까요?


신호 1번이 LED를 더 밝게 만들것 같죠?


왜 그런지 조금만 더 구체적으로 살펴봅시다.



전압이라는 성분은 우리가 빠른속도로 껐다켜게 되면


정말 순간적으로 0V에서 5V로 변하는 것이 아니라 전압 강하와 상승에 약간의 시간이 소요됩니다.


그 한계의 순간에서 전압을 빠르게 껐다켰다하게되면


전압은 그 주기 안에서의 평균적인 값으로 나타나는것 처럼 보이게 됩니다.


때문에 주기를 변화시키게되면 전압이 변하게 되고, 이를 통해 밝기가 바뀌게 되는겁니다.


그렇다면 아두이노에서 한 번 구현을 해볼까요?



위와 같은 회로를 구성한 다음, 아두이노 IDE에서


파일 -> 예제 -> Basic -> Fade 를 여시면 됩니다.


초기 핀 세팅이 9번으로 되어있는데, 이를 13번으로 바꿔주시면 됩니다.


위 코드에서 앞서 말씀드린 PWM 신호를 생성해 주는 함수는


analogWrite( 핀번호, 주기 점유율(0 ~ 255) )


입니다. 


int led = 13;           // the PWM pin the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by

// the setup routine runs once when you press reset:
void setup() {
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // set the brightness of pin 13:
  analogWrite(led, brightness);

  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade:
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  // wait for 30 milliseconds to see the dimming effect
  delay(30);
}


코드를 업로드 하시면, 30ms 간격으로 


주기 점유율이 0, 5, 10, 15, ... , 255 까지 올라가면서 밝아지고,


끝까지 밝아진 다음에는 255, 250, 245, ... 0 까지 내려가면서 어두워 진답니다.




PWM은 이렇듯 추가적인 전자부품없이, 디지털의 방법으로 전압을 가변하는것과 같은 효과를 내줄 수 있어


다양한 방면의 신호제어에 사용이 된답니다.



이상입니다!


안녕하세요~


이번시간에는 아두이노를 통한 기초적인 제어를 배워보도록 하겠습니다.



#1 아날로그와 디지털 신호


아두이노는 크게 디지털 신호의 입력과 출력, 아날로그 신호의 입력이 가능하게 고안이 되었습니다.


디지털 신호는 흔이 0 아니면 1의 값 (0=False, 1=True)을 갖는 이진 신호 또는 논리 신호라고 합니다.

굳이 전압으로 따지자면, 0 일때는 0V의 전압이, 1일때는 5V의 전압이 출력된다고 볼 수 있죠!


그럼 아날로그 신호는 무슨 신호일까요?


디지털 신호가 0V와 5V 밖에 없다고 한다면, 아날로그 신호는 0V와 5V 사이의 그 어떤 값도 가능한 신호를 아날로그 신호라 할 수 있습니다.

즉, 0V와 5V 사이의 어떤 연속적인 값이라 보시면 됩니다.



주로 디지털 신호는 통신이나 On/Off 제어를 위해 많이 쓰이는 신호이고, 아날로그 신호는 센서의 값을 받아들일 때 많이 쓰이는 신호입니다.


그럼 디지털 신호를 어떻게 쓰는지 살펴봅시다.



#2 발광다이오드 (LED)


디지털 신호를 통해 제어하는 하드웨어중 대표적인것이 바로 발광다이오드(Light Emitting Diode, LED) 입니다. 




즉, '다이오드' 중에서 빛을 발하는 다이오드를 말합니다. 다이오드는 일정한 방향으로만 전류가 흘러가게 해주는 전자부품으로, 만약 LED의 +,-가 반대로 연결된다면 끊어진 회로와 같게 되는겁니다. 


LED의 극성을 찾을때 흔히들 다리 길이를 보고 찾으시는데, 긴쪽이 +, 짧은쪽이 -입니다. 하지만 다리를 자르고나면 극성은 어떻게 구분할까요~?


LED안을 자세히 보면 위의 그림처럼 내부 쇠막대기가 긴쪽이 있고, 짧은쪽이 있답니다. 내부 쇠막대기가 짧은쪽이 +, 긴쪽이 - 라고 생각하시면, 다리를 잘라도 극성을 구분할 수 있겠죠?



#3 LED 회로 구성


그렇다면 LED를 이용해서 회로를 구성해봅시다.


기본적인 부품으로는 전원이 될 건전지와 LED, On/Off를 가능하게 할 스위치, 그리고 LED에 걸리는 전압을 낮춰주는 저항 이 필요합니다.

저항은 330ohm 내지 1Kohm 정도 사용하면 됩니다.



위 사진처럼 회로를 꾸미고 나면 스위치를 켜고 끄는거에 따라 LED의 불빛이 켜졌다 꺼졌다 할겁니다~



#4 아두이노를 이용한 LED 제어


이번에는 아두이노를 이용해서 LED를 On/Off 해봅시다.

회로에서 전원부분과 스위치를 디지털 아웃풋으로 대체하면 회로는 완성됩니다.




자 그럼 단순하게 1초 간격으로 깜빡이게 만들어볼까요?

불을 켜려면 digital pin에 On 이라는 신호를 넣어주면 됩니다.

아두이노에서 디지털 아웃풋을 주려면 

digitalWrite(핀 넘버, 값(HIGH or LOW)) 을 넣어주면 되죠.


그럼 켤때는 

digitalWrite(13,HIGH);


끌때는

digitalWrite(13,LOW);


를 입력해주면 됩니다. 


그리고 1초라는 시간을 줘야하기때문에,


중간에 delay(1000) 를 넣어 1000ms = 1s 동안 아웃풋이 유지되게 만드는겁니다.



알고리즘을 도식화하면 위와 같이 나타내지고, 코드는 


Arduino IDE -> 파일 -> 예제 -> Basics -> Blink 에 있습니다.



// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}


위 코드를 입력하면 LED가 1초 간격으로 깜빡이는걸 확인 할 수 있죠!


이렇게 간단하게 디지털 신호의 출력만으로 특정 하드웨어의 전원을 껐다 켰다 할 수 있답니다.

다음시간에는 이 LED의 밝기를 어떻게 조절하는지에 대해 살펴볼게요~



이번시간에는 Windows 기반 노트북의 배터리 사이클을 측정해보겠습니다.


배터리 사이클은 노트북에 설치된 배터리가 몇회 방전되고 충전되었는지를 나타내주는 수치랍니다.


이러한 수치는 배터리의 수명과 직결되는데, 주로 사이클 수가 낮으면 건강한 배터리 라고 볼수 있습니다.


다만 사이클수만 볼게 아니라, 설계된 배터리의 용량과 실제 충전/방전 용량을 잘 살펴봐야겠지요ㅎㅎ


예전에는 충전기를 꽂아두면 배터리 수명이 빨리 떨어진다고 했지만,


지금은 대부분 리튬폴리머 배터리 재질이고, 회로 구성도 잘 되어있어


오히려 꽂아두면 배터리 사이클 수를 줄일 수 있다고도 합니다.


(잘은 못믿겠지만 체감상으로도 꽂아두는게 좋은듯...?)



자 그럼 확인을 해봅시다.


먼저 윈도우에서


시작 -> 실행 -> cmd


를 입력하셔서 명령 프롬트 창을 띄웁니다.


그 다음에


powercfg /batteryreport


를 입력하시고 앤터를 치세요.



그럼 아래와 같이 지정된 폴더

(여기서는 C:\Users\fkzld\battery-report.html)


에 html 파일로 저장이 된답니다.




저장된 파일을 열어보시면...!!


짜잔~



여기서 배터리 디자인 용량과 실제 충전 용량, 배터리 사이클, 배터리 이름 등등


엄청 많은 정보들을 볼 수 있답니다.



심지어 몇분 단위의 충전 / 방정 로그까지 나와서 체계적으로 관리를 할 수 있을 듯 합니다ㅎㅎ


그리고 배터리 수명을 관리해주는 프로그램인


'Battery Bar'


를 설치하시면 예상 충전시간과 방전시간이 나옵니다~


Image result for battery bar


계속 사용하면 할수록 통계를 통해 시간의 정확도가 올라간다고 하니,


꾸준히 사용해보시면 좋을듯 합니다!

'잡담 > Etc.' 카테고리의 다른 글

웨딩반지 구매 후기 - 종로 나르샤쥬얼리  (0) 2022.12.23
서피스 프로 펜 촉 제작  (2) 2018.05.21
사이트맵 제출용  (0) 2017.10.24
서피스 프로4 CPU 문제 해결  (0) 2017.04.06


안녕하세요~


이번시간에는 SD카드를 이용한 데이터 로깅 방법에 대해 알아보겠습니다.


지난 시간에서 프로세싱을 통해 아두이노의 데이터를 가시화 한것 처럼,

아두이노는 '데이터의 수집' 기능을 주로 수행한답니다.


하지만 이러한 경우에는 PC가 필수적으로 함께 있어야만

데이터를 저장 및 확인할수가 있죠.


만약에 PC가 없다면 어떻게 데이터를 저장할 수 있을까요?


바로 SD카드를 이용해서 아두이노가 수집한 데이터를

SD카드에 저장해두는 것입니다.


그럼 나중에 장치를 구동한 후, 데이터가 저장된 SD카드만 있으면

아두이노에서 측정된 데이터들을 PC에서 신호처리를 할 수 있겠죠ㅋㅋ


그럼 한번 살펴봅시다.





#1 준비물




SD 카드, SD 카드 소켓

(소켓은 리더기가 아니라 우측에 보이는 모듈입니다)



아두이노

(여기서는 Bluno Beetle을 사용했습니다)





#2 SD카드 소켓 연결



자 이제 물품을 준비했다면 아두이노와 SD카드를 연결시켜 보겠습니다~


먼저 SD카드에 데이터를 저장하기위해서는

'SPI통신'을 통해 데이터를 저장한답니다.


SPI통신은 센서모듈이나, 제어모듈 등에 흔히 사용되는 통신으로,

여기를 참고하시면 될거에요~ 


자 그럼 핀들을 각각 연결해 볼까요?


먼저 Bluno Beetle 에는 MISO, MOSI, SCK,  등의 SPI 통신 핀들이

기판에 나타나있지 않습니다.


다만 뒤집어보면 작은 박스부분에 모여있지요....


아두이노의 경우에는 10~13번 디지털 핀들이 SPI통신과 연관된 핀이랍니다.

구글에 핀배치를 검색하시고 배선하세요~!  



자 그럼 연결을 해봅시다.




아무래도 연결하는곳들이 핀헤더가 없이 기판이다보니

납땜을 하는수 밖에 없네요ㅠ


여기서 SPI 통신 외적으로 하나를 더 연결하셔야 할 부분이 있는데,

바로 Chip Select Pin 인 CS 핀 입니다.


저는 CS핀을 디지털 4번핀에 연결했어요~

디지털 핀 어디다 연결하셔도 상관없습니다ㅋㅋ





#3 배선 완료후 모듈화




자 이제 배선도 완료됐으니,


전원선도 연결하고 코딩도 넣어볼까요~?



우선 전원은 사실 5V에 구동되는 아두이노라 하더라도 

리튬 폴리머(Li-po) 베터리 1cell 로도 충분히 구동은 된답니다ㅋㅋㅋ


물론 1Cell 이면 3.7V 밖에 안되긴 하지만, 아주 장시간을 구동시킬게 아니면 상관없답니다~

다만 아날로그 인풋의 경우에는 조금 영향이 있기때문에, 

그런 경우에는 2Cell 로 써서 7.4V 전원을 Vin에다가 넣어주시면 됩니다ㅋㅋ


저는 3.7V 를 Vin에 바로 연결해서 사용했습니다.



짜잔 아무런 이상없이 잘 돌아간답니다ㅋㅋㅋ


그럼 코딩을 해볼까요~




#include <SPI.h>

#include <SD.h>

#include "Timer.h"


const uint8_t CS = 4;


const unsigned long PERIOD = 100;    //one second

Timer t;                               //instantiate the timer object


File dataFile;

int numFile;

String fileName;


int data[5] = {0,0,0,0,0};

int data2[5] = {0,0,0,0,0};

int count = 0;


void setup() {


  pinMode(LED_BUILTIN,OUTPUT);

  // put your setup code here, to run once:

  t.every(PERIOD, recording);

  if (!SD.begin(CS)) {

    return;

  }


  dataFile = SD.open("/");

  numFile = printDirectory(dataFile);


  fileName = String(numFile) + ".txt";


  Serial.begin(9600);

  Serial.println(fileName);


  dataFile = SD.open(fileName, FILE_WRITE);

  dataFile.println("Start!");

  dataFile.close();

}


void loop() {

  // put your main code here, to run repeatedly:

  t.update();


}


void recording(){

  int val = analogRead(A0);

  count = count%5;

  

  dataFile = SD.open(fileName, FILE_WRITE);


  data[count] = val;

  val = (data[0]+data[1]+data[2]+data[3]+data[4])/5;

  

  dataFile.print(val);

  dataFile.print("\t");


  Serial.print(val);

  Serial.print("\t");


  val = analogRead(A3);

  data2[count] = val;

  val = (data2[0]+data2[1]+data2[2]+data2[3]+data2[4])/5;

  


  dataFile.println(val);

  Serial.println(val);


  dataFile.close();  

  count++;

  return 0;

}



int printDirectory(File dir) {

  int fileNum = 0;

  while (true) {

    File entry =  dir.openNextFile();

    if (! entry) {

      return fileNum;

    }else{

      fileNum++;

    }

    entry.close();

  }

}



위 코드를 실행하기위해서는 Timer 라이브러리가 있어야하는데,

여기 에서 찾으시면 되요~!


좀 복잡한 코드이긴 한데, 간단히 설명하자면 아날로그 신호를 SD카드에 로깅하는 코드입니다.


앞서 언급드렸다싶이 CS핀은 아무 디지털핀에 연결하셔도 됩니다만, 

맨 위에줄에서 보이는것 처럼


const uint8_t CS = 핀 번호;


를 입력해주셔야 합니다!!


그리고 SD카드가 소켓에 장착되지 않으면 로깅이 안되고,

장착이 되었다면, 내부에 있는 파일을 스캔한 후,


"존재하는 파일갯수+1.txt"


라는 이름으로 데이터가 텍스트파일로 로깅됩니다~


PERIOD는 몇ms간격으로 데이터를 로깅하는지 세팅하는 값이랍니다.


지금은 100ms간격으로 데이터를 받아오고 있지요.


그리고 데이터자체가 워낙에 노이즈가 많아서,

5번 측정한 값의 평균을 저장하도록 만들었어요~



이정도 코드면 조금만 수정하시면

원하시는 프로젝트에 바로 사용할 수 있을거라 생각이 됩니다^^


이상!

이번시간에는 요청이 많이 들어왔던 문제를 해결하고자 합니다.


사람들이 아두이노를 쓰는 이유에는 여러가지가 있겠지만,

주된 이유중에 하나는 


DAQ (Data Acquisition)


즉 신호 수집을 위해서 사용하는 목적으로 사용합니다.


각종 센서에서 나온 디지털신호나, 아날로그 신호들을 아두이노로 받아와서

PC에서 후처리를 하여 결과를 보는 것이죠~


이러한 구성을 하기위해 가장 필요한 것이 바로

플롯팅 (Plotting)입니다.


실시간으로 들어오는 정보들을 확인하면서 어떤 신호가 들어오는지,

어떤 식으로 데이터를 처리해야 할지를

아두이노 내부에서 처리하는 것이 아니라

PC를 통해 처리하는 것이지요.


이러한 구성을 위해서는 PC와 아두이노간의 


시리얼 통신 (Serial Communication)


을 통해 정보를 주고받아야 합니다.



#1. 아두이노 코딩


우선 아두이노에서 컴퓨터로 어떤 데이터를 전송할지,

어떻게 전송할지를 설정합니다.


여기서는 아날로그 신호의 데이터를

Serial.println(data);

를 통해 매 데이터를 던져줍니다.


  1. /*
      AnalogReadSerial
      Reads an analog input on pin 0, prints the result to the serial monitor.
      Graphical representation is available using serial plotter (Tools > Serial Plotter menu)
      Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

      This example code is in the public domain.
    */

    // the setup routine runs once when you press reset:
    void setup() {
      // initialize serial communication at 9600 bits per second:
      Serial.begin(9600);
    }

    // the loop routine runs over and over again forever:
    void loop() {
      // read the input on analog pin 0:
      int sensorValue = analogRead(A0);
      // print out the value you read:
      Serial.println(sensorValue);
      delay(1);        // delay in between reads for stability
    }


위 코드는 아래 예제코드와 동일합니다~




자 그럼 여기서 어떤 신호가 나오는지 보려면 어떻게 해야할까요?


아두이노가 업데이트 되면서 시리얼 플로터 라는 기능을 제공하게 되었습니다~




도구 메뉴에서 툴 -> 시리얼 플로터 를 클릭하시고 

보드레이트(Baud rate, 통신속도) 를 코딩과 동일하게 설정하시면


위와 같이 실시간으로 데이터를 볼 수 있게 된답니다.


하지만 아무래도 제공되는 툴이다 보니 자유롭게 변형하거나,

데이터를 처리하기가 자유롭지 않죠,,


그래서 이번엔 프로세싱을 이용해서 그래프를 그려보겠습니다.



#2 프로세싱 코딩



프로세싱은 생소하신 분들이 많을텐데, 주로 아두이노와 같이 사용하는 툴이랍니다.


UI가 아두이노와 상당히 유사하게 되어있어 맘이 좀 편하기도(?) 할거에요~


프로세싱을 실행하시고 아래 코드를 넣어주세요~!


import processing.serial.*;

Serial myPort;        // The serial port
int xPos = 1;         // horizontal position of the graph
float inByte = 0;
float pre_data = 0;

void setup () {
  // set the window size:
  size(400, 300);

  // List all the available serial ports
  // if using Processing 2.1 or later, use Serial.printArray()
  println(Serial.list());

  // I know that the second port in the serial list on my PC
  // is always my  Arduino, so I open Serial.list()[1].
  // (if first, type Serial.list()[0]).
  // Open whatever port is the one you're using.
  myPort = new Serial(this, Serial.list()[1], 9600);

  // don't generate a serialEvent() unless you get a newline character:
  myPort.bufferUntil('\n');

  // set inital background:
  background(0);
}
void draw () {
  // draw the line:
  stroke(127, 34, 255);
  line(xPos, height-pre_data, xPos, height - inByte);

  // at the edge of the screen, go back to the beginning:
  if (xPos >= width) {
    xPos = 0;
    background(0);
  } else {
    // increment the horizontal position:
    xPos++;
  }
  pre_data = inByte;
}


void serialEvent (Serial myPort) {
  // get the ASCII string:
  String inString = myPort.readStringUntil('\n');

  if (inString != null) {
    // trim off any whitespace:
    inString = trim(inString);
    // convert to an int and map to the screen height:
    inByte = float(inString);
    println(inByte);
    inByte = map(inByte, 0, 1023, 0, height);
  }
}


자 코드를 복붙한다음에 아래 순서에 따라 조금 바꿔줍시다.




1. 먼저 코드를 실행한 뒤, 아래 콘솔창에 뜨는 포트넘버를 기억해둡니다.

아두이노에서 포트넘버를 알 수 있으시죠?


2. 포트넘버가 안나오거나 이상한 문자가 나온다면 2번 박스에서

보드레이트를 9600이 아닌, 아두이노에서 코딩한 숫자와 동일하게 입력해줍니다.


3. 지금 제 경우에는 COM3이 두번째 포트이므로 1을 입력합니다.

만일 COM1이 아두이노 포트라면 0 을 입력해야겠지요? 



그렇게 제대로 입력하고나면 왼쪽과 같이 그래프가 그려지게 됩니다.



그 후에 받아진 데이터를 어떻게 처리할지는 위 코드를 기반으로 해서

작업하시면 됩니다~!



궁금한점이 있으시다면 언제든 댓글 달아주세요~^^

+ Recent posts