2006年5月31日水曜日

自律飛行コントローラβ版完成

フライングロボット用の自律飛行制御装置のβ版が完成しました。


当初は、以前完成していた標識方向センサー β版とバス接続(I2C)でつながった飛行制御装置を考えていたのですが、I2Cがうまく動作しませんでした。
原因がわからない状態なので、標識方向センサー、RCシグナル認識、自律飛行制御などの全ての機能をPICに入れたスタンドアロンタイプの自律飛行制御装置を作成することにしました。
後、実験中にPingが故障したので、次回の飛行会は、高度制御部分はなしで実験することになります。
PIC16F88に関して、理解状況をまとめました。
1.PIC16F88のI2Cはスレーブ機能のみハードウェア実装している。
マスター機能はソフトで行なう。コンパイラ(CICC)にソフトエミュレーション機能があるので、それを使うことになる。
ただし、マスター側のPINはスレーブハードウェアで指定されているPINを2つとも使うと動作しない。1つは別のPINを選択する必要がある。
2.マスター側からの送信要求、受信要求は、スレーブ側のI2C割込みで認識できる。
しかし、スレーブ側での受信しても、デバイスコードは受信できるが、データが受信できない。
マスター側でも、データ受信ができない。
3.当初RCシグナルをRB6に接続し、RB割込みで動作するように作成したが、うまく動作しなかった。
 現在は、RCシグナルはRB5から取り込み、サーボ出力をRB2,RB3,RB6へ行なっている。
4.RB割込みルーチン内で、Timer0をセットし、RCシグナルインターバルを検出しようと、Time0割込みを有効にしたが、うまく動作しない。
割込みは発生しているようだが、割り込みが発生した後のRB割込みがうまく動作しなくなる。
最終的にはTimer1を使い、RB割込みルーチン内ではセットなどせずに値を取得(get_timer1)のみ使った処理でうまく動作した。
pingの故障について
実験中に誤って2セル(7.2V)を接続したら、動作しなくなった。1セル(3.6V)では動作しない。5V厳守のようです。
自律飛行制御ロジック
��IC内に、台本(script)構造体変数を定義しておく、その情報に従って、自律飛行を行なう。
台本には、目標高度、目標標識、終了情報などが入る。
台本変数は複数行指定でき、1行実行して、終了条件になったら、次の行を読み込む仕掛けになっている。繰り返しコマンドなども設けているので、パターン飛行を繰り返し行なうことも可能にしてある。
予め違った台本がセットされているPICを現場で取り替えれば、別の飛行パターンを飛行できることになるわけです。
今回の台本は、目標高度は制御しない(RCシグナルをそのまま使う)設定で、目標標識の周りを左旋回する設定で実験する予定です。

2006年5月14日日曜日

標識方向センサー β版完成

標識方向センサー(BeaconDirectionSensor)のβ版が完成しました。


受光素子を8個搭載し、赤外線標識(IrBeacon)から発信される赤外線を受信し、標識の方向を測定するものです。
中央には、Pingを搭載し、高度も測定します。そして、バス接続(I2C)でつながった飛行機制御用のPICに飛行機の高度情報と標識の位置情報を伝達します。
まだ、I2CとPing部分のプログラムは搭載されていません。
今回のPICはPIC16F88を使うことにしたので、今まで使っていたPICライター(PICkit 1)では書き込めません。そこで、以前に使っていた秋月PICライターをバージョンアップして使うことにしました。

テスト
部屋でテストする為に、赤外線標識のLEDを5個のみ接続しました。しかも、部屋の隅に置いて奥の方向にLEDを向けています。
このことで、赤外線量が小さくなり、部屋の反対側で標識方向センサーのテストができるようになりました。

デバックモニタは、20回受信毎に表示しています。1行目には直近に受信した標識のデバイスコードと受信した受信素子数を、2行目にはデバイスコード0~6までの方位(0~15)が、3行目はデバイスコード0~6までの受信した受信素子数を表示しています。
方向センサーを回転させて、テストしました。標識のデバイスコードは1なので、右から2番目の情報のみが出力されているのがわかります。また、方位が0~15まで変化しているのも確認できます。
デバイスコード0は高度情報をセットする予定です。

