ismlog

授業や研究会の記録

テクササイズ第5回

2006-11-29 15:24:13 | 奥出研
今までのテクササイズとは一転して今回の課題はデッサン。
計32個(立方体1、球体1、白黒5、カラー5、アイデア20)のうちのいくつかをのせてみます。


白黒デッサン(キーホルダー)

 
カラーデッサン(りんご、工作用はさみ)

   
アイデアたち(とてもくだらないw)

今回デッサンしてみてわかったことは、
デッサンはセンスのありなしもやっぱりあると思うけど、
練習次第でどんどん上手くなっていく。

コツというほどのものではないけど、
はじめにやわらかめ(濃いめ)の鉛筆で大まかな形をとらえた後に、
硬めの鉛筆でしっかりと書き込んでいくのがやりやすい。

id第7回課題

2006-11-28 00:00:03 | インタラクションデザイン
■ArduinoとFlashを連携する

【ブレッドボードへの接続】

まず、下の図のように、
抵抗を挟んで、LEDのアノード(+)を12番へ、LEDのカソード(-)をGNDへつなぎます。


【プログラム】

Arduinoを起動して、プログラムを書きます。

//FFLASH_MOTOR_ON_OFF

int motorPin = 12;//モーターを接続するピン
int val = 0;//シリアルで受信した値を記憶しておく変数

void setup() {
pinMode(motorPin,OUTPUT); //モーターを接続するピンを出力モードに設定する。
Serial.begin(9600); // シリアルポートに接続する。
}

void loop () {
/* シリアルポートを読む*/
val = Serial.read();

/*-1がきた場合は何も受信していない*/
/*何か来ていた場合で'H'だったときはモーターを回す。'L'だった場合はモーターを止める。*/
if (val != -1) {
if (val == 'H') {
digitalWrite(motorPin, HIGH);
Serial.println("MOTOR_ON");
}
else if(val =='L'){
digitalWrite(motorPin, LOW);
Serial.println("MOTOR_OFF");
}
}
}

※ここでは、LEDでやっているので、
 モーターを回す→LEDを光らせる、モーターを止める→LEDを消す になります。

【FlashNetComportConnector(FNCC)の設定】

FlashNetComportConnector(FNCC)を起動します。

IP Addressが127.0.0.1になっていることを確認し、read modeをLineにします。
ArduinoのSerialPortとFNCCのPortNumberを同じにします。
(ArduinoのSerialPortはTools→SerialPortで確認することができます)

【アップロード】

