아두이노 FIO에는 XBee소켓과 Lipo충전기능이 내장되어 무선 센서네트워크 시스템 구현에 최적화된 제품입니다.
FIO(Funnel I/O)는 센서취득을 용이하게 하여 다양한 개발환경들에서 센서값을 활용한 인터랙티브 시스템 구현을 용이하게 하기 위한 플래폼이고, 아두이노 FIO는 그것을 위해 만들어진 하드웨어입니다.   모르는게 하나 더 늘어나서 복잡해지시나요? 걱정마세요! Funnel IO 보드는 또하나의 아두이노 보드이며, 아두이노에 FIO용 프로그램(Sketch에서 소스 기본제공)을 기록하면 아두이노를 좀더 단순한 입출력보드로 사용하는것일 뿐입니다. 범용성을 배제하고 더 쉽게 사용하기위한 것이란 얘기입니다. FIO의 공식 사이트는 관련링크를 참고하시기 바랍니다.

여기선 FIO를 범용 아두이노로 사용하고, FIO의 장점을 부각시킬 수 있는 예제 수행 결과를 시연해보입니다.
바로, 무선프로그래밍과 Wii Nunchuk 연동입니다. 본 시연을 위한 자세한 기술소개는 일단 관련링크(영문자료)를 참고하세요!
실용성이 높은 주제이므로 한국어 도움말을 제작하여 별도의 페이지로 소개해 드리겠습니다.

1. 무선프로그래밍

개요:
PC측에서 스케치로 프로그래밍한 결과를 아두이노에 전송하기 위해서는 보통 유선 USB케이블이 연결되어야 합니다.
그런데 이때 전송은 시리얼통신이 이용되는것이므로 무선시리얼 통신모듈이 있다면 무선으로도 가능하게 됩니다.
FIO는 XBee가 장착된 경우, 통신선이 공유되므로 유선으로 프로그래밍시엔 XBee를 제거후에 시리얼 통신을 해야하는 불편함이 있습니다.  하지만 이를 무선프로그래밍 환경으로 구성해두면 오히려 매우 편리한 시스템이 됩니다.
때문에 FIO와 XBee 함께 이용하실 경우엔 꼭!!!  무선프로그래밍 환경을 구성하시길 권장드립니다.


[동영상1] 프로그래밍 수행 장면 - 일반적인 프로그래밍 과정과 동일합니다. ^^

2. Nunchuk 콘트롤러 데이타 실시간 전송

개요:
FIO의 특징을 손쉽게 보여드릴 수 있는 좋은 예로 Wii 게임기의 가속도 센서 내장형 콘트롤러인 Nunchuk를 연결하여 실시간으로 3축 가속도 값,  조이스티 xy 좌표값 , 두개의 버튼(c,z) 상태값을 전송하는 예제를 보입니다.
하드웨어와 소프트웨어 모두 특별히 복잡한 구성이 없으므로 휴대성이 중요한 예술공연, 인터랙티브 창작품 등에 응용하기 좋은 구성입니다.

[동영상2] Wii Nunchuk 실시간 데이타 전송 모니터링


3.하드웨어 구성

