Re: The history of "M&Y"

Team "M&Y" and "花鳥風月"
the soliloquy of the father
毎日更新!

Arduinoねた その58 R1350N届いた

2014-06-12 | Arduinoねた

スイッチサイエンスに注文していたR1350Nが届きました。

封筒を開けてみると・・・小さい!!


P1020049


それから、以前の記事に3.3V仕様とか書いちゃったのですが・・・5Vでも使用可能のようです。(3.3V推奨らしいけど)

接続する端子がちょっと変わっている(2mmピッチ)とのことだったので、専用のピッチ変換基盤も購入しました。

今度の休みにでも、実験してみたいと思います。


それにしても・・・韓国に注文すると、170USD+送料がかかるのに・・・日本では4,000円で買えてしまうところが、なんとも不思議です。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduinoねた その57 R1350N

2014-06-07 | Arduinoねた

「花鳥風月」のロボットには、ジャイロセンサーが搭載されています。

このジャイロセンサーは、正確なのですが・・・高いです。(高価ってこと)

それから、このメーカーの日本支店が撤退したようで、普通に購入することはできなくなりました。

韓国に直接注文することはできるようですが・・・まあ、いまのところ、そこまでする必要は無いかと・・・

「花鳥風月」も、先が短そうだし・・・


ところで、このジャイロセンサーの中身だけのモジュールが販売されているようです。

R1350N というものですが・・・

これも、韓国に直接注文すると めっちゃ高い!!


しかし、スイッチサイエンスで売られているのを見つけました。

しかも安い!! 3,394円

これは、買ってみるしかありませんねぇ。


049


Arduinoに接続できるようなので、届いたら実験してみたいと思います。

ただし・・・3.3V仕様なので、そこのところだけ面倒ですね。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduinoねた その56 サーボの配線

2014-06-02 | Arduinoねた

Arduinoにサーボーモーターを接続する実験をしてみます。

これまで、秋月電子で買ってきた一番小さな PICO というサーボだったのですが・・・

なんか、パワーも小さくて、何もできそうになかったので、もうちょっと強そうなのを買ってきました。

GWS MICRO 2BBMG JR タイプ というものです。

まあ、比べてみると、確かに重くて頑丈、剛性感も全然違います。


ところで・・・

PICOのリード線は、白黒赤の3色だったのですが・・・

MICROのリード線は、橙赤茶の3色です。

白黒赤の方は、白:VSS 黒:GND 赤:コントロール ということで、何となく直感的に分かりますが・・・

橙赤茶は、直感的な色分けでは無いですね。

これはJRコネクターと言うらしく・・・

茶:VSS 赤:GND 橙:コントロール なんだそうです。

上のと並びも一緒なんだから、統一してくれよ・・・


ところで・・・これらのサーボモータは、結構な電力を食らうのか・・・

サーボモーターを動かすと、LCDのバックライトなどが一瞬消えます。

というか、MICROの方は、まともに動作しません。

やっぱり、ラジコンのようにLiPoなどの電源が必要なのでしょうか!?


ということで、素人が簡単に実験できるのは・・・やっぱり PICO 程度なんですね。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduinoねた その54 Windows8

2014-05-17 | Arduinoねた

こちらも Windows8 ねたです。

PCを新しくしたので、Arduinoの開発環境も入れなおしました。


IDEの 1.0.5 を本家のHPからダウンロードしてきて、インストールするところまでは順調です。

IDEを起動して、Nanoを接続して、サンプルのプログラムを転送しようとすると、エラーになります。

ポートが違う・・・らしい

じゃあ、ポートを変えようと思っても、ポートが変わりません。

どうも、ドライバ自体が動いていない状況のようです。


ネットで調べたら・・・

やっぱり、ドライバが普通には入らないようです。

PC側で、「ドライバー署名の強制を無効にする」の作業をしないとダメなようです。


ということで、コチラを参考にインストール作業をしてみました。

概要としは・・・ドライバー署名の強制を無効にして、再起動します。その後にドライバのインストールをします。

その結果、なんとか、ドライバを設定することができました。


Windows8って、便利なようで・・・いちいち面倒くさいですねぇ。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduinoねた その55 ADT7410

2014-04-24 | Arduinoねた

なんとなく思いついて、温度センサーを試してみました。

