ロボットキットレビューtinkeringTwitterFacebookはてブPocketPinterestLINE前回は、Ultimate2.0のアームタンク組立て、Makeblockアプリで操作しました。これでも十分楽しいと言えば楽しいんですが、やはり、Ultimate2.0をロボット教育ツールとして購入した私からすれば、ここでやめるわけにはいきません。今回は、アームタンクをmBlockでプログラミングしてみます。Rangerについているモーターは、基本的には、ロボットを走行させるために使いました。それに比べ、Ultimate2.0のアームタンクや、バーテンダーロボットは、走行させる以外の部分、アームやハンドグリッパーなどにもモーターを使います。ちなみに、mBot機能拡張パックのサーボパックでは、機構部品を駆動させるサーボモーターの制御を学習する事は出来ますよね。なると、Ultimate2.0のロボット―アームタンク、mBlockでプログラムするには、どのモーターが、制御ボードであるMegaPiの何番ポートに接続されているかを把握しなければなりません、組立説明書には配線図が書いてありますが、ここの把握がより重要になります。Rangerに慣れた後に、Ultimate2.0に触ってみると、意外とその基本部分の理解が足りない為に、プログラミングに手が付けられないという人も多分いるんじゃないかと思います。Makeblockの公式ユーザーフォーラムでも、その辺を理解していないがために混乱して質問しているどこかの外国の人がいました(笑)。出典:Ultimate2.0の組み立て説明書よりこの配線図ですが、モーターA(ポート1)とB(ポート2)はタンク(キャタピラ部分)です。モーターC(ポート3)が、アームの上げ下げに使うエンコーダーモーターになります。ロボットグリッパーは、ポート4に繋げるのですが、エンコーダーモーターではなくDCモーター駆動なので、エンコーダーモータードライバーモジュール(MegaPiに後付けするモジュール)のコネクタには接続せず、MegaPiにあるDC/ステッピングモーターポートに接続します。このDC/ステッピングモーターポートですが、MegaPiには全部で8つあります。ポート1~4にそれぞれA/Bと分かれています。私の場合、ここの部分、A/Bに分かれている部分が組立説明書に記載の配線図だけでは、意味が汲み取れなかったのですが、mBlockのロボットブロックに、モーター、ポート1Aというブロックがあり、そこでやっと理解しました。どのポートに、どのモーターが配線されているかを理解したら、mBlockのロボットブロックを理解しましょう。基本的に、走行は、mBotと同じで、前向きに○○の速さで動かすで制御できます。特徴的なのが、アーム部分のモーター制御です。アームは、回転を○○度、□□回転/分というブロックを使って制御します。ここが一番やりがいのある部分かも知れませんね。ハンドグリッパーは、例えば、「速さを100にする」で開き、「速さをー100にする」と閉じます。基本モデルに、超音波センサーとラインフォロワーセンサーを取り付けるどのモーターがどのポートに繋がり、mBlockのどのブロックで制御するかを確認した後は、いよいよ、プログラミングに入ります。ここで、Ultimate2.0のアームタンクの基本モデルでは、センサーが一切ついていないので、超音波センサーとライントレースセンサーを追加でつけたいと思います。Rangerのスピードドラゴンが放置されていたので、そこに付いている、機構・超音波センサー・ライントレースセンサーを丸ごと移植する事にしました。それで、取り付けた後がこんな感じです。そのまま移植すると、ラインフォロワーセンサーが床面ギリギリになってしまうので、機構パーツを一個追加してかさ上げして、高さを調整しました。この辺は、やりながらの、簡単な試行錯誤になります。子供や大人でも、いじくりまわして、試行錯誤して、思うようなモノを作っていくというプロセスは、創造性や、問題解決能力を養うためにはもってこいかなあと、自分で試行錯誤しながら、ふと思いました。この超音波センサー・ラインフォロワーセンサーを取り付けて、プログラミングしようとした動作は、こんな感じです。「黒い線上を走行し、線上にあるペットボトルを検知したら、ロボットアームのハンドグリッパーが開き、アームが下がって、ハンドグリッパーでペットボトルをつかみ、持ち上げて、後ろに下がる」ラインフォロワーによるライントレースプログラムは、以前に、mBotを使って学んだので、そのプログラムをほぼ踏襲しました。アームを動作させるトリガーは「超音波センサーの値が15より小さかったら」としました。それで、アームの上げ下げのタイミングなどを試行錯誤しながら、完成したスクリプトが、こんな感じです。それで、ここで、結論から言いますと、↑のプログラムでは、アームタンクは、思ったような動きになりませんでした。アームの上げ下げは完璧でしたが、ライントレースの部分で問題が起こりました。それは、mBotと同じようなプログラムの組み方をして、mBotの走行テストパッドで試したところ、ラインフォロワーセンサーの入力によって走行方向を制御す際に、アームタンクのキャタピラ部分が大きすぎて小回りが全然効かないという事と、キャタピラの取り付けが、並行になっていなかったので、まっすぐに走らないという問題です。キャタピラの取り付けを平行にするように機構を組み直すというのは、時間がかかりますが、何とか出来そうでしたが、ラインフォロワーセンサーの部分は、ちょっと、制御プログラムを組むのは、難しいかなあと断念しました。アームタンクが小回り効かないのは、ちょっと、ライントレースセンサーのプログラムを組むには、致命的な気がしたので。いや、私じゃなくて、もっとプロの人がやれば、何とかなると思います。うまく制御できると思います。今回は、そこまでプログラムに試行錯誤する時間が取れませんでした。いう事で、ラインフォロワーセンサーの制御を除いた部分のアームプログラムがこちらです。ラインフォロワーセンサーを使わないので、わざわざ、MegaPiにアップロードせず、PCからBluetooth通信で制御しました。手抜きです(笑)そして、その動画がこちらです。大した動画じゃないですが。17MakeX2019のテーマ・開催概要が発表されました。J-tinkering。