More Related Content
PDF
iTamabi 13 第6回:ARTSAT API 実践 1 Web APIから情報を取得する PDF
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション PDF
openFrameworks基礎 たくさんの図形を動かす 静的配列と動的配列 - 芸大グラフィックスプログラミング演習B PDF
Interactive Music II SuperCollider入門 4 - 楽器を定義、変調合成(RM, AM, FM) PDF
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得 PDF
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる PDF
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く PDF
iTamabi 13 第5回:ARTSAT API 導入 What's hot
PPTX
PDF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF PDF
Continuation with Boost.Context PDF
PDF
Media Art II 2013 第4回:openFrameworks アニメーションを極める 動きを生みだす様々なアルゴリズム PDF
Media Art II 2013 第5回:openFrameworks Addonを使用する PDF
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv PDF
PDF
PDF
PDF
Synthesijer and Synthesijer.Scala in HLS-friends 201512 PDF
PDF
PDF
PDF
PDF
asm.js x emscripten: The foundation of the next level Web games PDF
PDF
「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」 PDF
Interactive Music II Processingによるアニメーション PPTX
Similar to iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
PDF
Media Art II 2013 第7回 : openFrameworks 3Dグラフィクス、OpenGL PDF
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル PPTX
PDF
OpenCVとRGB-Dセンサで作ろう壁面タッチパネル PDF
PDF
第19回SOIL水曜セミナー:RGB-DカメラでAR空間に入り込もう PDF
PPTX
PDF
コンピュータビジョンで作る未来の栽培技術POL共催セミナー_20220527 PDF
PDF
SDカードで無線Lチカ?FlashAirは超ミニマイコン!★Arduino用シールド(基板)配布中 PDF
PDF
PDF
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する ODP
ODP
PDF
ODP
PDF
KEY
More from Atsushi Tadokoro
PDF
Interactive Music II ProcessingとSuperColliderの連携1 PDF
Media Art II openFrameworks 複数のシーンの管理・切替え PDF
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング PDF
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control) PDF
メディア芸術基礎 II Canvas + Javascriptで図形を描く PDF
Interactive Music II SuperCollider入門 5 時間構造をつくる PDF
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望 PDF
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携 PDF
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1 PDF
Interactive Music II ProcessingとSuperColliderの連携 -2 PDF
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス PDF
PDF
coma Creators session vol.2 PDF
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う PDF
Interactive Music II Processing基本 PDF
PDF
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2 PDF
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ PDF
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう! PDF
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
- 1.
- 2.
- 3.
- 4.
- 5.
先週のプログラムの復習
‣
testApp.mm
void testApp::draw(){
ofSetColor(63);
int lineHeigt= 15;
!
// 取得した時間を表示
string available_time = response["results"][0]
["closest_available_time_iso_string"].asString();
ofDrawBitmapString(available_time, 10, lineHeigt*1);
// センサーの全てのメンバー名を取得
ofxJSONElement::Members mem = response["results"][0]
["sensors"].getMemberNames();
// メンバーごとにセンサーの値をとりだして、画面に表示
for (int i = 0; i < mem.size(); i++) {
string lavel = mem[i];
float value = response["results"][0]["sensors"][mem[i]]
["value"].asFloat();
ofDrawBitmapString(lavel + " = " + ofToString(value), 10, lineHeigt *
(i + 3));
}
}
- 6.
- 7.
- 8.
取得された値について
‣
センサーの値の意味
センサー名
センサーの意味
lat
latitude : 緯度
lon
longitude: 経度
alt
altitude : 高度
ax, ay, az
衛星の角速度 (x, y, z軸)
px, py, pz
衛星の姿勢角度 (x, y, z軸)
mx, my, mz
磁気センサー (x, y, z軸)
tpx, tmx
太陽電池の温度 (+x面、-x面)
tpy, tmy
太陽電池の温度 (+y面、-y面)
tpy, tmy
太陽電池の温度 (+z面、-z面)
tin
温度 (内部)
- 9.
- 10.
- 11.
- 12.
- 13.
取得された値で表現する
‣
角速度を取得 - testApp.h
#pragmaonce
!
#include
#include
#include
#include
!
"ofMain.h"
"ofxiOS.h"
"ofxiOSExtras.h"
"ofxJSONElement.h"
class testApp : public ofxiOSApp{
public:
void
void
void
void
setup();
update();
draw();
exit();
void
void
void
void
void
touchDown(ofTouchEventArgs & touch);
touchMoved(ofTouchEventArgs & touch);
touchUp(ofTouchEventArgs & touch);
touchDoubleTap(ofTouchEventArgs & touch);
touchCancelled(ofTouchEventArgs & touch);
void
void
void
void
lostFocus();
gotFocus();
gotMemoryWarning();
deviceOrientationChanged(int newOrientation);
ofxJSONElement response;
ofVec3f angleSpeed;
};
- 14.
取得された値で表現する
‣
角速度を取得 - testApp.mm
#include"testApp.h"
!
void testApp::setup(){
ofBackground(224);
ofSetFrameRate(30);
// ARTSAT WebAPIにアクセスしてJSONデータを取得
bool result = response.open("http://api.artsat.jp/web/v2/invader/sensor_data.json");
// 取得結果をコンソールに出力
if (!result) {
// もし取得できなかったら、エラーを出力
cout << "faild to get JSON data!" << endl;
} else {
// 取得に成功したら、JSONデータを出力
cout << response.getRawString() << endl;
angleSpeed.x = response["results"][0]["sensors"]["ax"]["value"].asFloat();
angleSpeed.y = response["results"][0]["sensors"]["ay"]["value"].asFloat();
angleSpeed.z = response["results"][0]["sensors"]["az"]["value"].asFloat();
}
}
!
void
!
}
testApp::update(){
- 15.
取得された値で表現する
‣
角速度を取得 - testApp.mm
!
voidtestApp::draw(){
// 取得した角速度を表示
ofSetColor(31);
ofDrawBitmapString("angle speed x = " + ofToString(angleSpeed.x, 8), 10, 15);
ofDrawBitmapString("angle speed y = " + ofToString(angleSpeed.y, 8), 10, 30);
ofDrawBitmapString("angle speed z = " + ofToString(angleSpeed.z, 8), 10, 45);
}
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
取得された値で表現する
‣
testApp.mm
#include "testApp.h"
!
void testApp::setup(){
ofBackground(0);
ofSetFrameRate(60);
//ARTSAT WebAPIにアクセスしてJSONデータを取得
bool result = response.open("http://api.artsat.jp/web/v2/invader/sensor_data.json");
// 取得結果をコンソールに出力
if (!result) {
// もし取得できなかったら、エラーを出力
cout << "faild to get JSON data!" << endl;
} else {
// 取得に成功したら、JSONデータを出力
cout << response.getRawString() << endl;
// 角速度を取得
}
angleSpeed.x = response["results"][0]["sensors"]["ax"]["value"].asFloat();
angleSpeed.y = response["results"][0]["sensors"]["ay"]["value"].asFloat();
angleSpeed.z = response["results"][0]["sensors"]["az"]["value"].asFloat();
// 3D表示設定
}
ofEnableDepthTest();
ofEnableLighting();
light.setPosition(200, 300, 50);
light.enable();
- 22.
- 23.
- 24.
- 25.