SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
家電とRubyの最高にいい関係
CACAnet Fukuoka/近畿大学
山崎重一郎
mrubyボードで
p 家電につぶやき機能
p 日本の電力問題にアプローチ
p エンドユーザプログラミング
p  OSのオーバーヘッドなしてにハードを直接触れる
p  家電にhttpアクセス機能がつく
AI搭載家電
http http
mrubyボード
mrubyボード搭載家電
寝室の掃除
終わったなっしー
掃除機のつぶやきビッグデータ
寝室の掃除終
わったし	
 
居間を
掃除中	
 
キッチンに
到着したし	
 
何かにから
まったし	
 
寝室のドアが閉
まっているし	
 
日本中のルンバのつぶやきを集める
太郎の部屋に
入れないし
ねるし	
 
仮想発電所
効果的節電=発電
ねるし	
 
ねるし	
 
ねるし	
 
ねるし	
 
ねるし	
 
今は寝ないで!
近畿大学/福岡CSK
電力需給
フクオカRuby大賞奨励賞
スマートグリッドとは
p 目的(電力の同時同量制御)
電力需給バランス調は需要側の協力が重要
p 方法
電力網を情報技術で制御
莫大な投資が必要
スマートグリッドの問題
p でも
電力需要自体はどうやって制御するの?
スマートグリッドなんてなくても
p 最下流の家電が
インターネットに情報を上げ
リアルタイムに家電を制御できれば
それでいいんじゃない?
インターネット
p  利用者に伝えるだけでも効果がある
p  充電機能付きにすると逆制御も可能
日本中のエレベータがつぶやけば
2階なら階
段使えば	
 
一人かあ	
 
今電力足り
てないし	
 
7人かあ	
 
一人かあ	
 
2人かあ
今は寝ないで! 今は寝ないで!
ぎざぎざが大きいほど、発電効率が悪い
プラス側だと、消費電力が増加中
仮想発電所
mruby
p  組込みデバイス用Ruby
p  httpアクセスが1行で書ける
SimpleHttp.new("157.13.59.2",80){¦h¦h.get("/robots/1/tweets/1", {})}
p  OSが無いので、リアルタイム処理が軽い
p  センサー、アクチュエータ関連ライブラリ豊富
シリアル通信、I2C、SPI、サーボのPWM制御
ルンバはAPIを公開している
GND	
Rx	
Tx	
16V
Roomba
Serial Command Interface (SCI)
p  移動
前進、後退、回転、...
p  歌う
p  センサー
崖、壁、ドックを探す、ゴミ検出、モータ異常、...
p  制御関係
電圧、電流、充電状況、温度
3Dプリンタで作成したルンバケース
p  mrubyボードenziを搭載し、ルンバをhttp通信可能に
p  無線LANでつぶやけるようにした
ECHONET規格家電
p  panasonic、東芝、SONY、デンソー、日立、京
セラ、シャープ、NEC、富士通、...
洗濯乾燥機API
p  蓋が閉じてるか
p  洗濯コース
p  水流設定
p  脱水回転設定
p  すすぎ回数
p  乾燥度設定
p  つけおき工程設定
p  ...
洗濯乾燥機API
p  蓋が閉じてるか
p  洗濯コース
p  水流設定
p  脱水回転設定
p  すすぎ回数
p  乾燥度設定
p  つけおき工程設定
p  ...
ドメイン指向言語(DSL)
p RubyはDSLが作りやすい言語
Ruby on Rails
Rake
RSpec
...
p メタプログラミングが得意
エンドユーザプログラミング
p 設計方針
ドメイン指向言語
学習不用(直感的にだいたいわかる)
心理的バリアを注意深く除去する
学習不用(?)
p テンプレートの修正型
p 例を見ると文法がなんとなくわかる
p 改造の方法の例もわかる
p 自分の意図がちゃんと伝わればいい
まずロボットに名前をつける
=インスタンス生成
p  デフォルトの提示(変更可能箇所の表示)
p  ユーザ定義の例
p  結果 Robotクラスのインスタンスが生成され
    「るん太」メソッドで呼び出せる
ロボットの名前 "るんば"
ロボットの名前 "るん太"
るん太
=>Robotクラスのインスタンスが返ってくる
define_methodで
ロボットの名前メソッドを動的に生成
実際のプログラム
class Robot
attr :name
def initialize(name)
@name=name
end
end
	
