2023年5月28日日曜日

USB接続の3連フットスイッチを楽器のように使ってみる(Raspberry Pi上のScratchで)

これまでに、MacRaspberry Pi(以下「RPi」と略記)を含むコンピュータとArduinomicro:bitなどのマイコンボードをつないで、楽器のインターフェイスのように使うガジェット(例えば、ピストン楽器のような4 keyキーボードなど)を作ったり改造したり購入したりしてきました。今回は、AmazonPCsensorUSB Foot Switch Triple Pedal Controllerという3連フットスイッチを見つけたので、早速購入して楽器のインターフェイスのように使うことができないかやってみることにしました。

これは、USB接続の足踏み式3連マクロキースイッチで、デフォルトでは左から「a」「b」「c」が割り当てられいるようです。この割当を変更するソフト「Elfkey」(インストールすると日本語で使える)もあるので、マクロキースイッチとしても使うことができます。今回は、デフォルトのまま使うことにして、Scratchでプログラムを作って楽器を鳴らすような使い方ができるかやってみたいと思います。

まず、Scratchを使って、簡単な楽器演奏プログラム(abcでドラムセットを鳴らす)を作成してみました。これを、MacBook Proにつないでフットスイッチを踏んだところ、ドラムの音を鳴らすことができました。(連続して速く踏むと遅延が生じます)ここまでは当たり前の話。次に、RPiのような非力なシングルボードコンピュータに接続して、どのくらい演奏ができるか試してみようと考えました。

今回使用したのは、RPi 4(4GB RAM)とRPi 400(USキーボード版)で、どちらも64 bit版のRaspberry Pi OSで動かしています。結論から言うと、Webブラウザー(Chromium)上で動かすのはかなり難しいことがわかりました。そこで、プロジェクトをRPiにダウンロードしてRPi上のScratch 3(オフライン版)で動かしてみたところ、スムーズに動作することがわかりました。(連打はやはり厳しいですが)

このようなガジェットとプログラミング環境は、子どもたちの学校生活の中で活用したいと考えています。例えば、特別活動の行事(「たてわり班活動」「○○小祭り」「文化祭」など)では、今回の楽器のように演奏して観ている人を楽しませたり、直接利用者が操作して楽しんでもらったりするものを作成するだけでなく、USBバーコードリーダーと組み合わせてPOSレジのようなものを作ったり、カメラを利用して利用者への案内をやらせたりといった実用的な使い方も考えられます。平成20年(2008年)頃から、いろいろと機材を集めて当時の小学生たちとそんな活動をしていたことを振り返りながら、今1人1台のchromebookなどのGIGA端末があるのだからこれを活かさない手はないと、今の立場でできる提案とサポートをしているところです。

2023年5月20日土曜日

Bluetoothの調子が悪いので試してみたこと

このところ、Linux mintで動かしているPCたちでBluetoothの調子が悪いことに気づきました。メインで使っているPC(Linux Mint Cinnamon版を使用)にはPCI-e接続のBluetooth&無線LANカード(ZiyituodZYT-7265)を組み込んでいて、HTPC(Linux Mint Xfce版を使用)にはPLANEXのUSBドングル(BT-MicroEDR1X)を挿しています。主に、マウス、キーボード、スピーカーをBluetoothで運用しているのですが、突然マウスがつながりにくくなり、次いでキーボードもつながりにくいことに気づきました。電池(充電)の問題かと思って交換したり充電し直したりしてもダメ。ペアリングのやり直しをしても挙動がおかしい。マウスの故障を疑って、別のものを購入して試しましたが改善せず。メインで使っているPCにはTP-LinkのBluetooth 5.0対応USBドングル(UB500)を挿して問題を回避しましたが、HTPCは、USBドングルを別のものに挿し替えてもイマイチ安定しません。

このところBluetoothで運用するものが増えてきて、電波干渉の可能性もなくはないと思うのですが、それにしても突然調子が悪くなってしまったので、まずはHTPCの方で問題点の切り分けや対処方法を考えていくことにしました。

はじめに、PLANEXのBT-MicroEDR1Xがどのように認識されているかを確認しました。「システムレポート」を見ると「Cambridge Silicon Radio Bluetooth Dongle」として認識されていました。この状態でつないでみると、問題なくつながってしまいました。その後も切れることはありません。直前にLinuxカーネルなどのアップデートをしたので、問題が解決してしまったのかもしれないというオチか…と思いましたが動作確認を続行し、確実につながる方法を見つけたのでまとめておきます。

