新潟県産ジェットエンジン
| 固定リンク
| コメント (0)
| トラックバック (0)
出てました。下記です。
マルツ電波 【PS-PROC01】ワイヤレスUSB内蔵PSOC評価ボード
まぁ。買うことはないと思いますが。
既に自作の2~3チャンネルの受信機があるので。
それにしても、久々の更新だ・・・・・・。
| 固定リンク
| コメント (7)
| トラックバック (0)
2.4GHz用送信機をRFモジュールをそのまま使用した試作機の状態からパワーアップするため、以下2点を変更しました。
その1 2.4GHz用パワーアンプICの追加
SST製のST12LP15Aを使ったパワーアンプを追加しました。(パワーアンプと言っても1mWから20mWになる程度なのですが)

その2 アンテナの変更
その1のICパワーアンプはアンテナを外付けするようにしたので、基板の外に送信用のアンテナを設けました。
どのようなアンテナにするかは色々悩んだのですが、構造が簡単、調整が適当でも何とか動作する、狭い場所に押し込める、アマチュア無線用らしいアンテナという条件で「ヘンテナ」を採用しました。採用といっても自分で適当に材料の銅線などを曲げたり延ばしたりしただけですけど。
太い部分は外径3mmの銅パイプを使用しました。見た目、頑丈そうでいいのですが、赤外線兼用送信機の窓部分に押し込んだら銅パイプがじゃまして一部の赤外線LEDが隠れてしましました。ということでこれはお蔵入りです。(細かいことを言うと、調整用の部品とかがついていないので本来の性能を発揮できそうにありません。)
次に製作したのが、「DR-620の調整 & 改造とか・・・高周波な生活の一部」さんで紹介されていたU/SHF帯用 1λヘンテナです。実際には送信機のプラスチックケースの幅に納まらなかったため、端の方を90度折り曲げています。

