Text
Page: 1
令和の隙間産業
PicoRubyはどこから来て、
どこへ行くのか
hasumikin
令和6年8月24日
Page: 4
だからきょうのRabbitスライドは
Page: 12
はすみさんて、誰の役にも立たない話を
楽しそうにしますよね(意訳)
Page: 13
前田修吾さんも
誰の役にも立たない話しますよね
Page: 15
そうは言っても
RubyKaigiトークの80%くらいは
誰の役にも立ってない(個人の感想です)
Page: 16
役に立たない
これにも種類がある
Page: 17
CRubyの内部実装を改善
(直接には)役に立たない
Page: 18
型の書き方に新提案
(すぐには)役に立たない
Page: 19
メガドライブでRubyを動かす
(1ミリも)役に立たない
Page: 20
自作のエディタのために新メソッドを提案
意味がわからない
Page: 21
尊敬する「世界のshugomaeda」と
同じカテゴリー(光栄)
Page: 22
きょうはせっかくのキーノートなので、
堂々と誰の役にも立たない話をします
Page: 23
【ご報告】ところで、最近転職しました
Page: 28
【ご報告】RubyConf Africa 2024
Page: 31
【ご案内】2024年10月5日
松江Ruby会議11
Page: 34
(たぶん)
きょうは質問タイムがあります
Page: 35
いちばんよい質問をしてくれた人に
Page: 37
mruby/c御朱印帳をプレゼント!
Page: 41
隙間産業 =ちょっとしたプロダクト
Page: 42
ちょっとしたプロダクトを持つと楽しい
Page: 43
ちょっとしたプロダクトを持つに至った経緯
Page: 44
PicoRubyはどこから来て、どこへ行くのか
Page: 49
mruby/c
スラッシュって
PL/I?
Page: 50
mruby|MRuby|mRuby
Page: 55
Cだと千行、Rubyだと数百行
みたいなこと、昔はよく言いました
Page: 56
きょうび、CとRubyは比較しない
Page: 57
Cではふつう、
ウェッブアプリを書きませんが、
Page: 58
マイコンは今でもC/C++が主流
Page: 59
(仮定)Cだと千行、Rubyだと数百行
のマイコンアプリケーション
Page: 60
数百行なら型は要らない
(あればあったでべんりな日もある)
Page: 61
マイコンアプリだと動的型付けの
メリットが最大化される(当社比)
Page: 62
REPL(IRB)による漸進的開発
Page: 63
ペリフェラルgemsが揃っている
Page: 64
GPIO、ADC、I2C、SPI、UART、PWM
Page: 65
GPIO:汎用入出力。Lチカ
ソフト制御でプロトコルをしゃべらせてもいい
Page: 66
ADC:アナログ値(電圧)をデジタル値に変換
温度センサ、マイク、ジョイスティックなど
Page: 67
I2C:シリアル通信
2本の配線で複数機器がつながる
各種センサ、小型ディスプレイなど
Page: 68
SPI:シリアル通信。I2Cより速い
各種センサ、LCD、メモリ
Page: 69
UART:非同期のシリアル通信
コンソール、通信モジュールなど
Page: 70
PWM:
こまかなデジタル出力制御でアナログっぽい波形
モータ制御、LED明滅、ブザーを鳴らすなど
Page: 71
よくある質問
「ピコルビーはGPS対応してますか?」
Page: 72
よくある質問
「PRKはトラックボールつかえますか?」
Page: 76
ペリフェラルgemsがあれば、
たいていのことはできる
Page: 77
つまり、PicoRubyはすでに
たいていのことができます
Page: 78
ちなみに
ビット演算の知識は必須
Page: 79
WiFiもComing soon!
Page: 81
2017年1月、mruby/c 1.0
mruby準拠VMだけの軽量実装
Page: 82
作者:
田中教授(九州工業大学)
東研究員(ITOC)
Page: 83
コンパイラは別途開発せず、
mrubyのものを使用
Page: 84
mrubyコンパイラはメモリ消費が大きく、
ワンチップマイコンには載らなかった
Page: 85
マイコンに載せるのはVMとVMコード
Page: 86
そのころのhasumikin
「IoTやりたい」
Page: 89
2017年にmruby/cを触り始める
Page: 91
バグあり
(誰にも)ノウハウなし
Page: 92
そもそものC言語力不足
(私の問題)
Page: 94
コンパイルして書き込んで実行(無限ループ)
Page: 96
麹の温度管理システム完成
(旭日酒造)
Page: 97
2018年、仙台
RubyKaigi初登壇
Page: 99
角谷さんと松田さんがザワついたプロポーザル
Page: 100
「mrubyで酒を造っています」
Page: 101
2020年
フクオカRuby大賞
Page: 103
PicoRubyはまだ陰も形もない
Page: 104
(話は2019年に戻ります)
富山Ruby会議01
Page: 106
Rubyで書くmrubyコンパイラ
Page: 107
puts "Hello World!"だけできる
(正確には、関数呼び出し+Stringリテラル)
Page: 108
パーサジェネレータはLemon
(SQLiteプロジェクトの一部。隙間産業)
Page: 109
オレオレparse.cをFFIでRubyにリンク
Page: 110
トークナイザとコードジェネレータはRuby
わりと簡単にできた
Page: 111
2020年
「全部Cで書けるのでは?」
Page: 114
マイコン上でRubyをコンパイルする
という隙間産業
Page: 115
mruby/c + mini mruby compiler
Page: 118
その後のR2P2につながるアイデアではあったが
コロナ禍のやる気減退もあって消化不良
Page: 119
2021年1月
ラズパイ財団、ラズパイピコを発表
Page: 120
Raspberry Pi Pico(隙間産業)
Page: 121
264KB RAM
2MB Flash ROM
五百円
Page: 123
「キーボードファームウェアつくれそう」
Page: 124
PRK Firmware(隙間産業)
Page: 125
RubyKaigi Takeout 2021
Page: 126
“DIYキーボードは実質Ruby”
Page: 129
2021年
PicoRubyと命名
Page: 130
Ruby Prize最終ノミネート
Page: 133
2022年
フクオカRuby大賞おかわり
Page: 136
“Build Your Own SQLite3”
Page: 138
マイコンで動かすSQLite3(隙間産業)
Page: 140
(オレ史上)最も世界のshugomaeda的トーク
Page: 143
からのLrama-gen化(?)
Page: 144
詳しくは来週(RubyKaigi 2024 followup)
Page: 146
パーサがCRubyとコンパチになると
Page: 147
CRubyと相互運用しやすくなる
(クレームが減る)
Page: 148
ぺん!さんのTRICKyなコードが動く
(かもしれない)
Page: 152
Socketクラス、Kernel.#system
Page: 153
クロスプラットフォームなワンバイナリツール
picoruby-cli(?)
Page: 154
ペリフェラルシミュレータ
PCでGPIOなどの操作を”仮組み”してからマイコ
ンへ
Page: 155
教育コンテンツ化
(セットアップが簡単、再現性が高い)
Page: 157
ポーティングを進めたい
ESP32、nRF52、STM32
Page: 159
①それぞれのマイコンごとのビルド方法に
対応したR2P2プロジェクトをつくる
Page: 160
②ペリフェラルgemsのマイコン依存部分を書く
Page: 172
ぼくらにはそれぞれ
旅に出る理由がある
Page: 173
きょうのわたくしの話が
役に立ちそうな人