mruby基本研修 - 福岡県ruby・コンテンツビジネス...
TRANSCRIPT
2018年3月8日特定非営利活動法人 軽量Rubyフォーラム
SCSK九州 株式会社
1. mrubyの概要・特徴
2. GR-PEACHでmrubyハンズオン
2Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
高い生産性で人気の言語Rubyの軽量版「mruby」
RAM200KB程度で動作
経済産業省「地域イノベーション創出研究開発事業」の
研究成果として2012年4月に
「mruby」を公開
商用利用しやすい
MITライセンスのOSS
Rubyの良さを組込み開発に...
4Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
https://github.com/mruby/mrubyにてソース公開
require 'socket'
begin
sock = TCPSocket.open("192.168.1.1", 30000)
10.times {
sock.write("Hello!!")
}
sock.close
rescue => e
p e
end
#include <stdio.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
int main(void)
{
int sock;
int i;
struct sockaddr_in svaddr;
const char msg[] = "Hello!!";
if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
puts("socket() failed.");
return 1;
}
memset(&svaddr, 0, sizeof(svaddr));
svaddr.sin_family = AF_INET;
svaddr.sin_addr.s_addr = inet_addr("192.168.1.1");
svaddr.sin_port = htons(30000);
if (connect(sock, (struct sockaddr*)&svaddr,
sizeof(svaddr)) < 0) {
puts("connect() failed.");
exit(2);
}
for (i=0; i<10; i++) {
if (send(sock, msg, strlen(msg), 0) !=
strlen(msg)) {
puts("send() failed.");
exit(3);
}
}
close(sock);
return 0;
}
• 短いコード• 簡潔な記述• ポインタ操作なし• メンテナンス性が高い
• コードが長くなりがち• 処理が複雑になりがち• 危険なポインタ操作• メンテナンス性が低い
C言語(35行)
Ruby(10行)
高い生産性(例:ソケット通信処理)
5Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
mruby ≒ 軽量Ruby
PC向けの(巨大な)Rubyを軽量化
仮想マシンとコンパイラ
mruby用の仮想マシン(VM)でアプリ(バイトコード)を実行
C言語と相性バツグン
Cモジュールの呼び出し、Cアプリへの組込み
高い拡張性
ライブラリ(mrbgem)で容易にmrubyの機能を拡張
組込み開発に使える新言語「mruby」
6Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
mruby専用のコンパクトな仮想マシン「mruby VM」
バイトコードを実行(スクリプトよりコンパクトに)
軽量化してもRubyであるべき
ISO, JIS規格のRuby(1.9系)に準ずる言語仕様
Ruby 2.0系にも対応中
よりコンパクトに
7Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
環境依存させない
mrubyコアのコードは環境依存部を含まない
VM外部への影響を少なく
• グローバル変数を使用しない
• VM管理情報にmrubyアプリの全情報を格納
• インクリメンタルGCでシステム停止時間を短く
より多くの環境で使えるように
8Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
カスタマイズを容易に
mrbconf.h … 実行環境に合わせて最適化が可能
機能拡張を容易に
build_config.rb … mrubyに組み込む機能を定義
mrbgems … mrubyを拡張するクラスライブラリ
クロス開発を容易に
build_config.rb … クロスビルド方法をスクリプトで記述
toolchain … クロスビルドツールを定義
より使いやすく
9Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
コンパイラ言語
C言語との主従関係
RubyGemsとmrbgems
数値型の扱い
正規表現
扱える文字コード
カスタマイズ
Rubyとの相違点
10Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
Ruby mruby
• Rubyスクリプトのインタプリタ実行。
• mrubyスクリプトのインタプリタ実行。
• mrubyコンパイラでmrubyスクリプトをバイナリに変換。コンパイル結果のバイナリをmruby VMで実行。
コンパイラ言語
11Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
C言語との主従関係
12Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
Ruby mruby
• RubyからC言語モジュールの呼び出しが可能( Rubyが主、C言語が従 )
• mrubyからC言語モジュールの呼び出しが可能( mrubyが主、C言語が従 )
• C言語アプリケーションからmrubyの呼び出しが可能( C言語が主、mrubyが従 )
RubyGemsとmrbgems
13Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
Ruby mruby
• Ruby拡張ライブラリフレームワーク(RubyGems)
• C言語またはRubyで機能拡張
• 実行時にライブラリを追加
• mruby拡張ライブラリフレームワーク(mrbgems)
• C言語またはmrubyで機能拡張
• ビルド時にライブラリを追加( 実行時のライブラリ追加はオプション )
数値型の扱い (1)
14Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
Ruby mruby
Numeric+--- Integer 整数型| +--- Fixnum int範囲内の数| +--- Bignum int範囲を超える数+--- Float 浮動小数型
• 演算結果がint型を超える場合はBignumに拡張される。
Numeric+--- Integer 整数型| +--- Fixnum int範囲内の数| Bignum対応なし+--- Float 浮動小数型
• 演算結果がint型を超える場合はFloatに拡張される。(有効桁数が減る)
数値型の扱い (2)
15Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
Ruby mruby
• 演算結果の数値型は演算する値の型 (Integer / Float)によって決定される。
• 演算結果の数値型は演算結果の値によって決定される。
irb(main):001:0> 1 / 2
=> 0
irb(main):002:0> 2 * 2.5
=> 5.0
irb(main):003:0>
> 1 / 2
=> 0.5
> 2 * 2.5
=> 5
>
正規表現
16Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
Ruby mruby
• 正規表現(Regexpクラス)を標準装備
• 正規表現エンジンは固定• 1.9以前 Oniguruma• 2.0以降 Onigumo
• 正規表現はオプション※mrbgemsで提供
• 正規表現エンジンを選択可能
• mruby-onig-regexp• mruby-pcre-regexp• mruby-pure-regexp• mruby-hs-regexp
扱える文字コード
17Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
Ruby mruby
• ASCII• UTF-8• Shift_JIS• EUC-JP• Windows-31J などなど...
• ASCII• UTF-8 (オプション)
カスタマイズ
18Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
Ruby mruby
• 実行環境用のバイナリを配布(ソースコードも入手可能)
• バイナリ提供のためカスタマイズ不能
• ソースコード配布(そのままでは使えない)
• ヘッダファイル、ビルドスクリプト修正によるカスタマイズが可能
19Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
Cコンパイラ・リンカ (gccなど)
GNU Bison
Ruby
git (必須ではないです)
これらがあれば動きます。
実際にやってみます!
mrubyのビルドに必要なもの
mrubyデモ
20Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
21Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
マイコンでmrubyを動作させるには?
1. mruby開発環境を構築する
2. マイコン向けにmrubyをクロスビルドする
マイコン用のコンパイラ、リンカが必要
mrubyのカスタマイズが必要になるケースも...
3. マイコンアプリからmrubyを呼び出す
mruby VMをリンクして、mruby APIを呼び出す
さらっと書いてますが、2と3はそれなりに骨が折れます。
22Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
mruby搭載マイコンボード (製品)
EAPL-Trainer mruby enzi
GR-CITRUS
◎ mrubyでGUIが使える△ mrubyのバージョンが古い△ RAM容量が少ない (64KB)
◎ 大容量RAM (1MB)○ Web開発環境△ mrubyバージョンが古い
◎ IDEサポート◎ 安価△ RAM容量が少ない (240KB)
23Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
市販ボードでmrubyを動かす
Raspberry Pi Arduino
◎ Linuxが動作する△ 起動が遅い△ 消費電力大
◎ IDEサポート× RAM容量が少ない
(Max 96KB)
わざわざmruby使わなくても...
mrubyを載せるには絶望的なスペック
24Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
市販ボードでmrubyを動かす
GR-PEACH
マイコン: RZ/A1H
Flash ROM: 8MBRAM: 10MB
ペリフェラル:USB, Ethernet, microSDソケット,
UART, GPIO, SPI, I2C, JTAG, ...
※mbed OS対応
mruby載せてみました!
十分なスペック
25Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
GR-PEACHで動くmruby – “momo-mruby”
GR-PEACH
27Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
GR-PEACH-Fullの外観 リセットボタン
USBポート(電源)
GPIOGPIOVcc, GND, ...
RGB LED
Ethernetポート
28Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
momo-mrubyの入手方法
1. https://github.com/mimaki/momo-mruby
momo-mrubyソースコード
momo-mrubyのカスタマイズが可能
2. https://github.com/mimaki/momo-mruby-bin
momo-mrubyのファームウェア (バイナリ)
導入が簡単
こちらを使います!
29Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
momo-mrubyの導入
1. momo-mrubyファームウェアの入手
https://github.com/mimaki/momo-mruby-bin
以下の手順は README_ja.md を参照
2. GR-PEACH起動
3. ファームウェアの書き込み
ファームウェア(momo-mruby.bin)の書き込み完了後は
momo-mruby.binは削除されるため、mbedドライブ上には
表示されません。
30Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
momo-mrubyの導入
4. mrbc(.exe)のコピー
以下のディレクトリを作成し、momo-mruby-bin/bin に
含まれている mrbc(.exe) をコピーします。
Windowsの場合: C:¥momo
Macの場合: ~/momo
31Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
ソフトウェアのインストール
1. 必要なソフトウェアの入手
以下のリンクページからダウンロードしてセットアップ
https://goo.gl/3qBFLo ※大/小文字区別あり
ソフトウェア Windows Mac
シリアルポートドライバ 必須 ー
CoolTerm (ターミナルソフト) 推奨 推奨
Visual Studio Code (エディタ) 任意 任意
32Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
momo-mrubyでLチカ
include Plato # おまじない
led_r = LED.new(GPIO::LED1) # LEDオブジェクト生成
loop {
led_r.toggle # LED ON/OFF切替
Machine.delay(500) # 500ms待つ
}
momo/led.rb
33Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
Lチカアプリケーションの実行
1. mrubyソースコードのコンパイル
Windowsの場合
Macの場合
c:¥>cd ¥momo
c:¥momo>mrbc –o autorun.mrb led.rb
$ cd ~/momo
$ ./mrbc –o autorun.mrb led.rb
34Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
Lチカアプリケーションの実行
2. autorun.mrbをmicroSDにコピー
ルートディレクトリにコピーします。
3. microSDをGR-PEACHに装着
カチッと鳴るまで押し込みます。
抜くときは一度押し込んでロックを
解除してから抜き出します。
4. USBケーブルを接続
外側のUSBポートにケーブルを接続するとGR-PEACHの電
源が入り、mrubyアプリケーションが実行されます。
35Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
Lチカアプリケーションの実行
こちらに接続
LEDが赤色に点滅
36Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
ターミナルソフト(CoolTerm)の起動
1. GR-PEACHをPCに接続した状態で以下を実行する
Windowsの場合: CoolTermWin¥CoolTerm.exe
Macの場合: CoolTermMac/CoolTerm.app
37Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
ターミナルソフト(CoolTerm)の起動
2. Optionsから初期設定を行う(初回のみ)
Windowsの場合: COMxMacの場合: usbmodemXXXX
38Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
momo-mrubyをmirbモードで起動
3. CoolTermのConnectをクリック
4. GR-PEACHのmicroSDカードを抜いてRESETボタンを押下
39Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
momo-mrubyをmirbモードで起動
実行例:
40Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
温度センサ ADT7410
アナログ・デバイセズ社製
温度精度: ±0.5℃ -40.0℃〜105℃
分解能: 0.0625℃ (13bitモード)
0.0078℃ (16bitモード)
I2C互換インタフェース
41Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
ADT7410をGR-PEACHに繋ぐ
回路図
8 7 6 5 4 3 2 1
42Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
参考:ブレッドボード
ブレッドボードは、赤線で示す穴同士が金属で接続されています。接続されている同士の穴に電子部品の端子を差し込むことで、電流の流れる経路(回路)を作ることができます。
43Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
参考: GR-PEACHピンマップ
※ルネサスHPより転載
44Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
ADT7410クラスを作る
class ADT7410
include Plato
def initialize
@i2c = I2C.open(0x48)
end
def read
t = @i2c.read(0x00, 2)
t = (t[0] << 8 | t[1]) >> 3
t -= 8192 if t >= 0x1000
return t / 16.0
end
end
momo/adt7410.rb
1. コンパイル
2. autorun.mrbをmicroSDにコピー
3. microSDをGR-PEACHに装着
4. GR-PEACHを起動(or RESET)
mirbが起動します。
45Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
ADT7410クラスを使って温度計測
c:¥momo>mrbc –o autorun.mrb adt7410.rb
$ ./mrbc –o autorun.mrb adt7410.rb
46Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
ADT7410クラスを使って温度計測
実行(mrib)
> adt = ADT7410.new
=> #<ADT7410:0x20054de8 ...
> adt.read
=> 27.8125
> adt.read
=> 28
>
47Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
ADT7410クラスの解説
class ADT7410 # ADT7410クラスを定義
include Plato # Plato名前空間を利用
def initialize # コンストラクタ(newで呼び出す)
@i2c = I2C.open(0x48) # I2C通信オブジェクトの初期化
end # 0x48はADT7410のデバイスアドレス
def read # readメソッド
t = @i2c.read(0x00, 2) # ADT7410から2バイト読み込む
t = (t[0] << 8 | t[1]) >> 3 # 13bitデータを温度に変換
t -= 8192 if t >= 0x1000 # ※ ADT7410のデータシート参照
return t / 16.0 # 計算結果(摂氏温度)を返す
end
end
momo/adt7410.rb
48Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLE – Bluetooth Low Energy
Bluetooth 4.0の拡張機能の一つ
2.4GHz帯の電波で最大1Mbpsの通信速度
低電力での通信が可能
1. BLE Scannerのインストール
お手持ちのスマートフォンにBLE Scannerをインストール
します。
スマートフォンをお持ち出ない方は近くの席の方に見せても
らってください。49Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEを使うための準備
2. BLE Scannerの起動確認
50Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEを使うための準備
BLEデバイスが一覧表示されます。
51Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLE通信モジュール RN4020
マイクロチップ社製
Bluetooth v4.1対応
XBeeインタフェース
シリアルインタフェース
技適認証取得済み
52Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
RN4020をGR-PEACHに繋ぐ
回路図
8 7 6 5 4 3 2 1
53Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEクラスライブラリ(簡易版)の入手
以下のURLにアクセスし、ble.rbをダウンロードする。
https://goo.gl/nBM2Xj
※ momo/ble.rbとして保存する
54Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEクラス仕様 (BLE.new)
BLE.new(name)
name: デバイス名
戻り値: BLEオブジェクト
機能概要:BLE(RN4020)を初期化してBLEオブジェクトを
返します。
GATT(Generic ATTribute)プロファイルのバッ
テリーサービスを有効にします。
55Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
GATTプロファイル
GATT(Generic ATTribute)
BLEにおける標準フォーマット
RN4020がサポートするサービス
デバイス情報
バッテリー
心拍数
体温計
血圧 などなど...
GATT Server
Service
Service宣言attribute
Characteristic
Characteristic宣言attribute
Characteristic Value attribute
Descriptor
56Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEクラス仕様 (BLE#battery=)
BLE#battery = x
x: バッテリレベル (%)
機能概要:バッテリーレベルを設定します。
1. コンパイル
2. autorun.mrbをmicroSDにコピー
3. microSDをGR-PEACHに装着
4. GR-PEACHを起動(or RESET)
mirbが起動します。
57Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEクラスを使ってみる
c:¥momo>mrbc –o autorun.mrb ble.rb
$ ./mrbc –o autorun.mrb ble.rb
58Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEクラスを使ってみる
> ble = BLE.new('BLE_MIMAKI_')
=> #<BLE:0x20054708 ...
> ble.battery=100
=> 100
> ble.battery=90
=> 90
>
分かりやすいユニークな名前を指定してください。
実行例(mrib)
BLE Scannerでバッテリーサービスを確認する (iOS)
59Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEクラスを使ってみる
バッテリーサービスが表示されます。
ble.battery=xxで値が更新されます。BLEデバイス一覧のから
自分のデバイスを選択しConnectする。
BLE Scannerでバッテリーサービスを確認する (Android)
60Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEクラスを使ってみる
BLEデバイス一覧から自分のデバイスを選択しCONNECTする。
バッテリーサービスが表示されます。
ble.battery=xx で値が更新されます。Rをタップ: 最新値の更新Nをタップ: 値の自動取得
61Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEクラス仕様 (BLE#start_custom_service)
ble.start_custom_service(size)
size: カスタムサービスのデータサイズ
戻り値: なし
機能概要:BLE(RN4020)にGATTプロファイルのカスタム
サービス(Private Service)を登録します。
sizeで指定されたバイト数のデータが保持でき
ます。
62Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEクラス仕様 (BLE#chardata=)
ble.chardata = x
x: カスタムサービスデータに設定する値
戻り値: 設定値
機能概要:BLE(RN4020)にGATTプロファイルのカスタム
サービス(Private Service)に値を設定します。
start_custom_serviceで指定したサイズを超え
るデータは無視されます。
63Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEクラスを使ってみる
実行例(mrib)
> ble = BLE.new('BLE_MIMAKI_')
=> #<BLE:0x20054708 ...
> ble.start_custom_service(8)
=> ["Reboot", "¥000", "CMD"]
> ble.chardata='Hello'
=> ["Hello"]
>
8バイトデータを登録
BLE Scannerでカスタムサービスを確認する (iOS)
64Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEクラスを使ってみる
カスタムサービスが表示されます。 ble.chardata=xx
で値が更新されます。
BLEデバイス一覧のから自分のデバイスを選択しConnectする。
BLE Scannerでカスタムサービスを確認する (Android)
65Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEクラスを使ってみる
BLEデバイス一覧から自分のデバイスを選択しConnectする。
カスタムサービスが表示されます。
ble.chadata=xxで値が更新されます。Rをタップ: 最新値を取得Nをタップ: 値の自動取得
カスタムサービスが表示されない場合は...
66Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
BLEクラスを使ってみる
バッテリーサービスが表示される場合があります。
以下の操作をお試し下さい。• BLE Scannerのアプリを再起動する• スマートフォンのBluetoothを無効化
して有効に戻す
67Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
温度をBLEでスマホに通知してみる
温度センサ(ADT7410)で温度を計測し、BLE(RN4020)のカス
タムサービスを使用してスマホに送信する。
68Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
温度をBLEでスマホに通知してみる
adt = ADT7410.new # 温度センサオブジェクト生成
ble = BLE.new('BLE_MIMAKI_') # BLEオブジェクト生成
ble.start_custom_service(8) # BLEカスタムサービス登録
loop {
temp = adt.read # 温度計測
puts temp # 温度値を表示
ble.chardata = temp # カスタムデータに温度値を設定
Plato::Machine.delay(2000) # 2秒待ち
}
momo/tempble.rb
1. コンパイル
2. autorun.mrbをmicroSDにコピー
3. microSDをGR-PEACHに装着
4. GR-PEACHを起動(or RESET)
69Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
温度をBLEでスマホに通知してみる
c:¥momo>mrbc –o autorun.mrb adt7410.rb ble.rb
tempble.rb ※1行で入力します
$ ./mrbc –o autorun.mrb adt7410.rb ble.rb
tempble.rb ※1行で入力します
71Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
GR-PEACHで動くmruby – “momo-mruby”
GR-PEACH
https://github.com/mimaki/momo-mrubyhttps://github.com/mimaki/momo-mruby-bin• mruby-1.3.0搭載• mruby IoT framework – Plato 対応
価格 ¥9,690-(秋月電子)
組込みアプリケーションに組み込める
• C/C++と戦わなくても組込みアプリが作れる
• C/C++モジュールが呼び出せるので安心
• C/C++で苦手な処理はmrubyで書けば簡単に実現
アプリケーションに組み込める
• アプリケーションをmrubyで機能拡張
• アプリケーションをRubyスクリプトで制御したり...
• DSLっぽく使ってアプリの構成を記述したり...
色々なところに組み込める「mruby」
72Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.
73Copyright(C) 2017-2018 mruby Forum, SCSK KYUSHU CORP.