|
2012年よりiPadを使い始めて10年が経過しました。
僕は当初よりWindowsPCも持ち運びたかったのですが、iPad/NotePC合計で 1.5kg超えが確実だったので何とか軽量化という事を考えていました。 ここではiPadをBLEキーボードとして使えないかソフトを作って検討しています。 現状何処まで作れたの? 詳細は作成記録に任せますが、一応実機で本ブログの入力が出来る様になりました。 但しipadのソフトキーボードの入力感に及ばず、まだまだ改善していく予定です。 とは言え・・・ 現状で気付く問題/修正点はSwiftPlaygrounds側ばかりです。 なので、SwiftPlaygroundsの使い方の調査・修正・確認のターンが長引くばかり。 SwiftのGUI周りをサポートしてくれる方が欲しいな~と悶々とする今日この頃です。 ココからは作成記録です。 キーボードを作る仕様とその進捗 =>どんな作りにするか?で 接続はこんな感じ考えています iPadPro ー①ー> ESP32 ー②ー> ESP32 ー③ー> PC ①:BLE通信(既に自作した通信関数を利用) ②:UART通信(新規作成) ③:Bluetooth Keyboard接続(サンプルを流用) 普段から利用している①と②なので、主にiPadPro部と③の作成です。 =>実際にハードをつくりました。 2台のESP32をUARTで繋ぐだけです。 ソフト書き込みで不具合が起きたので電源スイッチを付けました。 =>iPadのSwiftPlaygroundでキーボードGUIとBLE通信を作ります 各キーはkeycodeを持ちpress/releaseが検知できる仕組みです。 press/releaseを検知すると全キーのpress/release状態をkeycode順の bit配列にしてBLE通信で送信します。 以上w ※まずココからですよね~~~~ SwiftPlaygroundのソフト作成で起きた問題 解決済 >>キーボードレイアウトがががが SwiftUIの基本的なモノで作っています。(不勉強であまり知らない為) HStack/VStackでの対応なので現在は四角形しか作れていません。 反L字型のリターンキーは挫折して四角で我慢しました。 解決済 >>キーボタンのonPress / onReleaseイベントが取れない 基本構想でも紹介しているとうりkeydown/keyupが必要であり、 clickイベントはお呼びでは無いので実現方法を探しました。 アチコチ探した末にコチラのサイトに紹介がありました。(感謝~ 解決済 >>ButtonUIの登録部分のソースコードが長すぎる 10キー無しキーボードでも90個分ぐらいのキー位置登録があるので、 1キー1行でないと見通しが悪く作りにくい事が判りました。 ※別途struct ***key : view等で詳細を記述して登録部を改善 >>入力が変だ ipadのソフトキーボードの様に入力できないので不具合をセッセと潰します SHIFT/CTRLなどがワンクッション遅れでの動作の様な気がする・・・ キーリピートも気にする必要もありそうだし、問題山積な予感 >>キー入力後にKeyPress状態の色のキーが残っている Releaseイベントが発生しない状況があるらしい・・・・ Pressイベント時にBLE電文送信をしているが、タイミングを変えてみるか? >>キーロック状態を忘れていました CapsLockとか何種類かはロック状態を維持できる事を忘れてました。 iOSの画面側は判る表示が出来る様にしたいと思っています。 ESP32のソフト作成で起きた問題 解決済>>ライブラリが101キーボードのディスクリプタで日本語入力できない ディスクリプタを2か所書き換えて106キーにすると可能になりました。 解決済>>ライブラリの関数はCTRL/SHIFTなどの入力は受け付けない keyreport定義にはmodifiersにセットする仕組みを追加しました。 >>Keyboard/Mouseコンボのライブラリを見つけました。 ディスクリプタを106キーボードに書き換えて動作確認中。 う少ししたらマウスの動作確認も行う予定。 >>ESP32-S3/ESP32-C3って凄く良さそうです ESP32-S3はUSB HIDも実装できるそうです。USB HIDのキーボード サンプルは101キーボードなので日本語入力化を解決してからデス。 またESP32-C3は安くて小さいので本ユニットの最終版で使うかな? 2024年某日 まだマトモに使えないんです ある程度は上手く動く様な感じです。 しかし僕が普通にタイピングする速度にするとキーupが認識されないモノがあり、 破綻している感じです。 SwiftPlaygroundのプログラムが悪いのか? ESP32側のソフト・動作設定が悪いのか? 悩ましいトコです。 2024年4月 MAC買ってソフト作るにはチョット悩ましい swiftplaygroundのお陰でiOSでアプリを作成出来そうな気分です。 ただiphoneや旧ipad向けで作るならMACで開発する必要があります。 MACを手に入れるのは良いのですが、デベロッパー登録に年会費などなど 必要コストが悩ましい感じです。 そんな事ならAndroidに移行して安く上げたいですが、BLE通信ソフト開発デスヨー どうしましょうかねー。 どっかAndroidのBLE通信と開発環境を手ほどき して欲しい今日この頃であります。 お気に入りの記事を「いいね!」で応援しよう
Last updated
2024/04/25 09:19:03 AM
コメント(0) | コメントを書く
[部品:電気・電子・USBの工作や部品等の検討・紹介] カテゴリの最新記事
|