SlideShare a Scribd company logo
1 of 43
Download to read offline
「mruby/c」「mruby」で
実現される効率的なIoT開発
九州工業大学 情報工学部
田中和明
自己紹介
• 九州工業大学
田中 和明(たなか かずあき)
• 教育研究
– プログラミング,アルゴリズム,
データベース、Robot Sensor Processing
– 組込みシステム(mruby、リアルタイムOS)、
デジタルサイネージ、三次元測量(土木)
• Rubyコミュニティ活動
目次
• Ruby, mruby
• IoT, mruby/c
• 事例紹介
Ruby, mruby
プログラム言語Ruby
• オブジェクト指向型スクリプト言語
• 可読性が高い
• Webアプリケーション開発で広く使われて
いる
• ISO/IEC 30170, JIS X 3017
• 日本発のプログラム言語
Rubyを使うメリット
• Rubyを使うと、、、
– 開発しやすい
– プログラムを再利用しやすい
– 可読性が高い(メンテナンスしやすい)
ソフトウェアの
開発効率が高い
#include <stdio.h>
int main(void)
{
int i, s;
int ary[5] = {2,3,5,7,11};
s = 0;
for( i=0 ; i<5 ; i++ ){
s = s + ary[i];
}
printf("%d¥n", s);
return 0;
}
ary = [2,3,5,7,11]
s = 0
ary.each do |x|
s = s + x
end
puts s
プログラムが
読みやすい
書きやすい
C言語
Ruby
Rubyプログラムの実行
• インタープリタ方式
– 実行時にコードを解析する
– 「プログラムを書いて、すぐ実行できる」
• 動的な実行
– 動的なメモリ管理(GC)
– 「開発者はメモリを管理しなくて良い」
組込みシステム
• 組込みシステム
– 機械や装置内に組込まれるシステム
– 例:
自動車,産業機器(ロボットなど)
家電製品,通信装置、ウェアラブル機器
• 開発に伴う困難
– 多くの制限がある
(CPU・メモリ・時間・電力)
– ハードとソフト両方の技術を使う
IPA SEC 組込みソフトウェア産業の動向把握等に関する調査(2017年)
組込みソフトウェア開発
• 組込みソフトウェア開発に
Rubyの良さを取り入れたい
• 何が課題だろうか?
Rubyプログラムの実行
• インタープリタ方式
– 実行時にコードを解析する
– 「実行時に多くの資源を必要とする」
• 動的な実行
– 動的なメモリ管理(GC)
– 「実行時間の予測ができない」
– 「リアルタイム性が保証できない」
mruby = 軽量Ruby
• Rubyを軽量化した実装
– 実行時の消費メモリが少ない
– ある程度のリアルタイム性を持つ
• 文法はRubyと同じ
• 他のシステムに組込んで使える
– Cプログラムからmrubyプログラムを呼び出す
– mrubyプログラムからCの関数を呼び出す
mrubyの開発
• 2010年~2012年
– 経済産業省 地域イノベーション創出研究開発
事業でmrubyを開発(ネットワーク応用通信
研究所,福岡CSK,九州工業大学)
• 2016年
– NEDO 次世代スマートデバイス開発プロジェ
クトでmruby用IDEを開発(九州工業大学,
SCSK九州,有明高専) IoTフレームワーク
mruby
mrubyの動作
• mrubyVMによりプログラムを実行する
def fib(n)
return 1 if n<2
return fib(n-1)+fib(n-2)
end
puts fib(10)
mruby VM
コンパイル
実行
00000000 52 49 54 45 30 30 30 34 f3 be 00 00 00 f5 4d 41 |RITE0004......MA|
00000010 54 5a 30 30 30 30 49 52 45 50 00 00 00 c0 30 30 |TZ0000IREP....00|
00000020 30 30 00 00 00 4b 00 01 00 05 00 01 00 00 00 09 |00...K..........|
00000030 00 80 00 48 01 00 00 c0 00 80 00 46 00 80 00 06 |...H.......F....|
00000040 01 00 00 06 01 c0 04 83 01 00 00 a0 00 80 40 a0 |..............@.|
00000050 00 00 00 4a 00 00 00 00 00 00 00 02 00 03 66 69 |...J..........fi|
00000060 62 00 00 04 70 75 74 73 00 00 00 00 70 00 03 00 |b...puts....p...|
00000070 08 00 00 00 00 00 11 00 02 00 00 26 01 80 40 01 |...........&..@.|
00000080 02 40 00 83 01 80 00 b3 01 c0 01 19 01 c0 00 03 |.@..............|
00000090 01 80 00 29 01 80 00 06 02 00 40 01 02 00 80 af |...)......@.....|
000000a0 01 80 40 a0 02 00 00 06 02 80 40 01 02 80 81 2f |..@.......@..../|
000000b0 02 00 40 a0 01 80 c0 ac 01 80 00 29 00 00 00 00 |..@........)....|
000000c0 00 00 00 04 00 01 3c 00 00 03 66 69 62 00 00 01 |......<...fib...|
000000d0 2d 00 00 01 2b 00 4c 56 41 52 00 00 00 17 00 00 |-...+.LVAR......|
000000e0 00 01 00 01 6e 00 00 00 01 ff ff 00 00 45 4e 44 |....n........END|
000000f0 00 00 00 00 08 |.....|
mrubyプログラム バイトコード
組込みシステム開発
• 従来の組込みソフトのイメージ
ソフトウェア
デバイス
ユーザ
インターフェース
デバイスドライバ
アプリケーション
ロジック
リアルタイム処理
(割り込み)
このプログラムを作りたい
mrubyを使った組込み開発
• mrubyの部分が開発しやすくなる
ソフトウェア
ハードウェア
(ターゲットデバイス)
ユーザ
インターフェース
デバイスドライバ
アプリケーション
ロジック
リアルタイム処理
(割り込み)
mruby
プログラム
VMとして提供し、
mrubyからは
抽象化される
mrubyの利用事例
ネットワークルータ(IIJ社) Apacheモジュール(OSS)
mrubyマイコンボード
(Manycolors社)
ETロボコン(アフレル社,JASA) 組込みシステム向け
ライブラリ(ILC社)
IoT, mruby/c
IoT
• 組込みシステムの応用
• デバイスをネットに接続して活用する
• 必要な技術
– ハードウェア(センサ)
– ソフトウェア(データ処理)
– ネットワーク
IoTで必要な処理
• センサの値を取得
• データ処理
• センサデータの送信
• データ蓄積、解析
• データの利用
デバイスで行う
mrubyの領域
IoTの開発
• 組込みシステムでも、より厳しい制約
• IoTデバイス
– 小型
– コスト
– 電力
– セキュリティ
実証実験・試作は成功するが、
実運用できていない多くの事例
IoTデバイス
• 小型デバイスが不可欠
– ソフトが開発できる
– ワンチップマイコン
• 試作~実運用まで考えると、
– ソフト開発しやすい
– 開発したソフトがデバイスに依存しない
IoTデバイスの例
BLEモジュール
(Nordic nRF52)
アナログを扱えるワンチップマイコン
(Cypress PSoC5LP)
さらにmrubyを小型化する
• nRF52モジュール
• ARM Cortex M4F
• 64KB SRAM
• 512KB Flash
• BLE 4.2
• NFC mrubyは厳しい
↓
mrubyの小型化
mruby/c
• mrubyバイトコードと互換性を持つVM
• 相違点
– 少ないメモリで動作する(40KB程度)
– 複数のmrubyプログラムを動かせる
(シングルコア)
– オブジェクト実装の簡素化
– 例外処理の簡素化
– 処理速度よりも省メモリ
mruby/cの方針
• GCは消極的
– 基本的にGCはしない
– プログラム終了時に全メモリを開放する
– (リファレンスカウントを計画中)
• 最小のクラスライブラリ
– 多くのクラスはオプショナル
• Cインターフェースが簡単に記述できる
mruby/cの特徴
• OS無しで複数プログラムを実行する
– 複数のセンサを利用する
– 優先度が違うプログラムを実行する
– (排他制御機能も持つ)
• メモリ管理
– 静的に割り当てたメモリを利用する
– ほとんどの場合に O(1) でメモリ割り当て
消費メモリの比較
実行時に必要なメモリ量
Ruby
mruby
mruby/c
数MB
400KB
< 40KB
mruby/cが想定するデバイス
• 小型デバイス、ワンチップマイコン
– 40KB程度のROM、20KB程度のRAM
– OS無し
• 省電力デバイス
– すぐに起動する
• イベント・ドリブンな処理
– プログラムは短時間の動作
(起動~実行~終了が短時間)
その他
• コンカレント処理
– CPUやOSの支援なしにコンカレント処理
– 割り込みが利用できるなら利用する
(パフォーマンス向上)
• メモリは静的に確保する
– 高速な動的メモリ割り当てアルゴリズム
#define ALLOC_TOTAL_MEMORY_SIZE 0x2800
static uint8_t memory_pool[ALLOC_TOTAL_MEMORY_SIZE];
allocもfreeも O(1)
mruby/cのクラス
• Object, True, False, Nil
• Fixnum
• Float
• String
• Symbol
• Array
• Hash
• Range
赤字はオプショナル
#define MRBC_USE_FLOAT 1
#define MRBC_USE_STRING 1
mruby/cの独自拡張
• コンカレント実行するプログラムは
独立したメモリ空間を持つ
• ただし、以下は共有する
– クラス
– メソッド
– グローバル変数($で始まる変数)
mruby/cの事例紹介(1)
・概要
- mruby/cを組込んだ水位・雨量センサーを河川等に設置
- ゲートウェイを介して計測データを観測
・目的
- mruby/cのフィールドでのユースケースの創出
- 河川防災・減災に向けた新たな観測システムの構築
・実施主体
- しまねソフト研究開発センター(島根県松江市)
- 株式会社藤井基礎設計事務所 (島根県松江市)
実証実験
mruby/cを組込んだ水位・雨量センサー観測実証実験
・実施体制
- しまねソフト研究開発センター
- 株式会社藤井基礎設計事務所
・実証期間
- H29.6.21~H29.10.31
・実験場所
- 島根県出雲市斐川町 新建川、間樋川
実証実験
・mruby/c水位・雨量センサープログラムの開発
・ゲートウェイの通信環境の構築 etc
・センサー等関連機器の現地設置
・データの可視化/新たな観測システムの構築検討 etc
mruby/cを組込んだ基盤・送信機
実証実験
インターネット
水位データ送信
水位データ送信
水位データ送信
水位計 W-3
水位計 W-2
水位計 W-1
アンテナ
受信機(ゲートウェイ)
LTE/
3G
送信機・気圧センサー搭載
雨量データ送信
気圧データ送信
雨量計 R‐1
(株)藤井基礎設計事務所 サーバー
データグラフ配信
(警報メール配信)
スマートフォン
(携帯電話)
PC
実証実験システム構成図
実証実験
赤色:河川水位、青色:日雨量
水位センサー設置箇所mruby/c基盤・送信機 実験地
R‐1地点における日雨量とW‐2地点における河川水位
mruby/cの事例紹介(2)
SenStick
• 小型センサデバイス(重さ 3.5g)
奈良先端科学技術大学院大学、Rubyビジネス推進協議会と共同開発
SenStick
• 通信モジュール
+
センサ
• 搭載するセンサ
– 9軸
– 温度
– 湿度
– 気圧
– 照度(可視光、UV)
nRF52モジュール
mruby, mruby/cの入手
https://github.com/mrubyc/mrubyc
http://www.s-itoc.jp
GitHubで公開中
mruby/cの情報: しまねソフト研究開発センター
https://github.com/mruby/mruby
http://forum.mruby.org
mrubyの情報: 軽量Rubyフォーラム
ありがとうございました
• 今後も mruby、mruby/c をよろしくお願いします。
• しまねソフト研究開発センター(A-02)
– mruby/cの紹介
• 一般社団法人Rubyビジネス推進協議会(JA-06)
– SenStickの紹介

