🤖Have you ever tried Chat.M5Stack.com before asking??😎
    M5Stack Community
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    質問:Digi-Clockモジュールの3桁目・4桁目表示方法について

    日本語フォーラム
    2
    5
    969
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Y
      ymd_m
      last edited by

      タイトル

      Digi-Clockモジュールの3桁目・4桁目表示方法について

      詳しい状況の説明

      初めまして。
      UIFlow2.0にて、Digi-Clockモジュールの3桁目・4桁目に1文字ずつ表示(Write Character)する方法がわかりません。
      1文字目・2文字目は問題なく表示出来ます。また、文字列としての表示(Write String)も問題ありません。

      Write Characterの表示位置指定は0~4までしか無いため、3桁目、4桁めは手動で5、7をそれぞれ指定しています。
      添付のUIflowの場合、12:__表示の2秒後、34:__と言う表示になります。(1桁目、2桁目のみが更新され、3桁目、4桁目は消灯のまま変化なし)

      毎回文字列を生成したうえでwrite stringによる表示としても良いのですが、更新時のちらつきを極力抑えたいため、write characterによる各桁個別の表示更新をしたいと考えています。

      このような使い方の経験がある方がおられましたらアドバイス頂ければと思います。

      使用しているUIFlowやArduinoライブラリのバージョン

      • UIflow 2.1.1
      • AtomS3 Lite
      • Digi-Clock

      再現可能なコード

      import os, sys, io
      import M5
      from M5 import *
      from hardware import *
      from unit import DigiClockUnit
      import time
      
      
      
      timer0 = None
      i2c0 = None
      digiclock_0 = None
      digiclock_1 = None
      
      
      temp = None
      
      
      def timer0_cb(t):
        global timer0, i2c0, digiclock_0, digiclock_1, temp
        pass
      
      def setup():
        global timer0, i2c0, digiclock_0, digiclock_1, temp
      
        M5.begin()
        timer0 = Timer(0)
        i2c0 = I2C(0, scl=Pin(1), sda=Pin(2), freq=100000)
        digiclock_0 = DigiClockUnit(i2c0, 0x30)
        digiclock_0.clear()
        digiclock_0.set_char('1', 0)
        digiclock_0.set_char('2', 2)
        digiclock_0.set_char(':', 4)
        time.sleep(2)
        digiclock_0.set_char('3', 5)
        digiclock_0.set_char('4', 7)
      
      
      def loop():
        global timer0, i2c0, digiclock_0, digiclock_1, temp
        M5.update()
      
      
      if __name__ == '__main__':
        try:
          setup()
          while True:
            loop()
        except (Exception, KeyboardInterrupt) as e:
          try:
            from utility import print_error_msg
            print_error_msg(e)
          except ImportError:
            print("please update to latest firmware")
      
      
      

      digi-clock.png

      1 Reply Last reply Reply Quote 0
      • K
        kimurer
        last edited by

        ymd_mさん、はじめまして
        Digi-Clockを持っていないのですが、興味があったので、もし可能であれば逆にご教示いただきたく投稿しています。

        もし、次の画像のようなフローを実行したら、どのような動作になるでしょうか。

        公式ドキュメント「Digi-Clock」
        https://docs.m5stack.com/ja/unit/digi_clock
        に書かれている「I2Cレジスタ表」を見ると、12:34表示の2秒後に34とだけ表示されるのではないかと思うのですが。

        uiflow2_block_1723781050632.png

        もしご迷惑でなければご教示いただけるとうれしいです。
        どうぞよろしくお願いいたします。

        kimurer

        Y 1 Reply Last reply Reply Quote 0
        • Y
          ymd_m @kimurer
          last edited by

          @kimurer さん
          コメント頂きありがとうございました。

          ご教示頂きました方法で試してみたのですが、1桁目に"1"が表示されるのみとなりました。
          当初私もコメント頂いた方法で試してみたのですが上手くいかず、試行錯誤の結果とりあえず2桁目までは表示できたのですが・・・と言った感じです。
          生データの表示コマンド等もあるのでもう少し試行錯誤してみようと思います。

          スクリーンショット 2024-08-18 124242.png

          ありがとうございました。

          Y 1 Reply Last reply Reply Quote 0
          • Y
            ymd_m @ymd_m
            last edited by

            生データ表示(Write RAW Data)にて上手くいきましたのでご報告です。
            下記の内容で無事期待通りの動作をしてくれました。
            テスト動画(imgur)
            スクリーンショット 2024-08-18 131108.png

            もしかしたらWrite Characterのバグ?の可能性があるかもしれません。

            ありがとうございました。

            K 1 Reply Last reply Reply Quote 0
            • K
              kimurer @ymd_m
              last edited by

              @ymd_m さん
              貴重な情報をご教示くださいまして、ありがとうございます。
              Write RAW DataとWrite Characterの動作の違いをみると、おっしゃるとおりバグのように感じます。
              ファームウェアアップデートに期待です。

              UIFlow2、すごく扱いやすくて好きなのですが、ここだけの話、M5-Docsの情報も不足気味ですし、例えばセンサーの値をlabelに表示させる際、「整数に変換」を使ってもときどき小数点以下の値まで表示されるし…ところどころ、微妙に残念ポイントがある気がします。

              1 Reply Last reply Reply Quote 0
              • First post
                Last post