Arduinoのプログラムをコンパイルし、アップロードします。(第5回参照


プログラムのアップロードが終わったらFNCCのStartボタンを押します。

【Flashとの連携】

フラッシュ(xmlsocket_dcMotor_on_off_20061106_02.swf)を起動ます。(flaファイル
ONを押すとLEDが光り、OFFを押すとLEDが消えます。


FNCCのView Logにチェックをつけとくと、
ちゃんと信号が送られているか確認することができます。


LEDではなく、モーターをつけるとこんな感じになります。

id第6回課題

2006-11-16 22:44:05 | インタラクションデザイン
■Arduinoでセンサーを使う

【ブレッドボードへの接続】

まず、下の図のように、Arduinoをブレッドボードに接続します。

①POWERの5VとGNDをそれぞれブレッドボードにつなぐ。
②Analog0番ピンとCdSをつなぐ。
③Analog0番ピンとつないだ足は抵抗を通して5Vにつなぐ。
③CdSのもう片方の足をGNDはGndにつなぐ。

【プログラム】

プログラムを書きます。

/***
0.1秒毎に ADC0 の値をシリアル通信で送る
4で割って、10bitを8bitにする

CPU: ATMEGA8 16MHz
Compiler: Arduino 0005 Alpha
Date: 2006/10/12
Author: Sho Hashimoto
WebSite: http://web.sfc.keio.ac.jp/~t03792sh/
***/

int ad;

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


void loop()
{
ad = analogRead(0); //AD値を取る
Serial.println(ad/8); //シリアルを通してパソコンに値を渡す
delay(100);
}

【アップロードと実行】

コンパイルし、アップロードします。(第5回参照
センサーの値はSerial Monitorで見ることができます。



■Arduinoでデジタルインプットを使う

【ブレッドボードへの接続】

まず、下の図のようにArduinoをブレッドボードに接続します。

①POWERの5VとGndをそれぞれブレッドボードにつなぐ。
②12番ピンとLEDのアノード(+)、LEDのカソード(-)とGNDをつなぐ。
③Digital7番ピンとスイッチをつなぐ。
④7番ピンとつないだ足は抵抗を通して5Vにつなぐ。
⑤スイッチのもう片方の足はGNDとつなぐ。

【プログラム】

プログラムを書きます。

//スイッチ押された回数をカウントする

int ledPin = 12; // choose the pin for the LED
int inPin = 7; // choose the input pin (for a pushbutton) インプットピンの番号を指定
int val = 0; // variable for reading the pin status
int count=0;//スイッチの押された回数
boolean check=true;//押されっぱなしはカウントしない

void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT); // declare LED as output
pinMode(inPin, INPUT); // declare pushbutton as input
}

void loop(){
val = digitalRead(inPin); // read input value インプットピンからのデジタル値を取得(HIGH」か「LOW」で値が返ってくる)
if (val == HIGH) { //スイッチオフ(スイッチを押していない状態でDigital7番ピンが5Vにつながっている)
digitalWrite(ledPin, HIGH); // turn LED OFF
check=false;
} else { //スイッチオン(スイッチを押すとDigital7番ピンはGndにつながる)
if(check==false){
check=true;
count++;
Serial.println(count);
digitalWrite(ledPin, LOW); // turn LED ON
}
}
}

【アップロードと実行】

コンパイルし、アップロードします。
スイッチを押した回数はSerial Monitorで見ることができます。

id第5回課題(Arduino)

2006-11-06 05:44:35 | インタラクションデザイン
■ArduinoについているLEDを光らせる


(↑Arduino)

まず、Arduinoを立ち上げ、
File→Sketchbook→Examples→led_blink を開きます。


「Verify」ボタンを押し、コンパイルします。


「Done Compiling」と表示されたらコンパイル成功です。


「Upload to I/O Board」ボタンを押し、
その後すばやくArduino基盤上の「リセットボタン」を押します。
(リセットボタンの位置は上の写真を参照)


Arduino基盤にプログラムが書き込まれます。
成功すると「Done Uploading」と表示されます。
LEDが点滅します。


 void loop()
 {
 digitalWrite(ledPin, HIGH); // sets the LED on
 delay(1000); // waits for a second
 digitalWrite(ledPin, LOW); // sets the LED off
 delay(1000); // waits for a second
 }

delay(1000)は「1秒待つ」という意味なので、
()内の数字を変えると点滅のタイミングを変えることが出来ます。


■LEDを交互に光らせる


ブレッドボードとArduinoをつなぎます。
LEDを2個用意し、
LEDのプラスをそれぞれArduinoの11番と12番に、
LEDのマイナスをArduinoのGNDにつなぎます。

さっき使ったプログラムを次のように変えます。
(青くなっているところが変えたところです)

 int ledPin1 = 11; // LED connected to digital pin 11  
 int ledPin2 = 12; // LED connected to digital pin 12
 void setup()
 {
 pinMode(ledPin1, OUTPUT); // sets the digital pin as output
 pinMode(ledPin2, OUTPUT); // sets the digital pin as output
 }

 void loop()
 {
 digitalWrite(ledPin1, LOW); // sets the LED on
 digitalWrite(ledPin2, HIGH); // sets the LED off
 delay(1000); // waits for a second
 digitalWrite(ledPin1, HIGH); // sets the LED on
 digitalWrite(ledPin2, LOW); // sets the LED off
 delay(1000); // waits for a second
 }

これを実行するとLEDが交互に点滅します。