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を使うことを優先するのは得策ではないということです。(実験・検証はしたいけど、普段遣いの環境を壊すのも嫌だし…)