mbedに多摩川精機製ジャイロTGA201(以後、ジャイロ)を接続することは成功しましたか? 最初に多摩川精機製ジャイロの応用例を紹介します。
■多摩川精機製ジャイロの応用例
Dr.Gueroさんが素晴らしいロボットを開発しました。二足歩行ロボットに実際に自転車を漕がせて走行させるというものです。下記URLにて紹介されてます。ロボットの手で自転車のバランスを保ち、足で漕ぐというタイプは世界初だと思います。このロボットに多摩川精機製ジャイロが使用されています。すごいロボットですね。写真はDr.Gueroさんに提供していただきました。
A.I.&Robot http://ai2001.ifdef.jp/
Youtubeで公開されているDr.Gueroさんが開発した二足歩行ロボットが運転する自転車の動画を紹介します。実にスムーズに走行しています。すごいですね。
それでは本日の課題に入ります。
■課題1
mbedに接続したジャイロのデータを、A-Dコンバータに読み込み、表示しましょう。
■mbedプログラミング
ジャイロ出力を読み込み、LCDに表示するプログラムを考えましょう。サンプリング間隔は0.5sとします。
・ジャイロ接続ポートの設定
AnalogIn gy1_adc_in(p16);
・ジャイロデータ読み込み・・・*5.0はジャイロ出力が5.0Vのため。
gy1_adc=(gy1_adc_in.read()*5.0);// Gy1 read
■■Publish
下記のURLでPublishしています
http://mbed.org/users/takeuchi/programs/2bk1209_TAgyro01/m1w5h7
■■mbedソース・リスト
// TAGyro01
// Tamagawaseiki GYRO TAG201
#include "mbed.h"
#include "TextLCD0420.h"
#define ON 1
#define OFF 0
#define XON 0
#define XOFF 1
DigitalOut mled0(LED1);
DigitalOut mled1(LED2);
AnalogIn gy1_adc_in(p16);
TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3
int main() {
float gy1_adc;
lcd.cls();
lcd.locate(0,0);
lcd.printf("*** TA-Gyro01 ***");
while(1){
gy1_adc=(gy1_adc_in.read()*5.0);// Gy1 read
wait(0.5);
lcd.locate(0,1);
lcd.printf("D:%3.2f",gy1_adc);
}//while
}//main
■完成!
システムを起動するとジャイロ・データが順次表示されます。最初はデータがばらついていますが、静止状態を続けると一定の値に収束してくるのがわかると思います。静止していても出力値が時間と共に変動する静止ドリフトが少ないのがこのジャイロの特徴の一つです。
長野県飯田工業高校 竹内浩一
========<コラム>=====================
多摩川精機の詳細・・・http://www.tamagawa-seiki.co.jp/jp/をご覧ください。
また本連載で使用しているジャイロの詳細や入手について・・・
多摩川精機 勝野様宛にご連絡ください。
〒395-0063長野県飯田市羽場町1-3-1
多摩川精機販売株式会社
開発営業部 MEMS営業課
勝野 薫 様
TEL 0265-56-5424
FAX 0265-56-5427
isao-katsuno@tamagawa-seiki.co.jp
静止ドリフト・・・時間経過と共にじりじりと値が変動してしまうので、追跡するルーチンが必要になるのですが、未来を予測するプログラムなのでなかなかやっかいです。なるべく動かないでいてくれるにこしたことはありません。

コメントする