def ロボットの名前(name)
define_method(name) {Robot.new(name)}
end
p  ベースステーションからの道順を記憶する
リビング	
子供部屋	
寝室	
ダイニング	
るん太.部屋を教える
"寝室"
(1) リビングにルンバを置く
(2) 上記の設定プログラム実行
(3) ルンバの復帰経路の逆順が
リビングへの経路
ベースステーション	
ロボットに部屋をおぼえさせる
るん太.部屋を教える
"リビング"
プログラム
ユーザが書く部分
class Robot
attr :name, :route
def initialize(name)
@name=name
@route={}
end
def 部屋を教える(room)
puts "#{room}とベースステーションとの道順をおぼえるなっしー"
@route[room]=[] #実際には、ここでロボットからの道順を得る
end
end
def ロボットの名前(name)
define_method(name) {Robot.new(name)}
end
るん太.部屋を教える "リビング"
p  時刻になると掃除を開始する
リビング	
子供部屋	
寝室	
ダイニング	
るん太.時 16 do
掃除する "リビング"
掃除する "寝室"
end
ベースステーション	
ロボットに時刻起動
るん太.時 17 do
掃除する "ダイニング"
掃除する "寝室"
掃除する "子供部屋"
掃除する "リビング"
end
ブロックをcallする
class Robot
attr :name, :route
def initialize(name)
@name=name
@route={}
end
def 時(time, &b)
b.call(time)
end
end
def 掃除する(room)
puts "#{room}掃除終わったなっしー"
end
def ロボットの名前(name)
define_method(name) {Robot.new(name)}
end
るん太.時 14 do 掃除する "リビング" end
修飾語の文法
るん太.金曜日.時 16 do
掃除する "リビング"
掃除する "寝室"
end
p 条件、繰り返しなど
るん太.毎日.時 16 do
掃除する "リビング"
掃除する "寝室"
end
洗濯機
p 洗濯機の名前をつけて
ロボットの名前 "あらいくまもん"
p 設定を教える
洗剤 "粉"
注水 "多め"
浸け置き分 20
洗い.弱め分 3
洗い.普通分 6
ためすすぎ回 2
脱水分 6
浸け置き
終わったモン
当然ですが、
複雑なことをするには複雑な文法になる
p でも、テンプレートは助けになる
p 変更できる場所、選択肢はわかる
p 辞書は事前に整備できる
p 制御構造は、副詞、形容詞、時制に
p 仮定法の表現も、物語風に(?)
学習不用な言語にむけて
p テンプレートの修正型
p 例を見ると文法がなんとなくわかる
p 改造の方法の例もわかる
p 自分の意図がちゃんと伝わればいい
エンド・ユーザ・プログラミング
p 人工知能搭載家電の発展
p どうやって家電とお話するか?
p Siriみたいな自然言語?
p 簡易プログラミング言語の方が気持ちい
いんじゃない?

Weitere ähnliche Inhalte

Mehr von Kindai University

Blockchain and Virtual Currency - Technical issues -
Blockchain and Virtual Currency- Technical issues -Blockchain and Virtual Currency- Technical issues -
Blockchain and Virtual Currency - Technical issues -Kindai University
 
ブロックチェーンエコノミーのコンセンサスとガバナンス
ブロックチェーンエコノミーのコンセンサスとガバナンスブロックチェーンエコノミーのコンセンサスとガバナンス
ブロックチェーンエコノミーのコンセンサスとガバナンスKindai University
 
福岡ブロックチェーン・エコノミー勉強会セミナー
福岡ブロックチェーン・エコノミー勉強会セミナー福岡ブロックチェーン・エコノミー勉強会セミナー
福岡ブロックチェーン・エコノミー勉強会セミナーKindai University
 
福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版Kindai University
 
ブロックチェーンによるデータガバナンスと社会基盤の再構築
ブロックチェーンによるデータガバナンスと社会基盤の再構築ブロックチェーンによるデータガバナンスと社会基盤の再構築
ブロックチェーンによるデータガバナンスと社会基盤の再構築Kindai University
 
FinTechと金融サービスの将来像
FinTechと金融サービスの将来像FinTechと金融サービスの将来像
FinTechと金融サービスの将来像Kindai University
 
仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTech仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTechKindai University
 
