RPU-10講座/第十二章 ジャイロセンサの接続

公開日:  最終更新日:2014/06/05

すいません m(_ _)m、本記事はブログ引越時に書式が崩れました。順次修正中です。

ℹ️本記事にはPRが含まれています。

今回は、ちょっと電子工作をしてジャイロセンサを接続してみようと思います。


■コネクタ
RPU-10にはいくつかのコネクタが実装されていますが、横についている4Pのコネクタに接続します。まず使われているコネクタですが、JAMの刻印がありますので、JAM(日本オートマチックマシン株式会社)SZコネクタ(1.5mmピッチ)()と思われます。しかし、どうしても売っているところを見つけられなかったので、とりあえず、共立エレショップにて適当に1.5mmピッチのコネクタを購入し、改造して使用しました。実際に購入したのは、日本圧着端子製造のZHハウジング04P/ZHR-4です。後でLEDも接続する予定だったのでZHハウジング03P/ZHR-3(3ピン)の方も一緒に購入しました。また、コンタクトピン(ハウジングの中に入れるピン)はZHコンタクトピンを使用、圧着にはPA-09というエンジニアの精密圧着ペンチを使用しました。圧着は、PA-09を使えば楽チンですが、ラジペンとか使ってできないことはないというぐらいなので、できれば精密圧着ペンチを使ってください。


改造については簡単で、ハウジングのちょっと出っ張っているところをカッターナイフで削り落とし、軽くヤスリで仕上げる程度です。これで結構しっかりと挿入できるようになります。下の写真が4Pのコネクタですが、赤丸の部分を削ります。あとは普通に組み立てます。写真だと大きく写っていますが、コネクタの下に移っている縞模様はガムテープの縞模様です。かなり小さな部品であることがわかってもらえるかと思います。


■ジャイロ信号の取り込み
RPU-10の回路を調べてて、なんとなくアナログかなって思っていたので、試しにKRG-3(KONDOのアナログ出力ジャイロ)を使ってみたら、うまく取り込めたのでこれを使用しています。たぶん、他のアナログ出力のジャイロでも大丈夫だと思いますが、電源が5Vなので注意してください。


接続ですが、まず、ジャイロのコネクタはRPU-10の上面から見て左側にある、3つついているうちの一番下側、4Pのコネクタになります。このコネクタは、上から、ジャイロ1入力、ジャイロ2入力、5V出力、グランド、となっています。


接続についてですが、今回、KRG-3を使用していますので、図のように、1つのコネクタで2つのKRG-1を接続するようにしています。そこで2つのKRG-3を使って、5V、グランドは2つとも共通にし、それぞれのアナログ出力をRPU-10に取り込むようにしました。コネクタの接続先については、十分、手元のものを確認して書いたつもりですが、間違っているといけないので、接続するときには手元のもので確認してから行ってください。また、もし間違いがあれば連絡願います。


実際には、KRG-3の基板をケースから取り出してコネクタも取り去ってしまい、直接ケーブルをハンダ付けしてG-TuneF108Mに実装しています。


■取り込み方法
GDLのRPU-10ライブラリには、既にジャイロ取り込み関数がありますので、これを使用します。



short RPU_GetGyro( unsigned short *gx,  unsigned short *gy );


取り込みテストとしては、要はこの関数を実行してぐるぐる回っていればよし、ということになり、なんだかとてもしょうもないサンプルになっちゃいますが、初めて接続するジャイロセンサの特性等を知るには大事なことでしょう。例えば、KRG-3以外にもアナログタイプのジャイロセンサはありますので、それらでテストするときには役に立つと思います。


KRG-3の場合、平常時で260~270ぐらい、ブンブン振り回すと±110ぐらいで変化するのではないかと思います。


■サンプルプログラム
あまり解説するところも無いので、サンプルプログラムだけアップしておきます。


   1: //—————————————————————————————-
2: // ジャイロセンサーの値を連続して表示します。
3: // 値をただひたすら表示します。このプログラムを実行しておいて、ジャイロセンサーを振り
4: // 回したりすると、表示値が変化します。
5: //
6: // 環境 RPU-10、GDL V2.00
7: // 説明 ビルドされた本プログラムをRPU-10へ転送後、パソコン側で「SIMPLE TERM」(GDLに
8: // 同梱)などを使って通信速度115200bpsで通信ポートを開いてください。その後RPU-10
9: // を再起動するとプログラムがスタートし、「SIMPLE TERM」にひたすらずらずらと値が
10: // 表示されます。
11: //
12: // AUTHORED BY SISO JUNK STDUIO
13: //—————————————————————————————-
14: #include <avr/pgmspace.h>
15: #include <avr/io.h>
16: #include <avr/interrupt.h>
17: #include <avr/eeprom.h>
18: #include <stdio.h>
19: #include <avr/boot.h>
20: #include <avr/wdt.h>
21:
22: #include <sv.h>
23: #include <rs.h>
24:
25: #include <../ATmega128/rs0_printf_P.c> // URART0用フォーマット(ROM用)
26:
27:
28:
29: //
30: // メインルーチン
31: //
32: int main( void )
33: {
34: unsigned short usGyroX, usGyroY; // ジャイロセンサ用変数
35:
36: RPU_InitConsole( br115200 ); // RPU-10ライブラリの初期化
37: SV_Init( br115200 ); // サーボ制御ライブラリの初期化
38: sei(); // 割り込み処理開始
39:
40: // 1秒待つ(よく知らないけど必要らしい)
41: RPU_ResetTimerCounter();
42: while( RPU_GetTimerCounter10() < 100 );
43:
44: // 起動メッセージの表示
45: rs0_puts_P( PSTR( “GYRO SENSOR MONITOR” ));
46: while( 1 ){
47: // ジャイロセンサ値の取り込み
48: RPU_GetGyro( &usGyroX, &usGyroY );
49: // 値の表示
50: rs0_printf_P( PSTR( “GYRO-X=%d GYRO-Y=%d\n” ), usGyroX, usGyroY );
51: }
52:
53: return 1;
54: }

■今回使用した関数



  • short RPU_GetGyro( unsigned short *gx,  unsigned short *gy );
    戻り値までは確認していませんが、この関数を実行すると、ジャイロの値が引数に入ります。
    どっちにどっちが入るかは、実環境で確認してみてください。実際の使用方法は、サンプル
    プログラムの方を見てください。




※注意:本BLOGにてRPU-10での再プログラミングについての情報を公開していますが、これらはSISOが個人的に再プログラミングを行った時の技術情報を整理して紹介しています。GDLへのRPU-10ライブラリ同梱については、 Best Technologyさんのご好意で、趣味人への1つのチャンスとして同梱してくださっていると理解しています。そのため、RPU-10の再プログラミングについては、くれぐれもご自身の責任で、また、Best TechnologyさんやFUTABAさんに問い合わせたりすることの無いようにお願いいたします。

  • このエントリーをはてなブックマークに追加
  • Pocket

関連前後記事

Your Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

PAGE TOP ↑