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

 外部セラロックを使わないで、内部PLLを使って、32Mhzで
 動作させるために、16F1827に16F88のプログラムを移
 植しました。
 今回、移植するのに、丸々3日ほどかかりました。はまっ
 てしまったのは、二つでした。
 一つ目は、大いなる勘違いで、
     for( ; ; )
 の使い方を誤ってました。そのため、A相、B相のパルスが
 正しく発生できませんでした。16F88で作った時は、パルス
 の発生を前後の余裕をもってしていたので、その余裕が、
 ロジックの誤りを吸収してくれたようです。初期値1~5まで、
 5回のループを作りたいのに、
   for(i=0;i<5;i++)
 のような記述をしてました。これでは、0~4までの5回の
 ループになってしまいます。正しくは、
   for(i=1;i<=5;i++)
 でした。
 もう一つは、原因がよく分からないのですが、クロックを早く
 すると、PORTが思った動作をしてくれなくなるようで、
 PORTレジスタとLATレジスタ
 
 と
 PICとMikroC
 
 に記事がありました。
 早速、LATレジスタを使って組み直すと、見事動きました。
 動いたプログラムです。ゴミが沢山残ってます。
  main.c
 特に、メインの処理では、switch分とif分が混在してます。
 原因をあれこれ探るためにやった名残です。
 もしかして、このように、PICは癖があるのかもしれませんね。
 AVR等は、どうなんでしょうか。
**************************
*           追記           *
**************************

 もしやと思い、諸兄の記事を参考に、ポートのビット操作
 の間に’nop’を一ついれて動かして見ました。
 あれほどなやんだのが嘘のように、通常の書き込みで、
 LATレジスタを使わないで、動きました。
   ’nop’をいれたプログラムです。
     main.c
 やはり、諸兄はすごい。

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

 やっと動作確認できた、送受信の基板を使って、SS経由で、
 MACHを動かしてみました。
 不具合が出るかなと思いましたが、あっけなく動いてしまい
 ました。
 MACHの数字の変化は、有線でつないだMPGに比べてみて、
 若干もたつくような印象でしたが、とりあえず動くことがわ
 かりました。
 今回の回路です。手直した方がいいところがあるかと思いま
 すが、一応動作したもの覚え書きです。

 

 今回は、エンコーダーが作り出した信号でなくて、PICで作っ
 た信号をSSに入れてますので、両者をオシロで比較してみ
 ました。

 

 PICで作った信号の振幅がやや狭いようです。
 広くするのは、簡単ですが、その分、応答速度が遅くなるような
 気がするので、このままにしようと思います。
 また、今回は、UART(USART)の通信速度は、9600bpsに
 しました。PIC周期を32Mhzにすれば、倍の19200bpsに設定
 しても大丈夫だと思いますので、後日変更してみようと思います。
 ただ、受信側に使ってる16F88は、20Mhzまでなので、
 ついでに購入しておいた16F1827に置き換えてみようと思い
 ます。幸い、RXとTXのピンは、プログラムから変更できるようで
 すが、16F88と同じ設定にできるようです。

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

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

 

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

---Linksatationの不具合---

 NET経由でリンクステーションにアクセスできるように設定
 してありましたが、NET経由でアクセスができなくなりました。
 家にも戻って、ネットワーク内部からアクセスしましたが、
 これもだめでした。
 NASナビゲーターからも、Linksatationがみつからなくなり
 ました。ちょっと焦りました。

 

 念のため、電源を落として再起動しました。
 すると、アクセスができるようになり、NASナビゲーター
 からも見つかるようになりました。

 

 原因は分かりませんが、ソフトの不具合なんでしょうか。
 時々、再起動が必要なんでしょうかね。

---皮膚病の治療---

 我が家の看板犬・バーニーズマウンテンドッグのレオは、
 どういう訳か、皮膚が弱かったり、膵臓がわるかったり、
 アレルギーがあったり、いろんなものをいってに引き受けて
 しまってます。
 例年、夏がになると、皮膚病がひどくなるのですが、今年は
 ちょっと遅れて、今頃、皮膚病がひどくなって、体中、口で
 咬んで、掻いています。
 ちょっと前から、皮膚病の薬とシャンプーで手当をしています。
 この薬の正式の名前はわかりませんが、とてつもなく高く、
 50ccぐらいで、8000円ほどします。

 

 この薬を塗って、4時間ほどおいてから、シャンプーをします。
 その間、なめるといけないので、特別製?のエリザベスを
 して、ケージに入れておきます。

 

 こういう、超大型犬用?(体重現在50kg)の物は、
 日本には、あまりおいてありません。
 このエリザベスは、アメリカから個人輸入したものです。
 7~80cmほどの直径があります。
 なれたもので、このエリザベスを顔のところへもっていくと、
 自分で頭をいれます。
 写真のように情けない顔になるのですが、少しでもかゆみ
 がおさまってくれるようにと、
 シャンプーしてます。

---ナビのアップデート---

 久しくやってなかったのですが、本日、カーナビの無料
 アップデートの案内がきたので、アップデートを行いま
 した。
 アップデートに使うアプリは、古いPCにしかないので、
 現有のPCにアプリのDLからです。
 地図データをDLするのに約、20分程度かかりました。
 SDカードに保存ですが、SDカードをカーナビに挿して、
 データを書き換えるのにやく15分程度かかりました。
 来年の1月で無料アップデートの期限がきれます。
 アップデートは、後一回ですね。
 アップデートしたナビで、実家行ってみると、途中、ナビ上
 ではなかった道が、きちんと表示されてました。
 なんていうか側溝に設置されている、大きめの構造物まで
 表示が出るようになってました。
 衛星写真や実地等で、調査して、
 つくられるんでしょうね。

---自作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記載がありますので、そちら
 にゆずることにします。