本記事について
Bluetooth Low Energy(BLE)の学習において、ChatGPT(GPT-3.5)を活用した経験を共有する。
ChatGPTの有効性について、具体的な使い方や効果についてまとめる。
ChatGPTを使ったときの状況
直近の目的: 2つの M5Stack 間を BLE のコネクトモードを使って通信するプログラムを作ること
理解状況:
- BLE の単語等コンセプトを深く理解できていない。
- 本やブログで実装の流れは浅く理解している。
- BLE のサンプルコードのリポジトリは把握していた。
- しかし、種類が多く、どれを参考に作れば良いのかわからなかった。
相談内容
使い方1 コンセプトの理解を深める
本やブログで学んだことを ChatGPT に質問として投げることで、返ってくる内容が自分の理解と一致してるかどうかを確かめることができる。
- ペリフェラルとセントラル、ペリフェラルが親機、セントラルが子機ですか?
- セントラルからペリフェラルに通信して指示を出すことは可能ですか?
- スキャンはセントラル側が行う?
- ScanとConnectって同じですか?
一つずつ壁打ちできるため頭にスッと入ってきた。
使い方2 ソースコードの理解をサポート
ChatGPTにソースコードを投げて、各行や特定のコードブロックについての詳細な解説や理解を深めることができる
- 次に貼るコードについて対話で理解を深めたいです。
- (コードを貼る)
- 各行について聞いていく
- このコードはセントラル用のコードという認識であってますか?
XX という認識であってますか?という質問は学習する上で非常に有用であるように感じた。
本やブログは自分の理解度の確認は行なってくれない.(実践テスト等は別)
本やブログで学習 (INPUT) -> ChatGPT で理解度確認 (OUTPUT) という流れが良さそう。
使い方3 情報整理
ChatGPTに特定の動作やシナリオの流れについて整理してもらうことで、BLEの動作や通信の流れについての理解を深めることができる。
- クライアントからサーバーに接続するまでの流れを整理してください
使い方4 情報収集
- BLE5とBLE4でscanの方法かわりますか?
- あえてBLE4のスキャンを使うメリットありますか?
- セントラルがBLE5でペリフェラルがBLE4のとき拡張スキャンを使うと問題ありますか?
- BLE5のセントラルとBLE4のペリフェラルは通信できますか?
ChatGPT は 2023/07 時点ではデフォルトでは必ずしも正しい答えを返してくれるわけではないし、一次情報も示してはくれない。
そのため聞いたあと情報の精査は必要。
とはいえ、聞くハードルがめちゃめちゃ低く、検索で必要そうなキーワードを示してくれるため、とりあえず ChatGPT に聞いてみるというのはアリだと思う。
使い方5 学習方法の壁打ち
私: BLE習熟の道としてScan -> Connect -> その他の順にそれぞれプログラム組んでみようかなと思います
ChatGPT: 素晴らしいアイデアです!BLEの習熟を目指す際に、Scan、Connect、およびその他の操作を個別のプログラムとして実装する方法は非常に効果的です。...
「XXは有効です」くらいの冷静なレスポンスが来ると思っていたが、めっちゃ褒めてもらえた。
おわりに
上記の ChatGPT との会話を経てペリフェラル・セントラルのコンセプト・バージョンの違い等を理解でき、プログラムを書くまでの見通しがたてることができた。
ChatGPT には技術によって得意・不得意がある。(枯れた・古い技術ほど答えが返ってきやすい)
BLE は 2016/12 に 5.0 が出て現在も現役と、割と古く、かつコンセプトは複雑で難しい。
まさに ChatGPT で学習するのにぴったりな内容だと思う。
今後も積極的に ChatGPT を活用していきたいなと思いました!