mechatronics / robotics
Blog
  • HOME »
  • Blog »
  • VEXIQ

VEXIQ

VEX IQ 自動ドアをつくる(2)

前回つくった自動ドアをプッシュスイッチを使わずに動かしてみます。モーターをフリーランさせるのではなく、ある角度まで動かして停止させる、というようにサーボ的な使い方ができます。 使う部品はモーターとTOUCH LEDのみです。 ●プログラムのスタートでTOUCH LEDを赤にセットして点灯 ●TOUCH LEDがタッチされたら色を緑に変更 ●TURNLEDREDを着信したら色を赤に変更 TURNLEDREDはモーター側から依頼されて実行する処理で、今回独自に作成した関数です。 ●プログラムの開始でモータースピードを25%に設定。回転方向を逆にする。回転方向は単にメカのドアが開く方向に合わせただけ。 ●TOUCH LEDがタッチされたら、REV方向に90°回転 -> 2秒待つ -> FWD方向に90°回転 -> TURNLEDREDの実行を依頼(発信) broadcastというのは自分(MOTORクラス)ではLED関係のことは実行できないので誰かよろしく、とまわりにお願いするイメージでしょうか。Androidアプリのプログラムでも同様の手法がありますね。

VEX IQ 自動ドアをつくる

MODKITのサイトにある基本的なチュートリアルが終わりましたので、オリジナルのアプリ(機構)を作ってみました。自動ドアです。 モーター1個、タッチセンサー1個とプッシュスイッチ2個を使って、人がタッチセンサーに触れるとドアが開いて全開のところをプッシュセンサーで検知して停止。そこで2秒間停止の後、ドアを戻して閉まったところをプッシュセンサーで検知して停止、というアルゴリズムにしています。 オブジェクト指向なプログラミングになりますので、C言語で組み込みのプログラミングをするのとはかなり感覚が異なります。 「○○が、△△したら、××を、◇◇する」というようなブロックを必要なだけ別々に作っていきます。プログラミングブロックを配置するスペースは「××を」の部品ごとにページが分かれていて、C++言語のクラスのようなイメージになっています。 上の例ですと、「プログラムがスタートしたら、TOUCH LEDの色を赤にして点灯する」、「TOUCH LEDがタッチされたら、TOUCH LEDの色を緑にする」などはTOUCH LED(タッチセンサー)のページに、「TOUCH LEDがタッチされたら、モーターを回す」、「BUMPER(プッシュセンサー)が押されたら、モーターを止める」などはMOTORのページに記載します。 この程度のものでも期待どおりに動くとうれしいですね。

VEX IQ バンパーを使う

VEX IQのバンパーを使ってみます。メカニカルなプッシュスイッチです。 動作は非常に単純です。押されたら「PRESSED」,リリースされたら「RELEASED」と表示します。スイッチを押してからLCD画面の表示が切り替わるまで多少(0.1-0.2秒)のタイムラグがあるようでした。

VEX IQ ジャイロセンサーを使う

VEX IQのジャイロセンサーを使ってみます。ジャイロは「角速度」センサーですので通常は回転速度が得られるのですが、このジャイロはMODKIT for VEXIQを使う限りにおいては「角度」センサーとなります。角速度を積分した結果を角度として出力します。もともとが小中学生向けのロボットキットですので、角速度などは使う機会がないということかと思います。 角度出力はかなり正確です。内部のフィルタリングがうまく働いているのだと思われます。プログラム中に「calibrate」というのがありますが、これを入れないとジャイロのドリフト現象が顕著にでてきます。

VEX IQ 距離センサーを使う

距離センサーを使ってみます。形状からして超音波センサーです。片方の穴(スピーカー)から超音波を発して、物体に当たって戻ってきた音をもう片方の穴(マイク)で受信し、その時間差から距離を計算します。その計算はもちろんユーザーは気にする必要はなく、VEX IQのシステムが行い結果の距離を示してくれます。 測定された距離の制度はそこそこ正確ですが1〜2cmの誤差はあるようです。また測定範囲としては、だいたい50cm以上になると無限遠という判断になります。被測定物の材質はとくに選ばないようで、金属でも衣服でも同じ値が得られました。

VEX IQ カラーセンサーを使う

