2024年10月20日日曜日

スピーカー実験用の取外し可能なエンクロージャーを用意する〜ジャンク品で2 Wayスピーカー用を作る

前回の続きです。スピーカーの実験用として、様々なスピーカーユニットを付け替えて使えるようなエンクロージャーを作ろうと思いたち、サブウーファー用のエンクロージャーを作ったところまでが前回の話でした。今回は、2 Wayスピーカー用のエンクロージャーを作ってみたいと思います。既に2 Wayスピーカー用のエンクロージャーは自作したことがありましたが、今回は、スピーカーユニットを取り外せるようにした使いまわし可能なエンクロージャー作りに挑戦してみます。

以前の記事で紹介したウーファー用スピーカーユニットを買ったときに、同じHARD OFFVictorUX-Q1-Sに付属していたはずのスピーカーのみ(SP-UXQ1-S)がジャンク扱いで550円(税込)で店頭にあるのを見つけたので、これも合わせて購入していました。これに、Amazonで見つけたツイーター(uxcell取扱商品でインピーダンスが4Ωで出力350W程度(同じようなものがあちこちに出品されている)で詳細不明=購入時は2個セットで990円税込だった)と以前にサブウーファーとして使ってみたこともある秋月電子通商で購入した「DXYD104W-60P-8A-F」という8Ωのスピーカーユニット(1個490円税込)を入れてみることにします。
#このVictorのスピーカーは、もともと最大入力20Wでインピーダンスが4Ωの2 Wayスピーカーだったようです。

まず、SP-UXQ1-Sの前面についているサランネットを取り外し、サランネットの固定とスピーカーの保護を兼ねて付けられていたプラスチックの枠を取り外して、ネジ止めされていたスピーカーユニットを外しました。片方のスピーカーユニットのコーン(素材はプラスチックに近い感じ)がバキバキに割れていて、使い物にならなそうだったので修理を諦めて処分しました。使えそうなスピーカーユニットの方はストックしておくことにして、筐体だけの状態にしました。

筐体の素材は15mm厚程度の合板で、シルバーで塗装(?)されています。プラスチックの枠を外したあとのバッフル面に空いていた穴をパテ埋めすると同時に、サランネットを取り付けるためにプラスチックの枠についていたゴム部品を外してこの穴に埋め込んで、サランネットの使い回しを可能にしました。(サランネット自体は、洗剤でつけ置き洗をしてきれいにしました)

筐体背面には、秋月電子通商で購入してたプッシュターミナル(仕様かどうかはわかりませんがバナナプラグも挿せる)を取り付けて、スピーカーユニットとの配線も平端子でつなげられるように加工しました。

バッフル面のスピーカーユニットが取り付けてあったネジ穴に、5.0mmのドリルで貫通穴を開けてステップドリルで6.0mmまで穴の手前側を広げます。そこにM4のボルトが入る鬼目ナットをねじ込んでいき、板(バッフル面)とフラットになるようにします。これで、スピーカーユニットの固定は、M4のボルトで簡単にできるようになりました。音漏れが心配なら、隙間を埋めるテープなどを使って密着性を高めてもよいと思います。

スピーカーを2 Wayにするためのネットワーク回路は、スピーカーユニットを交換できるようにすることを考えて、Amazonで見つけた周波数分割器をエンクロージャーの中に仕込んで、これも各スピーカーユニットに平端子で接続できるようにしました。Amazonの商品ページにあった情報は以下の通りでした。

〈WEAH D224〉

80W 2ウェイ Hi-Fiオーディオ スピーカークロスオーバーフィルター
最大電力:80W
周波数応答:48 hz-20k hz
インピーダンス:4-8Ω
対象:8インチ未満のスピーカー

#以前の自作2 Wayスピーカーを作ったときの周波数分割器には、100V6.8μFの電解コンデンサが1つだけ付いていましたが、今回使ったものには100V3.3μFのコンデンサが2つ取り付けられていて、1つはローパスフィルタのコイルと並列につながっていました。

スピーカー試聴のためにエンクロージャーを作ったはずなのに、この構成が思いの外よい感じに出来上がってしまって、今はアンプのテスト用に使ってしまっています。スピーカーユニットが簡単に取り外せるようになっているので、気になるスピーカーユニットを手に入れたら交換して試用してみたいと思います。

2024年10月14日月曜日

スピーカー実験用の取外し可能なエンクロージャーを用意する〜まずはサブウーファー用から

