Friday, September 25, 2015

[일상] 절박함.


어제밤 자기전 아이언맨3를 잠시 보다가 '절박함' 이라는 단어를 듣고 내 머릿속에서 번쩍하는 느낌이 들었다.

아이언맨3의 나쁜녀석이 과거에 토니 스타크가 무시했던 행동으로 인해 자신의 절박한 심정과 그 빌딩 위에서 무언가를 다짐하는 듯한 장면은 왠지 나에게 큰 공감을 불러 일으켰다.

사실 남들이 보기엔 내가 그렇게 절박하지 않아 보일 수도 있다. 하지만 사람이라는게 다 편차가 있으니 지금 나 자신은 이 세상에서 제일 '절박한' 사람이다.

가끔 '내가 왜 창업을 해야하는가?' '나는 왜 창업이 하고 싶은가?' 라는 말을 마음속으로 질문해 보지만 수많은 이유들로 답을 만들려고 해도 딱히 그렇게 딱 맞아 떨어지는 것은 없다. 그나마 답이라고 생각할만한 것들은 '남들 밑에서 더이상 일 못하겠어서?' '도데체 회사 운영하는게 얼마나 힘들고 어렵길래 이지경까지 되는거지?' '이런 사람들도 하면 나도 할 수 있을 것 같은데?' 이런 '오만한' 생각들이 내 머릿속을 채우게 된다. 그래도 회사 하나를 10년 이상 이끌었다는 것은 나 자신조차도 결과적으로 말해서 그 사람을 굉장히 대단한 사람이라고 생각한다. 하지만 왠지 내 욕심엔 '더 잘할 수도 있지 않았을까?' 라는 생각도 든다. 참 '오만'하지 아니할 수 없다.

요즘 홀로서기를 위해 부단히 노력하고 잠조차도 안오는 상황까지 와있는데 한편으로는 왜 나자신을 이렇게 절벽끝까지 몰았나 라는 생각도 들지만 이런 모든 상황들이 현재 내가 겪고 있는 상황 때문이 아닌가 라는 생각도 든다. 맘에 들지 않고 하고 싶지 않고 견디고 싶지 않지만 그렇게 할 수 밖에 없는 내 상황이 나를 더 절벽까지 밀게 한다. 내가 지금 하고 행동하는 것들은 절벽에서 떨어져 죽지 않기 위해 발버둥 치는 것이다.

난 아직 잘 모른다. 왜 이 사람들이 이렇게 밖에 할 수 없었는지 욕할 수 없다. 내가 실패한다면 이 사람들이 왜 그랬는지 이해하고 얼마나 대단했었는지 얘기하고 돌아다닐꺼다.

하지만 만약 내가 지금의 생각들이 '오만함'이 아닌 것을 후에 깨닫게 된다면 지금의 이 사람들이 얼마나 멍청했고 이 세상의 암같은 존재였는지 반드시 일깨워 주리라.

Wednesday, September 16, 2015

[ARDUINO] 아두이노 Wifi 쉴드, SD CARD, TFT LCD SPI 통신 문제




이번에 얘기할 내용은 아두이노 공식 쉴드 들의 문제점에 대해서 얘기해 보고자 한다.

일단 위 사진의 두개 제품은 Wifi + microSD 모듈, TFT-LCD + microSD 제품들이다. 이 제품들의 공통점이 있는데 바로 아두이노의 MISO, MOSI, SCK 핀을 이용한 SPI 통신을 한다는 것이다.

사실 이 SPI 통신은 공용 버스로 물려서 Master 와 Slave 간에 통신이 가능한다 아두이노의 경우 라이브러리가 Master만 지원이되며(Slave 동작시킬려면 라이브러리 수정 필요) 다른 쉴드들은 Slave가 되어 서로 통신하게 되어있다.

이런 여러 Slave들과 통신하려면 CS(Chip Select) 또는 SS라는 핀을 LOW(HIGH신호가 동작 안함임) 로 만들어서 동작시켜야 하는데 기존에 라이브러리들은 모두 Slave가 동작할 때만 CS 신호가 동작하여 서로 겹치지 않게 코딩 되어 있다는 것이다.

그런데 문제는 여기서 발생한다. 바로 Wifi + TFT-LCD 는 잘 동작이 되나 microSD를 동작시키면 Wifi와 충돌이 일어나는 것!?