カラーセンサーを使ってみます。色をセンシングして結果を液晶画面に表示するプログラムです。 このプログラムでは細かい色のセンシングはできません。R(red)G(green)B(blue)それぞれの強さを測定して最も強い色が出力されるようです。黄色や紫のような中間色は「NONE」と出力されます。また自然光は「BLUE」となる傾向がありました。いろいろ実験しましたが、測定可能な距離は最大10㎝程度でした。 RGBそれぞれの値を取り出す方法は後日調べてみたいと思います。

VEX IQ タッチセンサーを使う

タッチセンサーを試してみます。静電容量式のもので、フルカラーLEDが仕込まれていて光らせることができます。 プログラムは、最初にLEDの色をGREENに設定し、タッチされたらLEDを点灯、タッチが離れたらLEDを消灯という内容です。それぞれのプログラムパートは独立していますので、イベントドリブンな考え方でプログラムできます。

VEX IQ 車輪走行

VEXIQのプログラミングは、MODKIT for VEXIQというWEBベース(modkit.com)の開発環境で行ないます。こちらはビジュアル系の小中学生向けの環境ですが、別にROBOTCというC言語での高度な開発に対応したものもあります。今回はMODKITのサイトに初心者向けのチュートリアルがありますのでこれにそって進めていきます。まずはいきなりロボットを動かすことはせずに、コントロールボックス(VEXIQ Brain)の液晶画面に「HELLO」と表示させます。 プログラミングといってもMODKITの場合はいろいろなプログラム部品をぺたぺたと画面に貼付けていくだけですので、初めての人でも問題なくできると思います。Scratchの発展形ということです。 こちらは「HELLO」プログラムの画面で、「HELLO」と表示 -> 改行 -> 1秒待つ を永遠に繰り返すという内容です。初心者向けとはいえ、考え方は普通のプログラミング言語と同じです。 コントロールボックスへのダウンロードやプログラムの実行も画面上のボタンをクリックするだけです。ダウンロードは、コントロールボックスに(ソフト的な)スロットというのが4つあって、異なるプログラムを4種類入れておくことができます。最初のダウンロードはUSBケーブルで行ないますが、後からプログラムを実行するときにはUSBケーブルをはずしてコントロールボックス上のボタンを押します。 もちろん開発途中のプログラムをセーブすることもできます。 次に車輪ロボット(Drivetrain)を動かすプログラムです。まだセンサー類を何も使っていないこともありますがこちらも簡単で、直進(drive)と旋回(turn)のプログラム部品を貼付けるだけです。10cm進む -> 180度旋回 -> ストップ を繰り返すプログラムです。旋回角度はモーターボックス内のエンコーダーをカウントしているのだと思います。当然のことながらぴったりの角度にはなっていません。

VEX IQを入手。ファーストインプレッション

米国Innovation First社が販売する教育用ロボットシステムVEX-IQを入手しました。簡単に言うとLego Mindstormsに似たロボットシステムで、ブロック部品を組み立てプログラムして動かすことができます。グレーと青を基調とした渋い色使い、各種センサーとモーターを任意に接続できる12個のポートを持つコントロールボックスなど、玄人好みの構成となっています。今回入手したのは「Starter Kit With Sensors」というセットで$249.99+送料でした。 まずは基本となる台車を組み立てます。 衣類ケースのような大きめの箱に収められています。 中身は組み立てガイド、部品表などが3冊、あとはすべて部品です。割と無造作なパッケージングです。 取説にしたがって最初のロボット「Clawbot(ハサミムシロボット)」を組み立てていきます。説明は英語で書かれていますが、絵をみればわかるので英語がわからなくても全く問題ないでしょう。グレーの四角いものがモーターボックスです。これはエンコーダーを内蔵しておりさらにサーボ的な使い方もできるようです。 とりあえず最小限の部分が完成です。左右の後輪がモーター出力に直結、前輪は後輪からギアで駆動(減速比1:1)されます。初めてだったので部品さがしに手間取りながらもここまで20〜30分だったと思います。部品と部品の結合はスナップフィット(パッチン止め)のピンで行いますので組み立ての感触は良好です。 次回プログラムして動かします。

PAGETOP
Copyright © Meuse Robotics All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.