More Related Content

What's hot

組込みシステムの高効率開発を可能とする開発フレームワークの研究開発
組込みシステムの高効率開発を可能とする開発フレームワークの研究開発組込みシステムの高効率開発を可能とする開発フレームワークの研究開発
組込みシステムの高効率開発を可能とする開発フレームワークの研究開発Kazuaki Tanaka
 
なぜRustか?
なぜRustか?なぜRustか?
なぜRustか?emakryo
 
SIGSPATIAL 2020 参加報告資料
SIGSPATIAL 2020 参加報告資料SIGSPATIAL 2020 参加報告資料
SIGSPATIAL 2020 参加報告資料Tomoki Saito
 
Mobility Technologiesのデータ分析基盤・データ利活用事例のご紹介
Mobility Technologiesのデータ分析基盤・データ利活用事例のご紹介Mobility Technologiesのデータ分析基盤・データ利活用事例のご紹介
Mobility Technologiesのデータ分析基盤・データ利活用事例のご紹介Chigusa Junichiro
 
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御Ryosuke Okuta
 
インターネットとロボットを活用した対面式遠隔コミュニケーション,Face-to-face tele-communication using interne...
インターネットとロボットを活用した対面式遠隔コミュニケーション,Face-to-face tele-communication using interne...インターネットとロボットを活用した対面式遠隔コミュニケーション,Face-to-face tele-communication using interne...
インターネットとロボットを活用した対面式遠隔コミュニケーション,Face-to-face tele-communication using interne...Satoshi Makita
 
