2024年3月23日土曜日

Raspberry Pi 4でOS(Debian)が起動しなくなる(ログインできない)現象を解決しました

以前Raspberry Pi 4のアップデートをしていて気づいたことなのですが、microSDカードに入れたOS(Debian)が起動しなくなる現象が発生してしまい、どうしたものかと悩まされました。症状としては、MacBook ProでmicroSDカードにOSをインストール(Raspberry Pi Imagerを使用)したものをRPi 4に入れて起動すると、しばらくは使えるのですが、追加ソフトをインストールしたりアップデートしたりしているうちに起動しなくなるという現象です。否、起動はするけれどログインができなくなるというのが正しいです。これではまともに使えません。

検証のためにOSを再インストールするところからやってみることにしました。使ったのは、Gigastoneの16GB microSDカードです。新しいRaspberry Pi Imagerは、インストール時にユーザ名&パスワードやWi-Fiなどの設定ができるのでとても便利になりました。できあがったmicroSDカードをRPi 4に挿して起動すると、普通に起動してくれます。

この後しばらく待つと、タスクバーの右側にアップデートのインストールを促すアイコンが表示されるので、アップデートをインストールしてreboot。いつもの手順で「Recommended Software」からScratchなどのソフトウエアをインストールしてreboot。ターミナルから「sudo apt install fcitx-mozc」で日本語入力ができるようにしてreboot。と、この辺りまでは順調に起動するのですが、「Add / Remove Software」からArduinoLMMSをインストールすると、rebootした後にログイン画面が表示されるようになり、正しいパスワードを打ち込んでも先に進めなくなってしまうのです。この状態でShutdownを選んでも、再び起動するとまた同じ状態になります。つまり手詰まり状態というわけです。

これは、microSDカードの問題なのではないかと考えて、在庫していたTOSHIBAの16GB microSDカードにOSをインストールして同じ手順でやってみましたが結果は同じでした。

もう一台のRPi 4とRPi 400には32GBのmicroSDカードを使っているので、16GBでは容量不足ということが考えられます。そこで、これも在庫していたVerbatimの32GBのmicroSDカードにOSをインストールして使ってみることにしました。16GBのmicroSDカードでインストールした手順と同じ手順で作業を行い、再起動すると無事に使える状態で起動してくれました。さらに、LibreOfficeGIMP、ゲームなどを入れても問題なく起動するようになりました。つまり、単に容量不足だったという面白くない落ちだったようです。

ちなみに、RPiのフォーラムに「GUIログインができなくなった。(←Google先生に日本語訳してもらった)」という書き込みを見つけて、この解決方法も参考にしようと思っていましたが、容量の大きなmicroSDカードを使って解決してしまったのでこの方法は試していません。もし、容量の大きなmicroSDカードを使っても解決しないときには、試してみる価値はありそうです。

〈おまけ〉
アップデートの際に参照するサーバは、デフォルトの設定でも自動的に近くのミラーサーバを選んでいるようですが、明示的に近いところを指定したければ、リポジトリの設定を変更して日本のサーバを直接参照するようにもできます。効率よくアップデート作業をしたいときは、こうした細かな設定の変更がストレスを低減してくれると思います。
MiniPC.JUST4FUN.BIZさんの「Raspbianを日本のリポジトリサーバに変更する・buster」が参考になりました。

2024年3月16日土曜日

100均の材料でスピーカーのエンクロージャーを自作してみた

これまでPAM8403Datasheet)を載せたアンプモジュールを利用して、スピーカーを鳴らしてみる実験をしてきましたが、スピーカーむき出しの状態で実験を続けていたので、そろそろスピーカーのエンクロージャーを作ってみたくなりました。汎用のエンクロージャー自作キットも販売されていますが、できるだけお金をかけずにそれらしいものを作ってみようと思います。

YouTubeなどでもエンクロージャーを作っている様々な動画がアップされていますが、近所のDAISOでスピーカーのエンクロージャーに加工しやすそうな木製の箱をいくつか買ってきました。DAISOに限らず、100円ショップには何に使えるか不明なものの何かに使えそうな木箱類が数種類置いてあります。見た目はそっくりでも、寸法が微妙に違ったり使われている部材の厚みが違ったりして完成イメージに合ったものを探すのに苦労しましたが、ステレオスピーカーにしたいのでできるだけ寸法や材料が同じものを2つ1組になるように購入しました。

これらを自宅に在庫していたものと組み合わせて使うことにして、寸法を計って加工していきます。切り口をできるだけきれいにするために、マスキングテープでコーティングして、スピーカーを入れる円をホールソーで切り抜きました。切った後は、サンドペーパー(紙やすり)できれいに処理をしておきます。円をスピーカーのサイズに合わせるために、ルーターにヤスリをつけて目的のサイズまで削ります。スピーカーがぴったり収まる大きさに調整できたら、スピーカーを取り付ける前にニスを塗っておきます。