| 固定リンク
| コメント (0)
| トラックバック (0)
以下、本日テストしてみた結果です。
露光条件を忘れないようにブログに書いておきます。(メモしておいてもなくすかも) ##
基板 NZ-E41K
製造年月日 2009.09.2 (約2月20日経過)
光源 オーム電機 クリップライト DL1302G (ランプ 蛍光灯EFD12EN 約2年使用)
露光距離 100mm
露光時間 20~40分
テストパターン 線幅0.25 ピッチ0.50 Eとヨの繰り返しパターン
プリンタ PYXIS 900PD
OHPシート コクヨ VF-1101N
最適条件を探そうとして露光時間を変えて(2分ごとに遮光する範囲を広くして)実験しました。
露光時間が長い側では目分量で2~3割り程度ですがパターンが細くなっていました。露光時間が短い側ではパターン間がつぶれてしまうかと思っていましたが、今回の条件では問題ないようです。(むしろ最適条件に近い?)
ウチで露光している光源だと、旧タイプでは1時間以上露光時間を取っていましたが、20分程度でよいというのはなかなかいい感じです。
その他
今回エッチングに画材店で買っておいた腐食液(金属を溶かす液。成分は基板に使うエッチング液と同じ)を使いました。液の鮮度がいいのか、元々濃いのかよくわかりませんが、無茶苦茶早く終了しました。
## ブログに書いたことをきれいさっぱり忘れたりして。
<11月25日追記>
エッチング終了時点の基板の様子をスキャナで画像化しました。大きい基板がテスト後に露光時間30分で作成した2.4GHz関係の基板で、右側の細長い基板が露光時間のテストを行った時のものです。
もっと細いパターンでもエッチングできそうです。エッチングできても、ハンダ付けする段階でパターンを切ったり、剥がしたりしてしまいそうなので実際にはそこまではやらないでしょう。
(ていうかぁ、手作業で部品の位置合わせするのは0.5mmピッチかその下あたりが限界。)
この下の方にプリント基板屋さんのサイトへのリンクが入っています(笑)
このブログの趣旨は「感光基板を使って手作業してもこの程度はできる」です。
フリーの基板設計ソフトとプリンタがあればこのくらいは楽勝ですね。
| 固定リンク
| コメント (0)
| トラックバック (0)
2.4GHz帯の電波を合法的に出そうとした場合、アマチュア無線局として開局手続きを行えば可能と
いう解釈が広まっていましたが、色々と問題があったようです。(トラ技2009年5月号など)
遅ればせながら私も開局申請を行うべく、TSS(株)に書類を送付した所、運用形態などについて聞かれました。
担当の方から色々とうかがった所、総務省からアマチュア業務から逸脱しているのではないかと思われる申請が相次いでいるという話になっていたようです。
上に紹介した記事などではアマチュア局として免許を受ければ遠隔操作などの実験も可能と受け取れた内容が記載されていましたが、総務省ではアマチュア局同士の交信を目的としたものでないと目的外通信となると解釈しているようです。(目的外通信=違法行為です。)
そのような経緯で、送信機につないだ機器から入力したデータを送信し、他のアマチュア局と交信するための設備として申請することにしました。また、以前アマチュア局の免許がおりていたころの設備も一緒に申請することでアマチュア業務を目的とした申請として認められやすくなるのではないかとのアドバイスをいただきました。
ということで、普通にアマチュア無線局として復活するする予定となりました。
## 「アマチュア無線の免許で・・・・って記事があった」ってこと広めたのは・・・・・俺かぁっ!
<11月21日追記>
昨日TSS(株)より技術基準適合の保証(開設)をいただき、無事に申請書を提出しました。
それから、申請書に記載した昔の(と言っても20年くらい前ですが)の無線機を探し出して動作確認しました。なんと、電源は入りますね。中に乾電池が入れたままになっていて粉を吹きまくっていた電池ボックスとか、オプションのスピーカー付きマイク、ヘッドセットも無事動作していました。
ただ、実際に電波が受けられるかどうかはまだわかりません。(マンションの中なので、電波状況最悪。。。)
| 固定リンク
| コメント (2)
| トラックバック (0)
2.4GHz用のバンドモニタを試作しました。
以前から、こんなものがあれば・・・というイメージは漠然とあったのですが、面倒なので後回しにしていました。
ちゃんとケースに入ったものを作ろうとすると面倒なので、ブレッドボード上に組んでみました。

起動した時の画面です。アンテナのアイコンくらい表示すればよかったかも。

左上の2.400GHzから右下の2.450GHzまでを2MHzごとに表示してしています。表示できる文字数が少ないので、周波数はモニタする範囲の上限と下限のみをMHz台の下2ケタだけ表示するようにしました。また、電波の強さは0から7の8段階で表示します。1とか2になっているのはご近所の無線LANか何かでしょう。

送信機から2.428GHzの電波を出してみます。(送信機は画面の外、すぐ近くにあります。)下の段は2.426GHz、2.428GHz、・・・・・・・なので、下の段の2文字目とその前後の値が変わりました。

