개요:

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 하시면됩니다.   접촉상태가 좋지않으면 프로그램 업로드시 오류가 뜹니다.

 

 

 

 

 

아두이노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시리얼 변환기, 아두이노쉴드 에대해 소개하고있습니다.  

 

 

거리센서 테스트 2번째 이야기입니다.
종전방식은 그냥 거리에 따른 출력 전압변화를 전압계로 관측하는 정도 였습니다.
이번엔 조금 더 발전하여 아듀이노 보드에서 거리센서에서 출력해주는 전압을 받은 뒤, 시리얼 통신으로 PC에 전달하고,
PC측에서는 시리얼통신으로 전송받은 수치를 그래프로 표현해주는 serial Chart 라는 프로그램으로 시각화 하는 예제가 되겠습니다.

[거리센서+아듀이노+시리얼통신+시리얼챠트 = 실시간 거리센서 파형관찰 ]

[ 동영상. 거리센서 결과를 SerialChart로 관측하기 ]

아마도 아듀이노로 할 수 있는 가장 그럴듯한 초보적 예제중 하나일듯 합니다.

1. 아듀이노 : 거리센서 Pin 연결도

 거리센서  아듀이노 보드
 +  5V
 -  GND
 V out  Analog IN 0

2. 아듀이노 Sketch 소스코드

/**  * 기본포함된 예제인 AnalogInSerial를  PC측 SerialChart 프로그램에서 인식할수 있도록 한 줄 추가한 코드입니다.  */   void setup() {   Serial.begin(9600);  }    void loop() {   // read the analog input into a variable:    int analogValue = analogRead(0) /4;    // print the result:    Serial.print(analogValue);       Serial.println("");   //serialChart 프로그램에서 data 패킷 단위를 구분(0x0d 0x0a가 전달됨)해주기 위해 필요합니다.     // wait 10 milliseconds for the analog-to-digital converter    // to settle after the last reading:    delay(10);  } 

3. SerialChart 프로그램용 configuration 설정파일.
: 시리얼차트 프로그램은 입력받은 data를 configuration파일에 정의에따라 해석하여 그래프로 나타내줍니다.
아래의 예는 가장 간단하게 구성해본 예입니다. 더 다양한 설정이 가능하니 직접 해보시기 바랍니다.
 파일( 가령  imu_arduino.scc )에 아래의 내용을 적은 뒤 불러들이면 됩니다.
주의: COM3 같은 port 번호는 컴퓨터 설정마다 다른건 알고계시겠죠.. 자신의 설정에 맞게 수정해줍니다.

[_setup_]  port=COM3 baudrate=9600 width=700 height=500 background_color = white grid_h_origin = 100 grid_h_step = 1 grid_h_color = #EEE grid_h_origin_color = #CCC grid_v_origin = 0 grid_v_step = 0.5 grid_v_color = #EEE grid_v_origin_color = transparent  [_default_] min=0 max=255  [DistanceSensor] color=red 

 

 

[관련 블로그글]

거리센서 출력전압 관측

우편함 뮤직로봇 응용예제


[참고사이트]
시리얼챠트 프로그램 다운로드:
 

http://www.starlino.com/data/imu_kalman_arduino/SerialChart_01.zip

 

시리얼챠트 코드구글

 

Google Code Archive - Long-term storage for Google Code Project Hosting.

 

code.google.com

아듀이노 공식사이트:

http://arduino.cc

+ Recent posts