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

SimulinkとArduinoを用いてIMUの加速度データを取得して制御に利用したいです。
IMUでは符号付き16bitのデータが得られるのですが、マイコンへの送信で上位・下位で8bitに分割されます。
Simulinkでは分割された8bitずつのデータが送られ、分割されたデータを統合して再び元の符号付き16bitにしたいのですが方法が分かりません。
何か良い方法を教えていただけたら幸いです。
使用環境は以下になります。
MATLAB/Simulinkのバージョン R2018b
使用しているToolBoxはSimulink Support Package for Arduino Hardware 18.2.0

4 commentaires

Atsushi Ueno
Atsushi Ueno le 5 Déc 2021
分割された8bitずつのデータの型は何ですか?
maeda777
maeda777 le 5 Déc 2021
状況を正確に説明できていなくてすいません。
IMUでは符号付き16bitの加速度情報を取得しますがArduinoとの通信(I2C方式)ではその16bitを単純に8bitで半分に分割して通信しています。
そのため,分割された8bitずつのデータには明確な型は存在していません。
Atsushi Ueno
Atsushi Ueno le 5 Déc 2021
Simulink Support Package for Arduino HardwareのI2C Readブロックならデータタイプをint16に設定できる様ですが、8bitで半分に分割して通信しなければならない何らかの理由があるのですね。
maeda777
maeda777 le 5 Déc 2021
IMU自体がデータを8bitに分割して送信してきています。
異なるレジスタアドレスで上位と下位の8bitを送信してきているため,素直にint16で受信ができないです。
使用しているIMUはMPU6050です。

Connectez-vous pour commenter.

 Réponse acceptée

Atsushi Ueno
Atsushi Ueno le 5 Déc 2021

0 votes

Simulink Support Package for Arduino Hardwareに質問の操作を意図した良いブロックがあるかも知れませんが、Simulinkのブロックで作るなら下記のように型変換・ビットシフト・加算の組み合わせで実現できます。

1 commentaire

maeda777
maeda777 le 5 Déc 2021
素早い対応ありがとうございます。
試してみようと思います。

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Version

R2018b

Tags

Community Treasure Hunt

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

Start Hunting!