実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2Kuniyuki Takahashi
 

What's hot (8)

組込みシステムの高効率開発を可能とする開発フレームワークの研究開発
組込みシステムの高効率開発を可能とする開発フレームワークの研究開発組込みシステムの高効率開発を可能とする開発フレームワークの研究開発
組込みシステムの高効率開発を可能とする開発フレームワークの研究開発
 
なぜRustか?
なぜRustか?なぜRustか?
なぜRustか?
 
SIGSPATIAL 2020 参加報告資料
SIGSPATIAL 2020 参加報告資料SIGSPATIAL 2020 参加報告資料
SIGSPATIAL 2020 参加報告資料
 
Mobility Technologiesのデータ分析基盤・データ利活用事例のご紹介
Mobility Technologiesのデータ分析基盤・データ利活用事例のご紹介Mobility Technologiesのデータ分析基盤・データ利活用事例のご紹介
Mobility Technologiesのデータ分析基盤・データ利活用事例のご紹介
 
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御
 
インターネットとロボットを活用した対面式遠隔コミュニケーション,Face-to-face tele-communication using interne...
インターネットとロボットを活用した対面式遠隔コミュニケーション,Face-to-face tele-communication using interne...インターネットとロボットを活用した対面式遠隔コミュニケーション,Face-to-face tele-communication using interne...
インターネットとロボットを活用した対面式遠隔コミュニケーション,Face-to-face tele-communication using interne...
 