レスキューBに使う、遠くの温度を測るものではなく、普通の温度センサーです。

秋月電子で見つけたのは、ADT7410 というヤツで500円でした。


P1010206


Arduino とは I2C で接続します。


プログラムは、他のI2C接続のセンサーと同じで、簡単です。

ただ、固定小数点なので、そこだけがちょっと特殊です。


unsigned int ADT7410_read( )
{
  unsigned int val;
 
  Wire.requestFrom(ADT7410_I2C_ADDRESS, 2);
  val = Wire.read() << 8;   // データの読み出し(上位)
  val += Wire.read();       // データの読み出し(下位)
  val >>= 3;                // 13bit化
  val = val*10>>4;          // 10進数に変換(0.1度単位)
  return( val );
}


とりあず、こんなプログラムで実験してみました。

取り出した数値をLCDに表示してみると・・・

「217」と表示されました。


P1010204


摂氏 21.7 度ということですね。

センサーに息を吹きかけると、数値が大きくなります。

そのままにしておくと、少しづつ下がって、また「217」表示に戻ります。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduinoねた その53 HC-SR04

2014-02-04 | Arduinoねた

しつこく HC-SR04 に関してですが・・・

今度は、TRIG と ECHO を抵抗で結ぶと、3ピンの超音波センサーとして使えるらしい・・・

という情報を得ました。


http://letsmakerobots.com/node/36885

Rescue368


1.8kΩ位が良いようなのですが・・・

私は、適当な抵抗がなかったので、1kΩを2本直列にして、2kΩで接続してみました。

確かに・・・普通の4線式と同じ値が表示されますねぇ。


これなら、使える・・・かも・・・

ただ、何となく・・・このセンサーは製品としてのバラツキがあるように思います・・・

まあ、一個160円だから・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduinoねた その52 HC-SR04

2014-01-18 | Arduinoねた

このセンサーが3Wireで使えるようになった・・・ような感じだったのですが・・・

なんとなく、値が正しくないような気がしていたので、実際に測ってみました。

というか、2つのセンサーを並べて、片方を3Wire、もう片方を4Wireで接続して、値を比べてみました。


すると、見事に3Wireの方が4Wireに比べて3~4cm大きく表示します。

だから・・・単純に3cmを差し引いて表示すれば正しい値と言えるかもしれません。(笑)


Dsc05759_2


センサー個体の問題でないことを確認するために、配線だけを交換して実験してみると、やっぱり3Wireの方が4Wireよりも3~4cm大きな値を表示します。

コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduinoねた その51 HC-SR04

2014-01-17 | Arduinoねた

とっても安い超音波センサーのHC-SR04

あまりの安さに10個も買ってしまったけれど・・・

4線式で配線(半田付け)が多いのが嫌で使っていませんでした。


で・・・

ネットを俳諧していて・・・HC-SR04を3線で使う方法を見つけました。

https://code.google.com/p/arduino-new-ping/wiki/NewPing_Single_Pin_Sketch

普通は、4Pinで、Vcc、TRIG、ECHO、GND なのですが、今回の実験では、TRIG と ECHO を0.1μFのコンデンサで結びます。 信号線はTRIGから引き出します。


すると・・・


普通の3線の超音波センサーと同じようなプログラムで、普通に距離を読み出せます。

・・・が・・・

私の実験のやり方の問題なのかもしれませんが・・・

この方法だと、何故か5cm以下を検知することができません。

(元の4線式だと、1cmでも検知できます)

ちなみに、TRIG と ECHO をコンデンサで接続せずに、直接短絡すると・・・

普通に動作して、しかも1cmも検知できます。

(ただし・・・電気的に安全なのかどうかは、ハード屋ではない私にはわかりません。)

コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduinoねた その50 TPA-81

2014-01-13 | Arduinoねた

SRF-05 をやったので、TPA-81 もやっときますかねぇ。

レスキューBは、被災者が壁に貼り付いたヒーターなので、何らかの温度センサーで壁の温度を検知することになります。

普通は、壁に触れたまま走ることができないので、離れたところから温度を測れる赤外線式の温度センサーを使うことになります。 (非接触型の赤外線温度センサーが一般的です。)


M&Yは、2010年の競技の時には、NIIT-BLUEに教わったACTLASの赤外線温度センサーを使っていたのですが、値段が高かったので1個しか買えませんでした。