2006年5月8日月曜日

第59回 横田スローフライヤークラブ飛行会

第59回 横田スローフライヤークラブ飛行会に加しました。
1. 高度自動制御飛行機のテスト飛行
2. 赤外線標識を使った位置認識テスト
を行いました。


1. 高度自動制御飛行機のテスト飛行
制御ロジック変更(目標高度での制御サイズを1に変更)でテストしました。
ロジック変更前では目標高度を維持できなかったが、このロジック変更で目標高度内で飛行できるようになってきたようです。
今日は、搭載している受信機の不調で、ラダーとエレベータが誤動作するトラブルが発生しました。結果、クラッシュして、テスト中止となってしまいました。
2. 赤外線標識を使った位置認識テスト
到達距離テスト
最大到達距離:約12m
F西多摩体育館のサイズは20mx30mなので、この到達距離で問題ありません。
画面が見にくいですが、受光素子が1つまたは2つ受信しているのがわかります。

��m受信テスト
標識までの距離を4mにしてテストしました。
受光素子が3つ受信しています。
受信している受光素子の数で、ある程度距離も認識する事が可能なようです。

標識の真上での受信テスト
高度1mでは真上でも受信することがわかりました。

2006年5月7日日曜日

標識方向センサー(BeaconDirectionSensor)

赤外線標識(IrBeacon) テストその1で作成した標識方向センサーに受光素子を3個追加(計5つ)しました。
体育館での標識受信テストに使う予定です。


2006年5月4日木曜日

赤外線標識(IrBeacon) β版完成

実験用赤外線標識(IrBeacon) が完成しました。


ハイパワー赤外発光ダイオード(QED234)テスト
IrLED テストと同じ方法でハイパワー赤外発光ダイオードをテストしました。
結果は、到達距離5cmとまったく効果がありません。これは、私の作成した回路に問題があると思われます。

そこで、赤外線標識(IrBeacon) テストその1で使った赤外線発信装置にさらに手を加えて、赤外発光ダイオードのテストをすることにしました。改造内容は、回路と赤外発光ダイオードとをJSTコネクタで自由に抜き差しできるようにしたのです。

右の画像は手前から2列目のLED5つのみ回路と接続された状態です。テスト結果は、部屋の中では壁に反射して全方位受信可能状態でした。
この状態は、リチウムイオンバッテリ3セルを電源としてテストしたものです。
これを、9VADアダプターに変えてテストした結果も同じでした。多分、12Vから9Vに減っているので到達距離は小さくなっているのですが、部屋の中では差がでていないと思われます。
次に、この回路にハイパワー赤外発光ダイオード(QED234)を接続し、部屋の隅に設置して9VADアダプター電源でテストしました。

結果は、部屋の中では壁に反射して全方位受信可能状態でした。
さらに、広指向赤外発光ダイオード(RLD224)もテストしました。

結果は、到達距離:4m であることがわかりました。
LEDを沢山使えば標識に使えないことはないが、LEDを沢山使うのであれば、広指向である必然がありません。広指向でなくても、もっと出力が大きいLEDを使うのがベターということになります。
実験用赤外線標識(IrBeacon) は今回の回路に9VADアダプターを電源とし、ハイパワー赤外発光ダイオード(QED234)を搭載することにしました。
赤外発光ダイオードは半球の発泡スチロールに放射状に20個装着することにしました。

2006年5月1日月曜日

ハイパワー赤外発光ダイオード(QED234)購入

簡易テストで広指向赤外発光ダイオード(RLD224)は、解決しなければならない問題が多いことがわかったので、
早速、motoショップからハイパワー赤外発光ダイオード(QED234)を購入しました。
注文リスト
赤外発光LED QED234 24個 x 60 = 1440円
送料 200円
合計1640円


ドイト&カインズホームで入手

発泡スチロール製の球を探しにドイト羽村店行ったのですが、見つかりませんでした。電工ニッパーがなかったので購入し、次に
カインズホーム青梅インター店に行ってみました。目的の球が見つかり、購入することができました。
購入リスト
ドイト 電工ニッパー:1,080円
カインズホーム スチロール真球:208円