2010년 12월 30일 목요일

맥에서 아뒤노에 라이브러리 추가하기 (Add libraries into the arduino in the Mac OS X)

아뒤노에 외부 라이브러리를 추가하는 방법은 다음과 같다.

먼저 원하는 라이브러리를 다운받아 압축을 풀어준다.


Finder를 열어 Applications 폴더에서 Arduino.app를 찾는다.





Arduino.app 폴더 위에서 마우스 오른쪽 버튼을 클릭해 메뉴가 나오면 'Show Package Contents'를 선택한다.


 Contents -> Resources -> Java로 찾아간다.


압축을 풀어놓은 라이브러리를 libraries 폴더에 집어넣어 주면 된다.
아뒤노를 종료했다가 다시 재시작 하면 Files -> Examples 에서 추가된 라이브러리를 확인할 수 있다.

2010년 12월 8일 수요일

임베디드 무선랜 모듈 Wiz 610wi (Embedded Wireless LAN module Wiz 610wi)

임베디드 시스템에 무선 인터페이스를 추가하려고 할 때 블루투스나 Zigbee같은 경우는 저렴한 가격에 다양한 모듈을 구할 수 있어 쉽게 추가할 수 있는데 비해 무선랜의 경우는 가격도 비싸고 그나마도 쉽게 구할 수 없어 임베디드 시스템에 추가하기가 쉽지 않다.

하지만 국내 회사인 Wiznet에서 다양한 종류의 임베디드 통신 모듈(Ethernet module, Ethernet-to-serial, WLAN module)을 출시하여 대부분의 필요한 모듈을 쉽게 찾을 수 있다. 그래서 얼마전에 Wiznet에서 임베디드 DIY를 활성화하기 위해 무료로 제공해 준 Wiz 610wi 무선랜 모듈을 mbed 보드에 붙여 테스트를 진행해 보았다.



802.11b/g를 지원하는 모듈로 Serial I/F와 MII I/F를 제공해 주기 때문에 임베디드 보드에 시리얼로 연결하거나 이더넷 포트에 다른 PC들을 연결해 무선 AP나 Gateway로 동작할 수도 있는 다기능 무선랜 모듈이다.

상세 사양은 다음과 같다.

Detailed Technical Specification


610wi는 3가지 동작 모드를 가지고 있다.


이 중 여기서는 mbed 모듈을 무선랜에 연결하는게 목적이기 때문에 client mode를 사용할 것이다.

모듈의 Factory Default 설정은 다음과 같다.


핀 배치는 다음과 같다.


두개의 커넥터(J19, J20)가 있지만 J19(36핀)으로만 신호선이 나오고 J20(20핀)은 단지 보드 고정을 위해 있을 뿐 신호선은 연결되어 있지 않다.

모듈 소형화를 위해 어쩔 수 없는 선택이긴 해도 DIY를 하는 사람들에게 치명적인 단점이 하나 있는데 커넥터의 피치가 일반적으로 많이 사용하는 100mil(2.54mm)이 아닌 50mil(1.27mm)라는 것이다. 직접 전용 PCB를 뜨지 않는 한 만능기판에 실장하기도 힘들고 1.27피치의 커넥터나 만능기판은 구하기도 힘들고 가격도 비싸다.
가능하면 J19, J20 모두 신호선으로 사용하는 대신 100mil(2.54mm) 피치의 커넥터를 사용했으면 더 좋았을거라고 생각한다.

하지만 땜질을 하다 보니 1.27피치가 2.0피치보다는 훨씬 더 좋다는걸 알게 되었다.

 Pin No.
Name
I/O
Description
 Pin No.
