---
title: GUIDE01向けにアプリを作ってみる
tags:  #xrmtg #xr #python  
author: [Miyaura](https://image.docswell.com/user/m-taka596)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/Y79PL8PVE3.jpg?width=480
description: 【大阪-ハイブリッド開催】XRミーティング 2026/05/20【AR/CR/MR/SR/VR】( https://osaka-driven-dev.connpass.com/event/391831/ )登壇資料。 GUIDE01用に何かアプリを作たいときにどういう開発や仕組みが使えるのか紹介。 例としてPCとGUIDE01をBLE接続してプレゼン支援アプリを作成し、その時のTipsも。タッチセンサーでスライド制御し、GUIDE01には次のスライドと定期的に経過時間を表示することで発表者ツール的な仕組みを組み込んでみました。
published: May 20, 26
canonical: https://image.docswell.com/s/m-taka596/ZPRW9G-XRMTG-GUIDE01-dev-20260520
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/Y79PL8PVE3.jpg)

GUIDE01向けにアプリを作ってみる
～ BLE 直叩きで作るプレゼン支援アプリ ～
2026/05 XR
ミーティング
@takabrz1
Takahiro Miyaura


# Page. 2

![Page Image](https://bcdn.docswell.com/page/G78DX8D47D.jpg)

宮浦 恭弘
(Miyaura Takahiro)
Microsoft MVP for Mixed Reality 2018
Microsoft MVP for M365 2025
- 2026
XR は趣味です.AI 系も最近始めました。
- 202 5
大阪駆動開発コミュニティに生息
HoloLens 日本販売してからxR 系技術に取組む
新しい技術や、MRに使えそうな技術を調べる
技術Tips :
https://qiita.com/miyaura
https://zenn.dev/miyaura
最近興味があって取り組んでいるもの
○ AndroidXR
○ 新しいガジェット( MiRZA,Galaxy
XR,etc …)
○ Microsoft Foundry,
生成AI
@takabrz1
※よかったらこれを機にお知り合いになってください


# Page. 3

![Page Image](https://bcdn.docswell.com/page/L7LM8RMVJR.jpg)

今日の内容
• GUIDE01 とは
• GUIDE01 アプリを作る4つの方法
• プロトコル比較
目次
• BLE 直叩きで作るプレゼン支援アプリ
• Windows BLE
• まとめ
の制約と運用上の注意


# Page. 4

![Page Image](https://bcdn.docswell.com/page/4EMY6RYNEW.jpg)

GUIDE01とは
手持ちのメガネに後付けする、約10g のウェアラブル・スマートディスプレイ
○製品：GUIDE01
/ Happy Life Creators
（大阪）
○重量：約 10g
/
装着：手持ちのメガネに後付け
○ディスプレイ：単眼 624 ×405 フルカラー
○接続：Bluetooth LE
○公式アプリ：iOS / Android
（v1.0.9
から OSC/HTTP/MQTT 対応）
これにより カスタム表示 を外部から制御できるよ
うになった
2026/05/20
© 2026 Takahiro Miyaura
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/PER9PR94J9.jpg)

GUIDE01アプリを作る4つの方法
スマホのGUIDE01 アプリを経由する方法とPC 接続
GUIDE01 アプリ仲介（v1.0.9 〜）
• OSC ：UDP / port 8000 /
低レイテンシ・小ペイロード
• HTTP ：REST / port 8080 /
一番デバッグしやすい
• MQTT：pub/sub / port 1883 / IoT
連携に強い
PC 接続（BLE 通信）（公式SDK + bleak
）
• PC + GUIDE01
のみで完結（スマホ不要）
• GIF ・タッチイベントなど仲介ルートに無い機能が使える
2026/05/20
© 2026 Takahiro Miyaura
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/P7XQ3RQZEX.jpg)

プロトコル比較
方式
速度
得意分野
依存
OSC
アプリ経由
高速・低遅延
動的画像・スライド送出
python - osc
HTTP
アプリ経由
5秒/ 枚 安定
動的画像・スライド送出
標準ライブラリ
MQTT
アプリ経由
中程度
IoT 統合・Home
Assistant
Mosquitto/paho
mqtt
BLE
PC 直結
テキスト即時
／画像は遅め
GIF ・タッチイベント・PC
単体
bleak + SDK
—
BLE 物理層 ~0.2fps
5秒以上の間隔推奨
アプリ仲介は「開始」必須
共通制約
2026/05/20
経路
© 2026 Takahiro Miyaura
-
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/37K9YR9V7D.jpg)

実際に作ってみました。
PC 接続でつくるプレゼン支援アプリ
2026/05/20
© 2026 Takahiro Miyaura
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/LJ3W989QJ5.jpg)

