23
軽量Ruby+Wi-SUN 活動報告 2016.05

Mrubyまとめ v01

Embed Size (px)

Citation preview

Page 1: Mrubyまとめ v01

軽量Ruby+Wi-SUN活動報告

2016.05

Page 2: Mrubyまとめ v01

概要 なぜ軽量Ruby(mruby)? なぜWi-SUN? 軽量Ruby

Rubyと軽量Ruby 軽量Rubyの特徴 C/C++と軽量Rubyの比較

Wi-SUN IEEE802.15.4g(SUN)とWi-

SUN Wi-SUN プロトコルスタック Wi-SUNのPHY/MAC層

INDEX

ハードウェア 構成 イメージ

ソフトウェア Wi-SUNモジュール構成

何ができるの? LED点灯 シリアルドライバ LCDテキスト表示 LCD画像表示 Wi-SUN通信

今後・・・

Page 3: Mrubyまとめ v01

有志数名の、『みんなでオリジナルの何か作りたいね』、

そんな声から立ち上がったRuby開発の自社製品化プロジェクト。

その第1弾、『軽量Ruby+Wi-SUN』の実績をご紹介します。

概要

Page 4: Mrubyまとめ v01

ハード、組み込み、ネットワーク、そしてアプリ、いろいろな技術者が在籍するRuby開発。

その強みを活かしたい、

『組み込み向けの軽量Rubyというのがあるよ』、

『おもしろう』、『これだったら俺らにピッタリじゃん』、

そんな軽い感じの掛け合いと熱い気持ちから、軽量Ruby(mruby)を採用しました。

なぜ、軽量Ruby?

Page 5: Mrubyまとめ v01

軽量Rubyだけのシンプル構成ではなく、Ruby開発ならではの付加価値を求めました。

活動当初、開発実績がまだ少なく、今後、大きく流行る可能性のあったWi-SUNが、私たちの求める付加価値に合致、採用しました。

また、技術者特有の、どんなものか見てみたい、試してみたい、そんな好奇心、探究心も刺激してくれたものでもありました。

なぜ、Wi-SUN?

Page 6: Mrubyまとめ v01

Ruby

まつもとゆきひろ氏によって開発されたオブジェクト指向スクリプト言語

高い生産性(C言語の5~10倍)と可読性

2012年、国産言語としては初となる国際標準規格 ISO/IEC 30170:2012取得

軽量Ruby

経済産業省の平成22・23年度地域イノベージョン創出研究開発事業に採択され、福岡県の全面的な

支援のもと、福岡CSK・九州工業大学・ネットワーク応用通信研究所(まつもとゆきひろ氏)が主体となって研究・開発を実施

Rubyを組込み開発に適用できるように軽量化し、既存のC/C++アプリと共存可能に高い生産性、可読性などRubyの良さはそのままに2012年4月にMITライセンスとしてGithubに公開

Rubyと軽量Ruby

Page 7: Mrubyまとめ v01

Rubyと軽量Ruby イメージ

Page 8: Mrubyまとめ v01

既存C/C++アプリとの共存を実現

コンパクトな処理系

仮想マシン「RiteVM」上で動作

最小構成400KB程度

バイトコード実行

プログラムサイズを小さく

実行速度を早く

秘匿性を高める

インクリメンタルGC

GC処理の中断時間を短縮

現在動作確認できているOS

Windows、Linux、ITRON、Vx-Works、

iOS、Android

軽量Rubyの特徴

Page 9: Mrubyまとめ v01

C/C++と軽量Rubyの比較

C C++ mruby

性能 実行速度 ◎ ◎ ◯

メモリ使用量 ◎ ◯ △

GC機能 ☓ ☓ ◎

プログラミング オブジェクト指向プログラミング ☓ ◯ ◯

プログラミング効率 △ ◯ ◎

メンテナンス効率 △ ◯ ◎

ライブラリ 標準ライブラリ △ ◯ ◯

Page 10: Mrubyまとめ v01

IEEE802.15.4g (Smart Utility Network) …

スマートメータ用無線の国際標準規格。

小電力、低速、920MHz帯周波数を使用。

Wi-SUN … Wi-SUN Alliance。