Name
I/O
Description
 1 CTS I UART:CTS 2 RTS O UART:RTS
 3 -   4 HW_trig I HW Trigger
 5 GPIO7 I/O Reserved 6 GPIO5 I/O Reserved
 7
 SOUT O UART:Tx 8 SIN I UART:Rx
 9 DC_IN  3.3V 10 DC_IN  3.3V
 11 GND   12 GND  
 13 RxERR I MII Rx Data Error
 14 COL I MII Collision
 15 /W_LEDO
 Wireless LED
 16 MDC I SMI CLK
 17 /RESET I RESET 18 MDIO I/O SMI I/O Data
 19 GND   20 GND  
 21 RXC I MII Rx CLK
 22 RXDV I MII Rx Data Valid
 23 RXD2 I MII Rx Data 24 RXD0 I MII Rx Data
 25 RXD1 I MII Rx Data 26 RXD1 I MII Rx Data
 27 GND   28 GND  
 29 TXC O MII Tx CLK
 30 TXEN O MII Tx Enable
 31 TDX3 O MII Tx Data
 32 TDX2 O MII Tx Data
 33 TDX0 O MII Tx Data 34 TDX1 O MII Tx Data
 35 GND   36 CRS I Carrier Sense

* 모든 신호레벨은 3.3V
* RESET은 최소 1.2usec이상 L로 유지해 줘야 함. 3초 이상 L로 유지되면 factory reset 됨
* HW Trigger가 L면 serial command mode로 들어가고 H면 serial command mode에서 빠져나옴

이 중 시리얼 포트를 통해 연결하는 경우 SIN, SOUT, DC_IN, GND, HW_Trig, /RESET만 있으면 된다.

일반적으로 사용하는 2.54 피치의 만능기판에 직접 연결할 수가 없기 때문에 디바이스마트에서 1.27피치의 만능기판을 구입하여 시리얼 인터페이스를 위해 필요한 핀만 연결해 주었다.


6핀만 연결하여 2.54피치의 핀헤더로 연결하여 mbed 보드와 커넉터로 연결할 생각이다.
보드 제작이 끝나고 나면 방향에 맞게 모듈을 꼽아주면 된다.




전원이 들어온걸 눈으로 쉽게 확인할 수 있도록 녹색의 LED를, 무선랜에 연결된 상태를 확인할 수 있도록 노란색의 LED를 보드에 실장해 주었다.


이 상태에서 보드에 전원을 공급하면 factory default로 설정되어 있는 Access Point 모드로 동작하게 되기 때문에 PC에서 확인해 보면 SSID가 WLANAP인 무선랜이 보이게 된다.

* 무선랜 모듈에 흐르는 전류가 크기 때문에 (최대 450mA) 충분한 전류를 흘려줄 수 있는 전원소스를 사용하여야 한다.


모듈의 IP주소는 192.168.1.254니까 WLANAP에 연결한 다음 컴퓨터의 IP를 수동으로 192.168.1.x 로 맞춰주고 브라우져에서 192.168.1.254로 접속하면 된다.
그럼 아이디와 암호를 물어보는데 디폴트는 admin/admin이다.


이 중 시리얼 포트의 상세 설정은 다음과 같다.


목적대로 사용하기 위해서는 먼저 Wireless settings에서 동작모드를 client mode로 변경해 줘야 한다.


Client 모드로 변경한 다음 client 모드의 설정을 변경하기 위해 'Setup' 버튼을 눌러주었다.


'Setup' 버튼을 누르면 설정 변경을 위해 잠시 기다려야 한다.


문제는 설정이 변경되면 디바이스 타입이 AP에서 무선랜 클라이언트 디바이스가 되기 때문에 무선 네트웍이 사라져서 아래와 같이 홈페이지를 억세스 할 수 없게 된다.


이 시점부터는 시리얼 케이블을 연결해서 설정을 변경해 주어야 한다.


디폴트 설정대로 38400 bps로 속도를 설정하고 시리얼 터미널을 연결하면 위와 같이 명령을 입력할 수 있게 된다. 명령어에 대한 상세한 설명은 메뉴얼을 참고하면 된다.

설정을 끝내고 <DI> 명령에서 보이는 네트웍들중에 하나에 연결시켜 주면 된다.

실제 설정 명령어들과 테스트 결과는 다음 포스트에 올리도록 하겠다.