2025年11月24日月曜日

M5Stackを使ってみる〜UART接続のUnit-MIDIでドラムマシーンを動かす

以前の続きです。M5StackCORE BASIC V2.7にPORT.C(UART)を追加する「M5StackBasicLite@akita11さん設計・製作)」というベースボードをつないで(はさんで)「UNIT-MIDI(以下「MIDI」)」を動かすことができるか動作確認をしました。「MIDI」には、仏dream社のSAM2695が内蔵されていて、GitHubのサイト内にあった、「M5-SAM2695」のページからダウンロードした「piano.ino(使用時は、ファイル名を「piano_midi.ino」に変更)」を使って、Behringerの「Pro VS MINI」を鳴らすことに成功しました。

今回は、同じ「MIDI」を使って、ドラムマシーン(BehringerのRD-6)を鳴らすことができるかやってみたいと思います。GitHubの「M5-SAM2695」サイトから「drum.ino」をダウンロードして、名前を「durm_midi.ino」に変更しておきます。(理由は、冒頭にリンクした記事を参照してください)これをLinux Mint上のArduino IDE(2.3.6)で開いて、コードを確認します。すると、「piano_midi.ino」のときと同じように「M5_SAM2695.h」を使うようなので、前回使ったものと同じファイルを「drum_midi.ino」を入れているフォルダ内にコピーしておきました。この状態で、Core BasicをUSB-Cケーブルでつないで「ボード」と「ポート」の設定を「M5Stack-Core-ESP32」に合わせてから「→(コンパイル&書き込み)」ボタンをクリックすると、無事にプログラムが書き込まれました。
#例によってYAZAWATVR35WH(アンプ内蔵スピーカー)につないでdrumのプログラムがインストールされていることを確認しました。

この状態で、RD-6とCore BasicをMIDIケーブルでつないでドラムマシーンとして鳴るか確認します。つないだだけでCore Basicを起動すると、「MIDI」には通電するもののRD-6をコントロールすることができませんでした。MIDIのチャンネルが合っていない可能性があるので、RD-6側のMIDI設定を確認することにします。「FUNCTION」 ボタンを押しながら、「PATTERN GROUP」 ボタンを押すと、MIDIチャンネルの設定が変更できるようになります。デフォルトでは、MIDI INもMIDI OUT/THRUもチャンネル「1」になっています。「PATTERN GROUP」 の「Ⅰ」でMIDI OUT/THRUのチャンネルを、「Ⅱ」でMIDI INのチャンネルを設定することができます。「FUNCTION」 ボタンを押しながら、「PATTERN GROUP」 ボタンを2回押すと「Ⅱ(MIDI IN)」の設定ができるようになるので、「10」ボタンを押してチャンネル「10」に変更します。

再びMIDIケーブルで「MIDI」とRD-6をつないでCore Basicの電源を入れると、RD-6が鳴ってくれました。\(^o^)/注意点としては、「MIDI」の「I/O BYPASS」と「SEPARATE」のスイッチを「SEPARATE」側にしておく必要があります。続けて、TRS MIDIケーブルでも鳴るのかやってみましたが、こちらも問題なくRD-6を鳴らすことができました。「piano_midi.ino」でも同じことが言えるかもしれませんが、ループ再生するようなメロディやリズムをプログラムしたものをCore Basicに入れて、電子楽器をループで鳴らしておいて、そこに生の演奏を重ねるような使い方もできるかなと思いました。

余談ではありますが、今回使ったBehringerのRD-6やTD-3、このBlogでも度々登場しているRolandのPC-300(MIDiキーボード)など、電子楽器(中でもエフェクターが多いかな?)に使われるACアダプターが、「センターマイナス」が多いのが気になっていました。一般的には、「センタープラス」のものが多い気がしますが、同じBehringerでもSWING(CV/Gate&MIDIキーボード)は「センタープラス」ですし、KORGのvolcaシリーズも「センタープラス」です。手近なところで、RolandのSC-55mkII(←取説のPDF)とKORGのX5DR(←取説のダウンロードサイト)は「センターマイナス」で、メーカーでも統一されているとは限りません。理由を調べていて、「エフェクター電源はなぜセンターマイナス仕様なのか」という記事を見つけました。ご参考まで。

M5Stackを使ってみる

2025年11月17日月曜日

volca sample2(サンプラー)のアプリケーションソフトを使ってみる

以前の続きです。このBlogでも紹介したKORGのvolcaシリーズの中で、「volca sample2(以下「sample2」と略記)」というサンプラーを購入して使ってみた話を書きました。

このsample2には、KORGの公式サイトからダウンロードできるアプリが用意されています。このアプリを使うと、sample2の中に入っている音のデータを保存したり別のデータに入れ替えたりすることができます。volca sample2/Librarianから「volca sample Librarian(以下「Librarian」と略記)」アプリをダウンロードして、iMacにインストールして試用してみました。
#sample2のダウンロードサイトに取扱説明書やMIDIインプリメンテーションチャート、各種アプリが用意されています。追加のボーナスパックやサウンドパックなどもダウンロードして使うことができます。

microUSBケーブルでiMacと接続して、sample2の電源を入れてからLibrarianを起動します。Librarianを先に起動してしまった場合には、sample2を起動してからLibrarianを起動し直す必要があります。また、sample2はUSBからの給電では動かないので、ACアダプターからの給電が必須となります。接続に成功すると、自動的にsample2内のデータが参照されて、「PATTERNS」と「SAMPLES」の2項目で表示されます。
#「PATTERNS」を選んで「ファイル」メニューからパターン・データの保存が、「SAMPLES」を選んで「ファイル」メニューからサンプル・データの保存が、それぞれできるようになっています。

試しにダウンロードサイトから入手した「volca sample: Bonus pack vol.1」「volca sample: Bonus pack vol.2」「volca sample: Bonus pack vol.3」をsample2に入れて音を確認していきたいと思います。まず、ダウンロードしたボーナスパックのZIPファイルは、任意の場所で解凍しておきます。これを、Librarianの「ファイル」メニューから開いて、「.vlcspllib」という拡張子になっているライブラリデータを読み込みます。次に、Librarianの「送信・受信」メニューから「ライブラリ・データを書き込み」を選択すると、sample2にデータが書き込まれます。上書き保存されるので、元のデータが必要な場合は、あらかじめ「送信・受信」メニューから「ライブラリ・データを読み込み」でデフォルトのライブラリを保存しておくと良いと思います。

vol.1〜3まで音を確認してみましたが、時間泥棒ですね。(^^;;;(自作スピーカーのせいもあって無駄に音がいいし…)使っていて楽しくなってきました。注意点としては、ライブラリ・データを読み込んだあと、電源を一度落として再度入れ直した方が音いじりがしやすくなる感じでした。特に、あらかじめプログラムされているシーケンスデータで音の確認をしたいときに、ライブラリ・データを読み込んだ直後は、演奏される音に不自然さを感じますが、一度電源を落としてから再度入れ直すとまともに再生されることがわかりました。1音ずつの読み込み/書き込みもできるようなので、しばらくは何ができるか戯れてみたいと思います。

2025年11月8日土曜日

M5Stackを使ってみる〜CORE BASICでUART接続のUnit-MIDIを使ってみる

以前の続きです。前回では、M5StackのM5Stack CORE BASIC V2.7にPORT.C(UART)を追加する「M5StackBasicLite@akita11さん設計・製作)」というベースボードを使って、「UNIT-SYNTH(以下「SYNTH」)」を動かすことに成功しました。今回は、「UNIT-MIDI(以下「MIDI」)」が使えるか動作確認をしていきたいと思います。

「SYNTH」も「MIDI」も同じく仏dream社のSAM2695を内蔵したシンセサイザーユニットで、Arduino IDEのサンプルコード(「drum」と「piano」)も同じのものが使えるようです。Arduino IDEのコード(プログラム)をコンパイルして書き込むのは、いつものLinux Mintで動かしている自作PCを使います。

前回の動作確認で「drum」のプログラムを入れていたので、「MIDI」につなぎ替えて「MIDI」のAUDIO出力から音が出るか確認します。(「SYNTH」にはスピーカーが内蔵されていますが、「MIDI」には付いていません)これも定番になっていますが、YAZAWATVR35WH(アンプ内蔵スピーカー)につないで音が出ることを確認できました。少し歪んで聞こえたので、プリアンプ(ヘッドホンアンプ)をはさむと良いかもしれないと思いました。音を出すことに成功したので、この状態で何も手を加えずにBehringerRD-6(アナログドラムマシーン)にMIDIケーブルでつないで音が出るかやってみました。当然かも知れませんが、何の反応もありませんでした。

そもそも、これまで使っていた「drum」や「piano」のコードには、MIDIの設定らしき項目がなく、Unit-MIDIでMIDIをコントロールできるサンプルコードはないものかと探したところ、GitHubのサイト内に、「M5-SAM2695」のページを見つけました。この中に入っているサンプルコードを使えば、M5Stack Core Basicから「MIDI」を動かせるのではないかと考えて、ダウンロードしてみました。以下備忘を兼ねて、ダウンロードしたサンプルコードをリスト形式で記載しておきます。

※これ以外に、「M5-SAM2695/src/」内の「M5_SAM2695.h」が必要なようです。

この「drum.ino」と「piano.ino」は、「SYNTH」の動作確認で使った「drum.ino」「piano.ino」と同じ名前になっていますが、コードの中身が違います。フォルダ名も同じなので、その違いに気づきにくいかもしれませんが、コードの中身をよく見ると「MIDI」用の設定が追加されていることがわかりました。紛らわしいので、それぞれ「drum_midi.ino」「piano_midi.ino」と名前を変更して使うことにしました。

先程は、「drum.ino」のコードを使って動作確認を試みましたが、今度は「piano_midi.ino」のコードを使って動作確認をしてみることにします。「piano_midi.ino」を開いてコンパイルしようとすると、「M5_SAM2695.h」が見つからないと言われてコンパイルに失敗するので、「src」の中に入っていた「M5_SAM2695.h」をダウンロードして、「piano_midi.ino」ファイルと同じフォルダ内にコピーしてから「→(コンパイル&書き込み)」をクリックしてみました。すると、エラーを出さずにコンパイルが成功して、Core Basicへの書き込みもできました。
#Core BasicとArduino IDEとの接続の設定(「ボード」と「ポート」)は、前回までの記事を参考にしてください。

この状態で、Unit-MIDIにアンプ内蔵スピーカーをつなぐと、プログラムしたとおりに音が鳴ったので、SAM2695を動かすことに成功していることがわかりました。次は、MIDIのコントロールができるかを確認します。前回紹介した、Behringerの「Pro VS MINI」を使って、MIDI信号が正しく出てきているのか確認してみました。Unit-MIDIのMIDI OUTとPro VS MINIのMIDI INをMIDIケーブルでつないでから、Core Basicの電源を入れると、Pro VS MINIが鳴り始めました。これで、無事にMIDIのコントロールができることがわかりました。プログラミングの手間を考えると、1曲丸ごとプログラムしてシーケンサーのように使うという使い方は実用的ではないように思いますが、「本物の電子楽器(語彙不足…)を鳴らせる」ことに、様々な可能性を感じます。

M5Stackを使ってみる

2025年11月2日日曜日

BehringerのPro VS MINIを使ってみる

