2021年1月31日日曜日

Raspberry PiでScratch 3.0を使って音が出るか検証する

macOSが32bitアプリケーション非対応(10.15 Catalina以降)になってから、これまで愛用してきたMac版Scratch 1.4が動かなくなり、自宅でWindowsを使わない私にとっては、常用しているLinux MintWineを動かしてWin版Scratch 1.4を使うか、直接Linux版Scratch 1.4を使うかの2択を迫られています。
#悩んでいる理由は、過去記事を参照のこと。

年明けにRaspberry PiのScratch 1.4を使っていて、音が出ていないことに気づきました。常用しているLinux Mint 19.3 Mateで確認したところ、Linux版Scratch 1.4では問題なく音が出て、Wine上で動かしたWin版Scratch 1.4では、「ニャー」しか音が出ませんでした。
#Wine上の方は、MIDI音源の設定ができていないためと思われます。

結論から言うと、Raspberry Pi OS(Raspbian)が、最近ALSAの「PulseAudio」を使うようになり、これにScratch 1.4が対応していないために音が出ないのだそうです。
#例によって、abee2さんに教えていただきました。https://twitter.com/abee2/status/1335152928793841665 

ならばと思い、Scratch 3.0ではどんな環境で音が出るのかを検証してみることにしました。試したのは(1)AV JACKにつないだ有線スピーカー、(2)Bluetoothスピーカー、(3)USBオーディオ経由のヘッドホン、の3つです。Bluetoothを使うためにRaspberry Pi 3Bで検証することにしました。

(1)有線スピーカー(AV JACK接続)※ダイソーで300円で購入したもの
#参考「ダイソー300円USBミニスピーカーで遊ぶ
Chromiumブラウザー
・YouTube動画…○

TiMidity++
・MIDIファイル…○

Scratch 3.0(オフライン)
・ニャー…○
・ドラム音…○
・楽器音…○

Scratch 3.0(オンライン)※Chromiumブラウザー
・ニャー…○
・ドラム音…○
・楽器音…○

(2)Bluetoothスピーカー ※ダイソーで500円で購入したもの
#参考「SR9910型 - ダイソー500円Bluetoothスピーカーの調査と分解
Chromiumブラウザー
・YouTube動画…○

TiMidity++
・MIDIファイル…○

Scratch 3.0(オフライン)
・ニャー…○
・ドラム音…○
・楽器音…○

Scratch 3.0(オンライン)※Chromiumブラウザー
・ニャー…○
・ドラム音…○
・楽器音…○

(3)USBオーディオ(Headphone Set)※3D SOUND使用
#参考「USB 3D SOUND を集めてみました
Chromiumブラウザー
・YouTube動画…○

TiMidity++
・MIDIファイル…○

Scratch 3.0(オフライン)
・ニャー…○
・ドラム音…○
・楽器音…○

Scratch 3.0(オンライン)※Chromiumブラウザー
・ニャー…○
・ドラム音…○
・楽器音…○

どのパターンも無事に音が出ました。コンソールから「alsamixer」コマンドを使うと、「カード」と「チップ」の欄に「PulseAudio」と表示されます。Linux Mintでは、「カード」は「HDA Intel PCH」、「チップ」は「Realtek ALC887-VD」と表示されるので、このあたりがScratch 1.4で音が出るor出ないの差になっているのではないかと思います。

今後は、本格的にScratch 3.0へ移行することを考えようと思います。

2021年1月10日日曜日

100均のUSB充電の機器たちをUSB HUBで効率よく充電(給電)する実験

最近、乾電池ではなくバッテリーを内蔵するものが多くなり、さらにその多くがUSB経由で充電するようになっているように感じています。iPhoneとかiPadなどの携帯端末類は当たり前としても、マウスやキーボード、おもちゃ類(ラジコンヘリとかドローンとかゲームコントローラとか)、M5Stackなどのマイコンガジェット類もUSB充電になっています。そもそも、様々な機器がUSB給電になっていて、今使っているMacBook ProはUSB-Cでの給電だし、Raspberry PiニンテンドークラシックミニファミコンなどもmicroUSB(RPi 4はUSB-C)給電です。こうなってくると、あれもこれもUSBケーブルで繋がれていて、ケーブルの混雑がすごいことになっています。

この状況を少しでも改善しようと考えました。特に私がよく衝動買いしてしまう100均で取り扱われている製品の充電用USBケーブルをできるだけ効率よくまとめる方法がないか考えてみました。ケーブルの抜き差しはできるだけ避けたいし、ケーブルの本数も増やしたくない。何とかならないものかと考えて、スイッチ付きのUSBハブの活用を思いつきました。

ということで、今回購入したのは、Sabrentというメーカーの4ポート(USB 3.0対応)のHUB(HB-UM43)で、スマホやタブレットのバッテリーチャージには使えず、4ポート合計で5V900mAh以上で使ってはいけないことになっていました。逆に言えば、900mAを超えなければバッテリーチャージにも使えるということだと解釈し、試してみることにしました。試したものは以下のとおりです。

電流を測るためにUSB接続の簡易な電圧/電流計(CHARGER Doctor)を用いて測定しました。精度は悪いかもしれないのであくまで参考程度として。表示機(7segLED)の関係で、10mAよりも小さい電流は表示できなくなっています。(電圧計測範囲:3.5V〜7V、電流計測範囲:0A〜3A)USB電源はカシムラ製のAS-36(USBは2口で合計3.4A)を使いました。

実験検証のためにそれぞれの機器の電池をある程度消耗(リチウムイオン電池は完全放電するとバッテリーが痛むらしい)してから充電を始めてどのくらいの電流になるのか測ってみることにしました。

500円の音楽再生機能付きBluetoothスピーカーは、電池が少なくなってくると「No Battery. Please charge.」と言います。この状態で電源スイッチをOFFにして充電を開始しました。すると赤いLEDが点灯し、電流計には0.56Aと表示されました。1時間くらいで充電が完了し、赤いLEDが消えました。

600円の防滴機能付きBluetoothスピーカーは、電池が少なくなってくるとピポ音が鳴ります。この状態で電源スイッチをOFFにして充電を開始しました。すると赤いLEDが点灯し、電流計には0.27Aと表示されました。こちらは、20分程度で0.25Aと徐々に電流が小さくなっていく感じで、充電が終わると0.04A〜0(検出できない)Aになり、赤いLEDが消えました。

300円のBluetoothイヤホン・マイクは、電池が少なくなってくると「No Battery.」と言います。この状態から充電を開始すると、赤いLEDが点灯し、電流計には0.08Aと表示されました。15分程度で0.04Aになり、程なくして赤いLEDが消灯しました。

いずれの機器も900mA(0.9A)を超えることはありませんでした。充電を終えた後も問題なく動作しています。これらの機器は、充電時に必要な電流量が異なるようですが、可能な範囲で使用すれば問題なさそうです。試しに、500円スピーカーと600円スピーカーを同時に充電してみましたが、ときどき0.9Aと表示されるのですぐに止めました。単純にたし算をすればよいというものでもないようです。

今後は、他の機器でも給電できるか試してみようと思っています。なお、メーカー非推奨の使用方法ですので、もし真似をされる場合は自己責任でお願いします。