ラベル 電子工作 の投稿を表示しています。 すべての投稿を表示
ラベル 電子工作 の投稿を表示しています。 すべての投稿を表示

2013年9月28日土曜日

何をつくろうか

夏からいろいろとPICマイコンで勉強をしてきました。

時間はかかるけれどもなんとかいろいろ作れそうな感触は得られてきたのですが、なかなか作ってみたいと思うものがありません。

今の世の中、安くていいものがたくさんありすぎです(涙

とりあえず、ラジコンをまだ趣味としてやってる身としては、ハカルンジャーとかlapviewのようなモノを作ってみようかと思ったりしてます。

まー、個人的には、タイム測定とかしないし、そういう方向に進みたくもないですけど。

ただ、ハカルンジャーと同じ物を作ってもつまらない。

なんかスペシャルな機能がプラスされていたほうがおもしろいよね・・・ってことで、いろいろと考えてみてますが、なかなか難しいですね。

個人的に、一番欲しいのは、LAPデータをスマホに保存する機能。

PICマイコンのフラッシュROMの容量はかなり限られているので、あまりおおくの周回のラップを保存することができません。

かといって、ノートPCをわざわざラジコンのコースに持っていくのもアレですよね。

普段、持っているスマホにデータを保存して、測定器本体のメモリはクリアしちゃって、どんどんタイム測定をしたいですよねー。

でも、そうなるとAndroidアプリの勉強をしなくちゃならないし、PICマイコンとスマホとの通信方法を考えなくちゃならないしで、なかなか先は長そう。

まあ、そんなことを妄想している時が一番楽しいのかもしれませんけど。

どうなることやら・・・


2013年9月25日水曜日

赤外線送信モジュールのソース

回路図は公開したものの、ソースはちょっとパンツの中を覗かれているような感じで公開するのは恥ずかしいですけど・・・

大腿骨骨折で手術前に看護婦さんにパンツの中も覗かれちゃったことだし、40過ぎて恥ずかしがってることもないかなとか思って、下にリンク貼ってみます。

Dropboxというクラウドなスペースのこのファイルだけ外からアクセスできるようにしてみているのですが、出来なかったらコメントで知らせてくれると有りがたいです。

余計なものまで見える場合も教えて下さい(w

見えないとおもいますけど。

ソース


ちなみに、コンパイルはMPLAB XにXC8コンパイラで行なっています。

MPLAB XはLinux版ですが、windows版でも問題ないと思います。
やってみてないですけど。

ソースではコメントアウトしてますが、自分が使っているものは、OSCCALに自分のチップの周波数補正値を設定してます。

これは、私の環境だとプログラムエリアの一番最後に書かれていなくちゃならない補正値が書き込みのたびに消えてしまって、それをあとから書きこむのが面倒なので、プログラム内でこれを設定してしまっています。

これにあわせて、MPLAB上でプロジェクトのプロバティを開き、XC8のリンカの設定で「Calibrate oscillator」のチェックを外しています。

通常は、プログラムROM内の最終番地に書かれている値を自動的に使うようになっているのでコメントアウトしておいても大丈夫なはずです。

また、プログラムは9XR用に作っています。

その他のプロポの場合、PPM信号の順番が違っていたりするはずです。

修正する場合は、メインループの最初で送信するデータの計算をしていますが、そこで使っているp[n]という変数のnの部分を自分のプロポに合わせることで修正できます。

また、フタバはPPM信号が9XRと比べると上下反転しています。

多分、このままでも動作すると思いますが、もしかするとパルスの検出を立ち下がりエッジから立ち上がりのエッジに変更する必要があるかもしれません(理論上はないと思ってます)。

変更する場合には、main関数の最初の方でもろもろ設定しているなかの「INTEDG = 0;」を「INTEDG = 1;」に変更して下さい。

と、こんなんかんじで。

(ソース貼りつけてみたけど、やってみる人なんていないかな)

ちなみに、回路図はここ

2013年9月19日木曜日

2.4GHz

RCgroupsでFLYSKYの送信モジュールをHackするというスレッドがあり、その関連で興味本位でいろいろと調べたりしてます。

2.4GHzのラジコンの送受信システムは、そもそも2.4GHz帯の無線LANとかBluetoothとか用に作られたRF-ICをベースに作られているようです。

中華通販サイトやebayを徘徊すると、それらのチップを小さな基盤実装した送受信モジュールが手ごろな価格で売られています。

チップの種類は3〜4種類くらいしか無いようで、RCgroupsを読んでいるとどのメーカーがどのチップを使っているとかいう情報も得られるようです。

ちなみに、これらのモジュールの変調方式はFSKかGFSKがメインで、いわゆる直接拡散で変調をかけているDSM方式のモジュールは少数派のようです。

世界のプロポセットがそんな感じですから、おそらく日本のプロポセットも似たようなもんじゃ無いかと思います。特にフタバの高い方の2.4Gシステムは、他社から対応する受信機がリリースされたりしているので、間違いないんじゃないかと。

ただ、RCgroupsでは日本のメーカーのプロポをhackしている情報は見つけられませんでした。もともと高いからhackの対象になりにくいのかな・・・。


で、最初に書いたFLYSKYのモジュールをHackするスレッドを読んでいると、いろいろなことがわかって面白いです。

FLYSKYのシステムはFHSSです。でも、送信モジュールはFSK方式。すなわち、FSKの変調波をあらかじめ決められたサイクルで中心周波数を変更して送信しています。

FSKのビットレートは多分500kbps。これを1.4msecくらいの周期でホッピングさせてるようです。16回飛んで元の周波数に戻ってきます。つまり、22msecとかで1周回ってくる感じですね。

1.4msecに一度送信するときのデータ長は30バイト程度ですので、実質のデータレートはそんなに高くないことになります。ざっと計算で10kbps程度ですかね。この30バイト程度のデータの中に、1〜8chまでのPPM信号でのパルス幅がデジタル値で入ってます。

それから、送信機毎に異なるIDは3バイトあるようで、全部を使い切ったらかなりの数です。多分、普通は同じIDの送信機とめぐり合うことはないくらいのパターンがあります。

周波数ホッピングのパターンは16種類。ホッピングの間隔は1MHz間隔で、2.4GHz帯でISMバンドとして割り当てられている帯域は50MHz以上あるので、ホッピングパターンが違えば、同じ周波数で送信しちゃう確率はかなり低いし、たまたまぶつかっても、次のホップ先でまたぶつかることはほ
ぼないので、そういう意味で、干渉には強いですね。

何台ものプロポで同時に送信していると、衝突する確率は高くなってくるので、IDの数だけ同時に送信できるわけではないですけど。

更にいうと、今までのAMやFM方式なら20msec周期で制御信号を送信していたのに対し、22msecで16回の制御信号を送信しますので、16回のうちの1回でもデータが届けば、今までとあまり変わらずに操作が可能ということになります。そういう意味でも、混信になるってのは、そうは起こらない
んだと思います。

ちょっと話が飛びますが、レスポンスの話。

既に説明したように1.4msec毎に制御信号を送信しますが、9XRのようにプロポからのPPM信号を2.4GHzの信号に変換するような方式の場合、送信モジュールが送信する信号は約20msec周期でしか更新されないので、今までのアナログプロポに比べて早くなる要素はありません。

むしろ、PPMを取り込んで2.4GHに載せかえるところで遅延が発生します。そういう意味で、最近の2.4GHzプロポがモジュール式じゃなくなっているのは、こう言う理由があるかもしれません。

何しろ、1.4msec毎にプロポのポテンションメーターの値を読み込んで送信するということもやろうと思えば可能であり、今までの20msecに1回に比べると単順に考えても18msec以上は早く情報を伝えられるわけです。

実際は、サーボのレスポンスもそれほど速くないですし、そもそもサーボ自体が20msecに一回しか制御をうつけないようなものですので、気づく人は気づく程度なのかもしれませんけど。

でもまあ、モジュール式じゃないプロポにはそういう可能性もあるんですね。


更に話は飛んで、最近テレメトリーとかやけに聞くようになりました。これもこの2.4GHzのチップによる影響だと思います。

そもそも双方向通信用に開発されているチップですので、小さなチップの中に送信機と受信機が入っているわけです。で、実際には、送信機では送信部だけ、受信機では受信部だけを動かして使っているわけです。

これをちょっと細工して、交互に送受信を動かすようにするだけで、簡単にラジコンプロポでも双方向通信が出来るわけです。

ただ、言葉では簡単でも、実際はそれなりに難しいところもあるんだと思います。

テレメトリーシステムで使われている送受信機のホッピングの周期は知りませんが、仮に1.4msecでやるとすると、その期間に送受信して周波数を変更してという処理をしなくてはなりません。

今はマイコンの方も高性能・超小型化が進んでいるので、なんてことは無いのかもしれませんが。

それから、通常、ラジコンの送信機の送信モジュールには、チップの後段にパワーアンプがついています。

受信機側にはこれがありませんから、仮に単順に受信機が送信するように改造したとしても、マシン側からプロポ側に電波が届きにくいことになります。

となると、受信機側にもアンプが必要になったりして、単順に同じものでFWを変更するだけという訳にはいかないかもしれません。


と、そんな感じで、なぞめいていた2.4GHzのシステムが、最近とても身近に感じれるようになりました(笑

2013年9月16日月曜日

今日はシリアル通信

というわけで、PIC16F648Aで相変わらず遊んでます。

今日は、PCと接続してシリアル通信。このマイコンは今までのマイコンと違って、シリアル通信のコントローラー内蔵なので、プログラムも簡単だし速度も速い!!!

CPUクロックも20MHzにしていることもあり、115kbpsでPCと接続してキーボードで文字を送信したものをマイコンで受信してLCDに表示・・・とかやっても、全然大丈夫。文字化けや文字抜けも全くありませんです。

さーて、次はSPI通信かなー。

こちらはコントローラー内蔵していないので、ちょっと面倒だけど、ここをなんとかクリアしたいところ。

2013年9月14日土曜日

LCD表示できたー

というわけで、LCDに文字が表示できるようになりました。
ヤター!!!


今日は、午前中にスイミングの送迎などがあり、どこかに出かける気分じゃなかったので、引きこもってLCDの表示のテストをしました。

ブレッドボードに回路を作って試行錯誤。

そもそも今回使用したPIC16F648Aを使うのははじめてで、レジスタの初期設定とかも手探りなこともあり、LEDピコピコさせるのにしばらく時間を食ってしまいました(^^ゞ

今回、はじめて水晶発振器を外付けにして20MHzで動作させていることもあって、回路のせいかなとか設定かなとか、迷っちゃいました。

LEDピコピコができるようになったので、weekdayに作り込んでいたプログラムを試してみると、LCDの設定はできているような感じですけど、文字が表示されない・・・とか悩みました。

色々調べて、ディスプレイをクリアするコマンドのあとに2msecくらい待たないと行けないことをデータシートで発見し、それをいれたところ無事に表示できるようになりました。

ただ文字が表示されるだけのことなので、なんてことはないんですけど、ウレシイ・・・。


2013年9月12日木曜日

1602のLCDドライバ

生存証明がてら、更新。

本日、超久しぶりに自転車通勤しました。
夏から天気が微妙な日が続いたり、
眠いとかだるいとか言い訳つけて車で通勤してましたが、
こんな秋の気持いい季節に自転車乗らないほうがむしろもったいない。
つーか、腹がぷよぷよしてきてスボンがヤバイので自転車のりました。

まー、そんな話はさておき・・・

電子工作の世界ではポピューラーな16×2文字のLCD。
秋月で買うとバックライト付きで800円くらいするんですけど、
中華だと2個で送料込みで5.2ドル。

で、まー、使い道はさておき、
必要になったときに使えるように
昨晩はドライバ(のようなもの)をプログラミング。
CPUはPIC16F648Aが到着予定なので、それ用に。
本日、マイコンが無事届いたので、
週末に時間が取れれば表示させるテストをしてみたい。

ポピュラーなデバイスだけに、
インターネットでも情報はたくさんあって、
ここに改めて書くこともないですね。


ところで、PICやAVRなどのマイコンですが、
CPUは20MHzや32MHzで動作したり、
内部のプログラムメモリも4KBからモノによつては32KBとか。
RAMは比較的すくないみたいですけど・・・
それでも、PC8001はROMが16KBとか32KBとかだったし、
RAMもそのくらいだったと思う。

まー、アドレスバスとかデータバスが外に出てないとか、
ディスプレイに表示するための回路がないとか、
同じ機能とは言えない部分もありますが、
それでも、なんつーか、同じような処理速度のマイコンで
気軽に遊べる今の時代にちょっと驚き。

なにより、今はインターネットというすごいものがあって、
群馬の田舎の中学生には到底調べられなかったようなことが、
ちょっとググるだけで調べられる。

それがまたまた敷居を下げてくれていて、ホントにいい時代だ。

でも中学の時にこの環境があったら、
自分はもっともっとヲタクな世界にどっぷりな人間だったろうなぁ。


・・・とか書いてふと思う。

結局、小中学校時代にやり足りなかったことを順番にやってるだけだなぁ。

スキー、自転車、ラジコン、マイコン・・・

つぎはなんだろ(w

2013年9月6日金曜日

シリアル通信

PICでプログラムしていて、変数の値を確認したくなることがありますが、ディスプレイとかついていないので、なかなか思うように行かず、赤外線モジュールのプログラミングの時にはかなり苦労しました。

が、ちょうど、中華通販で間違って送られてきたものが、5Vの信号をRS-232Cレベルに変換する基板だったこともあり、PICマイコンでシリアル信号を送信するプログラムを作ってみました。

まだ、PICからの送信しかできてませんが、9600bpsでちゃんと送信できるようになりました。ふー。

しかし・・・1バイトの送信に1msecくらい時間がかかってしまって、いろいろな処理をしている中でPCに数値を送信するのは基本的にむりかなー。デバッグの一つの手段としては使えると思いますですけど。

やはり、シリアル通信の回路が入ったマイコンで、レジスタに送信したいデータをセットして、送信コマンド叩くと、あとは自動的に送信してくれる・・・というマイコンじゃないと、通常使用には耐えられませんですね・・・。

ま、おもしろいから、いいかぁ。


---追記---
PCで送信したデータをPICで折り返すプログラムを作ってみた。

とりあえず19200pbsで折り返せるようになった。ヤター!!

ただ、データ送信にやはり結構なサイクルを必要としちゃう。

ビットとビットの間に無駄に待つ時間があるけど、この時間に割り込みとかで何かを処理しようとしたら、多分、ビットタイミングがずれて送受信がうまく行かなくなっちゃうんじゃないかなー。

とは言え、例えば、光送信モジュールなんかだと、PPM信号を数値に変換→光で送信したあとは、100msec程度waitを入れているので、この時間にPCに数値を送信するなんてのは余裕でできる。1文字送るのに10bit。19200bpsなら約500usecで送信できる。

とりあえず、これで秋の自由研究の第一歩が踏み出せたかな(^^ゞ



2013年9月5日木曜日

さすが中華(w

大概大丈夫な中華通販ですが、やはり時々やってくれますね(w

D-SUB9ピンのコネクタを頼んだのに、なぜかRS-232Cを5vのI/Fに変換するボードを送ってきたり、ちゃんと動かないUSB-シリアル変換コネクタを送ってきたり。

でも、前者はメールしたら送り直すと言ってきたのでそのうち届くでしょう。

間違って送ってきたものも送り返せと言って来なかったので、有意義に使わせてもらおうと思います(w

で、動かなかったUSB-シリアル変換ですが、分解してみたらイモ半田だったり、ついてるのかついていないのかよくわからないような感じ。

試しに、半田付けしなおしてみたらばっちり動きました。

もともと2ドルとか3ドルとかのものなので、こういうのもあるよね・・・って楽しめますけど、やはり高いものとか信頼性の必要なものは、慎重に購入した方がいいですね。

自分が言うのは説得力、ないですけど(^^ゞ




2013年9月4日水曜日

ソースの修正

本日は、赤外線送信モジュールのソースをちょいと修正しました。

プログラムでは、各chのパスル幅を測定するのに8bitタイマを使用しています。今までは0〜255までカウントすると4.096msecまでカウントできるような設定で使用していました。

PPM信号の1chのパルス幅は、1msec〜2msecの間で変化するため、この範囲の分解能としては256の1/4の64しかありませんでした。これでも、全く問題なくなめらかに操作できています。

ただ、当初は、PPM信号ってアナログ時代からの方式で、プロポによってはパルス幅が2msecよりもかなり伸びたりすることもあるかもしれないこと、また、わざわざ16ビットカウンタで作りなおすのは手間もかかるし、プログラムサイズや空きメモリも心配でいじっていませんでした。

ところが、実際にPPM信号取り込んでみて、9XRは2msecを超えないかなりいいところが最大のパスル幅となっており、ちょっとぐぐってみたところ、意外と規格に対してずれなく調整して製造されている?と思うようになりました。

また、100%の状態が1.900msecとか1.940msecとかのパターンが多いみたいで、これならプリスケーラの設定を変更して、0〜2.048msecのカウントとしても問題ないんじゃないかと思いたち、サクサクっと修正してみました。

このおかげで、パルスのない区間を見つけるのもカウンタがオーバーフローした場合という条件だけで検出できるようになったし、パルス幅をデジタル値にするときに2倍する必要もなくなって、プログラムサイズもデータメモリも小さくなり、分解能も64から128になりました。

飛ばしてみた感じは全く違いがわかりません(w が、処理がシンプルになってなんかスッキリしました。


---
ところで、今日も中国からパーツがいくつか届きましたが、一つ、注文したものと違うものが届いていて、業者にクレームメールを入れてみました。もともと3ドル以下のものだったので、諦めもつくのですが、この結末はどうなるか・・・

今回購入したaliexpressというサイトは、バイヤーズプロテクトとかいって、安心を売りにしているので、もめるようだったら介入してもらえるはず・・・と思っています。

2013年9月3日火曜日

続々


aliexpressに発注したパーツが続々届いています。

もう、日本で考えたら送料だけでそのくらいかかるんじゃないの?ってな価格でまとめ買いできちゃうので、もう、秋月、ヤバイよって感じです(w

ちなみに、写真は、抵抗(いろいろな定数を20個ずつ)、コイル(色々な定数を20個ずつ)、5Vの3端子レギュレーター20個、MAX232Cが30個、16×2のキャラクタLCD×2個。

どれもワンコインでお釣りが来る感じです。もちろん送料込みですよ。

まだ発注したものがいくつか届いていないのですが、それらがきたら、またいろいろと楽しめそうです。

といっても、特に作るものがないので、基礎研究・・・な感じ(w


2013年9月1日日曜日

赤外線送信モジュールの回路図

というわけで、適当な回路図エディタを見つけてきて、さくっと書いてみた。

抵抗とかコンデンサとかの定数は、これでいいのかあんまり自信なし。

やはり、ちゃんとしたオシロとかロジアナが欲しいな。

でも、趣味のために個人持ちするにはちょっと高い。


簡単に説明。

マイコンの品名がPIC12F675になってますけど、実際はPIC12F629を使ってます。

PPM信号は、直接PICに突っ込んでも良さそうだったのですけど、プロポ側が6Vで動いているとあれなので、一応、抵抗で分圧し、入力割り込みが使える5番ピンに入力。

出力はどこでもよかったんだけど。適当に3番ピン。

出力は、2sc1815×2つでLEDを駆動。1815のベースに個別に抵抗を入れないと、1815のオン電圧の微妙な違いで、電流が一方のみに多く流れてしまうらしいので、面倒だけど抵抗を別々に。あとは、hfeを考慮しつつ適当に定数を決定。

1815の出力でLEDを5個駆動。そのうちひとつは単なる発光LED。そう、赤外線を送信中も発光LEDがチカチカすることで、動作確認ができます?!

また、このLEDでキャリブレーションの時の確認も兼用します。

赤外線LEDは2つ直列×2つ(D2,D3,D5,D6)。それぞれに47オームを入れて電流は約50mA程度にしてます。もう少し流せそうですけど、これで問題なく動作してるのでいいか。

あとは、電源は3端子レギュレータで。モジュール用のケースは空気の逃げ道がなく、しかも樹脂なので断熱性がたかいので、少し大きめの1A用のレギュレータにしてます。

実際は平均すると100mAも流れないので、もっと小さいのでOKと思いますが、熱がこもるとあれなので・・・。いや、単に入手性のもんだいというのもあります(w


フタバ用にする場合には、PPM信号のところを少し見直さないと行けないかもしれません。フタバのPPM信号の出力がどうなっているのかちゃんと調べていないので、そのままでも良い可能性もありますです。

ちなみに、サンワのPPM信号は、ピンのところではオープンコレクタになっていて、モジュール側でプルアップしないと動作しませんが、逆にピンからモジュールの電圧以上の信号が来ることがありませんので、ある意味使いやすいかも。

と、こんな感じ。

ちなみに、ソースはここ

2013年8月31日土曜日

各社送信モジュールのピン配置

というわけで、ググればでてきますが、とりあえず。

■Futaba
【プロポの背中側からピンが上にある状態でみて左から】
 | PPM | + | ? | GND | ANT |

<追記>
PPM信号はプルアップが必要みたいです。

■JR
【プロポの背中側からみて上から】
 | PPM | 6V | + | GND | ANT |

です。サンワは以前、どこかにあると思うので探してみます。

確か、サンワのPPM信号はオープンコレクタになっているので、プルアップが必要だと思います(以前これで、かなりはまりました)。

ちなみに、9XRの +端子はトレーナーポートにコネクタをさした状態では出力されないようです(JRタイプのトレーナーポートのみ確認)。

ちなみに、モジュール式ではなくても、ちょっとまえのプロポなら内部にPPM信号が通っていることがほとんどです。特に、AMプロポは必ずPPMですね。

なので、ちょっと古めのプロポでうまくPPM信号を見つけられれば、赤外線モジュールを取り付けて遊べます(w


【サンワの情報追記】

■sanwa

 | PPM | + | ? | GND | ANT | ? |

?のところには何らかの電圧が来ていますが、何かわかりません。
この辺を配線しないと、プロポのアナログのメーターが何故か動きません。

※PPM信号はプルアップが必要です。
 →エグゼスで確認。M11とかM8は未確認です。

あれれ?!

さっそく、s800購入に向けてモジュールのプログラムを修正してみてます。

今までラダーのトリム調整の値は64固定にしていたので、ここにちゃんとした数値を入れれば、機体の向きが変わるはず・・・と思っていたのですが、全然変化なし。

何でだろう・・・とかなり悩んで、純正プロポを取り出して、再び、その送信信号を解析しなおしてみました。

まだあんまり確信が持てていないのですが、純正のプロポはラダーのトリム調整をすると、たしかに4バイト目の数値が変化しますが、それだけではなく、もともとのラダーの数値が変化します。

もしかすると、機体の方が途中でバージョンUPして、4バイト目を全く見ずにトリム調整がそのままラダーの制御値に反映される仕様になったのではないかと推測。

それ以前の機体もちゃんと操作できるように、4バイト目の数値にも変更が加えられるままにしてあるが、今の機体はその数値を見ていないのではないかと・・・。

まだ確信が持てていないのですけど、このプログラムでs800を制御してみればわかるはず。

というわけで、s800が来るのを待ちます。

・・・あ、昨日、あの後、ボチっちゃったりしてます。

ちなみに、価格は25ドルくらいといいましたけど、22.59ドル(送料込み)でした。安っ。


そんなこんなで、最終的な報告はモノが来てからのお楽しみ。って、楽しみにしている人なんていないってば。

2013年8月30日金曜日

syma s107gの赤外線プロトコル

夏休みの自由研究の発表という意味で、調べたことをつらつらと書いてみたいと思います。

※需要があるかどうか、かなり疑問ですけど


[レイヤー1]
赤外線LEDの波長は、一般的に入手しやすい940nmのモノで動作できてます。

データは一般的なテレビリモコンと同じように、0と1をパルス幅(というか、パルスとパルスの間隔というか)で判断してます。0が短く1が長いのもテレビと一緒。ただ、長さはテレビリモコンとはちょっと違ってます。

もう少し具体的に書くと、赤外線をONしている時間は0を送るときも1を送るときも共通で、約390usec。その後のOFFの時間が0を送るときには約210usecで、ONを送るときには約600usec。整理すると、

 0送信時 : ON→390usec OFF→210usec
 1送信時 : ON→390usec OFF→600usec

ただし、RCgroupsのMLでの情報では、ON時間が270usec程度、0の時のOFF時間が330usec程度、1の時のOff時間が730usec程度なので、1bitのデータを送信する時間が、0の時は約600usecで1の時は1000usec程度であれば、良いのかもしれません。

また、ONの時間はこれまた通常のリモコンと同じく38kHzの周波数でON/OFFを繰り返しています。つまり、390usecの間に約15回、ON/OFFを繰り返しています。


[レイヤー2]
フレームのフォーマットは、フレームの開始時に2msecのON→2msecのOFFがあり、その後データが続きます。最終ビットの幅を認識させるために一番最後にONのパルスが1発必要です。
__|~~~~~~|______|~~|__|~~|____|~~|____|~~|__|~~|__  ・・・・|~~|__
 |  2ms |  2ms |0.6ms| 1msec | 1msec |0.6ms|0.6ms| ・・・・

と、こんな感じです。データは全部で8×4の32bit。32ビット送信後は100msec程度の無送信区間があります。

つまり、操作は1秒間に約10回だけしか効かないということになります。といっても、操作していて違和感とかはありませんです。


[レイヤー3]
8ビットのうち、下位7ビットでプロポからの制御値を送信してます。上位1ビットは通常0で、3バイト目だけチャンネルによって0/1が変わります。

 |0YYYYYYY|0PPPPPPP|CTTTTTTT|0AAAAAAA|

こんな感じで、Y→ラダー、P→エレベーター、T→スロットル、A→調整ツマミの値となってます。Cはチャンネルで多分0がAch、1がBch。

また、Aの値はs800Gではエルロンの値となっているようで、s800Gのプロポでs107Gを操作するとエルロン操作しているのにラダー操作したのと同じ動きをするようです(こちらもRCgroupsの情報)。

また、制御値は最大が127、中心が64、最小が0。値の大きさと動きの方向は以下の通り。
 Y 右→小 左→大
 P  前→小 後→大
 T 遅→小 速→大
 A 右→小 左→大


---
と、こんな感じです。

2013年8月28日水曜日

赤外線モジュールで飛ばしているのを動画でとってみた(w



こんな感じでとんでます。

夏休みの自由研究・完成!!!

先週の土日に断続的ではあるものの二日間、休日出勤したので何やら今週中に休暇をトレとの司令。

天気も気候もいいので自転車乗りたかったんですけど、あいにく火曜日から首が痛くてとてもロードに乗れる状態ではない。

となると、9XRも来たし、完成させちゃおう!!!と、中華通販で頼んだパーツがこないのにいてもたってもいられなくなって・・・

昨晩のうちにソフトの方は完成していたので、今日は基板作成とモジュール化。ヤナイ無線までパーツを買いに行って、またまた引きこもって完成しました!!!

モジュール内はこんな感じ。8pinのPICマイコンとLEDドライブ用のトランジスタ×2と電源用にレギュレータ、そして抵抗とコンデンサを少々。それと、スロットル調整時のアンサーバックと送信動作確認用のLEDを一つ。


蓋にプロポのピンが通る穴をあけたりしてとりつけ。赤外線送信部は裏にあるとヘリまで届かないので、ケーブルで伸ばしてとりつけ。純正は3つのLEDでしたので、奮発して4つにしてみた。


こんな感じで、基板にLEDと抵抗を2つはんだづけして、ビニールテープでぐるぐる巻きにしてあります。本当はヒシチューブとかでおおったほうがいいかも。


プロポへの取り付けは、こんな感じで輪ゴムで(^^ゞ
もうちょっとケーブルが長いほうがよかったかも・・・。


で、飛ばした感じですけど、いままでとほぼ変わらない感じでとばせますね。ちょっとこちらの送信モジュールの方が指向性が強いみたいで、それなりに向きを意識しないと届かなくなることがありましたが、正面にいる分には結構遠くまでいっても大丈夫です。

そして、肝心の操作感ですが、レバーが長くなり、ストロークもしっかりしたことで、かなりいい感じです。細かい動きもしやすい感じですね。

ただ、今までスロットルが左レバーだったのが、全く左右逆になったので、人間がなれませんです。はい。

あ、それと、モジュールじゃなくてプロポの方がちょいと変な動きをするんですよね・・・。スロットルの反応がなんかにぶくなるというか。9XRは操作している量が下の液晶画面にみえるんですけど、それがレバーと一緒に動かない。

しばらくすると問題なくなるみたいなんだけど・・・なんだろう。設定なのかプロポの不良なのか・・・。

こちらは、ちょっと情報収集してみます。

あと一歩

というわけで、来ました!!! Turnigy 9XR。

ちなみに、モジュールなし。モジュールはFryskyの技適シール付きがあるので、もし電波を飛ばしたくなったときにはそれで。

でも、今回の目的は電波じゃなくて赤外線を飛ばすことです(笑


夏休みの自由研究で進めてきたPPM信号をsyma S107gの赤外線信号に変換するというあれです。

で、早速、いままで2chプロポ用に組んでいたプログラムを修正。ニュートラル位置がなんだかずれてて微妙に苦労しましたけどなんとか動くようになりました。やたー!!

ちなみに、前後進と回転(専門用語でなんて言うんだろ)はサーボリバースにしないとダメでした。スロットルはノーマルでOK。なんでだろ。

まだ、赤外線LEDの電流が少ないのか、純正は3つのLEDなのに比べて1つしかないからなのか、ちょっと離れると光が届かなくなってコントロールできなくなります。

また、純正プロポより、操作できるようになるまでの時間がちょっとかかる気がします。これは光が強くなれば改善するのかな・・・。

でも、ちゃんとスロットルで上下するし、その他も問題なくコントロールできます。また、純正のちゃちなプロポとは比べ物にならない操作感・・・うーん、たまんないっす。

ただ、プロポは日本人らしく?モード1にしたので、今までのレバーと左右が逆でまだちょっと違和感ありますねー。

というわけで、PICのプログラム的にはとりあえず動くようになったので、あとは最終段階としてブレッドボードからちゃんとした基板に作り変える作業です。

ただ、レギュレーターとかコンデンサとか抵抗とかICのソケットとかを中国に発注してまだ届いていないので、それが届いてから作りこみになります。

ケースも適当なものを見つけなくちゃいけないので、完成はもう少し先になりそうです。


それにしても、このプロポ、価格が非常に安いのに予想以上に高級感があっていい感じです。レバーの感触もわるくないですし、設定が多すぎて困るくらいですし・・・それでいて、意外と直感的に設定できるわかりやすさ。

肩のところのスイッチは、評判通り遠いですけど、まー、今の所全く触る必要ないですし、問題ないですね。


というわけで、夏休みの自由研究もなんとか形になりそうです(w



2013年8月25日日曜日

電子工作も中華なのか?!

先日、banggoodを見ていたら1/4Wの抵抗のいろんな値が10本ずつくらい入ったセットが数ドルで売ってて、しかも送料込み。これだと欲しい定数をアキバとか近所のパーツ屋で買うよりも安いかもってことで、1式注文しちゃいました。

それ以来、電子部品も中華なのか?!ってことでAliexpressで物色しています。

PICマイコンとかは秋月もかなり頑張ってますが、送料を考えると中華も大健闘。5個とか10個とか買うのなら間違いなく中華の勝ち。

セラミックコンデンサのセットとか、コイルとかのセットとか、LEDの5色セットとか、なんでもありますね。最近、ちょっと興味があった16×2のLCDが2個で5ドルくらいだったり。

そんなんで、いろいろとポチってしまいました。


ところで・・・ラジコン関係の人には知っている人もいるかもしれないLapviewという走行ラップをお手軽に測定できる機械が、実はPICマイコンでできてることを先日知って、これなら自分でつくれるかも?!なんて思ったりしてます。

ただ、ハードは簡単に行くと思いますけど、ソフトはなかなか難しいですかね。作るくらいなら買っちゃったほうが楽だと思いますけど。


Lapviewモドキを作るかはともかく、PICマイコンでLCDに文字表示したりできると、いろいろな機器に応用が効くんじゃないかとか思ったりして、まずは、そのへんを使えるようになりたいな・・・。

実は、IMAXB6も同じLCDっぽいので、中身は実はPICなのかなとか、PICで充電器つくれるかなとか・・・適当に作ってLiPoが爆発すると怖いので自分では作りませんですけど(w


そんなこんなで、雨だの出張だの休日出勤だので自転車に乗れずに溜まったストレスを中華ショッピングで発散した週末でありました。


2013年8月21日水曜日

夏休みの自由研究・Step_3

※夏休み終わっちゃったけど・・・。

次なる兵器が来たので、早速次のステップに進みました。

2chのホイールタイプのプロポのDSC端子からPPM信号を抽出するところまではできてますので、それを今度はヘリの送信信号のフォーマットにしたがって送信するところまで。

ちなみに2chしかプロポは操作できないので、スロットルはスロットルにステアリングは機体を左右に向ける操作にマッピング。

フォーマットやパルスの幅の情報は既にあったので、さくっと行けるかと思ったら意外と時間がかかってしまいました。

が、無事、ブレッドボード上の赤外線LEDからの信号でヘリがコントロールできるようになりました。まだ飛ばしてないですけど(汗

スロットルをバック全開にすると、プロペラが止まり、フルスロットルにすると回転速度がちゃんとMAXになりました。うーん、ウレシイ。

ステアリングを操作すると、上下のプロペラの回転に変化がでます。まだ飛ばしていないので、もしかしたら左右が逆かも知れませんが、そもそもこのプロポで操作しようと思っていないので、とりあえずはこのままでいいか。

ちなみに、使用する前にプロポの信号の位置を調整するモードとかも作りこみました。

電源いれて2秒の間に、スロットル全開にすると調整モードになり、そのまま全開をキープするとその位置をスロットルのMAX位置として記録、バック全開でスロットルのMIN値として記録、すべてのスティックから手を離して、スロットル以外のセンター位置を記録・・・といった感じ。

これでいよいよスティックプロポが必要になってしまいました。

ここまで動けば、あとはつなぐだけに等しいので、多分失敗はないと思いますが、トイラジで遊ぶのに本当にそんなプロポが必要なのかと。

いやでも、ヘリで遊ぶというより電子工作を楽しむために必要な出費と思えば、安いもんか。どうせ中華品を買うことになるし・・・。

しかし、こんな簡単な回路でこんなことができるなんて、やっぱマイコンはすげーや。

最終的な回路は、

 8ピンのPICマイコン
 抵抗×3つくらい
 コンデンサ2つくらい
 3端子レギュレーター1個
 2sc1815×1個
 普通のLED×1個
 赤外線LED×3個くらい?

といった感じになりそうです。

パーツ代は1台分なら数百円レベルですかね。
開発環境にだいぶかかってますけど(汗

2013年8月19日月曜日

次なるアイテム

というわけで、夏休みは終わってしまいましたが、夏の自由研究の3rd stepのために発注しておいたアイテムも本日到着してました。


こんなもんです。が、これが結構スグレモノ。

名前はUSB Infradred Toy v2といいます。これはハード的にはPICマイコンにUSB-IFと赤外線の送受信デバイスがついているだけのシンプルなものです。これにwebでダウンロードできるドライバやプログラムをつかうことで、赤外線信号の送受信ができるというものです。

で、これ、何がすごいかって言うと、それらのソフトのうち、受信信号解析用のツールがあって、それを使うとPCに赤外線信号のパルス幅が数値として取り込めます。つまり、これを使えば、赤外線リモコンが送っている信号とかを解析できるわけです。

ちなみに、同日届いたラジコンヘリも実は赤外線コントロールでして、この送信機の信号を解析し、それを先日のPICマイコンで送信することでヘリをコントロールすることもできます。

そして、夏の自由研究のstep2までで、プロポのPPM信号を取り込むところまでやりました。つまり、通常のスティックプロポのPPM信号をヘリの赤外線信号に変換する送信モジュールを作るってところが、自由研究のゴールなのです。

ヘリの赤外線信号のプロトコルについては、海外のRCフォーラムで少し情報があったのですが、自分で解析してもその情報と一致していることが確認できたので、かなり実現できそうなところまで来てますです。

そんなこんなで、多少、お小遣いが減りましたが、達成感のある遊びができそうです。自己啓発にもなりますしね(笑