このところ、スピーカー沼にハマっているところですが、チープな趣味に走る傾向があるためにいわゆる「普通のハマり方」とはちょっと違う方向に向かっている感じがするところです。問題は、これ以上スピーカーを作って増やしすぎると狭い自室がより狭くなってしまい、作ったものを置く場所もなくなるということ。とは言え、実験してみたいことはそれなりにあるし、様々なスピーカーユニットを買ってしまうとやはり試してみたくもなります。
#同様の趣味の方が一定数いらっしゃるらしく、この分野を「プアオーディオ」と呼ぶ方もいらっしゃるようです。

そこで、簡単にスピーカーユニットを取り付けたり外したりできるようなエンクロージャーを作ろうと考えて試行錯誤してみることにしました。すぐに思いついたのは以下の2つ。

  1. ちょっと大きめのエンクロージャーを自作するか購入するかして用意する。
    1. 前面のバッフル部分だけを丸ごと取り外しできるように加工して、スピーカーユニットをバッフル板に固定しておいて簡単に交換できるようにする。
    2. 前面に大きめの穴を空けておいて、別の板(これがバッフル板になる)にスピーカーユニットを固定し、大きめの穴をふさぐように板ごと固定する方法でスピーカーユニットを簡単に取り外せるようにする。(a.よりバッフル板を小さくできる)
  2. ジャンクのスピーカーを購入して中のスピーカーユニットを取り外して筐体(箱)だけを使う。

この2つについて、どのように進めていくか考えて材料を集めてみることにしました。

1つ目のエンクロージャーは、自宅にあった板材を使おうか既製品を購入しようか考えていたときに、Amazonで安価になっているものを見つけて購入することにしました。1辺が200mm弱の立方体に近い形のエンクロージャー(2個セット)で、前面に160mmスピーカーが入る大きな穴があり、背面にバスレフポートとブッシュ式のスピーカーターミナルも付いていました。購入して確認すると、筐体は15mm厚のMDF板ですが、筐体全体が荒いフェルトのような生地でおおわれていました。作りとしては値段相応な感じで、側面の板にへこみがあったのも安くなっていた理由ではないかと思います。板のへこみを補正しつつ、接合が甘いところがあったので補修することにしました。

次に、前面に空いている大きなスピーカー穴(6.5 inch(約16.5cm)サイズ=いわゆる「ロクハン」と呼ばれるサイズ)は、その上からバッフル板でふさぐような構造にして、バッフル板に取り付けたスピーカーをバッフル板ごと付け替えることで、様々なサイズ・種類のスピーカーを装着して試用・試聴できるようにすることにしました。バッフル板は、自宅に在庫していた10mm厚の軽い板材を使用しました。このバッフル板を固定するために、前面に鬼目ナットを埋め込んでM4のボルトで止められるようにしました。内部の配線は、平端子を使ってつなげることができるようにスピーカー用のワイヤーを加工しました。

試しに、以前紹介したDayton AudioDS115-8を取り付けてどのような音になるのか確認してみました。

パワーアンプは、これまでの実験でもよく使っているBluetooth対応2.1chパワーアンプ「ZK-MT21(←YouTube動画)」を使いました。サブウーファー専用のスピーカーとしてTCP115-4作ったものと聴き比べてみましたが、低音の輪郭がはっきりしているような印象でした。しばらく視聴していると今回作ったエンクロージャーの方は、より低音が強調される楽曲では筐体の共鳴が耳障りに聴こえるようになりました。音の発生源を調べてみると、バッフル板を固定しているボルトをしっかり締めないと、バッフル板が振動してしまうことがわかりました。増し締めをしたらほとんど振動音がしなくなりました。密着性は大事ということです。

長くなってしまったので、2つ目の方は次回にします。

2024年10月7日月曜日

Raspberry PiでRaspberry Pi Picoのプログラミングに挑戦〜ビジュアルプログラミング編

前回の続きです。これまで、Raspberry PiRPi 3RPi 400)でTonnyVisual Studio Codeを動かして、MicroPythonでのRaspberry Pi Picoのプログラミングに取り組んでみました。一般的にプログラミングをする際の敷居としては、テキストプログラミングよりビジュアルプログラミングの方が敷居が低いと思いますが、小型のPCと考えると非力なRPiの場合は、マシーンスペックとしてビジュアルプログラミングのほうが敷居が高くなるような印象があります。そこで、RPiでWeb上のビジュアルプログラミング環境を使ってフィジカル・コンピューティングのプログラミングができるのか、検証してみることにしました。
#今回使っているブラウザは、デフォルトでインストールされているChromiumです。

