SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]
Transcript of SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]
SEC先端技術入門ゼミ「Ruby×mruby入門」
ET/IoT 2016
2016年11月17日
Ruby
mruby
みなさん、こんにちは!
•池澤あやか• タレント / エンジニア
•田中和明• 九州工業大学情報工学部
• mrubyの研究開発してます
Rubyとの出会い
• プログラミングや電子工作の研究会に入った
• プログラミングぜんぜん分からない…
• プログラミング合宿に行こう!!!
• たまたまRuby合宿だった!
mrubyとの出会い?
• Rubyはver 1.2か1.3のころから使っていた(現在の最新版は v2.3)• 使いやすい、プログラムを作りやすい
• ロボットやセンサの研究研究のデータ処理でRubyを使っていた• データの加工が自由自在にできるので便利!
•組込みソフトの開発に利用できないか?• mrubyを作った
Men’s Ruby ?
• mruby と Ruby、どこが違う?
• mrubyは組込み向けにデザイン
•組込みシステムを想定しているが、サーバ内の組込みソフトなどにも展開している
mod_mrubyApacheモジュールでmrubyスクリプトを動かす
mrubyの仕組み
• mrubyコンパイラとmrubyVMを提供している
• mrubyコンパイラ• mruby(Ruby)プログラムを解析して、バイトコードを作成する
• バイトコードはハードウェア非依存
• mrubyVM• バイトコードを実行する
• コンパクトなVM
コンパクトは良いこと•必要なメモリが少ない ・省電力
・製造コストが下がる
• プログラムが小さい ・テスト期間の短縮
・バグが混入しにくい
どのくらいコンパクトなのか、ジェリービーンズで例えてみると・・・?
Ruby mruby
mruby/c(現在、研究開発中)
> >
Ruby×mruby
IoT – Internet of Things
•手軽なシステム開発• アイディアを短い時間で動く物にする
• インターネットと物(センサやデバイス)
• Rubyはインターネット
• mrubyは物(センサ、デバイス)
そもそもRubyって・・・
•文章を書くように直感的に書けるプログラミング言語
• Ruby on Railsで一躍有名になりました• Rubyの持つ開発しやすさが、迅速な開発が求められるWebサービスに合っている
最近のRuby
• Rubyといえば、Webアプリケーション
• Webアプリケーション作ったり、スクレイピングに使ってました!
(参考)スクレイピング:自動でWebサイトにアクセスし、必要な情報を取り出す仕組み。例えば、「Webサイトからニュースの見出しを取り出し、ニュース一覧を作成する」といったプログラム。
mrubyで何ができる?
• mrubyで物を動かす
• Rubyを使ってハードウェアを扱える
while true do
led 1
delay 500
led 0
delay 500
end
LEDを点滅
ウェイト処理
どちらもハードウェアと密接に関係する機能
やってみよう
• Ruby+mrubyで温度センサ
マイコンボード
温度センサ
I2C通信
【デモンストレーション】温度センサーで感知したドライヤーの温度を表示するアプリを作成
やってみよう
• Ruby+mrubyで温度センサ
require 'sinatra'
get '/' do
@sensor = `./sensor`
erb :index
end
<font size="7">温度は <%= @sensor %> 度</font>
puts Sensor.new(0x10).get
本日のゼミ、まとめ
• (池澤)
Rubyはやったことあるけどmrubyはまだ…という方にぜひ試していただきたいです。
• (田中)
Ruby, mrubyで、これからのIoT開発が手軽に、簡単になると考えています。
今後もRuby, mrubyにご期待ください。
情報提供
• mrubyは以下から入手できます
• mruby/cは以下から入手できます
https://github.com/mrubyc/mrubyc
https://github.com/mruby/mruby