2024年12月21日土曜日

骨董品のようなYAMAHAのアンプ(A100)の修理を試みる

以前に紹介して、使用中に音が出にくくなったので、「古いものだから処分しようか…」とか「修理を試みてみようか…」とかと逡巡しながら、結局放置してしまっていたYAMAHAのA100(←資料なし)というパワーアンプについて、隙間な時間を使って少しずつ修理を試みたという話です。とは言え、古い音響機器をどれだけいじれるかはわからないので、できるだけ簡単な作業で直ってくれたらありがたいと思いながら、少しずつやってきたことをまとめておきたいと思います。

まずは筐体の上面カバーを取り外して中の状況を眺めてみました。基板上にはホコリがそれなりに付着しているものの、箱に入れていた期間が長かったためかそこまでひどく汚れているとは感じませんでした。次に、電解コンデンサが膨らんでいないかとか、液漏れしていないかとかということを確認してみました。こちらも特に問題は感じられないくらいにはきれいな状態で、なぜ不具合が生じたのかがわからないくらいでした。ここで一瞬「基板を外して全バラしなければダメかな…」とも思ったのですが、ダメ元で「洗浄」を試みることにしました。

実は、YouTubeなどでPCのマザーボードなどを修理する際に、「水洗い」してよく乾燥させると復活することがあるという話を聞いていました。今回は、これをやってみようと思ったのです。ただ、電気を流すものに水をかけること自体が精神的に抵抗を感じます。そこで、高圧洗浄機ほど強くはないけれどジョーロほど弱くない程度の強さのシャワーで洗って、ある程度水を切ったところで呉工業(KURE)のエレクトロニッククリーナーで洗浄することにしました。さらに、乾燥させると同時に2-26で残った水分を飛ばしながら接点復活を図りました。見た目はかなりきれいになりましたし、分解せずにできることはこの程度かなと。あとはしっかり乾かす作業です。(時の流れに身を任せるだけです)

さて、この機会にA100の中身を確認してみます。見える範囲で使われているICなどを確認してみました。型番などがわかった部品は以下のとおりです。

  • IC1…BA4558Rohm デュアルオペアンプ)
  • IC2…(μP)C1237HANEC ステレオパワーアンプ用プロテクタIC)
  • Q101とQ201…(2S)C3421TOSHIBA NPNエピタキシャルトランジスタ=バイポーラトランジスタ)
  • Q102とQ202…(2S)C4386サンケン電気(SK) NPNトリプル拡散プレーナートランジスタ)
  • Q103とQ203…(2S)A1671(サンケン電気(SK) PNP パワートランジスタ)
  • 電源トランス…TKK SP-66988-P OKM(←詳細不明)

いろいろなメーカーから部品を調達していたことがわかって、当時の設計意図を知りたくなりました。今は、1チップのデジタルパワーアンプICがあるので、そのうちYAMAHAのデジタルアンプICを載せたパワーアンプキットを購入して、聴き比べをしてみたいと思いました。

ということで、洗浄を終えて筐体の上面カバーを戻して、緊張の動作確認をしてみます。一度思い切り水を浴びせていますので、ショートしてスパークしても対応できるように(!)、屋外で作業をしました。(真似する場合は、自己責任&よく調べてからやるようにしてください)結果としては、問題なく音が出るようになりました。
#動作確認中に音の出方が不安定になることがあったのですが、使ったケーブルが悪かったようで、TRSジャック部分を切断して新しいものにつけ直しをしたら問題はなくなりました。

それよりも、実験をしている狭い自室では、A100の出力インジケーターの針がほとんど動かない程度にしか音量を上げられず、完全にオーバースペックなのが辛いところです。楽器用のパワーアンプなので音の再現性も高く、買ったときから気に入っていたことを思い出しました。せっかくなら、大きな音で立派なスピーカーで鳴らしてやりたいとは思うのですが…。
#今回使ったスピーカーは、以前紹介した実験用の2 Wayスピーカーです。

ということで、修理と言えるほどのことはしていませんが、何とか使える状態にまでは戻すことができました。このA100は、小さなライブハウスで演奏するくらいの使い方であればまだまだ現役で使えるのではないかと思います。(演る予定は全くありません。キリッ)

2024年12月14日土曜日

7.1 ch出力対応を謳ったICUSBAUDIO7D(USB-DAC)でスピーカーシステムを組んでみる

これまで、2.1 chアンプ(ZK-MT21YouTube動画)を使って左右スピーカーとサブウーファーの構成でいろいろな実験的なことをしてきましたが、自作スピーカーの数も多くなってきたのでもっと多くのスピーカーを同時に鳴らすシステムを組めないものかと思い始めました。そんなことを考えながらいつものようにAmazonを徘徊していると、StarTech.comというメーカー(「Made in Malaysia」と書いてありました)が販売している「ICUSBAUDIO7D」という7.1 ch出力対応のUSB-DACを見つけました。価格も安くて試してみたいと思ったのですが、対応OSはWindowsだけとのことで、しばらく悩んだ末に結局買ってみることにしました。
#自室で使っているPCは、MacとLinuxしかありません。このUSB-DACが動けばお買い得ですが、動かなければ…。これを「人柱精神」と呼んでいただければ幸に存じます。

届いた製品には英語のマニュアルが同梱されていました。使い方はそこまで難しくなさそうですが、7.1 chに挑戦すること自体が初めてなので念の為にネットで情報を探していると、StarTech.comのサポートサイトに日本語のマニュアル(←PDF)があったのでこれをダウンロードして使い方を確認しました。

購入前にわかっていたことですが、ICUSBAUDIO7Dにはパワーアンプが内蔵されていません。各出力にパワーアンプを接続するか、多チャンネル対応のパワーアンプを購入するかして、USB-DAC→パワーアンプ→スピーカーの順につなげる必要があります。別の方法としては、パワーアンプ内臓のスピーカーを複数台用意すれば使えることになりますが、私が作っている自作スピーカーは、パワーアンプを別に用意しているので、すでに複数台のパワーアンプがあります。問題は、電源や信号線などの配線が、どうしても複雑になってしまうことでした。

いろいろと問題を感じつつ届いたICUSBAUDIO7Dを試してみます。はじめにやったことは、MacBook Proとの接続です。付属のUSBケーブルで接続するとそのままUSB-DACとして認識されて、サウンドの出力デバイスとしては「USB Sound Device」として認識されました。この状態でICUSBAUDIO7Dのヘッドホンジャックにヘッドホンを挿して音楽を流してみましたが、まったく音が出ませんでした。

ならばと思い「FRONT」と書かれた出力ジャックにパワーアンプ+スピーカーをつなぐと、音声信号が出ていてスピーカーから音が聴こえました。これで、普通のUSB-DACとしては使えることがわかりました。続いて、他の出力ジャックを試してみましたが、全く何の反応もなく音声信号が出力されていないようでした。「サウンド設定」を開いても、ICUSBAUDIO7Dからの出力について特に設定できる項目が増えることもなく、入力デバイスにLine入力やMic入力、デジタル入力などの項目が増えているものの、出力側は「USB Sound Device」1つだけでそれ以外の設定変更はできないようでした。macOSでは、ICUSBAUDIO7Dは7.1 chで動作しないことがわかりました。

ならばLinux Mintで動かしている自作PCにつないだらどうだろうかと思ってつないでみたところ、「サウンドの設定」の中にデバイスとして認識されて、USB-DACとして使えるようになりました。ここまでは、MacBook Proと同じです。さらに「サウンドの設定」を詳しくみていくと、デジタルとアナログの出力(「CM106 Like Sound Device」となっている)の設定ができるようになって、「アナログステレオ出力 ▼」から5.1 chや7.1 chが選べるようになりました。全く期待をしていなかったので、興奮しながらいろいろと試してみました。結果として、5.1 chを選ぶとICUSBAUDIO7Dの「SURROUND」や「CENTER/BASS」からも音声信号が出力されて、7.1 chを選ぶと、さらに「BACK」からも音声信号が出力されるようになりました。(ただでさえ狭い部屋の中がすごいことになってしまったので、写真は残していません)
#すごいな!Linux Mint!感動した!

「サウンドの設定」の画面をスクショしたので貼っておきます。

この自作PCでDVDやBlu-rayを再生して、映画を観たり音楽を聴いたりすることがあるのですが、ICUSBAUDIO7Dを使うと7.1 chスピーカーシステムで映画を鑑賞することができるということになります。(部屋が狭いから現実的ではありませんが…)さらには、自作HTPCのようなコンパクトなPCを作って、リビングの大きなテレビ画面+7.1 chサウンドで映画を鑑賞することも可能ということになると思います。(夢のようだ!)\(^^)/

2024年12月7日土曜日

「使用中止」と発表されたRolandのMA-4の再生?に挑戦する〜筐体に収めて完成させる

前回の続きです。Rolandの電子楽器用モニタスピーカー(MA-4)のスピーカーユニットを再生する計画で、PAM8403(←Datasheet)アンプICを載せたパワーアンプ(GF1002←メインアンプ)モジュールと、NE5532アンプICを載せたプリアンプ(XH-A901というものらしい←YouTubeで接続方法の解説がありました)モジュールを組み合わせて、プリメインアンプを作るところからです。

これらのアンプモジュールを動かすために、以前にも使ったことがあるMT3608(←Datasheet)というDC-DCコンバータICを載せた電源モジュールを使います。USB給電で5Vを印加して、テスターで測定しながら12V程度に昇圧してNE5532のプリアンプモジュールへ印加します。同時にUSB給電の5Vが「VIN+」と「VIN-」にもそのまま出ていたので、これをPAM8403のパワーアンプモジュールにつないで印加します。これで、電源モジュール一つで2つのアンプモジュールを動かすことができるはずです。
#この使い方が正しいかどうかは無保証なので真似をされる場合は自己責任でお願いします。

ここまでで、スピーカーから音が出るか確認をしてみました。すると、聞き覚えのある高音のノイズが聞こえました。以前と同様に、またMT3608のDC-DCコンバータICモジュールからの発振だろうと思ったので、ポテンショメータを回して電圧の調節をすることにしました。今回は、電圧を上げていくと発振ノイズがどんどん低音になっていって、スピーカーから唸るような音が出るようになってしまいました。

そこで、電圧を下げていって発振ノイズをどんどん高音にしていきました。テスターで測定しながら、だいたい8V辺りで発振ノイズが聞こえなくなりました。(もしかするとモスキート音がしているのかもしれませんが…)今回使っているプリアンプモジュールは、本来12〜24Vの範囲で動作することになっているのですが、8Vでも音が出ているのでとりあえずよしとすることにします。
#念のために、DC-DCコンバータICモジュールとプリアンプモジュールをつないでいる導線にフェライトコアを取り付けておきました。

