COUNTER



新BLOG
 
新BBS
MN-BBS
旧BBS
CALENDAR
S M T W T F S
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30     
<<  2024 - 04  >>
 
LOGIN
現在モード: ゲストモード
USER ID:
PASS:
CATEGORIES
ARCHIVES
PROFILE
OTHERS
    処理時間 0.410028秒
POWERED BY
POWERED BY
ぶろぐん
DESIGN BY
ブログンサポート
          
<<前の10件 | 1 | ... | 12 | 13 | 14 | 15 | 16 | 17 | 18 | ... | 60 | 次の10件>>

---自作MPGワイヤレス化 (8)---
 ほぼでき上がったテスト基板で、ワイヤレス送信のテストを

 しました。

 

 有線部分をワイヤレスに置き換えても、目で見えるタイムラグ

 は見えないようです。

 PICの処理速度も気になりましたが、この程度の信号だと、

 ほぼリアルタイムで処理ができるようです。

 データの送受信で、処理しきれずに取りこぼしがあるのか

 もしれませんが、確かめるまでもないかなと思います。

 回路図といえるほどのものではありませんが、覚え書き

 の送信の回路図です。MPGのA相B相の信号から、DIRの

 信号を作るため、あまっていた、74HC74の

 DフリップフロップのICを使ってます。電源と信号のやり取り

 の線を結んだだけの回路です。

 

 本当は、自作のMPGに全部組み込んでしまえば、新たな

 プログラムを作る必要もなかったのですが、行き当たりばっ

 たりの私の性格そのものですね。Webはくしゅ

| mabo52 | 22:23 | comments (0) | trackback (0) | DIY:: -MPGワイヤレス |
---自作MPGワイヤレス化 (7)---

 テスト基板とテストプログラムの検証がおわりました。

 無事、目的のキャラクターをRS232C経由でPCのターミナル

 ソフトに送信できました。

 切り替えの判定をするのに、「状態変化割り込み」を

 使用しましたが、どうも、隣のポートまで影響をうけるよう

 で、「状態判定」のif文をいれて、思った動作になりました。

 送信側の問題か、受信側の問題かは、わかりませんでし

 た。修正とテストのすんだプログラムです。インクルードし

 ている「uart.h」と「uart.c」は、諸兄の作られたものを

 そのまま使用してます。

       修正main.c

 有線での接続では、MPGのダイヤルを結構早く回しても

 送信は、ついていけるようです。

 

 「1~7」の数字と、「f」と「b」のキャラクターの送信をしている

 ようすです。このキャラクターを受信して、それに応じた処理

 をします。受信側のプログラムはできていますので、

 ワイヤレスでの、送受信のテストをします。Webはくしゅ

| mabo52 | 10:41 | comments (0) | trackback (0) | DIY:: -MPGワイヤレス |
---自作MPGワイヤレス化 (6)---
 テストに使う送信用のプログラムとテスト基板がほぼ完成

 しました。

 基板にICはさしていませんが、こんなレイアウトになります。

 

 明日は、次のプログラムをICに書き込んで、テストをする

 予定です。

     今回のプログラムです。main.c
 
 ハードに頼り切っていますので、シンプルなプログラムです。 


 TXの線をRS232C経由でPCにつなぎ、プログラム通りに

 「1~7」の数字と、「f」と「b」のキャラクターの送信ができて、

 ターミナルの画面「1~7」の数字と、「f」と「b」のキャラクター

 の表示ができると無事成功です。

 まあ、一度では成功しないと思いますし、原因を探って

 何日か悩むようかなと思います。



 今回は、気がかりが一つ。今までののPICライターは、今回

 のPICには対応してないので、PICKIT3を使いますが、うまく

 書き込めるかどうか、心配です。

 それに、プログラムが動いているか確認するための正常動作

 する基板がないのです。

 トライアンドエラーでやるようです。Webはくしゅ