実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2実社会・実環境におけるロボットの機械学習 ver. 2
実社会・実環境におけるロボットの機械学習 ver. 2
 
固有表現抽出と適用例のご紹介
固有表現抽出と適用例のご紹介固有表現抽出と適用例のご紹介
固有表現抽出と適用例のご紹介
 

Similar to ET West 2017資料:mruby/c、mrubyで実現される効率的なIoT開発

ET2017資料: 開発言語mruby・mruby/cが開く新たなIoTプラットフォーム
ET2017資料: 開発言語mruby・mruby/cが開く新たなIoTプラットフォームET2017資料: 開発言語mruby・mruby/cが開く新たなIoTプラットフォーム
ET2017資料: 開発言語mruby・mruby/cが開く新たなIoTプラットフォームshimane-itoc
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識Katsuhiro Morishita
 
Iot algyan jhirono 20190111
Iot algyan jhirono 20190111Iot algyan jhirono 20190111
Iot algyan jhirono 20190111Hirono Jumpei
 
優れた問いを見つける(中京大学講演)
優れた問いを見つける(中京大学講演)優れた問いを見つける(中京大学講演)
優れた問いを見つける(中京大学講演)cvpaper. challenge
 
東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」NoriakiAndo
 
Webシステムプログラミング概要20150630
Webシステムプログラミング概要20150630Webシステムプログラミング概要20150630
Webシステムプログラミング概要20150630義広 河野
 