これでプリメインアンプは完成ということにして、DAISOで購入しておいた枡形の適当な箱に詰めてみました。

最後に、MA-4のスピーカーユニットを入れる筐体をどうするか考えます。筐体(エンクロージャー)として、MA-4のものをそのまま使ってみることも考えたのですが、試行錯誤の末断念。そこで、仕事帰りにたまたま立ち寄ったいつものHARD OFFでメーカーのよくわからないスピーカー(ジャンク扱いの左右セットで550円)を見つけたので、これに入れることにしました。
#このジャンクスピーカーの中に入っていた12cmくらいの4Ωのスピーカーユニットは、磁石の周りの金属の錆が酷かったため、使い回すのを諦めました。

このジャンクスピーカーは、スピーカーユニットがサランネットに直接ビス止めされていて、バッフル板がありませんでした。サランネットからスピーカーユニットを外して箱だけを使うことにして、在庫していた木板でバッフル板を作ってMA-4のスピーカーユニットを固定しました。これを、ジャンクスピーカー筐体に固定し、合わせて筐体の背面にスピーカーターミナルを取り付けて、スピーカーユニットと内部配線しました。

ということで、MA-4改が出来上がりました。(オリジナルの部品は、スピーカーユニットだけですけどね)もともとフルレンジのスピーカーユニットにバスレフポートが付いただけのモニタスピーカーだったので、ジャンクスピーカーの筐体に付いていたバスレフポートをそのまま使いました。
#元のMA-4のバスレフポートは前面にありましたが、今回のものは背面にあります。

プリアンプを入れているためか、調節によってはフルレンジ1つで鳴らしているとは思えないくらい低音から高音までしっかり鳴ってくれている印象です。数時間鳴らしてみて(エイジングと接続に問題がないか確認しました)特に問題はなさそうなので、古い電子楽器たちのモニタスピーカーとして活躍してもらう予定です。

(もともとジャンクスピーカーに付いていたサランネットは、きれいに洗浄したものの、このスピーカーにつけると見栄えが悪い感じがしたので外したままで使うことにしました。)

【過去記事】「使用中止」と発表されたRolandのMA-4の再生?に挑戦する〜まずは下準

2024年11月25日月曜日

「使用中止」と発表されたRolandのMA-4の再生?に挑戦する〜まずは下準

今までもときどきこのBlogで登場している古い電子楽器たち(例えばこんな過去記事で)ですが、これらの楽器たち用のモニタスピーカーとして、RolandのMA-4(公式より使用中止のお願いが出ていました)を使っていました。
#構成としては、Soundtracs(←公式Webサイトが見つからず…)のTopaz Macro 14ch Mixer(←Sound On Soundの記事)に各電子楽器からの信号を入れてモニタスピーカーに出力しています。

公式Webサイトで「使用中止」と言われてしまうと、使い続けるのが怖くなってきて、ちょっと中身を確認してみることにしました。

このモニタスピーカーは、右側のスピーカーにアンプが内蔵されていて、そこから左側のスピーカーにケーブルをつないでステレオで鳴らすことができるというものです。構造的には、あまり複雑でもなく高級感のあるものでもないので、左右それぞれ数本のネジを外してしまえば中身にアクセスすることができます。

アンプ基板の入っている右側のスピーカーには大きなトランスが入っていて、これが重量の大部分をしめている感じでした。「使用中止」を言われる理由が「電解コンデンサの問題ではないか」と思って開けてみたのですが、基板上の電解コンデンサの頭は膨れておらず、大きな問題は感じませんでした。しかしよく見てみると、1つだけ電解コンデンサの側面に白い粉のようなものが付着しているものがありました。粉を拭き取ってみると、側面に小さなひび割れがあるように見えました。やはり使わない方が良いと判断し、まずは使えそうなスピーカーユニットを取り出すことにしました。

スピーカーユニットには、「P3DUC-12(4Ω5W)」と書かれていました。Google先生に聞いても情報が見つからなかったので詳しいことはわかりませんが、大きなマグネット(内磁型磁気回路なのでマグネット自体は外からは見えない)で見た目は良い感じ。古いので減磁していなければよいのですが、以前に自作したPAM8610デジタルアンプICモジュールとMT3608 DC-DCコンバータICモジュールなどを組み合わせたパワーアンプにつないで音が出るか試してみました。すると、モニタ用のスピーカに使われていただけあって素直な感じの音が出たので、これなら使えると思いました。

MA-4に内蔵されていたトランスには、「HKSP-96877」との刻印がありましたが、これも情報が見つかりませんでした。(MA-4に使われていたトランスであることだけは情報として見つけましたが、「知っとるがな」ということで)INPUT AC 100V(50/60Hz)でOUTPUT AC 11V/1.5Aと刻印されているので、このトランスでAC100VをAC11Vまで落として、基板側で電子部品(ダイオードや抵抗、コンデンサなど)で直流にしているのだと思います。
#トランスからの電気(AC11V)を、4つのダイオードに通すような設計になっていました。三端子レギュレータのようなものは見当たりませんでした。

MA-4の基板に載っていたアンプICはJRC(日本無線)の4558DD(←Datasheet)というデュアルオペアンプICとSANYOLA4597(←Datasheet)という2chパワーアンプICが使われていました。Roland独自のものではなく汎用的なIC部品を使っているので、これらのICは何かに使えるかもしれないと思って基板から外して部品としてストックしておくことにしました。

さて、本格的にMA-4の再生?を目指してスピーカーユニットを使えるようにするとなると、別のアンプを用意しなければなりません。

これまでも紹介してきた「PAM8403(←Datasheet)」というデジタルアンプICを載せたモジュール(GF1002)を使えば一応音の確認くらいはできそうですが、低音・高音のバランス調節もすることができたMA-4より単純なものになってしまいます。そこで、NE5532Texas Instruments)を載せたプリアンプモジュールを購入して、PAM8403と組み合わせて使ってみたらどうなるか、実験をしながらプリメインアンプを作ってみることにしました。

ここまで準備したところで、長くなってしまったので続きは次回にします。

【次回記事】「使用中止」と発表されたRolandのMA-4の再生?に挑戦する〜筐体に収めて完成させる

2024年11月17日日曜日

Raspberry Pi Picoのプログラミングに挑戦〜ビジュアルプログラミングで音楽演奏ができるのか

以前の続きです。Raspberry PiでプログラミングをしてRaspberry Pi Picoをコントロールすることにチャレンジしていますが、これまで、MicroPythonThonnyを使用)でのプログラミングに挑戦して、Lチカの次に音楽演奏までやってみました。次のステップとして、Lチカのときと同じようにビジュアルプログラミングでも音楽演奏ができるのか試してみたいと思います。今回もRPi 3RPi 400を使ってやってみようと思ったのですが、普段使っているMacBook Proで確認してからRaspberry Piでやってみることにしました。

〈Piper Makeの場合〉
Picoのビジュアルプログラミングに特化した「Piper Make」ならばきっとできると思い込んで、半ば楽観的な気持ちで試し始めたのですが、それらしいブロックを探していくうちに段々と雲行きが怪しくなってきました。「#Value」の中に「note[A4]」(音階を選ぶことができる)を発見してぬか喜びをしてみたり、「duration[sixteenth]」(音符(音の長さ)を選ぶことができる)と組み合わせてできることがないかと試行錯誤してみたりしましたが、どれもうまくいきませんでした。いくら探してもGPIO PinにOUTする方法が見当たらないのです。

もしかしてと、いつも使っている「CREATIVE」モードではなく「STORY」モードにそれらしいものがあるのではないかと考えて探してみました。Piper Makeを開いた画面の下側に「EXPEDITION TELEPORT MENU」というメニュー一覧があり、デフォルトが「BASE」となっているのですが、その中から「SENSORS」を選ぶと音楽に関係しているようなSTORYが現れます。(「SHOW ALL」をクリックしても見つけられます)これを使って音楽を演奏させてみると、MacBook Pro(PCなどでやっても同じです)から音が出ました。この方法だと、Picoはセンサーとして働くようにプログラムするようになっていて、Picoにスピーカーをつないで音を出すという当初の目的は達成できないことになります。

どうもこの辺りで手詰まりとなってしまいました。

〈BIPESの場合〉
気を取り直して、Picoのビジュアルプログラミングで以前使ったことのある、「BIPES」でスピーカーから音を出すプログラムが作れないかやってみます。BIPESは、Picoに限らずさまざまなマイコンボードに対応しているビジュアルプログラミング環境です。ESP8266系のマイコンボードやESP32系のマイコンボードにも対応しているし、中には、私も持っているものもあります。(そのうち動作確認してみたいと思っています。思っています)また、M5Stackmicro:bitにも対応しているので、英語表記の精神的な壁を乗り越えてしまえば、かなり使えるツールだと思います。

そう思って確認していくと、選択するマイコンボードによって使えるメニューやブロックが変わるということがわかってきました。マイコンボードを選択する窓で、先述のESP…やM5…などのマイコンボードを選んだときには、「Outputs/Actuators」というメニュー項目が現れて、「Sounds」メニューから音(音楽)を鳴らすブロックを選択することが可能になるのですが、Arduino系のマイコンボードやPicoを選ぶと、「Actuators」だけのメニュー項目に変わってしまい、「Sounds」メニューは出てこなくなります。うぅむ、一筋縄ではいかないですね。

仕方がないので、Thonnyで作ったMicroPythonのプログラムを基に、GPIO PinにPWMを出力するブロックがないか探しました。「Machine」メニューの中に「In/Out Pins」というメニューがあり、その中に「RPi Pico PWM…」というそれらしいものが見つかりました。とりあえずこれを並べてみれば音楽演奏っぽいことができそうだと当たりをつけてやってみました。作ったプログラムは、以下のとおりです。

第一段階として、こんなプログラムで音楽演奏ができることはわかりました。とは言え、プログラムとしては、正直にいうとスマートとは言えないなぁと思ってしまいました。また、Frequencyに入力する数値は、整数値しか受け付けないようで、無理やり整数の近似値を入れているので、出てくる音にも違和感があります。これをベースにしながら、よりスマートに応用範囲の広いプログラムに改良していきたいと考えています。

〈関連情報〉
下準備として、PicoでMicroPythonが使えるようにするファームウェアの設定作業は、過去の拙Blogの記事を参考にしてください。公式WebサイトのPicoでMicroPythonの情報もご確認ください。

2024年11月10日日曜日

自作スピーカーと2.1chアンプでスピーカーシステムを組んでみる

