Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
腕時計ローカルAIスタックチャンを作ったら組み込み開発の罠にハマった話
Search
hawky the miscellaneous
June 30, 2026
Technology
52
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
腕時計ローカルAIスタックチャンを作ったら組み込み開発の罠にハマった話
2026.6.28 ローカルAIと向き合う展⽰会 Vol.2 のLTで発表した内容です。
発表時の台詞に合わせて当日のスライドから若干修正しています。
hawky the miscellaneous
June 30, 2026
More Decks by hawky the miscellaneous
See All by hawky the miscellaneous
AI AgentのTDDルール追従性を評価する
hawkymisc
0
87
Applied AI Engineering とは
hawkymisc
0
110
非CUDAの悲哀 〜Claude Code と挑んだ image to 3D “Hunyuan3D”を EVO-X2(Ryzen AI Max+395)で動作させるチャレンジ〜
hawkymisc
2
580
Other Decks in Technology
See All in Technology
GMOフィナンシャルゲートが挑む、「止まらない」決済インフラ構築の裏側【SORACOM Discovery 2026】
soracom
PRO
0
110
CTOキーノート:AI時代の「つなぐ」を再定義 ― 真のIoTとリアルワールドAI【SORACOM Discovery 2026】
soracom
PRO
0
310
現場との対話から始める “作る前に問い直す”業務改善
mochico50
2
330
基調講演:人とAIをつなぐIoTの今と未来 ー 「フィジカル」と「デジタル」が出会うその先へ【SORACOM Discovery 2026】
soracom
PRO
0
360
最高のシステムプロンプトを作るためにフィードバック機能を導入した話
alchemy1115
0
220
WEBフロントエンド研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
720
reFACToring
moznion
1
860
全社でのソフトウェアサプライチェーン攻撃対策をやってみた with Takumi Guard
z63d
0
320
オートマトンと字句解析でRoslynを読む
tomokusaba
0
120
データ活用研修 データマネジメント【MIXI 26新卒技術研修】
mixi_engineers
PRO
4
770
変更し続けられるシステムをどう保つか — AI時代のSSoTという設計原則
kawauso
1
1.5k
AIエージェントがあれば技術書なんてすぐ書けるでしょ→無理でした
watany
6
1.1k
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
560
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Technical Leadership for Architectural Decision Making
baasie
3
450
It's Worth the Effort
3n
188
29k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
470
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Transcript
Slide 1 / 13 改めまして、ほーきーと申します。LTのト ップバッターということで若干緊張してお りますが、普段はXのほうでいろいろつぶ やいております。1日数十ポストぐらい、 平均でつぶやいておりまして、いわゆるツ イ廃と呼ばれる部類です。AI関連の資格を
いくつか持っています、という「ちゃんと 仕事しています」アピールをしておこうと 思って、ここにバッジを載せております。
Slide 2 / 13 今回は「ローカルAIと向き合う展示会」と いうことですが、ローカルAIそのものから は若干外れた、番外編のようなテーマです 。ローカルAIに家の外からアクセスしよう としたらどうなるか・ということで、「腕 時計ローカルAIスタックチャンを作ったら組み込
み開発の罠にはまった話」という題材を選 んでいます。
Slide 3 / 13 腕時計ローカルAIスタックチャンとは何ぞや、と いう話ですが──前提として、AIスタックチャン というものがありまして。右側にあるよう な、こういう顔があって……それがスタックチャ ンというキャラクターです。M5Stackとい うメーカーが出している、マイコンにディ
スプレイとセンサーがまとまって付いたデ バイスに、こういう顔を表示するのが「スタ ックチャン」で、元々はメーカー発ではなくコ ミュニティ発のものです。
Slide 4 / 13 そのスタックチャンに、AIを使ってしゃべらせる というのが『AIスタックチャン』です。今回はそ れをさらに、AIをクラウドではなくローカ ル完結でやることと、腕時計としてスタックチャ ンを身に着けて持ち運ぶことを実現しよう と取り組みました。
構成としては、自宅のローカルマシンでAI を動かしたうえで、家にいるときは、この スタックチャンが動いているCore2というデバイ スからWi‒Fiで直接通信します。外出したと きはWi‒Fiで直接入れません。ちなみに、サ ーバー側をそのままグローバルに晒すのも 怖すぎるので、VPNを張ったうえで、その VPNに参加しているAndroidスマートフォ ンを使います。スマホは普段持ち歩くので 、スマホとこのスタックチャンのパーツをセット にして持ち運び、外出時はこれをUSBでつ ないで、ローカルのAIにアクセスする構成 にしています。
Slide 5 / 13 で、さきほどの構成図を見て疑問に思われ たかもしれません。 そうですね、Core2をVPNに参加させれば 、もっとシンプルな構成にできます。
Slide 6 / 13 私も最初は、Androidスマホをわざわざ経 由せずに、Core2をVPNに参加させればい いのではないかと考えました。そうすると 、全部Wi‒Fi経由で、しかもスマホのアクセ スポイントにWi‒Fiでつなげば、家の中でも 外でも同じ環境でできるので、シンプルな
構成になります。
Slide 7 / 13 しかし、このM5StackのCore2というデバ イスは、WindowsでもMacでもLinuxでも Androidでもありません。OSが動いている わけではなく、ファームウェアで動作を制 御する代物です。 私が使っているTailscaleというサービスも
Core2には対応しておらず、VPNクライア ントも当然ダウンロードできません。
Slide 8 / 13 そこで「どうする…?」と考えました。 さすがにTailscaleのクライアントをスクラ ッチ実装するのはやりすぎかなということ で、さきほどの構成にすると決めました。 ただ、Androidにアプリを載せてCore2と 通信しようとすると、アプリを自作するだ
けではなく、通信プロトコルも自作しなけ ればならない──という大きなハードルが ありました。とはいえ他にやりようがない ので、この構成でやってみました。自作ア プリと自作プロトコルで実装です。
Slide 9 / 13 このAIスタックチャンは、音声で話しかけるとスタッ クチャンがしゃべるというものです。実装はだ いたいAIに丸投げしていて、コーディング が終わりました。ファームウェアも書き込 みました。そこで、いざ試してみました。
Slide 10 / 13 短い文で試してみようと思って「元気です か?」と話しかけると、スタックチャンは、何を 言っているかわからない音声を返してきま した。 音声が再生できていないことだけはわかる 、という状態です。これが昨日か一昨日の
夜中くらいの状態でした。 Wi‒Fiのときはちゃんとしゃべれていたので 油断していたのですが、自作プロトコルに したらうまく音声が再生できないというこ とになり、「なぜなのか」ということをア プリ側にデバッグログを追加しながら、い ろいろ調べていました。
Slide 11 / 13 Wi‒Fiでは再生できていたのに有線通信にす ると再生できないのはなぜなのか── 音声が送られる経路の概略図は、この通り です。 ローカルAIサーバーマシン側で動いている Text‒to‒Speechで合成されたオーディオ
が、Androidスマートフォンに送られてき て、それがデバイスに送られる、という経 路です。 ただ、スマートフォンのリレーアプリがオ ーディオファイルをCore2に送るとき、フ ァイルを1回の通信では送れません。オー ディオファイルのサイズがそれなりに大き いため、1024バイト単位のチャンク(送信 しやすいサイズに小分けした塊)で、アプリ からデバイスにオーディオが送信されます 。
Slide 12 / 13 今回は、Core2側がそのチャンクをうまく受け取れて いませんでした。Androidアプリ側からデバイスに送 ろうとしている速度に対して、デバイス側が受け取る 速度が遅く、受け取りきれないパケットがたくさん発 生してしまいました。その結果、音が途切れ途切れに なったり、そもそもデコードできないというエラーが
出たりする状態になっていて……それを今朝から会場 でデバッグしていました。 【後記】 その後の調査で、Core2が受信できる帯域を超えたサ ンプリングレートのファイルが送信されており、そも そも原理的に受信するのが不可能であったと判明しま した。 ハードウェア制約により、通常のUSBでの有線通信で はなく、マイコン用のシリアル通信を利用しており通 信速度が遅いため、高品質なオーディオデータを受信 できませんでした。 そこで、TTSが生成するオーディオの品質を落とし、 シリアル通信でCore2が受信可能なレートまで抑える ことで、無事に音声が再生できるようになりました。 (このあたりの数字を含めた話は、別途時間があると きに記事にします)
Slide 13 / 13 感想としては、やはりハードウェアが絡む と制約条件が増えてくるので…… ソフトウェアと同じノリで「こういうこと はできるだろう」とカジュアルに考えても 、事前によく調査しないと、こういう落と し穴にはまります。
事前の下調べをじっくり行い、過去に問題 を乗り越えてきた先人たちの苦労と資産(ア セット)と涙をありがたく恩恵として受け取 りながら、Vibesだけで取り組むのではな く、きちんと設計をして開発に取り組むこ とが改めて重要だとわかりました。 皆様もこういう点にご注意ください。以上 でLT終了とさせていただきます。ありがと うございました。