初めてのArduino

Arduinoを使ってみました。


GAINERは少し値が張るので、多少手頃ではある、Arduinoにしました(4千弱)。
なにせ、初めてなもので失敗が怖かったのです><


ArduinoはUSB接続でパソコンと接続でき、開発環境も提供されているので、手軽にフィジカル・コンピューティングに触れられます。



上の画像は、光センサ(CdS)(ブレッドボード左下の小さい円盤)に手をかざしている間、発光ダイオード(LED)が左右にリレーして行く装置の配線です。
配線が整理されていないのは、いろいろサンプルを試していたせいです。


以下のソースコードは、Arduinoの開発環境のサンプルと+GAINERを参考にしたものです。
継ぎ接ぎですね、わかっています。

int inPin = 0;
int ledPin = 13;
int threshold = 120;
int state_low = 0;
int state_high = 1;
int last_state = state_low;

int timer = 50;
int pins[] = {3, 4, 5, 6, 7};
int num_pins = 5;

void setup()
{
  pinMode(inPin, INPUT);
  
  int i;
  for (i = 0; i < num_pins; i++)
    pinMode(pins[i], OUTPUT);
}

void loop()
{ 
  int current_state = last_state;
  
  if (analogRead(inPin) < threshold)
  {
    current_state = state_low;
  }
  else
  {
    current_state = state_high;
  }

  int i;
    
  if (current_state == state_low)
  {
      for (i = 0; i < num_pins; i++)
      {
        digitalWrite(pins[i], HIGH);
        delay(timer);
        digitalWrite(pins[i], LOW);
      }
      for (i = num_pins - 1; i >= 0; i--)
      { 
        digitalWrite(pins[i], HIGH);
        delay(timer);
        digitalWrite(pins[i], LOW);
      }
  }
  else if (current_state == state_high)
  {
    for (i = 0; i < num_pins; i++)
      digitalWrite(pins[i], LOW);
  }
  
  last_state = current_state;
}


ちなみに、

Binary sketch size: 1706 bytes (of a 14336 byte maximum)

らしいです。


簡単にコンピュータの世界と実世界をブリッジさせることが出来ます!


ぶっちゃけ、電子工作やったことなかったから、出来るだけハード側寄りにならないように、
可能な限りソフト上で制御できるといいなと思い、このIOモジュールを使いました。


ソフト上の方が、汎用性が高くなる気がしますし、何かと便利だと思います。


とはいえ、何も電子工作出来ないままでいるわけにはいかないので、少しずつでも学んでいこうと思います。
今回は配線と、ハンダ付けをしましたが、研究室のハンダごては年期が入っているので個人的に買わないといけないかな。
これからもクリップと導線つないだりする機会はあると思うので。


なんにしろ、


ものすごく楽しいです!


enjoy summer vacation !


ちなみに、実験系なので夏休みも普通に毎日大学です。。。


+GAINER―PHYSICAL COMPUTING WITH GAINER
GainerBook Labo くるくる研究室
九天社
売り上げランキング: 34002