1. 아두이노
아두이노는 국내에서는 플러그 하우스나 기타 하드웨어를 취급하는 쇼핑몰등에서 보드와 관련 모듈, 부품들을 구입할 수 있습니다. 전기적인 지식이 조금 있으신 분들은 아두이노 공식 사이트에 공개된 하드웨어 메뉴얼을 참조하여 직접 만드는 것도 어렵지 않습니다.
|
아두이노와 관련된 번역서도 나와 있고 공식 사이트의 Leaning, Reference 페이지와 인터넷에 공개되어 있는 많은 자료들을 참고하면 쉽게 익숙해질 수 있습니다. 브레드보드를 이용하여 LED, 모터, 스위치, 센서와 저항들을 연결하여 사용하면 기판을 만들 필요도 없고 납땜도 필요없이 손쉽게 원하는 회로를 만들어 볼 수 있습니다.
물론 지금 쓰고 있는 컴퓨터 보다 1,000배는 더 열등한(?) 하드웨어이고 간단한 코드들로 간단한 동작들만 하지만 직접 하드웨어를 구성하고 제어하는 물리적인 재미와 함께 어린시절 전자키트를 가지고 놀던 향수도 느낄 수 있습니다. 직접 회로를 만들 수도 있지만 판매되는 전용 이더넷 쉴드, 모터쉴드, 직비 쉴드등을 이용해 쉽게 기능을 추가할 수 있으며 로봇 교재 사이트등에서 판매하는 부품들도 대부분 사용이 가능합니다. 아두이노는 소프트웨어 개발자를 위한 저렴(?)하고 재미있는 장난감중 하나인 것 같습니다.
아두이노는 스크래치에서도 바로 인식이 가능하기 때문에 스크래치의 센서보드로도 사용할 수있습니다. 관찰 메뉴에서 하단의 센서 관련 블록에서 우클릭 후에 'ScratchBoard 감시판 보이기'를 클릭하고 다시 감시판에서 우클릭 후에 '시리얼/USB 포트 선택'을 클릭하면 아래와이 아두이노 보드가 인식됩니다.
이를 이용하면 스크래치의 리모콘, 게임 컨트롤러를 쉽게 만들 수 있으면 촉각, 광, 온도, 적외선, 소리 센서등을 이용해 실제 환경을 스크래치에 반영시키는 것이 가능합니다. 스크래치뿐만 아니라 여러 개발환경에서 아두이노와 통신할 수 있는 방법들이 많이 공개되어 있습니다.
2. 샘플
이전에 포스팅한 블로그의 새 댓글을 확인하는 스크래치를 아두이노 버젼으로 만들어 보겠습니다. 이번도 마찬가지지만 정확한 파싱없이 대충 새 댓글을 판별하는 것이기 때문에 뭔가 쓸만한게 만들어 보실려면 코드를 많이 수정하셔야 할 것 입니다.
1) 아두이노 코드
아두이노 통합개발환경은 아두이노 공식 사이트의 다운로드 페이지에서 사용하는 OS별로 다운 받으실 수 있습니다. IDE의 에디터에서 아래의 코드를 입력한 후에 상단의 Upload 버튼을 클릭하면 보드로 업로드됩니다.
- #define LED_PIN 13
- #define DELAY_SEC 5
- void setup() {
- Serial.begin(9600);
- pinMode(LED_PIN, OUTPUT);
- }
- void loop() {
- if (Serial.available() > 0) {
- byte b = Serial.read();
- if (b == 'O') {
- digitalWrite(LED_PIN, HIGH);
- delay(1000 * DELAY_SEC);
- digitalWrite(LED_PIN, LOW);
- }
- }
- }
2) 프로세싱 코드
아두이노에서는 별도의 이더넷 모듈 없이는 직접적인 인터넷 연결이 불가능하기 때문에 프로세싱과 연동하여 블로그의 내용을 가져오도록 합니다. 프로세싱 IDE에서 아래의 코드를 입력하고 실행합니다.
- import processing.net.*;
- import processing.serial.*;
- final int DELAY_SEC = 5;
- Serial port;
- void setup() {
- size(400, 140);
- background(10);
- port = new Serial(this, Serial.list()[0], 9600);
- }
- void draw() {
- background(10);
- Client webClient = new Client(this, BLOG_URL, 80);
- webClient.write("GET / HTTP/1.1\n");
- delay(1000 * DELAY_SEC);
- if (webClient.available() > 0) {
- String statusTitle;
- if (comment != null && comment.length > 0) {
- if (prevCommentID.equals(recentCommentID)) {
- statusTitle = "None";
- } else {
- statusTitle = "New";
- port.write("O");
- }
- prevCommentID = recentCommentID;
- } else {
- statusTitle = "Error";
- }
- }
- }
아래와 같이 실행되는 모습을 확인할 수 있습니다. 급조한 소스에 나와있다시피 실행한 후 5초 후에 최초로 한번 LED가 한번 켜지고 그후에는 댓글에 변경이 있을때마다 켜집니다.
'기타' 카테고리의 다른 글
다시 글쓰기 (2) | 2011.07.19 |
---|---|
아두이노와 놀기 (4) | 2010.07.01 |
참고할만한 좋은 아이폰 소스 (19) | 2010.05.04 |
세계지도 앱 - World Atlas (2) | 2010.04.21 |
모토로이 (6) | 2010.02.11 |
역시 그냥 껐다 키는 것이... (8) | 2009.09.24 |
저도 위에 안내하신 책과 스타터킷을 한번에 질렀습니다. 아두이노는 참 재미있는 거 같은데 제가 아이디어가 미천해서 뭔가 획기적인게 생각이 안나네요. 뭐 좋은 아이디어 있으시면 공유 좀~~ㅎㅎ 로봇교실용 센서와 모터가 정말 부럽습니다. 저는 오직 스타터킷만 있어서 뭔가 연결 해 볼만하게 없네요. 아무래도 날 잡아서 아부지 창고를 털어야 겠습니다. ^^
저도 관련글을 올린게 있어서 트랙백 드렸는데 안 올라오는 거 같아 주소 남길게요~ 놀러와주세요!
http://sewonist.com/2010/06/arduino-flash-fun/
반갑습니다. 멋진 블로그와 좋은 정보 잘 구경하고 왔습니다. ^^ 만드는 것도 만드는 것이지만 저도 아이디어가 없네요. 이거 해볼까 하다가 이런 흔한걸 새삼할 필요가 하는 생각에 접기도 하고요.
아무래도 아들 창고 보다는 아버지 창고에 더 쓸만한게 많이 있지 않을까요? ^^;
아두이노도 하시는군요! 저도 한 일주일전부터 우연히 알게되서 물건들 사서 예제 따라해보고 있는데
재밌고 신기하네요. 자주 올려주세요
잠시 관심이 있어 조금 해보다 지금까지 서랍속에 들어 가 있습니다. 이번에 나온 Make 지에 아두이노에 관련해서 많은 내용이 있더라고요. 당장은 아니지만 다시 해볼려고합니다.