これまでいろいろなスピーカーを作ってきましたが、はじめの頃に作った試作品はあまり使うこともないし邪魔なので処分してしまおうかとか、バラして使えそうな部品だけ取ってしまおうかとかと思いながら、しばらく思案しておりました。周波数分割器や2.1chアンプ(ZK-MT21YouTube動画)があるので、これらと組み合わせたらどんなものができあがるだろうかということが気になってしまい、とりあえずやってみることにしました。

着想のスタート地点は、以前の記事で紹介した(3番目のスピーカー=5cm,8Ω,0.5W)「低音すかすか」なスピーカーが「ツイーターとしてなら使えるのではないか」と思ったところでした。これに在庫しているスピーカーユニットを適当な箱に入れたものを組み合わせて2 Wayスピーカーのように組んでみてはどうかと思いました。さらに、これも以前の記事で紹介したサブウーファーを組み合わせて2.1chのスピーカーシステムにするという計画です。使用するスピーカーユニットは以下のとおりです。

  • Amazonuxcell←Amazonのストアページ)で購入した、詳細不明のフルレンジ(8Ω0.5W)を謳った薄っぺらいスピーカーユニット(2個1,100円税込)をツイーターとする。
  • 秋月電子通商の店舗で購入した、「F02408H2(8Ω10W)」という北日本音響製の広帯域用(フルレンジ)77mmスピーカーユニット(1個300円税込を2個)を中低音域用とする。
    #YouTubeでもよく取り上げられているコスパのよいスピーカーです。
  • Amazonで4,300円くらいで購入した、Dayton Audioの「TCP115-4(4Ω40W)」をサブウーファーとする。

2.1chのアンプ=ZK-MT21には、サブウファー用の出力は独立してありますが、左右のスピーカー出力は、それぞれ1つずつしかありません。ここに、Amazonで見つけた2 Wayスピーカー用の周波数分割器(クロスオーバーフィルター)をつないで高音と中低音に分割することにしました。Amazonの商品ページに書かれていた情報は、以下のとおりです。

周波数応答:48Hz〜20KHz
インピーダンス:4-8オーム
定格電力:80W

以前の記事で取り外し可能なエンクロージャーを作ったときに使ったものと同じ周波数分割器です。素性や詳しい仕様がよくわからないので具体的な商品紹介は控えます。

結論としては、「低音すかすか」スピーカーでもツイーターとしては使えそうだけれど、そこまで劇的に変化するほどの効果はなくて、高音の音の広がりをちょっとだけ足したい場合に追加するのもありかな程度と感じました。例えば、音域が広く音数の多いオーケストラのような楽曲を聴く場合には、あった方が良いかなと思いました。
#ツイーター専用を謳ったスピーカーユニットを使った場合は、どうなるのかを聴き比べたいところです。

#2.1chのアンプ=ZK-MT21(右側)からの出力を周波数分割器に入力して、Bassと Trebleに分割して、それぞれのスピーカーへ出力しています。

副産物的な気づきとして、それぞれのスピーカーをバラバラに設置できるので、置き方や向きなどの要素を変化させて聴き比べることができることもわかりました。配線がごちゃごちゃして見た目が悪いところは難点ではありますが…。

2024年11月2日土曜日

Raspberry PiでRaspberry Pi Picoのプログラミングに挑戦〜圧電スピーカーをつないで音を出す

以前の続きです。Raspberry Piでプログラミングをして、Raspberry Pi PicoをコントロールしてLチカする実験をしましたが、次のステップとして、「音を出す」ことに挑戦したいと思います。今回もRPI 3RPi 400を使ってやってみます。まずは、MicroPythonでできるかやってみようと思いますが、RPi 3では「Visual Studio Code」が使えなかったので、「Thonny」だけでやってみることにします。
#下準備として、PicoでMicroPythonが使えるようにするファームウェアの設定作業は、過去の拙Blogの記事を参考にしてください。公式Webサイトの情報もご確認ください。

まずは、Thonnyを起動して作業開催。既に様々な設定が終わっているので、すぐにプログラムを書き始めます。今回は、@undo0530さんの「Raspberry Pi PicoでMicroPythonでPWM信号でスピーカーでメロディー演奏」を参考にしながら、曲を演奏するMicroPythonプログラムを書きました。内容は以下のとおりですが、ファイル名は任意で決めていただいて構いません。

from machine import Pin, PWM, Timer
speaker = PWM(Pin(17, Pin.OUT))
led = Pin(25, Pin.OUT)
ahz = 440
A4 = ahz
B4 = ahz * (2 ** (2/12))
C5 = ahz * (2 ** (3/12))
D5 = ahz * (2 ** (5/12))
E5 = ahz * (2 ** (7/12))
F5 = ahz * (2 ** (8/12))
G5 = ahz * (2 ** (10/12))
A5 = ahz * 2
mspb = 400
melody = [C5,0,C5,0,G5,0,G5,0,A5,0,A5,0,G5,0,0,0,F5,0,F5,0,E5,0,E5,0,D5,0,D5,0,C5,0,0,0]
i = 0
def beat(timer):
global melody
global led
global i
global speaker
if i >= len(melody):
speaker.deinit()
led.value(0)
timer.deinit()
elif int(melody[i]) == 0:
speaker.duty_u16(0)
led.value(0)
else:
speaker.freq(int(melody[i] + 0.5))
speaker.duty_u16(0x8000)
led.value(1)
i += 1
tim = Timer()
tim.init(period=mspb, mode=Timer.PERIODIC, callback=beat)

ScratchMicrosoft MakeCodeのように、はじめから音階が用意されていないので、PWMで作らなければなりません。そのために、使う音名に12平均律の各音の周波数を計算して入れて、メロディとして並べて演奏するプログラムにしています。「0」は、休符です。

このプログラムを作る過程で、MicroPythonでの「べき乗」や「累乗根」の計算式の書き方を学びました。各音の周波数値を決めるために近似値を使わずに計算式で計算をさせるプログラムにしたのは、(内部処理によって計算精度が微妙に違うかもしれませんが)できるだけ「正しい12平均律」に近づけたいと思ったからでした。実験した圧電スピーカーとPicoは以下のとおりです。(Seriaで購入した小さなモニタスピーカー模型?に圧電スピーカーを仕込んであります)

プログラムを書き終えてから、PicoをUSBケーブルでRPiにつなぎ、認識された(認識がうまくいかない場合は、一度「Stop/Restert backend」ボタンをクリックすると認識される)ところでRUNボタンをクリックすると、無事にメロディが鳴ってくれました。(「きらきら星」です)RPi 400でもRPi 3でも問題なく、音程も思った通りで「楽器」としても面白いものができた感じになりました。今回取り組んだ「周波数から音階を作る」という作業は、とても面白いと思いました。一方で、もう少しスマートな書き方ができないものかと思案しています。

〈参考資料〉

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

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)でThonnyVisual 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←これからも適宜更新していきます)

2024年9月22日日曜日

サブウーファー用のエンクロージャーを作ってみた〜ウーファー用のスピーカーユニットを使って

前回の続きです。改造DAISO 300円スピーカー自作2 Wayスピーカーにサブウーファーを付けて試聴してみたのですが、このときに使ったスピーカーユニットは、秋月電子通商で購入した「DXYD104W-60P-8A-F」という8Ωのスピーカーユニットで、フルレンジ用のものでした。せっかくここまでやったので、もう少し本格的なウーファー用のスピーカーユニットを使ってみたくなり、Amazonで見つけたDayton AudioTCP115-4という4Ωのスピーカーユニットを使うことにして、それに合ったエンクロージャーを作ってスピーカーシステムを組んでみることにしました。値段は、DXYD104W…の方が税込490円で、TCP115-4の方が4,200円超でした。(どんどん深い沼にハマって行く感じが…)

今回のTCP115-4のエンクロージャーもDAISOの素材で作成しました。14cm四方の枡形木製(OSB合板)容器で、高さが7.5cm程度ありました。これを2つをつなぎ合わせて1つの箱を作り、スピーカーユニットを入れる穴と配線を通す穴、ついでにバスレフポートを付ける穴を空けてエンクロージャーとしました。この方法は、板材から作り上げるのに比べて工数が少なく、おすすめだと思っています。最後に、底面にゴム足をつけて完成です。
#注意点として、このOSB合板で作られた箱はしっかりとした重さがあってよい箱なのですが、それだけに固くて別の材に比べると加工はしにくいです。


今まであまり触れてきませんでしたが、スピーカーを作ったら「エイジング」という作業をするものなのだそうで、簡単に言うと慣らし(鳴らし?)運転をするということです。今回は、数日かけて自分がよく聴く音楽を流してエイジング作業をしました。その上で、以前にDXYD104W…(フルレンジスピーカー)で作ったサブウーファースピーカーとの聴き比べをしてみることにしました。

エンクロージャーの違いはあるものの、DXYD104W…でもかなり低音が聴こえるようにはなっていました。しかし、TCP115-4の方がウーファー用を謳っているだけあって、低音になればなるほどしっかり太く深い低音が鳴っているように聴こえました。そもそも、ウーファー用のスピーカーユニットは、ユニット全体の比率として磁石部分が大きく、コーンの部分も奥行きがある感じがします。低音をしっかり鳴らすための構造になっているということだと思います。DXYD104W…の方は、低音までカバーできるフルレンジスピーカーユニットとして、2 Wayスピーカーにしてみたらよいのではないかと思いました。

この実験をやっている中で、たまたま寄ったHARD OFFで、Dayton AudioのDS115-8(8Ω)を見つけて値段が気に入って買ってしまいました。TCPがコーンに処理紙が使われているのに対して、DSではコート紙が使われているようです。(見た目や材質の違い以上のことはわかりませんが…)これは、聴き比べをしないといけません(使命感)。ということは、低音がしっかり鳴るサブウーファー用のエンクロージャーを作らないといけないかな…。さらに部屋が狭くなるな…。

2024年9月15日日曜日

自作2 Wayスピーカーと改造DAISO 300円スピーカーを聴き比べてみる〜サブウーファーを添えて

以前の続きです。自作2 Wayスピーカーとの比較対象として、改造DAISO 300円スピーカーとの聴き比べをやってみたいと思います。アンプは、改造DAISO 300円スピーカーを紹介したときにも使っていたXINYI Sini Audio(←YouTube動画=XY-C50L)を使いました。

オリジナルDAISO 300円スピーカーは、バランスは良いものの低音の響きが弱く、音楽視聴向きではないと思いました。これを改造することにして、大きめのエンクロージャーに入れてバスレフポートを付けたところ、低音もそこそこ鳴るようになり、音楽を聴いてもよいと思えるスピーカーになりました。しかし、スピーカーとしてのバランスが良いかというとそうでもなく、ボーカルと楽器の音域が近くなるとボーカルが奥に引っ込んだような聴こえ方になってしまいます。アナウンスなどの声は問題がないので、用途によって「よいスピーカー」の条件は違うのだと思いました。

