이전 포스트에서 소개했던 모바일 프로세싱을 실제 사용해 보도록 하겠다.

노키아 6210S를 구입한 사람들도 많아졌고 최근 노키아 5800 Music edition이 판매되기 시작하여 Symbian S60을 사용하는 사람들이 많이 늘어났기 때문에 모바일 프로세싱을 실제 폰에서 사용해 보기가 매우 편해졌다.

모바일 프로세싱을 설치해 주려면 Java, Java Wireless Toolkit for CLDC (WTK, 현재 최신버젼은 2.5.2_01이다), mobile processing까지 총 3개의 파일이 필요하다.
JavaWTK는 sun의 웹 사이트에서 다운받을 수 있고 mobile processing은 모바일 프로세싱 홈페이지에서 다운받으면 된다.

파일을 다 다운받았으면 먼저 java를 설치해준다. 이미 설치되어 있는 경우 이 단계는 건너뛰면 된다. 그 다음 WTK를 설치해 준다. 그리고 WTK가 설치된 위치를 기록해 놓는다. (디폴트는 c:\wtk2.5.2_01 이다.)
마지막으로 다운받은 mobile processing 파일의 압축을 풀어준다. 모바일 프로세싱은 별도의 설치 과정이 필요없이 그냥 압축을 풀어주면 된다.


압축을 풀면 위와 같은 파일이 보인다. 여기서 'mobile'을 더블클릭해서 실행해 주면 된다. (별도의 설치과정이 없기때문에 시작메뉴에도 자동으로 등록되지 않는다.)


모바일 프로세싱을 실행시킨 화면이다. 프로세싱 화면과 거의 동일하다. 다만 모바일 프로세싱을 사용하려면 먼저 환경설정을 해 줘야 한다.


File->Preferences 를 선택한다.


Preferences 창이 열리면 Mobile 탭을 선택한다.


이 화면에서 아까 설치한 WTK의 위치를 지정해 줘야 한다. 그리고 자신이 사용할 폰의 CLDC와 MIDP 버젼을 지정해준다. 최근 1~2년 사이에 나온 폰들이면 거의 다 CLDC 1.1과 MIDP 2.0을 지원한다. 자세한 내용은 각 폰의 technical specification을 참조하면 된다.

여기까지 하면 모든 설정이 끝나고 모바일 프로세싱을 사용할 수 있다.


테스트를 위해 File->Example에서 예제를 하나 선택해 보겠다. 여기서는 keypad를 선택했다.


화면 위쪽의 아이콘들 중에 가장 왼쪽의 삼각형 버튼을 누르면 프로그램을 컴파일하고 폰 에뮬레이터에서 실행을 해 준다.


실행을 시키면 이런 폰 에뮬레이터 창이 뜨고 프로그램이 로드된 걸 볼 수 있다. 로드된 프로그램을 실행하려면 오른쪽 소프트키(화면 오른쪽 아래 Launch 표시 바로 아래쪽의 '.' 버튼)를 눌러주면 된다.


'keypad' 프로그램이 실행된 화면이다. 프로그램을 종료하려면 왼쪽 소프트키를 눌러주면 된다.


'keypad' 프로그램은 숫자키패드를 누르면 그에 해당하는 수직막대기를 화면에 그려주는 프로그램이다. 몇개의 숫자키를 눌렀을 때 화면이다.

이 런 식으로 작성한 프로그램을 실제 폰이 없는 경우에도 컴퓨터 상에서 테스트가 가능하다. 디버깅이 다 끝났으면 만들어 진 프로그램을 직접 폰에서 실행시킬수도 있다.


File->Export MIDlet 을 선택하면 이 소스코드를 폰에서 실행할 수 있는 JAVA MIDlet으로 만들어준다.


위에서 Export MIDlet을 선택하면 keypad.jar 파일을 만들고 탐색기에서 그 파일이 들어있는 폴더를 자동으로 열어준다.


이제 만들어 진 파일을 폰으로 넣어주기만 하면 된다. MicroSD카드에 복사해서 옮겨도 되지만 여기서는 블루투스를 이용해 옮겨보겠다. (단 폰은 미리 컴퓨터와 페어링 되어 있어야 한다.) 'keypad.jar'파일을 선택한 다음 마우스 오른쪽 클릭해서 Send to->Bluetooth device를 선택한다.


