June 01, 2008

Super Sylphide 進捗状況(18) -- i2cでサーボインターフェイス

オートパイロットシステムSuperSylphideですが、最近はもっぱらI/O拡張基板用のVHDLを書いています。なかなかPC用のソフトウェアを書いている感覚と違うので、頭が混乱しています。特に並列に動作するものをイメージするのが難しく、タイミングチャートを図におこしてうんうんうなっていることがしばしばです。

とりあえずはラジコン用サーボのインターフェイスを作ろうと考えました。出来上がりは下図の予定です。

servo_IF-thumb.gif

注目ポイントとしては、i2cをインターフェイスにしていること、サーボ信号の読み込みができることです。多くのラジコン用サーボコントローラにはついていないサーボ信号の取り込み機能ですが、これをつけることによって人間の操縦履歴を取得したり、さらには人間の操縦をアシストする形でコントロールすることが可能となります。取得した履歴と飛行データをもとに模型飛行機の挙動を探ることができれば、様々な飛ばし方ができると思われます。

とりあえずi2cの部分は完成しました。i2.vhdが本体、i2c_test.vhdがテストベンチです。双方向なinout定義のsdaの処理に手惑いましたが、ハイインピーダンス('Z')にして、外部でpull-up('H'を繋ぐ)にすればよいようです。

現在はサーボ信号を処理する部分とi2cをいかにして繋ぐか悩んでいます。サーボ信号を扱う部分はi2cの処理単位である8bitsでは解像度が低すぎますので、もう少し大きめのレジスタを使用したいと考えていますが、それをいかに8bitsに整形するかが考えどころです。i2c側で8bitsよりも大きいレジスタを読み込めるように調整する機構をつけるか、サーボ信号を処理する側でアドレス指定などして8bitsに整形するか、どちらの方が良いか難しいところです。

※その後完成して、飛行試験でのデータ取得に成功しました。

23:47 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | この記事をdel.icio.usでブックマーク | トラックバック
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/642
コメント

 はじめまして。中田と申します。最近CPLDの勉強を始めたばかりで、いろいろ調べているうちにこのサイトにたどり着きました。

 前回のエントリーについてで恐縮なのですが、iMPACTからFT2232が使えるすばらしいソフトを公開されていると知り、早速ダウンロードしようとしたのですが、「要求されたオブジェクトへのアクセス権がありません」との403エラーが出てしまいます。5/26以前に一度試したときにはダウンロードできたのですが…このような症状は私だけでしょうか?

Posted by: 中田 : June 5, 2008 12:18 PM

>中田さん
ファイルを差し替えた際にパーミッションの設定をしくじっていたようです、教えていただきありがとうございます。
また、実行されてみて不具合がありましたらフィードバックをいただけるとうれしいです。できるかぎり改善に努めたいと思います。

Posted by: fenrir : June 5, 2008 04:39 PM
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。