2024年4月22日月曜日

安価なアンプICモジュールの使用感や音の違いを比べてみる

別のことで時間を使っていたために少し前のことになりますが、以前から取り組んでいたアンプICモジュールを使ったいろいろな実験の続きです。これまでは、安価なアンプICモジュールとしては定番とも言えるPAM8403Datasheet←PDF)が使われているものを主に使用していました。
#私が使っているものは、Amazonで見つけたかなり安価なアンプICモジュールで、6個入り999円(1個約167円)でした。

Amazonでは、PAM8403の他にも似たようなアンプICを使ったモジュールが販売されていて、使用感や音の違いを調べてみたいと思いました。今回購入したものは、PAM8610Datasheet←PDF)とTDA2822Mのそれぞれを載せたアンプICモジュールです。

PAM8403のときは、USB電源から5Vを供給していましたが、今回の2つを使うにあたって、電圧の違いによって動作が変化するのかも確認しようと思いました。そこで、かなり以前に購入していたYAZAWA(YZW)のACM1000という出力電圧を変えられるACアダプタがあったので、これを使って確認することにしました。ということで、比べてみた感想をまとめておきます。音源は、Linux Mintで動かしている自作PCからYouTubeの検証系動画で使われている音源を使いました。

〈PAM8403〉

  • 増幅された音量は、今回比べた3つの中で真ん中くらい。
  • 出力側の音量を上げすぎると、音がとぎれとぎれになって実用に耐えない。
  • 総評としては、使えなくはないけど、好んで聴くレベルのアンプではない感じ。
    ※音質的には残念なところはあるが、音の出方を確かめるという点ではそこまで悪くない。
  • チープなスピーカーと組み合わせて使うなら十分に役に立つ。
    ※そもそも安い(1個約167円)のだから多くを期待するべきではない。

〈PAM8610〉

  • 増幅された音量は、今回比べた3つの中で一番大きい感じ。
  • 1,000円を超えるアンプユニット(詳細は後日)と音量的には遜色がない。
  • 7.5V〜12V(7.5V〜15V対応)で安定して使うことができた。
    ※5V程度では、全く音が出ない。今回使ったACアダプタの上限が12V。
  • アンプICにはヒートシンク付いていて、動作時はほんのり温かいくらい。
  • ボーカルやトークの声ははっきりしているものの、低音域はあまり強く聞こえず、低音がしっかり聞こえるまで音量を上げると、今度は高音成分がきつく感じるようになる。
  • 総評としては、ぎりぎり常用可能なレベルだが、音楽を聴くのには向いていない。
  • 基板には、シルク印刷で「HW-210」とあり、様々なところで類似品が作られている。Amazonで2個998円(1個499円)だった。
    【参考】「EasyWordMall PAM8610」など

〈TDA2822M〉

  • 増幅された音量は、今回比べた3つの中で一番小さい感じ。
  • シルク印刷で1.8V〜12V対応となっているが、電圧の差で動作変化はあまりない。
    ※電圧が高いと、アンプICが非常に熱くなるので4.5V前後のあたりが一番良い感じ。
  • 初めて使用した際、+−を逆につないでしまってアンプICを焼きかけて、かなり焦った。(余談だね)
  • 実装されている部品点数がPAM8610のアンプICモジュールよりかなり少なく、表面実装部品が使われていない。
    ※改造ベースとして使っても面白いかもしれない。
  • 出力側の音量を上げると、音の輪郭がはっきりする(ボーカルやトークが聴きやすくなる)。低音域もしっかり聴こえるようになってバランスが良いと感じる。
  • 総評としては、音量の小ささに目をつぶれば、普段使いで問題なく使える。
  • 参考になるようなよい活用事例を見つけることができなかった。Amazonで1個732円だった。

ということで、実際に比べてみた感想でした。徐々に沼にハマっていく予感しかしないのですが、実際にもう少し実用的なアンプを購入してしまっています。オーディオ関係の価格は青天井なので、価格が高いものは無理だとしても、身の丈にあった価格帯でより良いものを探したり試したり作ったりしながら、もう少し楽しんでみたいと思います。

2024年4月13日土曜日

micro:bitからモータドライバモジュール(TB6612FNG)を使ってDCモータ(マブチ130同型)を動かせるかやってみる〜プログラムを作って完成