これまで、Behringerの楽器をいくつか購入して使用してきました。自宅にある、「SWING(32-Key USB MIDI Controller Keyboard with 64-Step Polyphonic Sequencing, Chord and Arpeggiator Modes)」「RD-6-GP(Classic Analog Drum Machine with 8 Drum Sounds, 16-Step Sequencer and Distortion Effect)」「TD-3-SR(Analog Bass Line Synthesizer with VCO, VCF, 16-Step Sequencer, Distortion Effects and 16-Voice Poly Chain)」については、このBlogでも紹介しています。

Behringerは、ドイツ発祥の電子楽器・音響機器のメーカーで、その製品ラインナップには、いわゆるビンテージ・シンセサイザーのクローンがあることでも有名です。その中で、今回は、Amazonのポイントアップで多めにいただいたポイントも使って、「Pro VS MINI」を購入してしまいました。(購入直後に更にディスカウントされてしまって、悶絶しましたが…)このシンセサイザーは、「Prophet VS」の音源を再現したもので、アナログな音を求めて購入しました。デジタルOSC(Oscillator=オシレーター)にアナログVCF(Voltage Controlled Filter)を搭載したハイブリッド・シンセサイザーで、デジタルとアナログの「いいとこ取り」を期待しています。

少しだけ「歴史」を補足しておくと、「Prophet VS」は、もともとSequential Circuits(紆余曲折があって現在はSequentialが引き継いでいる)が製造していたシンセサイザーで、現在のSequentialでは製造・販売されていません。ソフトウエア・シンセサイザーとしては、フランスのArturiaが「Prophet-VS V」をリリースしています。Prophet VSの実機は、中古市場でかなりの高値で取引されている感じです。

若かりし頃、自分のものとして初めて購入したシンセサイザーが、Rolandの「JUNO-106」だったのですが、こちらもDCO(Digital Controlled Oscillator)とVCFとの組み合わせだったので、ちょっと懐かしい音作りができるのではないかと期待して購入しました。
#現在は、Rolandから「JU-06A」というJUNO-60/106のモジュール版が出ています。

驚いたのは、筐体の小ささです。先に紹介したRD-6やTD-3と比べると半分程度の大きさしかなく、厚みも半分くらいです。KORGのvolcaシリーズよりも小さくて、正直なところ「おもちゃを買ってしまったか…」と思いましたが、落ち込んでても仕方がないので音を確かめてみることにしました。筐体に付いているタッチスイッチ(センサー)は、感度と演奏性が良くないので、今回もRolandのPC-300(MIDIキーボード)をつないで音を出してみました。volcaシリーズには、簡易ながら本体にアンプとスピーカーが内蔵されていますが、Pro VS MINIにはありません。ヘッドホン出力(ステレオミニTRS)からの信号を「Lepy LP-838」(←過去に説Blogにて紹介した)を通して視聴用の自作スピーカーサブウーファーも付けて)から音を出しました。

あえてエフェクターをかけずに音を確かめてみましたが、ゲームコントローラーのアナログスティックのようなレバーを使った音作りが特徴的で、どの向きにどのくらい傾けたらどんな音になるんだろうと、しばらくはかなり楽しむことができました。音のデータなどが表示されるLCDパネルに、リアルタイムに波形が表示されるのも音の変化を視認できて面白い工夫だと思います。プリセットの32音色も良い音が揃っているので、自分が作りたい音に近いものを選んでそこからエディットしていくという使い方が良いと思いました。
#音作りをしていく中で、音量が大きくなりすぎることがあって、MIDIキーボードから音量をコントロールできたら良いと思ったのですが、モジュレーションとベンダーは使えるものの、ボリュームのコントロールが全く効きませんでした。(もしかすると設定次第なのかもしれませんが…)

2025年10月26日日曜日

volca sample2(サンプラー)を使ってみる

このBlogでも紹介してきたKORGのvolcaシリーズですが、volca fm2にはじまって、volca modularを買って2台になり、さらにもう1台volca sample2を購入して3台目となりました。今回もAmazonで少し安くなっていたものを、ためていたポイントも使ってお得にGetしました。

昔から、サンプラーには憧れがありましたが、さまざまな「音」に音階を付けて演奏できることや、「音」を加工して新たな音を創り上げることに興味をもっていて、いつかは手に入れて、使い倒してみたいと思っていました。待望のサンプラーを手に入れたので、直感的に操作しながら使い方を確認してみました。
#イマドキは、ソフトウェアでやってしまった方が効率的なのかもしれませんが…。(フリーのサンプラーソフトも結構あるみたい)

電源を入れた直後に出せる音を確かめると、1〜9のステップボタン(タッチスイッチ)にドラム音やSE音が割り当てられていて、ドラムマシーンのような使い方ができるようになっていました。試しに「▶(PLAY)」ボタンを押してみると、もともと設定されているSampleの音楽らしきものが流れました。内蔵されているドラム音やSE音が使われていて、ドラムマシーンのような感じでした。音を変更したいときには、1〜9のステップボタンの内、変更したい音のステップボタンを押してから、「SAMPLE(Sampleセレクター)」ノブを回して音を選びます。ステップボタンを押して音を確かめて、「SAMPLE」ノブを回して音を選ぶことを繰り返しながら、演奏に使いたい音を選んで気に入った組合せを作ることができます。
#そのまま電源を落とせば、初期設定の音に戻ります。

ステップボタンでの演奏では、お世辞にも演奏性が良いとは言えないので、長年愛用しているRolandのMIDIキーボード(PC−300)を接続してコントロールできるかやってみました。MIDIキーボードにつないだ状態で鍵盤を押すと、どの鍵盤を押しても同じ1つの音が出ます。MIDIキーボード側のMIDIチャンネルを変更しながら確かめてみると、volca sample2の1〜10のステップボタンには、そのまま1〜10のMIDIチャンネルが割り当てられていて、MIDIキーボードのMIDIチャンネルを「1」にすれば、ステップボタンの「1」に割り当てられた音が、MIDIチャンネルを「2」にすれば、ステップボタンの「2」に割り当てられた音が出るという仕組みになっているようです。ステップボタンに割り当てる音を変更することで、MIDIキーボードから様々な音のON/OFFをコントロールすることができるようになります。
#MIDIチャンネル10は、音を割り当てても発音しませんでした。「10」のステップボタンを押すとLEDが光るので、何か動いている感じです。

デフォルトでマルチチャンネルになっているMIDIチャンネルを1つのMIDIチャンネルに固定したい場合は、一度電源を切って「FUNC(FUNCTION)」ボタンを押しながら電源ボタンを押して電源を入れます。すると、グローバル・パラメータの設定ができるようになるので「10(Step10)」ステップボタンを押してから「SAMPLE」ノブを回すと1つのMIDIチャンネルを選ぶことができます。(「10」ステップボタンをもう一度押すと、マルチチャンネルモードに戻すこともできます)設定が終わったら「●(REC)」ボタンを押すと設定が記録されます。MIDIキーボードのMIDIチャンネルを合わせて設定すると、1〜9のステップボタンに割り当てられた音が、C3〜G#3までの鍵盤に割り当てられて格段に演奏がしやすくなりました。
#この設定は、電源を落としても保存されているので、次回以降は、同じ作業をする必要がありません。

試しに、volca sample2とMIDIキーボードのMIDIチャンネルを10にそろえてみましたが、問題なく演奏することができました。これならば、MIDIデータのドラムパートをvolca sample2に任せるという使い方も可能になります。別のドラムマシーンとチャンネルを共有して、音に厚みを出したり足りない音を補ったりするという使い方も可能になると思います。
#MIDIキーボードのモジュレーションとベンダーを触らなければ、ボリュームのコントロールもできました。何故かモジュレーションとベンダーを触った後は、ボリュームのコントロールができなくなりました。(相性問題の可能性もあり)

今回は、「音を出す」ことをメインに動作確認をしてみましたが、サンプラーの使い方としては、さまざまな音を使って、それを加工したり音程をつけたりして楽曲に活かすような使い方を目標としています。volca sample2のダウンロードサイトには、取扱説明書やMIDIインプリメンテーションチャート、各種アプリが用意されていて、追加のボーナスパックやサウンドパックなどもダウンロードできます。Macなどで録音したものを加工して使うこともできるらしいので、どんなことができるのか試行錯誤してみたいと思います。

2025年10月18日土曜日

職場で使用しているメカニカルキーボードがチャタリングするようになったので

職場で使っているラップトップPCには、このBlogでも紹介していたZIYOU LANGという中華メーカーのK3(以前LEDを交換した)というメカニカルキーボードをつないで使っています。

このK3が、毎日仕事で酷使していたためか、「(テンキー)7」「(テンキー)0」「N」「R」「A」がヘタってしまってチャタリングを起こすようになってしまいました。仕方がないので、以前に修理していたNPETK80を復活使用することにして、壊れたK3を修理していくことにしました。
#K80のキースイッチを交換したときのことは、過去記事をご覧ください。

とは言え、交換するキースイッチを何にするのかということもよく考えなければなりません。自室に在庫しているものもいくつかあったのですが、まずはキースイッチの準備からやることにしました。

交換するキースイッチの1つ目の候補は、このBlogでも紹介していた「4 keyミニキーボード」でも使った黒軸キースイッチ(AJAZZ)です。これは、だいぶ前にHARD OFFで見つけたジャンク品のメカニカルキーボードから外したもので、当時はサンハヤトのはんだシュッ太郎(←メーカーサイトに情報がなく生産終了品)を使って取り外した記憶があります。これがなかなかに大変な作業でした。
#はんだシュッ太郎の後継現行機種は、「はんだシュッ太郎NEO(HSK-300)」というらしいです。

もう1つの候補は、壊れて反応しないキースイッチが多くなってしまったKB487Lhavit)というメカニカルキーボードからJIXIANの赤軸キースイッチを外して交換部品にしてしまおうかと考えました。

少し前のことですが、Amazonのセールを利用して「電動の自動ハンダ吸取器(太洋電機産業(goot)のTP−100)」を購入していました。外国製品の安いものもあって、どちらを買うか迷ったところはあったのですが、自動ハンダ吸取器を長く使い続けるためには、消耗部品の交換が必要になることを考慮して、交換部品が入手しやすいgootのTP-100を買うことにしたのでした。これを使って、壊れていたKB487Lの赤軸キースイッチを外しました。よく見ると汚れがこびりついていたりスイッチの動きが悪かったりで、交換しても長くは使えないと思われるものもありました。壊れているものや状態の悪いものは処分することにして、状態の良さそうなものだけを使うことにしました。

修理するK3の方も、TP-100を使って「(テンキー)7」「(テンキー)0」「N」「R」「A」の5つのキースイッチを外しました。使用頻度が高い5つのキースイッチですが、特に7が顕著にヘタっていたので、ここには黒軸キースイッチを使うことにして、残りの4つを赤軸キースイッチに交換することにしました。

キースイッチのはんだ付けを終えて動作確認をしてみましたが、チャタリングが解消していてストレスが無くなりました。この後、キーキャップを戻して職場復帰させました。購入して使い始めてから、キースイッチが故障するまでの期間が短すぎる気はしますが、メカニカルキーボードなのでキースイッチの交換が簡単なので良いことにしておきます。(毎日酷使していたんだから仕方がないよねと自分に言い聞かせながら…)

2025年10月10日金曜日

M5Stackを使ってみる〜CORE BASICでもUARTを使えるようにする

以前の続きです。前回は、Linux Mintで動かしている自作PCを使ってM5StackCORE BASIC V2.7の動作確認をしました。Unit CardKB v1.1を使えるようにすることまではできましたが、UNIT-SYNTH(「SYNTH」と略記)には対応していないことがわかってどうすればよいか調べてみました。