自作2 Wayスピーカーの方は、ツイーターがあることもあってか音の輪郭がはっきり聴こえるようなスピーカーに仕上がりました。すぐに気づいたのは、電源を入れたときのノイズの少なさです。アンプに電源が入っていないのかと思うくらい静かで、改造DAISO 300円スピーカーとは大きく違うと思いました。様々な曲を試聴してみると、ボーカルもしっかり出てくれるし、高音から低音までよく響いてくれて十分満足できるスピーカーになりました。特に低音の響きはとても気持ちが良く、電子楽器のモニタスピーカーとして楽器音を直接聴くことに使いたいくらいだと思いました。

一方で、よく響くのでアナウンスを聴くと「ライブ感」が出すぎてしまってちょっと疲れるかもしれません。これは完全に好みの問題ですが、音楽視聴や映画鑑賞ならよいと思うのですが、臨場感を必要としないときはむしろオリジナルDAISO 300円スピーカーの方が良いように思いました。

聴き比べをしているうちに、改造DAISO 300円スピーカーにサブウーファーを加えてみたらどうなるのか試してみたくなってきました。そこで、これも以前に紹介したZK-MT21(←YouTube動画=Bluetooth対応2.1chパワーアンプ)を使って、自作2 Wayスピーカーと改造DAISO 300円スピーカーをそれぞれサブウーファーを入れて視聴してみることにしました。とは言え、手元にはウーファー用のスピーカーユニットがありません。そこで、フルレンジのスピーカーユニットをウーファーのように使うことができないか試してみることにしました。今回試用したものは、秋月電子通商で購入した「DXYD104W-60P-8A-F」という8Ωのスピーカーユニットです。エンクロージャーは、DAISOで購入した500mL程度のマスのような箱で作って、それにスピーカーを入れただけの簡易なものにしました。

アンプ自体の特性も違うと思いますが、改造DAISO 300円との組み合わせだと音に奥行きが感じられるようになり、ボーカルと楽器の音域かぶりの問題は大きくは解消されていないものの、特に低音域の響きが良くなって音楽が気持ちよく聴けるようになりました。ついでに、自作2 Wayスピーカーの方でもサブウーファーを入れてみました。先ほどと同じアンプ(ZK-MT21)を使っているのに、音の奥行き感については改造DAISO 300円よりかなり少なく、音源が近くに感じるような印象でした。やはりスピーカーは面白い。

以前に中古で購入したアンプ内蔵のウーファー付きスピーカーに比べてると、今回試した各スピーカー+サブウーファーでは、遅延を感じることがなくて安心して聴くことができました。ここまで来ると、ウーファー用のスピーカーユニットを使ったらどうなるのか気になってきました。まだまだ沼が続きそうです。

2024年9月7日土曜日

バスレフポート付2 Wayスピーカー(エンクロージャ)を設計から作ってみる

これまで、アンプを含めて安価にスピーカーを作ることに取り組んできたところですが、密閉式やバスレフポート付のものを作るくらいだったため、そろそろ2 Way方式のスピーカーを作ってみたいと思うようになっていました。(これ以上スピーカーを増やしてどうする?というツッコミはなしで)

とは言え、低音をカットして高音のみ通す(ハイパスフィルタの)役割をもつコンデンサと高音をカットして低音のみ通す(ローパスフィルタの)役割をもつコイルの組み合わせをどのようにしたら良いか、カットする周波数を決めたりスピーカーのインピーダンスによる違いを計算に入れて部品選定をしたりしなければなりません。また、コンデンサやコイル自体の性能によっても音が変わると聞いて、初心者としてはなかなかハードルが高くて何をどう選んだら良いか思案していました。

そんな折、Amazonで2 Wayスピーカー用の周波数分割器(クロスオーバーフィルター)のユニットが販売されていた(←現在は海外から発送されるものしかなかったので紹介は控えます)ので早速購入してみました。
#Amazonの商品ページには、「電力:80W以下、インピーダンス:4-8Ω、クロスオーバー周波数:3200Hz」と謳われていました。正確なのかはわかりませんが。

ツイーターにするスピーカーは、同じくAmazonで車載用と謳われていた約40mmのもの(「TS-T120」という型番になっていました)を使うことにしました。インピーダンスは4Ωです。中低音域は、60mmのフルレンジスピーカー(詳細は不明)を使うことにしました。こちらも、インピーダンスは4Ω(定格10W)です。どちらも、uxcellで取り扱われている商品で、値段が気に入って購入したので詳細不明なところが多く、つないで音を出すまではどんなものになるのかわからないという感じです。これに、バスレフポートをつけることにして、エンクロージャーを設計してみます。

材料は、たまたま立ち寄ったSeriaで購入した焼き目付の板材を中心に、自宅に在庫していた板材を使うことにしました。円形の穴を開ける数が多くなり、強度の問題も考慮に入れながら大きさや穴位置を考えて作っていきました。とは言え、それほど厳密なものではなく、ざっくりラフに考えて作りながら修正するといういきあたりばったりな作業になりました。と言うのも、安い板材を使っている関係で寸法精度に問題があり、そもそも設計通りに作ることはできなかったのです。資金に余裕があるのなら、DIYショップ等で寸法通りの板材を購入して、設計通りに切ってもらってパーツを用意した方がよいのかもしれません。
#トライ&エラーを繰り返して徐々に自分の腕を上げていくのも、素人DIYの面白さではありますが…。

円形の穴は、ホールソーと自在錐(フリーカッター)を利用して開けましたが、ホールソーはサイズが決まっているため少し小さめの刃を利用して穴を開けて、ファイルソーで穴を広げてヤスリで形を整えるという方法にしました。ちょっと苦労したのは、周波数分割器の部品の高さが穴経よりも高くて、どうしても円では入らない状態になっていたことです。単純な設計ミスなのか、そのために安くなっていたのか(今はちょっと値上がりしているようですが…)といったところです。仕方なく穴を削ることにしましたが、できるだけ穴を大きくしない方向で調整をして何とか見栄えを悪くしないように収めることができるようにしました。

組み立て途中で軽く配線して動作確認をしましたが、ツイーターの高音がスカスカな感じがしました。今回使ったツイーターには、50V4.7μFの電解コンデンサがはじめからついています。一方、周波数分割器には、100V6.8μFの電解コンデンサがついています。ツイーター側の4.7μFの電解コンデンサをパスして音を鳴らすとバランスがよい感じになった(個人の感想です)ので、ツイーターについていたコンデンサを取り外すことにしました。その後、配線をしたり吸音材(フェルト)を貼ったりして組み立てました。でき上がりはこんな感じになりました。

これまで作ってきたものの中では一番大きなものになりました。これ以上になってくると流石に置くところもなくなってくるので、今後のエンクロージャーづくりについて考えないといけないかなと思い始めています。

2024年9月1日日曜日

タイマーIC(555)をディスクリート部品で作ってみる

多くの方にとって何のことかわからないとは思うのですが、電子工作をやっているとよく名前を聞くタイマーICで「(NE)555(←Texas Instruments)」というICがあります。資料によると、1971年設計とあるのでかなり古くからあるICではあるのですが、今でも入手できるほどロングセラーなICです。これを、ディスクリート(単体)部品だけで作るキット(Evil Mad Scientistの「Three Fives」)があって、いつかは作ってみたいと思ったまま年月が過ぎていたのでした。
#Evil Mad Scientist社は、Bantam Tools社に買収されたようです。

その555のディスクリート基板共立電子産業が作っていると知って、たまらず購入してしまいました。前出の「Three Fives」とは設計が違いますが、目指すところは同じです。アメリカから個人で購入すると送料を含めてかなりのお値段になってしまいますが、国内でリーズナブルに入手できるとあっては、買わないという選択肢が思い浮かびませんでした。とは言え、いざ作るとなると部品点数が多いのでしっかり腰を据えて取り組まなければなりません。夏休みを待って時間に余裕ができたところで作り始めました。
#部品点数は多いものの技術的に難しい表面実装部品はまったくなく、組立説明書を見ながら地道にやっていけば問題なくできると思います。

最後にアクリルのカバーをつけるのですが、どうもうまくはまりません。よく確認すると、部品のサイズが違うものが1つ混じっていて、収まりが悪い状態でした。販売元に確認すると、お店のお盆休み明けに部品を送っていただけるとの連絡があり、後日無事に正しい部品を送っていただきました。(感謝!)ということで何とか夏休み中に完成させることができました。