今回はPC利用（BLE通信でGUIDE01と接続）
PC とGUIDE01 をBLE 通信で直接使えばタッチセンサーを補足できる
アプリ仲介ルートでは不可能な2機能を実現
• ① 動的GIF (10 スロット切替)
OSC/HTTP/MQTT には公式手段なし → 動的アニメーション可能
• ② タッチイベント受信
Single/Double/Swipe
前後/Long →
デバイス側操作を入力に
+ 構成のシンプルさ
スマホ・Wi- Fi
不要、PC + GUIDE01
※ テキスト表示は scene/load
2026/05/20
のみで完結
でも可能 (lyric_data
© 2026 Takahiro Miyaura
は軽量・高速が強み)
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/8JDKGMGWEG.jpg)

今回作ったもの: プレゼン支援アプリ
登壇中、手元PC からGUIDE01 に発表者向け情報を出す
• 機能①:
次に話す内容/ タイマー表示
• 機能②:
デバイスのタッチでスライド送り
構成:
Python + bleak +
Windows PC
Webカメラ経由なので荒く見えますが
実際は普通に見られるくらいの品質
2026/05/20
© 2026 Takahiro Miyaura
公式SDK +
GUIDE01 は連続使用で90 分くらいなので常時使う
ものよりはスポットで使えるものと相性がよさそう
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/VEPK3R3X78.jpg)

ちなみに、、、
検証の時にのぞき込むのが面倒だったので・・・
Insta 360(USB
GUIDE01
固定する何か
2026/05/20
カメラ）
© 2026 Takahiro Miyaura
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/27VV4R437Q.jpg)

SDKと主要API
import guide01_protocol as g01
# UUIDs (BLE characteristics)
g01.UUIDs.MSG_NOTIFY
# 通知 / タッチ
g01.UUIDs.FILE
# 画像送信
g01.UUIDs.LYRIC
# テキスト 3 行
g01.UUIDs.GIF_TEXT_DISPLAY # GIF表示
SDK で使える主な機能
• 通知 (notification)
タイトル＋本文を1回で表示
# テキスト 3 行 (lyric_data)
g01.song_info(title, artist)
g01.lyric_data(line1, line2, line3)
• テキスト (lyric_data)
3行表示・200B 未満で高速
# 画像送信 / GIF / タッチ
g01.build_image_messages(jpeg, mtu=450)
g01.gif_text_upload_gif(gif_id, gif_bytes)
g01.parse_touch_event(notify_bytes)
• 画像送信 (build_image_messages)
JPEG をMTU毎にチャンク分割
• GIF (gif_text_upload_gif)
10 スロット(id 0
- 9) に動的アップロード
• タッチ操作 (parse_touch_event)
Single/Double/Swipe
2026/05/20
© 2026 Takahiro Miyaura
前後/Long
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/5JGL1M1Y7L.jpg)

テキスト3行表示 (lyric_data)
# 歌詞モード開始
await client.write_gatt_char(
g01.UUIDs.LYRIC,
g01.song_info(&quot;Title&quot;, &quot;Artist&quot;),
)
# 3行テキスト送信
await client.write_gatt_char(
g01.UUIDs.LYRIC,
g01.lyric_data(
&quot;1行目&quot;, &quot;2行目&quot;, &quot;3行目&quot;
),
)
await asyncio.sleep(10)
# 停止
await client.write_gatt_char(
g01.UUIDs.LYRIC, g01.lyric_stop())
• 1メッセージ完結 — 200byte 未満で高速
• 用途 — プロンプター・字幕
• API — write_gatt_char
• 速度 — Windows BLE でも実用速度
• 上限 — 3行まで
2026/05/20
© 2026 Takahiro Miyaura
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/47QYDRD6EP.jpg)

