---自作MPGワイヤレス化 (9)---

 受信側の基板が完成し、動作確認をしました。今日、丸一日
 かかってやっと動作の確認ができました。
 今回、MCLREの設定ではまりました。
 デバック用につけたLEDがプログラムの開始で、点灯してくれ
 ません。いつも使ってる基板では、きちんと動作してくれるの
 であれこれやりました。幸い、RA5ピンの近くにLEDをつけ
 てましたので、LEDを触ると、つきました。あれ、と思いあれ
 これやっていると、RA5ピンをさわると点灯することが分かり
 ました。RA5ピンは、MCLRE(リセットピン)わりあてられてい
 ます。CONFIGでは、MCLRE=ONの設定で、外部ピンによ
 るリセットが有効になっていました。
 いつも使ってるテスト用の基板は、RA5ピンがリセット用に、
 プルアップされていました。今まで気づきませんでした。
 MCLRE=OFFにして、コンパイルし直すと、デバッグ用の
 LEDがやっとつきました。

 

 自作MPG→PIC→Xbee・・・・・(キャラクタ送信)・・・
       Xbee→PIC→SS
 の経路の作成が8割完成です。
 明日は、受信側で、生成するパルスの確認をします。
 切り替えは、フォットカプラーを介して、該当のピンをグランド
 に落とすことでします。このテストもやります。

---自作MPGワイヤレス化 (8)---

 ほぼでき上がったテスト基板で、ワイヤレス送信のテストを
 しました。

 
 有線部分をワイヤレスに置き換えても、目で見えるタイムラグ
 は見えないようです。

 PICの処理速度も気になりましたが、この程度の信号だと、
 ほぼリアルタイムで処理ができるようです。
 データの送受信で、処理しきれずに取りこぼしがあるのか
 もしれませんが、確かめるまでもないかなと思います。
 回路図といえるほどのものではありませんが、覚え書き
 の送信の回路図です。MPGのA相B相の信号から、DIRの
 信号を作るため、あまっていた、74HC74の
 DフリップフロップのICを使ってます。電源と信号のやり取り
 の線を結んだだけの回路です。

 
 本当は、自作のMPGに全部組み込んでしまえば、新たな
 プログラムを作る必要もなかったのですが、行き当たりばっ
 たりの私の性格そのものですね。

---自作MPGワイヤレス化 (7)---

 テスト基板とテストプログラムの検証がおわりました。
 無事、目的のキャラクターをRS232C経由でPCのターミナル
 ソフトに送信できました。
 切り替えの判定をするのに、「状態変化割り込み」を
 使用しましたが、どうも、隣のポートまで影響をうけるよう
 で、「状態判定」のif文をいれて、思った動作になりました。
 送信側の問題か、受信側の問題かは、わかりませんでし
 た。修正とテストのすんだプログラムです。インクルードし
 ている「uart.h」と「uart.c」は、諸兄の作られたものを
 そのまま使用してます。
       修正main.c
 有線での接続では、MPGのダイヤルを結構早く回しても
 送信は、ついていけるようです。

 

 「1~7」の数字と、「f」と「b」のキャラクターの送信をしている
 ようすです。このキャラクターを受信して、それに応じた処理
 をします。受信側のプログラムはできていますので、
 ワイヤレスでの、送受信のテストをします。

---自作MPGワイヤレス化 (6)---

 テストに使う送信用のプログラムとテスト基板がほぼ完成
 しました。
 基板にICはさしていませんが、こんなレイアウトになります。

 

 明日は、次のプログラムをICに書き込んで、テストをする
 予定です。
     今回のプログラムです。main.c
 
 ハードに頼り切っていますので、シンプルなプログラムです。 
 TXの線をRS232C経由でPCにつなぎ、プログラム通りに
 「1~7」の数字と、「f」と「b」のキャラクターの送信ができて、
 ターミナルの画面「1~7」の数字と、「f」と「b」のキャラクター
 の表示ができると無事成功です。
 まあ、一度では成功しないと思いますし、原因を探って
 何日か悩むようかなと思います。
 今回は、気がかりが一つ。今までののPICライターは、今回
 のPICには対応してないので、PICKIT3を使いますが、うまく
 書き込めるかどうか、心配です。
 それに、プログラムが動いているか確認するための正常動作
 する基板がないのです。
 トライアンドエラーでやるようです。

---自作MPGワイヤレス化 (5)---

 今回自作MPGのワイヤレス化にともなって購入した部品です。

 

 一番下のものは、Xbeeの設定を変えるために、USB経由で
 PCに接続するためのアダプターで、○月製です。
 一番上の変換基板は、Xbeeに3.3Vの電源を供給するため
 の変換基板です。この変換基板で、電源とデーターの受け
 渡しのレベルの変換をします。変換されるのは、TX(送信)
 RX(受信)だけです。両脇は,言わずとしれたアンテナです。
 一番下のは○月で、後のは、○イッチサイエンスから、通販
 でもとめました。
 全部、○イッチサイエンスでもよかったのですが、
 インターフェースの基板は、高かったので、○月のにしました。

 一番最初にしたのXbeeの設定を変えるためのXCTUの
 インストールですが、詳細は諸兄のHPに譲ることにします。
 このソフトを使って、Xbeeの設定を、変更しました。
    一つ目・・・・・・・・・ZigBee Routor AT
    二つ目・・・・・・・・・ZigBee Coordinater AT
 にします。パラメーターを変えるのではなく、ファームウエア
 そのもを書き換えているようです。
 ZigBee Coordinater ATへの書き換えはうまくいきましたが、
 ZigBee Routor ATへの書き方に失敗し、PCに接続した
 インターフェース基板から、本体を検索できなくなってしまい
 ました。ちょっと、焦りましたが、XCTUをよく見ると、
 Xbee Recoveryの項目があり、ここから、ファームウエア
 を書き戻すことができ、一安心です。
 この辺の操作も、諸兄のHPn記載がありますので、そちら
 にゆずることにします。