次に、でき上がった555の動作確認をすることにします。だいぶ以前に555で簡単なテルミンのような楽器を作った記憶があったので、今回はそれを再現したいと思います。555の他に電源や抵抗、コンデンサ、ピエゾスピーカーが必要ということで、自室の電子部品ストック(新品ではなく廃品から使えそうな部品だけ取っておいたもの)などから探し出して回路を組んでみました。使ったものは以下のとおりです。
#部品や回路などは、AUTO Instructablesの「Theremin: an Electronic Odyssey [on 555 Timer IC ] *(Tinkercad)」を参考にしました。
※英語なのでGoogle先生に翻訳してもらいました。(^^;;;

  • 9V 006P電池
  • 抵抗10kΩ(茶黒橙金)
  • セラミックコンデンサ0.1μF(104)
  • CdSセル1MΩ
  • ピエゾスピーカー

電源を入れると、無事に音が出ました。CdSセルに手をかざして光を遮ると音程が低くなりました。これはなかなか感動しますね。実際の555のICチップは1立方cmの中に収まる程度の小さなものなので、わざわざその何倍もの大きさになるものを自分で作るというのはマニアックな趣味であることは自覚するところではあります。でも、こうしたことを通して様々なことに気づき、ICの構造や実際の働きを理解することは、とても重要なことではないかと思います。常々感じていることではありますが、「作ることで仕組みを理解する」というプロセスは、例えば「計算機」を作ることで計算の仕組みを理解するとか、「三角定規」を作ることで三角定規の役割や意味を学ぶというようなことにつながると思っています。

2024年8月26日月曜日

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

前回の続きです。Raspberry Pi Picoのビジュアルプログラミング環境として「Piper Make」を使ってLチカをやってみました。今回は、以前に見つけたもう一つの「BIPES」でやってみたいと思います。BIPESでは、MicroPythonが使えるようになっているPicoを使う必要があるのですが、以前にThonnyVisual Studio CodeでプログラミングをやったときにMicroPythonを使えるようにしたPicoがあるので、これを使ってLチカプログラムの動作確認をしていきたいと思います。
#PicoのプログラミングでMicroPythonを使えるようにする作業については、拙Blogの過去記事を御覧ください。

今回もLinux Mintで動かしている自作PCを使って動作確認をしますが、ブラウザはLinux版のGoogle Chromeです。今まであまりブラウザに触れていませんでしたが、Linuxでは(ライセンスの問題?で)Chromiumを使うことが多かったのですが、最近では「ソフトウェアマネージャー」からもGoogle Chromeが使えるようになって、LinuxでもGoogle Chromeを使っています。

〈BIPESを使ってみる〉
BIPESのサイトは、Piper Makeとは違って教育プログラムを提供するような感じではなく、あくまでビジュアルプログラミング環境を提供しているのみとなっていますが、それはそれで割り切って考えれば迷うこともなくてわかりやすいと評価することができます。問題点は、Piper Makeと同じくすべてが英語表記であることですが、難しいことはないと思いますので試用だけはしてみたいと思います。
#仕事に余裕があれば、こういうサイトの日本語翻訳にも取り組んでみたい気もしますが…。(お呼びでないかな)
#サイトを丸ごとGoogle翻訳で日本語化してみようと試してみましたがダメでした。

以下、Lチカまでの手順をまとめておきます。

  1. (Google Chromeで)BIPESのWebサイトを開く
    ※このとき、PicoはPCに接続しません
  2. 接続するマイコンボードを「Raspberry Pi Pico」に変更する
  3. 「Loops」から「repeat(while)」、「Logic」から「(true)」、「Timing」から「delay[1](seconds)」、「Machine」→「IN/OUT Pins」から「set output pin …」を取り出してプログラムする
  4. Picoを(USB-A↔micro USBケーブルで)PCに接続する
  5. 「Connect/Disconnect」ボタンをクリックして、Picoの接続先を選ぶ
  6. (マイコンボードを選択した窓の右にある)スタートボタンを押してプログラムを動かす

これで無事にLチカ動作確認ができました。使用感としては、一言に「ビジュアルプログラミング」と言っても、その言語の設計思想によって使用感や難易度が変わるということがわかりました。前回のPiper Makeは、micro:bitMakeCodeでのプログラミングに似ていると感じました。一方、今回のBIPESは、MicroPythonでのプログラミングにも近いように感じて、ビジュアルプログラミングからテキストベースのプログラミングへの橋渡しにもなるように感じました。ただし、私自身はビジュアルプログラミングとテキストベースのプログラミングに優劣があるとは思っていませんし、ビジュアルプログラミングを幼稚だとか将来的に卒業すべきものだとかというようには思っていません。目的や自分のスキルに応じて使い分けることができればよいのではないかと思います。

〈参考資料〉

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

2024年8月20日火曜日

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

以前の続きです。これまでは、C/C++やMicroPythonThonnyVisual Studio Code)でのプログラミングに挑戦してきましたが、学校での使用となるとまだまだハードルが高いと思います。(現状では、ということで…)そこで、ScratchMake Codeのような、いわゆるビジュアルプログラミング環境を使ってRaspberry Pi Picoのプログラミングができないか調べてみました。すると、「Piper Make」と「BIPES」というビジュアルプログラミング環境を見つけることができました。両方とも英語なので「ビジュアルプログラミングだから簡単」とは言えないところがありますが、使用感だけでも確認してみようと思います。

〈Piper Makeを使ってみる〉
Piper Makeの使い方については、SunFounder(米国にある、ArduinoやRaspberry Piなどを活用したSTEAM教育に力を入れている企業と紹介されています)のテキストが充実していたので、それらを参考にしてPicoの動作確認をしていきます。参考資料は以下のとおりです。

ビジュアルプログラミングをはじめる前に、セットアップ作業が必要です。今回もLinux Mintで動かしている自作PCを使って作業を行います。また、PCとの接続にはPicoの他にUSB-A↔micro USBケーブルが必要です。作業した内容は以下のとおりです。

  1. Piper Makeのサイトを開く
    ※PicoとPCとの接続は、後で指示されるまで行わないでください
  2. 画面上の「SETUP MY PICO」ボタンをクリックする
  3. ガイドのウインドウが表示されるので指示に従ってセットアップ作業を行う
    ※Picoにファームウェアがインストールされます

これで動作確認の準備が整いました。試しにLチカプログラムを動かしてみたいと思います。デフォルトでは「STORY」モードになっていると思いますので、MODEレバーの側にある「CREATIVE」をクリックしてビジュアルプログラミングができる状態にします。Lチカまでの手順を以下にまとめておきます。

  1. 「NEW PROJECT」ボタンをクリックしてプロジェクトを作る
  2. 新しく作ったプロジェクトをクリックしてビジュアルプログラミング画面に入る
  3. 「Chip」から「Start」「turn pin(0) (on)」「wait (1) seconds」、「Loops」から「repeat forever …」を取り出してプログラムする
  4. 「CONNECT」ボタンをクリックしてPicoを接続する
  5. 「START」ボタンをクリックしてプログラムを動かす

これで、PicoのLEDが点滅したので、Lチカ成功ということになりました。作成したプログラムは、「DOWNLOAD」をクリックするとPNGファイルとして保存することができます。CREATIVEモードのトップ画面に「IMPORT PROJECT」ボタンがあるので、これをクリックしてPNGファイルとして保存したものを読み込むと保存したところから編集作業をすることができます。仕組みとしてはとても面白いと思いますし手軽にできるのがよいと思うのですが、Google Chromeで日本語に翻訳しても部分的にしか日本語にならないので、小学校の授業で使うのは難しいかもしれません。
#プログラミング部分については、「ビジュアルプログラミングで Raspberry Pi Pico が扱える「Piper Make」を軽く試した時のメモ(Maker Pi RP2040 でも試す)」を参考にしました。

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

2024年8月13日火曜日

Behringerのアナログドラムマシーン(RD-6)とアナログベースラインシンセサイザー(TD-3)を同期させてみた

前回の続きです。BehringerRD-6に続いてTD-3を購入し、両方とも試用するところまではやってみました。次は、他の楽器とつないで一緒に音を鳴らすことに挑戦してみたいと思います。はじめの一歩として、そもそも対で使われることが想定されているRD-6とTD-3を同期させてみます。
RD-6の基本コントロールマニュアル(なぜか「日本語版クイックガイド」という名前で保存先を聞かれますが、中身は「基本コントロールマニュアル」です)も見つけたので、今回はこれも参考にしています。

事情により、現在自室で様々な取組を同時に行っているため、かなり手狭で楽器の試用環境を広げることができません。とりあえずつなげて同期させて音が出るかだけを確認するため、Amazonで見つけたAU-401(←Google先生に聞いていただければ…)というミニステレオプラグ(TRS)対応のヘッドホン出力用ミキサーを購入し、RD-6とTD-3のそれぞれのPHONE出力からAU-401につないで、以前このBlogで紹介したXY-C50L(←YouTubeの動画)というステレオD級アンプにつないでスピーカーから音を出すという構成で動作確認をすることにしました。

同期の方法はいくつかあるようですが、今回はSYNC入出力を使うことにしました。ドラムマシーンのRD-6からの信号でTD-3を動かしたいと思います。そのためのTD-3側のセッティング方法を以下に箇条書きでまとめておきます。

  • シーケンスが止まっているか確認する(止まっていなければ止める)
  • 「Function」ボタンを押す
  • 「BACK」と「WRITE/NEXT」ボタンを同時に押す
    ※以下3秒以内に何もしないと変更モードが解除されます
  • 「4」キーボタンを押してクロックソースを「TRIG」に設定する(1=INT、2=MIDI、3=USBとなっている)
  • クロックレートを設定する(5=1PPS、6=2PPQ、7=24PPQ、8=48PPQとなっている)
    ※デフォルトが7=24PPQだったので、そのままにしました
  • RD-6のSYNC OUTとTD-3のSYNC INをTSケーブルでつなぐ

これで準備完了です。TD-3の「START/STOP」ボタンを押してから、RD-6の「START/STOP」ボタンを押すとベースとドラムが同時にスタートして同期した状態で演奏されました。なかなか面白いです。これまでは、ドラムとベースラインの演奏はMIDI音源だけでやってしまっていたので、つなげることを意識する必要がなかったのですが、今回のようにRD-6とTD-3をつないで同期させて音を鳴らすというのは、MIDIがない時代に戻ったようで不便でもあり電子楽器を動かしている楽しさもありで結構ハマりそうです。

今後やってみたいこととしては、KORGSQ-1(ステップシーケンサー)でドラムやベースにタイミングを与えつつハーモニーをつくり、BehringerのSWING(MIDI&CV/Gateキーボード)で様々な音源をコントロールしながら演奏してみたいと思っています。

2024年8月5日月曜日

Behringerのアナログベースラインシンセサイザー(TD-3)を使ってみた

以前からBehringerの電子楽器に注目して少しずつ試しているところなのですが、今回は新たにアナログベースラインシンセサイザー(TD-3)を購入しました。以前に購入したアナログドラムマシーン(RD-6)と組み合わせて使えば、RolandTR-606(←現在はSoftware Rhythm Composer)とTB-303(←こちらもSoftware Bass Line)と同じような組み合わせで使えるということになります。
#TR-606とTB-303との組み合わせにについては、公式の記事がありましたので、詳しく知りたい方はどうぞ。

そもそもTR-606(←TR-06としてアップデート販売されています)にしろTB-303(←TB-03としてアップデート販売されています)にしろ、販売されていた当時には使ったことがなく、今でも手元にあるRolandの楽器は、80年代後半から90年代のものばかり。そもそもRolandの楽器との出会いは、若かりし頃、JUNO-106(←現在はSoftware Synthesizerとして販売されている)を使っていたところから始まります。当時人気だったYAMAHADX-7には手が出せなかったこともあって、それ以降もRolandの楽器を多く使っていましたが、その後MacとMIDI音源を使ってDTMを始めてしまったので、ベースラインシンセへの需要が高まることはありませんでした。
#今では、KORGやYAMAHA、ensoniqの楽器もありますが、はじめてのJUNO-106は、早いタイミングで手放してしまいました。

歳を重ねても音や音楽、楽器への興味はもち続けていて、自室の楽器も少しずつ増えているのですが、そんなコレクション(?)の仲間入りをしたのが今回のTD-3というわけです。到着後、箱から出してクイックスタートガイドも参考にしながらいじってみました。

アナログシンセサイザーだということで15分程度の暖機運転(?)が必要とのこと。少し待ってから「START/STOP」ボタンを押して、あらかじめプログラムされているベースラインのパターンを聴いてみました。独特なベース音で機械っぽさやチープさはあるのだけれど、ベースラインを再生しながらも直感的な音作りができて飽きずに遊んでいられる感じの楽器でした。他の音源のベース音と聴き比べたり、一緒に鳴らして音を太くしたりしても面白いかもしれないと思いました。

