SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
オリジナルMRUBYデバイス作りオリジナルMRUBYデバイス作り
kishima
⾃⼰紹介⾃⼰紹介
kishima
お仕事
あるIoTサービスのLPWAデバイス開発、運⽤、
障害対応など何でも屋さん
データ解析で最近Rubyを使う機会増えた(増
やした)
趣味
mruby、mruby/c、電⼦⼯作、技術同⼈誌執筆
MRUBYのオリジナルデバイスを作ろうMRUBYのオリジナルデバイスを作ろう
技術書典7で新刊出しました
注⽬の新刊「⼊⾨mruby」
Family mruby
以前の発表からのアップデート以前の発表からのアップデート
基板を更新
配線やフットプリントのミスの修正
電源周りの強化
⾳声出⼒⽤のジャック追加
ESP32へのmruby移植
mrubyからVGA出⼒C++ライブラリを呼ぶ
2次試作基板
ハード的な苦しみ:GNDつなぎ忘れた
Reference
回路図、BOM、基板製造⽤のガーバーデータも公
開しているので⾃分で製造を委託してもOK
https://github.com/kishima/narya_board
ESP32上でのmrubyとArduinoライブラリの共存
mruby-esp32/
|-- main/
|-- components/
| |-- mruby_component/ #mruby
| |-- arduino/ #Arduino core for the ESP32
|
|-- 他
厄介だったポイント
Arduino coreのビルド設定
ESP32のビルドの仕組みの理解
Rubyのサンプルコード
https://github.com/kishima/family_mruby/blob/master/
デモデモ
https://www.youtube.com/watch?v=htTnSmDAAdM
Cの構造体との連携
MRB_TT_DATAタイプのクラスにする
「mruby でC ⾔語の構造体をラップしたオブジェ
クトを作る正しい⽅法」
https://qiita.com/tsahara@github/items/86610a696f8ca
⾒よう⾒まねで実装
https://github.com/kishima/mruby-esp32-
narya/blob/master/src/mrb_narya_display.cpp
struct RClass *sprite_class = mrb_define_class_under(mrb, nar
MRB_SET_INSTANCE_TT(sprite_class, MRB_TT_DATA);
static struct mrb_data_type mrb_sprite_cdata_type = { "Sprite"
mrb_value mrb_narya_sprite_initialize(mrb_state *mrb, mrb_valu
{
DATA_TYPE(self) = &mrb_sprite_cdata_type;
DATA_PTR(self) = newSprite;
}
C⾔語拡張実装の⾃分の課題
C⾔語側で管理する画像や⾳楽のメモリを、漏れ
なく⾼速に確保/解放する⽅法の確認
まだGCの動き⽅が⼗分理解できていないので勉
強する
FAMILY MRUBYプロジェクト:今後の課FAMILY MRUBYプロジェクト:今後の課
題題
APIの強化
⾳声、スプライト、キーボード⼊⼒
フレームワークの強化
Load/Save/mrbc搭載
業者に部品実装まで委託
いくつかのIC部品が⼿はんだ厳しい
コミケ参加
通れば、キットを少量頒布したい
Thank you

Contenu connexe

Tendances

くみこみからひとこと
くみこみからひとことくみこみからひとこと
くみこみからひとことkishima7
 
Wakayama.rbボード ARIDA 4 説明資料
Wakayama.rbボード ARIDA 4 説明資料Wakayama.rbボード ARIDA 4 説明資料
Wakayama.rbボード ARIDA 4 説明資料三七男 山本
 
Rsj2013 sekiyama 1
Rsj2013 sekiyama 1Rsj2013 sekiyama 1
Rsj2013 sekiyama 1openrtm
 
As rock deskminia300
As rock deskminia300As rock deskminia300
As rock deskminia30078tch
 
Wakayamarb Board 説明資料
Wakayamarb Board 説明資料Wakayamarb Board 説明資料
Wakayamarb Board 説明資料三七男 山本
 
Routerboard勉強会 tips
Routerboard勉強会 tipsRouterboard勉強会 tips
Routerboard勉強会 tipskometch H
 
GUI何処行ったんDocker
GUI何処行ったんDockerGUI何処行ったんDocker
GUI何処行ったんDockerKazuhito Miura
 
【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介Yuma Ohgami
 
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)Masakazu Matsushita
 
Fabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFesFabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFesSho Shimauchi
 
ハードに強いWebエンジニアになる 「koress式ネットデバイス企画制作」
ハードに強いWebエンジニアになる 「koress式ネットデバイス企画制作」ハードに強いWebエンジニアになる 「koress式ネットデバイス企画制作」
ハードに強いWebエンジニアになる 「koress式ネットデバイス企画制作」koress project
 
1000万DL突破!BrainWarsのアーキテクチャ
1000万DL突破!BrainWarsのアーキテクチャ1000万DL突破!BrainWarsのアーキテクチャ
1000万DL突破!BrainWarsのアーキテクチャMasakazu Matsushita
 
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみたShuntaro Saiba
 
ノートパソコンでサーバ運用をしよう
ノートパソコンでサーバ運用をしようノートパソコンでサーバ運用をしよう
ノートパソコンでサーバ運用をしようRyo Kanazawa
 
コンピュータエンジニアへのFPGAのすすめ
コンピュータエンジニアへのFPGAのすすめコンピュータエンジニアへのFPGAのすすめ
コンピュータエンジニアへのFPGAのすすめTakeshi HASEGAWA
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくばHirotaka Kawata
 
NetBSD/evbarm (APC9750) への道
NetBSD/evbarm (APC9750) への道NetBSD/evbarm (APC9750) への道
NetBSD/evbarm (APC9750) への道tokudahiroshi
 
TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術Masakazu Matsushita
 
Good Arm FPGA Board Ultra96 and Google AI YOLO
Good Arm FPGA Board Ultra96 and Google AI YOLOGood Arm FPGA Board Ultra96 and Google AI YOLO
Good Arm FPGA Board Ultra96 and Google AI YOLOIf_CQ
 

Tendances (20)

くみこみからひとこと
くみこみからひとことくみこみからひとこと
くみこみからひとこと
 
Wakayama.rbボード ARIDA 4 説明資料
Wakayama.rbボード ARIDA 4 説明資料Wakayama.rbボード ARIDA 4 説明資料
Wakayama.rbボード ARIDA 4 説明資料
 
Rsj2013 sekiyama 1
Rsj2013 sekiyama 1Rsj2013 sekiyama 1
Rsj2013 sekiyama 1
 
As rock deskminia300
As rock deskminia300As rock deskminia300
As rock deskminia300
 
Wakayamarb Board 説明資料
Wakayamarb Board 説明資料Wakayamarb Board 説明資料
Wakayamarb Board 説明資料
 
Routerboard勉強会 tips
Routerboard勉強会 tipsRouterboard勉強会 tips
Routerboard勉強会 tips
 
GUI何処行ったんDocker
GUI何処行ったんDockerGUI何処行ったんDocker
GUI何処行ったんDocker
 
【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介【2000行弱!】x86用自作カーネルの紹介
【2000行弱!】x86用自作カーネルの紹介
 
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
 
ロボット用Open Source Software
ロボット用Open Source Softwareロボット用Open Source Software
ロボット用Open Source Software
 
Fabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFesFabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFes
 
ハードに強いWebエンジニアになる 「koress式ネットデバイス企画制作」
ハードに強いWebエンジニアになる 「koress式ネットデバイス企画制作」ハードに強いWebエンジニアになる 「koress式ネットデバイス企画制作」
ハードに強いWebエンジニアになる 「koress式ネットデバイス企画制作」
 
1000万DL突破!BrainWarsのアーキテクチャ
1000万DL突破!BrainWarsのアーキテクチャ1000万DL突破!BrainWarsのアーキテクチャ
1000万DL突破!BrainWarsのアーキテクチャ
 
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
新卒3年目のぼくが、でぶおぷす???なインフラおじさん方にAnsibleを導入してみた
 
ノートパソコンでサーバ運用をしよう
ノートパソコンでサーバ運用をしようノートパソコンでサーバ運用をしよう
ノートパソコンでサーバ運用をしよう
 
コンピュータエンジニアへのFPGAのすすめ
コンピュータエンジニアへのFPGAのすすめコンピュータエンジニアへのFPGAのすすめ
コンピュータエンジニアへのFPGAのすすめ
 
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
30日でできない!コンピューター自作入門 - カーネル/VM探検隊@つくば
 
NetBSD/evbarm (APC9750) への道
NetBSD/evbarm (APC9750) への道NetBSD/evbarm (APC9750) への道
NetBSD/evbarm (APC9750) への道
 
TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術
 
Good Arm FPGA Board Ultra96 and Google AI YOLO
Good Arm FPGA Board Ultra96 and Google AI YOLOGood Arm FPGA Board Ultra96 and Google AI YOLO
Good Arm FPGA Board Ultra96 and Google AI YOLO
 

Similaire à オリジナルmrubyデバイス作り

mruby VM を調べてみた話
mruby VM を調べてみた話mruby VM を調べてみた話
mruby VM を調べてみた話kishima7
 
Rubyボードハンズオン
RubyボードハンズオンRubyボードハンズオン
Rubyボードハンズオン三七男 山本
 
RubyKaigi Lightning Talks TwYM episode2
RubyKaigi Lightning Talks TwYM episode2RubyKaigi Lightning Talks TwYM episode2
RubyKaigi Lightning Talks TwYM episode2Kuniaki Igarashi
 
VMを改めて学んで見る
VMを改めて学んで見るVMを改めて学んで見る
VMを改めて学んで見るkishima7
 
私とRubyの付き合い方 - 岡山Ruby会議02
私とRubyの付き合い方 - 岡山Ruby会議02私とRubyの付き合い方 - 岡山Ruby会議02
私とRubyの付き合い方 - 岡山Ruby会議02Masaya Konishi
 
仮想化技術の基本の基本
仮想化技術の基本の基本仮想化技術の基本の基本
仮想化技術の基本の基本terada
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回龍一 田中
 
Ruby Enterprise Environment
Ruby Enterprise EnvironmentRuby Enterprise Environment
Ruby Enterprise EnvironmentTomoya Kawanishi
 
ET2016 小さなRubyボード GR-CITRUSの紹介
ET2016 小さなRubyボード GR-CITRUSの紹介ET2016 小さなRubyボード GR-CITRUSの紹介
ET2016 小さなRubyボード GR-CITRUSの紹介三七男 山本
 
Ruby関西勉強会発表資料
Ruby関西勉強会発表資料Ruby関西勉強会発表資料
Ruby関西勉強会発表資料三七男 山本
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And JekyllYoji Shidara
 
軽量Ruby『mruby』について
軽量Ruby『mruby』について軽量Ruby『mruby』について
軽量Ruby『mruby』についてRyosuke MATSUMOTO
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825hiro345
 
秋のVim祭り Rubyを添えて
秋のVim祭り Rubyを添えて秋のVim祭り Rubyを添えて
秋のVim祭り Rubyを添えてYuta Ogura
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVRToru Makabe
 

Similaire à オリジナルmrubyデバイス作り (17)

mruby VM を調べてみた話
mruby VM を調べてみた話mruby VM を調べてみた話
mruby VM を調べてみた話
 
Rubyボードハンズオン
RubyボードハンズオンRubyボードハンズオン
Rubyボードハンズオン
 
RubyKaigi Lightning Talks TwYM episode2
RubyKaigi Lightning Talks TwYM episode2RubyKaigi Lightning Talks TwYM episode2
RubyKaigi Lightning Talks TwYM episode2
 
VMを改めて学んで見る
VMを改めて学んで見るVMを改めて学んで見る
VMを改めて学んで見る
 
私とRubyの付き合い方 - 岡山Ruby会議02
私とRubyの付き合い方 - 岡山Ruby会議02私とRubyの付き合い方 - 岡山Ruby会議02
私とRubyの付き合い方 - 岡山Ruby会議02
 
仮想化技術の基本の基本
仮想化技術の基本の基本仮想化技術の基本の基本
仮想化技術の基本の基本
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
 
Ruby Enterprise Environment
Ruby Enterprise EnvironmentRuby Enterprise Environment
Ruby Enterprise Environment
 
ET2016 小さなRubyボード GR-CITRUSの紹介
ET2016 小さなRubyボード GR-CITRUSの紹介ET2016 小さなRubyボード GR-CITRUSの紹介
ET2016 小さなRubyボード GR-CITRUSの紹介
 
Debian emdebian 20100817
Debian emdebian 20100817Debian emdebian 20100817
Debian emdebian 20100817
 
Ruby関西勉強会発表資料
Ruby関西勉強会発表資料Ruby関西勉強会発表資料
Ruby関西勉強会発表資料
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
 
軽量Ruby『mruby』について
軽量Ruby『mruby』について軽量Ruby『mruby』について
軽量Ruby『mruby』について
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
Kansai mrb gr_sakura
Kansai mrb gr_sakuraKansai mrb gr_sakura
Kansai mrb gr_sakura
 
秋のVim祭り Rubyを添えて
秋のVim祭り Rubyを添えて秋のVim祭り Rubyを添えて
秋のVim祭り Rubyを添えて
 
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR第20回 OpenStack勉強会 Neutron Deep Dive - DVR
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
 

Plus de kishima7

Now is the time to create your own (m)Ruby computer
Now is the time to create your own (m)Ruby computerNow is the time to create your own (m)Ruby computer
Now is the time to create your own (m)Ruby computerkishima7
 
mrubyで作るマイコンボード
mrubyで作るマイコンボードmrubyで作るマイコンボード
mrubyで作るマイコンボードkishima7
 
自分だけのデバイスを作るお話
自分だけのデバイスを作るお話自分だけのデバイスを作るお話
自分だけのデバイスを作るお話kishima7
 
Stairway to my Family mruby
Stairway to my Family mrubyStairway to my Family mruby
Stairway to my Family mrubykishima7
 
mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発kishima7
 
Wio LTEとmruby/cでIoT
Wio LTEとmruby/cでIoTWio LTEとmruby/cでIoT
Wio LTEとmruby/cでIoTkishima7
 
Unityにmrubyを組み込んで抽選をしてみた
Unityにmrubyを組み込んで抽選をしてみたUnityにmrubyを組み込んで抽選をしてみた
Unityにmrubyを組み込んで抽選をしてみたkishima7
 
Introduction of mruby & Webruby script example
Introduction of mruby & Webruby script exampleIntroduction of mruby & Webruby script example
Introduction of mruby & Webruby script examplekishima7
 
Dalvik Source Code Reading
Dalvik Source Code ReadingDalvik Source Code Reading
Dalvik Source Code Readingkishima7
 
Ruby and Android
Ruby and AndroidRuby and Android
Ruby and Androidkishima7
 
Google TV hack
Google TV hackGoogle TV hack
Google TV hackkishima7
 
くみこみからひとことReturns
くみこみからひとことReturnsくみこみからひとことReturns
くみこみからひとことReturnskishima7
 
ネット家電じゃなくて?
ネット家電じゃなくて?ネット家電じゃなくて?
ネット家電じゃなくて?kishima7
 

Plus de kishima7 (13)

Now is the time to create your own (m)Ruby computer
Now is the time to create your own (m)Ruby computerNow is the time to create your own (m)Ruby computer
Now is the time to create your own (m)Ruby computer
 
mrubyで作るマイコンボード
mrubyで作るマイコンボードmrubyで作るマイコンボード
mrubyで作るマイコンボード
 
自分だけのデバイスを作るお話
自分だけのデバイスを作るお話自分だけのデバイスを作るお話
自分だけのデバイスを作るお話
 
Stairway to my Family mruby
Stairway to my Family mrubyStairway to my Family mruby
Stairway to my Family mruby
 
mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発
 
Wio LTEとmruby/cでIoT
Wio LTEとmruby/cでIoTWio LTEとmruby/cでIoT
Wio LTEとmruby/cでIoT
 
Unityにmrubyを組み込んで抽選をしてみた
Unityにmrubyを組み込んで抽選をしてみたUnityにmrubyを組み込んで抽選をしてみた
Unityにmrubyを組み込んで抽選をしてみた
 
Introduction of mruby & Webruby script example
Introduction of mruby & Webruby script exampleIntroduction of mruby & Webruby script example
Introduction of mruby & Webruby script example
 
Dalvik Source Code Reading
Dalvik Source Code ReadingDalvik Source Code Reading
Dalvik Source Code Reading
 
Ruby and Android
Ruby and AndroidRuby and Android
Ruby and Android
 
Google TV hack
Google TV hackGoogle TV hack
Google TV hack
 
くみこみからひとことReturns
くみこみからひとことReturnsくみこみからひとことReturns
くみこみからひとことReturns
 
ネット家電じゃなくて?
ネット家電じゃなくて?ネット家電じゃなくて?
ネット家電じゃなくて?
 

オリジナルmrubyデバイス作り