---自作MPGワイヤレス化 (4)---

 部品がとどいたので、あれこれ、やりました。
 Xbeeの設定をするのに、XCTUというソフトを使いますが、
 新しいバージョンになっていて、当てにしていた諸兄のHP
 のバージョンと違ってしまって、操作をするのに戸惑いまし
 た。
 時間がかかりましたが、やっと、シリアル通信部分をワイヤ
 レスに置き換えることができました。
 PC→Xbee・・・・ワイヤレス・・・・Xbee→PIC
 という構成で、PCからの信号で、PICをコントロールすること
 ができました。
 
 キーボードから、数字を打ち込んでいます。その数字によっ
 て、LEDの点灯をコントロールしています。A相B相のパルス
 の生成もオシロで確認しましたら、大丈夫でした。
 
 どの程度の応答速度があるのか不明ですが、見通しがたち
 ました。
 構成の詳細は、後日、掲載いたします。

---自作MPGワイヤレス化 (3)---

 やっと部品が明日届きそうです。今は、PCからUSBの変換
 を通してRS232C経由で、PICの受信のテストをしています
 が、RS232Cの部分をワイヤレス化して,実験をしようと思い
 ます。
 受信側PICのプログラムは、一応完成ですが、実験しなが
 ら、A相B相のパルスの調整が必要になるかもしれません。
 一応、動いたプログラムです。
       main.c
 送信に使うPICですが、割り込みを使った送信をしたいと
 思ってましたが、諸兄の例題がちょっと難しくで、とりあえず
 ポーリングで、組んでみようと思います。

---自作MPGワイヤレス化 (2)---

 MPGのワイヤレス化をするにあたって、PICのプログラムを
 簡単にするため、今まで使ったことのないPICを選定しまし
 た。
 送信側に、16F1783を使い、受信側に16F88を使おう
 と思います。
 16F1783という28PのPIC選定の理由は、状態割り込み
 に使える端子が、沢山あることです。18ピンのものも検討
 しましたが、状態割り込みとUART割り込みのPINがダブっ
 ているので、状態割り込みを7本とれません。
 16F1782は28PINのうち、状態割り込みにつかえるのが
 なんと、25PINあります。そのうち使うのが7本を状態割り
 込みで使います。それに、1本を外部割り込み(パルスの
 タイミング取り込み)に使い、後、2本を、CW、CCWの判定
 に使います。
 合計、7+1+2+VSS+VDDですから。12本だけつかい
 ますから、贅沢な使い方だと思います。

---自作MPGワイヤレス化 (1)---

 リモコンよろしく自作のMPGをワイヤレス化するという、
 無謀な取り組みをしています。
 赤外線通信等、信号を変調して伝送するのは、ちょっと
 できませんが、RS232Cの延長で、キャラクターの送信
 は、有線でできました。
 この部分をワイヤレス化すれば、実現できそうです。
 そのために、受け手のPICで、A相B相のパルスを生成します。
 なかなか実現できませんでしたが、やっと、エンコーダーの
 パルスと近い波形を生成することができました。
 
 送り手のPICから、1バイトのキャラクターコードを送り、
 受け手のPIC側で、それに応じた処理を行います。
 一番の難物がパルスの生成でした。
 キーボードから操作してますが、一回キーボードのキーを押
 すと一回だけパルスが生成できます。連続で押すと、連続
 
 で生成できました。
 有線のRS232Cで送ってますので、ワイヤレス化した時の
 応答速度が気になるところですが、まあ、DIYの範囲での
 使用ですので、それほど気にしなくてもいいと、思うことに
 します。
 プログラムは、当初、割り込みで処理する予定でしたが、
 ポーリングの処理でも、それほど変わりないようなので、
 通常のものに変更しました。
 プログラムは、後日掲載します。

---ルーレット表示製品版---

 MPGをステッピングモーターに直接つないでコントロール
 するアダプターを作成するにあたって、LEDを使った表示を
 ルーレット風にしましたが、同じようなもので、製品版が
 あるんですね。
 
 また、○ジナルマインドさんにも、A相B相をCW・CCWの信号
 に変換するIC(16F84A)が販売されているようです。
 ドライバーの入力がCW・CCW(DIR)しかないもののアダプター
 にするようです。
 私と同じ目的にも使えそうです。
 全部ソフトでコントロールしてるんですね。
 ソースリストでも見てみたい気がしますが、きっと、
 アセンブラーでしょうね。