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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
hawky the miscellaneous
June 30, 2026
Technology
46
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
84
Applied AI Engineering とは
hawkymisc
0
100
非CUDAの悲哀 〜Claude Code と挑んだ image to 3D “Hunyuan3D”を EVO-X2(Ryzen AI Max+395)で動作させるチャレンジ〜
hawkymisc
2
570
Other Decks in Technology
See All in Technology
環境凍結という Toil を倒す -セルフサービス型 Ephemeral テスト環境の 設計と実践
shirouz
1
180
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
1
390
AIで政治は変わるのか? — 中高生と考えたAI時代の民主主義(東海高校サタデープログラム)
eitarosuda
0
390
プロダクトだけじゃない、社内プロセスにおける自動化・省力化ノススメ
kakehashi
PRO
1
210
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
8k
Claude Codeとハーネスについて考えてみる
oikon48
18
8.5k
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
170
AI Driven AI Governance
pict3
0
130
AIに「使われる」時代のSaaS戦略 〜既存WebAPIのMCPサーバー化における開発ノウハウ〜
ekispert_api
0
290
SRE Lounge Hiroshimaへの招待
grimoh
0
250
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
3
740
Zoom2Youtube.Claude
kawaguti
PRO
2
410
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
340
WENDY [Excerpt]
tessaabrams
11
38k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
The agentic SEO stack - context over prompts
schlessera
0
840
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
360
Ethics towards AI in product and experience design
skipperchong
2
320
How to make the Groovebox
asonas
2
2.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The browser strikes back
jonoalderson
0
1.4k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
How to Ace a Technical Interview
jacobian
281
24k
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終了とさせていただきます。ありがと うございました。