基礎演習V 河野ゼミ紹介20161025
基礎演習V 河野ゼミ紹介20161025基礎演習V 河野ゼミ紹介20161025
基礎演習V 河野ゼミ紹介20161025義広 河野
 
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けてThe Whole Brain Architecture Initiative
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in TokyoKyosuke Inoue
 
さくらのIoT Platformを使ってみよう
さくらのIoT Platformを使ってみようさくらのIoT Platformを使ってみよう
さくらのIoT Platformを使ってみよう法林浩之
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けてHironori Washizaki
 
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)Takeshi Fukuhara
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoKyosuke Inoue
 
Microservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on AzureMicroservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on AzureTsukasa Kato
 
センサーネットワークコンソーシアム(山口さん作成)
センサーネットワークコンソーシアム(山口さん作成)センサーネットワークコンソーシアム(山口さん作成)
センサーネットワークコンソーシアム(山口さん作成)CRI Japan, Inc.
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
Mulvery@沖縄Ruby会議02
Mulvery@沖縄Ruby会議02Mulvery@沖縄Ruby会議02
Mulvery@沖縄Ruby会議02Daichi Teruya
 
Cytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructureCytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructureKeiichiro Ono
 

Similar to ET West 2017資料:mruby/c、mrubyで実現される効率的なIoT開発 (20)

ET2017資料: 開発言語mruby・mruby/cが開く新たなIoTプラットフォーム
ET2017資料: 開発言語mruby・mruby/cが開く新たなIoTプラットフォームET2017資料: 開発言語mruby・mruby/cが開く新たなIoTプラットフォーム
ET2017資料: 開発言語mruby・mruby/cが開く新たなIoTプラットフォーム
 
Fab Chair
Fab ChairFab Chair
Fab Chair
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 
Iot algyan jhirono 20190111
Iot algyan jhirono 20190111Iot algyan jhirono 20190111
Iot algyan jhirono 20190111
 
優れた問いを見つける(中京大学講演)
優れた問いを見つける(中京大学講演)優れた問いを見つける(中京大学講演)
優れた問いを見つける(中京大学講演)
 
東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」東京工業大学「ロボット技術・ロボットミドルウェア」
東京工業大学「ロボット技術・ロボットミドルウェア」
 
Webシステムプログラミング概要20150630
Webシステムプログラミング概要20150630Webシステムプログラミング概要20150630
Webシステムプログラミング概要20150630
 
基礎演習V 河野ゼミ紹介20161025
基礎演習V 河野ゼミ紹介20161025基礎演習V 河野ゼミ紹介20161025
基礎演習V 河野ゼミ紹介20161025
 
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて
第7回WBAシンポジウム:松嶋達也〜自己紹介と論点の提示〜スケーラブルなロボット学習システムに向けて
 
MISO20200530
MISO20200530MISO20200530
MISO20200530
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in Tokyo
 
さくらのIoT Platformを使ってみよう
さくらのIoT Platformを使ってみようさくらのIoT Platformを使ってみよう
さくらのIoT Platformを使ってみよう
 
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
新しいソフトウェアエンジニアリングのためのパターンランゲージに向けて
 
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
Part 1: IoT 基盤 (製造リファレンス・アーキテクチャ勉強会)
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in Tokyo
 
Microservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on AzureMicroservices and Servcie Mesh on Azure
Microservices and Servcie Mesh on Azure
 
センサーネットワークコンソーシアム(山口さん作成)
センサーネットワークコンソーシアム(山口さん作成)センサーネットワークコンソーシアム(山口さん作成)
センサーネットワークコンソーシアム(山口さん作成)
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
Mulvery@沖縄Ruby会議02
Mulvery@沖縄Ruby会議02Mulvery@沖縄Ruby会議02
Mulvery@沖縄Ruby会議02
 
Cytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructureCytoscapeの現状とCyberinfrastructure
Cytoscapeの現状とCyberinfrastructure
 

ET West 2017資料:mruby/c、mrubyで実現される効率的なIoT開発