projects-esp32-game.txt
概要
> oembed
<<
構成
> mermaid
graph LR
ESP32 --> buttons
ESP32 -- SPI--> TFT
ESP32 -- PS/2 --> keyboard
ESP32 --> Speaker
PC -- USB-Serial --> ESP32
<<
- TFT
-- full color
-- 128x128
- PS/2
-- 5Vが必要なのでUSBからバイパスさせている
> table
-,EN,<ESP-32>,23
B,SVP(36),,22
B,SVN(39),,TXD
B,34,,RXD
B,35,,21
PS/2, 32,,GND
PS/2, 33,,19,DC
-, 25,, 18,RST
SPK, 26,,5
-, 27,,17,B
SCK, 14,,16,B
-, 12,,4,select button
GND,,,2
SDA, 13,,2
-, -,,15,TFT CS
-, -,,-
-, -,,-
-, 5V,,CLK
<<
和音出力
以前のESP8266の記事を参考にして、和音を鳴らすことができた。DACなのでPWMに比べて音量が大きい(こういう理解でよいのか?)
PS/2の時もそうだったが割り込みが有効になっているとSPIFFSへのアクセスが失敗するように見える。
SPIFFSアクセス時はタイマーをDisableすることでとりあえず対応している。
3和音鳴らす処理と並行してLuaの処理を走らせているが特に問題なさそう。
タイマーとメイン処理が同時に動きうる?ようでセマフォやクリティカルセクションを意識する必要がある。
lua
- luaが動くようなのでやってみた。かなり高速に動くのでこれでゲームを書いてみる。
命令
tone(no, freq, vol)
spr(x,y,w,h,sx,sy,sw,sh)
pset(x,y)
color(r,g,b)
text(s,x,y)
drawrect(x,y,w,h)
fillrect(x,y,w,h)
fillcircle(x,y,r)
btn(n)
getip()
iswifidebug()
wifiserve()
run(file)
list()
reboot()
シミュレータ
ブラウザでluaが動くので、シミュレータが作れる。ブラウザで試しに作ってみて、よさそうなら実機に送るというワークフローができそう。
> oembed
<<
basic
豊四季Tiny BASICを動かしてみた。
> oembed
<<
次回に向けて
- 5V駆動になってしまった
-- PS/2は捨てて
-- 評価ボード使うのもやめて
-- 良いレギュレータを使うか、放電保護回路付きのボードを使う。
-- アンプも3.3Vで動くものにする
- SDカードがまだ試せていない
- メモリの広さがまだわからない