802.15.4g規格の推進と互換性(接続性)の認証を

行う団体。Wi-SUNロゴがある機器同士の相互接続は

ほぼ保障される。

IEEE802.15.4g(SUN)とWi-SUN

Page 11: Mrubyまとめ v01

Wi-SUN プロトコルスタック

802.15.4g

802.15.4e ETSI(TG28) TIA(TR-51)

6LoWPAN

IPv6(IPv4)/RPL

TCP UDP

ECHONET (Lite) New Spec

JUTA

物理層

データリンク層

ネットワーク層

トランスポート層

アプリケーション層

OSI参照モデル

モジュール(CHIP)制御

通信プロトコルスタック

ドライバ

Page 12: Mrubyまとめ v01

Wi-SUN Allianceが提示

基本形は802.15.4g(PHY) + 802.15.4e(MAC)

MAC層は別の規格でも置き換え可

ETSI(TG28) ヨーロッパ規格。

TIA(TR-51)アメリカ。

CHIP(モジュール)が制御する

Wi-SUNのPHY/MAC層

Page 13: Mrubyまとめ v01

マイコンボード

STM3240G-EVAL evalution bord(Stmicro社製)

Wi-SUNモジュール

LPR9201(佐鳥電機社製)

付属品

アンテナ NWX-141XSAXX-999(JOYMAX社製)

同軸ケーブル 986-PQ05B-M150(ユウエツ精機)

ハードウェア構成

CPU STM32F407IGH6

SRAM 16Mbit

I/F UART

Page 14: Mrubyまとめ v01

ハードウェア構成図

Page 15: Mrubyまとめ v01

Wi-SUNソフトモジュール構成

Page 16: Mrubyまとめ v01

実績-LED点灯

stm3240上のLEDを点滅させる

点滅を繰り返す

Page 17: Mrubyまとめ v01

実績-シリアルドライバ

シリアルドライバを作成しstm3240へ書き込み、TeratermにEchoバック

Teratermから書き込み

Stm3240を通して書き込みをTeraTermにEchoバック

stm3240のUART(RS232)部分

Page 18: Mrubyまとめ v01

実績-LCDテキスト表示

stm3240のLCDに文字を出力する(LCDドライバの動作確認)

LCD

Ruby Developmentを出力

拡大

Page 19: Mrubyまとめ v01

実績-LCD画像表示

stm3240のLCDに画像を出力する(LCDドライバの動作確認)

LCD

画像(BMP)を出力

拡大

Page 20: Mrubyまとめ v01

実績-Wi-SUN(接続)Wi-SUNモジュールとstm3240(治具)の接続

Wi-SUNモジュール

治具

接続

Wi-SUNモジュール装着後

Page 21: Mrubyまとめ v01

実績-Wi-SUN(コマンド発行)

SKINFOコマンドをWi-SUNモジュールに送付

CPU

SKINFOコマンド発行

コマンド応答

コマンド応答結果(デバッグ用)

応答コマンドもWi-SUNモジュールへ書き込みするためエラーコードER04が発生しているが、Wi-SUNモジュールとシリアル通信していることは確認できる

Page 22: Mrubyまとめ v01

実績-Wi-SUN(通信)

Wi-SUN同士のリンク

Wi-SUN機器A

Wi-SUN機器B(対向機)リンク

テキストデータを通信し、それぞれLCDに表示

Page 23: Mrubyまとめ v01

Mruby+Wi-SUNプロジェクトを振り返り

プラットフォーム開発止まりとなり、mruby上で動くRubyベースアプリ開発まで到達することができなかった。(Wi-SUN同士を使ったGame企画等は上がったものの・・・)

ただ、モノ造りの楽しさ、オリジナル製品を造る喜びを感じることができ、この経験を次に繋げていきたい。

今後・・・

Mrubyプロジェクトの反省点から、

短いスパンで、目に見えるアウトプットを出す、そして振り返る、それが、変化を柔軟に受け入れ、前に進むための条件と信じ、新たなチャレンジに取り組みます。

失敗を恐れず、最大の目標である、Ruby開発オリジナル製品を、世の中に発信します。

今後・・・