INSAT KG 発表 [email protected]. KG 発表の内容 衛星アプリケーション 衛星アプリケーション 衛星の種類と利用方法 衛星の種類と利用方法 衛星回線の特性
衛星芸術Pbl 2011 10_18
-
Upload
koichiro-mori -
Category
Documents
-
view
332 -
download
0
Transcript of 衛星芸術Pbl 2011 10_18
![Page 1: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/1.jpg)
多摩美術大学衛星芸術PBL 2011年2011年10月18日
第6回 : 衛星家具をつくる3
1
![Page 2: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/2.jpg)
本日やること
前回の捕捉
リズム
サーボモーターを使ったデバイス
モーターの種類
サーボモーターてバイスの制作
2
![Page 3: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/3.jpg)
(前回のコード)主な関数
playBeep( 周波数 );
playBeep()
引数は周波数
ビープ音をならす関数 ”ピッ”
delay( milliseconds );
delay()
引数はミリセカンド (1/1000秒)
次の処理までの待ち時間
3
![Page 4: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/4.jpg)
フィードデータを使う
freq = map( dataVlue, 0, 12.5 , 0, 22000 );
int feedNum = 1;
dataValue = d.getValue( feedNum );
onReceiveEEML関数内
draw関数内
4
![Page 5: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/5.jpg)
フィードデータを使って音の間隔に
delay( dataValue * 100 );
draw関数内delayに100倍したセンサーの値を代入
ビープ音の間隔にデータを使う
間隔を変えてリズムを作ってみる
5
![Page 6: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/6.jpg)
サーボモーターデバイス
本日パーツリスト
・Arduinoボード ×1・サーボモーター ×1・ジャンパー線 ×3本・ボレッドボード ×1・USBケーブル ×1
6
![Page 7: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/7.jpg)
モーターの種類
DCモーター ACモーター
電流を流すと回転する
7
![Page 8: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/8.jpg)
モーターの種類
ステッピングモーター
極に順番に電流を流して回転させる(ステップ)位置を決めるのに便利
8
![Page 9: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/9.jpg)
モーターの種類
サーボモーター
パルスによって角度を決める決まった角度を出したい時に便利
9
![Page 10: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/10.jpg)
PWMの5Vの山(HIGH)になっている幅で角度を調節する。右端から左端までの角度とメーカーや種類によって違うので確認が必要
モーターの角調節
5V
0V
幅 20m秒が一般的
10
![Page 11: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/11.jpg)
今日の回路
5VGND 信号(Arduino PWMへ)
11
![Page 12: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/12.jpg)
Arduinoのプログラム本日使うArduinoスケッチ ServoFirmata
12
![Page 13: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/13.jpg)
本日のProcessingプログラム
import processing.serial.*;import cc.arduino.*;import eeml.*;
DataIn dataIn;Arduino arduino;int servoPin = 10; // Control pin for servo motor
int feedId = 12467; //ARTSAAT_PRISM feed IDint feedNum = 18; //Temperature Sensor of minus Y panel
String feedURL = "http://www.pachube.com/api/feeds/";String apiKey = "API KEY";float dataValue;
以下からソースコードをダウンロード
次のページにつづく
ARTSAT_Pachube_Example_Servo.pde
13
![Page 14: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/14.jpg)
void setup(){ background(255); size(200, 200); arduino = new Arduino(this, Arduino.list()[0], 115200); arduino.pinMode(servoPin, Arduino.OUTPUT); dataIn = new DataIn(this,feedURL + feedId + ".xml", apiKey ,10000); }
void draw(){ float servoAngle; servoAngle = map( feedNum ,-58.0, 35.5, 0, 180 ); arduino.analogWrite(servoPin, int(servoAngle) ); //send servo angle to Arduino}
void onReceiveEEML(DataIn d){ if (dataIn == d) { dataValue = d.getValue( feedNum ); println ("feed 12467 Now Temperature Sensor of minus Y panel : " + dataValue + " Celsius (°C)"); }}
以上
14
![Page 15: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/15.jpg)
Processingでのサーボ調節
arduino.analogWrite( servoPin, angle );
前回と同様に analogWrite()によってPWM制御
引数1
ArduinoのPWMピン 今回は10
引数2
角度 0 ~ 180
15
![Page 16: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/16.jpg)
map()
map( feedNum ,-58.0, 35.5, 0, 180 )
map()
使うセンサーの値の最小値/最大値の比率を角度にスケーリング 0 ~ 180度
スケーリングをする
16
![Page 17: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/17.jpg)
https://api.pachube.com/v2/feeds/12467
データXMLを見てみる
Pachube apiにリクエストしてXMLを取得
<data id="18"><tag>Temperature Sensor of minus Y panel</tag><current_value at="2011-10-17T06:24:56.063493Z">-31.4</current_value><max_value>35.5</max_value><min_value>-58.0</min_value><unit type="derivedSI" symbol="">Celsius (°C)</unit></data>
時間、単位、最大値/最小値などの情報が手に入る
17
![Page 18: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/18.jpg)
int()
int(servoAngle)
int()
servoAngle がfloat(浮動小数点)数値なのでint型に直してあげる
数値をintに型変換する
18
![Page 19: 衛星芸術Pbl 2011 10_18](https://reader034.fdocuments.net/reader034/viewer/2022052316/55878228d8b42a8f7d8b4584/html5/thumbnails/19.jpg)
おつかれさまでした。
質問等は森まで
19