前回の続きです。FT-DC-002や自作ロボットカーベースをラジコンカーに仕立てて、モータドライバICモジュール(TB6612FNG)とmicro:bitマイクロビットブレイクアウトボードキットを使用)でラジコンカーを作るところまでは終わりました。

今回は、2つのmicro:bitにそれぞれ「ラジコンカー」と「コントローラ」のプログラムを流し込んでみます。MakeCodeを使って作ったプログラムは、以下のとおりです。備忘も兼ねて少し解説も加えておきます。

〈ラジコンカーのプログラム〉

モータドライバICでモータを制御するために、micro:bitからPWMでアナログ出力をしておく必要があります。それから、どちら向きに電気を流すか、または、流さないかを制御しています。デジタルで「1」は、電気を流すことを表し、「0」は、電気を流さないことを表しています。この電気を流すことによって、モータドライバICのモータ側の電気のON/OFFや正逆回転が制御されることになります。

〈コントローラのプログラム〉

micro:bitの傾きを検知して、停止、前進、後退、右回、左回の5つを制御するプログラムにしました。同時に、現在の状態を示す矢印(「↑」…前進、「↓」…後退、「←」…左回、「→」…右回、「−」…停止)を5*5LEDマトリクスで表示するようにしました。こちらのプログラムは、サーボモータで動かしたい場合でも共通して使うことができます。

FT-DC-002と自作ロボットカーベースで試してみましたが、問題なく動作してくれました。強いて問題点を上げるとすれば、やはり配線の複雑さですね。サーボモータのときのようにmicro:bitから直接制御できず、モータドライバICを挟まなければならないため、どうしても配線は複雑になります。モータドライバICが組み込まれたブレイクアウトボードやワークショップモジュールのようなものが出来上がるとラジコンカーを簡単に作ることができそうです。せめてもの対策として、ユニバーサル基板にモータドライバICモジュールを載せて、micro:bitのブレイクアウトボードに簡単に接続できるように工夫してみたいと思います。

2024年4月7日日曜日

micro:bitからモータドライバモジュール(TB6612FNG)を使ってDCモータ(マブチ130同型)を動かせるかやってみる〜ラジコンカーの作成

前回の続きです。FT-DC-002や自作ロボットカーベースをラジコンカーに仕立てます。組立・配線作業をする前に、DCモータ(マブチモーター130同型を使用←黄色のギヤボックスにはまっている、よくあるギヤ付きモータ)にバイパスコンデンサ(パスコン)をはんだ付けします。今回は、0.1μFのセラミックコンデンサを使いました。モータドライバICモジュール(TB6612FNG)とmicro:bitマイクロビットブレイクアウトボードキットを使用)の配線は以下のとおりです。

実際の配線は、以下の写真のようになっています。線が多くてどうしてもごちゃごちゃした感じになってしまいますが、わかりやすくする工夫は今後の課題だと思っています。



モータを動かす電源は、単4乾電池2本で3.0Vを用意しました。ブレイクアウトボード上のmicro:bitには、microUSBコネクタからも給電します。これは、micro:bit自体を動かす電源とモータを動かす電源を別に用意することで、効率よくモータを動かすことができるようにするためです。microUSBケーブルでの給電の他に、電池からの給電も可能です。その際は、電池ボックスを別途用意する必要があります。

この構成で、自作のロボットカーベース(タミヤダブルギヤボックスを使用)も問題なく動かすことができました。DCモータ自体は回転が速いので、ギヤボックスはどうしても必要になります。その点で黄色のギヤ付きDCモータはかなり安価なので、今後はFT-DC-002に付属していたもの(自宅にも在庫が豊富にある)と同様のギヤ付きDCモータを活用する方向で考えていきたいと思います。

次回は、いよいよプログラムの作り方をまとめていきます。MakeCodeを使ってプログラムを作ってmicro:bitに流し込んで完成です。

2024年4月2日火曜日

micro:bitからモータドライバモジュール(TB6612FNG)を使ってDCモータ(マブチ130同型)を動かせるかやってみる〜実験の下準備

以前から、「micro:bitでロボットカーを動かす」ことを教材化しようと個人的に研究をしていますが、これまで使ってきたものはServoモータを使用していることが多かったため、ディスカウントに限界を感じていました。安価で手に入るマブチモーター130)のようなDCモータ(自宅にも在庫が大量にある)を使うことができれば、かなりのディスカウントになります。DCモータを動かすためには、micro:bitで直接コントロールすることはできず、モータを動かすための電源とモータドライバICが必要はなずです。

