'분류 전체보기'에 해당되는 글 335건
- 2017.11.22 Hardware | bGeigie Nano 의 battery 를 업그레이드 해보자
- 2017.11.22 Hardware | Safecast bGeigie Nano 를 조립해 보자 - 2
- 2017.11.22 Hardware | Safecast bGeigie Nano 를 조립해 보자 - 1
- 2017.11.21 Hardware | AliExpress 에서 condenser 를 구입해 보자
- 2017.10.12 Hardware | VL53L0X 레이저 거리 측정 센서 사용해 보기 8
- 2017.10.11 Life | 전기절연용 고무 장착테이프
- 2017.10.01 Hardware | Rotary Encoder 를 사용해 보자
- 2017.09.25 Hardware | Magnetic Charging Cable 을 구매해 보자
- 2017.09.24 Life | Spartan Sprint, Korea - Saturday, September 23 2017
- 2017.09.19 Hardware | SSD1306 monochrome OLED 를 가지고 VU meter 를 만들어보자
1. 시작
bGeigie Nano 가 무엇인지, 어떻게 조립했는지는 아래 link 들을 참조하세요.
* Safecast bGeigie Nano 를 조립해 보자 - 1
- http://chocoball.tistory.com/entry/Hardware-Safecast-bGeigie-Nano-1
* Safecast bGeigie Nano 를 조립해 보자 - 2
- http://chocoball.tistory.com/entry/Hardware-Safecast-bGeigie-Nano-2
bGeigie Nano 를 조립하면서 설명서를 보면, battery 가 기존 2000mAh 에서 1200mAh 로 바뀐 것을 알게 됩니다.
- https://github.com/Safecast/bGeigieNanoKit/wiki/Assembly-Manual
제작자에게 문의한 결과 battery 수급 문제와 두께로 인한 문제를 언급하고 있습니다.
이게 충전을 하고 가지고 다니는 것이라, 가능하면 큰 용량의 battery 를 사용하는게 좋을것 같았습니다.
아래는 기존 battery 사진입니다.
두꺼운 전선과 Li-Ion 충방전에 필요한 보호회로가 붙어 있습니다.
이 대용품을 찾아야 합니다.
2. 고용량 제품 찾기
한국내에서 제품을 찾기도 쉽지 않을 뿐더러, battery 제품은 가격이 비쌉니다.
AliExpress 에서 폭풍검색 합니다.
몇몇 제품이 물망에 올랐지만, bGeigie Nano 에 잘 수납되어야 하고, 용량이 2000mAh 이상인 것을 계속해서 찾던 중,
아래 제품을 알게 됩니다.
* 3.7V 2500mAh polymer lithium ion battery
크기가 확신할 수는 없었지만, 기존의 battery 의 폭과 두께가 크게 차이나지 않을것 같았습니다.
7.14 USD 는 정말 매력적인 가격이 아닐 수 없습니다.
3. 도착
배송 완료까지 거의 1달 걸렸습니다.
Battery 라서 좀 까다로왔는지 모르겠습니다.
배송 추적을 해 보면, Turkey 에 보내졌다고 나왔는데, 어느샌가 저의 주소로 배달되었습니다.
예상했던 그대로 배송이 되었습니다.
막상 upgrade 를 할 수 있다는 마음에 매우 흥분되었습니다.
오오오~~~!!! 대용량 battery 다!
bGeigie Nano 보드에 올려 봅니다.
크기가 정말 딱 맞습니다. 거의 여유공간은 없이 들어갑니다.
제작자가 이야기 했듯, 날카롭게 쏫아 오른 납땜 부분이 battery 를 찔러서 터질 수 있으니,
동봉되어 있던 쿠션용 스폰지를 붙여 놓은 플라스틱 보드지가 두껍고 딱 크기가 좋아서 바로 뒷에 덧대어 줍니다.
이렇게 맞춤일수가.
두께도 적당합니다. 쿠션 테이프까지 붙이고 나사를 조이면, 확실하게 고정이 됩니다.
완벽하게 고정되는 순간입니다.
4. Connector
여기서 문제가 생깁니다.
위의 사진에서도 알 수 있듯이 선만 달랑 있고, 기판과 연결되는 connector 가 없습니다.
Connector 의 사양 확인해야 하는데, 베니어 켈리퍼로 칫수를 측정해도 아주 미묘한 차이인지라 어떤것을 주문해야 할지 난감했습니다.
AliExpress 의 여러 판매자 제품들을 보니, 대략 위의 규격중에 하나라는 것을 알게 되었습니다.
처음에는 XH 2.54mm 가 아닐까 했습니다만, 확신할 수 없었습니다.
그래서 처음부터 동봉되어 있는 battery의 connector 를 뚤어져라 보았죠. 뭔가 있을것 같았습니다.
그렇습니다. 뭔가 적혀있었어요. "H JS" !!!
또한, 이 bGeigie Nano 에 들어가는 부품들은 OLED 모니터부터 Bluetooth 모듈까지 SparkFun 회사꺼를 많이 사용합니다.
그럼 혹시...?
SparkFun 에서 취급하는 Connector 를 찾아봅니다. Bingo!
SparkFun 은 JST 규격의 2.0mm 제품을 선호한다고 나와 있습니다.
그리고 친절하게도 JST 2.0mm 는 PH 두개의 극을 가지는 것과 같다는 것도 나와 있었습니다.
* Power Connectors
- https://learn.sparkfun.com/tutorials/connector-basics/power-connectors
정리하자면, JST 2.0mm = PH 2-pin connector 라는 것이였습니다.
한달 기다렸는데 좀더 기다리죠 뭐. Connector 도 주문을 합니다.
* JST 2.0 PH 2-Pin Connector
한 3주 걸려서 도착했습니다.
도대체 이거 하나 upgrade 하는데 얼마나 걸리는지 모르겠습니다. (거의 2달)
커넥터의 모양을 요리조리 살펴 봅니다.
흠흠 맞는것 같네요.
Female connector 에 고정되는 돌기도 잘 구현되어 있습니다.
실제로 bGeigie Nano 에 연결해 봅니다.
딱 맞군요!
분리시, 손톱을 거는 돌기가 정품보다 작습니다.
모양의 거의 동일합니다.
5. Upgrade 효과
아래 사이트를 보면, 계산적으로 2500mAh 면 3일정도 가는 것으로 되어 있습니다.
- https://github.com/Safecast/bGeigieNanoKit
실제로 upgrade 하고 full 충전 후, 한번도 끄지않고 사용해 보면, 딱 48 시간 = 이틀 정도 갑니다.
1300mAh 정도면 하루+12시간이라고 표현 되어 있으니, 계산상으로만 보면 12시간 늘어난 것인데,
위성 통신이랑, Bluetooth 통신도 있으므로, 실제로는 1일이 2일 정도로 늘지 않았나 생각해 봅니다.
Battery low 가 뜨면 로깅이 중지됩니다.
그냥 측정만 하는것 같아요.
Battery low 가 뜨는 타이밍은 약 10% 정도인것 같습니다.
FIN
좋은 점
당연히 오래 간다는 점이죠!
아쉬운 점
Connector 의 선이 한가닥으로 되어 있어서 전류량적으로 아쉽다.
Connector 의 고깔 부분을 손톱으로 잡고 뽑을 수 있게 되어 있는데, 이 부분의 크기가 작아서 아쉽다.
2500mAh 면 대략 3일인데, full 2일이면 끝난다. 혹시... 용량표기의 오류?
'Hardware' 카테고리의 다른 글
Hardware | 74HC595 shift register 를 사용해 보자 (0) | 2017.12.01 |
---|---|
Hardware | bGeigie Nano 를 이용하여 방사능을 측정해 보자 (2) | 2017.11.24 |
Hardware | Safecast bGeigie Nano 를 조립해 보자 - 2 (0) | 2017.11.22 |
Hardware | Safecast bGeigie Nano 를 조립해 보자 - 1 (0) | 2017.11.22 |
Hardware | AliExpress 에서 condenser 를 구입해 보자 (0) | 2017.11.21 |
이 글은 전편이 있습니다. 먼저 다음 link 를 꼭 읽고 오세요.
* Safecast bGeigie Nano 를 조립해 보자 - 1
- http://chocoball.tistory.com/entry/Hardware-Safecast-bGeigie-Nano-1
1. Mainboard
bGeigie Nano 의 중추인 mainboard 입니다.
보드 버전은 1.1r5a 입니다.
조립 메뉴얼이 초기 버전을 기준으로 제작되어 있다 보니, 나름 최신 보드와 맞지 않는 부분들이 있습니다.
대략 예상하면서 메뉴얼을 따라가면 그리 큰 문제는 없습니다.
모든 실장 위치에 금도금이 되어 있어서 납이 잘 붙게 되어 있습니다.
잘 만들어진 보드라고 생각합니다.
2. 부품과 아크릴 지지대
부품은 따로 포장되어 있습니다.
제가 받은 제품의 고유 번호는 2981 되겠습니다.
기판을 보호하고 모양을 만들어주는 아크릴 지지대와 logging 을 위한 micro SD + adapater,
그리고 GM tube 를 보호해 주는 철망이 보입니다.
3. 저항 납땜하기
이제 본격적으로 작업을 시작합니다.
저항을 하나씩 검수해 가며 납땝합니다.
예전에 만들어 놓은 Transistor Tester 를 이용했습니다.
* Transistor Tester
- http://chocoball.tistory.com/entry/Hardware-Transistor-Tester
10kΩ 짜리를 측정해 봅니다. 대략 오차범위 이내 입니다. 납땜해 줍니다.
1kΩ 짜리를 측정해 봅니다. 대략 오차범위 이내 입니다. 납땜해 줍니다.
4.5kΩ 짜리를 측정해 봅니다. 대략 오차범위 이내 입니다. 납땜해 줍니다.
겨우 4개 저항을 납땜했지만 뿌듯합니다. 기념샷 찍어줍니다.
계속 측정하고 땜질하고 반복합니다.
궁금해졌습니다. 왜 예전 방식인 "탄소 피막 저항" 일까?
온도변화에 약하며 정확도가 떨어지는 제품을 썼을까?
"메탈 피막 저항" 은 정확하며 온도변화에도 강한데 말입니다.
저항에 대해서는 아래 link 를 읽어보세요. 저도 처음에는 구분을 못했답니다.
- http://chocoball.tistory.com/entry/Hardware-buying-resistors
집에 굴러다니는 메탈 피막 저항을 측정해 보는 것으로 궁금함은 더해가지만,
일단 접어두고 나중에 community 에 물어봐야겠습니다.
4. 콘덴서 납땜하기
저항 다음에는 콘덴서를 납땜해 줍니다.
총 3개가 있습니다. 100nF 이라고 합니다.
정말 소중하게 한땀한땀 납땜하였습니다.
뒷면의 리드로 모드 잘라주었습니다. 깔끔하게 잘 했다고 자화자찬을 해 봅니다.
5. 그 외 부품 납땜하기
저항과 콘덴서로 손이 어느정도 익었으니, 속도를 좀 내어 봅니다.
트랜지스터 1개와 스위치류, LED 등을 납땜해 갑니다.
C1815 라는 제품이지만 잘 모릅니다.
측정해 보면 NPN 트랜지스터 입니다. 납땜해 줍니다.
토클 스위치입니다. 일본에서 제조된 제품이네요.
사진으로는 크지만 앙증맞게 생겼습니다. 금속으로 된 스위치로 딸깍거리며 동작시키는 것이 은근 재미 있습니다.
무슨 용도의 스위치 인지는 모르겠습니다.
조이스틱처럼 누르기도 되고 상하좌우 움직일 수 있습니다. 메뉴 설정등에 사용될 듯 합니다.
밑면입니다.
스피커 입니다. 제품 마무리가 잘 되어 있습니다.
다이오드 입니다. 열에 약하니 최대한 짧게 열을 가하여 납땜합니다.
전원 스위치 입니다.
전류가 흐르는 곳이니 납을 많이 먹여 납땜합니다.
딥스위치 입니다. 납땜합니다.
Alerting 과 Counting 을 하는 LED 입니다.
제품 버전에 따라 빨간색 대신 파란색도 있었던것 같습니다.
조립하는 사람에 따라 빨간색을 counting 으로 사용하는 사람도 있고 여러가지 입니다.
저는 Alerting 에는 빨간색, Counting 에는 흰색을 선택해서 납땜하였습니다.
LED 는 이런 값을 보여주는군요.
Transistor Tester 로 측정시 불이 들어왔다 나갔다 하는 모습이 신기하여 동영상으로도 찍어 봤습니다.
아마도 측정시에 여러가지 패턴으로 전류/전압을 가해보고 결과를 도출하는 것 같습니다.
자잘한 부품을 모두 납땜한 모양입니다. 여기까지 하고 좀 쉬었습니다. 한 2주일.
6. OLED
가장 눈에 띄는 OLED 를 작업합니다.
뽁뽁이 포장지를 잘 뜯습니다.
저 위의 구멍에 납땜을 하면 됩니다.
제품 정식 명칭은 Adafruit 사의 SSD1306 1.3" 128x64 OLED 입니다.
집에 다른 OLED 두개를 더 가지고 있어서 잠깐 비교 놀이를 해봅니다.
* Adafruit SSD1306 128x64 1.3" monochrome OLED 를 사용해보자
- http://chocoball.tistory.com/entry/Hardware-Adafruit-SSD1306-128x64-13inch-monochrome-OLED
기판 밑부분에 지지대를 납땜하고 볼트로 고정해 줍니다.
OLED 를 납땜한 소켓에 삽입하고 너트로 지지대 기둥에 고정해 줍니다.
설명서에는 휘지 않도록 너트를 위아래로 설치하라고 되어 있으나, 지지대 볼트 길이가 짧아서 절대 불가능 합니다.
그냥 위에만 너트로 고정해 줍니다. 너무 조이면 장력이 생기니 적당하게 조여줍니다.
7. GPS module
Adafruit 의 Ultimate GPS Breakout v3 제품입니다.
66개의 channel 을 받을 수 있다고 하네요. Wow!
뒷면은 GPS 정보를 저장하여 다시 reboot 될 때 GPS 를 빨리 연동되게 하기 위한 battery 고정부가 있습니다.
3.3V ~ 5V 까지 인가할 수 있습니다. 5V 도 견디지만 3.3V 로 동작시키면 좋겠죠?
이렇게 분리되어 있는 것을 아래와 같이 납땜해 주었습니다.
고정하는 부분이니 납을 많이 먹여 주었습니다.
GPS 가 올 자리는 여기가 되겠습니다.
지지대를 세우고 mainboard 와 연결되는 부분에 pin 을 납땜해 줍니다.
고정 기둥에 올려 놓고 너트로 조이면 이렇게 됩니다.
점점 모양을 갖춰 가네요.
8. OpenLog
측정한 data 를 micro SD 에 저장하는 부분입니다.
제품은 SparkFun 사의 OpenLog DEV-13712 입니다.
Arduino 와 친숙한 ATmega 칩이 달려 있습니다.
뒷면은 micro SD 를 삽입할 수 있게 되어 있습니다.
한번 넣으면 딸깍 하면서 고정이 되고, 다시한번 누르면 튀어나오는 방식입니다.
위치할 자리는 여기 입니다.
예전 버전에는 바로 아래 부분에 GM tube 와 연결하는 pin 납땜자리가 있어 쉴딩을 해줘야 했지만,
버전업이 되면서 GM tube 연결 땜 자리는, 그 밑으로 위치하는 레이아웃으로 바뀌었습니다.
이왕 본 김에 GM tube 와 연결되는 pin 을 납땜해 줍니다.
9. Arduino FIO
이제 두뇌에 해당하는 Arduino FIO 를 작업합니다.
DEV-10116 이라고 되어 있네요.
LED가 반짝반짝 하는 윗부분이 밑으로 가야 하는지라 좀 아쉽습니다.
밑부분이지만 위로 가는 부분입니다.
위치는 여기가 되겠네요.
납땜할 자리가 가장 많습니다.
일단 mainboard 에 모든 다리에 pin 을 넣고 납땜해야 하고, 그다음 male pin 들을 Arduino FIO 에 납땜하여 다리를 만들어 줘야 합니다.
향후 firmware upgrade 를 위해 FTDI 인터페이스에도 납땜을 해 줍니다.
실제로 이런 모양이라고 합니다.
* Using a L-shaped plug and soldered low-profile sockets to program a Fio
- https://www.arduino.cc/en/Main/ArduinoBoardFioProgramming
나중에 software 가 version up 되면 도전해 보겠습니다.
마침 FTDI breakout 보드도 있네요 :-)
* FTDI Serial Adapter 를 사용해 보자
- http://chocoball.tistory.com/entry/Hardware-FTDI-FT232RL-using
지금까지의 모든 부붐을 올려 봤습니다. 호오오오!
10. Bluetooth module
micro SD 카드에 logging 을 하지만,
스마트폰으로 실시간 측정치를 확인하거나, 로그를 인터넷으로 바로 보내고 싶으면 Bluetooth 모듈이 필요합니다.
제품은 seeed 사의 BLEBee v2 입니다.
- https://www.seeedstudio.com/BLEBee-v2.0.0-p-2461.html
따로 사려면 34.5 USD 하는군요.
AliExpress 에서 파는 XBEE 의 bluetooth 모듈과 호환이 되는지 많이 궁금합니다.
기회가 되면 한번 실험해 보겠습니다.
Bluegiga BLE113-A-M256K 라는 모듈을 이용해서 만들었다고 합니다.
오리지날은 MiKro Labs 라고 합니다.
하지만 이미 website 는 가동되지 않고 있네요. ( www.mikro-labs.com )
Arduino FIO 의 밑단 부분에 세모로 선이 그어있는 부분에 꽂습니다.
11. 시험 가동
GM tube 를 제외하고 모든 부품이 실장되었습니다.
GM tube 를 연결하기 전에 납땜이 정상인지를 확인하고,
추가 작업을 진행하기 전에 수정사항이 있는지를 보기 위해 battery 를 연결하고 시험 가동을 해 봅니다.
동봉된 battery 는 1200mAh Li-Ion Polymer 입니다.
두근두근....
한번에 성공입니다!!!
사실 실패하면 다른 방도는 없었습니다.
역시 납땜시는 열을 최대한 짧게 가하고 완료하는게 정말 중요하네요. 오로지 이거 하나만 지키면서 납땜하였습니다.
오랜 동안 납땜에 투자한 시간이 보상받는 순간입니다.
12. Geiger Mueller Tube
방사능 측정용 센서는 pancake 형태인 센서 입니다.
* LND 7317
- http://www.lndinc.com/products/geiger-mueller-tubes/7317/
특장점으로는 엄청 예민하다는 것과, alpha / beta / gamma 모두를 잡아낼 수 있다는 것입니다.
일반적으로 한가지나 두가지만 잡아낼 수 있는 센서와는 격을 달리합니다.
그래서 낱개 구매는 130 ~ 200 USD 정도 한다고 합니다.
bGeigie Nano kit 가격의 1/3 에 해당합니다. 그만큼 조심해서 다뤄야 합니다.
GM tube 의 표면이 찟기지 않게 하기 위해 철망을 붙여줘야 합니다.
여성들의 메니큐어 코팅제로 붙이면 나중에 메니큐어 제거재로 쉽게 분리 가능하다 하니, 준비합니다.
살살 제품을 꺼냅니다. 아주 얇은 피막으로 되어 있다고 씌여 있습니다.
뒷면이 위로 오게 뒤집어져 있습니다. 앞쪽은 얇은 피막이니까요.
only USA 에서만 생산되고 있습니다.
들어보면 꽤 무겁습니다. 무식한 작은 후라이팬처럼 생겼습니다.
앞면입니다. 찟어지지 않도록 살살...
다른 작업으로 진행하기 전에 얼른 금속망을 앞면에 붙여줍니다.
1분 이상 지긋이 누르라고 설명서에 나와 있으니, 지긋하게 눌러서 고정되게 합니다.
13. GM tube 연결
GM tube 와 고전압 회로와 연결하는 보드를 조립합니다.
보드에 선을 납땜해야 하는데, 극성이 선의 배열과 다릅니다.
이쁘게 납땜할 수 있도록 핀을 이용하여 선을 동그랗게 말아줍니다.
미리 투명 수축 튜브도 끼워 넣어 줍니다.
납땜을 이쁘게 하고, 수축튜브를 잘 씌운 다음, 열을 가하여 수축, 고정되게 합니다.
14. Case 고무에 동그랗게 구멍 뚫기
Pelican 1010 case 의 안쪽 뒷면은 고무로 기기를 안정되게 고정될 수 있도록 쿠션이 있습니다.
여기를 GM tube 가 돌출될 수 있도록 구멍을 뚫어야 합니다.
보드에 LND 7317 과 연결하고 아크릴에 고정시켜 봅니다.
이제야 고지가 눈앞에 보이네요.
케이스 뒷면에 센서가 돌출될 수 있도록 동그랗게 구멍을 뚫어 줍니다.
신기하게도 250ml 주스캔 윗부분과 크기가 똑같습니다. 주스캔을 이용하여 그림을 그린 다음 커터로 잘라주면 됩니다.
짜잔~!
FIN
이로써 모든 조립 작업이 완료되었습니다.
계획하고 구입하고 조립하기 까지, 장장 6년(계획)하고 3개월(실조립) 이 걸렸습니다.
왜 구동 모습이 없냐구요?
실제 구동 모습은 따로 글을 만들어서 차근차근 기록하겠습니다.
여기까지만 해도 진이 다 빠졌습니다.
'Hardware' 카테고리의 다른 글
Hardware | bGeigie Nano 를 이용하여 방사능을 측정해 보자 (2) | 2017.11.24 |
---|---|
Hardware | bGeigie Nano 의 battery 를 업그레이드 해보자 (0) | 2017.11.22 |
Hardware | Safecast bGeigie Nano 를 조립해 보자 - 1 (0) | 2017.11.22 |
Hardware | AliExpress 에서 condenser 를 구입해 보자 (0) | 2017.11.21 |
Hardware | VL53L0X 레이저 거리 측정 센서 사용해 보기 (8) | 2017.10.12 |
1. 311 대지진
2011년 3월 11일, 가족과 일본에서 생활하던 그 날.
아이의 신학기가 시작한지 얼마 되지 않았을 때였다.
엄청난 흔들림.
옆에 있던 동료에게 "난 지진 detector 야. 진도를 알 수 있지" 라면서,
농담처럼 이건 3도인데... 한 4도정도 되려나? 이건 5도인데... 더 세지네!!!
20층 건물에서 8층에 근무했던 사무실에서 본능적으로 지갑과 휴대폰만 챙기고 밖으로 튀어 나갔다.
사무실 문을 벋어나 엘리베이터를 타려 했으나,
이미 차단막이 내려가 있고, 비상구로만 탈출할 수 있게 셔터들이 내려가 있었다.
순간 내가 어디에 와 있지 할 정도로 통로 구조가 바뀌어 있었다.
지진 알람이 발생 후, 자동으로 셔터가 내려간 것에 잠시 탄복하면서,
미로에 놓여 있는 쥐처럼 비상구를 향해 돌진했다.
사람들이 비상구를 이용하기 시작했고, 층을 내려갈 수록 사람들 수가 불어났다.
중간에 넘어지는 사람, 흐느끼면서 내려가는 사람, 과호흡으로 봉지를 물고 있는 사람...
모두 직감적으로 "이러다 죽을 수 있어" 라는 문장을 떠올리는 얼굴들이었다.
나도 그랬다.
"죽을 수 있겠지만, 그래도 살아 남아야겠어" 라는 본능이 머릿속에서 몸부림 치고 있었다.
일단 1층에 다다르자 조금 안도가 되었고,
만일 더 흔들리고 건물 붕괴의 위험이 발생하면 지하 주차장으로 내려갈 것이냐,
아니면 깨져서 떨어질 유리 파편을 피하면서, 근처 중학교까지 죽을 힘을 다해 뛰어갈 것이냐를 고민했다.
가장 큰 임팩트가 살짝 사그라들 때, 밖에 나가서 맞은편에서 짓고 있던 40층 건물을 보았다.
맙소사... 두개의 쌍둥이 건물이 바다 밑에 자라는 해조류처럼 흔들거렸다.
2. 탈출
대지진 발생 후, 바로 다음날인 3월 12일. 아직 큰 여진들이 들이닥치는 시기에 후쿠시마 원자력 발전소가 수소폭발을 일으켰다.
이 대지진은 이제 완전히 새로운 국면으로 들어섰다는 신호였다.
지진에 의한 공포가 이제는 피폭에 대한 공포로 바뀌었다.
그것도 원전 3기가 차례로 폭발을 잃으키면서 의심없는 사실로 받아들여졌다.
고민할 필요도 없이, 동경을 탈출해야 한다는 생각으로 귀결되었다.
거대한 탈출의 물줄기에서 가족 4명을 실어다줄 항공기 수배에 나섰으며,
대중교통이 끊긴 도로를 달려 우리 가족을 공항까지 이동시켜 줄 개인 택시 "나라시" 를 찾았다.
다행히 모두 수배가 되어, 대지진 발생 1주일만에 일본을 탈출했다.
동경시에서 나리따 공항까지 가는 고속도로... 도로 중간중간 부서진 부분들이 보였으며, 다니는 차가 거의 없었다.
그야말로 유령의 고속도로였다.
3. Safecast
여기서부터는 어투를 바꾸겠습니다. :-)
혼자 다시 동경으로 돌아온 뒤 알게된 것은, 당시 일본 전국을 휩쓸고 있었던 "방사능의 공포".
정부에서는 정보를 차단하고 있었고,
동경과 200Km 밖에 떨어져 있지 않은 후꾸시마는 동경의 먹거리를 책임지는 곡창지대인 동북지역의 한 곳으로,
방사능이 있다 하더라도 먹어서 동북아 지역 재건에 동참하자는 어처구니 없는 상황이 벌어지고 있었습니다.
이런 "방사능 공포" 의 불안을 해소하고자 사람들이 방사는 측정기를 너도나도 구매하려 했고,
평소 가격의 몇 배에서 몇 십배로 제품 가격이 뛰게 되었죠.
제대로 된 것을 구입하려면, 몇 십만원을 줘야 했습니다.
거기서 등장한 것이 이 제품,
Safecast 라는 단체에서 Pancake 센서를 채용한 제품을 cloud funding인 Kickstarter 에 공모합니다.
- https://www.kickstarter.com/projects/seanbonner/safecast-x-kickstarter-geiger-counter
디자인, 휴대성, 사용된 LND 사의 고성능 7317 센서 모두는 너무 매력적이었습니다.
제품으로써 완벽에 가까워 보였으니까요.
참고로 LDN 7317 pancake 센서는 Alpha / Beta / Gamma 를 모두 측정할 수 있는 고성능 센서 입니다.
* LDN 7317
- http://www.lndinc.com/products/geiger-mueller-tubes/7317/
또한 Safecast 는 측정한 자료를 인터넷 및 전용 app 에 공유하여 사람들로 하여금 방사능의 심각성을 알리고 있습니다.
* Safecast
이 어플을 통해서, 이 프로젝트에 참여한 사람들이 측정한 실측치를 확인할 수 있습니다.
일본 정부에서 공개하지 않은 데이터 들을 볼 수 있습니다.
후쿠시마 근처와 연결된 하천은 접근하지 말아야 할 장소가 명확합니다.
4. bGeigie Nano
Kickstarter 에서 공모한 제품을 너무 가지고 싶어서,
제작자에게 메일도 띄워 보고, ebay 에 나와 있는게 없나 그렇게 많이 찾아 헤맸습니다만 구할 수 없었습니다.
그러던 중, Safecast 에서 아래와 같은 제품을 발표합니다.
* bGeige Nano
- https://shop.kithub.cc/collections/environmental-monitoring-kits/products/safecast-bgeigie-nano
미국내 세금 포함 655.5 USD !!! 미칠듯한 가격입니다. 오살라게 비싸네요.
평소 AliExpress 로 떄워왔던 저로서는 너무 괴로운 구매였습니다.
너무 하고싶은데 가격은 비싸고, 너무 하고싶은데 가격은 비싸고, 너무 하고싶은데 가격은 비싸고...
한국에 돌아와 버렸지만, 이 제품을 만들어 보고 측정에 동참하고 싶은 욕구는 사그라들지 않았습니다.
결국 오랜 고민 끝에 질렀습니다. 655.50 USD !!!
5. 도착
거진 2주만에 제품을 받았습니다.
이하 도착샷들 입니다.
이 로고를 보려고 정말 오래 기다렸습니다.
자잘한 부품이 있으니 애들이 집어 먹을 수 있다는 문구가 보입니다.
뚜껑을 열어 보면 꽉 차 있습니다.
조립 완성 후, 가지고 다닐 수 있게 버클 및 끈이 동봉되어 있습니다.
기판을 고정하는 볼트, 너트, 와셔 들 입니다.
전자 부품들은 뽁뽁이로 잘 쌓여 있습니다.
보호 케이스 입니다.
따로 Amazon 에서 구입할 수도 있습니다.
- https://www.amazon.com/Waterproof-Case-Pelican-1010-Micro/dp/B001G23JZ4/ref=pd_sim_421_1
저에게 배달된 제품의 시리얼 넘버는 2981 인듯 합니다.
납땜해야 하는 전자 부품들 입니다.
완성되면 붙이게 될 스티커도 있습니다.
6. 부품 확인
제품이 도착하면 누락이 없나 확인해 봐야겠죠?
Safecast 사이트에서 부품들을 확인할 수 있습니다.
- SafecastbGeigieNanoManualandResources.pdf
FIN
여기까지 오는 과정이 6년이나 걸렸습니다.
일단 제품을 받고 나자, 좀 진이 빠진것도 있고 마음을 추스리고 만들고 싶어서 약 한달동안 묵히게 됩니다.
"Safecast bGeigie Nano 를 조립해 보자 - 2" 에서 하나씩 조립해 가게 됩니다.
- http://chocoball.tistory.com/entry/Hardware-Safecast-bGeigie-Nano-2
Update - 20201216
참고를 위해 첨부.
'Hardware' 카테고리의 다른 글
Hardware | bGeigie Nano 의 battery 를 업그레이드 해보자 (0) | 2017.11.22 |
---|---|
Hardware | Safecast bGeigie Nano 를 조립해 보자 - 2 (0) | 2017.11.22 |
Hardware | AliExpress 에서 condenser 를 구입해 보자 (0) | 2017.11.21 |
Hardware | VL53L0X 레이저 거리 측정 센서 사용해 보기 (8) | 2017.10.12 |
Hardware | Rotary Encoder 를 사용해 보자 (0) | 2017.10.01 |
1. 시작
전자 부품 취미를 하다 보면, 회로 구조상 condenser 가 필요한 대목이 나옵니다.
대학교때 회로이론에서는 주로 Capacitor 로만 표현되는데, 실제 필드에서는 Condenser 라는 용어가 더 많이 쓰이는 것 같습니다.
Condenser = Capacitor 는 회로에서 일종의 buffer 역할을 하며, 직류시에는 차단을 하며 교류만을 흘려보내는 성질이 있습니다.
위의 성질을 이용하여, 실제 사용 방법은 다음과 같아요.
a. 직류를 차단
b. 노이즈 제거
c. 안정된 전원
d. 전압/전류에 민감한 IC 보호
아래는 wikipedia 에서 가져온 그림입니다.
캐패시터는 참 여러종류가 있죠?
회로의 기호적으로는 다음과 같습니다.
2. 구입
원래는 콘덴서로 유명한 삼영, 루비콘, 에너솔 등을 구입하려 했으나,
본격적으로 구입해서 뭔가 수리를 하기에는 기술이 부족해, 간단한 회로 확인만을 위해 간단하게 구성합니다.
아래는 향후 PC 보드 수리나 가전 수리를 위해 구입하면 괜찮을 리스트 항목 입니다.
( http://www.parkoz.com/ 에서 활동하시는 "우명진 [wmjcom]" 님의 여러 수리기를 통하여 리스트업 해 봤슴 )
삼영 NXH 10V 330uf 지름 6.3mm 높이 11mm 1개 [105도, 6000시간, Low ESR, 초장수명] 삼영 NXH 10V 1000uf (10mm, 105도, 장수명) 삼영 NXC 10V 1000uf 8파이(8mm, 105도, Low ESR) 삼영 NXH 10V 1000uf 10파이(10mm, 105도, 장수명) 삼영 NXH 10V 1500uf 10파이(10mm, 105도, 장수명) 삼영 NXH 10V 2200uf (105도/10000시간/지름10mm*높이25mm, 초장수명/Low ESR) 삼영 NXB 10V 3300uf (지름 10mm * 높이 25.0mm, Low ESR, 105도 4,000시간, Ripple Current(리플 전류) 삼영 LXZ 10V 3300uf 삼영 NXH 16V 100uf 삼영 NXH 16V 220uf 지름 6.3mm 높이 11mm 1개 [105도, 6000시간, Low ESR, 초장수명] 삼영 NXH 16V 1000uf 8파이(8mm, 105도, 장수명) 삼영 NXB 16V 2200uf 10파이(10mm, 105도, Low ESR) 삼영 NXH 16V 3300uf (지름 10mm * 높이 25.0mm, Low ESR, 105도 10,000시간, Ripple Current(리플 전류) 삼영 NXH 25V 100uf [105도/6000시간/Low-ESR/지름 6.3mm/높이 11mm] 삼영 NXH 25V 470uf [105도/10000시간/Low-ESR/지름 10mm/높이 12.5mm] 삼영 NXH 35V 47uf (105도/6000시간/Low ESR/직경5파이/장수명) 삼영 NXH 35V 100uf (105도/6000시간/Low ESR/직경6.3파이/장수명) 삼영 NXH 35V 220uf [105도/8000시간/Low-ESR/지름 8mm/높이 11mm] 삼영 NXH 50V 10uf 1개(105도/6000시간/Low ESR/직경5파이/장수명) 삼영 NXH 50V 22uf 1개(105도/6000시간/Low ESR/직경5파이/장수명) 삼영 NXH 50V 47uf 지름 6.3mm 높이 11mm 1개 [105도, 8000시간, Low ESR, 초장수명] 삼영 NXH 50V 100uf 지름 8mm 높이 11mm 1개 [105도, 8000시간, Low ESR, 초장수명] 삼영 TDA 200V 680uf 지름 22mm 높이 45mm 2개 [105도, 2000시간, Lug Type] 삼영 TDA 400V 270uf(105도, 2000시간, 직경 25파이, 러그 타입) 삼영 TLS 450V 330uf [105도/3000시간/지름25.4mm/높이45mm] 에너솔(EneSol) 16V 470uf (105도/11.5파이/고체 캐패시터/Super Low ESR/최대 리플용량 6100uf) 에너솔(EneSol) 6.3V 560uf 루비콘 MCZ 6.3V 3300uf (105도/2000시간/Low-ESR/지름10mm/높이25mm) 루비콘 MXC 6.3V 3300uf (10파이/10mm/105도/Low ESR)
결국 우리의 친구 AliExpress 에서 구입합니다.
1.63 USD 입니다.
구성품은 다음과 같다고 하네요. 도착하면 확인해 보려 합니다.
3. 도착
한 3주 걸려서 도착했습니다.
포장은 평소의 AliExpress 답습니다. 무난해요.
아래는 펼쳐보인 사진 입니다.
4. 확인
도착한 애들을 확인해 보았습니다.
확인에 사용된 기기는, 역시 AliExpress 에서 구입한 multi tester 와, 역시 AliExpress 에서 구입하여 만든 Transistor Tester 입니다.
* Multi Tester
-
* Transistor Tester
- http://chocoball.tistory.com/entry/Hardware-Transistor-Tester
* 0.47 uF / 50V
Transistor Tester 가 전반적으로 더 정확한것 같습니다.
대략 0.5uF 를 가르키는 군요.
Multi Tester 기도 비슷한 값을 보여줍니다.
* 1 uF / 50V
테스터기 두 친구 모두 비슷한 값을 나타내 줍니다.
그 값 또한 거의 정확합니다.
ESR 값 (뭔지 모름. 아마 내부 저항) 까지 보여주는게 믿음직 스럽습니다.
* 33 uF / 16V
약 1 uF 이 넘어가면 정확한 값을 나타내 주는것 같습니다.
* 0.22 uF / 50V
* 4.7 uF / 50V
* 2.2 uF / 50V
각각 사진을 찍으면 사진 갯수가 늘어나니, 한꺼번에 찍었습니다.
양쪽을 붙잡고 있어야 하니, 몇 번의 실패를 하고야 한장 건집니다.
* 10 uF / 50V
* 22 uF / 50V
* 47 uF / 16V
값이 높아지면 살짝씩 Tester 들끼리 차이가 나기 시작합니다.
Transistor Tester 쪽을 믿어야겠죠?
* 100 uF / 16V
* 220 uF / 16V
VC97 은 완전히 측정 범위를 벗어나 버렸습니다.
이로써 VC97 은 100uF 이하에서만 활용이 가능한 것 같습니다.
* 470 uF / 16V
값이 조금 커지니 VC97 은 오차가 많이 벌어지기 시작합니다.
FIN
정확성을 요구하는 보드에 사용하기에는 좀 그렇지만,
기본 수치는 달성하는것 같아, 간단한 동작을 구현하거나 IC 를 사용한 테스트 보드를 구성하기에는 좋은것 같아요.
'Hardware' 카테고리의 다른 글
Hardware | Safecast bGeigie Nano 를 조립해 보자 - 2 (0) | 2017.11.22 |
---|---|
Hardware | Safecast bGeigie Nano 를 조립해 보자 - 1 (0) | 2017.11.22 |
Hardware | VL53L0X 레이저 거리 측정 센서 사용해 보기 (8) | 2017.10.12 |
Hardware | Rotary Encoder 를 사용해 보자 (0) | 2017.10.01 |
Hardware | Magnetic Charging Cable 을 구매해 보자 (0) | 2017.09.25 |
1. 드론
드론 제작시 필요한 sensor 중에 하나는 거리 측정기 라고 합니다.
이는 호버링이나 일정한 높이를 유지하면서 이동시, 항상 지상의 높이를 측정하여 자기의 위치를 알아야 하니까요.
또한 충돌 방지등에도 필요할 것 같습니다.
드론이 보는 시각은 향후 이렇게 되겠죠?
2. 주문
항상 그렇듯 AliExpress 에서 검색하여 주문하였습니다.
정식 명칭은,
"VL53L0X,Time-of-Flight (ToF) Laser Ranging Sensor Breakout 940nm GY-VL53L0XV2 Laser Distance Module I2C IIC" 입니다.
여러가지 breakout 보드가 존재하지만, 이 제품이 고정홀이 2개이고 가장 저렴해서 선택했습니다.
3. 도착
도착샷들 입니다.
AliExpress 제품답게 포장되어 왔습니다. Gift 표시가 빠지면 섭섭하지요.
레이저를 쏘는 소자 부분입니다.
뒷면은 신호처리에 필요한 회로로 구성되어 있습니다.
4. Layout
Pin 연결 정보 입니다.
VL53L0X | Arduino Nano ------------------------- VIN | 3.3V GND | GND SCL | A5 SDA | A4 -------------------------
I2C를 사용하는지라, SSD1306 연결과 완벽하게 동일합니다.
SSD1306 | Arduino Nano ------------------------- VCC | 3.3V GND | GND SDC | A5 SDA | A4 -------------------------
구성도는 다음과 같습니다.
5. VL53L0X sketch
Adafruit 용 VL53L0X library 를 다운로드 받아 libraries 폴더에 카피합니다.
* Adafruit VL53L0X library
- https://github.com/adafruit/Adafruit_VL53L0X
#include "Adafruit_VL53L0X.h" Adafruit_VL53L0X lox = Adafruit_VL53L0X(); void setup() { Serial.begin(115200); // wait until serial port opens for native USB devices while (! Serial) { delay(1); } Serial.println("Adafruit VL53L0X test"); if (!lox.begin()) { Serial.println(F("Failed to boot VL53L0X")); while(1); } // power Serial.println(F("VL53L0X API Simple Ranging example\n\n")); } void loop() { VL53L0X_RangingMeasurementData_t measure; Serial.print("Reading a measurement... "); lox.rangingTest(&measure, false); // pass in 'true' to get debug data printout! if (measure.RangeStatus != 4) { // phase failures have incorrect data Serial.print("Distance (mm): "); Serial.println(measure.RangeMilliMeter); } else { Serial.println(" out of range "); } delay(100); }
I2C detector 로 확인해 보면 VL53L0X 의 기본 address 인 "0x29" 이라는 것을 확인할 수 있습니다.
#include "Wire.h" #include "i2cdetect.h" void setup() { Wire.begin(); Serial.begin(9600); Serial.println("i2cdetect example\n"); Serial.print("Scanning address range 0x03-0x77\n\n"); } void loop() { i2cdetect(); // default range from 0x03 to 0x77 delay(2000); }
6. VL53L0X + OLED
SSD1306 OLED sample sketch 도 있어서 실행하면 에러를 냅니다.
원인은 library source 가 다른것.
특이하게도 Adafruit sample 에 vl53l0x_oled 라고 되어 있음에도 불구하고,
pololu 제작자가 만든 library 를 다운로드 받아서사용해야 합니다.
* VL53L0X library
- https://github.com/pololu/vl53l0x-arduino
/* This example shows how to use continuous mode to take range measurements with the VL53L0X. It is based on vl53l0x_ContinuousRanging_Example.c from the VL53L0X API. The range readings are in units of mm. */ #include "Wire.h" #include "VL53L0X.h" #include "SPI.h" #include "Adafruit_GFX.h" #include "Adafruit_SSD1306.h" Adafruit_SSD1306 display = Adafruit_SSD1306(); VL53L0X sensor; void setup() { Serial.begin(9600); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x32) // init done display.display(); delay(1000); Wire.begin(); sensor.init(); sensor.setTimeout(500); // Start continuous back-to-back mode (take readings as // fast as possible). To use continuous timed mode // instead, provide a desired inter-measurement period in // ms (e.g. sensor.startContinuous(100)). sensor.startContinuous(); // text display big! display.setTextSize(4); display.setTextColor(WHITE); } void loop() { uint16_t reading = sensor.readRangeContinuousMillimeters(); if (reading > 8000) { display.display(); display.clearDisplay(); return; } Serial.print(sensor.readRangeContinuousMillimeters()); if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); } display.clearDisplay(); display.setCursor(0,0); display.print(reading); display.print("mm"); display.display(); Serial.println(); delay(50); }
이번에는 OLED 를 추가하였으므로, I2C detector 로 확인해 보면 아래와 같이 "0x3c" 가 추가적으로 검출된 것을 알 수 있습니다.
속도는 좀 느릴지 모르지만, address 를 따로 가지고 있어서 동시에 같은 pin 연결을 할 수 있는 I2C 의 강점인것 같습니다.
* 참고 글
- http://chocoball.tistory.com/entry/Hardware-SSD1306-128x64-monochrome-OLED
7. 결과
VL53L0X 센서만 부착하여 "Serial Monitor" 로 확인한 내용입니다.
아래는 OLED 를 부착하여 측정한 내용입니다.
15Cm 자를 쟀는데, 20Cm 언저리가 나오네요. 뭔가 칼리브레이션이 필요한 듯 보입니다.
왔다갔다 하면서 측정해 봤습니다.
역시 5Cm 정도가 이미 + 가 되어 있네요. 조정이 초기에는 필요한것 같습니다.
센서부를 찍어봤습니다.
맨눈으로는 보이지 않지만, 감도가 좋은 스마트폰 카메라에는 센서에서 나오는 불빛이 보입니다.
아마도 레이저겠죠?
FIN
잘만 사용하면 요긴하게 쓰일 수 있을것 같습니다.
애들 키 재는 용도로도 쉽게 만들 수 있을것 같네요.
'Hardware' 카테고리의 다른 글
Hardware | Safecast bGeigie Nano 를 조립해 보자 - 1 (0) | 2017.11.22 |
---|---|
Hardware | AliExpress 에서 condenser 를 구입해 보자 (0) | 2017.11.21 |
Hardware | Rotary Encoder 를 사용해 보자 (0) | 2017.10.01 |
Hardware | Magnetic Charging Cable 을 구매해 보자 (0) | 2017.09.25 |
Hardware | SSD1306 monochrome OLED 를 가지고 VU meter 를 만들어보자 (0) | 2017.09.19 |
1. 상황
외부에 설치해 놓은 PiAware 용 안테나 연결선이 항상 불안했습니다.
- http://chocoball.tistory.com/entry/Hardware-PiAware-FlightAware
이쁘게 녹이 슬어 있습니다.
2. 절연테이프
집안 조명 배선을 변경하거나 부품을 바꾸었을 때에는
마무리는 꼭 "절연 테이프" 로 감아줘야 합니다.
그렇지 않으면, 누전이 된다거나 감전이 될 수 있기 때문이지요.
다만 문제는, 자주 쓰는 간단한 절연 테이프는 너무 끈적끈적하고,
벗겨 냈을때 자국이 남는 문제가 있습니다.
또한 햇볕에 장시간 노출되면 끈적한 부분이 고착화 되고 딱딱해 져서 벗겨지기 쉬워집니다.
우리 antenna 연결선에 적당한 것을 찾았습니다!
이름하야 "전기절연용 고무 장착테이프" !!!
3. 시공
적당한 길이로 잘라서 쭉쭉 땡기면서 감아 줬습니다.
절연 테이프는 당겨서 조금 늘이면서 접착시켜 줘야 제맛입니다.
그래야 더 잘 접착되는것 같습니다.
특이하게 이 테이프는 전혀 끈적이지 않으면서 촥 달라 붙습니다.
두께도 있어서 감으면서도 구석구석 커버해주는 느낌입니다.
좋네요 !!!
아주 만족스럽게 잘 되었습니다.
내친김에 N-Male connector 부분도 시공해 주었습니다.
촥촥 잘 감아졌습니다.
이제 비바람 불 때, 창문을 통해 안쓰럽게 지켜봐 주지 않아도 되겠습니다.
FIN
간만에 개운.
'Life' 카테고리의 다른 글
Life | 선풍기 분해 청소하기 (0) | 2017.12.21 |
---|---|
Life | 쓰고 목적지에서 버리는 자전거 (0) | 2017.11.27 |
Life | Spartan Sprint, Korea - Saturday, September 23 2017 (0) | 2017.09.24 |
Life | Leatherman 레더맨 A/S 후기 (0) | 2017.08.27 |
Life | 에어콘 수리 도전기 (2) | 2017.08.07 |
1. Rotary Encoder
예전 전자 기기들의 볼륨 조절은, 최저/최고값이 표시되어 있고, 그 안에서만 움직이는 방식이었습니다.
요즘 나오는 자동차의 음성 조절이나 iPod 같은 전자기기의 볼륨도,
min/max 가 정해져 있지 않은 볼륨 조절 장치로 되어 있어요.
이를 Rotary Encoder 라고 부른다고 합니다.
제가 arduio 및 전자 취미시 처음으로 만져본 것은 "Transistor Tester" 라는 기기였습니다.
- http://chocoball.tistory.com/entry/Hardware-Transistor-Tester
왼쪽 / 오른쪽으로 끝없이 돌려도 되면서,
위로부터 꾹 누르면 스위치의 "select" 도 구현되어 있는 센서였습니다.
기술 발전이란...
2. 원리
원리는 원반에 구멍이 일정 간격으로 뚫려 있고,
파형상 90도 차이나는 광원을 배치해, 각각 입력되는 펄스의 변화를 가지고 방향 인지 및 count 를 한다 합니다.
입력 시그널은 아래와 같이 나오며, 시계방향과 반시계방향의 펄스 입력값의 차이에 따라 알수 있겠죠.
값의 변화는 다음과 같이 되구요.
시작점을 11 값이라고 본다면, 각 방향으로 돌렸을 때의 변화값이 다르다는 것을 알 수 있습니다.
결국 저 작은 뭉퉁이에 photo diode 와 conuter 가 들어있다는 거네요.
예전같으면 불가능 했겠지만, sensor 들이 작아지면서 가능한 부품이 탄생한 것 같습니다.
참고한 사이트는 아래 두곳입니다.
- http://howtomechatronics.com/tutorials/arduino/rotary-encoder-works-use-arduino/
- http://openhardware.ro/rotary-encoders-experiments/
3. AliExpress 에서 구매
Rotary Encoder 로 검색하면 여러가지 제품이 나옵니다.
그중에 가장 적당한 것으로 골랐습니다.
이걸 고른 이유는, 항상 LED 가 켜져 있어서 알려주는 indicator 가 없어서 였고 (눈부심),
괜찮게 저렴했기 때문이지요.
구매 링크는 다음과 같고, 사양은 아래와 같이 나와 있습니다.
"rotation counts are not limited" 라고 되어 있어서, 어느 방향으로나 영원히 돌릴 수 있고,
"With the buttons on the rotary encoder can be reset to its initial state, that starts counting from 0" 라고 되어 있어서,
버튼 스위치가 구현되어 있다고 하네요.
=======================================
100% Brand new and high quality
Material: Electronic components + PCB
Size: About 31 * 19 * 29mm / 1.22" * 0.75" * 1.14"
Main color: Black
Working voltage: 5V
Pulse circle: 20
By rotating the rotary encoder can be counted in the positive direction and the reverse direction during rotation of the output pulse frequency, unlike rotary potentiometer count, this rotation counts are not limited. With the buttons on the rotary encoder can be reset to its initial state, that starts counting from 0.
=======================================
다만, 가장 좋은 외형은 아래와 같이,
중간에 나사산이 있고, 윗부분에 어떤이라도 씌울 수 있는 돌기가 세겨져 있는 것이 좋을 듯 합니다.
비슷한 제품은 역시 괜찮은 sensor 들을 만들고 있는 SparkFun 에 있네요.
배송만 문제 없으면 이걸 구입하고 싶은데, 그냥 AliExpress 구매 제품으로도 만족합니다.
4. 도착
잊고 있었는데, 어느새 도착했습니다.
HDD 포장하는 것처럼 정전기 방지 비닐로 왔습니다.
필요한 단자는 다 있는 듯 합니다.
뒷면입니다.
중간에 R1 하나가 빠져 있는데, 괜찮은지 모르겠습니다.
아무래도 ripple 관련하여 있으면 좋지만 없어도 되는 부분을 뺀듯 합니다.
기회되면 나중에 10K 짜리 저항을 달아줘야겠습니다.
5. Layout
Pin 배열은 다음과 같습니다.
Rotay | Encder | Arduino Nano ------------------------- CLK | D2 DT | D3 SW | (empty) + | 3.3V GND | GND ------------------------- SSD1306 | Arduino Nano ------------------------- VCC | 3.3V GND | GND SDC | A5 SDA | A4 -------------------------
전체 layout 은 다음과 같아요.
6. Sketch
Sketch 소스는 다음 link 를 참조하였습니다.
- http://domoticx.com/arduino-rotary-encoder-met-oled-scherm/
원 저작자는
------------------------------------------------
"U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // Dev 0, Fast I2C / TWI"
------------------------------------------------
을 로딩했지만, 저는 SSD1306 OLED 이므로, 다음과 같이 수정하였습니다.
------------------------------------------------
"U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST);
// Fast I2C / TWI"
-----------------------------------------------
// U8glib Bibliotheek importeren #include "U8glib.h" // U8glib Bibliotheek configureren voor het juiste display U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fast I2C / TWI // Encoder pins configureren. int pinEncA=2; int pinEncB=3; static byte abOud; // Initialiseer status. volatile int teller = 0; // rotatie teller. int teller_oud; // oude rotatie teller. // Waarden voor variabel getal reserveren. enum {BufSize=6}; char tellerStr[BufSize]; void setup() { // Encoder pinnen instellen. pinMode(pinEncA, INPUT); pinMode(pinEncB, INPUT); // Interrupts instellen (pin hoog-laag verandering). // Interrupt 0 = Pin 2 op de Arduino UNO. // Interrupt 1 = Pin 3 op de Arduino UNO. attachInterrupt(0, pinActie, CHANGE); attachInterrupt(1, pinActie, CHANGE); u8g.setFont(u8g_font_5x8); // Lettertype instellen voor u8glib. } void loop() { // IF loop wanneer er aan de encoder is gedraaid. if (teller_oud != teller) { teller_oud = teller; snprintf(tellerStr, BufSize, "%d", teller); // Converteer de "teller" INT naar STR (tbv OLED scherm) // OLED scherm loop. u8g.firstPage(); do { u8g.drawStr(0, 10, "Encoder:"); u8g.drawBox(0, 14, 128, 16); // Teken een witte rechthoek, 0px vanaf links, 14px van boven, 128px breed, 16px hoog. u8g.setColorIndex(0); // zet kleur negatief (pixel uit). u8g.setScale2x2(); // maak het lettertype 2x groter. u8g.drawStr(25, 14, tellerStr); // print "teller" tekst. u8g.undoScale(); // zet het lettertype weer terug. u8g.setColorIndex(1); // zet de kleur positief (pixel aan). } while( u8g.nextPage() ); } // Overige code... } // Wanneer een interrupt heeft plaatsgevonden, lees de input pinnen, bereken nieuwe status, pas de telling aan. void pinActie() { enum { upMask = 0x66, downMask = 0x99 }; byte abNieuw = (digitalRead(pinEncA) << 1) | digitalRead(pinEncB); byte criteria = abNieuw^abOud; if (criteria==1 || criteria==2) { if (upMask & (1 << (2*abOud + abNieuw/2))) teller++; // tel naar boven. else teller--; // tel naar beneden. } abOud = abNieuw; // bewaar nieuwe status. }
7. 구동
아래는 실제 구동 영상 입니다.
IDE 로 메뉴 프로그래밍만 잘 하면 멋진걸 만들 수 있을것 같습니다.
FIN
단순한 입력 센서가 아닌, 설정하고 조정하는 조절센서로는 처음인것 같습니다.
여러가지로 활용해 봐야지.
'Hardware' 카테고리의 다른 글
Hardware | AliExpress 에서 condenser 를 구입해 보자 (0) | 2017.11.21 |
---|---|
Hardware | VL53L0X 레이저 거리 측정 센서 사용해 보기 (8) | 2017.10.12 |
Hardware | Magnetic Charging Cable 을 구매해 보자 (0) | 2017.09.25 |
Hardware | SSD1306 monochrome OLED 를 가지고 VU meter 를 만들어보자 (0) | 2017.09.19 |
Hardware | TSSR 3.5mm audio jack 구매하기 (0) | 2017.09.19 |
1. Lightning Charging Cable
iPhone 충전에 사용되는 케이블은 조금 쓰다보면 커넥터쪽이 말리면서 부스러집니다.
그러면서 단선이 생기지요. 요렇게...
Apple 정품으로 주는 번들 케이블이 매번 이정도이면, 뭔가 대책을 만들어야 할 터인데,
맨날 재구매를 하게 만듭니다.
아니면 써드파티 제품을 구매하게 하면서 생태계 공헌?
2. 자석 커넥터
언제부터인가 이 단자의 문제를 해결하기 위해,
아예 단자를 꼽아 놓고 자석으로 붙였다 띠었다 할 수 있도록 만든 아이디어 제품이 나오기 시작했습니다.
제가 자주가는 Kickstarter 의 클라우드 펀딩 사이트에는 2년 전부터 나오기 시작한것 같아요.
지금도 많은 비슷한 제품이 올라와 있네요.
인기가 좋은 제품을 우리 대상인들이 가만 놔둘리가 없겠죠?
3. AliExpress
작년까지만 해도 10 USD 이상으로 꽤 비쌌던 Magnetic Charging Cable 들이 5 USD 아래로 떨어졌습니다.
구매 적기인 듯 합니다. 마침 "정품" 충전 케이블도 망가졌구요. (위 사진)
AliExpress 에서 검색해 보면, 대표적으로 두가지 제품이 나옵니다.
제조사는 동일한 Garas.
케이블 보호를 위해 섬유로 덮혀있는 좋아보이는 제품이 3.54 USD 로 더 싸네요.
* 3.54 USD
위의 제품을 색깔별로 3개를 구입하고,
혹시 모를 차이점을 알고 싶어서, 여분 1개를 아래 비싼 제품으로 주문했습니다.
* 4.66 USD
4. 도착
한 3주 걸려서 도착하였습니다.
포장은 안쪽에 뽁뽁이 봉투로 왔습니다.
자석부분이 좀 예민해 보이긴 하지만, 무난한 포장입니다.
섬유 케이블로 덮혀있는 제품은, 블링블링 금색/은색/검정으로 하였습니다.
가장 무난한 은색 케이블을 뜯어 봤어요.
Lightning 단자에 붙여넣고, 자석으로 연결되는 부분입니다.
자석이 네오디뮴 (Neodymium) 인듯 합니다. 엄청 잘 붙어요.
내구성은 조금 써봐야 알것 같습니다.
각 라인들은 저렇게 연결되게 해 놨습니다.
각 선을 눌러보면 쿠션처럼 들어가는 것을 보면, 안에 스프링이 들어있나 봅니다.
섬유 케이블로 쌓여있지 않은, "비싼" 버전의 케이블 입니다.
더 비싼 이유는 찾지 못하였습니다.
아마도 예전에 올린 제품으로 가격변동 없이 그대로 판매되고 있던것 같아요. (한놈만 걸려라?)
새로 구매하실꺼면, 보다 저렴하면서 섬유 케이블로 둘러쌓인 버전으로 구매하세요.
섬유 케이블 버전 한곳에 모아서 샷.
5. 구동 영상
실제로 충전한 동영상 입니다.
이미 충전이 완료되어 있으면, 충전 ready 상태의 불빛이 들어왔다가,
다시 조금 사용되면 충전 불빛 (좀 약한) 이 들어왔다가, 왔다갔다 합니다.
논리회로가 좀 약하군요.
충전을 계속해야 하는 경우는, ready 불빛이 충전 불빛으로 변합니다.
FIN
이하 총평입니다.
1. 자석으로 찰싹 붙고 떨어지는 구성으로 너무 너무 편하고 좋음.
2. 충전중이 아닐때에는 ready 상태인데, 무조건 고휘도 LED가 점등되어 있어 눈이 아픔. (저녁에 방 후레쉬 대용)
3. 완충 후, 불빛이 ready / 충전중 상태의 불빛으로 계속 왔다갔다 함.
4. 가격이 저렴하니, 여러군데 뿌려놓고 다니기 편함.
5. 자주 쓰다보면 급하게 분리시켰는데, 나중에 알고보면 단자까지 빠져있슴 !!!
좀 마무리가 아쉽지만, 이 가격에 막 쓰기에는 적당할것 같아요.
또한, iOS 11 로 업데이트하면 3rd party 제품은 동작 안한다 했는데, 잘 동작합니다. :-)
'Hardware' 카테고리의 다른 글
Hardware | VL53L0X 레이저 거리 측정 센서 사용해 보기 (8) | 2017.10.12 |
---|---|
Hardware | Rotary Encoder 를 사용해 보자 (0) | 2017.10.01 |
Hardware | SSD1306 monochrome OLED 를 가지고 VU meter 를 만들어보자 (0) | 2017.09.19 |
Hardware | TSSR 3.5mm audio jack 구매하기 (0) | 2017.09.19 |
Hardware | Adafruit SSD1306 128x64 1.3" monochrome OLED 를 사용해보자 (0) | 2017.09.19 |
1. Spartan Race
한 3년 전부터 스파르탄 레이스에 참가하고 싶었습니다.
왜냐구요?
평범한 달리기 레이스가 아닌, 진흙을 구르고 장애물을 넘는 험난한 레이스가 끌려서지요.
그리고 레이스 이름이 아래 사진을 연상시켰습니다.
흠... 좋은것 같아요.
2. 동료를 꼬셔라
물론 남자들은 혼자 하는것을 좋아하지만,
운동은 같이 하는것이 더 재미가 있습니다.
회사에서 운동 같이하는 사람들 몇몇을 포섭해 나가기로 했습니다.
무려 7명이 되었네요.
(사생활 보호차원에서 눈을 가렸습니다)
(사생활 보호차원에서 눈을 가렸습니다)
(사생활 보호차원에서 눈을 가렸습니다)
(사생활 보호차원에서 눈을 가렸습니다)
2명은 Super 레이스에 나가면서 저를 포함한 나머지 5명과는 다른 세계에 들어가셨습니다.
같은 대회장이더라도 시간도 틀리고 사람도 너무 많아서 만나지도 못했습니다.
위의 사진은 경기 전의 모습. 다들 깔끔하네요.
경기 완료후는 거지꼴이 됩니다.
3. 대회 안내
대회 등록을 하면 레이스 1주일 전에 안내 사이트가 열립니다.
- http://spartanracekr.com/guide/kr.html
올해 6월달은 강원도에서 스키장 슬로프를 거꾸로 올라가면서 경기를 치뤘다고 했는데,
올해는 인천공항 앞이라서 평지가 되었네요.
난위도는 훨씬 낮아졌을것 같았습니다.
아래 안내사진으로 경기에 관련하여 궁금한 분들이 많이 해소될 듯.
4. 대회장
대회장 근처에는 주차를 할 수 없으니, 지정된 곳에 주차를 하고 셔틀버스를 이용하여 경지장까지 이동합니다.
경기장에 도착하면 갑짜기 허허 벌판에 입구가 나옵니다.
저기서 서약서를 씁니다. 뭐 다치면 어쩌고 저쩌고 겠죠? 그냥 작성합니다.
Sprint 와 Super 의 전체 설명입니다.
제가 참석하는 Sprint 는 8.5Km / 23개 장애물이네요.
내년에는 Super 에 도전해 보고싶네요.
11:45 시간 출발이라서, 일찍 도착하여 조금 지겨웠습니다.
지겨운 시간을 해결할 부스가 많으면 좋겠지만, 이번에는 역대 최악이라고 하더군요.
다른분들의 블로그를 봐도 이번 운영은 부실한 면이 많이 보였습니다.
출발 15분 전에 이렇게 모여서 몸풀기를 단체로 한 후,
구호를 외치고 출발하게 됩니다.
5. 경기
경기 사진은 없습니다.
제가 액션캠이 없거든요.
레이스 하는데 사진찍고 돌아댕길 여유는 없어서 소중한 아이폰은 짐에 맞긴 뒤였습니다.
경기시 느낀 점입니다.
---------------------------------------------------------------------
1. 평지가 아니라서 재미 있었다. 수풀도 헤집고, 개울도 건너고.
2. 초반에 우르르 몰려갈때 침착하게 하자. 분위기 휩쓸려서 허겁지겁 하다 다치는 사람 봤다.
3. 장애물에 외국인 분들이 가이드를 하고 계셔서 영어를 모르시는 분들은 그냥 막 함.
특히 높은 장애물에는 여성용 발돋움판이 있는데, 여성용이라고 소리를 질러도 막 사용하는 사람들이 보였습니다.
4. 장애물을 못하면 버핏 30회를 해야 하는데, 관리가 안되니 다들 웃으면서 다음 장애물로 가더군요.
눈에 띄는건, 외국인들은 자진해서 30회를 하는데, 한국사람들은 10이면 9는 하지 않고 갔습니다.
(저는 했어요~. 버핏만 120개 했습니다 - 4개 장애물 실패)
결과를 중시한 교육과, 과정을 중시한 교육의 차이가 느껴졌습니다.
5. 장갑은 필수
헤라클레스 호이스트 할 때, 몸무게가 있어 들어 올리는데 문제가 없는데,
손바닥이 홀라당 까질뻔 했습니다. 다음에는 3M 것을 꼭 가져가야겠어요.
손의 땀이 잘 마르며, 통풍이 잘 되고, 접지력이 좋은 장갑을 찾아야 겠습니다.
---------------------------------------------------------------------
6. 완료
레이스 종료하면, 조금 있다가 바로 등록된 스마트폰으로 문자가 옵니다.
23개 장애물인데, 센서가 설치된 곳은 마지막 부분의 몇개만 해 놓은것 같더군요.
Sand Back 과 Dunk Wall 에 찍힌 내용이 옵니다.
최종 레이스 결과는 2시간 1분 36초였습니다.
마지막은 불위를 점프하는 장애물인데, 일생 일대의 샷을 받기 위해 10명정도 보내고
혼자 찍힐 수 있게 기다리다 보니 2시간이 조금 넘어버렸네요. (헤헤)
종료 후, 시멘트 볼 옮기기 몇 Kg 일까 하고 이야기 있었는데,
찾아보니 50Kg 이었군요. 자동으로 욕이 렙으로 나오는 장애물이였습니다.
* 킹콩님의 블로그
이거 끝나고 바로 구름사다리가 있었는데,
아귀힘이 빠져서 실패. 버핏 30회 했습니다.
그 다음, 버스 손잡이 구름사다리였는데, 손바닦이 까였습니다.
역시 경기는 티를 내야 한것같은 느낌이 듭니다. (하하)
메달입니다 !!!
하나씩 경기를 치루면 한개의 메달을 완성할 수 있다고 합니다.
다음에는 Super / Beast 도전하여 메달을 완성하고 싶습니다.
등번호는 8367.
중간에 번호표 뒤 2자리에 연관된 password 와 숫자를 외우고, 몇개의 장애물 통과 후 물어보는 코스가 있는데,
얼마나 열씸히 외웠는지, 하루가 지난 지금도 확실히 기억납니다.
"BIATHLON - 0802"
Biathon 이 뭔지 경기중에는 몰랐는데, 가끔 동계 올림픽 중계시 봤던 종목 이름이었네요.
이렇게 해서 영어 단어 +1 암기 되었습니다.
- https://en.wikipedia.org/wiki/Biathlon
그거 통과 못해서 버핏 하는 분들이 가끔 보였습니다.
(우리 동료 중 한분도 당첨)
안내장 받은거.
안내장 내용입니다. 앞면.
웹사이트에 올린 내용이 가이드 책에 다 나왔습니다.
7. 최종 결과
경기를 기획한 곳의 사이트에 결과가 올라왔습니다.
11시 45분 출발 그룹 71명 중에서는 42로 들어왔습니다.
너무 솔직하게 버핏을 했나?
나중에 중간중간 찍힌 사진이 올라오면 update 하겠습니다.
FIN
이하 아쉬운 점...
1. 기다릴때 즐길 수 있는 부스가 너무 적었다.
2. 경기중 버핏 감독은 철저하게 하는게 경기를 더 살릴 수 있을것 같다.
(실패해도 실실 웃으면서 버핏 안하고 통과함. 다들 마실 나온 듯 함.)
3. 샤워 도중 물이 끊겼다 !!! 내 옆에서 샴프로 머리감던 여성분 어떻게 해...
4. 짐 찾는 줄이 너무 길었다. 한 40분 기다려서 접수대에 갔더니, 직접 찾으라고 해서 찾았다. 스텝들 모두 우왕자왕.
5. 바로 옆에 보이는 Paradise City 호텔은 당일날 예약이 불가능 했다. 스텝들이 거의 다 예약한 듯.
8천명 이상이 참여한, Sprint 8만원대 / Super 10만원대의 비용인데도, 그 만한 만족을 할 수 있게 구성한 것일까?
스파르탄 레이스가 시작된지 몇년이 지난걸로 아는데, 운영진들이 바뀐게 아닌가 하는 생각이 든다.
그렇지만, 내년 6월에 있을 경기에 Super 로 참가하려고 한다.
열씸히 운동해서 버핏하지 말아야지.
'Life' 카테고리의 다른 글
Life | 쓰고 목적지에서 버리는 자전거 (0) | 2017.11.27 |
---|---|
Life | 전기절연용 고무 장착테이프 (0) | 2017.10.11 |
Life | Leatherman 레더맨 A/S 후기 (0) | 2017.08.27 |
Life | 에어콘 수리 도전기 (2) | 2017.08.07 |
Life | 펑크린을 이용하여 세면대를 뚫어보자 (0) | 2017.07.27 |
1. SSD1306 OLED
SSD1306 monochrome OLED 0.96" 를 가지고 신나게 놀았습니다.
- http://chocoball.tistory.com/entry/Hardware-SSD1306-128x64-monochrome-OLED
그러던 와중에 VU meter 를 구현한 분의 link 를 찾게 됩니다.
여기에 나와있는 모든 내용은 Arduino Forum 에 올린 "stievenart" 라는 분의 글을 따라한 것임을 밝힙니다.
- https://forum.arduino.cc/index.php?topic=403234.0
VU meter 라는 것은 예전에 전축을 보면, 소리의 강도를 나타내는 아나로그 미터기 입니다.
- https://en.wikipedia.org/wiki/VU_meter
이런 멋진걸 구현해 놓네요.
2. Layout
위의 링크 그대로 참조해서 연결합니다.
128X64 OLED | Arduino Nano ---------------------------- GND | GND VCC | 3.3V SDA | A4 SDL | A5 ---------------------------- TSSR Audio | ---------------------------- SLEEVE | GND TIP | A0 ----------------------------
Pin 연결 모습입니다.
3. Bitmap 만들기
방법은 Bitmap 파일을 128x64 pixel 로 만들고,
그것을 code 화 하면 됩니다.
모든것은 link 에서 설명되어 있습니다.
- https://forum.arduino.cc/index.php?topic=403234.0
Bitmap 을 LCD 용의 데이터로 만들어 주는 것은 "Image2GLCD" 이라는 어플이라고 합니다.
- http://www.ablab.in/image2glcd-software/
아래 bitmap 파일은 이 project 를 만든 사람이 직접 구성한 사진 입니다.
위의 bitmap 을 LCD용으로 데이터화 하면 아래와 같이 된다고 하네요.
// VU meter background mask image: static const unsigned char PROGMEM VUMeter[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x03, 0x00, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x09, 0x04, 0x80, 0x21, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x98, 0x08, 0x06, 0x03, 0x80, 0x21, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x10, 0x09, 0x00, 0x80, 0x21, 0x20, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x10, 0x06, 0x03, 0x00, 0x20, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x80, 0xA4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x40, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x40, 0x00, 0x00, 0x02, 0x01, 0x00, 0x40, 0x80, 0x07, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x42, 0x40, 0x00, 0x08, 0x02, 0x01, 0x08, 0x40, 0x80, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x79, 0x80, 0x04, 0x08, 0x02, 0x01, 0x08, 0x81, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x02, 0x01, 0x08, 0x81, 0x11, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x02, 0x01, 0x08, 0x81, 0x21, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x84, 0x02, 0x04, 0x0F, 0xFF, 0xFF, 0xC3, 0xE2, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x01, 0x07, 0xF0, 0x00, 0x00, 0x3B, 0xFE, 0x08, 0x40, 0x40, 0x08, 0x00, 0x00, 0xFE, 0x00, 0x62, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xE8, 0x40, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x21, 0x1E, 0x00, 0x04, 0x00, 0x80, 0x00, 0x7F, 0xFE, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x03, 0x31, 0xE0, 0x00, 0x04, 0x00, 0x80, 0x04, 0x01, 0xFF, 0xC1, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x1E, 0x00, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x1F, 0xFA, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x40, 0x3B, 0x07, 0x60, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x34, 0x81, 0x90, 0xCC, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x03, 0x30, 0x0C, 0x82, 0x90, 0x53, 0x20, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x70, 0x40, 0x00, 0xC8, 0x3B, 0x02, 0x60, 0x53, 0x20, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x01, 0x80, 0x20, 0x01, 0xC8, 0x00, 0x00, 0x00, 0x4C, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x08, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x30, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x40, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xA0, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x02, 0x02, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x06, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x8C, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x70, 0x19, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
4. Sketch
제작자가 만든 sketch 입니다.
한가지 주의할 점은, 원 제작자는 "SH1106" 을 사용했으므로, "SSD1306" 으로 모두 바꿔줘야 합니다.
수정할 곳은 3군데 입니다.
Library 는 Adafruit 용을 사용했으므로, 동일하게 사용하면 됩니다.
모두 SSD1306 으로 수정한 sketch 입니다.
/* OLEDMeter was written to utilize any 128x64 display. I have only seen marginal attempts to * animate meters and I hope this one will set a standard. Please feel free to modify and share * this code for any 128x64 LCD or OLED. OLEDMeter sketch was written for use with I2C SH1106. * This code must be modified to work with other display devices. * * Working portion of code was taken from Adafruit Example Sound Level Sketch for the * Adafruit Microphone Amplifier * https://learn.adafruit.com/adafruit-microphone-amplifier-breakout/measuring-sound-levels * * Remaining code was written by Greg Stievenart with no claim to or any images or information * provided in this code. Freely published May 26, 2016. * * Software to convert background mask to 128x64 at: http://www.ablab.in/image2glcd-software/ * * IMPORTANT: Sound source must be grounded to the Arduino or other MCU's to work. Usually the * base sleeve contact on TRS or TRRS connector is the ground. */ #include "Wire.h" // requried to run I2C SH1106 #include "SPI.h" // requried to run I2C SH1106 #include "Adafruit_GFX.h" // https://github.com/adafruit/Adafruit-GFX-Library #include "Adafruit_SSD1306.h" // https://github.com/wonho-maker/Adafruit_SH1106 #define OLED_RESET 4 // reset required for SH1106 Adafruit_SSD1306 display(OLED_RESET); // reset required for SH1106 int analogInput = A0; // analog input for outside audio source int hMeter = 65; // horizontal center for needle animation int vMeter = 85; // vertical center for needle animation (outside of dislay limits) int rMeter = 80; // length of needle animation or arch of needle travel const int sampleWindow = 50; // sample window width in mS (50 mS = 20Hz) unsigned int sample; // VU meter background mask image: static const unsigned char PROGMEM VUMeter[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x03, 0x00, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x09, 0x04, 0x80, 0x21, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x98, 0x08, 0x06, 0x03, 0x80, 0x21, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x10, 0x09, 0x00, 0x80, 0x21, 0x20, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x10, 0x06, 0x03, 0x00, 0x20, 0xC0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x80, 0xA4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x40, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x40, 0x00, 0x00, 0x02, 0x01, 0x00, 0x40, 0x80, 0x07, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x42, 0x40, 0x00, 0x08, 0x02, 0x01, 0x08, 0x40, 0x80, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x79, 0x80, 0x04, 0x08, 0x02, 0x01, 0x08, 0x81, 0x10, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x02, 0x01, 0x08, 0x81, 0x11, 0x04, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0x02, 0x01, 0x08, 0x81, 0x21, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x84, 0x02, 0x04, 0x0F, 0xFF, 0xFF, 0xC3, 0xE2, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0xC2, 0x01, 0x07, 0xF0, 0x00, 0x00, 0x3B, 0xFE, 0x08, 0x40, 0x40, 0x08, 0x00, 0x00, 0xFE, 0x00, 0x62, 0x01, 0xF8, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xE8, 0x40, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x21, 0x1E, 0x00, 0x04, 0x00, 0x80, 0x00, 0x7F, 0xFE, 0x80, 0x80, 0x08, 0x00, 0x00, 0x00, 0x03, 0x31, 0xE0, 0x00, 0x04, 0x00, 0x80, 0x04, 0x01, 0xFF, 0xC1, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x1E, 0x00, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x1F, 0xFA, 0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x40, 0x3B, 0x07, 0x60, 0x00, 0x00, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x34, 0x81, 0x90, 0xCC, 0xC0, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x03, 0x30, 0x0C, 0x82, 0x90, 0x53, 0x20, 0x00, 0x07, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x70, 0x40, 0x00, 0xC8, 0x3B, 0x02, 0x60, 0x53, 0x20, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x01, 0x80, 0x20, 0x01, 0xC8, 0x00, 0x00, 0x00, 0x4C, 0xC0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x06, 0x00, 0x00, 0x03, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x08, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x00, 0x00, 0x30, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x40, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xA0, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x02, 0x02, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x03, 0x06, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x8C, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x70, 0x19, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; void setup(){ pinMode(analogInput, INPUT); // analog input for outside audio source display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // needed for SH1106 display display.clearDisplay(); // clears display from any library info displayed } void loop(){ /*********************************************************************** Start of code taken from Adafruit Example Sound Level Sketch for the Adafruit Microphone Amplifier ************************************************************************/ unsigned long startMillis = millis(); // start of sample window unsigned int PeaktoPeak = 0; // peak-to-peak level unsigned int SignalMax = 0; unsigned int SignalMin = 1024; while ( millis() - startMillis < sampleWindow ){ sample = analogRead(analogInput); if (sample < 1024) { if (sample > SignalMax){ SignalMax = sample; // saves just the max levels } else if (sample < SignalMin){ SignalMin = sample; // saves just the min levels } } } PeaktoPeak = SignalMax - SignalMin; // max - min = peak-peak amplitude float MeterValue = PeaktoPeak * 330 / 1024; // convert volts to arrow information /**************************************************** End of code taken from Adafruit Sound Level Sketch *****************************************************/ MeterValue = MeterValue - 34; // shifts needle to zero position display.clearDisplay(); // refresh display for next step display.drawBitmap(0, 0, VUMeter, 128, 64, WHITE); // draws background int a1 = (hMeter + (sin(MeterValue / 57.296) * rMeter)); // meter needle horizontal coordinate int a2 = (vMeter - (cos(MeterValue / 57.296) * rMeter)); // meter needle vertical coordinate display.drawLine(a1, a2, hMeter, vMeter, WHITE); // draws needle display.display(); }
5. 구동
아래는 실제로 구동한 사진 입니다.
iPhone 에서는 Youtube 로 동영상을 play 하였습니다.
곡 제목은 제가 좋아하는 피아니스트인 Valentina Lisitsa 가 연주한, 제가 좋아하는 "베토벤 월광 제3악장" 입니다.
(Beethoven "Moonlight" Sonata op 27 # 2 Mov 3)
- https://www.youtube.com/watch?v=zucBfXpCA6s
신기하게 잘 동작하는군요.
선명하게 눈금이 잘 보입니다.
가리키는 바늘도 잘 동작합니다.
눈금이 잘 반응하는게 보이죠?
흠흠... 좋습니다.
아래는 동영상 입니다.
FIN
우선 "stievenart" 님의 글을 구동 부분만 빼고 인용했음을 밝힙니다.
OLED 로 놀 수 있는 방법은 무궁무진한 것 같습니다.
'Hardware' 카테고리의 다른 글
Hardware | Rotary Encoder 를 사용해 보자 (0) | 2017.10.01 |
---|---|
Hardware | Magnetic Charging Cable 을 구매해 보자 (0) | 2017.09.25 |
Hardware | TSSR 3.5mm audio jack 구매하기 (0) | 2017.09.19 |
Hardware | Adafruit SSD1306 128x64 1.3" monochrome OLED 를 사용해보자 (0) | 2017.09.19 |
Hardware | SSD1306 128x64 monochrome OLED 를 사용해보자 (0) | 2017.09.14 |