| 固定リンク
| コメント (0)
| トラックバック (0)
買い物メモ(買ったものメモ)その2です。
買い物と言っても今回も通販ですが。秋葉原までの交通費と店頭在庫がない場合のことを考えると便利なもんです。
以下2点は2.4GHz関係の基板を作成する時、片面基板の裏に貼ってベタアースにするための材料です。
・CUS-25T
タカチ電機産業の導電性銅箔テープです。
長いテープと短いテープがあるのですが、長い方がお買い得なのですがうン千円もするので短い方です。そもそも何十メートルものテープを買っても一生かかっても使い切れる自信がありません。(それでも千円ちょっとします。)
・T-160C
製品名は磁気ガードとなっていますが、要するに銅箔シートの裏面に粘着材を塗ったものです。
それから、感光基板の買い置きがなくなったので買い足しておきました。従来使っていたものが製造中止になっていたので、新製品にしました。この新製品、露光時間が短くなったそうなので、露光中にもたもたしていると失敗しそうです。(感光剤だけ買ってきて、自分で基板に塗ればいいのですが、業務用サイズのものをメーカーから直接購入するしかないようです。)
・NZ-E41K
サンハヤトのクイックポジ感光基板です。板の素材が板厚1mmのCEM-3(コンポジット)のものです。これを100円ショップで買ったダイヤモンド粉末のヤスリでしこしこ削って使っています。
・NZ-M1K
これもサンハヤトの感光基板です。基板部分が厚さ0.085mmのポリイミドフィルムなので、削る苦労なしで軽量化できるのではないかと・・・・・。以前露光時間をうまく管理できずに失敗しているので再挑戦です。
アクチュエータ用のコイルを巻く時に高周波ワニスを使っているのですが、かなりドロっとしていてうまく線材の間に浸透しないので、薄めるための溶剤を買いました。
・H-10P
サンハヤトの基板用フラックス除去液です。変な用途に使わないように>>>>自分。
それはそうと、以下のように「うぎゃ」っとなってしまいました。週末なので来週まで待つしかありません。
その1
ここまで揃えてさーつくるぞぉ~~となって、前もって入手してあったCYWUSB6953を防湿パックから出そうとしたところ・・・・・・・、乾燥剤と湿度インジケータ(湿ると赤丸かなんかが浮きでてくる紙)だけしか入っていなくて、肝心のICが入っていません。うぎゃ。
その2
アマチュア無線局の再免許申請をしようとして手続きの準備を進めていたのですが、総務省さんから送ってもらったWeb申請用のIDとパスワードがしょうもない操作ミス(多分)でいきなりロックされてしまいました。ロック解除は平日の昼間に電話で依頼し、新しいパスワードが郵送されるそうな。申請できるのは早くても来週末か。こっちも、うぎゃ。再免許が下りた後で変更申請を出して2.4GHzの免許を取らないとあれや、これが使えません。面倒臭・・・・・。
| 固定リンク
| コメント (0)
| トラックバック (0)
買い物メモ、というか買ったものメモ。
PMV56XN
MOSFETです。ON抵抗56mΩ、ドレイン電流3.76A(DC)20個まとめ買いで単価13円でした。
FDC6333C
N-chとP-chが1個ずつ入ったMOSFETアレイです。N-ch側がON抵抗150mΩ、ドレイン電流2.5AでP-ch側がON抵抗220mΩ、ドレイン電流-2.0Aです。50個まとめ買いで単価22.4円でした。
上記2点はいつも使っているFETの代替え品狙いです。
TCM809TENB713
バッテリモニタ用の電圧検出ICです。15個まとめ買いで単価34円でした。
どうも調べてみると、一回り小さいもの(TCM809TVLB713)もあるようです。軽量化命!!の方におすすめかも。
NCP562SQ30T1G
出力3.0V、80mAのレギュレータICです。LiPOバッテリーをCypressのCYWUSB6953に直接つなぎたくないので、これで3.0Vにしています。ただし、CYWUSB6953の内部回路を動かす分程度の電流しか取れないため、コイルアクチュエータは直接つながずに上記のMOSFETを介して駆動しています。200mA程度まで取れるICにして、MOSFETを使わないでコイルアクチュエータを直接駆動するのとどちらがいいのかは再考の余地がありそうです。
EL-19-21/BHC-AN1P2/3T
チップタイプの水色(Blue Water Clear)LEDです。20個まとめ買いで単価22円でした。
SST12LP15A
2.4GHz用のパワーアンプICです。送信機をアマチュア無線局の設備として免許を受けるようにすればCYWUSB6953などの出力を増幅した多少なりとも強力な電波を合法的に出せるのではないかとの目論見で買ってみました。CYWUSB6953のハンダ付けもかなり難しいものでしたが、3mm角で16ピンのこれもなかなか苦労しそうです。(手作業でハンダ付けするような部品ではないですね。)
5個買って単価81.1円でした。
※ 送料に2000円かかったことは考えないようにしよっと・・・・。
上記の3~4倍の数をまとめ買いすると、単価が安くなって、送料無料なのですが。
| 固定リンク
| コメント (0)
| トラックバック (0)
え~~~っと、PSoCマイコンスタートアップ(CQ出版)なる本が発売されるそうです。サンプルの基板とMiniProgがついて3990円とか。
どう考えてもMiniProgよりも安い。かも。
PSoC書き込み器の製作で苦労して作ったのはなんだったのか(呆然)
すぐには買わないと思いますが、暮れになったらどうなっていることやら。
| 固定リンク
| コメント (0)
| トラックバック (0)
家のリビングや近所の公園でのテスト結果を元に10号機を修正しています。
まずは真っ白だとつまらないので紙用マッキーで塗装しました。ムラにならずにいい感じです。