過去にTA7291Sdatasheet)を使ったモータドライバICモジュールを作って、Arduinoやその互換機で動かしていましたが、このIC自体が1モータにしか対応していないため、これを2つのモータを動かすために使うとなると回路が大きくなってしまいます。(以前作ってみた1モータ+サーボステアリングなら使える可能性もありですが)そこで、たまたまAmazonで見つけたTB6612FNGという2チャンネルのモータドライバICを載せたモジュールを使ってみることにしました。
#購入時は、モジュール2個で1,499円でした。似たようなものでDRV8833というモータドライバICを載せたモジュールもあって、性能は若干落ちるようですがより安価なようです。

これを、FT-DC-002というアルミ筐体でDCモータを挟む構造になっているロボットカーキットやタミヤユニバーサルプレートダブルギヤボックス(ユニバーサルプレートと組み合わせるならツインモーターギヤーボックスの方がぴったりサイズです)とボールキャスターを組み合わせて作ったロボットカーベースに載せて動作実験をします。
#この自作ロボットカーベースは、スタジオMYUさんの「ミュウロボ」を参考にして作ったものです。

今回の作業は、サヌキテックネットさんの「DCモーターを制御する」を参考にしながら進めます。TB6612FNGモジュールは小さなブレッドボードに載せて、micro:bitはブレイクアウトボード(秋月電子通商の「micro:bit マイクロビットブレイクアウトボードキット」を使用:基板に「AE-MBIT-BREAKOUT_V」とシルク印刷されていた)に挿して、ジャンパワイヤーでつないで使うことにします。

ブレイクアウトボードに挿したmicro:bitをモータの制御に使ってラジコンカーを作り、もう一つのmicro:bitをラジコンカーのコントローラとして使います。見た目がごちゃごちゃした感じになってしまいましたので、もう少し整理してわかりやすくしていきたいと思います。

と、ここまででだいぶ情報量が多くなってしまいましたので、続きはあと2回に分けてまとめていきます。記事を公開したら、下のリストにリンクをはっていきます。

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

2024年1月27日土曜日

ワイヤレス対応の6 key+ダイヤルのミニキーボードを使ってみる

以前SIKAI CASEの4 keyミニキーボードを楽器のインターフェイスのように使ってみました(Scratchプログラムも作りました)が、このミニキーボードはUSBケーブルをつながなければならないため、楽器のインターフェイスとしての操作性(演奏性)を損なうと思い、ワイヤレスに対応しているものを探していました。否、ワイヤレスのものがあることは知っていたのですが、有線のものに比べて高額なことに頭を悩ませていたのでした。そんな折、Amazonのタイムセールで安くなっていたワイヤレス対応のミニキーボードを見つけて即買いしてしまいました。

購入したのは、Bluetooth/2.4G/USB接続に対応した6 key+ダイヤルスイッチを搭載したミニキーボードです。このメーカーのミニキーボードは、キーの設定をするのにWindowsで動く「MINI keyboard」というソフトが必要だったですが、調べてみると「SIKAI CASE マクロキーボード専用ソフトウェアの使用説明【日本語】」という記事が見つかり、その中にMac版のソフトが公開されていました。しかも、以前に使ったWindows版のソフトに比べて、格段に使いやすくなっていました。
#このミニキーボードは、いわゆるマクロキーボードでキーの設定がキーボード側に保存されます。一度設定をしてしまえば、OSの種類に関係なく使うことができます。

新しい設定ソフトを使って、各キーの設定を行うことにします。ミニキーボードをUSB-CでMacに接続し、設定ソフト(MINI keyboard)を起動します。 「Reading Device」ボタンをクリックしてデフォルトのキーキー設定を読み込んだら、「clear」もしくは「Clear All」ボタンをクリックして、元の設定を消去してから新しい設定を入力します。Mac(PCの場合も同じ)のキーボードではなく、画面上のキーボードで入力しなければならないところが注意点です。いろいろ悩んだ結果、シンプルに以下のような設定にしました。

1
2
3
- +

4

5

6
Space