Bluetooth File Transfer 창이 열리고 블루투스 디바이스들을 보여준다. 원하는 폰을 선택해주면 된다.



이렇게 전송이 끝났으면 폰에서 받은 프로그램을 설치할거냐고 물어본다. 설치해 준 다음 프로그램을 실행시키면 위의 시뮬레이터에서 본 것과 동일하게 움직이는걸 볼 수 있을 것이다.

모바일 프로세싱은 이전에 프로세싱이나 아뒤노를 사용해 본 사람이라면 거의 동일한 구조와 문법을 사용하기 때문에 배우기 쉽고 폰 프로그래밍을 할 때 단말기별로 신경써야 하는 것들을 알아서 처리해주기 때문에 매우 편리하다.

또한 단순히 키패드 입력, 화면 제어뿐 아니고 폰의 블루투스 통신도 프로그래밍이 가능하기 때문에 임베디드쪽으로도 다양하게 응용이 가능하다. 아뒤노에 블루투스 모듈을 붙이고 모바일 프로세싱으로 폰과 통신을 하게 해 주면 폰을 아뒤노의 입출력 디바이스 또는 리모컨으로 이용할 수도 있기 때문에 다양한 응용이 가능하다.
Posted by nautes

댓글을 달아 주세요

  1. 2010.03.07 22:52

    아 정말 잘보고 갑니다^^

  2. 2010.03.07 23:12

    mobile processing 을 한번 실행하고
    끄고 다시 실행했을때
    settings issues 라는 경고창이 뜨는데
    어떻게 해야할까요 ?>??

최근들어 피지컬 컴퓨팅이라는 분야에 대한 관심이 높아지면서 arduino 뿐 아니고 processing도 많이들 사용하고 있다. Processing은 주로 컴퓨터에서 독립적으로 사용하거나 외부 하드웨어와 연동하는 경우는 processing+arduino의 조합으로 사용하는 경우가 많다.



그에 비해 휴대폰에서 사용할 수 있는 mobile processing은 국내 휴대폰에서 사용할수가 없어서인지 아직까지 사용하는 사람들을 별로 본 적이 없는거 같다. 해외용으로 출시된 LG, 삼성 휴대폰에는 잘 돌아가지만 국내 출시 휴대폰들은 통신사와 제조사의 여러가지 제한때문에 mobile processing을 사용할 수 있는 모델이 거의 없었다. 하지만 최근 출시된 노키아 6210의 경우 심비안 S60 플랫폼을 사용하기 때문에 mobile processing을 사용할 수 있게 되었다. Mobile processing은 현재 Mac OS X와 윈도우용이 있다.

아래가 삼성, LG모델중에 mobile processing을 사용할 수 있는 모델들인데 대부분 수출모델로 알고 있다. 혹시 자신의 휴대폰에서 실행해보고 되는 경우 알려주면 국내 휴대폰 모델들 리스트에 업데이트 해서 목록을 만들어 봤으면 한다.

LG와 삼성의 지원되는 모델들


기본적인 문법은 processing과 거의 동일하고 mobile processing에서 스케치 파일을 만들어 컴퓨터상의 에뮬레이터에서 실행해 볼 수 있고 컴파일해서 만들어 진 MIDlet을 microSD 카드에 복사해서 휴대폰에서 어플리케이션으로 실행할 수 있다. MIDlet은 J2ME플랫폼의 CLDC 1.0, MIDP 1.0에서 실행된다.

기본적으로 휴대폰 전화기능, 이미지, 사운드, 비디오, 네트웍, XML, Messaging, 블루투스등을 제어하기 위한 라이브러리가 제공된다. 또한 3rd party가 추가한 3D 그래픽, QR code, 웹, UI, Location 서비스 등등 다양한 라이브러리가 존재한다.

