
気付けば2025年も残すところあとわずか。技術進歩のスピードは日に日に増し、あれもこれも試したいと思ううちに、積んだままのガジェットや「あとでやるリスト」が増えていった気がする。無責任な期待も、思い通りにいかない苦しみも、そんなモヤモヤは昔から大晦日に 「煩悩」 として処理されてきた。
テレビで除夜の鐘を見る機会はあっても、実際に煩悩の数だけ鐘をつくことはほとんどないだろう。ならば、消えることのない煩悩を、それぞれが自宅で消すべきなのではないか?そんな思いから、鐘の存在感を思う存分味わえる「ハンディ除夜の鐘」を作ってみた。
まずは完成品を見てもらいたい。
大きく「煩」と刻んだ鐘に、消し去りたい煩悩を思い浮かべながらミニチュア鐘撞き棒を振る。すると「ゴォ〜ン!」という音とともに鐘が震え、LEDが一つずつ増えていく。一つの煩悩につき一つのLED。画面全体が25ドットなので、4周と少し叩けば108の煩悩はすべて消化される計算だ。

「原稿遅れてすみません(ゴォ〜ン)」
「電子工作なんもわからん(ゴォ〜ン)」
「もっとバズりたい!(ゴォ〜ン)」
煩悩を叩き込むたびに鳴るこの鐘だが、音だけでなく振動にも注目してほしい。画面越しでは伝わりにくいが、この揺れの存在感はなかなかのもので、鐘を握る手はブルブルと震え、床に置いた砂利もバラバラと動き出す。

そこらのスピーカーでは再現できない、リアルな触感が味わえる「ハンディ除夜の鐘」。そのコアとなっているのが、ビット・トレード・ワンが発売する触感デバイス開発/体感モジュール 「hapStak(ハップスタック)」 だ。触感をテーマにした作品作りにも応用できる、野心的なアイテムを紹介しよう。
触感デバイスを開発できる「hapStak」

「hapStak」は、振動アクチュエーターと駆動回路がセットになった、触感を手軽に再現するためのモジュールだ。フォスター電機が開発したアクチュエーター「FOSTER ACOUSTICHAPTIC®」を採用しており、広い帯域を震わせられる広域振動、入力から反応までが速い低遅延、動作音がほとんど気にならない静粛性など、従来の振動モジュールでは得にくかった要素を備えている。
発売から4年以上が経過しているが、バーチャルタレントの隆盛やVR/ARの普及により、触感の重要性はいっそう高まっている。開発環境はややレガシーではあるものの、触感を気軽に扱うためには、今なお手頃なアイテムだ。

hapStakには、用途に合わせてデジタル版とアナログ版の2種類が用意されている。
デジタル版:Arduino MKRZeroやM5Stack AtomなどとI2Sで接続できる開発者向けモデル。音源データをArduino IDEから扱えるため、触感表現を組み込んだプログラミングや表現に適している。
アナログ版:ステレオミニ入力の音声信号を振動に変換するシンプルなモデル。mp3プレイヤーやPCから音を流すだけで触感を味わえるため、手軽に使い始められる。

今回の「ハンディ除夜の鐘」ではデジタル版を使用しているが、気軽に試してみたい場合はアナログ版もおすすめだ。使い方はとてもシンプルで、3.5mm音声入力ジャックを繋いで音声を流すだけ。操作はPCやスマートフォンなどの端末に依存するものの、アクチュエーターの実力をしっかり体感できる。
開発環境はやや古めだが、忠実に整えるべし

ここからは「ハンディ除夜の鐘」の開発プロセスを紹介していこう。デジタル版hapStackの内容物は変換基板、アクチュエーター本体、木製の簡易ケースの3点セット。制御用マイコンボードとしてはM5Stack ATOM(Lite / Matrix / Echo)またはArduino MKRZeroに対応しており、これらは別途用意する必要がある。今回はM5Stack ATOM Matrixを使用した。

hapStakデジタル版の環境構築は「公式GitHubのドキュメント通り」 を徹底したい。というのも、M5シリーズはハードウェア・ライブラリともに頻繁に更新される一方、本記事の執筆時点で、hapStakは3年以上前の環境でしか動作確認がされていないからだ。
筆者は「最近の環境でもそこそこ動くだろう」と油断して進めてしまったのだが、依存関係やOSの仕様、ライブラリ間の細かなズレにより、思いのほか深い沼にはまってしまった。余計なことはせず「ADCHACY – hapStakDemo インストール手順」に書かれた前提環境を、そのまま整えることを強く推奨したい。