CS를 강제로 HIGH로 만들어 SD 카드를 멈추어도 일단 SD 카드가 init 되면 MISO 핀으로 동작되는 Wifi 모듈이 동작 되지 않는 것이다.

아.. 멘붕..  이후 구글신께 찾아봤는데 해외에서도 같은 문제로 질문올린 글들이 있었다. 우선 국내 유져의 블로그를 통해 봤는데 정품끼리 연결하면 안된다고 설명되어 있던것.
(http://coalamovement.tistory.com/entry/%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-wifi-shield-%EA%B0%9C%EB%B0%9C-6-%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-wifi%EC%89%B4%EB%93%9C-%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-tft-lcd)

거기다 아두이노 정식 홈페이지에도 SD카드와 wifi 동시 사용시에는 거기에 맞는 라이브러리를 사용하라는데 희한하게 동시에 사용한 예제가 어디에도 없었다(신기...)

그리고 해외 싸이트에서 같은 문제로 질문 올린 애들의 답변에도 다들 SD_CS 핀을 HIGH로 만들면 되야 한다는 것...

여기서 또다시 멘붕... (이놈들 해보고나 하는 소린가?)

일단 여기까지 하루 정도 조사하고 삽질한 바로는

문제1. microSD와 Wifi 모듈을 동시에 동작시키면 안되는데 코드에서 wifi 먼저 초기화 하고 microSD 초기화하면 microSD가 됨. 이후 wifi 동작 안됨

문제2. microSD 먼저 초기화하고 wifi 모듈 초기화하면 wifi 초기화 안됨.

이것을 통해 우선 microSD가 문제라는 것을 알았고 해외블러거들을 통해서 이것이 microSD의 MISO 핀이 문제가 된다는 것을 알았다. 이후 스코프로 SD_CS를 찍어봐도 분명 HIGH 인데 MISO 핀이 Hi-Z 상태가 되지 않기 때문에 Wifi 모듈이 문제가 된다는 것을 예측!!

자.. 문제를 알았으니 반이상 온거다!!

그럼 어떻게 해결할 것이냐? microSD 카드의 spi 타이밍도와 데이타시트를 보기 시작 ...

그러다 문득 내가 가진 microSD 문제인가? 라는 생각에 다른 microSD를 꼽아 보았는데 ㅠ 어무니 ㅠ 되네?

안되던 microSD는 삼성모바일 Ultra XCI 16G.. 되는건 memorette HC 16G 희한하네.. 삼성이 구린건가 ㅎ

이제 잘되겠다 싶어서 TFT를 연결하였으나 TFT의 경우 회로상의 문제로 MISO 핀 때문에 또다시 안됨.

문제도 알고 해결책도 안다. 그러나 하드웨어적인 문제로 TFT, Wifi, SD는 서로 융합할 수 없는 문제 ㅠ

그래서! TFT-LCD 회로를 보니 이를 돌파할 수 있는 방법을 발견!!



정말 천운이다. TFT-LCD의 MISO 핀이 3-State Buffer 가 달려있는 것이 아닌가!!! ㅠㅠ 어무니

이게 무슨 말인고 하니 정리하자면

원래 spi 통신에서 slave로 잡히는 쪽은 cs핀이 HIGH 일 때 MISO 핀이 Hi-Z 상태가 되어야 하는 것이 맞다. 그러나 다른 모듈의 하드웨어 회로, 또는 microSD 장치의 문제로 인해서 cs핀이 HIGH임에도 불구하고 MISO가 이상하게 Hi-Z로 안빠지는 것!

TFT-LCD의 경우 MISO핀을 3-State Buffer로 잡아놨는데 아마 이것은 3.3V를 5V로 Level-shift 할려고 했던것 같다. 운좋게도 저기 1번핀이 /OE 핀인데 Active Low 라서 GND에 물려 있는상태... 이것을 바로 SD_CS에 물리면 서로 딱 맞아 떨어지는 천의 운이!!! (설마 TFT-LCD 설계자가 이것을 염두에 두고!?)

어쨋든 작은 패키지의 IC를 띄고 저 핀을 막은다음 SD_CS 핀으로 점퍼선을 날렸다.


확대해서 보이나 모르겠지만 포스트잇 작게짤라서 1번픽 막고 점퍼선 날림 ㅎㅎ

이후에 해봤는데 이건 MISO 핀을 원천적으로 SD_CS에 맞게 Hi-Z로 바꾸다 보니 어떤 microSD를 사용하건 상관 없다는 것~~

혹시나 나같은 고민을 하던 분에게 도움이 되길 바라고~

이후 SD카드에서 이미지를 여러번 읽다가 오류나면 아래 블로그 참조 하시길!
http://forum.arduino.cc/index.php?topic=168131.0

모두들 화이팅!

Friday, September 11, 2015

[제품리뷰] arduino.cc vs arduino.org - 2


이전의 내용과 이어서 적어보겠다.

필자가 이번 사건을 알게된 것은 아두이노의 32bit 버전인 ARDUINO DUE를 검색하면서 부터이다. 그러다보니 최근에 잇슈인 ARM社의 CORTEX M0 로 만든 버젼인 ARDUINO ZERO를 찾게되고 그러다보니 알게된 것이 'ARDUINO.ORG' 다.

'헛?' 이건머지? arduino.cc 와 arduino.org라니??

게다가 현재 필자의 PC에 깔려 있는 아두이노 IDE에는 arduino zero라는 버전 자체를 지원하지 않고 있다는 것?

역시나 구글 신에게 질문을 통해서 알아낸 사실이 있으니

최근 이라고 해봤자 올해 1월 법정분쟁이 일어났으니 아마 싸움은 조금 긴시간동안 일어나지 않았었나 생각된다.

원래 우리가 알고있던 오리지날 아두이노는 arduino.cc 즉 Arduino LLC 라고 한다. 그런데 이 아두이노로부터 파생되서 새로 프로젝트를 진행하던 것이 있는데 이게 Smart Projects Srl 즉, 현재 법적 분쟁이 되고 있는 Arduino Srl 이라고 부르고 arduino.org 의 주인 되시겠다.

왜 이런일 발생했는고 하니? 아마 내부적으로 문제가 좀 있었던 듯 하다. 아두이노 자체가 원래 오픈 플랫폼으로부터 시작했고 처음 이를 시작했던 설립자들이 있었는데 부가 프로젝트로 진행하면서 라이센스비를 지불하고 있다가 설립자 중 한명을 영입하면서(사실 이놈이 나쁜놈일지도?) 사실상 ARDUINO LLC 와 ARDUINO Srl 두 진영으로 나눠지게 된 것 같다.

싸움은 올해 1월에 본격적으로 법적 분쟁이 시작되었는데 ARDUINO LLC에서 ARDUINO Srl을 고소하면서 부터 시작되었다. (관련 링크 - https://dockets.justia.com/docket/massachusetts/madce/1:2015cv10181/167131)

재미있는게 최근에 계속 버전업되고 업데이트되고 있는 것들을 보면 이번에 새로 시작된 ARDUINO Srl 이 ARDUINO LLC 보다 더 발빠르고 스타트업 느낌나는 초고속 개발을 진행하고 있다는 것이다. 심지어 아두이노 IDE에서 벗어나서 아두이노 Stdio 까지 알파버전 진행이 되고 있다는 것.

거기에 32bit CPU를 이용한 진입을 보면 가히 짭퉁이 진퉁보다 더 잘 나간다라는 말이 맞지 않나 싶다.

사실 유저 입장으로서는 어디가 승리하던 딱히 큰 기대는 되지 않는다. 다만 필자의 마음으로는 오리지널이 당연히 승리해야 한다고 생각하지만 머리로는 기술개발이나 현재 진행되고 있는 속도를 보면 이미테이션이 승리해야 더 편하고 쉽게 고급기술을 접할 수 있지 않나 라는 생각도 든다.

아 .. 이 필자 조차도 마음과 머리가 싸우는 내용인데 과연 이 싸움의 끝은 어떻게 될려나?

다만 심히 걱정되는 것은 이번 분쟁으로 인해 오리지널이 지게되면 이것이 선례가 되어 앞으로는 오픈 소스 하드웨어가 나오는일은 더욱 드물게 될 것 같다.

[제품리뷰] arduino.cc vs arduino.org - 1

이번에 재미있는 내용을 알게되어서 한번 얘기해 보려고 한다.

그 중심에 서있는 우리가 익히 알고 있는 아두이노(ARDUINO) 에 대해서 알아보자.


아두이노(ARDUINO)는 오픈 소스를 지향하는 ATMEL社 의 마이크로 컨트롤러를 내장한 기기 제어용 기판 이다. '오픈소스 하드웨어' 라고 할 수 있는데 리눅스처럼 자유 소프트웨어 운동에서 출발한 개념이 하드웨어까지 넘어온 개념이다.

따라서 회로도, 아트웍, 기본 펌웨어 소스 코드까지 전부 오픈되어 있어 중국부터 전세계가 이 자료만을 보고 동일한 보드를 만들 수 있는 것.

이런 아두이노(ARDUINO)는 ATMEL社의 AVR이라고 8bit 마이크로 컨트롤러를 사용하고 있는데 이 AVR을 사용하기 위해서는 펌웨어 개발 환경부터 ISP 다운로더, 비싼 개발 보드 등이 문제가 되어 일반인들 또는 전공자 조차도 배우는데 굉장히 힘든 것중에 하나였다.

하지만 아두이노(ARDUINO)는 이런 AVR을 예술가들이 쉽게 사용하기 위해 개발을 시작했고 그러다보니 복잡한 환경과 설정 없이 아두이노 보드와 USB 케이블만 있으면 굉장히 간단하고 쉬운 전용 IDE(개발툴)을 제공하여 쉽게 제어할 수 있게 만들어 놓은 것이다.

사실 전공자 입장에서 보면 세밀한 제어를 위해 막상 레지스터를 건들려고 하면 조금은 답답한 감이 없지는 않지만 굉장히 간단한 제어를 위해서는 이만한 것도 없다고 생각한다.

게다가!! 2005년이후로 수 많은 세계의 사람들이 사용하면서 약 10년간 누적된 라이브러리들은 가히 엔지니어인 나도 놀랄정도로 엄청나게 많다는 것!

한마디로 먼가 생각하면 아두이노로 검색하고 찾아서 바로 만들어 볼 수 있는 것이다.

원래는 현재 아두이노 내에서 일어나고 있는 작은(?) 분쟁에 대해서 설명하려고 했는데 말이 길어지다 보니 이번 편은 여기서 끝내고 다음 편에서 arduino.cc 와 arduino.org로 나뉜 사건에 대해서 얘기해 보겠다.

Friday, September 4, 2015

[이번주 TED Talk] Ron Gutman: The hidden power of smiling


이번에 리뷰할 영상은 웃음에 숨겨져 있는 Super Power!! 에 대해서 이다.

Ron Gutman은 30년전 과거로부터 현재 유명해져 있는 사람들과 스포츠인들의 사진 자료들을 통해서 과거에 웃음이 많던 사람들이 오래 살았다는 것을 애기하고 웃음이 가지고 있는 파워에 대해서 수치적으로 돈, 초콜릿 등으로 나타내고 있다.

객관적인 자료를 통해서 웃음이 얼마나 중요하고 우리의 건강에 많은 도움이 되는 것인지 알 수 있는 좋은 영상이였다.

하지만 언제부턴가 나이가 들어가면서부터 하루하루 웃음을 잃어가고 있는 내자신을 느꼈다. 초등학교때는 그냥 눈뜨는게 즐거웠다. 학교에서 친구들과 노는게 재미있었고 삶이 무엇인지는 몰랐지만 움직이고 행동하는 것이 즐거웠다. 중학생, 고등학생이 되면서 언제부턴가 내 주변에 그전에 내가 소중하게 생각하던 작은 장난감들부터 사소한 연필까지도 하나씩 마음속에서 잃어가고 있었다. 그리고 대학을 거쳐 많은 경쟁을 통해 지금에 서있는 '나' 라는 존재는 내가 마음속 깊이 웃어본적이 기억이 안날 정도 이다.

이 영상을 보면서부터 '웃음' 이라는 것을 다시 한번 마음속에 새겨보았다. 짧은 인생이다. 한번 지나간 하루는 다시 돌아오지 않는다. 이 시간 조차 '나'라는 자신을 위해 즐거울 수 없다면 우리는 왜 살아가는 걸까?

마지막으로 영화 <올드보이>의 명대사를 적어본다.

"웃어라. 온 세상이 너와 함께 웃을 것이다."
"울어라. 너 혼자만 울게 될 것이다."

한번뿐인 세상 즐겁게 살자!