Arduino 에 블루투스 모듈을 붙여 휴대폰과 블투로 통신하게 할 수도 있고 아니면 휴대폰의 시리얼 포트와 arduino의 시리얼 포트로 통신을 하게 해 줄 수도 있다. 이 경우 arduino에 별도의 LCD나 키패드를 붙이지 않아도 훌륭한 입출력 인터페이스를 만들어 줄 수 있다. 또한 휴대폰의 다양한 장치들을  arduino의 센서(디지털 나침판, GPS, 조도센서, 가속도센서 등등)로 사용하거나 휴대폰을 arduino의 네트웍 인터페이스(무선랜, 블루투스, 휴대폰 망)로 사용할수도 있게 된다. 또한 전화를 걸고 받기, 문자메세지 보내기 등등도 제어할 수 있기 때문에 센서 입력에 따라 문자를 보내거나 전화를 걸도록 할 수도 있다.


인터넷에서 발견한 mobile processing과 arduino를 시리얼로 연결한 예제 프로젝트이다. 그림에서처럼 arduino와 휴대폰은 시리얼로 연결하고 휴대폰은 휴대폰망의 무선데이터 전송을 통해 컴퓨터와 http로 연결해서 컴퓨터에서 arduino에 연결되어 있는 LED의 색깔을 제어하는 예제이다.


")//]]>

최 근 노키아 6210이 매우 싼 가격(약 6개월 약정인 경우 1000원정도)에 풀렸다고 알고 있다. Arduino를 사용하는 사람들이라면 이번 기회에 mobile processing에도 관심을 가져 보는것도 나쁘지 않을 것이다. Arduino만으로 하기 힘든 다양한 아이디어의 응용 프로젝트가 가능해진다.
Posted by nautes

댓글을 달아 주세요

인터넷 시대 이전에 모뎀을 사용해서 PC통신을 하던 사람들에게는 눈에 익은 AT 명령어(Hayes AT command)를 사용해서 노키아 휴대폰을 컴퓨터에서 직접 제어해서 전화를 걸고 받거나 문자 메시지를 보낼 수 있다.
컴퓨터와 노키아 휴대폰은 블루투스를 사용해서 연결해 준다.

여기서는 맥에서 노키아 E71x를 연결해서 제어하는 방법을 설명하겠다.

먼 저 맥과 E71x는 페어링 되어 있어야 한다.



'Preferences' 에서 'Bluetooth'를 선택한다.


디바이스(여기서는 E71x)를 선택하고 아래쪽의 휠 버튼을 눌러준다.



버튼을 누르면 나오는 풀다운 메뉴 중에 'Edit Serial Ports..'를 선택한다.



디바이스 설정 창이 열리면 '+' 버튼을 누른다.



Name, Protocol, Service를 차례대로 설정한다. Name은 디바이스 이름으로 사용되기 때문에 간단한 이름을 넣어주는게 좋다. 여기서는 e71x를 넣어줬고 저 가상 시리얼 포트의 패스는 /dev/tty.e71x가 된다.



앞의 화면에서 'Apply'를 눌러 설정이 끝난 상태이다. 여기까지 했으면 맥과 휴대폰 설정은 끝났다.



맥에서 시리얼 터미널 프로그램을 실행시킨다. 여기서는 GoSerial 이라는 프로그램을 사용했지만 아무 시리얼 터미널 프로그램(CoolTerm, jterm 등등)들을 사용해도 관계 없다.

위의 그림은 GoSerial의 포트 설정 화면이다. 시리얼 포트 파라미터는 9600-N-8-1로 맞춰주면 된다.



설정이 끝났으면 'Connect' 버튼을 눌러 휴대폰과 연결시켜주면 된다.



정상적으로 연결되면 이제부터 AT 명령어를 사용해 휴대폰을 제어할 수 있다.



휴대폰으로 전화를 걸어 본 예이다. 모뎀과 동일하게 ATDT 명령어를 사용해서 전화를 걸 수 있다.

문자메시지를 보내는 방법이다.

AT+CMGF=1
AT+CMGS=”##########”      ;#####은 수신자 번호이다.
[메시지]를 입력하고 끝나면 CTRL-Z를 누른다.


노 키아 휴대폰에서 사용할 수 있는 AT 명령어 셋은 노키아 사이트에서 확인할 수 있다.
Posted by nautes

댓글을 달아 주세요

미국에 자신의 수신 전용 전화번호를 완전 무료로 만들 수가 있다.


