2013年9月10日火曜日

9/30の授業:マトリクスLED

次回は3週間後の9/30になります。
次回は主にArduinoをつかって、マトリクスLED制御の演習を行う予定です。
前回のWebカメラ演習とも関連した内容となります。ひきつづき複数の画素制御について演習していきます。
尚、マトリクスLEDについては以下のものを用意してきてください。

必要なもの:
・ノートパソコン
・Arduinoボード+USBケーブル
ブレッドボード(できれば小型なもの2個)
ジャンパワイヤー(オスーオスタイプ:できれば20本以上)
マトリクスLED(アノードコモンタイプ)
*マトリクスLEDには、アノードコモンタイプとカソードコモンタイプがあります。複数のLEDの陽極(+)を共有接合してあるものか、陰極(ー)を共有接合してあるものかになりますが、今回はアノードコモンタイプを使う予定です(入手困難であればカソードコモンタイプでも構いません)。
また、マトリクスLEDがブレッドボードに対してサイズが大きいので、できれば小型なブレッドボードを2枚用意して、その2枚にまたがるように配置するとつかいやすくなります。
上記8x8のマトリクスLEDには、合計64個のLEDが内蔵されており、端子数も16個あるので、最低でも20本はジャンパワイヤーが必要となりますので、足りない場合は追加しておいてください。

 授業内のサンプル: (左上から順番にひとつずつLEDを点灯させる)
マトリクスLEDにはアノードコモンタイプとカソードコモンタイプがあり極性が逆になります。
以下プログラム内のdigitalWrite()のHIGH/LOWが逆になります。 
 
*アノードコモンタイプの場合:

void setup(){
  //16本のピン(2~17)をデジタル出力に設定
  for(int i=2;i<=17;i++){
    pinMode(i,OUTPUT);
  }
}
void loop(){
  //行(横)の繰り返し処理
  for(int i=2;i<=9;i++){     //行(2~9番ピン)
    digitalWrite(i,LOW);    //LOWで点灯

    //列(縦)の繰り返し処理
    for(int j=10;j<=17;j++){ //列(10~17番ピン)
      digitalWrite(j,HIGH);   //HIGHで点灯
      delay(100);            //点灯時間
      digitalWrite(j,LOW);  //列をオフにする
    }

    digitalWrite(i,HIGH);     //行をオフにする
  }
}


*カソードコモンタイプの場合:

void setup(){
  //16本のピン(2~17)をデジタル出力に設定
  for(int i=2;i<=17;i++){
    pinMode(i,OUTPUT);
  }
}
void loop(){
  //行(横)の繰り返し処理
  for(int i=2;i<=9;i++){     //行(2~9番ピン)
    digitalWrite(i,HIGH);    //HIGHで点灯

    //列(縦)の繰り返し処理
    for(int j=10;j<=17;j++){ //列(10~17番ピン)
      digitalWrite(j,LOW);   //LOWで点灯
      delay(100);            //点灯時間
      digitalWrite(j,HIGH);  //列をオフにする
    }

    digitalWrite(i,LOW);     //行をオフにする
  }
}
 
 

2013年9月6日金曜日

9/09の授業:Webカメラの演習

後期初回(9/09)は、Webカメラを用いた実験を行いたいと思います。
Processingのvideoライブラリをつかって、Webカメラをセンサとして利用する内容に発展していく予定です。
また必要に応じてArduinoとの連携を行います。

必要なもの:
・ノートパソコン
・Webカメラまたはパソコン内蔵カメラ
・Arduinoボード類一式




モザイク画像の表示:

import processing.video.*;

Capture cam;

int w=640; //画面幅
int h=480; //画面高さ
int s=10;   //モザイク1辺のサイズ

void setup() {
  size(w,h);
  cam = new Capture(this, w,h);
  cam.start();
 
  stroke(0); //モザイクの外形線の色
  //noStroke(); //外形線なしの場合
}

void draw() {
  if (cam.available() == true) {
    cam.read();
    for(int i=0; i<w*h;i++){
      if((i%w)%s==0 && (i/w)%s==0){
        fill(cam.pixels[i]);
        rect(i%w, i/w, s, s);
      }
    }
  }
}

変数sを変えれば、モザイクの細かさが変化します。
また、wとhを変えることで、表示サイズとカメラから取り込む画像サイズを変えることができます。
このプログラムでは、640×480画素数で読み込んでいる画像データを
if((i%w)%s==0 && (i/w)%s==0){...}
の条件文をつかって、iについては横を10個(変数sの値分)とばし、縦も10個とばしのピクセルの位置の色データだけをfill()に適用させてrect()で矩形(モザイクの1粒)を描かせています。

