ユーザ用ツール

サイト用ツール


pocketterm35

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
pocketterm35 [2026/07/02 06:19] – [キーマップ変更] arakipocketterm35 [2026/07/10 05:19] (現在) – [キーマップ変更] araki
行 68: 行 68:
   * ガンガンゲームを楽しみたい人   * ガンガンゲームを楽しみたい人
   * ARM64とx64の違いがイマイチ判ってない人   * ARM64とx64の違いがイマイチ判ってない人
 +  * DTBOがなんなのかわかってない人
  
 画面サイズ640x480しかないので、汎用的なポータブルデバイスを欲しい人には向いていない 画面サイズ640x480しかないので、汎用的なポータブルデバイスを欲しい人には向いていない
行 154: 行 155:
  
 waveshare-35dpi-[345]b.dtbo は /boot/firmware/current/overlay の下においてやればいい waveshare-35dpi-[345]b.dtbo は /boot/firmware/current/overlay の下においてやればいい
 +
 +**カーネルなどの更新を行った場合、新しく /boot/firmware/new/overlayが作られ、その下には waveshare-35dpi-[345]b.dtbo はないので、改めてこれらのファイルをコピーする必要がある**
 +
 +リブートする前なら /boot/firmware/new/overlay の下に、リブート後なら /boot/firmware/current/overlayの下にそれぞれコピーする((いずれも Ubuntu26.04LTSの場合))
  
 <file ini config.txt> <file ini config.txt>
行 761: 行 766:
 原因をまじめに突き止めてもよかったのだが、codexを起動して「steamの設定を日本語にしたが、フォントがないのか□が表示されてしまう」とプロンプトしたらあっという間に設定をなおしてくれたので、どうやったのかはあまりちゃんと把握していないが、とにかく日本語が表示されるようになった 原因をまじめに突き止めてもよかったのだが、codexを起動して「steamの設定を日本語にしたが、フォントがないのか□が表示されてしまう」とプロンプトしたらあっという間に設定をなおしてくれたので、どうやったのかはあまりちゃんと把握していないが、とにかく日本語が表示されるようになった
  
-なので、同じトラブルに見舞われた人がいたら、codexに相談することをお勧めする+なので、同じトラブルに見舞われた人がいたら、codex((claude(Opus4.8)は解決できなかったのでcodex一択である))に相談することをお勧めする
  
-{{ ::pocketterm35:xegraderplus.png?400|}}+{{ ::pocketterm35:xegraderplus_prod.png?400|}}
  
-なお、テストプレイのために XeGrader plus (体験版)を導入して遊んでみた+なお、テストプレイのために XeGrader plusを導入して遊んでみた
  
 カーソルキーとスペースキーで操作できるので、この端末で遊ぶのにはもってこいだ カーソルキーとスペースキーで操作できるので、この端末で遊ぶのにはもってこいだ
行 848: 行 853:
 ジョイパッドとして認識されているわけでもないため、ゲームやPCエミュレータからジョイパッドとしても使えなければ、ゲームで一般的に使われる英字キーでもないので、まったく利用価値がない ジョイパッドとして認識されているわけでもないため、ゲームやPCエミュレータからジョイパッドとしても使えなければ、ゲームで一般的に使われる英字キーでもないので、まったく利用価値がない
  
-これはジョイパッドとして認識されるようにするか、最低でも、単純な英字キーとは別のものに割り当てるべきだろう+<del>これはジョイパッドとして認識されるようにするか、最低でも、単純な英字キーとは別のものに割り当てるべきだろう 
 + 
 +これらの制御は RP2040で行われているようなので、ファームウェアを書き換えることで改善できると思われるので、今後の研究対象のひとつだと思っている</del> 
 + 
 +キーコードの割り当ては、RP2040側にインストールされている CircuitPythonにて行われている 
 + 
 +背面のRP2040リセットのボタンをいい感じに連打していると、CIRCUITPYというUSBメモリデバイスが現れることがある((標準のboot.pyによって、CIRCUITPYが出ないようにされているので、いい感じでRESETを連打することで、boot.pyの実行がキャンセルされることがあるので、そのタイミングでCIRCUITPYが現れる。本当にいい感じで連打してとしかいいようがない))ので、それが出てきたら、中の boot.pyや code.pyを変更したり、追加のライブラリを libフォルダーに入れたりしてカスタムすることができる 
  
-これらの制御は RP2040で行われているようなので、ファームウェアを書き換えることで改善できると思われるので、今後の研究対象のひとつだと思っている 
  
 ==== 電池容量のOS側からの検出 ==== ==== 電池容量のOS側からの検出 ====
行 917: 行 928:
 つまりは、できること・できないことは Adafruit CircuitPython次第ということだ つまりは、できること・できないことは Adafruit CircuitPython次第ということだ
  
