ロボットを動かす | Scrachとロボットプログラミング
子供プログラミングで人気の高いスクラッチ(Scratch)でロボットを動かしてプログラミングを楽しむ方法や教材は多くあります。その中でも簡単にできるのがクムクムロボットです。クムクムロボットはスクラッチそのままの機能とBluetoothで簡単に接続し、完全ワイヤレスでスクラッチ・ロボットプログラミングができるのが特徴です。
クムクムロボットを動かすスクラッチ
クムクムロボットのスクラッチプログラミングは、特別に改造された専用スクラッチを使うわけではありません。
スクラッチそのものの基本基本機能にクムクムロボットを動かすための専用のコマンドが追加されただけのスクラッチを使用するだけなのです。
ですから、学校や家で普段使い慣れたスクラッチそのままを使うため、子供たちは全く迷いなく操作を行い、簡単にプログラミングを始められることが大きな特徴です。
スクラッチの機能はそのまますべて使うことができるので、クムクムロボットを使わないスクラッチプログラミングもそのまま楽しくことができます。
クムクムスクラッチはここから起動します。
スクラッチでロボットを動かす
スクラッチで作ったプログラムでクムクムロボットを動かすのはとても簡単です。
作ったプログラムのブロックをクリックすれば、その瞬間、プログラムは動き出します。
ブロックは上から順番にBluetoothを通じてクムクムロボットのどんどん送り出され、順序良くロボットは動き出します。
プログラム
LED 赤→緑→青 の点滅を2回行い、顔を左右に動かして、万歳をするクムクムロボット
スクラッチの起動とロボットとの接続・切断
スクラッチとクムクムロボットとの接続はとても簡単です。
1.まず、クムクムロボットの背中の電源スイッチをONにしてクムクムの通信プログラムが起動するのを待ちます。
2.5秒ほど待つと、右の胸のLEDが1度点滅しますので、これでクムクムロボットが初期状態にセットされました。
[videopack id=”132235″]https://qumcum.com/wp-content/uploads/2023/11/MVI_2665.mp4[/videopack]
3.次に、クムクムサイトから起動した専用のスクラッチから拡張機能でクムクムロボットの機能をスクラッチに読み込みます。
4.拡張機能が起動出来たら、クムクムロボットの3D画面が表示されますので、起動中の表示が消えるまで待ちます。
5.その後ロボットとの接続をブラウザのペアリング操作で行います。
クムクムロボットでのBluetooth接続と動きについて
スクラッチのコマンドブロックの処理
クムクムロボットでは特殊な方法を使用せず、GoogleChromeやMicrosoftEdgeが標準で用意しているWEB BLEという技術を使用して、クムクムロボットのコマンドそのものがブラウザーのBluetooth機能を通じてロボットと直接通信を行います。
そのため、クムクムロボット用に用意されたすべてのコマンドブロックはBluetoothを通じてクムクムロボットと通信をリアルタイムに行います。
スクラッチのスクリプトエリアに並べられたスクラッチのコマンドブロックは順に処理をされ、クムクムロボットのコマンドに到達すると通信でクムクムロボットに送り出されたり、また、クムクムロボットからデータを取得してバッファリングします。
ブロックの処理速度は少し遅い
クムクムロボットにスクラッチからBluetoothを通じて送り出すコマンドや、またクムクムロボットからスクラッチに向かって送り出されるレスポンスは、Bluetooth通信を使用して行うため、通信にかかるための時間が遅延として発生します。
またとても微妙な時間ですが、クムクムロボット自体がそのコマンドを受けて、クムクムロボットの中の各パーツを動かしたりするための時間も必要となります。
そのため、残念ながら、クムクムのボードの中に埋め込んで動かすロボットプログラムよりは動作速度がかなり遅くなります。
体感でいうと、クムクムロボットの中に埋め込んだC言語でのプログラムでLEDを点滅させた場合には、点滅速度は目視では確認できませんが、スクラッチのプログラムでの点滅はしっかり目視できます。
通信処理には、内部の電池レベルなどの送受信も含め1つのブロック処理に約300ミリ秒ほどかかっています。
スクラッチとクムクムロボットでのプログラミング注意点
スクラッチでのプログラミングでのメリットに、簡単に並列処理を作ることができる点があります。
例えば下記のような処理です。
これは、スタートフラグが押されたら、10回10歩動かすという処理と 10回15度回す という処理が同時に走るプログラムです。
これと同じように、例えばクムクムロボットのLEDの点滅とBEEP音を鳴らす処理を並列で行うようにしてみます
見た目は全く問題がない処理なのですが、実はこれはうまく動きません。
動かないことはないのですが、ちゃんとした処理が行われません。
というのは、このプログラムは同時に2つの処理を並列で走らせてはいるのですが、残念ながら、クムクムロボットとBluetoothでスクラッチと通信する線は1本しかないからです。Bluetoothは同時に何個もの命令を並列に送り出し、クムクムロボットがそれを同時に何個も受けられる口もありません。
あくまでBluetoothは1つの通信する口で処理を行っているので、残念ながら上記二つのコマンドはうまく送受信できたものがそのタイミングで処理を行ってしまうだけになってしまいます。
まとめ(プログラミング的思考を簡単に自然に)
このように、クムクムロボットとBluetoothを使ったスクラッチでは制限事項もいくつかあり、プログラミング時にも気を付けなければいけない点は何点かありますが、とにかくブラウザーだけで簡単に接続と切断ができるクムクムロボットのツールはとても便利です。
また、クリックしたとたんに順序良くコマンドがリアルタイムに送り出される機能は、例えば、ずっとで回しながら中のブロックを変えていけば、ロボットを動かしながらプログラムをどんどん改造していくことができるので、試行錯誤がとても簡単に自然にできるため子供たちのプログラミング的思考を養うツールとしては最適です。