クイックガイドだけでは使い方がはっきりしないところがあったのでGoogleで検索してみると、「基本コントロールマニュアル」というものが出てきました。Behringerの日本代理店であるエレクトリのWebサイト内にあるようで、PDFファイルになっています。

これを使って、他の楽器との連携や他の楽器からのコントロールにも挑戦して、楽器いじりを楽しみたいと思います。

2024年8月1日木曜日

Visual Studio CodeでRaspberry Pi PicoのMicroPythonプログラミングに挑戦

以前の続きです。Raspberry Pi Pico/Pico Wのプログラムを作成する環境として、前回はThonnyを使ってMicroPythonでのプログラミングを試してみました。今回は、最近よく使われているVisual Studio CodeをMicroPythonでの開発環境として使うことができるようにしてみたいと思います。とは言え、Visual Studio Code自体は、MicroPythonにもPico/Pico Wにも特化したものではなく汎用性の高いIDEであるため、それなりに準備を整える必要があります。備忘を兼ねて、その作業手順をまとめておきたいと思います。
#今回は、「Raspberry Pi Pico W の LED を VS Code を使って、点滅させてみた。(RP-Pico チュートリアル)」も参考にしました。
#Visual Studio CodeでC/C++を使ったPico/Pico Wのプログラミングもできますが、今回はチャレンジしていません。

〈Visual Studio Codeのセッティングとプログラミング〉
Visual Studio Codeのインストール作業については、Thonnyと同様にUbuntu系のディストリビューションを使っていればソフトウェアマネージャで簡単にインストールすることができるのですが、どうもインストール後の不安定さが気になったのでダウンロードサイトから.debファイルをダウンロードしてインストールしてみました。作業をした時点では、ソフトウェアマネージャ(Flatpak)ではバージョンが1.90.…となっているのに対して、ダウンロードしたものはバージョンが1.91.…となっていました。とりあえず、ダウンロードした最新バージョンのものを使うことにして作業を進めました。

インストール後にはじめて起動したとき、日本語表示が必要なら日本語のLanguageパックをインストールした方が良いという案内があって、それに従ってインストール作業をしました。Pico/Pico Wとの接続に必要なのは、「MicroPicoGitHub)」という拡張機能です。ウィンドウ左側のメニューアイコンから「拡張機能」を選択して、検索窓に「micropico」と入力するとPico/Pico w用の拡張機能が表示されます。これをインストールすれば準備完了のはずですが…。

よく見ると、拡張機能のMicroPicoの項目に軽微な不具合があることがアナウンスされています。「workspace」への対応に問題があるというような内容が書かれているのですが、そんなことより面倒な問題が発生しました。MicroPicoをインストールしたままPico/Pico Wをつなぎ(「Pico Connected」と表示される)、以前Thonnyで作った「main.py」ファイルを開いてVisual Studio Codeのウィンドウ下部に位置する「ステータスバー」にある「RUN」をクリックすると、プログラム通りの挙動するところまでは順調にできました。ところが、一度Visual Studio Codeを終了させて、再度起動するとステータスバーにあったはずのMicroPicoのメニューがなくなっているのです。どうやら、「MicroPico」拡張機能が正常に起動していない感じだったので、「拡張機能」メニューから「MicroPico」を選んで「無効にする」→「拡張機能の再起動」→「有効にする」という手順で拡張機能を起動し直しました。すると、ステータスバーのメニューが復活することががわかりました。面倒ではありますが、使えないというほどでもないという微妙な状況。試しに、実験的なことばかりに活用してるiMacでもやってみました(macOS版Visual Studio Code 1.91.…を使いました)が、こちらは全く問題なくMicroPicoのメニューが消えることはありませんでした。

ということで、心もとないところは多々ありますが、Linux版Visual Studio CodeでのPico/Pico Wの動作実験の環境ができました。

挙動としては、Visual Studio Codeを起動した状態で、MicroPythonに対応したファームウェアを入れてあるPico/Pico Wをつなぐと「Pico connected」と表示されます。Visual Studio Codeの「ファイル」メニューから「新しいファイル…」でファイル名を決めて新しいファイルを作ります。プログラムは、MicroPythonで書きますので、.pyファイルを作ってプログラムを書き込めばよいということになります。今回は、以前にThonnyで作った「main.py」があったので、これを開いて前面に表示させて、ステータスバーの「RUN」をクリックしました。すると、「RUN」が「STOP」に変わってmain.pyに書かれたとおりに動作しました。次に別のプログラムを動かしたい場合は一度「STOP」をクリックして動作を止めてから、プログラムを変更し終わったら再び「RUN」をクリックして動作確認します。
#この際のファイル名は、「main.py」でなくても問題ありませんが、最終的にPico/Pico Wに書き込んで自立的に使いたい場合には、「main.py」でないと思い通りに動いてくれません。

Pico/Pico Wにプログラムしたものを書き込みたい場合は、「表示」メニューから「コマンドパレット」を選択し、コマンドを入力する窓に「MicroPico: Upload current file to Pico」と打ち込んでEnterキーを押すと書き込み作業をしてくれます。この辺りは、Thonnyに比べるとやや敷居が高い気がします。「他の用途でVisual Studio Codeを使用していて、その操作性に慣れているから同じ環境でPico/Pico Wを使いたい」という場合には、Visual Studio Codeを使うというのはよい選択肢だと思いますが、Thonnyの方がシンプルで使いやすく初学者にも優しいように思いました。

〈参考資料〉

〈Lチカプログラム〉

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

2024年7月20日土曜日

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

前回の続きです。Raspberry Pi PicoシリーズのPicoとPico Wがあったので、いじってみることにしたというのが前回までの話。とりあえず、Lチカまでやってみましたが、もう少し簡単にできないものかと思って最近流行りの(?)のMicroPythonで動かす方法を試してみることにしました。実験環境は、いつものLinux Mintで動かしている自作PCです。
#今回もCQ出版社の「ラズベリー・パイPico/Pico W攻略本」を参考にしました。

〈MicroPython(Thonny)のセッティングとプログラミング〉
MicroPythonでプログラムするためにThonnyというツールをインストールして使うことにします。Ubuntu系のディストリビューションで「ソフトウェアマネージャ」を使っていれば簡単にインストールすることができます。それから、Pico側もMicroPythonでプログラムできるようにファームウェアを書き換えておきます。

PicoにはPicoの、Pico WにはPico WのMicroPython用ファームウェア(.uf2)があるので、それぞれ最新のものをダウンロードしてBOOTSETボタンを押しながらUSBケーブルで接続してコピーしました。

インストールしたThonnyを起動すると言語(Language)と初期設定(Initial Settings)を聞かれるので、日本語とRaspberry Piを選んでおきます。「Let’s go!」ボタンをクリックするとArduino IDEにも似た雰囲気の窓が開きます。ここでもう少し設定を変更すると使いやすくなります。(Simpleモードになっているとアイコン以外のメニューが表示されないので、右上の「通常モードに変更」をクリックします。設定を変更したらThonnyを一度終了してもう一度起動させます)「表示」メニューから「ファイル」にチェックを入れて「ファイル」の窓を表示させます。「実行」メニューから「インタプリタ設定…」を選択し、コードを実行するインタプリタを「MicroPython(Raspberry Pi Pico)」にしておきます。

後は、いつものようにLチカプログラムで動かしてみます。試したコードは以下の通りです。

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

挙動として、Thonnyを起動する前にPico/Pico WをPCにつないでおくとThonnyを起動した後の作業がスムーズです。PC内にMicroPythonで書いたプログラムファイル(.py)を保存して実行することも可能ですが、Pico/Pico W自体に「main.py」ファイルとして保存することで、自立(Pico/Pico W単体に電源供給するだけ)してプログラムを動かすことができます。その場合、Thonnyを起動した状態のままだとThonnyからのコントロールが優先され、Thonnyを終了させてUSBケーブルをつなぎ直すと中に保存したmain.pyに従って動作するようです。
#Pico/Pico Wの中に保存された.pyファイルは、「BOOTSEL」ボタンを押しながらPico/Pico Wをつないでもドライブの中に入っていません。Thonnyからしか見ることができないのです。
ロジカラブログさんの「ラズパイPicoの使い方 MicroPython&開発環境Thonny、SSLエラーの対処方法も紹介」がとてもわかり易かったので参考として紹介しておきます。

ということで、Thonnyを使ってMicroPythonでPico/Pico Wのプログラムを作って動かすことができるようになりました。このThonnyは、micro:bitESP32などのプログラムもできるようなので、ツールごとに開発環境を変えずに同じ環境でプログラムしてみたい方は、Thonnyでやってしまうというのもありではないかと思いました。
#Arduino IDEでもライブラリの追加で使うことができるようになるかもしれませんが…。

〈参考資料〉
MicroPythonプログラミング・ガイドブック」CQ出版社

2024年7月13日土曜日

LinuxでRaspberry Pi Picoを使ってみる

これまで、Raspberry Piのことは何回か記事にしてきましたが、以前のRPiのアップデート作業の際に、購入はしたものの放置状態だったRaspberry Pi PicoシリーズのPicoとPico Wがあることを思い出し、何か使えることはないかと思ってちょっといじってみることにしました。

とは言え、買ったときのこともその使い方もあまり覚えていないので、Google先生にお世話になりながらいろいろと調べて、いくつかのプログラミング方法があるというところまではわかってきました。この手のマイコンボードは様々なものを使ってきましたが、これからも使い続けたいと思うものはだいぶ絞られてきて、現状だとArduino系のものかmicro:bitかというくらいで、他のものはほとんど使わなくなっています。絶対にPico/Pico Wを使わなければならないというほどの需要はないのですが、使い勝手くらいは試してみようと思ってチャレンジすることにしたのでした。
#今回は、主にCQ出版社の「ラズベリー・パイPico/Pico W攻略本」を参考にしました。

まずは開発環境を整えるところから。アプローチとしては、大きく2つあって、1つ目が「C/C++やMicroPythonでプログラムを作る」で、もう1つが「ビジュアルプログラミング環境を利用する」です。手始めに、C/C++でのプログラミング環境を構築して、Picoを動かしてみたいと思います。プログラミング環境(SDK)を整えるのは、Linux Mintで動かしているいつもの自作PCです。

〈C/C++でのプログラミング〉
Raspberry Pi Documentation(Raspberry Pi公式)に、「Microcontrollers」として「Raspberry Pi Pico and Pico W」に関する記述があります。「The C/C++ SDK(英語です)」を読むと、今回の作業で必要なC/C++での開発に関するSoftware(SDK)が、GitHubにあることがわかりました。そこでさらに、てつふくブログさんの「Raspberry Pi Picoの開発環境構築 (Ubuntu PC)」を参考にしながら、GitHubで公開されているSDKを使えるようにセットアップしていくことにしました。