ビットコイン福岡勉強会法的課題
ビットコイン福岡勉強会法的課題ビットコイン福岡勉強会法的課題
ビットコイン福岡勉強会法的課題Kindai University
 
ブロックチェインとOpen asset protocol
ブロックチェインとOpen asset protocolブロックチェインとOpen asset protocol
ブロックチェインとOpen asset protocolKindai University
 
電子情報通信学会グローバル社会とビットコイン(山崎)
電子情報通信学会グローバル社会とビットコイン(山崎)電子情報通信学会グローバル社会とビットコイン(山崎)
電子情報通信学会グローバル社会とビットコイン(山崎)Kindai University
 
薬院サルー仮想通貨プロジェクト
薬院サルー仮想通貨プロジェクト薬院サルー仮想通貨プロジェクト
薬院サルー仮想通貨プロジェクトKindai University
 
明星和楽 Bitcoin の概要
明星和楽 Bitcoin の概要明星和楽 Bitcoin の概要
明星和楽 Bitcoin の概要Kindai University
 
Bitcoinのしくみと設計思想
Bitcoinのしくみと設計思想Bitcoinのしくみと設計思想
Bitcoinのしくみと設計思想Kindai University
 

Mehr von Kindai University (20)

Blockchain and Virtual Currency - Technical issues -
Blockchain and Virtual Currency- Technical issues -Blockchain and Virtual Currency- Technical issues -
Blockchain and Virtual Currency - Technical issues -
 
Gbec finance and blockchain
Gbec finance and blockchainGbec finance and blockchain
Gbec finance and blockchain
 
Blockchian definition
Blockchian definitionBlockchian definition
Blockchian definition
 
Blockchain economy
Blockchain economyBlockchain economy
Blockchain economy
 
ブロックチェーンエコノミーのコンセンサスとガバナンス
ブロックチェーンエコノミーのコンセンサスとガバナンスブロックチェーンエコノミーのコンセンサスとガバナンス
ブロックチェーンエコノミーのコンセンサスとガバナンス
 
福岡ブロックチェーン・エコノミー勉強会セミナー
福岡ブロックチェーン・エコノミー勉強会セミナー福岡ブロックチェーン・エコノミー勉強会セミナー
福岡ブロックチェーン・エコノミー勉強会セミナー
 
福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版
 
ブロックチェーンによるデータガバナンスと社会基盤の再構築
ブロックチェーンによるデータガバナンスと社会基盤の再構築ブロックチェーンによるデータガバナンスと社会基盤の再構築
ブロックチェーンによるデータガバナンスと社会基盤の再構築
 
FinTechと金融サービスの将来像
FinTechと金融サービスの将来像FinTechと金融サービスの将来像
FinTechと金融サービスの将来像
 
Congre chain説明資料
Congre chain説明資料Congre chain説明資料
Congre chain説明資料
 
仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTech仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTech
 
ビットコイン福岡勉強会法的課題
ビットコイン福岡勉強会法的課題ビットコイン福岡勉強会法的課題
ビットコイン福岡勉強会法的課題
 
ブロックチェインとOpen asset protocol
ブロックチェインとOpen asset protocolブロックチェインとOpen asset protocol
ブロックチェインとOpen asset protocol
 
Open fintech and Kachatter
Open fintech and KachatterOpen fintech and Kachatter
Open fintech and Kachatter
 
仮想通貨実験計画
仮想通貨実験計画仮想通貨実験計画
仮想通貨実験計画
 
Bit Nexus
Bit NexusBit Nexus
Bit Nexus
 
電子情報通信学会グローバル社会とビットコイン(山崎)
電子情報通信学会グローバル社会とビットコイン(山崎)電子情報通信学会グローバル社会とビットコイン(山崎)
電子情報通信学会グローバル社会とビットコイン(山崎)
 
薬院サルー仮想通貨プロジェクト
薬院サルー仮想通貨プロジェクト薬院サルー仮想通貨プロジェクト
薬院サルー仮想通貨プロジェクト
 
明星和楽 Bitcoin の概要
明星和楽 Bitcoin の概要明星和楽 Bitcoin の概要
明星和楽 Bitcoin の概要
 
Bitcoinのしくみと設計思想
Bitcoinのしくみと設計思想Bitcoinのしくみと設計思想
Bitcoinのしくみと設計思想
 

Nerusi ruby メタプログラミング