탈옥 안한 아이폰으로 아두이노 제어하기

Electronics 2012/01/18 18:35
아이폰은 아래쪽에 달린 30핀 커넥터를 통해서 외부기기를 제어하거나 데이타를 받으려면 애플과 계약을 체결해야만 가능하기 때문에 탈옥을 해야만 외부와 시리얼통신이 가능했었다. 그러나 작년에  RedPark라는 회사에서  iOS기기용 30핀 커넥터에 연결해서 쓸수 있는 시리얼케이블을 출시해서 이제는 그 시리얼케이블만 사면 손쉽게 외부기기를 아이폰과 시리얼포트를 통해 연결할 수 있게 되었다. 



사실 이 시리얼케이블은 출시된지 좀 됐고 나도 산지가 반년은 훨씬 넘었으나 사 놓기만 하고 그간 방치하다가 며칠전에서야 연결해봤다. 늦어진데 일조한 이유가 이 케이블의 한쪽끝이 RS-232 9핀 커넥터라서 아두이노 같은 마이크로 컨트롤러와 연결하려면 TTL레벨로 전압을 변환해주는 보드가 별도로 필요하다는 것이다. RS-232 시리얼 신호는 +-14V의 나름 고전압이기 때문에 아두이노의 5V ~ 0V의  TTL 시리얼 신호로 바꿔줘야만 아두이노가 타버리지 않고 통신이 되기 때문이다.

당시 이 시리얼케이블을 산곳이 메이크진에서 운영하는 부품 판매사이트인 makershed.com 이었는데 당시 이 레벨 컨버터만 품절이라 못사서 만들어야 했는데 귀찮아서 미루다가 이제서야 만들어서 연결해보게 됐다는 그런 게으른 사연이다. 

레벨컨버터는 사실 저항과 제너 다이오드만 가지고도 만들 수 있는 것인데(ladyada의 Mini POV3의 회로도에서 9핀 커넥터와 MCU사이의 회로 참조), 만들려고 부품을 찾다보니 예전에 레벨컨버터를 만들려고 이미 74HC04로직 칩을 사둔게 있어서 제대로 만들기로 했다.


위 사진에서 기판에 표시한 T와 R이 잘못된 회로도를 보고 표기한거라 틀린것이다. 저 6핀의 순서는 USB시리얼 컨버터가 포함되지 않은 아두이노 미니계열이나 릴리패드 등에 쓰이는 핀으로 사실상의 표준이라고 할 수 있다. 아두이노쪽에서볼때 GROUND, CTS, VCC, RX, TX, RTS의 순서로 되어 있다.  



회로도는 wolfden.org의 P4B라는 RS232 serial programming adapter의 회로도를 참조했다. 다만 회로도의 RX와 TX가 반대로 표기되어 있으니 주의해야한다. 그것 때문에 한참 고생했다--;; RX TX 표기는 항상 자기를 기준으로 해야하는데 가끔 상대기기의 입장에서 표기해주는 너무 친절한 사람들이 있어서 문제다. 

아이폰의 프로그램은 메이크진에 글쓰는 Brian Jepson이란 아저씨가 올려놓은 설명코드를 그대로 썼다. 우선 레드파크 웹사이트에서 이메일등록하고 SDK를 받아야 한다. 물론 이 케이블을 써보려면 아이폰 개발자 계정이 있어야만 한다. 그래야 아이폰에 프로그램을 업로드 할 수 있기 때문에 이 케이블을 테스트라도 해볼 수 있는 것이다. Xcode 에 있는 아이폰 시뮬레이터에서는 작동해볼 수가 없는 것이다.

아두이노에도 Jepson의 코드 중에서 arduino 디렉토리에 있는 것을 올려 놓고 시리얼 레벨 컨버터를 거쳐서 아이폰과 연결하면 아이폰의 버튼을 켜고 끌때 마다 아두이노에 연결한 LED가 켜지고 꺼진다.

아래는 작동영상이다. 



자아~ 그럼 이제 이걸로 뭘 만들어 볼까?




 
저작자 표시 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 : Comments 9

