sec先端技術入門ゼミ「ruby×mruby入門」 [856 kb]

15
SEC先端技術入門ゼミ Ruby×mruby入門」 ET/IoT 2016 20161117

Upload: lebao

Post on 13-Feb-2017

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

SEC先端技術入門ゼミ「Ruby×mruby入門」

ET/IoT 2016

2016年11月17日

Page 2: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

Ruby

mruby

みなさん、こんにちは!

•池澤あやか• タレント / エンジニア

•田中和明• 九州工業大学情報工学部

• mrubyの研究開発してます

Page 3: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

Rubyとの出会い

• プログラミングや電子工作の研究会に入った

• プログラミングぜんぜん分からない…

• プログラミング合宿に行こう!!!

• たまたまRuby合宿だった!

Page 4: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

mrubyとの出会い?

• Rubyはver 1.2か1.3のころから使っていた(現在の最新版は v2.3)• 使いやすい、プログラムを作りやすい

• ロボットやセンサの研究研究のデータ処理でRubyを使っていた• データの加工が自由自在にできるので便利!

•組込みソフトの開発に利用できないか?• mrubyを作った

Page 5: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

Men’s Ruby ?

• mruby と Ruby、どこが違う?

• mrubyは組込み向けにデザイン

•組込みシステムを想定しているが、サーバ内の組込みソフトなどにも展開している

mod_mrubyApacheモジュールでmrubyスクリプトを動かす

Page 6: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

mrubyの仕組み

• mrubyコンパイラとmrubyVMを提供している

• mrubyコンパイラ• mruby(Ruby)プログラムを解析して、バイトコードを作成する

• バイトコードはハードウェア非依存

• mrubyVM• バイトコードを実行する

• コンパクトなVM

Page 7: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

コンパクトは良いこと•必要なメモリが少ない ・省電力

・製造コストが下がる

• プログラムが小さい ・テスト期間の短縮

・バグが混入しにくい

どのくらいコンパクトなのか、ジェリービーンズで例えてみると・・・?

Ruby mruby

mruby/c(現在、研究開発中)

> >

Page 8: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

Ruby×mruby

IoT – Internet of Things

•手軽なシステム開発• アイディアを短い時間で動く物にする

• インターネットと物(センサやデバイス)

• Rubyはインターネット

• mrubyは物(センサ、デバイス)

Page 9: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

そもそもRubyって・・・

•文章を書くように直感的に書けるプログラミング言語

• Ruby on Railsで一躍有名になりました• Rubyの持つ開発しやすさが、迅速な開発が求められるWebサービスに合っている

Page 10: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

最近のRuby

• Rubyといえば、Webアプリケーション

• Webアプリケーション作ったり、スクレイピングに使ってました!

(参考)スクレイピング:自動でWebサイトにアクセスし、必要な情報を取り出す仕組み。例えば、「Webサイトからニュースの見出しを取り出し、ニュース一覧を作成する」といったプログラム。

Page 11: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

mrubyで何ができる?

• mrubyで物を動かす

• Rubyを使ってハードウェアを扱える

while true do

led 1

delay 500

led 0

delay 500

end

LEDを点滅

ウェイト処理

どちらもハードウェアと密接に関係する機能

Page 12: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

やってみよう

• Ruby+mrubyで温度センサ

マイコンボード

温度センサ

I2C通信

【デモンストレーション】温度センサーで感知したドライヤーの温度を表示するアプリを作成

Page 13: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

やってみよう

• Ruby+mrubyで温度センサ

require 'sinatra'

get '/' do

@sensor = `./sensor`

erb :index

end

<font size="7">温度は <%= @sensor %> 度</font>

puts Sensor.new(0x10).get

Page 14: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

本日のゼミ、まとめ

• (池澤)

Rubyはやったことあるけどmrubyはまだ…という方にぜひ試していただきたいです。

• (田中)

Ruby, mrubyで、これからのIoT開発が手軽に、簡単になると考えています。

今後もRuby, mrubyにご期待ください。

Page 15: SEC先端技術入門ゼミ「Ruby×mruby入門」 [856 KB]

情報提供

• mrubyは以下から入手できます

• mruby/cは以下から入手できます

https://github.com/mrubyc/mrubyc

https://github.com/mruby/mruby