動作が確認されている環境は下記の通りだ。
Arduino IDE 1.8.19(Windows版)
今となっては少し懐かしい “1系” のArduino IDE。Apple Silicon Macでは、同じバージョンに揃えてもうまく動かなかったため、素直にWindows環境を使うのが吉。
ESP32ボードライブラリ 1.0.6
「ESP32 by Espressif Systems」バージョン 1.0.6 を指定。
M5Atomライブラリ 0.0.9
Arduino IDEのライブラリマネージャーからは「0.0.9」を取得できなかったため、こちらなど外部サイトから直接ダウンロードし、zip形式でインクルードする。また、Atom Matrix を使う場合、FastLEDライブラリが別途必要となり、今回は3.3.2で安定動作した。
ESP8266Audio 1.9.5
音声再生まわりのライブラリ。こちらからzip形式でダウンロードしライブラリに追加する。
※以下、制作の都合でアクチュエーターはアナログ版に同梱されているものを使用しています。デジタル版とアナログ版のアクチュエーターは、ケーブルの長さ以外は同一製品です。

環境が揃ったら、GitHubにアップされている「hapStakDemo」をフォルダごとArduinoのスケッチフォルダに配置して実行。銃声の「バキュン」、恐竜の「ドシンドシン」、心臓の「ドクンドクン」といった音源が、リアルな触感として手に返ってくる。身体で聴くスピーカーとでも呼びたくなる、クセになる気持ちよさが味わえた。
WAV音源を専用ツールで文字列に変換
hapStak デジタル版で触感をコントロールするうえで重要なのが、音源データを自作することだ。サンプルプログラム「HapstackTest」では、ボタンを押すと1種類の音がアクチュエーターで再生される仕組みになっているが、ここで使用するデータ形式に合わせて音源を変換する必要がある。


このサンプルでは、音源を.c 形式のバイト配列に変換して読み込む方式が採用されている。変換には専用ツールが用意されており、GitHubにアップされているHTMLファイルを任意のブラウザで読みこむと、下のような画面が表示される。指示に従ってWAVファイルをドラッグ&ドロップするだけで、.c形式の配列が自動生成される。


WAVデータの設定にも注意が必要だ。「HapstakTest」のコードをそのまま使う場合、サンプリングレートは16,000 Hz、チャンネルはモノラル(1ch)、フォーマットは PCM(非圧縮)に揃えよう。
また、波形が唐突に終わると、耳ではほとんど聞こえなくても 「プツッ」とした成分が振動として強調されてしまう。そのため、再生開始時に軽いフェードイン、終端にはフェードアウトを入れておくと、触感としての振動がより自然になる。
鐘とデバイスを合体させ、ついに煩悩を体感
鐘の鳴る音が無事に変換できたので、いよいよ外側を作っていく。M5 Atom Matrixや変換基板を収める棒部分は、過去の事例で公開されていた3Dデータをベースに改変した。鐘本体には大きく「煩」の字をあしらい、上部にはhapStakのアクチュエーターがぴったり収まるスペースを確保した。

続いてプログラムを調整していく。最終版ではM5 Atom Matrixに搭載されている加速度センサーを利用し、
・一定以上の振りで「叩いた」と判定
・判定後に鐘の音を再生
・LEDマトリクスに煩悩カウンターを表示
という流れを実装した。こうして「叩く → 音と振動 → 108カウントまで数え上げる」という、小さな除夜の鐘システムが手のひらサイズで完成。最終版のプログラムはこちらにアップロードしたので、興味があればチェックしてみてほしい。


年の瀬に楽しむ、小さな触感工作
触感で音を感じるという体験は、作ってみると想像以上に豊かなものだった。ただ音が鳴るだけではなく、振動が存在感とともに伝わってくる。リアルとバーチャルの境が混じり合う今、改めて触感が活躍するポイントは多く、hapStakはその入り口として十分に機能してくれるだろう。
一方で、開発環境が更新されていないのは少しもどかしいところ。このモジュールが持つポテンシャルを思うと、音の作り込みや触感の違いを深掘りできる今の環境でリブートしてほしいと、無責任にも感じてしまうほどだった。
来年もまた、様々なガジェットや技術に触れ、新しい挑戦を迎えることだろう。その前に、今年のことを振り返るデバイスとして、煩悩を音と触感で味わってみるのもおすすめだ。
※鐘の効果音はポケットサウンド(https://pocket-se.info/)のものを利用しました。
本記事はSponsored記事です。
提供:株式会社ビット・トレード・ワン
ビット・トレード・ワン × FabScene コラボ記念クーポンのご案内
ビット・トレード・ワンとのタイアップ記念として、同社公式サイトの商品が全品10%OFFになるクーポンのご紹介です。
決済画面からクーポンコード欄にfabsceneと入力してください。
こちらのリンクから公式ストアにアクセスしても、全品10%OFFの割引が適応されます。
もちろん、今回紹介した製品も割引対象です。ぜひご利用下さい!

