2013年9月20日金曜日

今週は皆勤賞(9/20)

というわけで、今日も自転車通勤。

今週は天気が良かったこともあり、休まず自転車通勤でした。いやー、なんかこんなの超久しぶりな感じ。ま、月曜日は休日でローラー30分でごまかしているので微妙な皆勤賞ですけど。

もう、FTPなんか30Wくらい上がっちゃったきがしますです。上がってないですけど。

しかし、この季節、走りだして体が温まると痒くてたまらないです。自分だけかなー。

走りだし、少し肌寒くて毛穴がきゅっと閉まってる感じなんですけど、走りだして体が温まって汗がにじんでくると、毛穴が開いてそれととも痒みが・・・。


ま、そんな話はさておき、強くなるとかそういうのはおいておいて、40才を超えて若さを維持するためにも運動は継続したいなと思う今日このごろです。はい。






2013年9月19日木曜日

3日連続(9/19)

というわけで、本日も無事自転車通勤。

朝は、かなり寒くなりましたね。

Tシャツの上に半袖のサイクルジャージ、それにアームウォーマー装備で家を出て、途中からアームウォーマーを外す感じで丁度よかったです。

足の方はなんとかレーパンでも行けますが、すぐに、ニーウォーマーが必要になりそうです。

それにしても、空気が澄んでいて、群馬の山々がくっきり見えて気持ちいいですね。サイクリングロードの土手には彼岸花とか咲いてたりして、秋を感じてます。

やはり、車通勤では味わえない季節感とか生きているっていう感じが自転車通勤にはありますね。

こんな感じの自転車なら、長く続けられそうな気がします(w


明日は出張の予定だったのですが、急遽予定がなくなってしまい、自転車通勤ができます。

週末は特に予定も無いですけど、タラーっとサイクリングロードをパトロールしてみようかな。

あ、でも、ランにしようかな。町内の運動会でアベックリレーにエントリーしているので、走れるようにしとかないと(w

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月18日水曜日

とりあえず2日連続(9/17,18)

台風が通りすぎて空気が一気に秋めいてきました。

今週は天気も安定しているようなので、安心して自転車通勤再開しました。

夏はなんだかんだで傘マークの日が多くて車ばっかりでしたが、程々のスピードで自転車で走るのはやっぱりきもちいい。

朝はちょっと涼しすぎるかななんて思って出発しても、走っていると丁度いいですね。微妙に汗ばむかどうかってところで会社に到着する感じです。

負荷は決して高くしてないですけど、ここ二日間はケイデンスをあんまり低くしないで早いタイミングから踏むペダリングを意識して見ています。

やはり早く踏むってのは大事ですね。脚をペダルにのせているだけの意識でも十分パワーがあがりますです。


話はすごくすっ飛びますが、今日は朝の空気以外にも秋を感じました。

それは・・・トイレのウォシュレットの水が妙に暖かかった時(笑

どうでもいい話でした。

2013年9月17日火曜日

方向が定まらない・・・

自分が何をやりたいのかよくわからない日々が続いています。

ラジコン熱はさめつつあります。

ラジコンカーは、相変わらず面白いと思いますが、継続して練習して速くなりたいとかそういうのはないので、やらなければやらないで済んでしまってます。でも、おもしろいんですけどね。

ラジコンヘリも面白いとはおもいますけど、大きなヘリは金銭的に無理なのでマイクロヘリを部屋で時々楽しむ程度ですね。大きなヘリは、墜落したら即故障ですけど、マイクロヘリは墜落に非常に強いです(w

それと、パソコンでシミュレーターなんかもやってたりして、かなりこれがリアルでこちらでもしかしたら満足できちゃうかも・・・くらいな感じです。

自転車は、天気のいい日に乗りたいなと思いますけど、何が何でも乗りたいという感じじゃないですね。やはり目標がはっきりしてないのが原因と思いますです。

漠然とした目標では、厳しい練習は苦行にしかならないです。目標に近づいているという喜びがあってこそ、苦しみが楽しいと感じれるんだと思います。

でもまあ、ちょっと前よりは、なんとなく目標をもちたいなと思うようにはなって来ました。いまは、その目標がクリアになったときにできるだけ早く、過去の自分に戻れるように、天気のいい日はできるだけ乗る・・・というところをしておきたいという感じです。

それからそれから、やっと子供たちが大きくなって、手がかからなくなった(というより、相手にされなくなった)ので、今年の冬は、また岩鞍のシーズン券を買おうかとか秘かに思ってます。

まー、スキーもうまくなりたいとかそういうのはないのですが、今だからこそ、スキーそのものをもっと楽しめるんじゃないかなーと。幸い、昔のスキー仲間は相変わらずスキーバカみたいですし(褒め言葉ですよw)。

電子工作的には、今、一番HOTですけど、本当は、これを仕事にするのが自分的にはベストなんじゃないかとか思ってます。が、今の技術力では十分な給料はもらえないですね(w

でも、今一番時間を忘れて没頭できるのはこれですね。しかも、自転車と同じように積み重ねていく感じがとても達成感を感じれる。それでいて自転車と違うのは、サボっていても積み重ねたものが崩れにくい。

そういう意味では、体力が必要な趣味でもないので、焦らず老後まで続けられる趣味として、楽しんで行こうと思います(w

で、タイトル通り、今は何をしたいのか結局良くわからない状態です。

あんまり関係ないけど、今一番やりたいことは、サンマBBQです(^^ゞ





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

と、こんな感じ。

ちなみに、ソースはここ