Why can't I read the values from LSM9DS1 on-board sensor on Arduino Nano 33BLE in Simulink?

7 vues (au cours des 30 derniers jours)
Hi there,
I've been trying since weeks now, to read acceleration values in Simulink from the on-board LSM9DS1 sensor of Arduino Nano 33BLE board. I have installed the arduino support packages for both simulink and matlab, and have setup the connection with the board. I tried two approaches and both were unsuccessful:
  1. Adding LSM9DS1 sensor block from simulink's library for the arduino support package and then connecting it with the scope for visualisation. On building and deploying the model, no errors were reported but the scope shows a flat line for all inputs.
  2. Adding a MATLAB function block (below) and connecting the outputs to scope, which gives an error: "Matlab code generation is not supported on arduino nano 33ble sense board."
function [x, y, z] = readAccel()
a = arduino();
lsmobj = lsm9ds1(a, "Bus", 1);
[x, y, z] = readAcceleration(lsmobj);
end
Any guidance/help will be much appreciated?
P.s. Sensor and board are working fine. Tested in Arduino IDE!
  2 commentaires
Ayush
Ayush le 18 Avr 2024
Modifié(e) : Ayush le 18 Avr 2024
Hi Rohitashva, Are you using the default parameters of the LSM9DS1 sensor block?
Rohitashva
Rohitashva le 18 Avr 2024
Hi Ayush, Yes I'm using the default values. Thanks!

Connectez-vous pour commenter.

Réponses (1)

Avni Agrawal
Avni Agrawal le 9 Mai 2024
I understand that you are trying to read the values from LSM9DS1 on-board sensor on Arduino Nano 33BLE in Simulink. However, first try to run this command in MATLAB command window:
a = arduino()
When using `arduino()` without specifying parameters, MATLAB tries to automatically connect to an Arduino board, which might not always work as expected, especially if you have multiple devices connected or specific board requirements.
If the above line fails, then try to specify port and correct board type as mentioned below:
a = arduino('Port address', 'Nano33BLE');
Replace `'Port address'` with your board's actual port and `'Nano33BLE'` with the correct board type. This ensures MATLAB connects to the right board.
I hope this helps.
  1 commentaire
Rohitashva
Rohitashva le 13 Mai 2024
Thank you for your response.
I tried this approach too, and the project gets build and deployed to the board successfully. But, the Scope and the Data Inspector both shows a flat line. I also tried "Monitor and Tune" but it also shows the value zero for all axes.
On contrary, everthing seems to work fine in Arduino IDE.

Connectez-vous pour commenter.

Produits


Version

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by