Trackback Address :: http://blog.whattomake.co.kr/trackback/197 관련글 쓰기

  1. Favicon of http://poohrusa.tistory.com BlogIcon 공돌이pooh 2012/01/23 23:43 Modify/Delete Reply

    오마이갓... 이런 어마어마한 제품이 있었다니 놀랍네요.

    • Favicon of http://blog.whattomake.co.kr BlogIcon MrKiss 2012/02/02 11:17 Modify/Delete

      저도 첨에 놀라워서 바로 샀었죠 ㅎㅎ 그런데 의외로 인터넷이선 적용사례가 드문 듯 싶어요

  2. Favicon of http://없음.. BlogIcon doratne 2012/07/17 13:59 Modify/Delete Reply

    안녕하세요. 트위터로 글을 남겼었는데요
    저기 위에서 사용하는 보드가 안드로이드폰으로 쓰는 보드랑 같은 보드인데 작동이되는건가요 아니면 아이폰 전용 보드가 따로있는건가요..
    따로쓴다면 어디서 구매할수있을까요... 저는 아트로봇이라는 사이트에서 안드로이드용 보드를 파는건 알고잇는데.. 저기 사이트에 물어보니 자기들은 아이폰은 잘모르겠다고 하더라고요.. 그리고 궁금한게 하나 더있는데요 시리얼케이블구매는 mfi라이센스가 없어도 됀다고 하셨잖아요. 그럼 케이블과 보드 연결하고 프로그램을 작성하는데는 아이폰개발자 등록이 필요한가요 안필요한가요..


    아근데 여기에 올리면돼는건가...ㅋㅋ;;

    • Favicon of http://blog.whattomake.co.kr BlogIcon MrKiss 2012/07/17 15:55 Modify/Delete

      위 케이블을 쓰면 USART 포트가 있는 어떤 마이크로컨트롤러 보드와도 연결이 가능합니다. 안드로이드는 USB를 이용해서 연결하기 때문에 USB호스트 기능이 없는 안드로이드폰들을 위해 USB호스트 기능을 하는 칩을 아두이노에 추가한 보드가 ADK보드구요. IOIO보드는 ADK나오기 이전에 구글지원없이 독자적으로 구축한거구요.
      아이폰프로그래밍은 짜는것 까지는 등록이 필요없지만 아이폰에 프로그램을 올릴때 등록이 필요해요. 결론은 등록하셔야 합니다.

  3. doratne 2012/07/17 16:18 Modify/Delete Reply

    아 그렇군요 ㅎ
    죄송한데.. 아이폰이랑 어떤 보드랑 연결이되있다고하면은 이제 제어를하기위해서
    프로그램을 작성하는데 함수나 이런건 어떻게 알수있을까요..예제소스를보고 배워야됀다면
    예제소스는 어디서 구하는지알수잇을까요.ㅇㅅㅇ..

  4. 수지 2012/10/08 14:18 Modify/Delete Reply

    안녕하세요 ~여기 블러그 너무 볼게 많네요 ^^ㅋㅋ
    다름이 아니라 제가 대학생인데 블러그를 만들고 싶어서요
    아는 언니들이 초대장이 없더라구요 ~
    초대장 하나만 보내주시면 감사하겠습니다.
    블러그 만들면 자주 놀러 올게요 ~^^
    네이트온 메일인데 하나 보내주세요~
    메일 =kjhlove86@nate.com

    • Favicon of http://blog.whattomake.co.kr BlogIcon MrKiss 2012/10/08 22:17 Modify/Delete

      초대장 보내드렸습니다~ 멋진 블로그 만드시길 바랍니다 ^^

  5. gawoon 2014/10/06 02:39 Modify/Delete Reply

    우연히 들어와서 정말 큰 도움 얻고갑니다.
    너무 쉽고 재밌게 따라할 수 있어서 진짜 실행됐을때의 기쁨이 이루 말할 수 없었네요.
    감사합니다!

Write a comment

◀ PREV : [1] : [2] : [3] : [4] : [5] : [6] : [7] : ... [191] : NEXT ▶