すると、Switch Scienceさんのサイトで、Core BasicやM5Stick-Cに「PORT.C(UART)」などを追加できる道具が販売されているのを見つけました。Core Basic用に「M5StackBasicLite」というベースボードが、M5Stick-C用に「ExtPort for StickC」という拡張ボードが販売されていました。これこそ、まさに求めていたものだと思ってすぐに購入しました。今回は、これらを使ってSYNTHの動作確認をしていくことにします。

M5StackBasicLiteについては、GitHubサポートページがありました。使い方は見たらわかるレベルだったので、Core BasicからBOTTOM(バッテリーモジュール)を慎重に外してM5StackBasicLiteを接続してみました。この状態でもUSB-Cケーブルからの給電で使えるようなのですが、BOTTOMもつながりそうだったのでサンドイッチのようにM5StackBasicLiteをはさんでつないでみました。隙間ができてしまって、見た目はちょっと不格好になってしまいますが、使用には問題がなさそうです。
#「M5StackBasicLite」は、Switch Scienceで受託販売されているもので、基板に「@akita11」とシルク印刷されていました。Switch Scienceのページにもありますが、秋田純一さんの受託販売商品のようです。

BOTTOMのスイッチを「0(OFF)」にしてからCore BasicをUSB-CケーブルでPCにつなぎます。動作確認には、今回もLinux Mintで動かしている自作PCを使います。Arduino IDE(2.3.6)を起動して、「ツール」メニューからボードとポートを選択します。(詳細は、過去記事をご覧ください)前回やった手順通りに、「ファイル」メニューから「スケッチ例」→「(カスタムライブラリのスケッチ例)M5UnitSynth」→「piano」を選択して開きます。「→(コンパイル&書き込み)」ボタンをクリックして様子を見ていると、コンパイルとUploadが無事に終わってSYNTHから音が出ました。
#SYNTHをつなぐタイミングは、プログラムをUploadする前でも後でも良いようです。

試しに、「drum」の方でも動作確認してみましたが、問題なく音が出て、思ったより良い音で鳴ってくれました。自作PCから外して、BOTTOMのスイッチを「1(ON)」にしてからCore Basicの電源ボタンを押すとSYNTHから音が出たので、PCから独立した状態にしても使えることがわかりました。これは面白い。ちょっとプログラムを改造すれば、Core Basicのスイッチやセンサー類を利用したり、外付けのセンサー類をつないだりすることで、楽器のようなものを作ることも可能なのではないかと思いました。

この勢い(?)で、M5Stick-Cでも動作確認をしてみることにして、前出の「ExtPort for StickC」を使ってみます。ExtPort for StickCについては、同じくGitHubにサポートページが用意されていて、こちらも@akita11(秋田純一)さんの受託販売商品です。Stick-CのピンソケットにExtPort for StickCを挿して使うのですが、こちらはCore Basicより簡単に取り付けられます。

Stick-CをUSB-Cケーブルで自作PCつないでから、Arduino IDEを起動してボードを「M5Stick-C」に、ポートを「/dev/ttyACM0」にします。この状態で「piano」をコンパイルしてUploadしてみましたが、プログラム自体の書き込みには成功するものの、SYNTHから音は出ませんでした。残念。このサンプルプログラム自体に「@Hardwares: M5Core +Unit Synth」とあるので、単純にStick-Cはサポート対象外なのかもしれません。

M5Stackを使ってみる

2025年10月2日木曜日

超古いMebius(PC-AL50G5)を整理する

以前からこのBlogでも紹介してきたSHARPMebiusPC-AL50G5)ですが、情報処理推進機構(IPA)の「学校教育現場におけるオープンソースソフトウェア活用にむけての実証実験 ZDNET(「教育現場におけるデスクトップ Linux 導入の実証実験を開始 アルファシステムズ」PDF)」に参加した際に導入していただいたもので、私個人に譲渡されてから、そろそろ十数年が経とうとしています。

【当時公開された情報】

当時は、KNOPPIXをベースに、アルファシステムズさんが改造したオリジナルのKNIPPIXで動かしていましたが、その後はいろいろといじりまくって、現在はPuppy Linuxで運用しています。古いからと言って使えない訳でもないのでしばらく延命作業をしてきましたが、使わない期間が長くなって経年劣化も気になり始めたので、処分するもの、これからもメンテナンスを続けるもの、動作実験環境としてさらにいじりたおすもの等に分別して整理することにしました。

特に問題だったのは、液晶にカビのようなものが発生して映りが悪くなったりところどころ見えなくなったりしているものがあったことでした。これは処分の候補としては最優先となります。他にも、ヒンジ部分やラッチのところに問題が発生していて、物理的に壊れてしまっているものも優先的に処分することにしました。バッテリーも劣化していて液漏れ状態のものもありましたが、この機種は、ACアダプターの電源だけでも起動&作業が可能なので、バッテリーなし状態でも問題なく使うことができます。処分するものをまとめるために、バッテリーの液漏れが見つかったものと物理的に壊れているものを組み合わせて、「処分用PC」を作っていきました。作業を始めたのは良いのですが、完品状態のものが18台もあるため、なかなか作業が進みません。とりあえず、本体の状態とバッテリーの状態を確認して、4台ほど処分することにしました。
#処分するものは、すべてHDDとメモリー、光学ドライブを抜き取りました。

回収は、リネットジャパンさんにお願いしました。これまでも、何回か利用させてもらっているし、居住市が連携市町村に入っているので他の選択肢もないためです。(もう少し新しいものなら、リサイクルショップへ持ち込むという手もあったかもしれませんが…)段ボールも用意して自分で梱包しましたが、ありがたいことに夕方に申し込んで翌日の午前中には引き取ってもらえるとのこと。
#ついでに、引越し作業の中で液晶を壊してしまったモニタ(当時は、買ってそれほど経っていなかったのでショックが大きかった…)とかなり古いiPhoneを1台を一緒に処分することにしました。

翌日の正午前に宅配便業者が引き取りに来て、無事に持って行ってもらいました。特に中身を確認するでもなく、伝票1枚であっさりとしていました。翌日には、今回引取をお願いしたPCたちが、予定通りリサイクル業者に届いた旨のお知らせがメールで届きました。職場で「古いPCを4台捨てたんだ。」と話したら、「えっ!? ∑(゚Д゚)」って顔をされました。(^-^;;;
#回収から約2週間後には、「処理完了」のお知らせが届きました。

残りのMebiusは、メンテナンスをしながらもう少し使えるかどうかやってみようと思っています。まぁ、あまり遠くない将来に、あと数台処分してしまいたいと思っているのですが…。

2025年9月25日木曜日

FAMIC on USBを試してみる~Linux Mintでも使えるかやってみる

以前の続きです。「FAMIC on USB」というMML(Music Macro Language)でプログラムできる音楽系ガジェット(小さなマイコンボード)を使ってみています。これまでは、MacBook ProGoogle chromeを使った動作確認をしてきましたが、今回はLinux Mintで動かしている自作PCでも動作確認をしておきたいと思います。

使っていてわかってきたこと(どこかに明記されているかも…)ですが、仕組みとしては、DACのようにPCから音声出力する仕組みを利用してデータの書き込みを行っているようなので、DACのように認識されてしまえば理論的にはLinuxでも使えると思います。今回の動作確認には、自作PCのUSB 3.0ポートにUSB 3.0対応のケーブルを挿して、そこにFAMIC on USBをつないで検証します。今回もYAZAWATVR35WH(電池駆動のアンプ内蔵スピーカー)を使って音が出るか確認します。

Linux版のGoogle chromeで「MML Playground」にアクセスしてMMLでプログラムを作ります。普段は、ヘッドホン出力をBluetoothで飛ばしてスピーカーから音を出しているので、プログラムが完成するまではスピーカーから音を出して確認します。以前からやってみたかった「呼び込みくん群馬電機株式会社製)」の曲を再現してみました。(耳コピですけどね)音の長さをどう表現するか少し悩みましたが、「MML Command Reference」も参考にしながらそれらしいプログラムを作りました。
#著作権等を考慮して、プログラム自体の公開は控えておきます。

いよいよFAMIC on USBを接続してみます。USB 3.0ポートにUSB 3.0ケーブルでつなぐと、予想通りDACと同じように自動的に認識されて、「Analog Output FAMIC WRITER」と「Digital Output (S/PDIF) FAMIC WRITER」として認識されました。デフォルトで「Analog…」の方が選択されるようなので、そのまま「FAMIC WRITE」ボタンをクリックしました。緑のLEDが点灯して、書き込まれている感じになりましたが曲が流れず、リセットボタンを押すともともとプログラムされていた音が流れます。ならばと思い「Digital…」の方でもやってみましたが、結果は同じでした。

この後、挿し込むUSBポートを2.0の方にしてみたり、USBケーブルを2.0対応のものに替えてみたり、書き込むデータを「Example」から選んだものにしてみたりといろいろと試行錯誤してみましたが、どのパターンでも書き込むことができませんでした。挙動としては、緑のLEDが2回点灯するので、書き込もうとしていることはわかるのですが、青のLEDの方は全く反応していないように見えます。

うまくいく方法はないものかと「歯車(設定)」アイコンをクリックして、「WRITING SPEED」を「9600 baud」から「4800 baud」に変更してみました。ダメ元で「FAMIC WRITE」をクリックして書き込みを試みると、青のLEDも点灯して無事に書き込むことができました。「WRITING SPEED」を「4800 baud」にした状態でUSBポートとUSBケーブルの違いを再度検証してみましたが、USBポートやUSBケーブルの問題ではなく、単に書き込み速度(ボーレート)の問題だったことわかりました。

Linuxでの使い方にはちょっと工夫が必要ではありますが、使えることがわかってホッとしました。MMLでのプログラミングについては、もう少しスマートにわかりやすく書けるようになりたいと思いました。自己満足の世界ではありますが、昔ファミコンで遊んだゲームの音を再現して遊んでみるだけでなく、ファミコン音源(のようなもの)で様々な楽曲を演奏できるのが面白いと思いました。

2025年9月15日月曜日

M5Stackを使ってみる〜とりあえずLinuxで使えるか試す

以前の続きです。前回は、MacBook Proを使ってM5StackCORE BASIC V2.7の動作確認をしました。macOSでは、Upload時にエラーが出てうまく動かすことができませんでした。今回は、Linux Mintで動かしている自作PCを使って動作確認をしていきたいと思います。

自宅のMintには、Linux版Arduino IDE(2.3.6)をインストールしています。これを起動して、MacBook Proでやったときと同じように、ボードマネージャで「esp32(2.0.17)」を、ライブラリマネージャーで「M5Stack(0.4.6)」をインストールしておきます。
#「esp32」は、2.x系のものを使わないとダメみたいなので。

M5StackをUSBケーブルでPCにつないだ上で、「ツール」メニューから「ボード:」の項目を選択して、「esp32」→「M5Stack-core-ESP32」を選択し、さらに「ポート:」の項目を選択して、「/dev/cu.usbserial-…(LilyGo T-Display)」を選択します。(「LilyGo T-Display」というのがあるらしい←何故これでよいのかはわからないけど…)次に、「ファイル」メニューから、「スケッチ例」→「(カスタムライブラリのスケッチ例)M5Stack」→「Unit」→「CardKB」とたどってプログラムを開きます。