その前に、Gitコマンド(GitHubのバージョン管理システムを使うためのコマンド)が使えるように、インストール作業をしておきます。(wgetは、すでにインストールしてありましたが、まだの場合はこちらもインストールしておく必要があるようです)これで準備が整ったので、後はてつふくブログさんの記事に書かれている通りにセットアップします。(作業領域については、ご自分の環境に合わせてフォルダを作るなどしてください)

  • $ git clone -b master https://github.com/raspberrypi/pico-sdk.git
  • $ cd pico-sdk
  • $ git submodule update --init
  • $ cd ..
  • $ git clone -b master https://github.com/raspberrypi/pico-examples.git

その他に必要なツール類をaptコマンドでインストールします。

  • $ sudo apt update
  • $ sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential

手始めにLチカで動作確認するために、さらに作業を進めていきます。Gitで構築した「pico-examples」フォルダ内で作業を行います。

  • $ cd pico-examples
  • $ mkdir build
  • $ cd build

「build」フォルダ内で、パスの設定をします。

$ export PICO_SDK_PATH=../../pico-sdk

この状態で「cmake ..」コマンドを実行すると、C/C++ SDKでの作業環境が整うので、「pico-examples」フォルダの方に移動して、「build」→「blink」フォルダに移動し、「make -j4」コマンドを実行すると、「blink.uf2」という実行ファイルが出来上がります。これを「BOOTSEL」ボタンを押しながらUSBケーブルでPCに接続したPico(USBストレージのように見える)に保存します。中に見える他のファイルについてはいじらずに、.uf2ファイルをコピーするだけです。コピーが終わると自動的に再起動され、無事にLチカができました。
あんパンさんの「Arch LinuxでRaspberry Pi Picoに繋いでLチカするまで」が参考になりました。

作業の手順は難しくはないものの、コマンドでの環境構築はそれなりにハードルが高く万人向けとは言えないかもしれません。今回は長くなってしまいましたが、次回以降、もう少し簡単な方法を取り上げてみたいと思います。

〈参考資料〉

2024年7月2日火曜日

中古で買ったアンプ内蔵の大きなウーファースピーカーシステムを試す

先日ふらっと立ち寄ったHARD OFFで大きなウーファースピーカーを見つけてその場で詳しく調べてみたところ、ビズライフという会社が取り扱っているX-BEAT(←ブランド名?)のDSP-2810BK(ブラック)というアンプ内蔵のウーファースピーカーシステムだということがわかりました。付属の左右スピーカーが別のものとセットになっているような感じで置いてあったので、とりあえず一緒に並べてしばらく眺めてみました。

中央の大きなウーファースピーカーは、インパクト大で使ってみたいと思えました。ただ、スピーカーユニット自体は、口径が10cmしかなく、周りの白色のプラスチックの縁(内側に青いLEDが仕込まれていた)を含めて16cmくらいになるので、一見すると口径16cmのスピーカーユニットのように見えて、迫力のある低音が期待できるような印象を与えようとしているようにも見えます。それから、左右スピーカーの1つに分解しようとして失敗したような傷があり、音が出るという点では問題ないものの、難アリの中古品(ジャンク手前)だったのです。買おうかやめようかと迷ったのですが、ウーファーの音も確かめてみたいし、エンクロージャーなら自分で作ってしまえばよいと考えて購入することにしました。

自宅に戻って、いつものようにLinux Mintで動かしている自作PCにつないで音を確認したところ、うるさいくらいに低音が響くスピーカーシステムだということがわかりました。曲によってはこのくらい低音が響いた方が良いこともあると思いますが、好みは分かれるところではないかと思いました。このスピーカーシステムは、アンプ内蔵で低音と高音のバランス調節ができるので、曲によって調節しながら使うのもありではないかと思いました。否、音楽を聴くというより映画を観るような用途で使う方が良いかなと思いました。

それ以上に問題だと思ったのは、とにかく明るいこと。青色のLEDが内蔵されていて常時点灯しているのですが、これが気になるくらいに明るいのです。中央のウーファースピーカーについているLEDには、白色半透明のカバーがかかっているのでそれなりに光が抑えられているのですが、左右のスピーカーは、透明なプラスチック筐体に黒いプラスチックでカバーがしてあって、透明部分から青い光が漏れてくるような作りになっています。PCのモニタ裏にウーファースピーカーを置いて、モニタの両脇に左右スピーカーを置くような使い方をすると考えると、画面を見ながら音楽を聴いたり映像を観たりする際に、光が気になって音楽や映画の世界に没頭できない気がしたのです。
#前のオーナーさんは、うるさすぎる低音かまぶしいLEDのどちらか(あるいはその両方)を改善しようと試みるも、うまく分解できずに断念したのではないかと推察しました。

まず、壊れかけた筐体からスピーカーを取り外して回路をたどって音声信号だけをスピーカーにつなげるようにしてから、エンクロージャー作りに取りかかりました。DAISO300円スピーカーによく似ていて、それよりも少し小ぶりなスピーカーが左右に2つずつついています。エンクロージャーは、いつものようにDAISOで扱われている木製の箱(容積にして大体1.3Lくらいのもの)を活用することにしました。また、このスピーカーにはもともとパッシブラジエータのようなものがついていて、低音重視なのがわかっています。それに習って、バスレフポート付きのエンクロージャーを作ってみました。

左右は同じように作ってありますが、2つのスピーカーの位置関係を90度に配置して、音の広がりを意図するような作りにしました。(2つのスピーカーユニットの内、片方のスピーカーユニットの+/-を逆に接続すると位相が逆になって音が小さくなるかもしれないとか、いろいろな実験の素材として面白いかも)実験的な意味合いもあって、底面をふさがずにオーディオボードの上に置くだけで閉じているので、持ち上げると音が響きにくくなります。現状では、十分に満足できる音を得ることができていますが、新しいアイデアを思いついたらまたいじり始めるかもしれません。

2024年6月22日土曜日

DAISO 300円スピーカーのエンクロージャーを自作する

以前、スピーカーのエンクロージャーを自作したことについてまとめましたが、その後もスピーカー作りにハマって作り続けています。
#徐々に試してみたいことが増えてきて(複雑になってきて)、1つのスピーカーを完成させるのに時間がかかるようになってきています。

普段メインで使っている自作PCには、YouTubeなどでも大人気なDAISO300円スピーカー(税込330円)をつないでいました。特に不満もなく快適に使えていたのですが、他のスピーカーを試すために抜き差ししたり移動したりしているうちに調子が悪くなり、音が出にくくなってしまいました。分解して中を見ると、スピーカーの導線が断線していました。この状態から、単純に修理するだけではつまらないと思い、修理のついで(?)にエンクロージャーを自作してみることにしました。

材料は、いつものようにDAISOで扱われている木箱や木の板、キルト芯(圧縮タイプ)などを使いましたが、コネクタやケーブルは、秋月電子Amazonで購入したオーディオ用のものを使いました。その他に、バスレフポートを付けたり密閉性を高めるために隙間テープを使用したりして、チープなスピーカーユニットを常用するための工夫を盛り込んでみました。出来上がりはこんな感じになりました。

アンプについては、Amazonで見つけて2,670円で購入したVbestlife(←Amazonのショップページ)のZK-MT21(←YouTube動画)というBluetooth対応2.1chパワーアンプ(←これまで使っていたもの=TPA3116D2搭載)ではなく、同じくAmazonで見つけて1,699円で購入したSinilinkXINYI Sini Audio(←YouTube動画=XY-C50L)というBluetooth、USBメモリ、AUX-INに対応したステレオD級アンプ(AP3050D搭載←データが見つかりません…)を使って音の確認をしました。
#同じアンプがいろいろなところで販売されています。私が買ったものよりもさらに安く扱っているところもあるようです。

同じスピーカーユニットでも、エンクロージャーとアンプを変えるとこんなにも音が変わるのかと思うほど、好みの音で鳴ってくれるようになりました。エンクロージャーの容積が約2Lくらいに大きくなったことで、音の響きが良くなったのかもしれません。300円スピーカーに付いているアンプは、低音を抑えてあるのであまり低音が響かなかったのですが、今回使ったアンプとバスレフポートの組み合わせで低音もよく鳴るようになったと思います。

反面、ボーカルの入った楽曲では楽器の音に厚みを感じるものの若干歌声が埋もれてしまうような印象でした。ナレーション入りの動画などでは特に問題は感じませんでしたが、ボーカルが入った曲をしっかり聴きたい場合はイコライザーなどで調節する必要があるように感じました。
#その後、ボンドで取り付けた側面の板に隙間があることがわかったので、密閉するために木工パテで埋めたところ、音の輪郭がはっきりするようになってボーカルもだいぶ聴きやすくなりました。

DAISO 300円スピーカーは、もともと値段の割に良い音で鳴ることで有名なスピーカーなので、低音が響かない代わりにボーカルがしっかりと聴こえます。そもそもこのスピーカーは、そういうバランスで作っているとも言えるので、バランスの調整はなかなか奥が深いと思いました。

2024年6月16日日曜日

「micro:bitでフィジカル・コンピューティング」のためにいろいろなブレイクアウトボードを使ってみる

以前から、micro:bitを使ってロボットカーを動かすなどさまざまな実験をしてきましたが、簡単にいろいろなものをつないで試用するために地味に重要なのは「ブレイクアウトボード」でした。私の場合は、以前から秋月電子通商の「micro:bit マイクロビットブレイクアウトボードキット(AE-MBIT-BREAKOUT_V)」を使っていますが、自宅には他にも同じような機能をもつブレイクアウトボードをいくつか買ってあります。今回は、それらを紹介しつつ使用感の違いなどを比べてみたいと思います。

1つ目は、先ほど紹介した秋月電子の「AE-MBIT-BREAKOUT_V」ですが、1個650円で購入しました。縦型で安定感もあり、一番良く使っています。ブレイクアウトボードとして完成されている感があるので、ロボットの中に組み込むことはあまり想定されていない設計になっているように思います。私は、樹脂製のワンタッチスペーサをつけて使っていますが、スペーサではなくネジ止めで固定することも可能です。

このブレイクアウトボードは、micro:bitを挿して前面と背面にピンコネクタなどが接続できるようになっています。前面側には、「0」「1」「2」「3V」「GND」の二極ネジ端子台(ターミナルブロック)があり、背面側には、「P3」〜「P16」「3V」「P19」「P20」「GND」のピンソケットがあります。それぞれ二極ずつ挿せるようになっているので、接続するものの配置を工夫することもできます。(同時に2つのものをコントロールできるかどうかは試していません)