PC 프로그래머 환경:
 1. PC용 USB XBee Dongle [

 

 2. XBee 

프로그래밍될 아두이노:
 1. FIO  
 2. XBee
 3. 전원(Lipo배터리) 

 + (이하는 Nunchuk 연동시 추가)
 4. Nunchuk 아두이노 연결 아답터 
 5. Wii Nunchuk [wiki]



4. 관련 이미지들


 

 

[사진1] PC용 XBee USB 동글

 

 

 

 

[사진2] 아두이노 FIO + Lipo배터리장착 (휴대용 준비 완료!)

 

 

 

[사진3]전체 구성도 - 무선프로그래밍 및 Nunchuk 연동

 

 

 

[사진4] Nunchuk 아답터로 연결한 상태

 

 

 

[사진5] Nunchuk 장착된 FIO 전체 구성

 

 

5. 관련자료 링크

 

무선프로그래밍 영문자료  [링크1] [링크2

Funnel IO 공식사이트 [링크]

 

 

 

 

 


주의. 해킹으로 인한 이익?과 손실?에 대한 책임은 모두 여러분에게 있습니다. ^^;;

FTDI USB시리얼 변환기를 아두이노의 전압 레벨을 맞추기 위해 5V 3.3V형 제품을 따로 구입하는 것이 부담스러우시다면, 약간의 해킹으로 전압형을 바꿔서 사용하실 수 있습니다. 점퍼나 2단 스위치를 이용하면 수시로 변경이 가능하겠죠. , 실수로 스위치 선택을 잘못할 수 있으므로 주의를 요합니다. 고장나도 저는 책임 못져요!

요점:  아트로봇에서 취급하는 FTDI 5V형과 FTDI 3.3V 제품은 뒷면에 있는 전원선택 회로를 원하는대로 연결하면 5V형과 3.3V형을 변경하여 사용 가능해 집니다.  아래의 사진을 보시죠!


[사진2] FTDI변환기의 뒷면 (:FTDI 5V, 중간:FTDI 5V LilyPad디자인형 , :FTDI 3.3V)

 

[사진2]를 보시면 왼쪽의 두개는 5V쪽으로 미세한 라인이 보이고 우측에 한 개는 3.3V로 연결된것이 보입니다.

, 이제 5V형과 3.3V형을 더 자세히 들여다 보겠습니다.


[사진3] 전원 선택(5V or 3.3V) PCB패턴

 

이젠 정확히 보이시죠? 왼쪽이 5V형 오른쪽이 3.3V형 입니다. 가령 5V제품을 3.3V형으로 변경하고자 하시면, 5V로 연결된 라인을 칼로 (~)끊어 주시고 그대신 3.3V쪽으로 연결(납땜등)해주시면 됩니다.  이미 5V 3.3V전원은 각각 USB포트와 FTDI 3.3V출력 핀으로부터 공급이 되는 상태에서 회로 연결을 어떻게 하는가에 따라 5V형과 3.3V형 제품이 구분되는 것 입니다.

 

주의사항: FTDI변환기 출력핀 부분에 핀이름이 3V3 이라고 적혀 있는 부분이 있는데, 실제 이곳에 출력되는 전압은 5V형 제품의 경우 5V이며 3.3V가 아닙니다.

개요:

FTDI보드는 PC USB포트를 통해 아두이노와 PC간의 시리얼 통신을 가능하게 해주며, PC에서 제작된 프로그램을 아두이노로 전송하는 용도로도 사용됩니다. (아두이노UNO, Mega2560제품은 본 기능이 내장되어 있습니다.)

 


 

[사진1] FTDI변환기들 (좌: 5V형, 중간: 5V형 릴리패드 디자인 , 우: 3.3V형)

 

선택시 참고사항: USB시리얼 변환기는 몇가지 유형의 제품이 있지만 사용전압만 맞쳐주면 서로 호환이 됩니다. 아래의 제품별 호환 FTDI변환기를 참고하시기 바랍니다.

 

 
아두이노 제품명
 
호환되는 FTDI USB시리얼 변환기
Arduino Pro 5V, Pro mini 5V FTDI 변환기 5V 
Arduino Pro 3.3V, Pro mini 3.3V, FIO(3.3V) FTDI 변환기 3.3V
LilyPad Basic, LilyPad Simple
*릴리패드는 내장 레귤레이터가 없으므로
입력되는 외부전압을 기준으로 작동됩니다.
FTDI 5V or 3.3V
*회로 구성에 따라 3.3V형과 5V형 모두 사용 가능합니다.

 

여러가지 전압레벨의 아두이노를 사용중이실 경우 하나의 FTDI변환기를 5V형 및 3.3V형으로 사용할 수 있는 기능이 있습니다. (FTDI보드 해킹 자료를 참고하세요

아두이노 FIO는 독특한 기능을 여럿 갖고 있습니다.

1. LiPo 배터리 충전기능 내장
2. 충전위한 USB포트 제공 ( PC에 꽂아두면 충전이 됨)
3. XBee소켓내장 ( XBee를 꽂으면 무선통신이 가능해집니다.)

즉, LiPo배터리를 꽂아두면,  휴대형/ 충전형 아두이노 디바이스가 되고
사용후 PC에 꽂아두면 충전이 되므로 전원에 대해 신경쓸 일이 줄었습니다.

게다가 무선통신을 위해 많이 이용되는 XBee모듈 장착용 소켓이 내장되어 있어서
이곳에 XBee를 꽂아주면, 시리얼 통신으로 PC를 비롯한 외부 장치들과 연동이 됩니다.  Wow~

이래저래 매우 유용한 제품임이 분명합니다. 기능으로 볼 때 아직까지 보급이 많이 안 된 제품인것이 이상할 정도네요;;

아래의 사진을 보시면 여러 기능을 이해하실 수 있을겁니다.


[사진1]기본형태 -  XBee 장착용 소켓이 보입니다.
반대편엔 Atmega328P AU 칩과 리셋버튼이 있습니다.



[사진2]옆면에  USB포트와 JST 배터리 커넥터가 보입니다.
USB포트는 USB시리얼 변환기와 무관하며, 단순히 USB케이블로부터 전원을 받아오는데 사용됩니다.
이 전원으로 JST소켓에 장착된 LiPo배터리를 충전하는 기능이 내장되어 있습니다.


[사진3] JST커넥터로 Lipo배터리 연결한 장면


[사진4] USB케이블을 연결하여 충전이 되고 있습니다.  CHG 표시 LED에 불이 들어온것이 보입니다.


[사진5] XBee를 장착한 장면입니다.



[사진6] XBee와 Lipo배터리 장착한 상태


[사진7] 외부케이블 연결을 위해 핀헤더소켓을 장착한 상태입니다.


[사진8] FTDI USB시리얼 변환기를 이용해 프로그래밍 하기위한 접속예입니다.


참고로, 아트로봇에서 판매중인 FTDI USB시리얼 변환기는 아두이노 Pro, Pro mini, FIO, LilyPad 모두와 호환되는 핀배열을 갖고있어서 핀헤더만 장착하면 그대로 연결할 수 있습니다.  (단, 5V형과 3.3V형 제품은 구분해줘야 합니다.)



(2012.4월 추가사항)
헤더 납땜없이 FTDI 보드로 Fio에 프로그래밍을 할경우 아래의 이미지를 참고하시기 바랍니다.   임시 결합시 18mm 핀헤더를 사용하시고 아래의 이미지 같이 금속핀을 양쪽에 균등하게 배분한 뒤 FTDI보드와 Fio에 연결후  Fio 와의 결합을 정확히 하기 위해 약간 힘을 줘서 기울여준 상태로 프로그램을 Uploading 하시면됩니다.   접촉상태가 좋지않으면 프로그램 업로드시 오류가 뜹니다.

 

 

 

 

 

아두이노를 처음시작하시는 분들을 위한 참고사항입니다.

입문자분들이 아두이노로 가장 먼저하는것이 LED ON/OFF 제어인데요

이때 주의할 점이 있습니다.

일부 서적이나 안내글에서 LED를 저항도 없이 5V전원이나  아두이노 출력핀에 연결하는 경우가 있습니다.
이는 잠깐이라도 하지 않는것이 좋습니다. (실행은 자유지만, LED는 물론이고 값비싼 아두이노까지 단명할 수 있습니다;; )

물론 AVR 자체 및 전류제한회로등에 의한 보호기능이 약간은 있겠지만, 완전하지 않으며 아두이노 수명단축을 재촉하는 일이 될 수 있으므로  LED연결시엔  꼭 전류제한용 저항을 장착하시기 바랍니다. 
어 떤값의 저항을 사용할지 모르신다면, 보통 2V정도에서 작동하는 LED를 5V전원에서 작동하는 경우 200~330옴 정도를 많이 사용합니다. 이때 전류제한용 저항의 값이 작아지면 더 밝아지고, 커지면 어두워집니다. 너무 큰저항값을 사용하면 LED가 꺼지죠
(정확한 저항값 계산은 관련자료를 찾아보시며 많이 나올겁니다)

아래의 이미지를  참고하시기바랍니다.

[그림1]의 경우 LED는 금방 돌아가십니다.

[그림2]의 경우 특히 많이 인용되는 장면인데요, 이것도 안좋은 예입니다. 
 아두이노 Blink예제 소개 페이지에도 저항이 포함되어있는것을 보실 수 있습니다: http://arduino.cc/en/Tutorial/Blink

 참 고로, 표준아두이노의 경우 디지탈핀13번에는 내부LED용 전류제한저항이 기본으로 내장되어있지만, 외부에 별도로 연결된 LED와는 무관합니다. (싱크방식으로 연결할수는 있긴합니다만 그건 나중에 회로공부를 조금 하신후에 응용하세요^^)
그러므로 13번핀이라도 직결하지 마시기 바랍니다.

아두이노 핀을통해 LED를 직접 구동할 경우엔 항상
[그림3.] 같이 전류제한용 저항을 함께 연결해주시기 바랍니다.



[그림1] LED 5V전원 직결




[그림2] 디지탈 5V출력에 LED 직결




[그림3] 디지털 5V출력에 전류제한용 저항과 LED 직결 (권장)



한가지 더 말씀드리면,  FND나 LED여러개를 구동할때도 역시 LED 하나마다 개별적으로 저항이 들어가는게 원칙입니다.
(다만 동시에 한개만 작동하는경우 회로구성에 따라 저항개수를 줄이수는 있습니다.)
그리고, 여러개의 LED를 구동할때는 전체 전류허용량을 고려해야합니다.

그림4.를 참고하시기 바랍니다.  핀하나에서 흘릴수있는 최대전류량이 40mA입니다. 
즉, LED 구동시 이값을 넘기면 안된다는 얘기입니다. 그래서 각각 저항을 추가해 줘야합니다.
그리고 또한가지 잊지말아야 할것은  전체허용전류량입니다.  
즉, 핀하나당 전류가  40mA이하로 흘러야함과 동시에, 전체적으로 200mA가 넘지않아야 합니다.

부디, 값비싼 아두이노 오래오래 고장없이 사용하시길 바람하는맘으로 이글을 적습니다. 
참고가 되셨기를~


[그림4] Atmega328 전류허용범위



Arduino Pro mini의 경우,  프로그래밍을 위해 FTDI USB시리얼 변환기를 사용해야합니다.

이때, 어떻게 연결해야하는지 궁굼해 하시는 분들이 계실것 같아서 참고자료를 올려봅니다.

 

참고로, Pro mini의 경우 2gram이 안되는 무게로인해 쿼드콥같은 경량형 작품에 사용되기 적합한 제품입니다.

그리고, 경량화를 위해 사용하는 경우라면 궂이 프로그래밍시에만 사용하는 FTDI변환기 결합용 헤더핀을 납땜해 둘 필요가 없으므로 아래와 같이 길이가 긴 헤더핀을 FTDI변환기에 꽂은 뒤 핀을 Pro mini에 삽입 후 약하게 꺽어 눌러주면 임시 결합이 됩니다. 이상태로 프로그래밍을 해도 정상적으로 진행이 되므로 참고하시기 바랍니다.

 

프로그래밍시엔, 아두이노 프로그래밍 환경인 스케치에서 기본 지원이 되는 모델이므로

1. 보드 설정을 Arduino Pro or Pro Mini (작동전압/작동속도)로 선택해주시고,

2. FTDI USB시리얼 변환기가 사용중인 포트번호를 설정해주시면 됩니다.

 

 

아래의 이미지와 동영상을 참고사하기 바랍니다.

사진1. 결합방향 참조 (납땜없이 사용하는 예)

사진2. 납땜없이도 연결하여 프로그래밍이 가능합니다.

 

 

동영상1. 임시결합하여 프로그래밍 후 작동상태 확인 후 탈착해 봤습니다.

참고로 무지 작은 Arduino Pro mini 라도 아두이노UNO와 동일하게 프로그래밍으로 제어가능한 LED가 디지탈13번핀에 기본장착되어 있습니다. 크기는 작지만 기본 기능은 동급입니다!!

 

 

 

아두이노UNO를 사용하여 새로운 타입의 아두이노 SoftPot(위치감지)센서와 서보모터 연동 사용예입니다.

아두이노 스타터킷 및 아두이노 인벤터킷에 포함된  새로운타입의 센서입니다.


SoftPot센서는 세개의 단자가 있으며 기본 작동법은 가변저항과 같습니다.  전압핀과 GND을 연결하면 나머지 단자를 통해 접촉위치에 해당되는 전압을 측정할 수 있습니다.   아래의 회로도 참조

[그림1. SoftPot센서 단자안내 - 대응 회로도(사용법은 가변저항과 같습니다.)


아두이노 스케치 소스는 아래와 같습니다. 
스케치에서 기본제공하는 서보제어 예제코드를 거의 그대로 사용했습니다.  참 쉽죠잉~!

알림:
스케치제공 서보모터 작동 기본예제 코드는 작동범위를 0~180으로 설정했지만, 실제로 서보모터의 종류에따라 이값의 범위를 지원하지 못하는경우가 있습니다. 이경우 서보모터에 무리가 가게 되므로  제경우 10~170으로 값의 범위를 줄여줬습니다. 항상 사용하려는 기기의 한계범위를 고려해서 프로그래밍을 해줘야 기기를 오래오래 고장없이 사용할 수 있습니다.


#include <Servo.h>
 
Servo myservo;  // 서보모터제어를 위한 객체를 생성합니다
 
int potpin = 0;  // 센서입력을 받은 아날로그핀을 A0로 설정합니다.
int val;    //  센서입력(아날로그)값을 임시저장할 변수입니다
 
void setup()
{
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}
 
void loop()
{
  val = analogRead(potpin);            // A0에 연결된 SoftPot센서의 값을 읽어옵니다.
  val = map(val, 0, 1023, 10, 170);     // 아날로그입력값 0~1023을 서보모터에 맞게 10~170으로 변환합니다.
  myservo.write(val);                  //  서보모터신호를 센서 입력값에 따라 변경합니다
  delay(15);                           // 약간의 지연시간을 줍니다. 
}

//code 뷰어가 오류가 계속되어 그냥 텍스트로 올렸습니다 ;;

아두이노 선택을 위한 안내문입니다.

현재 두에밀라노브에 이어 UNO가 표준형 아두이노로 자리를 잡아가는 상황입니다.

하지만, 아두이노팀에서는 UNO말고도 여러가지 용도별 아두이노들을 개발하고 있는 상황입니다.

아두이노팀의 공식 하드웨어 소개페이지: http://arduino.cc/en/Main/Hardware  에서 확인해 보실 수 있습니다.

 

아시는분들은 다 알고계시는 내용이지만, 아두이노를 처음 접하시는 분들이나 영어자료가 부담스러우셨던 분들에게 조금이나마 참조가 될수 있는 자료입니다. 참고하시기바랍니다.

 

아두이노UNO, 아두이노 Mega2560, 아두이노 Pro, 아두이노 Pro mini, 아두이노 FIO, 아두이노 LilyPad, FTDI USB시리얼 변환기, 아두이노쉴드 에대해 소개하고있습니다.  

 

 


봐서 남는것보다 보는시간으로 소비하는 시간이 아까운 경우가 많아서 저는 TV를 거의 보지 않습니다. 따라서 제 집엔 TV가 없고 가끔 부모님집에 가면 봅니다.  오랜만에 보면, 광고만 봐도 재밌습니다.  ㅎㅎㅎㅎ
헌데 문제는 케이블방송이 채널은 많지만 입맛에 맞는 프로그램들은 별로 없다는것.  수십개 채널을 돌리가다 주로 선택을 받는 채널이 바로 디스커버리(Discorvery)입니다.   왠지 보고나면 뭔가 남는게 있을것같은 느낌이 들거든요..
그중에 하나, 현란한 주제들로 제 호기심을 마구 찔러대는 프로그램이 바로 미쓰버스터즈(Mythbusters)입니다.

며칠전 미쓰버스터즈의 인터넷판 or 잡지판 정도되는 녀석을 발견하게되어 몇자 적어봅니다.

바로, Make: Magazine ( Makezine.com )



오라일리(발음 맞나요???) 출판사에서 만든 DIY 자작 전문 잡지 정도 되는 녀석인데요, 그냥 잡지가 아니고 무크지라고 부르나 봅니다. 즉, 정기간행물이아니고, 분기별로 좀더 단행본스러운 완성도를 갖춘형태로 출판되는 단행본+잡지 혼성출판물입니다.
매달 시간에 맞쳐 뚝딱 찍어내고 출판후 1개월후면 과월호라는 무서운 이름을 뒤집어 쓰는 잡지보다는 좀더 주제가 있는 컨텐츠를 담을 수 있으며, 잡지의 1개월이라는 유효기간으로부터도 자유로울 수 있는 형태의 저작물입니다.
오라일리는 한국에선 한빛미디어에서 출간된 많은 번역서들로 알려진 출판사이며, 저도 그럭저럭 오라일리 동물책들을 몇권 키우고 있을정도니 꽤 영향력이 있는 미디어사인것 같습니다. 

실은 저도 아직 잡지 구경은 못해봤지만, 사진 몇장만 봐도  딱~ 마음에 드는걸 봐서는 저와 여러분들께도 꽤 필요한 영양분같은 저작물이 아닐까 생각되네요.  먹고나면 든든한 영양소같아 보입니다. 헌데, 영문잡지란게 아무래도 친해지기 쉽지 않습니다.  서점에 가보면, 영어로된 더불어 몸값 비싼 보기좋은 물건으로 빤짝빤짝 투명비닐에 꼭꼭 감싸여있는 고귀한 녀석들인지라 그냥 무시해버리곤 한답니다. 메니아라도 되면 모를까,,  전 손이 안가네요

어쨌든 좋은소식인가요?   한빛미디어에서 아마도 이 잡지를 한국어판으로 출간할듯한 조짐을 보이고 있습니다.
몇 달전엔 구인광고를 내시더니,  12월24일엔 makezine.co.kr 도메인을 등록하셨네요
지금은 방문해도 아무것도 없는데요, 아마도 몇 달 내로 뜨지 않을까???  예상을 해봅니다.

기사제목으로 한다면, 

Make Magazine. 한국어판 출시임박???  정도 될까요 ^^

뉴스에도 안나온 정보를 정황자료를 바탕으로 미리 예상하고나니  꽤 흥미진진해지네요

부디 나오게 되면,  합리적인 가격, 오리지날을 상회하는 퀄리티(너무 기대가 큰가요? )
그리고 무엇보다도 한국실정에 맡는 컨텐츠 보강이 꼭 이뤄졌으면 하는 생각이 듭니다.

혹시 Make 잡지도 previewer 같은걸 모집한다면, 저도 꼭 참여해보고 싶네요.

이미 비슷한? 주제를 갖는 고전적인 잡지들이 있지만, 아직도 많이 부족하다는 생각이 듭니다.
부디 단순히  "한국어번역본+한국어광고" 잡지가 아닌, 진정한 한국의 Maker들을 위한 Makezine이 탄생하길 기대해봅니다.

아니면,,,  누군가 만들어야겠죠  여러분 or 제가?


무크지:
잡지를 뜻하는 매거진(Magazine)과 단행본을 뜻하는 북(book)이 결합된 합성어로, 잡지와 단행본의 성격을 가진 부정기적인 간행물을 지칭하는 용어. 1971년 런던에서 열린 국제 잡지 협회의 제 18차 회의에서 제출된 보고서에서 처음 사용되었으며 미국에서는 매거북(Magabook), 부커진(bookazine)이라고도 부른단다. (내용출처)


가장작은 32bit ARM 마이크로 컨트롤러입니다.
핀수가 적지만 기본 사양은 11xx시리즈와 거의 대등 합니다.

그 크기가 무려 2x2mm

손톱만큼 작다는 표현이 사라질때인가 왔나봅니다.
눈꼽만큼 작다는 표현을 써야할 시대가 왔나요^^;;
스마트 더스트 시대의 주역은 바로 요녀석들이 되려나 봅니다.



참고로, 핀번호가 2차원 매트릭스 방식을 사용하네요,
 행은 ABCD 열은 1234 이런식으로 표현하여 총 16개 핀번호를 부여합니다.

관련자료: http://www.nxp.com/news/content/file_1701.html

+ Recent posts