この状態でちょっと試しにと「→(コンパイル&書き込み)」ボタンをクリックしてみました。すると、何の問題もなくコンパイルとUploadが完了してしまいました。もしやと思ってGroveポートにCardKBをつなぐと、キーボードとして使うことができました。Cardであることにこだわった製品なだけに、タクティルスイッチが薄くて押し難かったり、挙動が不安定だったりして必ずしも使いやすいとは言えませんが、使えることだけはわかりました。M5StackのGitHubサイトにあった、Arduino IDEのサンプルプログラムでも試してみましたが、こちらも問題なくコンパイルと書き込みができて使えることがわかりました。

MacBook Pro(macOS)ではできなかったのに、Linux Mintでは意外にあっさりとCardKBが使えたので、その他のユニット類についてもMintで動作確認をしてみようと考えました。さしあたってUNIT-SYNTH(仏dream社のSAM2695を内蔵したシンセサイザーユニット(「SYNTH」と略記))で音が出せるかやってみようと思いました。先に結論から言うと、そもそも今回使っているCORE BASIC V2.7のGroveポートはI2C(「PORT.A」と言うらしい)にしか対応しておらず、「PORT.C(UART)」対応のSYNTHユニットは使えないことがわかりました。orz
#「M5Stack Groveポート A-B-C」を参考にしました。

