SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
多摩美術大学
衛星芸術PBL 2011年
2011年10月11日




第5回 : 衛星家具をつくる2




                1
本日やること


 前回のプログラムの解説
 
 圧電スピーカーを使ったサウンドデバイスの制作


  ピッチ


  リズム




                 2
前回のおさらい
前回のプログラム                 ARTSAT_Pachube_Example.pde



  import processing.serial.*;
  import cc.arduino.*;
  import eeml.*;


  DataIn dataIn;
  Arduino arduino;


  int feedId = 12467; //ARTSAAT_PRISM feed ID
  int feedNum = 1; //Now Solar Cell Voltage
  String feedURL = "http://www.pachube.com/api/feeds/";
  String apiKey = "API KEY";
  float dataVlue;


次のページにつづく




                                              3
void setup(){
      background(255);


      size(200, 200);
      println(Arduino.list());
      arduino = new Arduino(this, Arduino.list()[0], 115200);
      dataIn = new DataIn(this,feedURL + feedId + ".xml", apiKey ,10000);
      dataVlue = 0;
}


void draw(){


    arduino.analogWrite(3, int( dataVlue * ( 5 / 12.5 ) * ( 255 / 5 ) ) );


}


void onReceiveEEML(DataIn d){
    if (dataIn == d) {
           dataVlue = d.getValue( feedNum );
           println ("feed 12467 Now Solar Cell Voltage : " +   dataVlue + " Volts");
       }
}




                                               4
Pachubeからのフィード取得
前回のプログラム              ARTSAT_Pachube_Example.pde



int feedId = 12467;
PachubeのARTSAT PRISM SENSORSフィードの固有のID


int feedNum = 1;
フィードの中のセンサーのID


String apiKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxx";
apiを使用する時に必要な認証キー




                                     5
Pachubeからのフィード取得2



フィードを取得している部分


dataVlue = d.getValue( feedNum );




                                    6
フィードIDとセンサー
フィードIDとセンサーの対応



0:updated
1:V-SA 太陽電池電圧             10:太陽電池電流 (-Yパネル表)
2:I-O5 ミッション系電流           11:太陽電池電流 (+Xパネル裏)
3:I-XL AFSK送信系電流          12:太陽電池電流 (-Xパネル裏)
4:X軸角速度 ジャイロ(X軸角速度)       13:太陽電池電流 (+Yパネル裏)
5:Y軸角速度 ジャイロ(Y軸角速度)       14:太陽電池電流 (-Yパネル裏)
6:Z軸角速度 ジャイロ(Z軸角速度)       15:温度(+X) パネル温度(+X)
7:太陽電池電流 (+Xパネル表)         16:温度(+Y) パネル温度(+Y)
8:太陽電池電流 (-Xパネル表)         17:温度(-X) パネル温度(-X)
9:太陽電池電流 (+Yパネル表)         18:温度(-Y) パネル温度(-Y)



                      7
Arduinoで電圧制御 


LEDの明るさは電圧で制御する


ArduinoがUSBからもらっている電圧 -> 5V




                      8
PWM パルス幅変調




幅を変調


arduino.analogWrite()

arduino.analogWrite(3, int( dataVlue * ( 5 / 12.5 ) * ( 255 / 5 ) ) );




                                             9
map()

map()
スケーリングをする



map(dataVlue, 0, 12.5, 0, 255);

最小値0 最大値12.5の値を、0 255にスケーリング




                                  10
圧電スピーカーを使った
サウンドデバイス


本日のArduinoプログラム
ダウンロード:ARTSAT_Pcuhbe_Example_Sound_Arduino.pde




                          11
圧電スピーカー

圧電スピーカー

圧電素子(ピエゾ素子)が入っている。
素子に圧力が加わると電圧が発生する。




                12
ブレッドボードで配線




        13
本日のProcessingプログラム
以下からソースコードをダウンロード
ARTSAT_Pachube_Sound_Example.pde


   import processing.serial.*;
   import cc.arduino.*;
   import eeml.*;


   DataIn dataIn;
   Serial arduino;


   int feedId = 12467; //ARTSAAT_PRISM feed ID
   int feedNum = 1; //Now Solar Cell Voltage


   String feedURL = "http://www.pachube.com/api/feeds/";
   String apiKey = "API KEY";


次のページにつづく




                                               14
void setup(){
       background(255);
       size(200, 200);
       println(Serial.list());
       arduino = new Serial(this, Serial.list()[0], 57600);
       dataIn = new DataIn(this,feedURL + feedId + ".xml", apiKey ,10000);
}


