11/22/2008
工作機械について
「旋盤」では、取り付けた材料(金属や樹脂など)を回転させ、バイト(刃)で切削し、回転系の部品(車輪、プーリーなど)を制作することができます。旋盤加工できる部品の寸法は、旋盤の「心間(回転体材料の長さ)」と「心高(回転体材料の半径)」によって決まります。より大きな部品を制作する場合は、この二つの寸法が大きな機種を選ぶ必要があります。
「フライス盤」では、スライドテーブル上に取り付けた材料(金属や樹脂など)を移動させることで、直線や円形に溝加工したり、エッジを段状に加工したり、材料表面をフラットに切削したりすることができます。材料を固定するスライドテーブル(XY方向の移動量)や回転テーブルのサイズによって加工サイズが決まります。
「旋盤」と「フライス盤」を組み合わせれば、ほとんどの機械部品を制作することができると言われています。
小型工作機械メーカー/販売:
・ベルメックスインターナショナル
・寿貿易/メカニクス
・東洋アソシエイツ
・プロクソン
工具屋ドットコム楽天市場店
プロ工具にDIY モンジュSHOP
ケンチクボーイ
卸問屋 都築屋本舗
ラベル:
マテリアル
11/16/2008
次回(11/22)授業について
次回11/22(土)は、15:00から授業を開始します(お間違えないように)。
・空間内における制作物の配置、身体との関わり、空間全体のイメージなど(前回のコラージュ)を引き続き制作してきてください。
・使用される部品や材料なども持参して下さい。授業内で、個人ごとに制作の指導をします。
・必要に応じて「旋盤」「フライス盤」「ボール盤」で、金属部品制作(回転部分や固定部分の部品など)の実習も行う予定です。
・空間内における制作物の配置、身体との関わり、空間全体のイメージなど(前回のコラージュ)を引き続き制作してきてください。
・使用される部品や材料なども持参して下さい。授業内で、個人ごとに制作の指導をします。
・必要に応じて「旋盤」「フライス盤」「ボール盤」で、金属部品制作(回転部分や固定部分の部品など)の実習も行う予定です。
ラベル:
スケジュール
11/15/2008
Arduino デジタルカラーセンサ S9706
今回は秋月電子で購入したデジタルカラーセンサS9706の実験をします。S9706は、RGB3色の同時測光が可能であり、9×9素子(高感度)と3×3素子(低感度)の感度設定が2段階あり、感度設定用の端子(Range端子)をHIGHまたはLOWで切り替えて設定できます。検出結果は12ビットの値でシリアル出力されます。S9706は表面実装用の小さな部品(1.27mmピッチ)なので、DIP変換基板などにハンダ付けして使用したほうが実験しやすくなります。
S9706には、
・Range端子(感度設定)
・Gate端子(測光時間の設定)
・CK端子(クロックパルス)
・Dout端子(出力)
・Vdd端子(5V電源)
・Gnd端子(グランド)
の6端子あります。
それぞれを以下のように接続します。尚、測光時間を調節できるように可変抵抗器も接続することにします。
データシートの動作手順によれば、以下のように説明されています。
(1)Gate端子とCK端子をLowにします。
(2)Range端子で、所望の感度を選択します(今回は、可変抵抗器で調節可能にしておきます)。
(3)Gate端子をLow→Highにして光量の積算を開始します。
(4)所望の積算時間の後にGate端子をHigh→Lowにして光量の積算を終了します。
(5)測定データは、CK端子に36のCKパルスを入れることで、Dout端子から出力されます。
Dout端子からの12ビットのシリアル出力を読み込むためには、CK端子へ12回のパルスを3回送る必要があります。最初の12パルスによって赤、次の12パルスによって緑、そして最後の12パルスによって青が出力されます。この部分の手続きは、shiftIn()というファンクション(名前は任意)を用意することにします。付属のデータシートのタイミングチャートに従ってプログラムしていくことにします。
最終的に得られたRGB三色の値(12ビット:0~4095)をシリアル通信でProcessingへ送信し、Processingの画面上で色表示することにします。
「Arduinoのプログラム」:
[プログラムを表示]
アナログ入力に接続された可変抵抗器で、測光時間を1ミリ秒から1024ミリ秒まで可変的に設定可能になります。測光時間が短ければ全体的に暗い色として認識されるので適宜調節してください(白色LEDを取り付けて反射光を使って読み取らせることもできると思います)。
12ビットの値を読み込む処理をするint shiftIn(){...}では、一色につき12回CK端子へパルス(HIGH:1μsec+LOW:1μsec)を送ります。12回分のパルスをfor文で繰り返し処理させています。for(){...}の中では、digitalWrite(CK,HIGH)で1回HIGHを送ったあと1マイクロ秒待機すると、Dout端子から1ビット分の出力があるので、digitalRead(DOUT)でHIGHかLOWかを読み込みます。そしてdigitalWrite(CK,LOW)によって、CK端子をLOWに戻しておきます。
読み込み値を、
000000000000~111111111111(十進数の0~4095)
までの二進数で処理するため、digitalRead(DOUT)がHIGHの場合は12ビット中のその桁が1になります。S9706では、右の桁から出力されます。つまり、for(){...}では、最初に処理される桁は右側の一桁であり、最後に処理される桁は左側の一桁(12桁目)になります。
Processingの方では4つの矩形を用意し、RGBの三色それぞれの色面とRGBを合成した色面として表示します。Arduinoとのシリアル通信は文字列で行います(複数の文字列のシリアル通信は「Arduino-Processing シリアル通信5」を参照してください)。Processing側でクリックしたらシリアル通信を開始することにします。
Processing上の画面:左から赤、緑、青、3色合成
「Processingのプログラム」:
[プログラムを表示]
Arduinoからは0~4095の範囲で値が送られてくるので、fill(r,g,b)の各値に代入するため、map()を使って0~255までの値(さらにint()で括って整数に変換)に変換しています。
S9706には、
・Range端子(感度設定)
・Gate端子(測光時間の設定)
・CK端子(クロックパルス)
・Dout端子(出力)
・Vdd端子(5V電源)
・Gnd端子(グランド)
の6端子あります。
それぞれを以下のように接続します。尚、測光時間を調節できるように可変抵抗器も接続することにします。
データシートの動作手順によれば、以下のように説明されています。
(1)Gate端子とCK端子をLowにします。
(2)Range端子で、所望の感度を選択します(今回は、可変抵抗器で調節可能にしておきます)。
(3)Gate端子をLow→Highにして光量の積算を開始します。
(4)所望の積算時間の後にGate端子をHigh→Lowにして光量の積算を終了します。
(5)測定データは、CK端子に36のCKパルスを入れることで、Dout端子から出力されます。
Dout端子からの12ビットのシリアル出力を読み込むためには、CK端子へ12回のパルスを3回送る必要があります。最初の12パルスによって赤、次の12パルスによって緑、そして最後の12パルスによって青が出力されます。この部分の手続きは、shiftIn()というファンクション(名前は任意)を用意することにします。付属のデータシートのタイミングチャートに従ってプログラムしていくことにします。
最終的に得られたRGB三色の値(12ビット:0~4095)をシリアル通信でProcessingへ送信し、Processingの画面上で色表示することにします。
「Arduinoのプログラム」:
[プログラムを表示]
#define RANGE 8 // 8番ピンをRange端子に設定
#define GATE 9 // 9番ピンをGate端子に設定
#define CK 10 //10番ピンをCK端子に設定
#define DOUT 11 //11番ピンをDout端子に設定
int red,green,blue;//RGB三色の変数を用意
void setup(){
//Range,Gate,CK端子をデジタル出力に設定
pinMode(RANGE,OUTPUT);
pinMode(GATE,OUTPUT);
pinMode(CK,OUTPUT);
//Dout端子をデジタル入力に設定
pinMode(DOUT,INPUT);
//シリアル通信設定
Serial.begin(9600);
}
void loop(){
//測光時間用の可変抵抗器の読み込み(アナログ入力:0番ピン)
int val=analogRead(0);
//Gate,CK端子をLowに設定
digitalWrite(GATE,LOW);
digitalWrite(CK,LOW);
delayMicroseconds(2000);//2000マイクロ秒待機
//感度設定(HIGH:高感度に設定)
digitalWrite(RANGE,HIGH);
//測光開始(光量の積算を開始)
digitalWrite(GATE,HIGH);
//測光時間(valを代入し可変的に設定)
delay(val+1);
//測光終了(光量の積算を終了)
digitalWrite(GATE,LOW);
delayMicroseconds(4);//4マイクロ秒待機
red=shiftIn();//赤の処理
green=shiftIn();//緑の処理
blue=shiftIn();//青の処理
//Gate端子をHighに戻す
digitalWrite(GATE,HIGH);
//シリアル通信でProcessingへ三色の値を文字列で送信
if(Serial.available()>0){
Serial.print(red,DEC);
Serial.print(",");
Serial.print(green,DEC);
Serial.print(",");
Serial.println(blue,DEC);
Serial.read();
}
}
//12ビット分のパルス送信と読み込み処理
int shiftIn(){
int result=0;//検出結果用の変数を用意(0:初期化)
for(int i=0;i<12;i++){//12ビット分の繰り返し処理
digitalWrite(CK,HIGH);//1ビット分のクロックパルス出力(HIGH)
delayMicroseconds(1);//1マイクロ秒待機
if(digitalRead(DOUT)==HIGH){//Dout端子からの出力がHighの場合
result+=(1<<i);//12ビットのi桁目に1を代入(i桁分だけ左にシフト)
}
digitalWrite(CK,LOW);//1ビット分のクロックパルス出力(LOW)
delayMicroseconds(1);//1マイクロ秒待機
}
delayMicroseconds(3);//3マイクロ秒待機
return result;//結果を出力
}
アナログ入力に接続された可変抵抗器で、測光時間を1ミリ秒から1024ミリ秒まで可変的に設定可能になります。測光時間が短ければ全体的に暗い色として認識されるので適宜調節してください(白色LEDを取り付けて反射光を使って読み取らせることもできると思います)。
12ビットの値を読み込む処理をするint shiftIn(){...}では、一色につき12回CK端子へパルス(HIGH:1μsec+LOW:1μsec)を送ります。12回分のパルスをfor文で繰り返し処理させています。for(){...}の中では、digitalWrite(CK,HIGH)で1回HIGHを送ったあと1マイクロ秒待機すると、Dout端子から1ビット分の出力があるので、digitalRead(DOUT)でHIGHかLOWかを読み込みます。そしてdigitalWrite(CK,LOW)によって、CK端子をLOWに戻しておきます。
読み込み値を、
000000000000~111111111111(十進数の0~4095)
までの二進数で処理するため、digitalRead(DOUT)がHIGHの場合は12ビット中のその桁が1になります。S9706では、右の桁から出力されます。つまり、for(){...}では、最初に処理される桁は右側の一桁であり、最後に処理される桁は左側の一桁(12桁目)になります。
Processingの方では4つの矩形を用意し、RGBの三色それぞれの色面とRGBを合成した色面として表示します。Arduinoとのシリアル通信は文字列で行います(複数の文字列のシリアル通信は「Arduino-Processing シリアル通信5」を参照してください)。Processing側でクリックしたらシリアル通信を開始することにします。
Processing上の画面:左から赤、緑、青、3色合成
「Processingのプログラム」:
[プログラムを表示]
//シリアルライブラリを取り込む
import processing.serial.*;
//シリアル通信用変数portを用意
Serial port;
//読み込み値(三色)の変数を用意
int r,g,b;
void setup(){
//画面サイズ設定
size(400,200);
//ポート設定
port = new Serial(this,"/dev/tty.usbserial-A6006kvP",9600);
//「10」(ラインフィード)までを読み込む設定にする
port.bufferUntil(10);
//外形線なし
noStroke();
}
void draw(){
//背景色(黒)
background(0);
fill(r,0,0);//値を塗色の赤に代入
rect(0,0,100,100);//赤の矩形
fill(0,g,0);//値を塗色の緑に代入
rect(100,0,100,100);//緑の矩形
fill(0,0,b);//値を塗色の青に代入
rect(200,0,100,100);//青の矩形
fill(r,g,b);//三つの値を塗色のRGBに代入
rect(300,0,100,100);//RGB合成した矩形
}
//シリアル通信
void serialEvent(Serial p){
//文字列の変数stringDataを用意し、
//「10」(ラインフィード)が来るまで読み込む
String stringData=port.readStringUntil(10);
//文字列データが空ではないとき
if(stringData!=null){
//文字列データに含まれる改行記号を取り除く
stringData=trim(stringData);
//整数型の配列data[]を用意し、
//コンマ記号をもとに文字列データを区切って
//配列data[]に整数化して入れておく
int data[]=int(split(stringData,','));
//配列data[]内のデータが3つなら、
if(data.length==3){
//三つの値をそれぞれマッピングして代入
r=int(map(data[0],0,4095,0,255));
g=int(map(data[1],0,4095,0,255));
b=int(map(data[2],0,4095,0,255));
//合図用データ送信
port.write(65);
}
}
}
//マウスが押されたら通信開始
void mousePressed(){
//開始用データ送信
port.write(65);
}
Arduinoからは0~4095の範囲で値が送られてくるので、fill(r,g,b)の各値に代入するため、map()を使って0~255までの値(さらにint()で括って整数に変換)に変換しています。
CCD/CMOSイメージ・センサの基礎と応用―原理、構造、動作方式、諸特性からシステム概要まで (C&E基礎解説シリーズ)
posted with amazlet at 09.03.30
米本 和也
CQ出版
売り上げランキング: 21816
CQ出版
売り上げランキング: 21816
「room01~03」について
「room01~03」概要:
既存のギャラリー空間に対して、各自の制作物(ツール/デバイス)を挿入することで、空間の機能や質あるいは空間に対する人間の知覚を変容させることを目標とします。
ギャラリーに訪れる人は、制作物(作品)に対する「鑑賞者」になるというよりも、制作物によって変容した空間の性質を体験する「体験者」になります。また、制作物を通して意味を生成したり理解されたりすることを目標とするのではなく、フィジカルに体験される物理的現象(あるいは肉体的な身体を通した感覚)を目標とします。つまり、解釈や理解によって空間の質を変容させるのではなく、実際的にあるいは物理的に空間が変容することに重点をおいてください。
「room01~03」までのステップ:
(1)ある現象を測定したり記録/伝達するような「ツール/デバイス」の実験的なプロトタイプ制作。
(2)「ツール/デバイス」を体験可能なかたちとする(「体験者」との関わりを配慮した形態)。
(3)「ツール/デバイス」と「体験者」を「空間」内に配置する(「体験者」に応じた設置方法や配置方法の工夫)。
(4)「体験者」の身体の変化と「ツール/デバイス」の変化が「空間」に与える影響力を強化する。
演習:
(1)デバイスのコラージュ
(2)デバイスと身体のコラージュ
(3)空間内に配置されるデバイスと身体のコラージュ
(4)変容する空間のコラージュ
既存のギャラリー空間に対して、各自の制作物(ツール/デバイス)を挿入することで、空間の機能や質あるいは空間に対する人間の知覚を変容させることを目標とします。
ギャラリーに訪れる人は、制作物(作品)に対する「鑑賞者」になるというよりも、制作物によって変容した空間の性質を体験する「体験者」になります。また、制作物を通して意味を生成したり理解されたりすることを目標とするのではなく、フィジカルに体験される物理的現象(あるいは肉体的な身体を通した感覚)を目標とします。つまり、解釈や理解によって空間の質を変容させるのではなく、実際的にあるいは物理的に空間が変容することに重点をおいてください。
「room01~03」までのステップ:
(1)ある現象を測定したり記録/伝達するような「ツール/デバイス」の実験的なプロトタイプ制作。
(2)「ツール/デバイス」を体験可能なかたちとする(「体験者」との関わりを配慮した形態)。
(3)「ツール/デバイス」と「体験者」を「空間」内に配置する(「体験者」に応じた設置方法や配置方法の工夫)。
(4)「体験者」の身体の変化と「ツール/デバイス」の変化が「空間」に与える影響力を強化する。
演習:
(1)デバイスのコラージュ
(2)デバイスと身体のコラージュ
(3)空間内に配置されるデバイスと身体のコラージュ
(4)変容する空間のコラージュ
ラベル:
スケジュール
11/13/2008
センサについて2
以下は、「秋月電子」、「千石電商」、「共立エレショップ」、「Sparkfun(米国)」の各サイトにおけるセンサの分類です。目的や機能ごとに分かれているので、センサを選ぶ際の参考にして下さい(各店舗の各センサのページへリンクしています)。
その他のショップやセンサについては、このブログページ右側の「ショップリスト」にも記載してあるので参考にして下さい。
CQ出版
売り上げランキング: 109202
その他のショップやセンサについては、このブログページ右側の「ショップリスト」にも記載してあるので参考にして下さい。
センサ活用ハンドブック―色/明るさから距離/圧力まで14のターゲットを検出 (トランジスタ技術SPECIAL)
posted with amazlet at 09.04.01
CQ出版
売り上げランキング: 109202
登録:
投稿 (Atom)