〈接続手順〉

  1. キーボード(AppleMagic Keyboardを使用)とマウス(サンワサプライ400-MA088を使用)の電源スイッチをOFFにしてBluetooth USBドングルを挿したHTPCを起動する。
  2. 「Bluetoothデバイス」を開いてからペアリング(デバイスリストからキーボード、マウスをそれぞれクリック)する。
  3. キーボードの電源スイッチをONにする。
  4. マウスの電源スイッチをONにしてペアリングボタンを押す。

キーボードとマウスの電源ONは、どちらが先でも構わないようです。キーボードとマウスの電源を入れて起動すると、自動で接続をしようとして失敗する(「接続…」「切断…」が繰り返し表示される)ので、とても煩わしいです。スリープからの復帰の際にも、一度キーボードとマウスの電源をOFFにして「Bluetoothデバイス」からペアリングする手順でないとつながらないようです。

今回、BT-MicroEDR1Xの他に、BT-MicroEDR2XUB400(TP-LinkのBluetooth 4.0対応)、UB500(TP-LinkのBluetooth 5.0対応)でもやってみましたが、BT-MicroEDR2XはBT-MicroEDR1Xと動作は同じで、UB400は接続できるものが増える(自宅にBluetooth 4.0以上対応のものが多いということ)以外はBT-MicroEDR1Xと同じ、UB500はキーボードとの接続はできましたがマウスの方は認識してくれませんでした。常用しているPCの方でBluetoothマウス(ELECOMEX-G)でスリープからの復帰ができるくらいなので、Linux Mint Cinnamon版の方がBluetoothの扱いが良いのかもしれません。HTPCの方は、UB500とEX-Gの組み合わせでもうまく認識できないため、XfceのBluetoothへの対応がイマイチなのかマザーボード(GIGABYTEGA-J1800N-D2H)との組み合わせ(相性)の問題かということも考えられます。

【追記】Linux系のOSでは、カーネルレベルでBluetooth 5.xへの対応がまだ完璧にはできていないようなので、そもそも5.0で試すこと自体が無謀なことのようです。(2023.12.16)

2023年5月7日日曜日

Linux MintでBlenderを使ってみる

かなり昔のことになってしまいましたが、Shadeシリーズなどの3Dレンダリングソフトを使って絵を描いていました。(中でもBryceは長年愛用していました)その流れで、LinuxではBlenderを使ってみようとインストールだけはしていたのですが、操作感が独特で日本語化も面倒だった記憶があります。そのままどんどん多忙化していったためもあって、全く使っていなかったのですが、たまたまYouTubeで「【超入門】今からはじめるblender3.0 ~導入から画像出力まで~」という動画を見つけて、これならできそうだと思いやってみることにしました。

インストールしてあったBlender 3.5の日本語化を済ませて作業を開始しました。先程のYouTube動画以外にも、様々な教材がネット上にありました。(例えば「Blender入門(3.0 / 3.1 / 3.2 / 3.3版)」や「Blender 3.3のこと」など)現時点で最新版のBlender 3.5については、オンラインマニュアルが用意されているので、これを見ながら使い方を学ぶことができます。

さしあたって、昔自分で作ったShadeやBryceのデータが残っていたので、これが使えるか試してみましたが、残念ながらBlenderからは開くことができませんでした。ShadeやBryceのソフトからなら汎用的なデータ形式に変換することができるのかもしれませんが、両方とも現在の環境で動かすことができるソフトがなく、自分で作ったデータだけが残っている状態なので使うのは断念しました。

次に、Blenderのレンダリングがどんな感じか調べるために、Free3DというサイトからBlender用の無料の3Dモデルをダウンロードしていくつか試してみました。簡単なものなら数分から10分弱くらいでレンダリングできたので、実用的には問題がないように思いました。(昔の環境だと、レンダリングにかなり時間がかかっていたので、随分短くなったように思います)

現在メインで使っているLinux Mintマシーンは、グラボを載せるPCI-e x16スロットのすぐ隣りにPCI-e x1のスロットがあって、事情によりこちらにUSBの拡張ボードを載せているため1スロットサイズのグラボしか載せられない状態になっています。ここに、GeForce GT 1030載せて使っている(一時は、GeForce GTX 1650載せてみたのですが、USB拡張ボードを載せるために元に戻しました)のですが、これがBlenderのレンダリングの足を引っ張っているのかいないのか、検証が必要だと思いました。