エレベータがほとんど動かなかったので、形を変えて両端にヒンジよりも前に出た部分を追加し、さらにその先端に錘をつけてバランスをとりました。また、ヒンジを固めにしていたのをやめて、柔らかくなるようにセロテープに変えました。
外に持っていった時にやたらとへにゃへにゃしていたのでカーボンロッドで補強しました。がちがちに固いです。

その他、いじっているうちに動作しなくなった自作2.4GHz受信機を赤外線の3ch受信機に変え、モーターを7mmオレンジから7mmブルーにして、プロペラをU-80からEP-3020にしました。

| 固定リンク
| コメント (0)
| トラックバック (0)
こことかで色々と改造していたPalm Planeのモータが回らなくなったり、ラダーが動かなくなったりしていたので、思い切って大改造してしまいました。
尾翼回りが重くなったので、前に出したバッテリーが目立っています。尾翼を取り付けているブームを10mmほど短くしてもまだバッテリーを出っ張らせないとバランスが取れません。

尾翼回りが重くなった理由は、自作の受信機と元々ついていたコイルではラダーが全然動かないので、コイルを交換しました。巻数と直径が増えたため、元のコイルの3倍くらいは重そうです。

<10月21日追記>
元のコイルと比べてみました。多分、線径が違うので見た目で比べても無意味ですが。

自作の受信機です。今回は56kHzの受光素子が軽量化もされずにそのままついています。受光素子以外はウチにある一番軽いタイプなのですが。

それから交換したモーターとプロペラです。元々は4mmギアダウンだったものを6mmダイレクトにしています。
スロットル50%くらいの位置で水平飛行するような気がする。(洗濯物テンコモリのリビングでのテストなので広いところでどうなるかは不明)

最後は電源部です。元々はバッテリーを内蔵していて、充電モードと飛行モードをスイッチで切り換えるようになっていたのですが、kobaraさんのメッサーと同じ方式にしました。
中央がマイナス側(バッテリーと受信機で共通)、前がバッテリーのプラス、後が受信機のプラスになっています。
飛ばす時は前と後の端子をショートさせます。

充電用の接続コード作らなきゃ・・・・・・。
<10月21日追記>
作りました。真ん中がマイナス、端がプラスなので逆につないで壊すことはないはずです。逆に刺した場合は受信機側に電源がつながるので、動作からすぐにわかるはずです。
熱収縮チューブは近所の100円ショップで長さ10cmで太いのと細いのが6色セットで売ってました。

| 固定リンク
| コメント (2)
| トラックバック (0)
3枚中1枚だけ動作した2.4GHz3ch受信機を使って10号機を製作しました。
赤外線と比べて重い2.4GHzの受信機を使うため、全長・全幅ともにおよそ32cmと大きめです。
電気部品関係の実装状態です。
電池や基板をテープでベタベタ張り付けるのはみっともないので、今回はEPPの板に穴をあけてそこに埋め込みました。メンテナンスを考慮して全部を隠さず、取り出せるようにしています。(電線の固定などにテープを使っているので、完全にテープを使わなくなったわけではありませんが。)
モータをつないだままだとプログラムを書き換えられないのでモータを切り離せるように中継コネクタをかましてあります。

