ユーザ用ツール

サイト用ツール


ハイハイスクールアドベンチャー_raspberry_pico_lcd版

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ハイハイスクールアドベンチャー_raspberry_pico_lcd版 [2025/04/17 23:26] – [USBキーボード] arakiハイハイスクールアドベンチャー_raspberry_pico_lcd版 [2025/09/18 01:33] (現在) – [ハイハイスクールアドベンチャー Raspberry Pico + LCD版] araki
行 1: 行 1:
 ====== ハイハイスクールアドベンチャー Raspberry Pico + LCD版 ====== ====== ハイハイスクールアドベンチャー Raspberry Pico + LCD版 ======
 +===== あらすじ =====
 +
 +2019年((まさかこのゲームが2019年を超えて生き残っているとは思っていなかっただろう。))神奈山県立ハイ高等学校は 地盤が弱く校舎の老朽化も進んだため、 とうとう廃校にする以外方法がなく なってしまった。
 +
 +ところで大変な情報を手に入れた。 それは、
 +
 +「ハイ高校にATOMIC BOMBが仕掛けられている。」
 +
 +と、いうものだ。 どうやらハイ高が廃校になった時、 気が狂った理科の先生がATOMIC BOMBを 学校のどこかに仕掛けてしまったらしい。
 +
 +お願いだ。我が母校のコナゴナになった 姿を見たくはない。 早くATOMIC BOMBを取り除いてくれ……!!
 +
 +行動は英語で、“<動詞>” 或いは、“<動詞>”+“<目的語>“のように入れていただきたい。 例えば、”look room”と入れれば部屋の様子を見ることが出来るという訳だ。
 +
 +それでは Good Luck!!!…………
 ===== 概要 ===== ===== 概要 =====
  
行 10: 行 25:
  
 現状、[[https://www.waveshare.com/wiki/Pico-ResTouch-LCD-2.8|Pico-ResTouch-LCD-2.8]]に、OTGアダプタをかませたUSBキーボード((US配列))をサポートしています。 現状、[[https://www.waveshare.com/wiki/Pico-ResTouch-LCD-2.8|Pico-ResTouch-LCD-2.8]]に、OTGアダプタをかませたUSBキーボード((US配列))をサポートしています。
 +追記: [[https://www.waveshare.com/wiki/Pico-ResTouch-LCD-3.5|Pico-ResTouch-LCD-3.5]]もサポートしました。
 +また、BLEキーボードもPico 1W/Pico 2Wで利用できるようになっています。
  
 ===== あれこれ ===== ===== あれこれ =====
行 112: 行 129:
 SDカードのCSピンは SD.begin(22,SPI1)のように、SDインターフェイスの開始時に渡せばいいので、setCS()は呼ばないようにしてください。 SDカードのCSピンは SD.begin(22,SPI1)のように、SDインターフェイスの開始時に渡せばいいので、setCS()は呼ばないようにしてください。
  
 +=== SPI上でSDとLCDが競合している場合 ===
 +
 +Pico Res-Touch LCD 2.8(3.5も同様)はSDカードインターフェイスとLCDインターフェイスをSPI1上に置いているため、両社は競合しています。
 +
 +このため。
 +CSピンでバスの譲り合い((奪い合い?))をしながら動作することになります。
 +
 +そもそも LovyanGFX も SDカードインターフェイスも競合を想定しているので、CSピンを正しくアサインしてやればうまく動くのですが、リセット後に不安定化する場合がままあります。
 +
 +集合知に問うと、最初に両方のCSピンをOFFにしてやればいいという情報が出てきました。
 +
 +<code cpp>
 +  pinMode(9, OUTPUT);  // LCD CS
 +  pinMode(22, OUTPUT); // SD CS
 +  digitalWrite(9, HIGH); // OFF
 +  digitalWrite(22, HIGH); // OFF
 +</code>
 +
 +このコードを入れた後はとりあえずリセット後におかしな読込みとなることはなくなったように思います。
 +
 +==== Pico Res-Touch LCD 3.5 ====
 +
 +Pico Res-Touch LCD 2.8と同じピンアサインを持つSPI液晶 + SDカードモジュールなのですが、画面が3.5インチ 320x480と大型化した関係で、コントローラが ILI9488 に変更されています。
 +
 +これはPicoCalcのものと同じなので、ピンと解像度((PicoCalcは 320x320))だけ変更してやれば動くだろうと思ったら、まったく表示が来なくて、3時間ほど試行錯誤をすることに。
 +
 +結論から言うと、16bit カラーモードで初期化してやらないといけないのでした。
 +
 +<code cpp>
 +  auto cfg = _panel_instance.config();
 +  ...
 +  cfg.dlen_16bit = true;
 +</code>
 +
 +要はカラーモードがあってなかったので書き込んでも表示が来なかったというわけです。
 +((おそらくデフォルトでは24か32ビットカラーになっているんだと思います。))
 +
 +なお、書き込み40000000 読み出し 2000000で駆動させています。
 +これより速くすると動きが怪しい感じになったので多分やめた方がいいでしょう。
 +正直表示は速くはありません。
 +
 +画面サイズが320x480なので、ハイハイスクールアドベンチャーでは縦長で使うことにしました。
 ==== USBキーボード ==== ==== USBキーボード ====
  
行 250: 行 309:
 線がのたくりまわるのは好きではないので、最初にこっちを実装しようとしたのですが、サンプル見ても、Web界隈で調べても、例によってマイコンをBLEセントラルとして使っている事例は少ないんですよね。 線がのたくりまわるのは好きではないので、最初にこっちを実装しようとしたのですが、サンプル見ても、Web界隈で調べても、例によってマイコンをBLEセントラルとして使っている事例は少ないんですよね。
  
-実は未だ動いてないので、コードは同梱していませんが、とりあえず、色々実験はしているので、ここまでで得た知見を。+<del>実は未だ動いてないので、コードは同梱していませんが、とりあえず、色々実験はしているので、ここまでで得た知見を。</del> 
 +無事に動くに至りましたので、そこまでに得た知見をまとめておきます
  
 === ビルド === === ビルド ===
行 405: 行 465:
  
  
 +なお、このBLEキーボードのくだりについては再編集して[[bleキーボードをつなごう_btstack編]]にまとめました
  
  
  
ハイハイスクールアドベンチャー_raspberry_pico_lcd版.1744932408.txt.gz · 最終更新: by araki