タッチイベント受信
EVENT_NAMES = {
g01.TOUCH_SINGLE_CLICK: &quot;single&quot;,
g01.TOUCH_SWIPE_FORWARD: &quot;swipe→&quot;,
}
def on_notify(_s, data):
evt = g01.parse_touch_event(bytes(data))
if evt:
print(EVENT_NAMES[evt[&quot;touch_event&quot;]])
await client.start_notify(
g01.UUIDs.MSG_NOTIFY, on_notify)
▸5種のイベント
▸ single / double / swipe(
long press
前後) /
▸MSG_NOTIFY
▸ BleakClient.start_notify
で購読
▸parse_touch_event
▸ page_id
と event
種別を取り出すだけ
▸PC とGUIDE01 をBLE 接続しないと使えない
2026/05/20
© 2026 Takahiro Miyaura
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/KE4WZ8ZMJ1.jpg)

デモ: guide01-bridge
2026/05/20
© 2026 Takahiro Miyaura
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/L71YR2RYJG.jpg)

Windows BLEの制約
Android (BluetoothGatt)
Windows (WinRT BLE)
• ATT_MTU: アプリから要求可
• ATT_MTU: OS自動・制御不可
• LE Data Length Ext.
: 自動・有効
• Connection Interval
: 7.5
–30ms に設定可
• 実効スループット: 高 (~5 秒/40KB)
• LE Data Length Ext.
: アプリ制御不可
• Connection Interval
: アプリ制御不可
• mtu_size 取得: bleak Issue #1497
で不安定
• 実測 40KB 送信: 約60 秒 ( GUIDE01 よりも遅い)
2026/05/20
© 2026 Takahiro Miyaura
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/G7WG1R11E2.jpg)

制約と運用上の注意
ハマリどころがいろいろあります。
• アプリ側 BLE は明示的に切断
BLE は同時1ペア。スマホアプリ接続中はPC から一切繋がらない
• 送信完了 ≠ 描画完了
データ量次第だが、データ送信後GUIDE01 デバイス内描画に数秒かかる。連続でデータを送り
続けると行がしきれずに動作しなくなる（白/ 黒画面で固まることあり）
• MTUは最適値を見つける必要がありそう
MTUを上げると１度に多くの情報を送れるが、その分GUIDE01 内での処理が増えるので考慮
が必要。MTU 498 はチャンク密集でバッファoverflow の可能性。実測 5KB/3 秒,
25KB/15 秒, 40KB/60 秒
• 特に画像についてはデータサイズ次第では GUIDE01 アプリ経由でHTTP 通信がいいかも
高解像度・連続更新はアプリ仲介HTTP で 5秒/ 枚、PC とGUIDE01 を直接通信させると帯域
などの影響でうまくいかないことが多かった。PC からBLE でつなぐ際には軽量画像とテキスト
/GIF/ タッチ用途に
2026/05/20
© 2026 Takahiro Miyaura
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/4JZLPRPXE3.jpg)

まとめ
GUIDE01 用にアプリを作る際のTips などを紹介
• 用途別に4つの選択肢
• OSC / HTTP
: 手軽に様々なアプリの表示に活用
• MQTT : IoT 連携
• PC にGUIDE01 を接続 : タッチセンサーなどの操作を利用
• PC とGUIDE01 のBLE 接続
• タッチセンサーを使えるのは魅力
• Windows PC からの接続時にはMTUの設定等帯域やデータ設計が重要
手軽に追加で情報表示ができるデバイスとして面白いですよ
2026/05/20
© 2026 Takahiro Miyaura
17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/YE6WMRMPEV.jpg)

参考リンク (Zenn連載)
今日紹介した話の詳細は複数のZenn 記事で紹介
▸① 開発環境 &amp; 共通メッセージ仕様
zenn.dev/miyaura/articles/guide01-part1-protocol-overview-e44baf368063f8
▸② OSC 版 ( 低レイテンシ・小ペイロード)
zenn.dev/miyaura/articles/guide01-part2-osc-e70c48d4473c7b
▸③ HTTP 版 (REST
で一番デバッグしやすい)
zenn.dev/miyaura/articles/guide01-part3-http-b89e9310cf934e
▸④ MQTT 版 (IoT
統合と Windows Mosquitto
の罠)
zenn.dev/miyaura/articles/guide01-part4-mqtt-fbe8d18fc27310
▸⑤ BLE 直叩き版 (PC 単体・GIF ・タッチイベント)
zenn.dev/miyaura/articles/guide01-part5-ble-direct-4532b4c2742625
2026/05/20
© 2026 Takahiro Miyaura
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/GE5MZ8ZPE4.jpg)

大阪駆動開発
関西を中心に、IT系のおもしろそうなことを
楽しんでやるコミュニティ