動作確認です。エレベータが気持ち分しか動いてない。。。。
| 固定リンク
| コメント (0)
| トラックバック (0)
PSoCを使った3ch受信機を作りました。
今回のものは3ch化、軽量化、バッテリモニタICレスを狙ったのですが、どんな結果だったのか・・・・・。
・3ch化
CYWUSB6953は内蔵しているデジタルブロック、アナログブロックともに普通のPSoCと比べて少ないため、少し苦労しました。具体的には、8bitのPWMを3系統使いたかったのですが、これを全てチップの同じ側に出すことができなかったため、パターン設計で苦労して(というかギブアップして)ジャンパ線が1本でてしまいました。まあ両面でパターン設計すれば楽勝なのですが、片面の感光基板と裏面の銅箔テープを使う構成では基板を大きくしないとパターンを引けません。
4ブロックあるデジタルブロックのうちの1ブロックをADコンバータに使うため、3chまでしかハードによるPWM制御ができません。プログラム自体がソフトPWMを意識した構造になっていないので、4chにするためにはADコンバータの使用をあきらめなければなりません。(バッテリモニタICが別途必要になります。)
・軽量化
上の写真にある通り、「PSoC + 2.4GHz その4」で作った2ch受信機と変わらず、軽量化はできませんでした。基板を「PSoC + 2.4GHz その4」の半分位に削っての結果なので、部品と半田の重量は逆に増えていることになります。プログラム書き込み用のピンの位置とか基板の外形を変えていないので、それほど軽量化できるとは考えていませんでしたが、基板を削った分が他で帳消しになっているのはかなり残念です。
・バッテリモニタレス化
CYWUSB6953のADコンバータユーザーモジュールで電圧検出すること自体は既に実現していたので、基板からバッテリモニタICを削除するだけなので簡単でした。また、バッテリモニタICを取り去った跡地に1ch分の回路を追加できました。
・その他
CYWUSBはチップ裏側の金属部分をしっかり0Vにつながないとうまく動きません。CPU部分はそれとは関係なく動作するようです。最初この部分がうまく出来ていなかったようで、プログラムの書き込みや状態表示用のLEDは動作しているのに、無線部分がまったく動かずかなり悩みました。(ついでに3個作ったうちの2個はCYWUSB6953の裏側の金属部分を0Vにつなごうとして失敗し、壊してしまいました。)
次の課題は電気が流れていない状態の時に垂れ下がらないエレベータの工作です。前に数回トライしたのですが、一度もうまく出来たことがないので。(これが出来ないと3ch受信機が無駄になってしまう・・・・・・。)
あ、、、、回路図とPCBエディタで書いたパターン図です。参考になるかどうか。
| 固定リンク
| コメント (0)
| トラックバック (0)
衝動買いしてしまいました。
末っ子のおむ○を買いに行った市内のといざらすで500円しませんでした。
家のなかでも遊べるし、最悪でも赤外線送信機と受信機とラダーのセットが500円と思えばOKかも。
ヘリ関係もだいぶ安くなってきたし、トリも2000円だったし、次はなにかな。
暗くてわかりにくいですがスカート部分がふんわぁ~~と膨らむ様子が結構かわいいかも。
壁に突き当たると身動きとれなくなります。
<10月17日追記>
三女(5才)の玩具になってしまった。。。。。。対象年齢は15才以上ですが。少しずつ進んではスロットルを絞っていったん停止させるなど、私よりうまく操縦しているかも。
現在は充電その他の管理を任されています。(笑)
| 固定リンク
| コメント (0)
| トラックバック (0)
送信機、受信機ともに落ち着いてきたので、受信機を機体に搭載してみました。
機体そのものは昨年暮れにYSFCの飛行会に参加させていただいた時のものですが、PICを使った赤外線受信機と比べて消費電流が増えているのでバッテリーを大きなものに交換しています。(本当は逆接続防止のためにバッテリーのコネクタを変えたのですが、変えたバッテリーがまだ1個しかないため。)

搭載した受信機の様子です。プロペラ付近の胴体がふにゃふにゃです。補強とプロペラ保護のためにアルミパイプのガードを付けていますが、着地するたびにアルミパイプの曲がり具合が変わってしまい補強になっていません。機体の上側に「竹くし」でも貼りつけますか・・・・・・。(よって今晩のオカズは焼きとりor串焼きに決定・・・・しません。)

