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月29日木曜日

s107gとs800gの互換性

なんだか、マニアックすぎて誰が読むのだろうか・・・というお話。 

s107gはご存知?のとおり3CHのヘリコプター。 これだと空中で左右に平行移動するような移動ができません。 が、s800gは4chでこれができるようになっています。

まだ3chの操作も十分になれていないのに、 4chのヘリを操作してみたくなっちゃってまして、 折角なので、9xrで動かしたいなと思ってます。

ただ、s107gとs800gの制御信号の互換性がないと、 また送信信号の解析から始まって、 モジュールを別に作るのは面倒だなと思ってました。(スイッチとかでモード切替するには、メモリ容量が心配)  。

で、RCgroupesを読み漁ってたら、 s107gのコントローラーでs800gを飛ばしてみた人がいまして、ラダー調整用のツマミを回すとs800gは左右に並行移動するとのこと。

今は調整用ツマミを回したときに送信するデターは プログラムのなかで真ん中に固定してあります。 プログラムを修正して、ここに4ch目を割り当てれば 簡単にモジュールの4ch化ができそうです。 

というわけで、s800gをポチるのは時間の問題です(w
ちなみに、banggoodで25ドルくらい(送料込み)です。

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月20日火曜日

夏休みはおしまい(8/19)

今日から会社。
夕方も雨はなさそうなので、
自転車通勤しました。

夏休みの中盤から引きこもってたり旅行行ったりで
全然乗っていませんでしたが、
意外と調子はよかったです。
パワーはしょぼいですけどね。
旅行でなんだかんだ歩いたのが良かったのかな。

で、帰りに久しぶりにパンクした。
なんかパンク修理も久しぶりだと新鮮(笑
自転車につけっぱなしだったポンプも無事使えた。

今週は、後半出張が続きまして、
またあんまり乗れなそうですが、
ぼちぼちやって行きますです。

2013年8月19日月曜日

次なるアイテム

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


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

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

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

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

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

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

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



誕生日プレゼント・到着

かれこれ2週間くらい前に注文した自分への誕生日プレゼントが本日届きました。ヤター!


それにしても、適当な梱包。送料を安くするため簡易的なパッケージで送ると書かれていましたが、なんか外箱を取っぱらって発泡スチロールのまわりをテープでぐるぐる巻きにしているだけなかんじ。しかも、かなり手荒く扱われているようで、外箱はかなり変形。中が心配。

開けるとこんな感じに入ってました。なんか後ろの羽が本来収まるべきところじゃなくて、壁になるところに挟まってる感じでした。


ちなみに、今回、購入したのはSyma s107gというモデル。ネットでみるとfakeとかcloneとかがあるらしく、価格がかなり安かったので本物が来るのか心配でしたが、ネットでの本物情報と見比べてみると、多分、本物が届いたようです。

ちなみに、cloneはかなり本物に近く、飛びも全く問題ないようですが、fakeはちょっと難ありみたいです。基板上のシルク印刷や電源を入れたときに点灯するLEDの色が違うので、見ればすぐにわかるようです。

で、早速、プロポに電池をいれて、本体をUSBで充電して飛ばしてみました。


最初は単に浮くだけ(ホバリング)でも非常に難しい。上行ったり下行ったりと同じ高さにとどまれない。また微妙な風で流されるので、部屋の中でもエアコンを入れていると結構ふらふら。

それでも、本格的なヘリは普通、初心者にはホバリングも難しいらしいのですが、この機体は入門用ということもあり、動きが穏やかなおかげで自分でもなんとか壁とか天井にぶつけずに楽しめてます。

40~50分の充電で5~7分くらいしか飛ばせないので、ちょっと物足りないですけど、その5~7分は緊張しまくりで、ある意味、丁度いいのかもしれません。

ちなみに、本体の価格は送料込みで17.5ドルくらいでした。今回はebayで購入しましたが、梱包にはbanggoodと書いてありました。同サイトでの価格は18.5ドルくらいするみたいなので、ebayで買ったほうが1ドルくらい安く買えました。



2013年8月14日水曜日

PIC12F629/657でキャリブレーションデータが消えちゃう件

なぜか消えなくなったと思ったらプログラムによってはやっぱり消える。

普段は、キャリブレーションデータをつかわない設定で動かせばいいですけど、ある程度時間の精度が必要なときには困ります。

window環境ならPickit2でキャリブレーションデータを書きこんでからプログラムを書きこめば問題ないのですけど、linux環境ではPickit2のツールが使えない。

代替手段がないかいろいろ探して、これに落ち着きしました。

「pk2cmd」というコマンドを使います。これは、たしか、Pickit2のオフィシャルページにあったと思いますです。

で、マイコンにプログラムを書いた状態で以下のコマンドを実行します。

  $ pk2cmd -P -GF/ファイル保存するフォルダ/test.hex

これで、マイコン内のプログラムをPCに保存します。このファイルの0x3ffにあたるところをみるとキャリブレーションデータが0x0000になってるはずです。

次に、以下のコマンドを実行します。

  $ pk2cmd -P -M -F/ファイル保存するフォルダ/test.hex  -U0xXXXX

「-U0xXXXX」のXXXXのところにはもともとマイコンに書きこまれていた固有のキャリブレーションデータを指定します。

これで、バッチグー(死語)です。