Simulinkで型​の異なる8bitのデ​ータを結合してint​16に変換する方法に​ついて

8 views (last 30 days)
maeda777
maeda777 on 5 Dec 2021
Commented: maeda777 on 5 Dec 2021
SimulinkとArduinoを用いてIMUの加速度データを取得して制御に利用したいです。
IMUでは符号付き16bitのデータが得られるのですが、マイコンへの送信で上位・下位で8bitに分割されます。
Simulinkでは分割された8bitずつのデータが送られ、分割されたデータを統合して再び元の符号付き16bitにしたいのですが方法が分かりません。
何か良い方法を教えていただけたら幸いです。
使用環境は以下になります。
MATLAB/Simulinkのバージョン R2018b
使用しているToolBoxはSimulink Support Package for Arduino Hardware 18.2.0
  4 Comments
Atsushi Ueno
Atsushi Ueno on 5 Dec 2021
Simulink Support Package for Arduino HardwareのI2C Readブロックならデータタイプをint16に設定できる様ですが、8bitで半分に分割して通信しなければならない何らかの理由があるのですね。
maeda777
maeda777 on 5 Dec 2021
IMU自体がデータを8bitに分割して送信してきています。
異なるレジスタアドレスで上位と下位の8bitを送信してきているため,素直にint16で受信ができないです。
使用しているIMUはMPU6050です。

Sign in to comment.

Accepted Answer

Atsushi Ueno
Atsushi Ueno on 5 Dec 2021
Simulink Support Package for Arduino Hardwareに質問の操作を意図した良いブロックがあるかも知れませんが、Simulinkのブロックで作るなら下記のように型変換・ビットシフト・加算の組み合わせで実現できます。
  1 Comment
maeda777
maeda777 on 5 Dec 2021
素早い対応ありがとうございます。
試してみようと思います。

Sign in to comment.

More Answers (0)

Tags

Products


Release

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!