IPKall.com 에서는 미국 워싱턴 지역의 전화번호를 무료로 만들어 준다. 비용은 하나도 없고 단지 한달에 최소 한번 이상 사용하지 않으면 발급받은 번호가 없어진다. 위의 화면에서 Sign-up을 눌러 계정을 만들어 준다.


Sign-up화면에서 필요한 정보를 넣어준다. Area Code는 현재 워싱턴의 지역코드(미국의 수도인 워싱턴 D.C.가 아닌 워싱턴 주)인 206, 253, 360, 425중에 선택할 수 있다. 지역코드만 선택할 수 있고 전화번호는 임의로 부여된다.
여기서 가장 중요한 정보는 SIP Phone number와 SIP Proxy이다. 할당받은 번호로 전화가 걸려 왔을 때 실제로 전화를 받을 SIP타입 IP폰의 정보를 정확하게 넣어줘야 한다. 이 정보는 자신이 어떤 디바이스, 서비스를 사용하는가에 따라 다르기 때문에 각자 확인해야 한다.


이건 SIP클라이언트로 Gizmo5를 사용하는 경우의 정보이다. 이럴 경우 SIP Phone number에는 1747xxxyyyy 를, SIP Proxy에는 proxy01.sipphone.com을 넣어주면 된다.


모든 정보를 집어넣어 문제가 없으면 자신의 이메일 주소로 위와 같은 메일이 날라온다. 메일에 보면 앞으로 자신이 사용할 수 있는 미국 전화번호가 들어있다. 이것으로 모든 설정이 끝난 것이다. 이제 누군가가 위의 전화번호로 전화를 걸면 내가 전 세계 어디에 있건 내 SIP phone에 링이 울리고 통화를 할 수 있다.

Gizmo5가 상당히 편하고 Google Voice와 연동하면 훨씬 다양한 기능을 사용(미국 전화번호로 무제한 무료 전화걸기 등등)할 수 있는데 얼마 전 구글이 인수한 후 현재 신규가입이 당분간 중단되어 있는 상태이다.


그 대안으로 컴퓨터에서는 SIP Communicator를 사용할 수도 있다.


오픈소스 소프트웨어로 거의 모든 플랫폼을 지원한다.


맥용을 다운받아 처음으로 실행한 화면이다. 통합 메신져로 SIP 뿐 아니고 다른 메신져도 같이 사용할 수 있다. 일단 SIP 어카운트가 없기 때문에 상단 좌측의 SIP 부분에서 Not registered yet?을 눌러준다.


그러면 웹 브라우져에 위와 같은 가입화면이 열린다. 필요한 정보를 넣고 등록해주면 된다.



간단하게 등록이 끝나고 자신의 SIP address(IP폰의 전화번호)가 생긴다.


등록이 끝났으면 다시 SIP communicator로 돌아와서 아이디와 암호를 넣고 로그인 해 주면 된다. 위의 화면은 정상적으로 로그인이 된 상태이다.


SIP communicator를 위의 IPKall 서비스와 연동해서 전화가 걸려오면 컴퓨터로 받고 싶으면 IPKall 계정을 만들 때 SIP Phone number에는 [자신의ID] 를 넣어주고 SIP Proxy에는 sip.iptel.org 를 넣어주면 된다.

* 물론 아이폰이나 다른 스마트폰에서 Fring이나 Nimbuzz같은 SIP 클라이언트를 연동시켜 줘도 된다.

* 삼성 070 의 경우도 설정해주면 미국번호로 걸려오는 전화를 한국의 집에 있는 전화로 받을 수 있을거 같은데 실제 실험을 해 보지 않아서 100% 된다고 장담은 못하겠다. 누군가 집에 070을 사용하는 사람이 있으면 실험해 보고 결과를 알려주면 감사하겠다.
이 경우 SIP Phone number에는 [자신의 전화번호] 를, SIP Proxy에는 sniproxy.samsung70.com 을 넣어주면 될 것이다. -> 확인 결과 아쉽게도 삼성 070으로 포워딩은 안된다고 한다.
Posted by nautes

댓글을 달아 주세요

이전버튼 1 이전버튼