以前に、Linux MintGoogle Chromeでビジュアルプログラミング環境(「Piper Make」と「BIPES」)を動かして、ビジュアルプログラミングを行い、Raspberry Pi Picoを動かすことができています。今回は、その時の経験で得た知見をもとに、動作実験をしていきたいと思います。

#手順としては、今回もRPi 400でやってみて、同じことをRPi 3で検証するという方法で行いました。

〈Piper Makeの場合〉
先ほど紹介した拙Blog(Piper Make編)を参考にしながら、作業をしていきます。Piper Makeのサイトを開いて、MODEレバーの「CREATIVE」をクリックして最初からビジュアルプログラミングに取り組みます。今回は、Linux MintのときにPiper Makeで使ったPicoをUSBでつないでみましたが、ドライブ名が「RPi-RP2」になっていてそのままでは使えませんでした。そのため、プログラミングを始める前に、「SETUP MY PICO」をクリックして、ガイドに従ってPicoの設定を行いました。すると、ドライブ名が「CIRCUITPY」という名前になり、Piper Makeと接続可能な状態になりました。

あとは以前にやった通り、「NEW PROJECT」から新しいプロジェクトを作成し、それを開いて「CONNECT」ボタンを押すとPicoが「Pico(ttyACM0)」として認識されていることがわかるので、これをクリックして「接続」ボタンをクリックします。以前のLチカプログラムを作って「START」ボタンをクリックすると、無事にLチカできました。RPi 3でもやってみましたが、動作が若干もっさりした感じになるものの、Lチカ自体は問題なくできました。
#PicoをPiper Makeで使えるようにすると、ドライブモードがデフォルトになる設定が施されるようです。取り外しは、イジェクトボタンから行わないと正常に取り外されたと認識されないようです。

〈BIPESの場合〉
MicroPythonで使えるようにしたPicoを接続して、動作実験を始めます。これも、先ほど紹介した拙Blog(BIPES編)を参考にしながら作業をしていきました。接続するマイコンボードの選択画面から「Raspberry Pi Pico」を選択し、接続マークをクリックすると「Board in FS mode(ttyACM0)」と表示されますので、これをクリックして「接続」ボタンをクリックします。これで、Picoとの接続が完了するので、あとはプログラムを作って動作確認するだけです。

以前にやったものを参考にしてLチカプログラムを作って動かそうとしてみましたが、どうも動作がおかしい感じ。Piper MakeでのLチカ実験のあと、新しいタグを開いてBIPESの実験を続けていたのがいけなかったのではないかと思い、一度ブラウザを閉じてからもう一度立ち上げ直してやってみました。すると、無事に思い通りの動作をしてくれました。横着をしてはいけないことがわかりました。同じようにRPi 3でもやってみましたが、Piper Makeよりスムーズに動いてくれたので、より実用的ではないかと思いました。(個人の感想ですけどね)

というわけで、RPiでPicoを動かすというのもありですね。そろそろPico 2でも試してみないといけないかもしれません。(RPi 5は、ちょっと手が出ていませんが…)

【追記】これまでのPicoでのプログラミング(フィジカル・コンピューティング)に関する拙Blogの記事もご覧ください。(2024.11.4←これからも適宜更新していきます)

2024年10月1日火曜日

Raspberry PiでRaspberry Pi Picoのプログラミングに挑戦〜MicroPython編

以前の続きです。これまで、Linux MintRaspberry Pi Picoを動かしていました。そもそも、Raspberry Piという名前を冠しているということは、本家Raspberry Pi(これも基本はLinuxベースOSで動かします)との親和性が高いはず。ということで、PicoをRaspberry Piで動かしてみたいと思います。今回は、普段はiMacの裏側において時々実験的に使っているRPi 3HPのスリムタワーケースに入っている)とRPi 400を使って、Picoのプログラミングができるか検証してみます。Linux Mintのときと同様にThonnyVisual Studio Codeを使いますが、インストールはRPiメニューの「設定」→「Recommended Software」から簡単にできます。
#手順としては、RPi 400でやってみて、同じことをRPi 3で検証するという方法で行いました。

〈Thonnyの場合〉
まず、RPiメニューから「Thonny」を起動して作業開始。起動したThonnyの画面上部に表示されたメニューアイコンの右端に「Switch to regular mode」という文字だけのメニューがあるのでこれをクリックします。一度Thonnyの画面を閉じて再び起動すると、メニューアイコンの上に文字のメニューが現れます。「Tools」メニューから「Options…」を選択し、「Language」を「日本語」にします。もう一度Thonnyを閉じて再度起動すると、メニューが日本語になります。(一部日本語化できていない部分もあります)