2010年のシンガポール大会の時に仲良しになった、スウェーデンのチームに教わったのがTPA-81です。


Dsc05728


これも、Devantech社の製品です。

テクニカルデータはここにあります。

http://www.robot-electronics.co.uk/htm/tpa81tech.htm


一つのモジュールの中に、一列に並んだ8組のサーモパイル組み込まれています。

接続は I2C(あいすくえあどしー)です。

しかも、その8組の温度センサーの値がそれぞれのレジスターに対応しているので、単純にレジスター番号を指定して読み出すだけです。

レジスタ番号2から9が、8組の温度センサーに対応しているので、それらを読み出すと、単純に摂氏の温度が返されます。

このセンサーは、やろうと思えば、NXTのセンサーポートにも直接接続できます。


で、最近気が付いたのですが・・・

このセンサーは8組の温度センサーだけでなく、9組目を搭載しているらしい・・・

それは、モジュール自体の温度です。

つまり、対象物の温度を測ると共に、自分自身の温度(モジュールの周りの室温)を測ることができるらしいです。

これが、レジスタ1番で、資料には「Ambient Temperature」と書かれていました。

(訳すと「周囲温度」ですね。)


では、早速実験してみます。

レジスタ1を読み出すと・・・確かに周囲温度らしきものが表示されます。

センサーに手をかざしても、変化しません。

役に立つかどうか判りませんが・・・・

これなら、周囲温度と計測した温度との差を計算して、その差が一定以上なら、「被災者発見」というようにすれば、毎回閾値を変更する必要がなくなるのではないでしょうか!?

この温度センサーですが・・・M&Yは円高の時に買ったので5,000円ちょっとだったのですが・・・昨今の円安では、めっちゃ高い感じが・・・

そうすると、ACTLASのセンサーも価格勝負に参加できますねぇ。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduinoねた その49 SRF05!?

2014-01-12 | Arduinoねた

う~ん これも Arduinoねた か悩む所ですが・・・


ここのところ、「SRF-05を何処で購入したのですか?」と質問がつづいたので・・・

その方達には、私が購入したサイトを紹介したのですが・・・

急に思いついて・・・怪しいサイトを検索してみました。


すると・・・


Rescue357


SRF05が沢山ヒットしましたヨ・・・

そして、安い!!

一個300円くらいです。


Rescue358


写真を見ると・・・確かにモジュールに「SRF05」と刻印されています。

でも、HY-SRF05 という型番のようです。

これは、わざと似せているのか!?

それとも偶然!?

値段からすると・・・HC-SR04と同様な感じでしょうか・・・


まあ、間違って買わないように・・・(笑)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduinoねた その48 SRF-05続き

2014-01-11 | Arduinoねた

SRF-05 は、1cm~4mが検知できるそうです。

(まあ、本当に1cmを検知できるかっていうと、ちょっと疑問ですが・・・)


で、これは超音波センサーなので・・・

当たり前ですが、センサーが超音波を発して、何かに当たって反射して帰ってきた超音波をセンサーが受け取って検知します。

超音波を発してから受け取るまでに掛かった時間を計れば、距離が判る訳です。

ということは、近くに物があれば、すぐに「あったよ」と判断できるのですが・・・物が近くに無い場合は計測に時間が掛かることになります。


レスキューBでは、ロボットは迷路の中に居るので、前や横に壁が無いことは無いハズです。

ただ、いつもは10cm程度の近さにあるけど、数タイルの直線などがあれば100cmくらいの距離になることもあります。

でも、遠く離れた壁までの距離を測る必要はなく・・・

ロボットの居るタイルの前後左右に壁があるかを検知できれば、事足ります。

つまり、1mも2mも測る必要はなく、単に30cm程度を測れれば十分です。


どうもそんな時の為に、pulseIn( ) には、第3のパラメータが用意されています。

timeout(タイムアウト)までの時間で、単位はマイクロ秒です。

例えば、

  d = pulseIn( port , HIGH , 2000 ) / 58;

とすれば、超音波を発してから2000マイクロ秒(つまり2ミリ秒)経っても超音波が帰って来なかったら、そこで計測を終わりにします。

そうすると、対象物までの距離が30cm以下の場合は、その距離が返されます。 対処物が30cm以上離れていると、タイムアウトになり 「0」 が返されます。