ニスが乾いたら最終的な組み立てをして完成させます。何となくそれっぽいものができたのではないかと自己満足しています。一応、中にフェルトを貼ってみましたが、これもDAISOで購入したものを使いました。完成したものは以下のようなものです。


スピーカーむき出しよりは、見た目は少し良くなりました。音質が良いのかどうかはわかりませんが、格安なスピーカーを自分好みのエンクロージャーに収めるというのも面白いのではないかと思いました。

新たな問題として、スピーカーむき出しで使っていたときには問題がなかったのに、自作エンクロージャーに収めたらノイズが乗るようになってしまいました。アンプの電源を入れると鳴り始めるので、配線のどこかでノイズを拾ってしまっている可能性があります。このノイズ対策として、フェライトコア(←北川工業さんの解説がわかりやすかったです)で配線をはさむことにしました。すると、ほぼ気にならない程度までノイズを抑えることができました。(変わり方に驚きました)

今回は、壊れても良いつもりでチープなスピーカーと安価なD級アンプを使いましたが、他のスピーカーでもエンクロージャーを作ってみたくなりましたし、他のアンプICを使ったアンプモジュールを試してみたくもなりました。やりたいことはどんどん増えていくのですが、なかなか時間が取れないのが難点です。(いつものパターン)

2024年3月10日日曜日

歴代Raspberry PiのOS(Raspbian)のアップデート作業

自宅には、歴代のRaspberry Pi(RPi)たちがあるのですが、仕事の忙しさにかまけて放置状態になっていました。しばらくぶりに初代のRPi起動してみて、aptコマンドでアップデート作業を試みたのですが、うまくできずすぐに終了してしまいました。エラーの内容を見てみると、aptのリスト自体がなくなっているようなメッセージになっていました。これは、OSのサポートが切れているのではないかと考えて、自宅にある歴代RPiにインストールされているOSを確認することにしました。

Raspberry Pi OS(Raspbian)の世代を確認するためには、LXTerminalを起動して「lsb_release」コマンドを使います。
FebShopさんの「ラズベリーパイ用OS Raspbianのバージョンの調べ方と歴代バージョンについて」を参考にしました。
#歴代Raspbianについては、ものものテックさんの「ラズパイに過去リリースされたRaspberry Pi OSをインストール」からたどることができます。

$ lsb_release -a

自宅にある歴代のRPiにインストールされていたOSは、以下の通りでした。
#エンクロージャーなどに収めてしまったRPiのモデルを確認するには、「$ cat /proc/cpuinfo | grep Model」を使えば確認することができます。

  • RPi  …Raspbian GNU/Linux 9.13(stretch)
  • RPi + …Raspbian GNU/Linux 10(buster)
    ※小型タッチパネルモニタ一体型にしたものと併せて2台
  • RPi 2 …Debian GNU/Linux 11(bullseye)
  • RPi 3 …Raspbian GNU/Linux 10(buster)
    ※2台
  • RPi 4 …Debian GNU/Linux 11(bullseye:64bit)
    →2台のRPi 4の内、1台で使っていたmicroSDカードがダメな感じだったので、別のmicroSDカードを用意して最新のDebian GNU/Linux 12(bookworm:64bit)を入れ直しました。
  • RPi 400…Debian GNU/Linux 11(bullseye:64bit)
  • RPi Zero W…Raspbian GNU/Linux 10(buster)

ここから、各種RPiのアップデート作業を開始します。LXTerminalでの作業が続くのと待ち時間が長いのが難点ですが、以下のようなコマンドで順番に作業をしていきました。
ラズバイの実さんの「【ラズパイ初心者おすすめ】RaspberryPiを、最新の状態にアップデートする方法」が参考になりました。

$ sudo apt update && sudo apt -y upgrade

$ reboot

$ sudo apt autoremove -y && sudo apt autoclean

$ sudo apt dist-upgrade -y

$ reboot

$ sudo rpi-update ※このコマンドは、頻繁に使うものではないようです。

$ reboot

$ sudo apt autoremove -y && sudo apt autoclean

初代RPiは、OS(stretch)用のリポジトリのリストがないということで、アップデートには失敗してしまいましたが、その他は、無事にアップデートを完了しました。どうやら、現在のサポート対象世代は「buster」以降で、「stretch」以前のOSでは、アップデートが上手く行かないようです。初代RPiは、古いOSでの動作確認に使うことにして、しばらくこのまま使っていこうと思います。

2024年3月2日土曜日

SWING(MIDI&CV/Gateキーボード)でvolca modularを鳴らしてみる

