ユーザ用ツール

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ハイハイスクールアドベンチャー_raspberry_pico_lcd版 [2025/04/25 01:43] – [Pico Res-Touch LCD 3.5] arakiハイハイスクールアドベンチャー_raspberry_pico_lcd版 [2026/01/14 08:09] (現在) – [RP2350-Touch-LCD-2] 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で利用できるようになっています。
  
 ===== あれこれ ===== ===== あれこれ =====
行 114: 行 131:
 === SPI上でSDとLCDが競合している場合 === === SPI上でSDとLCDが競合している場合 ===
  
-Pico Res-Touch LCD 2.8(3.5も同様)はSDカードインターフェイスとLCDインターフェイスをSPI1上に置いているため、両社は競合してい+Pico Res-Touch LCD 2.8(3.5も同様)はSDカードインターフェイスとLCDインターフェイスをSPI1上に置いているため、両社は競合しています
  
 このため。 このため。
行 154: 行 171:
  
 画面サイズが320x480なので、ハイハイスクールアドベンチャーでは縦長で使うことにしました。 画面サイズが320x480なので、ハイハイスクールアドベンチャーでは縦長で使うことにしました。
 +
 +==== RP2350-Touch-LCD-2 ====
 +
 +2インチ (320x240)のタッチパネルとRP2350のボードが一体になったデバイス。
 +ST7789T3をコントローラに持つデバイスなので、ピン配置だけ合わせてやればLCD2.8とおおむね同じ感じで動く。
 +
 +但し、TFカードがSPI、液晶がSPI1と SPIの割り振りが違っているので、初期化部分で別コードとなっている。
 +
 +ワイヤレス機能はないので、キーボードはUSB一択。
 +プロセッサもRP2350なので、Pico2相当一択である。
 +
 +インターフェイスはUSB Type Cなので、Raspberry Pi Pico/2より扱いやすい。
 +
 ==== USBキーボード ==== ==== USBキーボード ====
  
行 285: 行 315:
 static uint8_t const keycode2ascii[128][2] = { HID_KEYCODE_TO_ASCII }; static uint8_t const keycode2ascii[128][2] = { HID_KEYCODE_TO_ASCII };
 </code> </code>
 +
 +なお、カーソルキーやスクロールキーは 0 を返すようになっているので、別途処理を追加してやる必要がある。
 +<code cpp>
 +switch (report->keycode[i]) 
 +{
 +    case 0x4f: ch = 0x1d; break; // Right Arrow
 +    case 0x50: ch = 0x1c; break; // Left Arrow
 +    case 0x51: ch = 0x1f; break; // Down Arrow
 +    case 0x52: ch = 0x1e; break; // Up Arrow
 +}
 +</code>
 +
 +
  
 ==== BLEキーボード ==== ==== BLEキーボード ====
行 292: 行 335:
 線がのたくりまわるのは好きではないので、最初にこっちを実装しようとしたのですが、サンプル見ても、Web界隈で調べても、例によってマイコンをBLEセントラルとして使っている事例は少ないんですよね。 線がのたくりまわるのは好きではないので、最初にこっちを実装しようとしたのですが、サンプル見ても、Web界隈で調べても、例によってマイコンをBLEセントラルとして使っている事例は少ないんですよね。
  
-実は未だ動いてないので、コードは同梱していませんが、とりあえず、色々実験はしているので、ここまでで得た知見を。+<del>実は未だ動いてないので、コードは同梱していませんが、とりあえず、色々実験はしているので、ここまでで得た知見を。</del> 
 +無事に動くに至りましたので、そこまでに得た知見をまとめておきます
  
 === ビルド === === ビルド ===
行 447: 行 491:
  
  
 +なお、このBLEキーボードのくだりについては再編集して[[bleキーボードをつなごう_btstack編]]にまとめました
  
  
  

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also, you acknowledge that you have read and understand our Privacy Policy. If you do not agree, please leave the website.

More information