673899 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

きょうは毒きのこ日和です

きょうは毒きのこ日和です

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

Profile

あとぐ

あとぐ

Recent Posts

Category

Calendar

Keyword Search

▼キーワード検索

2023/12/21
XML
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通信と開発環境を手ほどき
          して欲しい今日この頃であります。


PVアクセスランキング にほんブログ村





お気に入りの記事を「いいね!」で応援しよう

Last updated  2024/04/25 09:19:03 AM
コメント(0) | コメントを書く
[部品:電気・電子・USBの工作や部品等の検討・紹介] カテゴリの最新記事



© Rakuten Group, Inc.