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

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

댓글을 달려면 로그인하십시오.

 채택된 답변

Atsushi Ueno
Atsushi Ueno 2021년 12월 5일

0 개 추천

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

댓글 수: 1

maeda777
maeda777 2021년 12월 5일
素早い対応ありがとうございます。
試してみようと思います。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

제품

릴리스

R2018b

태그

질문:

2021년 12월 5일

댓글:

2021년 12월 5일

Community Treasure Hunt

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

Start Hunting!