레고 마인드 스톰으로 만든 로봇 팔
프로그래밍은 NXT-G 2.0
블루투스로 공을 잡을 때까지 조정
공을 잡고 색을 인식 후
해당하는 위치에 내려 놓는다
작동영상
주방 커피용품과 와인 접시 등을 장식할 선반을 작업한다
일단 기본모양은
맨아래 와인을 넣고
위 두칸은 접시를 장식 하는 것으로
일단 뒷판 직업 나무판을 겹쳐 직소로 오리고
센딩
선반과 와인을 올릴 거치대 작업 후 칠까지
짜잔~
아두이노간 xbee통신
프로그램 버전 : Arduino - 1.0
아두이노끼리 유선은 물론
xbee를 통해 무선통신이 가능하다.
한쪽 아두이노에서 센서 또는 스위치 등으로 신호를 받고
그신호를 다른 아두이노에서 받아 처리하여 출력하는 형식이다.
간단하게
우노에서 스위치를 누르면 숫자 5를 xbee를 통해 날리고
메가에서 숫자5를 받아 출력하는 식으로 구성해보면
우노의 배선
스위치 입력은 11번에 연결하고
xbee 쉴드 장착
우노의 스케치 소스
-------------------------------------------------------------------------------
#include <SoftwareSerial.h>
SoftwareSerial xbeeS(2,3); //xbee 통신을 위해 구성
void setup(){
xbeeS.begin(9600); //xbee 통신 시작
pinMode(11,INPUT); //11번을 스위치 입력
pinMode(13,OUTPUT);
}
void loop(){
if(digitalRead(11)==LOW){
digitalWrite(13,HIGH);
xbeeS.write(5); //스위치 입력이 있으면 xbee에 5를 보냄
}
digitalWrite(13,LOW);
}
------------------------------------------------------------------------------------
신호를 받을 메가의 배선
메가에서의 스케치 소스
------------------------------------------------------------------------------------
int a;
void setup(){
Serial.begin(9600); //시리얼 통신 0번 pc와 통신
Serial3.begin(9600); //메가는 하드웨어적으로 시리얼 통신을 0~3번까지 제공하므로
//소프트웨어적으로 시리얼 통신을 구성할 필요 없다.
// 통신할 통신장치를 1~3번에 연결하고 사용하면 된다.
// SoftwareSerial을 구성하면 통신이 잘 안됨???
pinMode(13,OUTPUT);
}
void loop(){
if(Serial3.available()>0){
a = Serial3.read(); //xbee의 값을 저장
if(a==5){
digitalWrite(13,HIGH);
Serial.println(a); // 값을 시리얼 모니터에 출력
}
}
digitalWrite(13,LOW);
}
---------------------------------------------------------------------------------------
xbee 통신
프로그램 버전 : Arduino - 1.0
사용된 Xbee 모듈은
http://www.sparkfun.com/products/8664 이다
Xbee 모듈의 설정은
http://www.sparkfun.com/datasheets/Wireless/Zigbee/XBee-Manual.pdf 참고
기본 설정된 값은
Xbee 모듈과 컴퓨터와 UART방식으로 9600bps 로 통신하고
(물론 설정을 변경해 통신속도를 바꿀수 있다. 변경방법은 위 Manual.pdf참고)
Xbee 모듈간은 250000bps로 통신한다.
Xbee라고 다를것 없이 아두이노에서의 스케치는
softwareserial 라이브러리를 이요해서 TX, RX핀을 설정하고
다른 통신모듈과 같이 스케치 하면 된다.
(다른 통신모듈과 통신 거리, 속도, 가격 등이 다르므로
사용 목적에 맞게 선택하면 된다.)
Xbee 모듈 2개, Xbee 쉴드, Xbee explorer 사진이다.
모듈을 쉴드와, explorer에 끼우고
모듈을 장착한 쉴드를 아두이노 UNO보드에 끼운 사진이다.
각각 쉴드가 장착된 아두이노는 com4번과
explorer에 기운 Xbee는 com8번에 연결되었다.
(장치관리자에서 확인)
즉 com4-아두이노-Xbee <------통신------> Xbee-com8
결국은 한 컴퓨터의 com4에서 com8번으로 통신을 구현 했지만
이는 통신의 확인을 위한 작업 이고
응용하면
Xbee연결된 아두이노를 센서나 모터를 연결하여 외부에 두고
Xbee를 통해 컴퓨터로 센서 값이나 모터를 제어할 수 있다.
Xbee가 장착된 아두이노와 Xbee가 연결된 pc와의 통신
스케치 소스
-------------------------------------------------------------------------------
/*Xbee가 장착된 아두이노와 Xbee가 연결된 pc와의 통신*/
#include <SoftwareSerial.h>
SoftwareSerial XbeeSerial(2,3); //아두이노 2,3번 핀을 통해 통신
int a,b;
void setup(){
Serial.begin(9600);
XbeeSerial.begin(9600);
}
void loop(){
if(Serial.available()>0){
a = Serial.read(); // 시리얼 모니터에 입력된 값을 a에 저장
XbeeSerial.println(a); // Xbee를 통해 다른Xbee가 연결된 pc에 값 출력
delay(100);
}
if(XbeeSerial.available()>0){
b = XbeeSerial.read(); // Xbee가 연결된 pc에서 입력한 값 b에 저장
Serial.println(b); // Xbee를 통해 아두이노Xbee로 값을 보내고 시리얼 모니터에 출력
delay(100);
}
}
-------------------------------------------------------------------
작동영상
(Serial 모니터는 아두이노, 컴포트 마스터는 Xbee-explorer와 연결 되었다.)