秋月ファンクラブ掲示板

daruma(2017/12/02 Sat 12:44) [ 編集 ] [ 返信 ]

Re^2: LED Cube2

JPG 1024x768 140.0kb

試作4号機が形になりました。
これまでと同じく両面ノンスルホール基板を使って、部品面の裏にヘッダソケットを付け、天地を裏返しにしています。柱になる足の都合でソケットをできるだけケース天板に近づけたいからです。
LED群は初期作の少々いびつな物をつけていますが、あとでもう少しましなのを作ります。

高さが取れるのでPICはソケット装着にしましたが、ICSPのピンも立てました。
これまでPICkit3と秋月のアダプタで書き込んでいますから、このICSPピンはまだ使っていません。
PICkit3をここに挿して、いつものように書き込みすればいいのでしょうか。その場合回路電源はOFFにしておくのですよね。まだやってみてはいません。


残り4件

  1. [3554] このスレッドは『LED Cube』の続きです。

    > パラメータの設定次第で数時間になることはおかしくありません。

    昨日の実験では、STEPDATAを'5'でTIME100でトップスピードへの変化時間よりはるかに長く待っても抜け出せないので、時間がかかっているのではなく無限ループだと考えました。そのあとSTEPDATAが'1'でTIME1Mのものを再度走らせて朝まで7時間、やはり同じ状態になっていたのでこれもそうだと考えました。早計でしたか?

    > こういう場合は、STEPDATAを52とかにして

    STEPDATAを'52'でTIME100にしてやってみました。やはり、上りつめたところで変化しなくなりました。

    > チカラ技第2弾の修正HEX STEP7 1mS

    走らせてみました。42分で全点灯(に見える)状態になりそれが数秒続いた後減速に転じました。これが想定通りの動きですね。「チカラ技第2弾」ですから、ループ回数を4段階に分けているのですね。

    > チカラ技第3弾のHEX STEP変化版 重複あり1mS

    これまで固定だったSTEPDATAを途中で変化させる仕様なんでしょうか。
    100分で全点灯に達しました。わずかずつの変化を見続けていたのですが、低速域ではステップを大きく、中速域では小刻みに変化させているのでしょうか。「2発点灯(に見える)横走り」「3発点灯(に見える)横走り」の状態がたっぷり続きました。

    > 頭脳技版TIMER1使用の最低加減速インターバル50mS版
    > 頭脳技版TIMER1使用の最低加減速インターバル250mS版
    > 頭脳技版TIMER1使用の最低加減速インターバル250mS版 STEPDATA5 最低ウェイト150マイクロ秒

    これらは力ずくではないスマートで美しい方法なんですね。
    走らせてみました。ひとつめとふたつめはほぼ同じに見え2分で全点灯に達し、それが1秒弱続きました。みっつめは1分で全点灯に達し続いた時間はもっと短かったです。

    割り込みというのはさらに難しそうですね。
    「チカラ技」のほうは、読んでぼんやりとですが流れがわかります。それとて細部はよくわかりません。

    > チカラ技第2弾のソースは240行〜260行の間にバグの原因があります。

    難しい宿題です。今夜は各HEXを走らせて観察するだけで過ぎてしまいましたから、明日頭をひねります。
    LED Cube2
    daruma 2017/12/01 01:01
    1. [3555] 宿題が解けました。
      249行 GOTO UPSTART → GOTO DNSTART
      ではないでしょうか。これで意図どおりに動作します。

      いろいろカットアンドトライして、
      STEPDATA 30
      TIME150
      それに、ループ回数の配分を
      200,120,30 から 100,20,10 に変更しました。
      これで、
      ・1発点灯横走り
      ・2発点灯(に見える)横走り
      ・3発点灯(に見える)横走り
      ・3発点灯(に見える)縦走り
      ・全点灯(に見える)トップスピード
      の見せ方で上り坂35秒全点灯10秒下り坂35秒と程よい遷移です。

      頭脳技もご提示いただきましたが、今回はこれでフィックスとさせていただきたく思います。
      Re: LED Cube2
      daruma 2017/12/01 14:24
      1. [3556] 試作4号機が形になりました。
        これまでと同じく両面ノンスルホール基板を使って、部品面の裏にヘッダソケットを付け、天地を裏返しにしています。柱になる足の都合でソケットをできるだけケース天板に近づけたいからです。
        LED群は初期作の少々いびつな物をつけていますが、あとでもう少しましなのを作ります。

        高さが取れるのでPICはソケット装着にしましたが、ICSPのピンも立てました。
        これまでPICkit3と秋月のアダプタで書き込んでいますから、このICSPピンはまだ使っていません。
        PICkit3をここに挿して、いつものように書き込みすればいいのでしょうか。その場合回路電源はOFFにしておくのですよね。まだやってみてはいません。
        Re^2: LED Cube2
        daruma 2017/12/02 12:44 *
        1. [3557] ICSPで書き込むことができました。MPLAB IPEで書き込みを開始すると、PICKit3からの電源で回路が走り出したのには驚きました。なるほど便利ですね。

          試作4号機もケースに収めました。基板が1階建てなのでもっと低くできたのですが、試作3号機と同じ高さに揃えました。

          inara1さんにお世話になった試作3号機はすでに
          http://mpga.jp/akizuki-fan/index.php?mode=article&id=3538&page=1
          で報告していたとおりめでたく完成です。ありがとうございました。

          なんじゃらほいさんにお世話になった試作4号機もこれにて完成です。ありがとうございました。
          せっかく頭脳版プログラムで鍛えてくださろうとしていたのに区切りをつけてしまって申し訳ありません。
          Re^3: LED Cube2
          daruma 2017/12/06 17:26 *
          1. [3558] >これもそうだと考えました。早計でしたか?

            いやむしろ悠長で気が長いという意味です。



            >> チカラ技第3弾のHEX STEP変化版 重複あり1mS

            >これまで固定だったSTEPDATAを途中で変化させる仕様なんでしょうか。

            重複回数を指定する部分にSTEPDATAを設定する記述を追加しました。

            MOVLW D'12'
            MOVWF STEPDATA
            GOTO UPSTART ;どれも該当しないなら、そのまま表示へ

            S1SET MOVLW D'200'
            MOVWF CHOUFU
            MOVLW D'1'
            MOVWF STEPDATA
            GOTO UPSTART

            S2SET MOVLW D'120'
            MOVWF CHOUFU
            MOVLW D'4'
            MOVWF STEPDATA
            GOTO UPSTART

            S3SET MOVLW D'30'
            MOVWF CHOUFU
            MOVLW D'8'
            MOVWF STEPDATA
            GOTO UPSTART

            > 頭脳技版TIMER1使用の最低加減速インターバル50mS版
            > 頭脳技版TIMER1使用の最低加減速インターバル250mS版
            > 頭脳技版TIMER1使用の最低加減速インターバル250mS版 STEPDATA5 最低ウェイト150マイクロ秒

            >これらは力ずくではないスマートで美しい方法なんですね。

            一定のインターバルで何かを処理する場合は、クロックを基準に自動的に一定間隔で処理するタイマー割り込みを使うのが正当な手法ですが、タイミングがシビアでなければ必然ではありません。

            タイマー割り込みを使った方が、チカラ技版よりもリニアに変化させることが出来るので、美しくできる可能性がありますが、自由度という意味ではチカラ技版を極めた方が幅が取れます。

            今回使った割り込みプログラムの大部分は、前回バスケットボールの24秒タイマーとかを作ったときに、7セグパターンのスキャンで処理速度がばらつき、あまりにも精度がメチャメチャだったので、その時に書いたものの抜き取り加工品です。



            割り込み版はインターバル250mS版ではざっと計算したらDPCNTが70を割らないと、ほぼ意味がなかったようで、

            >走らせてみました。ひとつめとふたつめはほぼ同じに見え2分で全点灯に達し、それが1秒弱続きました。
            >みっつめは1分で全点灯に達し続いた時間はもっと短かったです。

            よって、この様な結果だったと言うことですね。

            >割り込みというのはさらに難しそうですね。

            レジスタの設定が増え、お約束処理も増え、面倒が増えるだけですね。

            解れば何てこと無いですが、初心者〜初級の人には結構敷居が高いはずです。



            フィックス宣言が出る前にアセンブルしてあった物です。

            気が向いたらどうぞ。10分掛からないと思います。

            最低ウェイト150マイクロ秒、速度変化インターバル1秒版
            :020000040000FA
            :020000001528C1
            :08000800AB00030EAA00AC0AD4
            :1000100014302C02031D0E28AC01291458200C109A
            :100020002A0E8300AB0E2B0E0900831660308F0062
            :1000300000308600F03085008117831207309C0065
            :100040000030900083160C1483120B178B17850158
            :100050008601851405158515FF30A6000130A8001E
            :10006000AC01A90133285D2061206D2065206D2041
            :1000700069206D2065206D20291C34281010280867
            :10008000A602031833280130A6005D2061206D20F0
            :1000900065206D2069206D2065206D20291C462873
            :1000A00010102808A607031C4528FF30A600332897
            :1000B000C9308E003C308F000800AC01582010146D
            :1000C000080085100515851508008514051185158E
            :1000D0000800851405158511080005108601061411
            :1000E0008A20860186148A20860106158A208601C8
            :1000F00086158A20860106168A20860186168A20A1
            :10010000860106178A20860186178A208601051433
            :100110008A2008002608A7009D20A70803190800C8
            :10012000A70B8C2808001330A1000000000000007D
            :10013000A10B95280000000008001D30A100000060
            :100140000000A10B9F280000000008006430A300FD
            :100150000000000000000000000000000000A30BF1
            :10016000A82808003230A4009320A40BB42808006B
            :100170006430A4009320A40BBA2808002830A500FE
            :10018000B220A50BC02808006430A500B220A50B42
            :10019000C6280800C930A500B220A50BCC2808004D
            :02400E00503F21
            :02401000FD3F72
            :00000001FF



            >宿題が解けました。
            >249行 GOTO UPSTART → GOTO DNSTART
            >ではないでしょうか。これで意図どおりに動作します。

            >いろいろカットアンドトライして、
            >STEPDATA 30
            >TIME150
            >それに、ループ回数の配分を
            >200,120,30 から 100,20,10 に変更しました。
            >これで、
            >・1発点灯横走り
            >・2発点灯(に見える)横走り
            >・3発点灯(に見える)横走り
            >・3発点灯(に見える)縦走り
            >・全点灯(に見える)トップスピード
            >の見せ方で上り坂35秒全点灯10秒下り坂35秒と程よい遷移です。

            これで、今回の勉強は十分でしょう。

            >ICSPで書き込むことができました。MPLAB IPEで書き込みを開始すると、PICKit3からの電源で回路が走り出したのには驚きました。なるほど便利ですね。

            >なんじゃらほいさんにお世話になった試作4号機もこれにて完成です。ありがとうございました。

            ようやく完成ですね。不適切なパラメータの試験レポートご苦労様でした。



            >せっかく頭脳版プログラムで鍛えてくださろうとしていたのに区切りをつけてしまって申し訳ありません。

            レベルの飛びすぎたプログラムに手を出して混乱するよりも、現状レベルで少しずつステップアップする方が勉強になります。
            Re^4: LED Cube2
            なんじゃらほい 2017/12/06 23:03
            1. [3559] > いやむしろ悠長で気が長いという意味です。

              先述したとおり
              >> STEPDATAを'5'でTIME100でトップスピードへの変化時間よりはるかに長く待っても抜け出せないので、時間がかかっているのではなく無限ループだと
              判断するのは短時間でできたのですが、もしや私の方でSTEPDATAとTIMEを変更したことが原因かもと、いただいたままの状態でも試してみたわけです。「長時間かかる」とのことだったものですから、

              > 一定のインターバルで何かを処理する場合は、クロックを基準に自動的に一定間隔で処理するタイマー割り込みを使うのが正当な手法

              はるか昔、BASICでプログラムを書いていた頃に、マウスの処理は割り込みでした。割り込みというもののイメージはわかるのですが、それをPICで書くのは
              > レジスタの設定が増え、お約束処理も増え、面倒が増える
              ことの想像もつきます。そんなわけで、チカラ技版で所期の動作が実現しましたので「これでできあがりに」とさせていただきました。どこをどう増減すると速さや回数が変わるのかを自分で試すことができてありがたかったです。

              > 最低ウェイト150マイクロ秒、速度変化インターバル1秒版
              走らせてみました。3分でトップスピードに達します。

              > これで、今回の勉強は十分でしょう。
              ありがとうございます。
              今日はひさしぶりに机の上をかたづけました。
              Re^5: LED Cube2
              daruma 2017/12/07 17:06
              1. [3584] daruma工房のサイトを更新しました。
                いくつかたまっていた作品を掲載し、LED Cube2種(4017版とPIC版)を掲載しました。
                inara1さん、なんじゃらほいさん、あらためてありがとうございます。

                daruma工房をご訪問ください。
                http://darumakobo.wix.com/work
                Re^6: LED Cube2
                daruma 2017/12/20 19:12