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

Post on 13-Feb-2017

230 views 0 download

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