M5stackにて自動車用アナログ電圧をCANデータに変換送信するユニット制作してます



  • M5stack本体で取得したアナログ電圧値(四桁)をCANにて
    送信したいと考えてUIflowにてblocklyでプログラム作成してます
    8bytリスト作成し1byte(8bit)へ指定したCAN IDへの送信は出来ましたが
    上位、下位byteに分けて電圧値を送信出来なく悩んでいます。
    どなたかアドバイス頂ければと思い投稿しました。


  • Global Moderator

    UIFlowでのビット演算は下記画像のMathにある赤丸のブロックで行います。
    これで計算すればいいと思うのですが、いかがでしょうか?

    0_1680678863422_スクリーンショット 2023-04-05 161328.png



  • @mongonta555 さん
    コメントありがとうございます。

    車関連のCANモニター制作事例の詳しい情報がなかなか見つからずに困っていました。
    車いじりの為にM5stack導入してみたのですがプログラム知識などゼロなので難しいですね。

    https://youtu.be/Rmby2KqGDZ4

    何とか動く物を作っては見ましたが複数IDからデータ受信取得させると処理が間に合わないのかフリーズしてしまったり表情が更新されないなど難儀しております。

    上手く作れましたらフリー公開したと考えております。

    現在のテストverをgithubにアップしてますので、もしよろしければ御覧頂き何かアドバイス頂ければと思います。

    優先的に処理させる順序変更なども出来るようになりたいとは考えてます。
    (CORE2で動かしています)
    https://github.com/gok555/M5stack-OBD-CANgauge


  • Global Moderator

    @gok5
    実は、COMMUモジュールのサンプルコードを参考にして書くことができます。
    0_1681048490629_4bfcbf53-cb2c-475d-95f7-b74bb389d4b8-image.png
    0_1681048816818_e4e667b3-cbc4-4923-b827-00d764d3a06e-46aaf52317071486b4b90f70c66df9d.png
    0_1681048802839_0b556f15-454f-45a2-8e7f-b395527c5689-05d92c41454db7556beaebf77c60fbe.jpg



  • @icingtomato さん
    commuモジュールも購入しましたがイマイチ理解出来ずに外付けのユニットにて製作しております。
    https://youtu.be/VD5udgCUBcA

    0_1681224446164_Screenshot_2023-04-11-23-47-02-60.jpg

    二項目程度なら平気だったのですが六項目表示させると更新速度遅延などの問題があり困っておりました。カウントタイマによる表示更速度の調整方法や16ビットデータ計算をループ外で処理させる方法など教えて頂いて形になってきています、今後はアクセル開度やエンジン回転数に応じてPWM数値を可変出力させる事は出来ないのかと模索しております。

    プログラムは全くの無知からのスタートなのですが難しいですね。