技術書典7でESP32とmruby関連の新刊出します
Fanzine, Techc, Embedded, ESP32, Japanese, mruby
技術書典7もいよいよ明日になりました。サークル当選したので、今回も新刊出す予定です。
今回はシンプルにまとめようと思っていたのですが、書いているうちにボリュームが増えてしまって、いつものように100p超になってしまいました。
電子工作を本格的にやり始めてからの自分の経験の集大成でもあるので、興味のある方にはぜひ手にとって読んで頂ければなと思っております。
し37D(2F) Kishima Craft Works でお待ちしています。
https://techbookfest.org/event/tbf07/circle/5677720881070080
新刊の内容
以前、構想だけブログで書いていた計画を本格的にやり始めて、そこで得た知識をまとめています。>「FabGLとmruby-ESP32ボードの構想」
ESP32を使ってVGAディスプレイ出力、キーボード入力、音声出力を実現する基板をゼロから設計し、mrubyで制御できるようするところまで一気に解説しています。
ソフトの経験はあるけど、電気回路とか全然わからない、という方を対象に、基板を設計して、その上で動くプラットフォームを自作するまでの知識を筆者の経験に基づいてわかりやすくまとめています。
デモ
以下のようなmrubyのコードでESP32を制御してVGAディスプレイに画像を表示できます。
結構サクサク動いて感動です。
puts "*** Family mruby v0.0 ***"
class Ball
def initialize(x,y,r,col,speed)
@x = x
@y = y
@r = r
@color = col
@speed = speed
end
attr_accessor :x, :y, :r, :color, :speed
def move(x,y)
@x += x
@x = 0 if @x > 320
@x = 320 if @x < 0 @y += y @y = 0 if @y > 200
@y = 200 if @y < 0
end
end
def draw(ball)
Narya::Display::draw_circle(ball.x,ball.y,ball.r,ball.color)
end
def load_balls
balls = []
10.times do
balls << Ball.new(rand(320), rand(200)+20, 2, 7, 1 )
end
5.times do
balls << Ball.new(rand(320), rand(200)+20, 7, 6, 3 )
end
2.times do
balls << Ball.new(rand(320), rand(200)+20, 12, 5, 4 )
end
balls
end
puts "Sprite.new"
sp = Narya::Sprite.new
sp.move_to(100,100)
balls = load_balls
count = 0
loop do
Narya::Display::clear
Narya::Display::draw_text(20,5,"Family mruby DEMO!")
balls.each do |ball|
ball.move(-ball.speed,0)
draw ball
end
sp.move(3,0)
Narya::Display::swap
end
目次
本編の目次は↓のような感じです。
- 第1章 オリジナルデバイスの設計の道
- 1.1 本書の目的
- 1.2 執筆の経緯
- 1.3 本書の解説対象範囲
- 1.4 設計の流れ
- 第2章 設計図を作ろう
- 2.1 作りたいものを決める
- 2.2 必要な機能の整理
- 2.3 実現方法を考える
- 2.4 ブロック図を描いてみる
- 2.5 ピンの配置を決める
- 第3章 初心者でも回路は怖くない(はず)
- 3.1 回路設計を始めよう
- 3.2 回路設計ツールでの回路設計
- 3.3 本格的に回路設計
- 3.4 部品の選定と調達
- 第4章 自分だけの基板を
- 4.1 プリント基板を使う理由
- 4.2 KiCadでの基板デザインを覚える
- 4.3 本格的に基板を作ってみよう
- 4.4 ガーバーデータの出力
- 4.5 プリント基板メーカーへ製造依頼
- 4.6 基板の完成
- 第5章 mrubyを思いのままに!
- 5.1 Family mrubyのシステム構成
- 5.2 ESP32向けのソフト開発環境の選択
- 5.3 評価用基板
- 5.4 ESP-IDFビルド環境の構築
- 5.5 mrubyをESP32へ
- 5.6 ESP32上でのmruby環境開発
- 第6章 mrubyを自分のデバイス色に染める
- 6.1 mrubyとハードウェア
- 6.2 mrubyとHMI
- 6.3 mrbgemsによる機能拡張
- 6.4 ガベージコレクション(GC)
- 6.5 mrubyによるハードウェア制御
- 第7章 俺たち戦いはここからだ
- 7.1 自分だけのオリジナルデバイス
- 7.2 自分だけのものにしておくのはもったいない!
- 7.3 Enjoy your dev life!
- 付録A 参考情報
- A.1 Ruby/mrubyの解説書籍
- A.2 参考URL
- A.3 Narya boardの技術資料
- 付録B 技術的補足
- B.1 ESP-IDFの補足情報
- B.2 FreeRTOSの補足情報
その他
今回で同人誌も3冊めとなりました。書くことは自分の勉強にもなるので、今後もやっていきたいなと思っています。
関連記事
直近の活動予定
直近の対外的な活動予定を記載しています。 今後のイベント 特になし (技術書、も ...
独習mrubyバイトコード[OP_LOADNIL]
OP_LOADNIL Arguments A:レジスタ番号 How it wor ...
独習mrubyバイトコード[OP_NOP]
OP_NOP Arguments なし How it works? 何もしないで ...
独習mrubyバイトコード[GETIV]
OP_GETIV Arguments A: レジスタ番号 Bx: シンボル番号 ...
mruby/cがサポートするmrubyバイトコード命令の範囲
mruby/cを理解するために、mrubyバイトコードを勉強している。 実装をコ ...
独習mrubyバイトコード[OP_LOADI]
OP_LOADI Arguments A:レジスタ番号 sBx:整数 How i ...
ディスカッション
コメント一覧
まだ、コメントがありません