次に、「表示」メニューから「ファイル」にチェックを入れて「ファイル」の窓を表示させます。「実行」メニューから「インタプリタ設定…」を選択し、コードを実行するインタプリタを「MicroPython(Raspberry Pi Pico)」にしておきます。これで準備は完了です。一度Thonnyを終了させて、PicoをUSBで接続してから再びThonnyを起動して作業を続けます。
#Picoを接続してThonnyを起動すると、「インタプリタ設定(Select interpreter)…」で「ポート(Port)」の選択が可能になります。ここで、「<ポートの自動検出を試す>」にしておくと、自動的にPicoが接続されました。RPi 3では、「Board in FS mode - Board CDC (/dev/ttyACM0)」を明示的に選択しましたが、RPi 400でも明示的に選択できます。

あとは、過去の拙Blogの記事を参考にして、PicoのLチカ実験をしてみます。今回は、既にMicroPythonが使えるように設定をしてあるPicoを使いましたが、まだの場合はその設定作業も必要です。(前出の拙Blog記事を参考にしてください)実験したLチカプログラムは、今までと同じものです。

from machine import Pin
import utime
led = Pin(25, Pin.OUT)
while True:
led.toggle()
utime.sleep_ms(400)

あらかじめローカル(「ドキュメント」など)に保存しておいた.pyファイルをファイル窓から開いても、Pico内に保存されているmain.pyを開いても、どちらも実行ボタンをクリックして動作させることができました。

〈Visual Studio Codeの場合〉
Visual Studio Codeでも同じことをやってみます。RPiメニューから「Visual Studio Code」を起動して、窓の左側に縦に並んだアイコンの中から「Manage」をクリックし、一番上の「Command Palette…」をクリックします。ここから、「Configure Display Language」を選択し、「日本語」を選んでインストールします。(インストールが終わると再起動が促されます)

次に、同じく窓の左側に並んだアイコンの中から「EXTENSION」を選択し、検索窓に「Pico」と入れて検索すると「Raspberry Pi Pico」の拡張機能が出てくるので、これをインストールします。続いて、先述したLinux Mintでの経験から、検索窓で検索して「MicroPico」もインストールしました。以前は、この状態からPicoをつなぐとつながった感じになったのですが、今回はなんか手応えがない感じ。「▶✓」ボタンから「専用ターミナルでPythonファイルを実行する」をクリックしても、「ターミナル」の窓でエラーが発生している旨のメッセージが出てプログラムが止まってしまい、「問題」の窓には、「”machine”や”utime”って何?インストールされていませんけど?(意訳)」というようなメッセージが出てしまいます。

そもそも、「Python」や「micropython」が動いていないのかもしれないと考えて、これらも検索してインストールしましたが結果が変わらず。どうやっても「machine」や「utime」がネックになっているようです。そこで、「Raspberry Pi Pico」の拡張機能を入れたときに出てきたPicoのアイコンから、「New MicroPython Project」を選択して作業を進めてみることにしました。作業スペース(フォルダ名)を「LED(←これは任意の名前でよいです)」として「ドキュメント」フォルダ内にMicroPython用の作業スペースを作ると、「LED」フォルダ内に「blink.py」というLチカプログラムが自動的に作られていました。

この「blink.py」を開こうとすると「machine」や「utime」をインストールするかと聞かれるので案内に従って作業を続行します。すると「IntelliCode」という拡張機能のインストールが行われ、窓の下側に「✓Pico Connected」や「Run」「Reset」といった見覚えのあるメニューが並びました。

この状態で「blink.py」を前面にして「Run」ボタンをクリックすると、無事にLチカできました。続いて、もともと自分で作って保存していたLチカプログラムでもやってみましたが、問題なく動かすことができました。ただしRPi 3では、Visual Studio Codeをインストールしようとするとエラーが出てしまい、インストール自体が(理由は未検証ですが…)できませんでした。残念ですが、Visual Studio Codeの方がより大掛かりなシステムなので、RPi 3では非力すぎるのかもしれません。その意味でも、Thonnyの方が初学者にとってハードルが低いのではないかと思いました。

【追記】これまでのPicoでのプログラミング(フィジカル・コンピューティング)に関する拙Blogの記事もご覧ください。(2024.11.4←これからも適宜更新していきます)