void draw(){
      float freq;


      //datavalue to pitch (freqency)
      freq = 440;
      //freq = map( dataVlue, 0, 12.5 , 0, 22000 );
      playBeep( freq ); //Beep Sound
      delay(1000);
}


void onReceiveEEML(DataIn d){
     if (dataIn == d) {
            dataVlue = d.getValue( feedNum );
            println ("feed 12467 Now Solar Cell Voltage : " +      dataVlue + " Volts");
        }
}


void playBeep(float pitch){
     arduino.write(str(int(pitch))+"0");       //send to serial
};

                                                 15
主な関数

playBeep()
ビープ音をならす関数  ピッ

playBeep( 周波数 );
引数は周波数




delay()
次の処理までの待ち時間

delay( milliseconds );

引数はミリセカンド (1/1000秒)


                         16
フィードデータを使う


int feedNum = 1;                                   id1 -> V-SA 太陽電池電圧




draw関数内
freq = map( dataVlue, 0, 12.5 , 0, 22000 );        周波数にスケーリングしたセンサーの値を代入




onReceiveEEML関数内
dataValue = d.getValue( feedNum );                 センサーの値をdataValue変数に代入




                                              17
フィードデータを使う2

ビープ音の間隔にデータを使う



draw関数内
delay( dataValue * 100 );   delayに100倍したセンサーの値を代入
おつかれさまでした。

質問等は森まで




             19

Contenu connexe

Tendances

Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Fixstars Corporation
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用MITSUNARI Shigeo
 
Interactive Music II SuperCollider入門 4 - 楽器を定義、変調合成(RM, AM, FM)
Interactive Music II SuperCollider入門 4 -  楽器を定義、変調合成(RM, AM, FM)Interactive Music II SuperCollider入門 4 -  楽器を定義、変調合成(RM, AM, FM)
Interactive Music II SuperCollider入門 4 - 楽器を定義、変調合成(RM, AM, FM)Atsushi Tadokoro
 

Tendances (8)

Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門Halide による画像処理プログラミング入門
Halide による画像処理プログラミング入門
 
Halide for Memory
Halide for MemoryHalide for Memory
Halide for Memory
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
Sample of HEM125PA
Sample of HEM125PASample of HEM125PA
Sample of HEM125PA
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
 
TVM の紹介
TVM の紹介TVM の紹介
TVM の紹介
 
R_note_ODE_ver1.0
R_note_ODE_ver1.0R_note_ODE_ver1.0
R_note_ODE_ver1.0
 
Interactive Music II SuperCollider入門 4 - 楽器を定義、変調合成(RM, AM, FM)
Interactive Music II SuperCollider入門 4 -  楽器を定義、変調合成(RM, AM, FM)Interactive Music II SuperCollider入門 4 -  楽器を定義、変調合成(RM, AM, FM)
Interactive Music II SuperCollider入門 4 - 楽器を定義、変調合成(RM, AM, FM)
 

Similaire à 衛星芸術Pbl 2011 10_11

IoTデバイス センサデータ分析システム
IoTデバイス センサデータ分析システムIoTデバイス センサデータ分析システム
IoTデバイス センサデータ分析システムYuki Nihei
 
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティングCMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティングComputational Materials Science Initiative
 
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519Yasuhiro Ishii
 
A Sensor Network System using Arduino, Android and Wiki
A Sensor Network System using Arduino, Android and WikiA Sensor Network System using Arduino, Android and Wiki
A Sensor Network System using Arduino, Android and WikiTakashi Yamanoue
 
ものづくりプロジェクトII 一日でわかるArduino入門
ものづくりプロジェクトII 一日でわかるArduino入門ものづくりプロジェクトII 一日でわかるArduino入門
ものづくりプロジェクトII 一日でわかるArduino入門Yoichi Yamazaki
 
続・Webエンジニアのためのスマートホームハック ~ Node.js で IoT プロトコルハック ~
続・Webエンジニアのためのスマートホームハック ~ Node.js で IoT プロトコルハック ~続・Webエンジニアのためのスマートホームハック ~ Node.js で IoT プロトコルハック ~
続・Webエンジニアのためのスマートホームハック ~ Node.js で IoT プロトコルハック ~Futomi Hatano
 
200625material naruse
200625material naruse200625material naruse
200625material naruseRCCSRENKEI
 
平成25年社会人講座 Arduinoによるマイコン入門講座
平成25年社会人講座 Arduinoによるマイコン入門講座平成25年社会人講座 Arduinoによるマイコン入門講座
平成25年社会人講座 Arduinoによるマイコン入門講座Katsuhiro Morishita
 
データセンターの電力量ログをGAEで
データセンターの電力量ログをGAEでデータセンターの電力量ログをGAEで
データセンターの電力量ログをGAEでhidemotoNakada
 
Zynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチZynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチMr. Vengineer
 
自作RISC-VチップでLチカをやってみた
自作RISC-VチップでLチカをやってみた自作RISC-VチップでLチカをやってみた
自作RISC-VチップでLチカをやってみたJunichi Akita
 
Flexible 1.36 inch 16*128 SPI SSD1316 Monochrome OLED Screen Module Panel
Flexible 1.36 inch 16*128 SPI SSD1316 Monochrome OLED Screen Module PanelFlexible 1.36 inch 16*128 SPI SSD1316 Monochrome OLED Screen Module Panel
Flexible 1.36 inch 16*128 SPI SSD1316 Monochrome OLED Screen Module PanelShawn Lee
 
C++0x in programming competition
C++0x in programming competitionC++0x in programming competition
C++0x in programming competitionyak1ex
 
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編Yosuke Onoue
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt AffinityについてTakuya ASADA
 
インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作
インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作
インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作Takashi Yamanoue
 
第12回 配信講義 計算科学技術特論B(2022)
第12回 配信講義 計算科学技術特論B(2022)第12回 配信講義 計算科学技術特論B(2022)
第12回 配信講義 計算科学技術特論B(2022)RCCSRENKEI
 

Similaire à 衛星芸術Pbl 2011 10_11 (20)

IoTデバイス センサデータ分析システム
IoTデバイス センサデータ分析システムIoTデバイス センサデータ分析システム
IoTデバイス センサデータ分析システム
 
Reconf_201409
Reconf_201409Reconf_201409
Reconf_201409
 
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティングCMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
 
Arduino入門
Arduino入門Arduino入門
Arduino入門
 
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
 
A Sensor Network System using Arduino, Android and Wiki
A Sensor Network System using Arduino, Android and WikiA Sensor Network System using Arduino, Android and Wiki
A Sensor Network System using Arduino, Android and Wiki
 
ものづくりプロジェクトII 一日でわかるArduino入門
ものづくりプロジェクトII 一日でわかるArduino入門ものづくりプロジェクトII 一日でわかるArduino入門
ものづくりプロジェクトII 一日でわかるArduino入門
 
続・Webエンジニアのためのスマートホームハック ~ Node.js で IoT プロトコルハック ~
続・Webエンジニアのためのスマートホームハック ~ Node.js で IoT プロトコルハック ~続・Webエンジニアのためのスマートホームハック ~ Node.js で IoT プロトコルハック ~
続・Webエンジニアのためのスマートホームハック ~ Node.js で IoT プロトコルハック ~
 
200625material naruse
200625material naruse200625material naruse
200625material naruse
 
平成25年社会人講座 Arduinoによるマイコン入門講座
平成25年社会人講座 Arduinoによるマイコン入門講座平成25年社会人講座 Arduinoによるマイコン入門講座
平成25年社会人講座 Arduinoによるマイコン入門講座
 
データセンターの電力量ログをGAEで
データセンターの電力量ログをGAEでデータセンターの電力量ログをGAEで
データセンターの電力量ログをGAEで
 
Zynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチZynq VIPを利用したテストベンチ
Zynq VIPを利用したテストベンチ
 
自作RISC-VチップでLチカをやってみた
自作RISC-VチップでLチカをやってみた自作RISC-VチップでLチカをやってみた
自作RISC-VチップでLチカをやってみた
 
Flexible 1.36 inch 16*128 SPI SSD1316 Monochrome OLED Screen Module Panel
Flexible 1.36 inch 16*128 SPI SSD1316 Monochrome OLED Screen Module PanelFlexible 1.36 inch 16*128 SPI SSD1316 Monochrome OLED Screen Module Panel
Flexible 1.36 inch 16*128 SPI SSD1316 Monochrome OLED Screen Module Panel
 
C++0x in programming competition
C++0x in programming competitionC++0x in programming competition
C++0x in programming competition
 
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
PyOpenCLによるGPGPU入門 Tokyo.SciPy#4 編
 
Interrupt Affinityについて
Interrupt AffinityについてInterrupt Affinityについて
Interrupt Affinityについて
 
0622
06220622
0622
 
インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作
インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作
インターネット上のWikiページ上でエッジ側端末のI2Cデバイスの設定と入出力を可能とするIoTシステムの試作
 
第12回 配信講義 計算科学技術特論B(2022)
第12回 配信講義 計算科学技術特論B(2022)第12回 配信講義 計算科学技術特論B(2022)
第12回 配信講義 計算科学技術特論B(2022)
 

衛星芸術Pbl 2011 10_11