前回の記事で、すでにフラグが立っていたことに気づいて悶絶してしまいましたが、Groveポートの「色の違い」に違和感を覚えなかった自分にも問題がないとは言えません。ちなみにですが、「PORT.A(I2C)」は赤、「PORT.B(I/O=GPIO」は黒、「PORT.C(UART)」は水色となっています。M5Stick-CやCardKBのGroveポートの色は白ですが、これはそもそものGroveポートの色が白だったためではないかと推察しています。

一応、Arduino IDEで作業した手順だけは記録しておきます。CardKBを動かした状態からなので、既にArduino IDEとCore Basicはつながっている状態からの手順と考えてください。

  1. ライブラリマネージャーから「M5UnitSynth(1.0.1)」ライブラリーをインストールする。
  2. 「ファイル」メニューから「スケッチ例」→「(カスタムライブラリのスケッチ例)M5UnitSynth」→「piano」を選択して開く。
    ※見つからない場合は、M5Stackの「UNIT-SYNTH」公式サイトで公開されている、サンプルプログラム(「drum」と「piano」)を使ってください。
  3. 「→(コンパイル&書き込み)」ボタンをクリックして、実行プログラムをUploadする。
  4. Core BasicにSYNTHをつなぐ。

ここまでの作業でUploadには成功するものの、SYNTHユニットから音が出ることはありませんでした。他に使えるようにする方法がないか調べてみたいと思います。

M5Stackを使ってみる

2025年9月7日日曜日

Arduino® UNO R4 WiFiを使ってみる〜Linuxでも使えるかリベンジも兼ねて

前回の続きです。Arduino UNO R4 WiFiの動作確認をしています。Arduino UNO R4 Minima動作確認のときは、Linux版のArduino IDEで動かすことができなかったところで終わっていたのですが、今回、R4 Minimaでの再チャレンジも併せてR4 WiFiの動作確認もしていきたいと思います。
#いつものLinuix Mintで動かしている自作PCで検証します。

まず、Linux版Arduino IDE(2.3.6)を起動して、改めて「Arduino UNO R4 Boards(1.5.0)」をインストールすることにします。「ボードマネージャ」で「UNO R4」を検索して、「Arduino UNO R4 Boards」を選択して「インストール」ボタンをクリックします。以前うまく行かなかったときから、R4 Minimaへの対応状況に変化があるか確認するために、「ツール」メニューから「ボード:」を「Arduino UNO R4 Minima」に、「ポート:」を「/dev/ttyACM0(Arduino UNO R4 Minima)」に設定しました。「ファイル」メニューから「スケッチ例」→「01.Basics」→「Blink」を開いてLチカ動作確認をしてみます。残念なことに、R4 Minimaでは、まだdfu-utilのDFUエラーが解消されておらず、エラーが出てしまって書き込むことができませんでした。

ダメ元で、ボードをR4 WiFiに交換して動作確認をすることにしました。「ツール」メニューから「ボード:」を「Arduino UNO R4 WiFi」に、「ポート:」を「/dev/ttyACM0(Arduino UNO R4 WiFi)」に変更して、「→(コンパイル&書き込み)」ボタンをクリックしてみました。すると、問題なくプログラムを書き込むことができてLチカ動作確認ができてしまいました。\(^O^)/(一人で勝手に盛り上がる)

こうなると、Linuxで使えないR4 Minimaが不便(不憫)に感じます。ファームウェアのアップデートで解決するかもしれないと考えて試行錯誤してみましたが、アップデートできるArduinoの種類が決まっているようです。詳しくは、公式のサポートページ「Use the Firmware Updater in Arduino IDE」に情報がありました。現時点では、R4 Minimaのファームウェアアップデートには対応していないようです。
#R4 WiFiの方は、Linux MintでもMacBook ProでもArduino IDEを使ってファームウェアアップデートができました。

R4 WiFiの方は、MacBook Proでの動作確認で使用した「PlayAnimation」をLinux版Arduino IDEで開いて無事にコンパイル&書き込みができました。調子に乗って、以前はできなかった「Arduino UNO R4 WiFiを使って、ネットから日時取得 のプログラム」を持ち込んで、ダメ元でコンパイル&書き込みをしてみたところ、問題なく動いてしまいました。(狂喜乱舞!)どうやら、プログラムの書き込みが完了したor書き込まれた状態で電源をつないだときに、Wi-Fiにつなぐことを試みているようなのですが、そのタイミングでうまくWi-Fiにつながることができないと、それ以降はもう一度電源をつなぎ直す以外にWi-Fiにつなごうとしてくれなくなるようでした。
#参考にしたプログラムを少しいじれば、解決するかもしれませんが…。

そんなことならと思い、MacBook Proの方でも再度チャレンジしてみましたが、コンパイル&書き込みの後、何度か電源をつなぎ直すと動いていることが確認できました。いろいろと試行錯誤させられましたが、うまく動かなかった原因がプログラムの問題ではなかったとわかってホッとしました。つまずきの原因が、意外と単純なことだというのはよくあることなのでよしとします。

2025年9月2日火曜日

Arduino® UNO R4 WiFiを使ってみる

これまでにも何度か紹介しているArduinoですが、フィジカル・コンピューティングと言えばなマイコンボードで、広く普及し始めた(「自分が使い始めた」と同義ですが)Arduino Duemilanoveの時代から愛用しています。小学校教育にフィジカル・コンピューティングを導入する研究をしてきたので、自宅には当時購入したDuemilanoveが複数枚あります。その流れで、UNOLeonardoとその互換ボード、M0、Genuino 101(Arduino 101)などもあって、シールド類も含めるとかなりの数に上ります。

以前、Arduino UNO R4 Minima動作確認をしていましたが、ようやくArduino UNO R4 WiFiを入手したので、こちらも動作確認をしていきたいと思います。
#おさらいではありますが、R4シリーズには、ルネサスRA4M1チップ(32bit Arm® Cortex®-M4内包)が使われています。
#UNO R3までのArduinoは、PCなどと接続する際に標準サイズやmicroサイズのUSB-Bコネクタを使っていましたが、R4からはUSB-Cコネクタが採用されていることも大きな違いになっています。

R4 WiFiは、その名の通り無線LANに接続できる機能が付加されているのですが、私自身は「マトリクスLED(8*12)」の方に興味があり、これを使いこなしてみたいという衝動に駆られて購入したのでした。ネットで情報を探していると、Wi-Fi経由でNTPサーバから現在時刻を取得する使い方が紹介されていました。ありがたいことに、取得した現在時刻をマトリクスLEDに表示するプログラムを作って紹介しているサイト「Arduinoマイコンボードでの実験備忘録」を見つけたので、今回は「Arduino UNO R4 WiFiを使って、ネットから日時取得」と「Arduino UNO R4 WiFiを使って、ネットから日時取得 のプログラム」を参考にしながら動作確認をしていくことにしました。

動作確認は、いつものMacBook Proを使います。Arduino IDE(バージョンは「2.3.6」)を起動して、「ツール」メニューから「ボード:」の項目を選択して、「Arduino UNO R4 Boards」→「Arduino UNO R4 WiFi」と選択します。(「Arduino UNO R4 Boards」をインストールしていない場合は、ボードマネージャでのインストール作業が必要です)R4 WiFiをUSBケーブルでつないで「ツール」メニューから「ポート:」の項目を選択して、接続したR4 WiFi(/dev/cu.usbmodem…(Arduino UNO R4 WiFi))を選択します。これで準備は完了です。

先ほど紹介させていただいた「プログラム」をもとに、少しだけ改造して作ったプログラムを「→(コンパイルと書き込み)」ボタンをクリックして作業を進めます。コンパイルにエラーはなく、問題なく書き込まれた感じになりました。R4 WiFiの方も動こうとしている感じがするので、プログラム自体は書き込めているのだろうと思います。しかし、うまく動きません。中の処理がどうなっているのかわからないので、どこでつまずいているのかはわかりません。でも、動作が途中で止まってしまうようなので、原因を考えていきたいと思います。

仕方がないので、「ファイル」メニューから「スケッチ例」→「(Arduino UNO R4 WiFi用のスケッチ例)LED_Matrix」→「PlayAnimation」を開いて使うことにしました。「→(コンパイルと書き込み)」ボタンをクリックするとエラーもなく無事にコンパイルと書き込みが行われ、Animationが表示されました。これで、マトリクスLEDの初歩的な使い方わかりました。あとは、はじめに動作実験を行った「マトリクスLEDに時刻を表示する」プログラムがどうすれば動くのか、試行錯誤してみたいと思います。

2025年8月22日金曜日

M5Stackを使ってみる〜6年以上前からの再挑戦

既にだいぶ前のことになってしまいましたが、M5StackCORE BASICの初期のバージョンを購入して時計のようなものを作ってみるところまではやっていました。その後、バッテリーを内蔵しているBOTTOMを取り外そうとしたときにピンコネクタが固くてなかなか外せず、無理やり外して筐体のプラスチックにヒビが入ってしまいました。Σ(゚Д゚;それ以来、使う気にならず長らく放置してしまっていました。
#この失敗は、割と多いらしい。

当時一緒に買った「ウォッチバンド(Watch)」も本体を壊してしまったので使い道がなくて放置。その後、M5Stick-Cのウォッチバンド付きを買って気を取り直そうと試みましたが、はじめの失敗から立ち直れず、また壊してしまうかもしれないという気持ちと、他にもやりたいことが増えてしまったということで結果的に放置状態が続いてしまいました。

とは言え、全く興味を失っていた訳ではなく、「いつか使ってみよう。」と思いながら、少し前(いつだったか忘れてしまったけれど…)にCORE BASIC V2.7が販売されているのを見つけたのでもう一度買い直し、目に止まった周辺機器(Unit類など)も買い揃えていっていつでも再挑戦できる状態になっていました。手元にあるUnit類は、以下の通りです。

  • Unit CardKB v1.1…タクトスイッチが並んだカードサイズのキーボード(「CardKB」と略記)
  • DSOアダプタ…M5Stackをオシロスコープとして使えるようにするアダプタ(「DSO」と略記)
  • Unit-Synth…仏dream社のSAM2695を内蔵したシンセサイザーユニット(「Synth」と略記)
  • Unit-MIDI…同じくSAM2695内蔵のMIDI音源ユニット(「MIDI」と略記)

最近のM5Stackのプログラミングは、UIFlowUIFlow2を使うことが推奨されているようで、micro:bitなどと同様に、Webアプリケーションでプログラミングをするようです。ドキュメントも充実していて、「Basicファームウェアの書き込みとプログラムのプッシュ(UIFlow)」やタイトルは同じですが「Basicファームウェアの書き込みとプログラムのプッシュ((UIFlow2)」を参考にすれば、それほど難しくはないと思います。いずれにしても「M5 Burner」をインストールしてM5Stackのファームウェアを書き換えなければならないので、それさえクリアできれば後は快適に使えると思います。(希望的観測)

と言っておきながら、今回は以前にも紹介したことがあるArduino IDEを使って4つのUnit類の動作確認をしていきたいと思います。動作確認は、いつものMacBook Proを使います。順番はどうでも良いのですが、気持ち的に購入順で一番上のCarKBからにします。

インストール済みのArduino IDE(バージョンは「2.3.6」)を起動して、「ファイル」メニューから、「スケッチ例」→「(カスタムライブラリのスケッチ例)M5Stack」→「Unit」→「CardKB」とたどってプログラムを開きます。「ボードマネージャ」から「esp32(バージョンは「3.3.0」)」を検索してインストールして、「ライブラリマネージャー」から「M5Stack」と「Arduino GroveI2C Ultrasonic」ライブラリを検索して、インストールしておきます。(ライブラリの方は、必須ではないかもしれません)

この状態で、先ほど開いたプログラムがコンパイルできるかやってみました。「ツール」メニューから「ボード:」の項目を「esp32」→「M5Core」にします。「✓(検証=コンパイルする)」ボタンをクリックしてコンパイルが通るかやってみましたが、エラーを吐いて止まってしまいます。(ライブラリ内の「pngle.c」が求める「rom/miniz.h」が見つからないと言われます)

ダメ元でGoogle先生に訊いたところ、「Fix for rom/miniz.h Compilation Error in M5Stack Arduino Sketch」というページを教えてくれました。どうやら、「esp32」をダウングレードせよという話のようです。先程インストールした「esp32」を削除して、「esp32」のバージョン「2.0.17」をインストールしました。(2.x系でインストールできる最新バージョンがこれだったので)この状態で、「ツール」メニューから「ボード:」の項目を選択して、「esp32」→「M5Stack-core-ESP32」を選択し、「✓(検証)」ボタンをクリックしてコンパイルすると、無事にコンパイルが通りました。

次に、M5StackをUSBケーブルでつないで「ツール」メニューから「ポート:」の項目を選択して、接続したM5Stack(/dev/cu.usbserial-…(LilyGo T-Display))を選択します。「LilyGo T-Display」とは何者?何故ここに?と思いましたが、このままスルーすることにして「→(書き込み=コンパイルして書き込む)」ボタンをクリックしました。コンパイルまではうまくいくようになったのですが、書き込みでエラーが発生してUploadには失敗してしまいました。

プログラムが悪いのかもしれないと思い、ネットで探していると、M5StackのGitHubにArduino IDEのサンプルプログラムがあったので使わせていただくことにしました。
しかるのちさんの「M5Stack:小型キーボードユニット CardKB」を参考にしました。

このプログラムを使っても、Uploadできない問題は解決しませんでした。なかなか手ごわい。他のものを試す前にLinuxで動くかどうかやってみようと思います。長くなってきたので、続きはまたの機会ということで。

M5Stackを使ってみる

2025年8月12日火曜日

GAOMONのS620(ペンタブレット)を使ってみる

その昔(教員になったばかりの頃)、Wacomのペンタブレットを使っていた記憶があるのですが、ちょっと奮発して買ったように思います。(型番等はすっかり忘れてしまっています)当時は、Macで絵を描いたり画面に表示したものにマークをしたりするなど、結構な頻度で使っていたと思いますが、それが壊れたか何かで使えなくなって、そのうちタッチパネルが当たり前になってきて需要が減ってしまってからは、ペンタブレットを使わない生活が長く続いていました。

そんな中、家族からの問い合わせがあり、ペンタブレットを使いたいとのことだったので、ちょっと探してみることにしました。イマドキは、iPadなどのタブレットPCもあるし、タッチパネル式のモニタもあるので、ペンタブレットの需要が高いとは思えません。Amazonで探してみると、液晶タイプのペンタブレットもあってそこそこのお値段がします。簡単には手が出ないので、今回は純粋にペンタブレットを探すことにしました。そんな中で見つけたペンタブレットがGAOMONの「S620」でした。

大きさは、6.5 inch*4 inchのもので、4つのショートカットキー(スイッチ)が付いています。ドライバーソフトは、公式のダウンロードサイトからダウンロードすることができます。(Windowsだけでなく、MacやLinuxにも対応ということで、メーカーのやる気(?)を感じます)これをダウンロードしてMacBook Proにインストールし、使い勝手を検証していきます。

ダウンロードしたドライバーソフトをインストール(アプリケーションフォルダにコピー)して、「GaomonTablet」アプリをダブルクリックで起動すると、「デバイス(ペンタブレット)が検出されません」と言われます。そこで、ペンタブレットをUSBケーブルでつなぐと、macOS自体がキーボードとして認識しようとして設定を促されます。これをキャンセルして、GaomonTabletアプリがペンタブレットを認識したので設定を進めていきます。私の環境では以下の項目について設定しました。

〈システム設定〉

  • 「プライバシーとセキュリティ」→「アクセシビリティ」
  • 「プライバシーとセキュリティ」→「画面収録とシステムオーディオ録音」

〈GaomonTabletアプリ〉

  • 「ショートカットキー」…パッドの上に並んでいる4つのキー(スイッチ)について、役割等を割り当てることができます。
  • 「作業領域」…画面上の作業領域を決めることができます。

一度設定をしてしまえば、GaomonTabletアプリを起動していなくても、設定したとおりにS620をペンタブレットとして使うことができます。絵を描くだけでなく、マウスのように使うことも可能だし、DTMソフトを使った音楽作成にも活用することができますし、動画編集やPd(Pure data)の操作などにも使えそうな気がします。

動作確認のためにGIMPGarageBandでの操作感を確認してみました。作業したいところにダイレクトに移動可能なところがペンタブレットのよさ(タッチパネルと共通する)だと思います。一方で、モニタ画面全体が、それよりも小さいペンタブレットの作業領域と同等に扱われるため、操作性がよいことばかりではありません。モニタ画面上の位置とペンタブレット上の位置が完全に対応しているので、マウスとの操作感の違いに戸惑うことはあると思います。これについては、GaomonTabletアプリの設定で、「マウスモード」にすればマウスのように使うことができますし、作業領域を設定するとペンタブレットで作業できる範囲を変更することができます。

次に、自作PCで動かしているLinux Mintでも使えるかやってみました。同じくダウンロードサイトからドライバーソフト(debパッケージ)をダウンロードして、ダブルクリックでパッケージインストーラーを起動してインストールします。インストールが終わったら、「Lm」メニューから「GaoMonTablet」を起動します。macOSのときは、はじめから日本語表示になっていましたが、Linux版は英語表示がデフォルトのようで、自分で日本語に設定を変更しました。(「歯車」の設定メニューから変更できます)MacBook Proで設定した内容は、S620本体には記録されていないようで、ショートカットキーの割当などもLinux版のデフォルトになっていました。設定を引き継ぎたい場合は、設定メニュー内の「バックアップ」メニューから「設定エクスポート」で設定を書き出して、「設定インポート」で読み込めば別のPCでも設定が引き継げます。

GIMPとPd(Pure data)で操作感を確認してみましたが、macOSのときと同じように使うことができました。少しだけ違うのは、ドライバーソフトを起動しておかないとペンタブレットが動作しないことです。これは、macOS版のGaomonTabletを初めて起動した際に、ドライバーのようなものが自動的にインストールされるため、GaomonTabletを起動しなくても使えるようになるのだと思います。Linux版のGaoMonTabletの場合は、初回起動時に特に動きがなく、ドライバーソフトを起動しているときだけ使えるようになるというような仕様になっているのではないかと思います。

2025年8月8日金曜日

FAMIC on USBの動作環境を検証する

以前の続きです。「FAMIC on USB」というMML(Music Macro Language)でプログラムできる音楽系ガジェット(小さなマイコンボード)を使ってみています。このFAMIC on USBにはUSB-C端子が載っていて、USBケーブルでPCとつないで使います。USB-Cが使えるUSBケーブルには様々なバリエーションがあって、自宅にも様々なUSBケーブルがあります。ケーブル自体に規格が明記されているものもあれば、何も書かれていないもの(こちらの方が多い)もあって、どんなUSBケーブルなら使えるのか検証をする必要があると感じました。

ということで、USBケーブルの規格を確認するために、「USBコネクタケーブルチェッカー(←Amazonの商品ページ」を使うことにします。このチェッカーは、USBケーブルのコネクタの結線状態を確認するもので、各種USB規格への対応状況を確認することができます。コネクタの形状や色だけでは判断できない場合や挙動がおかしいUSBケーブルがあった場合には、これを使って状態をチェックすることができます。

検証には、MacBook Proを使います。これには、普段から8 in 1のUSB-Cハブを挿して使っています。詳細は不明ではありますが、vigoole(←Amazonのストアサイト)と書かれていて(メーカー名?…ブランド名?…)、型番は「SC202」となっています。これを使ってMacBook ProのUSB-CポートをUSB 3.0ポート*2、USB 2.0ポート*1、4K HDMIポート*1、RJ45 Ethernet LANポート*1、100W PD充電ポート*1、SDカードリーダー/Micro SD/TFカードリーダー*各1に変換しています。今回は、このUSB-Cハブを使って動作するか確認するとともに、MacBook Proに直接つないで動作するかも確認したいと思います。

〈USB-Cハブ使用〉

  • USB-A(3.0)ポートからFAMIC on USB
    • USB-A(3.0)←→USB-Cケーブル…OK(前回の動作実験環境)
    • USB-A(2.0)←→USB-Cケーブル…OK
  • USB-A(2.0)ポートからFAMIC on USB
    • USB-A(3.0)←→USB-Cケーブル…OK
    • USB-A(2.0)←→USB-Cケーブル…OK

※このUSB-CハブのUSB-Cポートは、充電用なのでデータ通信等には使用できません

〈MacBook Pro直挿し〉

  • USB-Cポート
    • 両USB-C(SS USB10…3.1)ケーブル…OK
    • 両USB-C(2.0)ケーブル…OK

検証は、macOS版のGoogle chromeを使用して、「(FAMIC on USB)MML Playground」にアクセスしています。いずれの規格でも、使えることがわかりました。検証する中で、不具合があるUSBケーブルが数本見つかったので、いさぎよく処分しました。ケーブル類をためてしまいがちな生活をしているので、片付けられたのもよかったです。(^^;;;

〈参考〉
新たなるUSBケーブルチェッカーをレビューする

2025年8月1日金曜日

Pd(Pure data)でシンセサイザープログラミング~Linux Mintでも動くのだろうか

以前の続きです。これまでは、主にMacBook Proを使ってPd(Pure data)の動作確認作業をしていましたが、調子に乗ってLinux Mintで動かしている自作PCにもインストールして、音が出るかやってみることにしました。
#拙BlogのPd関連記事

「ソフトウエアマネージャ」からFlatpakパッケージのPd(バージョンは「0.55-2」でした)をインストールしました。動作確認をするために、Pdを起動してMacBook Proのときと同じプログラムを作って実行してみましたが、残念ながら音が出ませんでした。Pdに限らずLinux版の音楽関係アプリでは、インストールされている音楽関係システムやその設定によって音を出すのに手間がかかることが多々あります。今回のようにプログラムの作り方に間違いがなくても、Pdからの「音を出す」という命令を受け取って音を出すシステムとうまくつながっていない(うまく受け取れていない)のではないかと考えられます。ちょっとがっかり…。orz

気を取り直して、ソフトウエアマネージャでFlatpak版を削除してから通常版(バージョンは、ちょっと古い「0.52.1+ds0-1」でした)をインストールしてみました。Linuxあるあるですが、最新版よりもちょっと古いバージョンの方が動作する可能性が高いからです。通常版のPdを開くと、すべて英語表記のPdが起動しました。言語設定のやり方がわからなかった(できない可能性も…)ので、そのまま使ってみました。プログラム自体は、同じようにやってみましたが、残念ながらこれもダメでした。

ダメ元で、ソフトウエアマネージャでPd-extended(バージョンは「0.44.0」でした←サポート終了につき使用は非推奨です)を入れ直して動くかどうかやってみましたが、これもやはり音は出ませんでした。若干絶望的な状況になってきました。

仕方がないので、はじめにインストールしたバージョン「0.55-2」を入れ直して「オーディオオン(DSPオン)」にしてから、「オーディオとMIDIをテストする」の窓を開くと様々なテストをする道具が出てきます。これを使って音が出ないかどうかやってみましたが、ログ窓の方に「オーディオ I/O エラー」と出ては消える状態になってしまいます。

原因は、Pdが求める「音を出すシステム」と自作PCのLinux Mintで設定されている「音を出すシステム」が合っていないということらしいです。これらのON/OFF設定を合わせれば、音が鳴るんじゃないかと思うのですが、これが一筋縄ではいかないのがLinuxというものです。

自作PCのLinux Mintでは「PulseAudio」をメインで使っています。この環境でScratch 1.4LMMSを使うと問題なく音が出ます。(但し、Scratch 1.4は、Windowsで使っているときのように音色の変更はできません)

Pdでは、「ALSA」を使うことが求められているようです。自作PCのLinux MintにもALSAの主要なパッケージはインストール済みです。これを、Pdを起動する際に、明示的にALSAを使うよう設定する必要があるのだろうと思います。以前、どこかで似たような作業をした記憶があるのですが、どうやるんだったか…思い出せるかやってみたいと思います。

ついでに、Raspberry Pi 5Raspberry Pi OSRaspberry Pi Imager)でも確認してみました。「Add / Remove Software」から、「puredata 0.53.1+ds-2+deb12u1」やALSAをインストールして動作確認をしてみましたが、この環境でも音が出ませんでした。

ということで、私が使っているLinux系のOS環境では、Pdを動かすことができませんでした。きっとやり方があって、何かが音を出すことを邪魔しているのだろうと思います。問題は、Pdを使えるようにすることで、別のものが使えなくなるのであれば、使用頻度の高くないPdを使うことを優先するのは得策ではないということです。(実験・検証はしたいけど、普段遣いの環境を壊すのも嫌だし…)

2025年7月25日金曜日

本棚に入るドールハウスを作ってみる〜準備から作り始めた手応え

以前から、「箱庭的な世界観」には強い魅力を感じていて、それこそ「ジオラマ」は大好物な部類に入ります。しかしながら、作ったところで飾るところもないし、大好きな城のプラモデルすら組み立てられずに「大切に保管」されている有り様。作っても邪魔な大きさにならず、それでいて作り上げた満足感と出来上がったあとの実用性を兼ね備えたようなものがあればと思っていたところ、ドンピシャなものを見つけてしまいました。「Book Nook(ブックヌック)」というらしいのですが、「本棚に入るドールハウス」として一部で話題になっていたようで、Amazonで見つけて衝動買いをしてしまいました。
#「Book Nook」が一般名詞なのか商品名なのかはイマイチよくわかっていません。

これを見たとき、直感的に「フィジカル・コンピューティングに使えるのではないか。」と思いました。この本棚ドールハウスにはLEDを仕込むことができて、本棚に入れて暗くなっても中を見ることができます。ということは、Raspberry Pi Pico系のものやArduino系、micro:bitなどのマイコンボードを仕込めばもっといろいろな表現ができるのではないか、音を鳴らしてみたり、中の物を動かしてみたりと、フィジカル・コンピューティングを含む電子工作の素材や改造ベースとして使えるのではないかと思ったのでした。

とは言え、初めてのチャレンジでもあり、写真や文章だけでは情報が足りず、実物で確かめてみようと考えてAmazonでセールをしていたものをいくつか購入してみました。そのうちの1つで一番シンプルそうなもの(「Bakery Shop」風のもの)を選んで作る準備を始めました。今回購入したものは中国製で、中国から日本の代理店のようなところが輸入して販売しているようです。日本語の案内書のようなものは付属していましたが、肝心の説明書は全て中国語表記だったので、写真を見ながら想像力を働かせてどうにか組み立て作業を進めることにしました。

まずは道具の用意から。細かな作業をするためにピンセットやデザインナイフ、スチール定規、ハサミ、工作マット、木工用ボンドなどの道具を用意していきました。

シンプルとは言え、やはり小さなものを組み立てていくので、精度にはそれなりにこだわらないといけないと思います。よく考えたら、自宅にあるハサミは精密な作業に向いているものがなく、紙工作用のハサミを購入するところから始めました。今回購入したのは長谷川刃物RMF-170KDSB-100です。

さて、準備ができたので作業を開始します。説明書に従って、手始めにデクスチャーシートを木製(MDF材を含む)に貼り付けます。セメダイン社の木工用速乾ボンドを使用しました。スポンジ刷毛を使って(少々の水分を含ませて)木材側にボンドを薄く塗ってテクスチャーシートを貼り、おもしを乗せて圧をかけて接着します。テクスチャーシートとのズレは0.2~0.3mm程度でしたが、組み立てる前にハサミで切った方が良さそうでした。

次に、細かな部品の中で、フェルト生地を使って部品を作る作業をやってみました。説明書には、型紙を使ってフェルトを切り取り、別に切り取ったテクスチャーを貼り付けるような手順が書かれていました。そこで、私が考えた手順は以下の通りです。

  1. 型紙に両面テープを貼り付けて、フェルト生地に仮付けする。(「はがせる両面テープ」を使用)
  2. 型紙に沿ってフェルト生地を切り取る。
  3. 型紙をはがしてフェルト生地にテクスチャーをボンドで貼り付ける。(工作マットで上下から挟んでおもしを乗せて圧着する)

はがせる両面テープでも長時間放置するとはがれにくくなるので、切り取った後は、貼り付けた型紙をできるだけ早くはがした方がよいと思います。

実は、はじめからテクスチャーを貼り付けて切る方法でもやってみたのですが、型紙よりもテクスチャーの方が余白が広く、その分フェルト生地を多く消費してしまうという問題がありました。試しに、いくつかの部品を型紙を使わずにやってみました。やってみて思いましたが、テクスチャーの紙は型紙の紙より硬いので、フェルトに貼り付けた状態だと切りにくいという問題があるのかもしれません。

この後も様々な部品を作っていきましたが、説明書のとおりに作っていくだけなので取り立てて難しいことはなく、ひたすら地味な作業をこつこつと行っていく感じです。正直なところ、完成図を見てちょっと変更したいところもあるので、どのあたりから改造を始めるか(一度全て完成させてからとか、飾りつけを省いて大枠を作ってしまってからとか…)考え中です。続きは後日ということにします。

2025年7月18日金曜日

FAMIC on USBという音楽系ガジェット(小さなマイコンボード)を試してみる

電子工作をやっている方にはおなじみかもしれませんが、マルツ(マルツエレック株式会社)のオンラインショップ(←店舗の方にもよく行きました)で、「FAMIC on USB」というMML(Music Macro Language)でプログラムできる音楽系ガジェット(小さなマイコンボード)の取り扱いが始まったとの情報があり、使いそびれていたポイントが少し残っていたのもあって迷わず購入してしまいました。今回購入したのは、FAMIC on USB本体とデータを記録させるためのFAMIC WRITERがセットになっているもので、PRIORISという会社が開発したもののようです。

MMLについては、数年前にも当Blogで紹介したことがありました。IchigoJamを楽器のようにするプログラムを作って、キーボードで演奏したときに使ったのがMMLでした。今回は、FAMIC on USBを動かすための「(FAMIC on USB)MML Playground」を使って、ブラウザー(「Google chrome」を使用)からFAMIC on USBを操作します。MMLがよくわからなくても「MML Command Reference」が使えるので、あてにならない自分の記憶とネットの情報を探しながら使ってみることにしました。そもそも、MMLについては公式な規格が存在しないようで、MMLで動かせることを謳っていても、実装具合が微妙に違うことがあるようです。かっちりした規格があった方が安心してプログラムを作れると思う反面、ゆるさも魅力の一つではある(何なら自分でもいろいろなものに実装可能だということにもなるので)かなとも思います。

さて、本題に戻ります。FAMIC on USBに電池駆動のアンプ内蔵ステレオスピーカー(YAZAWATVR35WH)をつないで音出し実験をしてみたいと思います。chromeブラウザーを動かすのは、愛用のMacBook Proです。公式サイトには、Linuxにも対応しているようなことが書かれていましたので、自作PCLinux Mintからでも制御できると思います。PCなどと接続するためのUSBケーブルは付属していませんでしたが、FAMIC on USB側のUSBコネクタの形状は、USB-Cで接続できる形状になっています。自宅にはUSB-A←→USB-Cケーブルがいくつかありますが、電源供給用のものやUSB2.0までしか対応していないものなどもあって、どのケーブルなら使えるかわかりませんでした。とりあえず、USB3.0対応のUSBケーブルを使うことにして、動作確認をやってみることにしました。

今回は、FAMIC WRITERも同時に購入しているので、こちらも載せて一緒に動作確認していきたいと思います。ガイドとしてオフィシャルWebサイトで紹介されているYouTube動画を参考にしながら作業を進めていきました。プログラムを始める前に、FAMIC on USBにFAMIC WRITERを載せます。ピンを曲げないように気をつけて、しっかりと奥まで挿し込みました。次に、先ほど紹介したアンプ内蔵スピーカーを接続して電源をONにしておきます。あとはMacBook ProとUSBケーブルで接続すれば聞き覚えのある音(名前から想像して…)が鳴って接続されたことがわかりました。

接続した状態からchromeブラウザーを開いて、「MML Playground」にアクセスします。「Ch. 1」のところに「CDEFGAB>C」と入力して、ウィンドウの下方にある「▷(再生)」ボタンをクリックします。すると、MacBook Proにつないでいるスピーカーから音が出ました。ここで、音声出力の設定を「FAMIC WRITER」に切り替えます。(この後は、MML PlaygroundでプログラムしてFAMIC on USBに書き込んだもの以外の音を出すことはできないので要注意です)ウィンドウの上方にある「FAMIC WRITE」ボタンをクリックすると、この設定がFAMIC on USBに書き込まれて、その後は電源さえあれば設定された通りの曲が流れるようになります。

プログラムした曲を別のファイルで保存しておきたい場合は、「Download」ボタンをクリックするとjsonファイルで保存することができます。これは、「Upload」ボタンをクリックして読み込むことも可能です。また、「Examples」ボタンをクリックすると、いくつかのサンプルプログラムが選べるようになっていて、MMLの書き方を学ぶこともできるようになっています。FAMIC on USBを持っていななくてもMML Playgroundでプログラムすることはできる(その場合は、PCなどのスピーカーからも音が出せる)ので、作り込んで鳴り方を確認することができます。

活用のアイデアとしては、この環境で音楽を作ってFAMIC on USBに流し込んだら、電源とアンプ−スピーカーだけで音が出るので、「呼び込みくん」のようなものをオリジナルで作ることもできます。他のマイコンボードとも組み合わせると、更に活用の幅が広がるのではないかとも思いました。

2025年7月12日土曜日

カブトムシ飼育環境を転用してミニトマトを育ててみる

このBlogで長い間紹介してきたカブトムシ飼育でしたが、最後の報告が約2年ほど前で、去年の秋には最後の1頭が亡くなっておしまいになっていました。残ったのは、クヌギマットと腐葉土。これを何かに使えないかと思ったまま約1年が経とうとしています。そんな中、家庭菜園的なものをやってみてはどうかと思いたち、道具の準備を始めました。

もともと、「野菜のベランダ栽培」もこのBlogで紹介していた通り、職場のベランダで野菜の栽培をしていました。(趣味ではなく、「食農教育」の一環としてですよ。念の為)このときは、土を使って栽培をしていましたが、今手元にあるのはクヌギマットと腐葉土だけ。近所のホームセンターであれこれ考えながら、この環境で育てられそうなものとして選んだのが「ミニトマト」でした。

KAGOMEが製造している、「トマトの土」があって、この主成分が「ヤシガラ」と言われるものだったので、「ヤシガラでできるならクヌギでもできるんじゃない?」と思ったのでした。(深い根拠はありません)とは言え、本当にうまくできるかわからなかったので、(弱気にも)このトマトの土も購入して、一緒に使ってみることにしました。

寄せ植えができるくらいの広めの植木鉢とスタンドを用意して、その中にクヌギマットと腐葉土、そしてトマトの土を混ぜた栽培土を作り、その中にミニトマトの苗を3株植えました。ベランダ栽培の大きな問題は、ベランダ床の熱さです。特に夏場のベランダ床は熱くなりやすく、植物が熱にやられないように工夫する必要があります。そのため、植木鉢をスタンドに載せて、ベランダ床の熱が直接伝わらないようにしました。

植えたあとにしっかり水やりをして(雨も降ったけれど)、1日経ったら結構しっかりと根が張ってきた感じでした。これがうまくいくようなら、このクヌギ&腐葉土をベースにして別の野菜栽培にも挑戦していきたいと思っています。野菜ごとに必要な培養土の条件が微妙に違ったり、同じ土で連作しない方が良かったり、寄せ植えに向いていない組み合わせがあったりして考えなければならないことはたくさんあるのですが、それも含めて楽しみながらやっていきたいと思っています。

2025年7月5日土曜日

Pd(Pure data)でシンセサイザープログラミング~部品について整理してみる

前回の続きです。Pd(Pure data)という音楽に特化したプログラミング環境を使ってシンセサイザーを作っているのですが、なかなかクセの強いソフトなので一度整理しておきたいと思います。Pdでプログラミングをする際に最もよく使われるのが「配置」メニュー内の部品たち。この部品たちの役割がわかってくるとPdのプログラミングがスムーズになっていくと思います。そんな訳で、この部品たちの役割などについて整理していきたいと思います。
#今回は、Pure Data Japanの「オブジェクトの種類」を参考にしてまとめました。

オブジェクト
オブジェクト名()を入力し、様々な機能を実現する部品。
メッセージ
数値データや文字列データなど、出力するものを入れておく部品。
ナンバー
数値データを入れておく部品。実行モードでは、マウス操作で数値を変更できる。
シンボル
文字列データを入れておく部品。
コメント
コメントを入力しておく部品。日本語的には、「メモ」と言った方がわかりやすいかもしれない。
Bang(バン)
クリックでスイッチONのデータを出力する。モーメンタリースイッチのような挙動。
Toggle(トグル)
クリックでスイッチON/OFFのデータを出力する。オルタネートスイッチのような挙動。
ナンバー2
「ナンバー」部品と似ているが、プロパティの設定項目が違うので、扱える数値の幅が広い感じ。
垂直スライダ
スライダスイッチ(垂直方向)。「ナンバー」部品などの数値を操作的に変化させることができる部品。
水平スライダ
スライダスイッチ(水平方向)。挙動は「垂直スライダ」部品と同じ。
垂直ラジオボタン
ラジオボタン(垂直方向)で値を変更するスイッチ。プロパティでボタンの個数や挙動を変更できる。
水平ラジオボタン
ラジオボタン(水平方向)。挙動は「垂直ラジオボタン」部品と同じ。
VUメータ
見た目通りの「VUメータ」部品。
キャンバス
プロパティを見るとグラフ表示ができそうな部品であることがわかる。詳細はわからず…。

_noteで見つけた「puredataのオブジェクト一覧」やこじ研(小嶋研究室)さんの「Pure Data小辞典」には、さらに細かいコマンドなどの情報がありました。モジュラーシンセのように様々なモジュールを作って、それをつないで本格的なシンセサイザーを作ることができたら面白いと思いました。それに、外部からMIDIキーボードなどでコントロールするところまでできたらやってみたいと思います。

「Pd(Pure data)でシンセサイザープログラミング」

2025年6月21日土曜日

Pd(Pure data)でシンセサイザープログラミング~シンセサイザーっぽいものを作ってみる

前回の続きです。Pd(Pure data)という音楽に特化したプログラミング環境を使ってシンセサイザーのようなものを作ってみたいと思います。前回同様、今回もレシピ本「Pd Recipe Book」を参考にしています。前回は、サイン波の音を出すプログラムを作ってみましたが、モジュラーシンセサイザーをいじっているような感覚でプログラムすることがわかってきました。モジュラー自体も(お金をかけずに)簡単に作ることができるため、夢のようなプログラミング環境ではあるのですが…。(万人向けではないことだけは確かでしょうね。(^^;;;)

前回作ったサイン波を出すプログラムを拡張して、「osc~」から出てくるサイン波を加工することを目指します。「Pd Recipe Book」で紹介されていたものを再現していきながら、配置された部品の意味や役割を確認しながら作業を行いました。作業としては、部品を選んで配置して、部品の中に文字列や数値を入力して役割を決めて、機能するように線でつなぐといった手順になります。部品の種類や中に入力した内容によって、つなげられるものとつなげられないものがあるようで、部品にマウスを近づけて「○」が表示されると線を引き出す(ドラッグ)ことができて、同じく「○」が表示されるところ離す(ドロップ)と線でつながります。とは言え、つなげられるから意味のあるつながり方になっているかと思いきやそんな単純な話ではなく、モジュラーシンセサイザーでも同じですが、思ったように音を変化させることができないつなぎ方もできてしまうところがあります。

そんな感じでなかなか一筋縄ではいかないところがあるものの、攻略する面白さ(これを面白いと思える人にとっての…)はのめり込ませるだけの魅力が十分にあると思いました。ということで、レシピ本を参考にして作ってみました。

動かし方が独特なので、はじめはどうすれば音が出るのか戸惑うかもしれません。「Pitch」とラベリング(任意なので名前は何でもよい)した「ナンバー」部品をクリックして、画面上側にドラッグしていくと数値が上がっていきます。それに伴って、音が出ます。直接数値を入力して、Enterキーを押しても音が出ます。マウスを操作している間は、音が変化しながら鳴り続けますが、マウスを止めたりEnterを押して音を出したりした場合は、一定時間で音が止まります。「*~」につながっている「ナンバー」部品は、音が出ている状態と止まっている状態を表しています。音を鳴らし始めると自動的に「1」になり、しばらくすると「0」に戻ります。(リレーのような動きをします)他の「ナンバー」部品の数値を変更した場合も、「Pitch」をクリックしてしてからでないと音が出ません。このあたりの「暗黙のルール」がもう少しわかりやすいとユーザーが増える気がしますが…。

ということで、少しずつ部品の役割(挙動)がわかってきました。「ナンバー」部品は、編集モードをやめて実行モードにしても数値を変更することが可能です。(「オブジェクト」部品の中に入力した数値は、編集モードでなければ変更することはできません)つなぎ方によっては、他の数値の変更と連動して自動的に「ナンバー」部品の数値が変わることもあります。今回のシンセサイザーっぽいプログラムでは使いませんでしたが、「リスト」部品も数値などを格納することができると思われるので、もう少し詳しく調べてみたいと思っています。

「ナンバー」部品の数値を変更する方法として、マウスを使って上下にドラッグする以外に、「垂直スライダ」部品や「水平スライダ」部品を使って、スライダの出力側と「Pitch」の「ナンバー」部品の入力側をつなぐと、スライダを動かすことで数値を変更できることがわかりました。少しだけシンセサイザーを操作している感じに近くなってきました。この場合、スライダのバー(「つまみ」のようなところ)をクリックすると音が出ます。このスライダのバーを「垂直…」なら上下に、「水平…」なら左右にマウスで移動すると音が変化します。これは絶対沼るやつです。

「Pd(Pure data)でシンセサイザープログラミング」

2025年6月14日土曜日

Pd(Pure data)でシンセサイザープログラミング~はじめの一歩

だいぶ以前から気になっていたのですが、Pd(Pure data)という音楽に特化したプログラミング環境があります。ブロックプログラミングとテキストプログラミングとの中間な感じのプログラミング方式が採用されていて、一見すると色気もなくて何をどうすればよいかよくわからないと思われてしまいそうなのですが、使ってみると楽器そのものを組立てているような面白さにハマる人が多いようで、意を決してそんな世界に足を踏み入れてみることにしました。

とは言え、MacBook ProにPd-extended(すでに開発終了)をインストールしたのは記憶にないくらい前のこと。興味をもったままPd-extendedをインストールして、ほぼ何もしないまま放置して、しばらくしてまた思い出して、レシピ本「Pd Recipe Book」を購入してまたしばらく放置して…を繰り返していたので、お気付きの通り何も進んでいませんでした。

まずは自分の情報をアップデートするところから始めます。そもそもPdの開発は、Pure data (Pd) Vanillaと、それにライブラリなどをパッケージしたPd-extendedとで別々に開発・メンテナンスされていたようなのですが、現在は、もともとのPd Vanillaに統合されているようです。今回は、Pdのダウンロードサイトから最新版をダウンロードしてインストール作業(展開して出てきたアプリをアプリケーションフォルダにコピー)をするところから始めました。

Pdを起動すると、ログ窓が表示されます。作業を進めていくと、このログ窓にPdの動作ログなどが表示されます。

「ログ」の後ろの数字は、表示する内容がどの設定なのかを表す番号になっていて、「2」は「通常」のログ表示ということのようです。すべてのログを見たい場合には、「4」にします。表示する文字数の節約という意味では意図はわからなくもないのですが、ユーザーフレンドリーであるかどうかという点では微妙な感じがします。このあとの作業でも感じたことですが、使いながら意味を考えたり、本やWebサイトで調べて「省略されている文字」の意味を理解したりしながら作業することが多くて、「一見さんお断り」な雰囲気を感じてしまいます。
#音楽(音)や電子楽器の知識はあった方が良いかもしれません。

気を取り直して作業を進めていきます。今回は、先ほど紹介した「Pd Recipe Book」以外にも、「Pure Dataについて調べてみた」を参考にして作業を進めます。Pdの「ファイル」メニューから「新規」(⌘N)をクリックしてキャンバス窓を開きます。ここに様々な部品を「配置」メニューから選んで配置していきます。部品には、文字列や数値を入力できるものやマウスで操作するものなどがあります。新しくキャンバス窓を開くと「編集モード」になっているので、そのまま「配置」メニューから部品を選択してキャンバス窓に置くことができます。プログラムの動作確認をするときには、「編集」メニューから「編集モード」(⌘E)のチェックを外して実行モードで動作させます。(簡単なものであれば「編集モード」のままでも確認できることはあります)さらに部品を追加したい場合は、そのまま「配置」メニューから部品を選ぶとキャンバス窓が「編集モード」に変わってくれます。
#ログ窓とキャンバス窓は、どれか一つしか選べない仕様になっているため、その窓がアクティブか非アクティブかによって使えるメニューの内容が変わります。

つまずきどころは、部品に入力する文字が「小文字縛り」だったこと。シンセサイザー周辺の表記は「OSC(オシレータ)」とか「ENV(エンベロープ)」などと大文字で書かれるイメージがあったため、大文字で入力するものとばかり思っていました。Pdでは、すべて小文字でなければならないということで、初歩の初歩である「osc~」から「dac~」につないで音を出すところでつまずいてしまいました。orz(よく見れば、本でもWebサイトでもすべて小文字だったのだけど、「osc」って偶然にも大文字と小文字の区別がつきにくいのよね…)とりあえず、サイン波の音を出すことはできました。

「440」というのは、お察しの通り「440 Hz(A4)」の音という意味です。(このBlogでもたびたび登場しています)この数値を変えると、様々な音程のサイン波を出すことができます。これをベースにシンセサイザーっぽいものを作っていきたいと思います。続きは次回以降ということで。

「Pd(Pure data)でシンセサイザープログラミング」

2025年6月4日水曜日

ワイルドミニ四駆をiPhoneからリモートで動かす(MKZ4をiPhoneからコントロールする)

前回の続きです。秋月電子通商で購入した「MKZ4」という、タミヤワイルドミニ四駆iPhoneなどのスマホから無線で動かせるように改造するキットを使ってみるという話の3回目(最終)です。前回までで組立作業が完了して、今回はWi-Fiを利用してiPhoneからコントロールできるかやってみます。
#MKZ4は、メーカーサイトでも売り切れています。

メーカー公式YouTubeチャンネルで公開されている「スマホで操作する改造ミニ四駆製作キット「MKZ4」 [Cerevo]」を参考にしながら作業を進めました。手順をテキストで表すと以下にようになります。
#MKZ4のCN3(L字ピンヘッダ)のショートピンがB側になっていることを確認してから作業をしてください。

  1. MKZ4の電池ボックスに単4電池を3本入れてスイッチをONにする(MKZ4のLEDが点灯する)
  2. iPhoneの「設定」を開き、「Wi-Fi」の接続先に出てくる「MKZ4」をタップしてMKZ4と接続する
  3. Webブラウザーを開きアドレスバー(URLなどを入力する欄)に「192.168.4.1」と入力してMKZ4にアクセスする
  4. 「CONNECTED」という青緑色の画面が出たら準備OK
    #推奨されるWebブラウザーは「ユーザーガイド」のページに掲載されています。
  5. 青緑色の画面をスワイプしてワイルドミニ四駆を動かす

マニュアルの文書は、PDFファイルで公開されていますので、こちらも参考にしながら作業を進めました。前進は画面下方から上方にスワイプし、後進は画面上方から下方にスワイプするといった操作をします。ステアリングは、左右のスワイプで左右に傾けることができます。前後進は問題なく動作しましたが、ステアリングの動きがおかしくて、ステアリングを動かそうとするとどちら向きに動かしても右側に傾いてしまいます。動作中にMKZ4のLEDが点いたり消えたりするので、はんだ付けが不十分なところがあるのかもしれません。もう少し調整作業が必要なことがわかりましたが、とりあえず動作することだけは確認できました。
#事情により、USBでPC等に接続できるデジタル顕微鏡を職場の職員に貸し出しているので、返却されたら調整作業をやっていきたいと思います。

「ワイルドミニ四駆をiPhoneからリモートで動かす」

2025年5月23日金曜日

ワイルドミニ四駆をiPhoneからリモートで動かす(MKZ4の設定と組み上げまで)

前回の続きです。秋月電子通商で購入した「MKZ4」という、タミヤワイルドミニ四駆iPhoneなどのスマホから無線で動かせるように改造するキットを使ってみるという話です。フィジカル・コンピューティングの教材ネタとして購入したものの、いろいろとつまずいてしまって完成までに時間がかかっています。
#MKZ4は、メーカーサイトでも売り切れています。

前回は、メーカーサイトの説明書を読みながらMKZ4のはんだ付け作業を行ってきました。今回は、基板上にはんだ付けした「ESP-WROOM-02(ESP8266EX)」モジュールにプログラムを流し込んでいきます。使用するツールは、Arduino IDEです。Arduino IDEでESP-WROOM-02のプログラミングをする場合は、マイコンボードに合わせた設定を行わなければなりません。すでにArduino IDEをESP8266のプログラムに対応させているのであれば、以下の作業は必要ありません。はじめてArduino IDEでESP8266を使う場合には、以下の作業を行ってください。(Arduino IDEが起動している状態からの作業になります)

  1. 「Arduino IDE」メニューから「Preference(基本設定)…」を選択して設定画面を表示させる
  2. 「追加のボードマネージャのURL」欄に
    「https://arduino.esp8266.com/stable/package_esp8266com_index.json」
    と入力して「OK」ボタンを押す
  3. 「ツール」メニューから「ボード:… >」→「ボードマネージャ」とたどり、検索窓に「esp8266」と打ち込むとESP8266用のプログラムが表示されるので、最新版をインストールする

#MKZ4のマニュアルサイトでは、追加のボードマネージャのURLが「http://arduino.esp8266.com/stable/packageesp8266comindex.json」となっていますが、上記で示したURL(「https://…」から始まる)に変更されているようです。

ここまでで、Arduino IDEの準備は終了です。ESP-WROOM-02モジュールに書き込むプログラム(.ino)を用意します。プログラム自体はgithubの「cerevo/MKZ4」にあるので、「< > Code」ボタンをクリックして「Download ZIP」を選択してダウンロードしておきます。ダウンロードした「MKZ4-master.zip」を解凍すると、「MKZ4-master」というフォルダが現れるので、その中から「Cerevo_MKZ4」というフォルダをArduinoのプログラムを保存してあるフォルダに入れます。
#Arduino IDEを起動したときに、(任意で変更していなければ)「書類(Documents)」フォルダ内に「Arduino」フォルダが作られると思いますので、この中に入れるのが一般的だと思います。

次にボード側の作業をします。MKZ4のCN3(L字ピンヘッダ)のショートピンをD側にして、「MKZ4WK(専用の書込ツール)」をつなぎます。ここから、USBケーブルでコンピュータにつなぎます。

「ツール」メニューから「ボード:… >」→「ESP8266 Boaards(…)」とたどり、「Generic ESP8266 Module」を選択します。ポート名は環境に依存します(LinuxやmacOSでUSBシリアル接続すると「/dev/…」から始まるポート名が使われています)ので、USBケーブルで接続してみて表示されたものを選択しました。はじめは、MacBook Proで動かしているArduino IDE(2.x系と1.8.19の両方)を使いましたが、残念ながら途中でエラーを吐いてうまくプログラムを書き込めていない様子。例によって、USBシリアル通信がうまくできていないようなので、続きの作業をLinux Mintで動かしている自作PCを使ってやってみました。すると、2.x系も1.8.19も無事にコンパイルと書き込みができました。
#一度コンパイルと書き込みをしてから再び書き込む必要があった場合には、USBケーブルを抜いて接続を切って再度挿し直しをしないとエラーが出るようです。

あとは、説明書に従って走行できる状態まで組み上げていきます。MKZ4制御基板のCN3ショートピンは、B側にしておきます。

反省点は、完成までに数年かけてしまったことで、ネジ類が他のものと混ざってしまって焦ったことでした。幸い捨ててはいなかったので無事に組み立てられましたが、忘れないうちに一気に組み立てた方がよいですね。iPhoneからの動作確認は次回ということで。

〈参考資料〉

「ワイルドミニ四駆をiPhoneからリモートで動かす」

2025年5月17日土曜日

ワイルドミニ四駆をiPhoneからリモートで動かす(組み上げる前までの準備として)

忘れてしまうくらい遠い過去に、秋月電子通商で「MKZ4」というタミヤワイルドミニ四駆iPhoneなどのスマホから無線で動かせるように改造するキットを購入していました。当時は、マイコンボードでモーターを制御したり、ロボットカーのようなものを作ることに興味があったのだと思います。プログラムを流し込んでワイヤレスで制御できる「ESP-WROOM-02(ESP8266EX)」モジュールを使う改造キットだったことも興味をもった理由だったかもしれません。
#現在は、メーカーサイトでも売り切れのようです。

これが、自室の作業台の隅の方に作りかけのまま長いこと放置されていたことが突然気になり、かたをつけるつもりで完成を目指して作業を再開しました。とは言え、なぜ長いこと放置されていたかと言うと、「組み立てが面倒」(素人さんお断りな感じ)だったからでした。

購入した直後から説明書を読みながら必要なものを買いそろえて、組み立て作業をしていく中でいろいろとつまずいて、しばらく作業台の隅に放置して、ふと思い出して作業を少し進めてはまたつまずいて、といったようなことを繰り返していました。購入から何年が経っただろうと記憶が曖昧になっている状況です。

習慣として、自分の作業履歴をメモに残していたのですが、最後の作業時期は新しい家に住み始める前のことで、引越し作業の中でも気にはなっていたのですが、いつでも続きができるように目の届く範囲に置いていました。そんなわけで、何度目かの「重い腰」を上げて作業の続きをしていきたいと思います。以下、書き留めていた記録をもとに、整理してまとめていきたいと思います。

1つ目のつまずきどころとして、ワイルドミニ四駆の本体を切断しなければならないというところ。試行錯誤の末に、Pカッターとリュータ、ニッパーを使って切断作業をしました。マニュアルとにらめっこをしながら、切断する場所や効率よく切る方法を考えて切断していきます。削りカスが飛び散るので、段ボール箱に半透明なビニール袋(45L)を掛けてその中で作業をしました。材質は硬くないので切ること自体は難しくないのですが、構造が面倒なことになっていて、どのラインで切るか決めるのが難しく感じました。途中、リューターの故障などハプニングはありましたが、残りをPカッターとニッパーで切断してヤスリでバリ取りをして切断作業は終了しました。

次にMKZ4の制御基板に電子部品をはんだ付けしていきます。ESPRESSIF SYSTEMSのESP-WROOM-02モジュールを載せるのが一番大変でしたが、後はそれほど難しくないので説明書の通りにやればできると思います。表面実装部品のはんだ付けは、フラックスを塗った方がはんだが乗りやすいです。その後、無水エタノールで洗浄してキムワイプとブラシ(ナイロンのもの)で洗浄しました。簡易な顕微鏡のようなものがあると、はんだ付けの状態を確認することができるので便利です。
#私は、USB接続のマイクロスコープを使っています。

はんだ付けの手順としては、オーソドックスに背の低い部品から徐々に高い部品へと取り付けていくと良いと思います。1000pF(102)のセラミックコンデンサは、パスコンとしてモータにはんだ付けします。動作確認がしやすくなるように、制御基板の作成と配線、ミニ四駆の組立作業を進めていく感じが良いと思います。

さて、作業の記録が長くなってきてしまったので、とりあえず続きは次回ということにしたいと思います。

〈参考資料〉

「ワイルドミニ四駆をiPhoneからリモートで動かす」