GDG 의 아두이노 워크샵

[워크샵 공지 내용]

-----------------------------------------------------------------------------------------------------

우주를 품은 아두이노 (화성탐사 로봇 - 큐리오시티를 구하라!)

오픈소스 HW인 아두이노에 대해서 배워보고 또 이를 활용해서 직접 무엇인가를 만들어 보는 워크샵입니다. 8비트 마이크로 콘트롤러인 아두이노와 디지털 입출력, 아날로그 입출력 센서의 기초 사용법을  알아보고,  팀 프로젝트를 진행합니다.  프로젝트의 테마는 우주 탐사 로봇 입니다. 탐사로봇의 테마에서 문제상황이 주어지고, 그 문제 상황을 해결하는 로봇을 직접 만들면서 해결해 봅시다.

시간 : 2012. 9. 1 (토요일) 오전 10시 ~ 오후 5시까지
장소 : CNN the Biz 강남센터점 5층 (강남점이 아니라 강남센터점입니다.)

강사 : 박동희(은파산업 대표,
donghee8.com ). 김승범

운영자 : 신제용(GDG Seoul 운영자)

장소 및 점심 제공 : Google Korea

대상 : 개발자, 디자이너, DIY에 관심 있는 아무나

사전 지식 : 기초적인 C언어(아두이노 프로그래밍)

선착순 : 40명
참가비 : 없음
준비물 : 집에 굴러다니는 택배 박스, 가위, 칼,  네임펜(각종 색깔이면 더 좋음), 스카치테이프, 개인 노트북

-----------------------------------------------------------------------------------------------------


아두이노를 처음 접해봤는데 실제 만들면서 경험을 해볼 수 있어서 좋은 경험이 되었습니다.


[실습환경 준비]

1. python설치

 http://pypi.python.org/pypi/pyserial

  우분투: sudo python setup.py install


2.arduino 설치

 http://arduino.cc/

(우분투 사용자는 그냥: sudo apt-get install arduino )



[지급된 장비]

- Arduino

- LED 2개, 빵판 (이거 잘 만든것 같음), 저항, 광센서, servo모터 (지정된 값 위치로 이동하는 모터), 버튼 등...

ST-850A 디지털멀티테스터기 (전압과 연결여부 등을 체크하는 장비로 소프트웨어를 만들때 디버깅 하듯이 하드웨어 회로도등을 체크할 때 꼭 필요해 보임)


[LED 2개 깜박이기]

------------------------------------------------------------------------------

void setup()               

{                          

  pinMode(12,OUTPUT);   

  pinMode(13,OUTPUT);   

}                          


void loop ()               

{

  digitalWrite(13, LOW);  

  digitalWrite(12, HIGH);

  delay(200);

  digitalWrite(12, LOW);

  digitalWrite(13, HIGH);

  delay(200);

}      

------------------------------------------------------------------------------


- 풀업저항, 풀다운 저항

- cds 저항 7805 :  5v

-아날로그 출력(DAC)?  PWM (Pluse Width Modulation),  analogWrite (0~255)



[Serial 통신값 읽어오기]

Tools>Serial Monitor 에서 입력값 전달 가능

----------------------------------------------------------------------

int value;


void setup() {

  pinMode(13,OUTPUT);

  Serial.begin(9600);

}


void loop() {

  int sensorValue = analogRead(A0);

  Serial.println(sensorValue);

}

----------------------------------------------------------------------

[Servo모터 방향전환]

------------------------------------------------------------------------------

#include <Servo.h>

Servo myservo11;

Servo myservo10;


int light;


void setup()               

{                          

  myservo11.attach(11);

  myservo10.attach(10);

}                          


void loop ()               

{

  for(int p =0; p < 180; ){

   myservo11.write(p);  

   myservo10.write(p);  

   delay(100);    

   p+=10;

  }

}      

------------------------------------------------------------------------------



[미션: 아래 3개 중에 1개 개발]

1.솔라셀은 항상 태양을 바로봐야 함

2.탐사선의 안테나 방향은 화성 중심의 반대방향: 

3.탐사선은 화성의 인공위성과 UHF통신을 한다


오전부터 오후 3시30분 정도까지는 기본실습이고 이후에 미션에 대해서 작업을 하다보니 시간이 부족해서 완료하지는 못 했습니다.


일단, 1번 기준으로 생각했던 알고리즘


- 모터2개(x,y축)로 광센서 값을 최대로 하는 방향을 풀스캔 

> 광센서 출력값이 맥스값이 될 때의 x,y축 값 저장

> 광센서는 태양전지판에 부착

- 이후 광원의 위치가 변하는 방향으로 따라가도록 함

> 광원의 방향 변화에 대해서는 광센서 값이 어떻게 변화되는지 체크 필요



[부품 구매처, 관련 정보]

국내: deviceMart(부품관련 정보), 용산매장:동신전자

해외: www.sparkfun.com, adafruit.com



강의자료 링크
http://silverywave.com/db/docs/workshop/gdg-seoul2012/index.html




'H/W > Arduino' 카테고리의 다른 글

GDG 의 아두이노 워크샵  (0) 2012.09.01