2013年8月22日木曜日

後期授業

 後期授業は、9/9から開始します。

後期は、前期の内容を復習しながら、やや応用的な内容の演習を行う予定です。

ノートパソコン(Processing+Arduinoインストール済み)、
Arduinoボード+ブレッドボード+ジャンパワイヤ+その他部品等、
は、毎回持参してください。

後期授業日程:
09/09 
09/30
10/21
11/11
11/25
12/09

2013年7月18日木曜日

次回の授業(7/22:前期最終授業)Processing+Arduino演習2

7/22(前期最終授業)は、ひきつづきProcessingとArduinoを連携させた演習を行います。

必要なもの:
・各自のノートパソコン(Processingインストール済み)
・Arduinoボード
・USBケーブル(Arduinoとパソコン接続用)
ブレッドボード、ジャンパワイヤ、その他部品など


 授業内サンプル:
ArduinoのanalogRead端子0番ピン(他2本はGNDと5V端子へ接続)に接続した可変抵抗器(ヴォリューム)を動かすことで、Processing上の画面(Pong:パドル)を操作する。

Arduinoのプログラム:

int val;

void setup(){
  Serial.begin(9600);
}

void loop(){
  val=analogRead(0)/4;
  //Serial.println(val);
  Serial.write(val);
 
  delay(50);
}



Processingのプログラム:

import processing.serial.*;
Serial myPort;

int x;
int y;
int xdir;
int ydir;
int val;

void setup(){
  size(256,300);
  x=80;
  y=100;
  noStroke();
  smooth();
  rectMode(CENTER);
  xdir=1;
  ydir=1;
 
  myPort = new Serial(this, Serial.list()[0], 9600);
}

void draw(){
  background(0);
  ellipse(x,y,20,20);
  rect(val,250,60,15);
 
  x=x+xdir;//x+=xdir;
  y=y+ydir;
  if(x<
10 || x>width-10){
    xdir=xdir*(-1);//xdir*=-1;
  }
  if(y
<10){
    ydir=ydir*(-1);
  }
  if(y>height){
    y=10;
  }
  if(x>val-30 && x<
val+30 && y==250-17){
    ydir=ydir*(-1);
  } 
}

void serialEvent(Serial p) {
    val = p.read();
}

2013年7月4日木曜日

次回の授業(7/08)Processing+Arduino演習1

7/08は、ProcessingとArduinoを連携させた演習を行います。
シリアル通信という方法で、Arduinoに接続したセンサから、パソコン上(Processing)の画像を操作します。

 必要なもの:
・各自のノートパソコン(Processingインストール済み)
・Arduinoボード
・USBケーブル(Arduinoとパソコン接続用)
ブレッドボード、ジャンパワイヤ、その他部品など

 

2013年6月19日水曜日

次回の授業(6/24)Arduino演習2

6/24は、前回にひきつづきArduino電子工作の演習を行います。

必要なもの:
・各自のノートパソコン
・Arduinoボード
・USBケーブル(Arduinoとパソコン接続用)
ブレッドボード
ジャンパワイヤ(オス−オス)

2013年5月30日木曜日

次回の授業(6/10)Arduino演習1

次回6/10は、Arduino電子工作の授業を行います。
Arduinoボードというマイコンを用いて、電子工作の基礎を学びます。

必要なもの:
・各自のノートパソコン
・Arduinoボード(以下に説明あり)
・USBケーブル(Arduinoとパソコン接続用)
・Arduinoソフトのインストール(ダウンロードページ
 各OSに応じてソフトをダウンロードしてください(Arduino1.0.5のほう)。

Arduinoボードの入手方法:
Arduinoボードには用途などに応じて幾つかの種類がありますが、
「Arduino Uno」もしくは「Aruino Uno Rev3(最新版)」の入手をおすすめします。

通販なら、Amazonやスイッチサイエンスにて購入できます。価格は2700円前後です。

【永久保証付き】Arduino Uno
スイッチサイエンス
売り上げランキング: 3,866


Arduino Uno Rev3
Arduino Uno Rev3
posted with amazlet at 13.05.30
GHEO SA
売り上げランキング: 2,715

また、秋葉原の千石電商などでも直接購入できます(通販も可)。



より大きな地図で 秋葉原工作マップ を表示