| mabo52 | 22:54 | comments (0) | trackback (0) | DIY:: -MPGワイヤレス |
---自作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記載がありますので、そちら

 にゆずることにします。Webはくしゅ

| mabo52 | 12:33 | comments (0) | trackback (0) | DIY:: -MPGワイヤレス |
---自作MPGワイヤレス化 (4)---
 部品がとどいたので、あれこれ、やりました。

 Xbeeの設定をするのに、XCTUというソフトを使いますが、

 新しいバージョンになっていて、当てにしていた諸兄のHP

 のバージョンと違ってしまって、操作をするのに戸惑いまし

 た。

 時間がかかりましたが、やっと、シリアル通信部分をワイヤ

 レスに置き換えることができました。

 PC→Xbee・・・・ワイヤレス・・・・Xbee→PIC

 という構成で、PCからの信号で、PICをコントロールすること

 ができました。

 

 キーボードから、数字を打ち込んでいます。その数字によっ

 て、LEDの点灯をコントロールしています。A相B相のパルス

 の生成もオシロで確認しましたら、大丈夫でした。
 
 どの程度の応答速度があるのか不明ですが、見通しがたち

 ました。

 構成の詳細は、後日、掲載いたします。Webはくしゅ

| mabo52 | 23:04 | comments (0) | trackback (0) | DIY:: -MPGワイヤレス |
---自作MPGワイヤレス化 (3)---
 やっと部品が明日届きそうです。今は、PCからUSBの変換

 を通してRS232C経由で、PICの受信のテストをしています

 が、RS232Cの部分をワイヤレス化して,実験をしようと思い

 ます。

 受信側PICのプログラムは、一応完成ですが、実験しなが

 ら、A相B相のパルスの調整が必要になるかもしれません。

 一応、動いたプログラムです。

       main.c

 送信に使うPICですが、割り込みを使った送信をしたいと

 思ってましたが、諸兄の例題がちょっと難しくで、とりあえず

 ポーリングで、組んでみようと思います。Webはくしゅ

| mabo52 | 22:59 | comments (0) | trackback (0) | DIY:: -MPGワイヤレス |
---自作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本だけつかい

 ますから、贅沢な使い方だと思います。Webはくしゅ

| mabo52 | 00:32 | comments (2) | trackback (0) | DIY:: -MPGワイヤレス |
---自作MPGワイヤレス化 (1)---
 リモコンよろしく自作のMPGをワイヤレス化するという、

 無謀な取り組みをしています。

 赤外線通信等、信号を変調して伝送するのは、ちょっと

 できませんが、RS232Cの延長で、キャラクターの送信

 は、有線でできました。

 この部分をワイヤレス化すれば、実現できそうです。

 そのために、受け手のPICで、A相B相のパルスを生成します。

 なかなか実現できませんでしたが、やっと、エンコーダーの

 パルスと近い波形を生成することができました。

 

 送り手のPICから、1バイトのキャラクターコードを送り、

 受け手のPIC側で、それに応じた処理を行います。

 一番の難物がパルスの生成でした。

 キーボードから操作してますが、一回キーボードのキーを押

 すと一回だけパルスが生成できます。連続で押すと、連続
 
 で生成できました。

 有線のRS232Cで送ってますので、ワイヤレス化した時の

 応答速度が気になるところですが、まあ、DIYの範囲での

 使用ですので、それほど気にしなくてもいいと、思うことに

 します。

 プログラムは、当初、割り込みで処理する予定でしたが、

 ポーリングの処理でも、それほど変わりないようなので、

 通常のものに変更しました。

 プログラムは、後日掲載します。Webはくしゅ