2つ目は、SparkFunの「Qwiic micro:bit Breakout」で、Switch Scienceで1個1,155円でした。シンプルで割り切ったデザインになっているので、ロボットの中に組み込むのには向いていると思います。スペーサ用の穴は2つだけなので、固定の仕方には工夫が必要かもしれません。

こちらのブレイクアウトボードは、ピンヘッダが1列についていて、左側から「GND」「GND」「3V3」「0」〜「16」「19」「20」と並んでいます。私が取り組んでいるロボットカーを動かすような用途であれば、このブレイクアウトボードが1番シンプルでわかりやすく、初学者向きなのではないかと思いました。

3つ目は、Kitronikの「Edge Connector Breakout Board for the BBC micro:bit」で、Switch Scienceで1個715円でした。エッジコネクタは自分でハンダ付けするタイプのもので、ハンダ付けが苦手でなければお買い得感はあると思います。ただ、教材としての使用を想定すると、ハンダ付けが必要な箇所が多いため、あらかじめハンダ付けされているものを選んだ方が幸せになれると思います。

こちらのブレイクアウトボードは、二極のピンヘッダがついていて、左側から「3」「0」「4」〜「7」「1」「8」〜「12」「2」「13」〜「16」「3V」「0V」「0V」と並んでいます。この並び方は、micro:bitの端子部分の並び方(入出力端子)と同じになっています。これをわかりやすい/使いやすいと思うか、そうでないかは意見が分かれるところではないかと思いました。

これらの試用をまとめている間に、「カードエッジコネクタ」だけを使えば、安価に目的に合った使い方ができることを教えてもらって、ちょっと目からウロコ状態になりました。調べてみると、いろいろなところで取り扱いがあるのですが、今回はSwitch Scienceで1個330円で購入しました。モータドライバICモジュールをカードエッジコネクタをつけてしまえば、ロボットカー作りに特化したブレイクアウトボードが出来上がってしまうのではないか、これで配線ごちゃごちゃ問題も一気に解決するのではないかと期待を膨らませています。(カードエッジコネクタのピンのピッチとユニバーサル基板の穴のピッチが合わないのが難点ですが…)

2024年6月9日日曜日

Linux MintのSSDをより大きなものに換装する(SSDのお引越し)→結局再インストール

様々な作業で常用している自作PCLinux Mintで動かしている)には、256GBのM.2 SSD(SATA)を載せていたのですが、安く手に入れたものを実験的に載せたまま使っていました。楽器の試用アンプ&スピーカーの実験ロボットカー作りなどなど、いろいろなことをやっている中で、要所でPCが必要になる状況があって、ソフトをインストールするにも作業環境を整えるにもファイルを作るにも、SSDの容量不足が作業効率に影響するようになってきてしまいました。この容量不足を解消するために、起動SSDを容量の大きなものに換装(引っ越し)することにしました。

今回の作業は、技術評論社の⁠gihyo.jp⁠で公開されている「より大きな容量のSSDにデータ移行する」を参考にしました。コピー先として、512GBの普通のSATA SSDをPC内部に接続して、USBメモリにLinux Mintのブートイメージを焼いておいたものをPCに挿して起動しました。ここからの作業は、以下の通りです。
#PC内部に接続したコピー先として用意したSSDは、フォーマットされていなかったので先にFAT32でフォーマットしておきました。この作業が必要かどうかは検証していないので不明です。

  1. Linux Mint(Lm)メニューから「GParted」を検索して起動する。
  2. 起動したGPartedで、「GParted」メニューから「Devices ▶」とたどって、コピー元とコピー先のSSDが認識されているか確認する。(「View」メニューから「Device Infomation」にチェックを入れておくとこの後の作業が楽になります)
  3. コピー元のM.2 SSDのパーティションテーブルを確認し、コピー先のSATA SSDも同じ設定にする。(「Device」メニューから「Create Partition Table」を選択して、「partition table type」のプルダウンメニューから同じパーティションテーブルを選んで「Apply」ボタンをクリックします)
  4. コピー元の1つ目のパーティションの上にマウスカーソルをもっていって右クリックし、「Copy」を選択する。
  5. コピー先の未設定のパーティションの上にマウスカーソルをもっていって右クリックし、「Paste」を選択する。パーティションのサイズ変更などができるウィンドウが開くので、設定を変更せずのそのまま「Paste」ボタンをクリックする。
  6. コピー元の2つ目のパーティションの上にマウスカーソルをもっていって右クリックし、「Copy」を選択する。
  7. コピー先の未設定のパーティションの上にマウスカーソルを持っていって右クリックし、「Paste」を選択する。パーティションのサイズ変更などができるウィンドウが開くので、パーティションサイズを最大にしてから「Paste」ボタンをクリックする。
  8. GParted画面中央あたりにある緑色のチェックマークをクリックするとコピー作業が始まる。(気長に待つ)
  9. コピーが完了したら、起動に使ったUSBメモリを抜いて、コピー元のSSDをPCから外す。(Flagsの設定が引き継がれなかったので、「Partition」メニューから「Manage Flags」を選択して、「boot」と「esp」にチェックを入れました)

これで起動SSDのクローンは終わったはずです。この状態から、PCの電源を入れて起動させました。電源は入るものの、UEFIの設定をして起動ドライブの確認をしてから保存&再起動してもLinux Mintは起動してくれませんでした。電源ONの後、起動プロセスが動き出さない感じで、SSDのクローンは失敗したと判断しました。
#GPartedでM.2 SSDを見たときに、UEFIを使う場合の本来の設定とは違う設定になっていて違和感を覚えたのですが、それが原因かどうかは検証していないのでわかりません。

仕方がないので、OSの再インストール作業をすることにしました。幸い、もともと使ってたM.2 SSDはそのまま手元にありますので、USBに変換する基盤に乗せてPCに挿せば、中のデータを使うことができます。インストール先となるSATA SSDは、いろいろといじってしまったのでフォーマットからやり直してクリーンインストールすることにしました。無事にインストール作業が完了し、はじめに行う様々な設定を終わらせましたが、以前の状態に戻すにはまだ時間がかかるので、ぼちぼちやっていきたいと思います。

2024年6月1日土曜日

格安アンプIC(PAM8610)モジュールとDC-DCコンバータIC(MT3608)モジュールを使うときのノイズ対策

このところ、アンプとスピーカーの実験にハマっているところですが、Amazonで見つけた格安アンプIC(PAM8610)モジュールにDC-DCコンバータIC(MT3608)モジュールを組み合わせてパワーアンプシステムを使ったときに、ノイスがひどくて困ったところから偶然に対策が見つかったので、本当にその対応で良いのかを含めて考えてみたいと思います。
#いつものことながら、間違えている可能性もありますので真似される場合は自己責任で。

アンプとスピーカーの実験の音源として、Linux Mintで動かしている自作PCから、Bluetoothでスピーカーにつないで音を出しているのですが、電波状況によって音が割れたり遅延が発生したりとなかなか手強い状態で、これを何とかできないかといじりだしたのが始まりでした。
#自作PCには、Bluetooth 2.1対応のドングル(PLANEXBT-MicroEDR1X)を挿して、RYECHER K16というオーディオ信号をBluetooth化する機器に接続しています。これまでは、ここにDAISO300円スピーカーを接続して使っていました。

これまで使っていたDAISOスピーカーを外してPAM8610アンプICモジュールとMT3608 DC-DCコンバータICモジュールを組み合わせてパワーアンプシステムを作成し、自作エンクロージャーに収めたスピーカーをつなぎました。MT3608 DC-DCコンバータICモジュールの出力電圧は、12Vに設定しました。(テスターで電圧を測りながら、ポテンショメータを回して調節しました)この状態で電源を入れると、スピーカーから発振しているような音が出ました。過去にアンプとスピーカーをつないで電源を入れたときに出てきた音(ノイズ)とはちょっと違う印象を受けました。以前は、アンプのボリュームを上下させると、ノイズ自体の音量が上がったり下がったりするだけだったのですが、今回は、ボリュームの上下で音程が変化しました。(シンセサイザーみたい←これはこれで研究してみたい気もします)

そこで、発振している可能性があるとするとDC-DCコンバータかなと当たりをつけて、ポテンショメータを回してノイズの変化をみることにしました。すると、電圧を低くするとノイズは消えていくのですが、完全にノイズが消えたところでスピーカーから何の音も出なくなりました。おそらくアンプ回路を動かすための最低電圧を下回ってしまったものと思います。逆に電圧を高くしていくと、発振の拍の間が長くなっていき発振が収まることがわかりました。このときの電圧がだいたい24Vでした。12Vの2倍ということも、発振が収まった理由なのではないかと直感的に感じました。
#その他の対策として、MT3608 DC-DCコンバータICモジュールの出力側のケーブルにフェライトコアをはさんでみました。「サー」っというホワイトノイズのような音が少し軽減された感じで音量を上げなければ気にならない程度までノイズを減らすことができました。

さて、問題はこの対処方法で良いのかどうかという点です。通電したまま数時間使ってみたところ、MT3608 DC-DCコンバータICモジュールのICやコイル部分などの部品ははほんのり温かくなるものの、異常発熱しているよう箇所は見つけることができず、PAM8610アンプICモジュール側も小さなヒートシンクや電子部品に多少の温かみを感じるものの、こちらも問題を見つけることができませんでした。PAM8610アンプICの動作電圧は、15Vまでのはずなのですが問題なく動いているのはなぜなのか、どこかで電圧降下しているのか、回路を追って確認してみるしかないのかもしれません。(時間と知識が足りていないorz)

これまで、さまざまなアンプ(ICモジュールを含む)の実験で使用していた電源は、YAZAWA(YZW)のACM1000というACアダプタでしたが、今回のような問題は発生したことがありませんでした。K16からのUSB給電 5V(別のUSB電源でも結果は同じ)をMT3608 DC-DCコンバータICモジュールに入れてDC12Vを作り、これをPAM8610アンプICモジュールに入れて使うと発振してしまうということです。USB 5Vの給電が悪いのか、MT3608 ICモジュールに発振を防止する回路が足りないのか、MT3608 ICモジュールで作った12Vの電気がPAM8610アンプICには合っていないのか、どこかに問題があって発振してしまうのだと思います。(MT3608 ICモジュールのスイッチング・レギュレータのPWM制御と関係があるような気がしているのですが、どうだろうか…)これが、24Vだと発振せずにしかも問題なく音が出るということがどういうことなのか、勉強しなければならないことがまだまだたくさんあると思いました。
#その後1ヶ月以上使っていますが、ノイズが発生することはなく異常発熱などの問題も発生していません。スイッチング・レギュレータの発振問題については、そもそも有名な問題らしくAmazonで扱われているMT3608 DC-DCコンバータICモジュールについても、発振してしまうことを問題点として報告しているレビュアーもいました。

〈参考資料〉