Archives  

광센서: 포토트랜지스터

phototr_st7l.jpg

phototr.jpg

포토트랜지스터는 CdS보다 반응속도가 빠르다. 저항은 22kohm을 사용한다.

Pong with 8x8 Led Matrix on Arduino

http://blog.bsoares.com.br/arduino/ping-pong-with-8x8-led-matrix-on-arduino

Pong with 8x8 Led Matrix on Arduino from Bruno Soares on Vimeo.

아르두이노 보드 퓨즈 세팅

http://artofsaint.com/tt/53

센서가 일정값 이상으로 올라간 순간(rise) 카운터 증가

import processing.serial.*;

Serial myPort;  // The serial port

int i = 1;                   // counter
int dataIn;
int last;
boolean flag;
int k;

void setup () {
  size(400, 300);        // window size

  println(Serial.list());
  myPort = new Serial(this, Serial.list()[0], 9600);
  frameRate(30);
  background(0);
}

void draw () {
  while (myPort.available() > 0) {
    dataIn = int(myPort.read());
    drawGraph();

    if (last < 170) {
      if (dataIn > 170) flag = true;
    }
  }

  if (flag) {
    fill(255);
    k ++;
    flag = false;
  } 
  else fill(128);
  noStroke();
  rect(10,10,20,20);  
  last = dataIn;
  println(k);
}


void drawGraph() {
  stroke(255,200);
  line(i, height, i, height - dataIn);
  if (i >= width-2) {
    i = 0;
    noStroke();
    fill(0,100);
    rect(0,0,width,height); 
  } 
  else {
    i++;
  } 
}

적외선 센서/LED

photodiode.jpg

적외선 LED와 포토다이오드(적외선)을 이용한 간단한 장애물 센서입니다.
LED와 달리 포토 다이오드에는 역전압이 걸려 있습니다.
다이오드는 전류가 한 방향으로만 흐르는 특징을 가진 소자이지만,
포토 다이오드는 빛을 받으면 역방향으로 전류가 흐르는 성질이 있습니다.
장애물에 반사되어 돌아오는 적외선의 양을 포토 다이오드로 측정하면 장애물 유무를 판단할 수 있습니다.
주위가 밝을 경우 광원의 영향을 받을 수 있으므로 후드를 사용하는 것이 좋습니다.

smoothing

// Define the number of samples to keep track of.  The higher the number,
// the more the readings will be smoothed, but the slower the output will
// respond to the input.  Using a #define rather than a normal variable lets
// use this value to determine the size of the readings array.
#define NUMREADINGS 10

int readings[NUMREADINGS];                // the readings from the analog input
int index = 0;                            // the index of the current reading
int total = 0;                            // the running total
int average = 0;                          // the average

int inputPin = 0;

void setup()
{
  Serial.begin(9600);                     // initialize serial communication with computer
  for (int i = 0; i < NUMREADINGS; i++)
    readings[i] = 0;                      // initialize all the readings to 0
}

void loop()
{
  total -= readings[index];               // subtract the last reading
  readings[index] = analogRead(inputPin); // read from the sensor
  total += readings[index];               // add the reading to the total
  index = (index + 1);                    // advance to the next index

  if (index >= NUMREADINGS)               // if we're at the end of the array...
    index = 0;                            // ...wrap around to the beginning

  average = total / NUMREADINGS;          // calculate the average
  Serial.println(average);                // send it to the computer (as ASCII digits)
}

Firmata, Funnel

컴퓨터와 보드를 연결해서 데이터를 주고받을 때엔 serial라이브러리를 사용하면 되지만, 이런 저런 문제가 발생하거나 프로그래밍이 복잡해지기 마련이다. 이럴 때 유용한 것들.

Firmata
i/o보드와 컴퓨터(소프트웨어)를 연결하는 프로토콜. 프로세싱 등에서 보드를 직접 제어할 수 있다. 아르두이노용이었지만 와이어링0017부터 라이브러리에 포함(아직 버그가 있는 듯).

Funnel
Gainer, Arduino, Funnel I/O등의 하드웨어와 프로세싱, flash를 연결해주는 중간 매개체라고 할 수 있다.

flipflop

int last;
int button;
boolean pressed = false;

void setup() {
  pinMode(0,INPUT);
  pinMode(1,OUTPUT);
  pinMode(48,OUTPUT);
  digitalWrite(48,HIGH);
}

void loop() {
  button = digitalRead(0);
  if (button != last) {
    if (button == HIGH){
      pressed = !pressed;
    } 
  }

  if(pressed == true) {
    digitalWrite(1,HIGH);
  } 
  else {
    digitalWrite(1,LOW);
  }
  last = button;
  delay(10);
}

wiring-processing

wiring-processing(processing)
wiring

하드웨어 구입처 / shop list

온라인

wiring/arduino 보드 구입(해외)
http://www.sparkfun.com/

아르두이노 국내 판매원
http://www.plughouse.co.kr/


전기, 전자부품
샘플전자(주로 센서) http://www.sample.co.kr
엘레파츠 http://www.eleparts.co.kr
디바이스마트 http://www.devicemart.co.kr
스파크펀(해외) http://www.sparkfun.com/


오프라인
샘플전자(용산 전자랜드 광장층 입구) : 다양한 센서 및 키트 판매
SY전자(용산 전자랜드 광장층 입구) : 마이크로 컨트롤러, IC, 저항, 캐퍼시터 등 부품을 낱개로 구입할 수 있어서 편리함
그외 용산 전자랜드 광장층 부품상가, 청계천 세운상가 주변 부품, 공구상가