以前の続きです。KORGのvolcaシリーズをBehringerSWINGというキーボードで鳴らしてみます。前回は、MIDIを使ってvolca fm2を鳴らしてみましたが、今回は、CV/Gateを使ってvolca modularを鳴らしてみます。

余談ではありますが、自宅にはいくつかの電子ピアノを含むキーボードやシンセサイザーがありますが、電子ピアノ以外で鍵盤の下が空いていないものは、ENSONIQ(←Wikipediaの記事)のTS-12(←英語です)くらいなもので、他のものは鍵盤の下が空いているものばかりを使ってきました。慣れてしまえばどうということはないのですが、個人的にはどうしても鍵盤自体の軽さが気になり、強く弾くと壊れてしまうのではないかと思ってしまいます。(鍵盤楽器はピアノから始めたので…)今回購入したSWINGは、ミニ鍵盤ながら下が空いていない作りになっていて、安心感があります。

というわけで、SWINGでvolca modularを鳴らすために、CV/Gateをケーブルでつないでいきます。これも以前にKORGのSQ-1(ステップシーケンサー)でvolca modularを鳴らしたときのことを思い出しながらつなぎました。備忘のためにつなぎ方を書いておきます。

SWING volca modular
Gate…○(◎のL側へつなぐ)□ ◎ CV-IN…ステレオミニプラグ(TRS)
KB CV…○(◎のR側へつなぐ)□
volca modularの方は、「SOURCE」の(1)pitchをCV-INのCV側(下側)に、「FUNCTIONS」の(1)gateをCV-INのGate側(上側)につなぎました。

はじめにvolca modular側でキャリブレーションの設定を行います。それぞれのケーブル配線を済ませてからSWINGの電源を入れておきます。volca modularの方は、「volca modular/CV入力のキャリブレーション方法」を参考にしながら設定作業を進めます。

  1. volca modularの「PLAY」ボタンと「REC」ボタンを押しながら電源を入れる
  2. C4の「ステップ[4]」ボタンが点灯する
  3. SWINGのC4の鍵盤を押しながら、volca modularの「MEMORY」ボタンを押す
  4. C5の「ステップ[16]」ボタンが点灯する
  5. SWINGのC5の鍵盤を押しながら、volca modularの「MEMORY」ボタンを押す
  6. すべてのステップ・ボタンが点灯し、「REC」ボタンが点滅する
  7. 「REC」ボタンを押して設定を保存する
※操作の途中で「PLAY」ボタンを押すと、設定を保存せずに起動します。

この状態で、無事にSWINGからvolca modularをコントロールすることができるようになりました。最終目標は、キーボード(SWING)→Mac→SQ-1→volca modularで音を鳴らすことですが、この構成でも簡単な演奏ができることがわかりました。

2024年2月21日水曜日

ボリューム付きアンプモジュール(PAM8403使用)でいろいろなスピーカーを鳴らしてみる

以前学研大人の科学まるごと手作りスピーカーの本」で作った自作スピーカーをPAM8403(Datasheet)というアンプモジュールで音を鳴らす実験をしました。このアンプモジュールには、ボリュームが付いていなかったので、音源側でボリューム調整をしなければなりません。ボリューム調整機能がない音源を使う場合は、予め音声信号出力の程度を測っておくか、つないだ上で覚悟を決めて音を出してみるかしかありません。(笑)

そこで、同じくAmazonで見つけた、ボリューム付きのPAM8403モジュール(GF1002)を使って自宅にあるいろいろなスピーカーを鳴らしてみることにしました。
#同じようなことをしている記事を見つけました。「PAM8403 GF1002 ミニアンプ

GF1002への配線は、音声信号にTRSケーブル、電源にUSB(5V)ケーブル、スピーカーは前回同様2ピンコネクタ(メス)ケーブルをそれぞれつなぎました。音の信号入力側の配線は前回と同様ですが、念のために以下にメモを残しておきます。

  • 赤…L側(Tip)
  • 緑…R側(Ring)
  • 銅…GND(Sleeve)

これを、適当な筐体に組み込んでみました。(完成品というより、とりあえず持ち運べる程度に収めたというだけです)

これを使って自作スピーカーから音を出してみると、問題なく音が出ました。このモジュールに使われているボリュームは、電源スイッチ付きなので、ボリュームを絞って更に回すと「カチッ」と音がして電源をOFFにすることができます。配線をつなぎっぱなしで電源をOFFにしておいて、必要なときだけ電源を入れて音を流すことができます。

これを使って自宅にあったいろいろなスピーカーを鳴らしてみます。ほとんどのものがDAISOなどで売られていたガジェットから取り出したもので、使っているうちに壊れたとか、試しに買ってみたものの使わなくて分解したとか、様々な理由で取り出したものばかりです。(元が何だったかはっきりとは覚えていません…)一応写真だけ載せておきます。