以前の4 keyミニキーボードのときは「1」「2」「4」「8」に設定したので、同じように「1」「2」「4」「8」「16」「32」としようかと思いましたが、Scratchで「〈( )キーが押された〉」を使う場合には、2桁以上の数字は扱いにくくなるのでやめました。このミニキーボードには、3パターンまで設定を記憶させておくことができるので、別のパターンを記憶させておいてどのパターンが使いやすいか実験することもできそうです。
#ついでに、以前の4 keyミニキーボードもこの設定ソフトで設定ができるのか試してみましたが、残念ながら対応していないようでした。

ワイヤレス接続では、2.4G接続に対応しているとのことなのですが、MacもLinux Mintも現段階では接続がうまくいきませんでした。(2.4GのUSBドングルは、キーボードとして認識されているようなのですが…)Bluetoothでの接続は問題なくできた(昨年末に苦労した甲斐がありました)ので、ワイヤレスの方はBluetoothでやることにしました。

4 keyのミニキーボードに比べて少々重いのですが、楽器(プログラム)のインターフェイスとしてどこまで使えるか試してみたいと思います。

2024年1月20日土曜日

用途に合わせてジャンパワイヤーを自作する

これまで、様々な電子工作をやってきましたが、回路を確かめるためにブレッドボードジャンパワイヤー(「ジャンプワイヤー」とも)にはかなりお世話になってきました。こうしたものを使って回路を確かめて、ユニバーサル基板などに電子部品を配置して、ハンダ付けしてつないで完成させたモジュール類がいくつもあるのですが、これらのモジュール類を組み合わせてロボットなどを組み上げるのに使うことができないかと考えました。

モジュールとして作ったものを組み合わせるのですから、導線をハンダ付けしてつないでしまうと別の用途に使うことができなくなってしまいます。そこでジャンパワイヤーの出番なのですが、市販のものは1パッケージに様々な色のものが1〜2色程度ずつ入っているものが多かったり、ほしい長さにぴったり合うものがなかったりして使い勝手が悪く、どうしたものかと思案していました。

そんな折、Amazonで「QI(デュポン)コネクタ(←IoT本舗さんの記事)」のセットが販売されているのを見つけて「これだ!」と思って購入してしまいました。以前、USB DACの電子工作キット(トランジスタ技術の付録かなにかだったと思う)をハンダ付けした後、配線するためのジャンパワイヤーを作るところで止まってしまっていて、圧着ペンチ(エンジニアPA-09)も購入していました。
#調べてみたら、10年以上前(MTDAS-01)のだったのね。

今回必要なのは、赤黒のジャンパワイヤー(オス-オス、オス-メス)なので、在庫していた赤と黒の導線にQIコネクタを取り付けていきます。作り方はデジットblogの「【Tips】電子工作でよく使う『QIコネクタ』の圧着方法」に詳しく紹介されていました。オス‐オスは、赤黒80mm程度のものを数組、オス‐メスは、赤黒130mm程度のものを2組ほど作成しました。でき上がったものは、2本の導線がばらばらにならないように熱収縮チューブでまとめました。先ほど紹介したMTDAS-01のジャンパワイヤー作りを練習としてやってみてから作業をしたので、かなりスムーズに作ることができたと思います。


今回作ったものは、ロボットカーづくりなどで活用するつもりです。

2024年1月6日土曜日

Linuxからの印刷について振り返りとまとめ

古くからのLinuxユーザーの中には、過去にLinuxからの印刷に苦労した経験をおもちの方もいらっしゃるかなと思います。かく言う私もLinuxのOSとしてのポテンシャルを認識しつつも、プリンタ関係でつまずくことが多くて全面的に推すことができなかった頃のことを覚えています。

このBlogでも過去の記事(2007年2011年)を見るとプリンタとUSBケーブルで直接つないでプリントアウトすることはできるようになっても、Apple製品をベースとしたネットワーク上のプリンタにアクセスすることが難しい状態があったことが伺えます。私が長年CANONのプリンタを愛用しているのは、昔からMacとの相性が良い(かつてCANON販売が日本でのApple総代理店だったことも関係があるかも)からというところが大きいのですが、実は、Linux用のドライバが提供されていることも選択の理由になっていました。

その後のBlog記事(2020年)には、Raspberry PiからCUPSでのネットワークプリンタへのアクセスが可能になっていることが書かれているので、少なくとも4〜5年ほど前には、LinuxからApple製品をベースとしたネットワーク上のプリンタへのアクセスが簡単にできるようになっていたものと思います。これは、macOSでもLinuxでも、CUPSを使うことがポイントになっていると思います。
#確認すると、2016年には、Linux MintでApple製品のネットワークにアクセスできるようになったことを書いていました。

