mieki256's diary



2021/02/20() [n年前の日記]

#1 [hsp][raspberrypi] HSP3.6betaをraspberry Pi Zero W上でインストールしてみた

久々に Raspberry Pi Zero W の電源を入れたので、せっかくだから HSP をインストールして動作確認してみようかなと。HSP は Linux や Raspbeery Pi 上でも動くので…。

環境は以下。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster
$ uname -a
Linux raspi0w 5.10.11+ #1399 Thu Jan 28 12:02:28 GMT 2021 armv6l GNU/Linux
デスクトップの画面解像度は 1280x720。

HSPをインストール。 :

Linux/Raspberry Pi向けの HSP は、github上でソースが公開されている。

_onitama/OpenHSP: Hot Soup Processor

インストール方法も README.md に書いてある。Raspberry Pi系の場合は以下。
cd ~/
git clone https://github.com/onitama/OpenHSP
cd OpenHSP
./pisetup.sh
数十分ほどかかったけれど、すんなりビルドできた。HSP、凄いな…。こんなに簡単にビルドできるとは…。

注意点。
  • piユーザでログインしてることが前提。
  • ~/ 以下に OpenHSP フォルダを置くことが前提。

ビルドが終わると、Raspberry Pi OS のデスクトップ画面のメインメニュー → プログラミング に、HSP Script Editor という項目が増えるのだけど。この項目は /home/pi/OpenHSP/hsed が存在することを前提にしているので、そういうディレクトリ構成を前提にして作業したほうがいいのだろうなと。

ちなみに、この項目(HSP Script Editor)は、/usr/share/applications/hsed.desktop に従って表示されている。別の場所に OpenHSPフォルダを置いてしまった場合は…。
  • /usr/share/applications/hsed.desktop をエディタで開いて hsed の場所を変更すれば対応できる。
  • あるいは、メインメニューから辿って、該当項目を右クリックしてプロパティ(Properties)を表示すれば、コマンド(hsed)が置かれた場所を指定し直すことができる。

サンプルファイルを動かす。 :

OpenHSP/sample/ 以下にサンプルファイルが入っているので、hsed で開いてF5キーを押せば動かすことができる。

いくつか動かしてみたのだけど。かなり描画が速い気がする…。 _先日、Pygame の動作確認をしてみた わけだけど、それらと比べると圧倒的に速いのでは…。

おそらくだけど、HSPのソレが全画面表示されるあたり、HSP は Raspberry Pi のGPU(VC4)をちゃんと使ってる作りなのでは。それで描画が速いのかもしれない。

キーボードやマウスとの相性がありそう。 :

Raspberry Pi Zero W に普段接続しているワイヤレスキーボード、Logicool K400r では、Ctrl+C や ESCキーの入力が効かず、HSPの表示画面を終了させることができなくて。Windows機からSSHでログインして、killall hsp3dish を打って強制終了させるしかなかったのだけど。

ふと、別のキーボードを使ってみたらどうなるのか気になって試してみたら、なんだか悩ましい結果に…。

ちなみに、Raspberry Pi OS のデスクトップ画面を操作する分には、どの機器も問題無く使えてる。今のところは、HSPを動かした時だけ妙な動作になることを確認。

キーボード・マウス型番キー入力マウス操作
ワイヤレス(無線)キーボード Logicool K400r (タッチパッド付)No goodNo good
USB有線接続キーボード Lenovo KU-1255 (トラックポイント付)GoodGood
ワイヤレス(無線)キーボード BUFFALO BSKBW03WHGoodNone
ワイヤレスマウス Logicool VX NanoNoneNo good
ワイヤレスマウス ELECOM M-BL21DBSVNoneNo good
USB有線接続マウス ELECOM M-XGM10UBBKNoneNo good
  • キーボードは、Logicool K400r 以外なら、Ctrl+C や ESCキー入力を受け付けて、HSPの表示画面を終了させることができた。
  • マウスは、Lenovo KU-1255 以外は入力を受け付けない。(OpenHSP同梱の block3.hsp を動かせば、パッドがマウスの動きに反応するはずだけど、KU-1255以外は無反応だった。)

_スティック型PCと一緒に絶対買っておきたいタッチパッド付きのド定番キーボード『k400r』 - 週刊アスキー
_ASCII.jp:まさにThinkPadな純正USB/Bluetoothキーボードが登場!
_BSKBW03WH - バッファロー
_ロジクール、超小型レシーバの無線レーザーマウス「VX Nano」
_5ボタンワイヤレスBlueLEDマウス - M-BL21DBSV
_EX-G 有線BlueLEDマウス Mサイズ - M-XGM10UBBK

マウスは、どれを使っても軒並み全滅・利用できなかったのが痛い。無線か有線かで結果が違うのかと思ったけど、そういうわけでもないようで。どうして Lenovo のトラックポイントだけ反応するのだろう…。

もしかして、Rspbeery Pi 公式のキーボードやマウスを使えば、こういう問題は起きないのだろうか…?

注意点。 :

hsed + サンプルファイルを動かしていて、ちょっと気になるところが。

一つは、キー入力が hsed のソースにも打ち込まれてしまう点。例えばスペースキー入力を要求するサンプルを動かしたりすると、スペースキーを押した時に、hsed上のソースにもスペースが入力されて、ソースがぐちゃぐちゃになってしまう。

たしかこのあたりは、 _pi3d や love2d でも体験した記憶が…。キーボード入力が、端末に対しても行われてしまうので、 _shut-term-keys を利用してどうにか誤魔化そう、みたいな話があったような気がする。HSPでも利用できるかどうかは分からないけど…。

もう一つは、マウスカーソルが表示されない点。HSPでGUI部品を表示しても、マウスカーソルが表示されない=マウスカーソルの位置が分からないから操作できない。

これは、Raspberry Pi の GPU を活用してる場合、仕方ないのだろうなと…。GPU の出力画面は X11 とは別レイヤーで表示されるらしいので、X11 のマウスカーソルが見えなくなってしまうのだろうと…。HSPスクリプト側でも独自のマウスカーソルを表示してやる、みたいな対策をすればどうにかなるのだろうか。

2021/02/21追記。 :

キーボードやマウスの相性問題(?)について、もう少し検証してみた。 _2021/02/21の日記 にメモ。

#2 [raspberrypi] Ctrl+Alt+Tで期待している端末が起動してくれない問題

Raspberry Pi Zero W + Raspberry Pi OS buster で、いつの間にか、Ctrl + ALt + T を叩いても lxterminal が起動してくれない状態になった。解決しないと…。

Ctrl + Alt + T に何が割り当てられているのかは、 /etc/X11/openbox/lxde-pi-rc.xml を眺めたら分かりそう。
    <keybind key="C-A-T">
      <action name="Execute">
         <command>x-terminal-emulator</command>
      </action>
    </keybind>
x-teminal-emulator が割り当てられているらしい。

ググったら、以下の記事が参考になった。ありがたや。

_Debian/Ubuntuでデフォルトのターミナルエミュレータを変更する -- ぺけみさお

以下で、呼び出す端末を変更できるらしい。
update-alternatives --config x-terminal-emulator
$ sudo update-alternatives --config x-terminal-emulator
alternative x-terminal-emulator (/usr/bin/x-terminal-emulator を提供) には 5 個の選択肢があります。

  選択肢    パス               優先度  状態
------------------------------------------------------------
* 0            /usr/bin/lxterm       30        自動モード
  1            /usr/bin/koi8rxterm   20        手動モード
  2            /usr/bin/lxterm       30        手動モード
  3            /usr/bin/lxterminal   20        手動モード
  4            /usr/bin/uxterm       20        手動モード
  5            /usr/bin/xterm        20        手動モード

現在の選択 [*] を保持するには <Enter>、
さもなければ選択肢の番号のキーを押してください: 3

update-alternatives: /usr/bin/x-terminal-emulator (x-terminal-emulator) を
提供するためにマニュアルモードで /usr/bin/lxterminal を使います

3番を選んで、lxterminal が優先されるように設定した。

以上、1 日分です。

過去ログ表示

Prev - 2021/02 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project