というわけで、全部音が出ました。これらをスピーカーとして使うには、むき出しのままというのもどうかと思いますので、適当にエンクロージャーを作って入れてみたいと考えています。しかも、100円ショップなどで入手できる安価なもので作れたら面白なぁと。続きはそのうち。

2024年2月16日金曜日

LEGOブロックなどでステアリングを作る

ロボットカーづくりの続きです。今回は、Geekservoの「Grey GeekServo 2KG Servo」を使います。

これまでのロボットカーは、いずれも2つの駆動輪を別々にコントロールするように設計していて、片方だけを前進させると反対側に回転する(ex.右車輪を前進させるとロボットカーは左回りに回転する)ようになっていました。ロボットカーづくりでは、この方法が最も簡単に設計できるため、今後もこの方法を採用することが多くなると思いますが、この方法だと駆動輪を車体の前方に配置した場合は、後方には車体を安定させるためのボールキャスターなどを設置しなければなりません。また、動かしたときも車体の長さが長くなるほど、後方が大きく振り回されるような感じになります。(駆動輪を後方にした場合は、前方が振り回される)これでは、自動車のようなスムーズな動きを再現するのは難しいことになります。

そこで、LEGOブロックなどを活用してステアリングのような仕組みを作り、サーボモータで動かして本物の自動車の動きに近づけることができないかと考えて、試しにやってみることにしました。

ステアリングの仕組みはラジコンカーのステアリングを参考にしました。実際に、ステアリングだけを購入してその動きを調べてみて、LEGOブロックなどでも再現できそうなことがわかりました。使えそうな部品は、主に「LEGO Crazy Action Contraptions」からピックアップしました。作業をしている中で、穴の空いたブロックに挿す(つなぐ)ピンのような部品には、いろいろな役割をもっているものがあることを知って「よく考えられているなぁ」と感心しました。GeekservoのGrey GeekServo 2KG ServoもLEGOにジャストフィットなのでまたまた感心しながら作業を進めました。



LEGOで組み立てたステアリングを使って、後輪駆動・前輪ステアリングのロボットカーのようなものを作ってみました。これが期待通りに動くのか試していませんが、以前と同様にワークショップモジュールmicro:bitと電池ボックス+micro:bitの組み合わせで、ラジコンカーにして動かしてみたいと思います。

2024年2月9日金曜日

アンプモジュール(PAM8403使用)で自作スピーカーを鳴らしてみる

以前からAmazonで見つけたPAM8403(←Datasheet)というデジタルパワーアンプICを載せたモジュールを使って実験的な取り組みを行ってきましたが、今回はシンプルに、手元にあった自作スピーカーを鳴らしてみます。
#この自作スピーカーは、かなり以前に学研大人の科学シリーズで「まるごと手作りスピーカーの本」を2冊購入して作ったものです。

単純にアンプモジュールに電源をつなぎ、入力信号を左右に振り分けてスピーカーから出力するだけなのですが、スピーカーとアンプモジュールとを着脱可能なものにして、いろいろな実験に使えるようにしようと考えました。電源は、USBから5Vを供給し、スピーカー側には、2ピンコネクタ(JST SM・メス)ケーブルを取り付けて、自作スピーカーには2ピンコネクタ(JST SM・オス)ケーブルをはんだ付けしておきます。信号入力は、TRSのミニプラグがついたケーブルがあったのでこれを使用することにしました。ケーブルの中には3本の導線があり、それぞれ以下のようにミニプラグにつながっていました。

  • 赤…L側(Tip)
  • 緑…R側(Ring)
  • 銅…GND(Sleeve)

これに従ってケーブルをアンプモジュールにはんだ付けして、モジュール側は完成しました。後は適当な音源からTRSケーブルを通して音の信号を入力し、スピーカーから音が出るか確認してみます。USB電源をつないだだけでもスピーカーからノイズが出たので回路的には不良などがないことがわかりました。更にスピーカーをつなぐと(片方から音が出なくてはんだ付けをやり直しましたが)無事に左右のスピーカーから音が出ました。

TRSケーブル側の導線が細いので、ホットボンドで固定してから、プラスチックのケースに収めていつでも使えるようにしました。音としてはそれほど良い音とは言えませんし、ある程度聴ける音にするためには自作スピーカーを含めて手を加えないといけない感じですが、音声信号回路が電気的につながっているかを確認する程度なら使えるものが出来上がりました。ボリュームが付いていないので、音源側で音量調節をしなければなりませんが、ボリューム付きのモジュールもあるので、そちらも完成させてみたいと思います。