| mabo52 | 11:24 | comments (7) | trackback (0) | DIY:: -MPGワイヤレス |
---新しい開発環境(8)---
 また、また、はまりました。二日ほど、あれこれ悩みました

 が結局、プログラムのミスでした。

 <はまったことその1>===============

    タイマー0とタイマー1の割り込みで、割り込みの関数

   部分で、初期値の設定を入れる部分が違ってました。

   switch文で、本来なら、switchを抜けてから再設定

   しなければならないのに、switchのなかに書いてました。

        void interrupt InterReceiver( void ){
            if(TMR1IF==1){
              if(ccw==0){
                  if(p_count<6){
                     p_count++;
                  }
                  switch(p_count){
                      case 1:cwOut=0;
                           ccwOut=0;
                           break;
                      case 2:cwOut=1;
                           ccwOut=0;
                           break;
                      case 3:cwOut=1;
                           ccwOut=1;
                           break;
                      case 4:cwOut=0;
                           ccwOut=1;
                           break;
                      case 5:cwOut=0;
                           ccwOut=0;
                           break;
                      case 6:cwOut=0;
                          ccwOut=0;
              TMR1L = tMr1_Low;//TMR1初期値
                TMR1H = tMr1_Hight;//

                            break;
         }

        }
        (本来の位置)
          TMR1IF=0;//割り込みフラグクリアー
    }


  TMR1L = tMr1_Low;//TMR1初期値
     TMR1H = tMr1_Hight;//


  の位置が問題でした。6回割り込みさせて、一連の動作が

  が終わるように組みましたが、初期値の設定を変えても

  割り込みの時間がほとんど変わりませんでした。

  なんのことはない、割り込みで、6回目に戻ってくる時に

  だけ初期値が設定されますので、1回だけは、期待した

  時間での割り込みがかかりますが、後の5回は、なんと

  設定の最大値、65536まで、カウントアップしてました。

  これでは、期待した動作になりません。

  期待した動作をさせるには、フラグのクリアーの前に入れ

  ないとだめでした。


  <はまったことその2>==============

   「main」のプログラムでは、必ず無限ループを作りますが、

   このなかの処理で、大きな勘違い。

   if文で判定をして、動作をさせましたが、if文に一回だけ

   入って処理をさせたかったのですが、一回動作をさせた

   後に、ifの条件を書き換えなかったので、動作を永遠に

   繰り返すことになって、終わりませんでした。

   終わりにさせたかったのがタイマー1の割り込みだった

   ので、タイマー1の割り込みのストップの方法をあれこ
   
   れさがしてしまいました。



  分かれば、なんのことはない、単純なミスでした。最新の

  開発環境にして、単なるシンタックスミスは、環境の方で

  指摘してくれるので、文法的な間違いは、ほとんど時間を

  賭けずに修正できるようになりましたが、アルゴリズム等

  のミスは、ダメです。修正に時間がかかります。

  頭が硬くなってます。Webはくしゅ

| mabo52 | 00:58 | comments (0) | trackback (0) | DIY::  -pic |
---ルールレット表示製品版---
 MPGをステッピングモーターに直接つないでコントロール

 するアダプターを作成するにあたって、LEDを使った表示を

 ルーレット風にしましたが、同じようなもので、製品版が

 あるんですね。

 

 また、○ジナルマインドさんにも、A相B相をCW・CCWの信号

 に変換するIC(16F84A)が販売されているようです。

 ドライバーの入力がCW・CCW(DIR)しかないもののアダプター

 にするようです。

 私と同じ目的にも使えそうです。

 全部ソフトでコントロールしてるんですね。

 ソースリストでも見てみたい気がしますが、きっと、

 アセンブラーでしょうね。
 

 Webはくしゅ

| mabo52 | 11:01 | comments (0) | trackback (0) | DIY::CNC |

こんな物欲しいな
CLOCK
NEW ENTRIES
COMMENTS
    ---SPINDLEのPWM制御 (その2) (7)
  • TR >06.18
    ---番外編---
  • TR >06.02
    ---SPINDLEのPWM制御 (その2) (5)
  • mabo >05.30
保留中コメント:10件
LINKS
    相互リンクさせていただいてます。
  • The Rider
Search Box
名言集
メール
   
連絡は下記から
名前:

メールアドレス:

件名:

メッセージ(必須):


TOP PAGE