0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

背景

メイン基板には赤外のLEDと受信モジュールが4組搭載されています。

241215.jpg

今回はIRを使ったプログラミングを試してみます。

Scratch

IR通信は通信とイベントのブロックにありました。

送信側
「メインLEDを点滅し、メッセージ1を送り1秒間待つ動作を続ける」
image.png

受信側
「LEDマトリクスにカウントダウン表示する。
 3回メッセージ0を受信したらマトリクスLEDを緑色一色を点灯する。」
image.png

後述のspheroV2を見ると、メッセージは0-8があり、距離は0が近くて64が遠くまで届くということのようです。

spheroV2

sphero_edu.pyのメソッドを参考に同様な動作をするスクリプトを作成してみましたが、実機で送受信できませんでした。
呼び出し先のスクリプトも探ったのですが、残念ながら、できませんでした。

メソッドのコメント

仕方ないので、記載されている内容をもとにコメントを翻訳しました。

  • 指定した2つのチャンネル(0と1)で送信開始する。他のBOLTがこの信号を追従または回避できるようになる。
    1つ目は近距離IR信号(1メートル未満)、2つ目は遠距離IR信号(1~3メートル)のこと。
    def start_ir_broadcast(self, near: int, far: int):

image.png

  • 0と1を放送中のBOLTからメッセージを受信すると、放送元の進行方向と速度に合わせて調整(追いかける?)。見失ったらその場で回転
    (Scratchで動作確認すると、受信者が発信者にガンガンぶつかっていたので両者の速度などの調整が難しそうです)
    def start_ir_follow(self, near: int, far: int):

image.png

  • 0と1を放送中のBOLTからメッセージを受信すると、放送元から離れる方向に進む。見失ったらその場で回転
    def start_ir_evade(self, near: int, far: int):

image.png

まとめ

IR通信を使ったScratchを実験しました。
spheroV2は残念ながら実機で動作確認できませんでした。2週間くらい頑張って追ってもできなかったので、今回は調査を保留しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?