2023年 SPRESENSE活用コンテスト への道⑦ ーBLE通信3ー

Home > Advent Calendar > 2023年 SPRESENSE活用コンテスト への道⑦ ーBLE通信3ー
すき 0
うんこ 0

HomeMadeGarbage Advent Calendar 2023 |20日目

前回は 2023年 SPRESENSE活用コンテスト への応募に向けてサーボモータSTS3032でロボット犬を構成してSPRESENSEのマルチコア機能を使って動作を確認しました。

2023年 SPRESENSE活用コンテスト への道⑥ ーマルチコア ロボット犬ー

 

 

データ送信

ロボット制御のためには動作パターンの他に各種パラメータの設定も必要となります。

ここではBLEによるパラメータ送信及び保存動作を確認します。

Arduinoコード

以下のように2コア使用して動作確認します。

  • Mainコア:BLE1507で受信した動作モードとパラメータを受けて
         サーボ SCS3032をsoftwareserial (GPIO D7)で制御
  • Subコア1:BLEボード BLE1507 での通信管理

Mainコア

Sub1コアからの動作選択信号 (Mode: 0~7)と動作周期 (period [msec])、姿勢高さ (height [mm])を受信してSCS3032をsoftwareserial (GPIO D7)で制御して動作

periodとheight は電源OFF後も保持させたいので  EEPROMライブラリ を使用してSPRESENSEに保存しています。
EEPROMライブラリはメインコアでのみ使用可能のようです。
 

Subコア1

BLE1507とSPRESENSE間はUART2 (Serial2)で通信
BLE通信で受信してデータ冒頭が’p’なら動作周期 (period [msec])、’h’なら姿勢高さ (height [mm])、それ以外なら動作選択信号 (Mode)として随時Mainコアに送信

動作

姿勢高さや行動周期を送信してコントロール

文字データを手打ちして送っているのでタイプミスすると変な動作になる。
キチンとエラー除去もしないといけませんね。
というか操作しやすいアプリの製作が必要ですわ。

おわりに

ここでは送信データにバラエティを持たせての動作確認を実施しました。

BLE通信アプリの製作というかなり重めの課題はありますが、とりあえずSPRESENNSEを用いての多様なロボット操作が可能であることがわかりました。

次はロボットにセンサを搭載して更なる知的動作を目指します。

それではまた。

次の記事

2023年 SPRESENSE活用コンテスト への道⑧ ー平行犬ー

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください