TinyBitでライントレース

TinyBit

micro:bitのロボットカーセットのTinyBitでライントレースのプログラムをしてみました。
ライントレースとは、床面に描いたラインをロボットカーがラインセンサーで読み取ってそれに沿って走ることです。ロボットカーで使われるラインセンサーは光の反射を利用して床面が白色か黒色か判別してラインを読み取ります。床面が白色の場合は多くの光が反射され、黒色の場合は反射される光が少ないのを感知する訳です。ロボットカーのキットを購入すると白地に黒色のラインを描いたライントレース用の紙が付いていたりします。

ラインセンサー
ラインセンサーは2個一組になっていて、TinyBitでは充電池の両側にあります。(赤丸の位置)左右のセンサーがそれぞれ床面が白色か黒色か判別すると組み合わせは
A 左右ともに白色 B 左 黒色 右 白色 C 左 白色 右 黒色 D 左右ともに黒色 の4通りになります。それぞれの場合について、どうロボットカーを動かすかプログラムすればラインをトレースして動く訳ですね。注意しなければいけないのはラインセンサーの間隔です。間隔が狭ければ黒いラインの上から外れないように動かし、間隔が広ければラインの上に乗らないように動かさなければなりません。つまり、A~Dに割り当てる動作が正反対になります。TinyBitの場合は間隔が広いので、ラインの上に乗らないように動かさなければなりません。

TinyBit
TinyBitでは、左右それぞれのセンサーが白色か黒色か判別するブロックがありますので、それを使います。

TinyBit
論理ブロックの中から「もし~なら でなければ」という条件判断のブロックを選び、まずAの場合をプログラムします。両方白色なので、前進になります。

TinyBit
次にBの場合は左側がラインに乗っている状態ですから、左に動いてラインから外れるようにプログラムします。

TinyBit
Cの場合は反対に右側がラインに乗っている状態ですから、右に動いてラインから外れるようにします。
Dの場合はどちらにも動けないので停止となります。
TinyBitの場合はこれで完成ですが、他のロボットカーではセンサーの間隔や拡張された命令ブロックなどが違うので、それぞれ確認してプログラムしてください。

micro:bit ピアノモジュール

micro:bitのブロックには音楽関係のものがあり、いくつかのメロディーもデフォルトで入っています。しかし、micro:bitの本体にはスピーカーがないので、音を出すにはブザーかスピーカーのモジュールが必要です。単独のモジュールや電源と一体になったものなど各種ありますが、普通にスピーカーをつけてみるだけでは面白くないので、今回はTouchPianoという鍵盤のついたモジュールを試してみました。鍵盤とブザー、LEDがついています。

TouchPiano
モジュールを使えるようにするには拡張機能を読み込む必要がありますが、標準では対応していません。モジュールには説明書が入っていなかったので、販売元のHPを調べてURLを入力します。(https://github.com/waveshare/TouchPiano)

TouchPiano拡張機能
TouchPianoのブロックは単純です。鍵盤を使って演奏するには「Play Piano」のブロックだけでOKです。鍵盤に触れると音が出てLEDが光ります。音質はブザーなりのものですね。

TouchPiano拡張機能

TouchPiano拡張機能

音階と長さを指定して音を出すブロックとLEDを光らすブロックがあるので、LEDを光らせながら自動演奏をすることも可能です。まあ、自動演奏をするだけなら単独のスピーカーモジュールだけで十分なので、鍵盤が必要な場面、使い方があるかどうかで必要性が決まると思います。

TouchPiano拡張機能