過去には、Apple製品のファイル共有やプリンタ共有が独自の規格で運用されていた時期がありました。ネットワークでの共有に不慣れな人にとってはとても便利だったのですが、これをWindowsやLinuxと一緒にネットワークを組もうとすると、できないことが多くて難儀をすると言われていたことを覚えています。私自身もAppleの独自規格でファイル共有やプリンタ共有を使っていたため、Linuxからのアクセスにつまずいていたのでした。

それが、いつ頃か忘れてしまったのですが、ファイル共有にCUPSが使えるようになり、プリンタも簡単に共有することができるようになりました。このことに気づいたときには、とても感動して今では当たり前のようにLinux Mintで動かしている自作PCからも印刷ができています。

ということで、Linuxの実用性がこれだけ高まってきたことを振り返ってみました。私がLinuxを使い始めたのは20世紀末のことですから、ChromeOSを搭載したchromebookが学校に導入されている現在を考えると、当時「学校教育で使えるLinuxができないものか」と考えていたことを感慨深く振り返っています。

2024年1月1日月曜日

Linux Mint PCにBluetoothマウスがつながらなかった→「Blueman」を使いました

自宅で常用しているLinux Mint(現在は21.2を使用)で動かしている自作PCのBluetoothがおかしくなってしまい、いろいろやっているうちにBluetoothスピーカーだけはつながるようになったもののBluetoothマウスだけはどうしてもつながらなくて困っていました。以前は問題なくつながっていたのですが、思い出すとLinux Mint自体のアップデートを行っている中で、調子が悪くなった感じでした。
HTPC(こちらも21.2で運用中)で調子が悪かったときの記事

しばらくすればBluetoothマウスがつながるようなアップデートが行われるかなと思って放置していたのですが、一向に改善されず。しびれが切れてしまったので、ちょっと頑張ってみることにしました。

デフォルトでインストールされている「Bluetooth(Bluetooth support(metapackage)」があまり評判が良くないようなので、「ソフトウエアの管理(ソフトウェアマネージャー)」を開いて「Bluetooth」を検索し、これを削除して、その他にインストールされていたモジュール類についても見つかった範囲で削除しました。そして、改めて「Blueman」をインストールし直しました。(関連するモジュールのインストールが必要と言われたので一緒にインストール)念のために再起動しておきました。

PC側で使用しているのは、TP-LinkのBluetoothドングルで、Bluetooth 2.1対応のものとBluetooth 4.0対応のものの2つです。画面下のタスクバーからBluetoothマークをクリックすると、「Bluetoothデバイス」ウィンドウが開きます。Bluetoothマウスはまだ表示されていませんが、「検索」ボタンをクリックして、マウス側(今回はELECOMの「EX-G(M-XGL15BB=生産終了品)」を使用)の「PAIRING」ボタンを長押しすると、Bluetoothデバイスに表示されました。これをダブルクリックすると、接続するかどうか聞かれるので「接続」をクリック。
#「アダプター」メニューから接続先を選ぶと、それぞれのBluetoothドングルがどのデバイスと接続できるか確認することができます。

その後は、無事にBluetoothマウスが使えるようになりました。先程の「Bluetoothデバイス」の窓にも表示されるようになり、タスクバーのBluetoothマークにマウスの矢印を近づけると接続されているデバイスが数で表示されるのと、Bluetoothマークを右クリックして出てくるメニューの中にBluetoothマウスの切断を選択するメニューが表示されるので、認識&接続されていることがわかります。以前と同じように、起動と同時にBluetoothマウスが使えるようになりました。
#Bluetooth 2.1ドングルにBluetoothマウス、Bluetooth 4.0ドングルにBluetoothスピーカーを接続しています。マウスは、Bluetooth 2.1ドングルからは認識されず、スピーカーはBluetooth 4.0ドングルにつなぐとノイズが入るためです。

自宅の大掃除をしていたついでに、PCの中身も掃除してきれいにしました。2ヶ月前に購入したままになっていた16GB*2枚のSDRAMも換装して、新年を迎える準備(?)が完了しました。今年も良い年になりますように。