| 固定リンク
| コメント (0)
| トラックバック (0)
PSoCで455kHzの赤外線PCM信号を出す回路とソフトについて説明します。
赤丸でかこったPWM8_1ユーザーモジュールで信号を発生します。PWM8_1のクロックには48MHz(SYSCLK*2)を入力し、Enableは常時PWM信号を生成するようにHighにします。PWM8_1の周期は105、compare値(PWM信号のDuty)には0を設定します。出力はCompareOutの信号を38kHzのPPM信号とORして出力します。

ソフトはこんな感じです。
全部のチャンネルのデータを受信するごとにTXBUFにPCM信号(ON/OFF情報)をセットしてから呼び出しています。
TXBUFには48μsごとに赤外線をONにするか、OFFにするかを表す情報を格納します。
ONにする場合はON時のPWM信号のcompare値(35)を入れておき、OFFにする場合はcompare値(0)を入れておきます。データの末尾には終わりを表すための0xFFを入れておきます。48μsごとに「PWM8_1_WritePulseWidth(tmp);」を行ってPWM信号のDutyを変化させています。
やりたくはなかったのですが、48μsごとの割込みでは処理できなかったため、ソフトでタイミングを取るようにしました。(CPUを24MHzで動かせば大丈夫かもしれないのですが、そうするとI2Cで接続したLCDが制御できないため。)
void Send_Pulse(void)
{
static BYTE tmp;
TX_SND_count = 0;
tmp = TXBUF[TX_SND_count];
while(tmp != 0xff){
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");
asm("nop");
PWM8_1_WritePulseWidth(tmp);
TX_SND_count++;
tmp = TXBUF[TX_SND_count];
};
}
TXBUFにはこのようなデータが入っています。
TXBUF[] = {35,35,35,35,35,35,35,35,35,0,35,0,35,0xFF};
上記は「9ビットON,1ビットOFF,1ビットON,1ビットOFF,終了」を表しています。実際にはプロポから入力されたデータや選択されているバンドなどに従って生成されたデータを入れておきます。
実際の送信データ設定処理はこんなふうになりました。
CONFIG_ROM[PCM455CH]はバンド(チャンネル)の情報、txCH_Data[]はプロポから入力されたPPM信号のパルス周期(1100μsが0x00、1900μsが0xFF)が入っています。
下記ではラダー(txCH_Data[3])とスロットル(txCH_Data[2])のデータを各8ビット送信しています。
//PCM2用の送信データ設定処理
void PCM2_data_set(void)
{
int i;
unsigned int tmp;
unsigned int mask;
TX_SET_count = 0; //0.048ms * 9 ON
TXBUF_SET1(); //1
TXBUF_SET1(); //2
TXBUF_SET1(); //3
TXBUF_SET1(); //4
TXBUF_SET1(); //5
TXBUF_SET1(); //6
TXBUF_SET1(); //7
TXBUF_SET1(); //8
TXBUF_SET1(); //9
TXBUF_SET0(); //0.048ms OFF
TXBUF_SET1(); //0.048ms ON
TXBUF_SET0(); //0.048ms OFF (2ch)
switch(CONFIG_ROM[PCM455CH]){
case Ch_A : TXBUF_SET0();TXBUF_SET0();TXBUF_SET0();parity = 0;break;
case Ch_B : TXBUF_SET0();TXBUF_SET0();TXBUF_SET1();parity = 1;break;
case Ch_C : TXBUF_SET0();TXBUF_SET1();TXBUF_SET0();parity = 1;break;
case Ch_D : TXBUF_SET0();TXBUF_SET1();TXBUF_SET1();parity = 2;break;
case Ch_E : TXBUF_SET1();TXBUF_SET0();TXBUF_SET0();parity = 1;break;
case Ch_F : TXBUF_SET1();TXBUF_SET0();TXBUF_SET1();parity = 2;break;
case Ch_G : TXBUF_SET1();TXBUF_SET1();TXBUF_SET0();parity = 2;break;
case Ch_H : TXBUF_SET1();TXBUF_SET1();TXBUF_SET1();parity = 3;break;
};
TXBUF_SET0(); //0.048ms OFF
for(i=2;i<=3;i++){
tmp = txCH_Data[i];
mask = 0x80;
while (mask != 0){
if ((tmp & mask) != 0){
TXBUF_SET1();
parity++;
}
else {
TXBUF_SET0();
};
mask = mask >> 1;
};
TXBUF_SET0(); //0.048ms OFF
};
if (pairing_req > 0){
pairing_req--;
TXBUF_SET1(); //0.048ms OFF
parity++;
}
else {
TXBUF_SET0(); //0.048ms OFF
};
if (resv_req > 0){
resv_req--;
TXBUF_SET1(); //0.048ms OFF
parity++;
}
else {
TXBUF_SET0(); //0.048ms OFF
};
//parityには1だったビットの数が入っている。偶数だったらパリティビットが1
if ((parity & 0x01)==0){
TXBUF_SET1();
}
else {
TXBUF_SET0();
};
TXBUF_SETE();
}
void TXBUF_SET(char c)
{
if (TX_SET_count < TXBUF_SIZE){
TXBUF[TX_SET_count] = c;
TX_SET_count++;
};
}
void TXBUF_SET1(void)
{
TXBUF_SET(IR_PWM16_CNT); //IR_PWM16_CNT=35
}
void TXBUF_SET0(void)
{
TXBUF_SET(0);
}
void TXBUF_SETE(void)
{
TXBUF_SET(0xff);
}
<10月18日追記>
上記のPSoCの内部回路ですが、ひとつ前の版のものです。IRラジコン☆プログラム倉庫にアップしてあるプロジェクトのものとは一部異なります。やっていることは変わりませんが、ユーザーモジュールの配置などが変わっています。
| 固定リンク
| コメント (0)
| トラックバック (0)
PSoCで38kHz(56kHz)の赤外線PPM信号を出す回路とソフトについて説明します。
最初の説明とPSoCの内部回路だと赤外線が垂れ流しされてしまうことがあるため、修正しました。(10月18日)
赤丸でかこったPWM16_2ユーザーモジュールで信号を発生します。PWM16_2のクロックには48MHz(SYSCLK*2)を入力し、Enableにはプロポから入力された信号(ただし、正論理となるようにしてからPSoCに入力)を入力します。出力はCompareOutの信号を455kHzのPCM信号とORして出力します。
PSoCに入力されたはDigBufユーザーモジュールを通ってユーザーモジュール群の出口のモジュールへつながれます。(赤線)ここで常時ON/OFFしている_PWMユーザーモジュールから信号(青線)とANDを取って、PPM信号がONのときだけ38kHzまたは56kHzでON/OFする信号を生成します。(黄線)この信号は455kHzのPCM信号発生用のユーザーモジュール出力とORを取ってPINに出すようにするため、いったん入力側の内部配線に戻され、ぐるりとまわって出力されます。
ソフトはこれだけです。(10月18日 1行追加)
main(void)
{
PWM16_2_Start();
}
main(void)
{
PWM16_2_Start();
}
実際には他のモードとの切り換えやLCDの制御などがあって色々と複雑ですが、本質的にはこれだけです。
赤外線のPWM周波数とPWM周期をハードの設定で済ませて、赤外線のON/OFFはPWM16_2ユーザーモジュールのEnable入力に入れたプロポの信号でやっているので、ソフトでやらなければならないことはPWM16_2ユーザーモジュールとDigBuf1ユーザーモジュールを起動する関数を呼び出すだけです。
赤外線送信アダプタのソフトとしては多分「世界最短」ではないでしょうか。
(PSoCデサイナーの中の人がやっていることに目をつぶってしまえばですが。)
他の周波数でも38kHzも56kHzもPWM周波数とPWMパルス幅の設定を変えるだけでやることは一緒です。
※ このことに気がついていなくて、プロポ壊しました。(すぐに修理できましたが。)
| 固定リンク
| コメント (0)
| トラックバック (0)
最近のコメント