(つまり、0が返されたら、対象物までの距離が30cm以上であると判断する)

こうすることで、ほんのちょっとだけ処理時間を短縮できるのですが・・・

タイムアウトになったからといって、発した超音波が消えるわけではなく、対象物に当たると、いずれ帰ってきます。 これをセンサーが間違って受けてしまうと、誤計測になってしまいます。

(これを、干渉というのでしょうか!?)

この方法を使う場合は、よく考えて、誤検知が起こらないように考慮する必要がありますねぇ。


ちなみに、音速は 340.29m/s(海面の場合) なので・・・

発した超音波が1m進むのに掛かる時間は、2.939ミリ秒になります。

対象物までの距離が4mの場合は、往復で8mあるので、23.509ミリ秒掛かることになります。

これを速いと見るか、遅いと見るか・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduinoねた その47 SRF-05

2014-01-10 | Arduinoねた

M&Yが使っている超音波センサーは SRF-05 というものです。

なんで、これを選択したか!? というと、安かったから・・・

当時、超音波センサーは、結構な値段でした。

LEGO MINDSTORMS の超音波センサーは(確か)5,500円だし・・・

有名な PING))) も5,000円位していました。

安い超音波センサーを探していて見つけたのが SRF-05 で、当時は1,500円位でした。


ところが、最近、いくつかのチームから「SRF-05」について問合わせを受けました。

なんか、「SRFシリーズは、干渉に強い・・・」らしいです。

(本当にそうなの!?)


ということで、改めて、SRF-05のおさらいをしておこうかと・・・


SRF-05はDevantech社の超音波センサーです。


Dsc05706


M&Yが、このセンサーを選択したのは、上にも書いたように単に安かったからです。

価格は11.49GBP(英ポンド)で、当時は1,500円くらいでした。(今は、円安なので、2,000円程度)

それと、最短検知距離が1cmだったから・・・

テクニカルシートはこちらです。

http://www.robot-electronics.co.uk/htm/srf05tech.htm

まあ、これを読めば、私が変な説明をする必要は無いですよね。(笑)


Arduinoとの接続は、3本で、5VとGNDと信号線、だけです。(Mode2の場合)

信号線1本で、入力と出力を切り替えて共用します。


プログラムは単純明快で・・・

int SRF05( )
{
  int d;
 
  pinMode( PORT , OUTPUT );
  digitalWrite( PORT , HIGH );
  delayMicroseconds(10);
  digitalWrite( PORT , LOW);
  pinMode( PORT , INPUT );
  d = pulseIn( PORT , HIGH )/58;
  return( d );
}

これで、PORT で指定したピンに信号線を接続したSRF-05で距離を測ります。

返す値は 1cm 単位になります。


まあ、これが普通だと思うのですが、これを実験していて・・・気が付いたのですが・・・

上のプログラムでは、1本の信号線を出力と入力に切り替えて使っています。

これを切り替えなくても、なんか動く(動いちゃう)みたいです。

ポートを入力に設定したままで

int SRF05( )
{
  int d;
 
  digitalWrite( PORT , HIGH );
  delayMicroseconds(10);
  digitalWrite( PORT , LOW);
  d = pulseIn( PORT , HIGH )/58;
  return( d );
}

を実行しても、普通に計測できます。(何で!?)


しかし、ポートを出力にしたままでは、計測できません。

まあ、ちゃんと、入力と出力を切り替えた方が、精神的にも良いと思います。(笑)

コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NXTを使わないLEGOロボット!?

2013-10-23 | Arduinoねた

一応、Arduinoねたにしておきます・・・


LEGO ロボットのチームとして言っちゃいけないことかもしれませんが・・・

M&Yのロボットの中で、一番要らないもの・・・できれば外したいもの・・・

それは、NXT本体です。

何故かって・・・でかい、重い・・・

ロボカップジュニアレスキューのルールが年々複雑化、高度化していく中で、ロボットも小型化、低重心化したいところですが・・・NXTを使っている限り、限界があります。

せめて、NXTのコントローラの部分と電池の部分が別々になればいいのに・・・

という前書きが終わりで・・・


ネットを俳諧していて見つけたもの


Rescue333

BrickPi for Raspberry Pi