-まず、作業を始める前に、スクリーンロックをOFFにするかUSBキーボードを用意する+なお、この部分は大変に長くなるので[[PocketTerm35のキーマップを変更する]]にまとめる 
 + 
 +<del>まず、作業を始める前に、スクリーンロックをOFFにするかUSBキーボードを用意する
  
 スクリーンロックがかかると、CIRCUITPYドライブはアンマウントされてしまうので、万一不具合がある状態だとキー入力ができず、スクリーンロックを解除できず、結果CIRCUITPYを修正できなくなってしまう スクリーンロックがかかると、CIRCUITPYドライブはアンマウントされてしまうので、万一不具合がある状態だとキー入力ができず、スクリーンロックを解除できず、結果CIRCUITPYを修正できなくなってしまう
行 1136: 行 1149:
     CUSTOM_KEYS["GAMEPAD_UP"              : (gamepad_press_up, gamepad_release_up),     CUSTOM_KEYS["GAMEPAD_UP"              : (gamepad_press_up, gamepad_release_up),
     CUSTOM_KEYS["GAMEPAD_DOWN"            : (gamepad_press_down, gamepad_release_down),     CUSTOM_KEYS["GAMEPAD_DOWN"            : (gamepad_press_down, gamepad_release_down),
-    CUSTOM_KEYS["GAMEPAD_LEFT"            : (gamepad_press_left, gamepad_release_down),+    CUSTOM_KEYS["GAMEPAD_LEFT"            : (gamepad_press_left, gamepad_release_left),
     CUSTOM_KEYS["GAMEPAD_RIGHT"           : (gamepad_press_right, gamepad_release_right),     CUSTOM_KEYS["GAMEPAD_RIGHT"           : (gamepad_press_right, gamepad_release_right),
 } }
行 1190: 行 1203:
 </code> </code>
  
 +あとは、キーを押したり離したりの処理を書けば完成である
 +
 +カーソルキーはゲームパッドでもあり、キーボード上のカーソルキーでもあるので、押すと両方に対してコードを送信している
 +
 +もしこれで何か問題が起きるようであれば、キーマップの方を Keycode.UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROWに戻してしまえばとりあえず不具合は出ないと思われる
 +
 +<code python>
 +def gamepad_press_thumb():
 +    # A button
 +    gp.press_buttons(2)
 +
 +def gamepad_release_thumb():
 +    gp.release_buttons(2)
 +
 +def gamepad_press_thumb2():
 +    # B button
 +    gp.press_buttons(3)
 +
 +def gamepad_release_thumb2():
 +    gp.release_buttons(3)
 +
 +def gamepad_press_trigger():
 +    # X button
 +    gp.press_buttons(1)
 +
 +def gamepad_release_trigger():
 +    gp.release_buttons(1)
 +
 +def gamepad_press_top():
 +    # Y button
 +    gp.press_buttons(4)
 +
 +def gamepad_release_top():
 +    gp.release_buttons(4)
 +
 +def gamepad_press_top2():
 +    # L button
 +    gp.press_buttons(5)
 +
 +def gamepad_release_top2():
 +    gp.release_buttons(5)
 +
 +def gamepad_press_pinkie():
 +    # R button
 +    gp.press_buttons(6)
 +
 +def gamepad_release_pinkie():
 +    gp.release_buttons(6)
 +
 +def gamepad_btn_base3():
 +    # Select button
 +    gp.click_buttons(9)
 +
 +def gamepad_btn_base4():
 +    # Start button
 +    gp.click_buttons(10)
 +
 +def gamepad_press_up():
 +    # Send both Gamepad / Keyboard
 +    gp.move_joysticks(x=0, y=-127)
 +    kbd.press(Keycode.UP_ARROW)
 +
 +def gamepad_release_up():
 +    gp.move_joysticks(x=0,y=0)
 +    kbd.release(Keycode.UP_ARROW)
 +
 +def gamepad_press_down():
 +    # Send both Gamepad / Keyboard
 +    gp.move_joysticks(x=0, y=127)
 +    kbd.press(Keycode.DOWN_ARROW)
 +
 +def gamepad_release_down():
 +    gp.move_joysticks(x=0,y=0)
 +    kbd.release(Keycode.DOWN_ARROW)
 +
 +def gamepad_press_left():
 +    # Send both Gamepad / Keyboard
 +    gp.move_joysticks(x=-127, y=0)
 +    kbd.press(Keycode.LEFT_ARROW)
 +
 +def gamepad_release_left():
 +    gp.move_joysticks(x=0,y=0)
 +    kbd.release(Keycode.LEFT_ARROW)
 +
 +def gamepad_press_right():
 +    # Send both Gamepad / Keyboard
 +    gp.move_joysticks(x=127, y=0)
 +    kbd.press(Keycode.RIGHT_ARROW)
 +
 +def gamepad_release_right():
 +    gp.move_joysticks(x=0,y=0)
 +    kbd.release(Keycode.RIGHT_ARROW)
 +</code>
 +</del>
 <del>boot.pyをいじれば、ゲームパッドなどもついかできそうだが、boot.pyを壊してしまったら CIRCUITPYドライブは現れない <del>boot.pyをいじれば、ゲームパッドなどもついかできそうだが、boot.pyを壊してしまったら CIRCUITPYドライブは現れない
  
pocketterm35.1782973145.txt.gz · 最終更新: by araki