Raspberry Pi を拡張するインターフェースボードで、NXT用のセンサーやモーターを接続できるものです。 センサー用が5ポート、モーター用が4ポート・・・なかなか充実していますねぇ。 しかも、大きさはクレジットカードサイズです。

これは、なかなか良いですね。


もう一つ


Rescue332


面白いセンサーや周辺機器をリリースしてくれている mindsensors.com の製品で

Multiplexer for NXT/EV3 Motors (NXTMMX-v2)

というものです。

元々は、NXTに沢山のモーターを接続するもの・・・らしいです。

で・・・

HPにもあるように、Arduinoのマークが掲載されています。

この機器は、Arduinoに接続することができるようです。

そう、Arduinoで LEGO Mindstorms のサーボモ-ターを制御できるんです。

マニュアルが英語なので、ちゃんと読んで無いのですが・・・

ぱっと読んだ限りでは、モーターを動かす(正転、反転、強弱など・・・)は勿論、モーターの回転数を読み出すことも出来そうです。

ちょっと、これは試してみたいです。


なんとなく、これを使いこなせるようになれば、NXTは要らなくなりますねえ。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduinoねた その46 GY521

2013-02-15 | Arduinoねた

このセンサーの説明というか、リファレンスというか・・・そういう資料が何処にも無いのですが・・・汗;

Arduinoとの接続の sample program があったので、それを参考に実験しました。

すると・・・


値の読み出しは簡単でした。

GY-521には読み出し用のレジスタが備えられていて、それを読み出すだけです。

順に

加速度センサーX軸

加速度センサーY軸

加速度センサーZ軸

温度

ジャイロセンサーX軸

ジャイロセンサーY軸

ジャイロセンサーZ軸

となっています。

それぞれは16ビットの大きさなので、8ビットを2回づつ読み出します。

何で温度が測れるの!? と疑問はありますが・・・別に、必要がなければ使わなければ良いだけですから・・・

まずは、加速度ですが・・・

はい、普通に読み出せました。

水平にすると0 傾けると正の値、逆に傾けると負の値になります。

秋月電子で売られているI2Cの加速度センサーが1,000円であることを考えても、これだけで十分元がとれるように思います。(笑)


では、肝心のジャイロセンサーの方を確認します。

と、言っても、ジャイロセンサーの値の読み出しは、レジスタを読み出すだけなので問題ありません。

問題は、取り出した角速度を積分して角度にするのに、どれだけ精度がだせるか・・・

ということですね。

前に、他のジャイロセンサーで実験したように

100m秒単位で読み出した値を合計して1/10にすると、ある程度の精度が出るようです。

10m秒単位で読み出した値を合計して1/100にすると・・・やりすぎかなぁ。


まあ、やる気があれば、これくらいの安物センサーでも実用になると思います。

コメント (4)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Arduinoねた その45 GY521

2013-02-14 | Arduinoねた

最近、RoboCupJuniorのロボットにジャイロセンサーを搭載したロボットが増えてきたように思います。

M&Yのロボットにも搭載しています。

ジャイロセンサーは、ロボットの向いている方向を検知するのですが、コンパスセンサーのように絶対的は方向はわかりません。 相対的な方向を検知します。

絶対的な方向が判らないなら・・・やっぱりコンパスセンサーを使った方が良いじゃないですか!?

はいっ、ごもっともでございます。

しかし・・・

コンパスセンサーは磁気に弱い (「巨人の星」の星一徹風に・・・古い)

確かにコンパスセンサーは競技会場の磁気条件に依存して、使用できなかったりします。


で・・・ロボットの向いている方向をジャイロセンサーに頼ることになるのですが・・・

LEGO用のジャイロセンサーは、結構な値段です。

NXT Gyro Sensor は 54.95USD

NXT用の慣性センサー は 1万円前後します。

たかがセンサー、なのですが高価ですよねぇ。


そこで、安いジャイロセンサーが Arduino で使えるのか・・・実験してみました。

購入したのは、 GY-521 というヤツで・・・

怪しい中国の通販サイトで、1個 9.60USD のものです。 (当時だと800円くらい)

3軸のジャイロと3軸の加速度センサーを搭載しているらしいです。

まあ、800円なら・・・ジャイロが使えなくても、3次元加速度センサーとして使えれば問題無い・・・

程度の気持ちでポチリました。


Dsc09984


I2C接続なので、Arduinoとの接続は簡単です。

さて・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする