ADI maintains a set of tools to model, interface, and target with ADI Accelerometers, Gyroscopes and Inertial Measurement Units devices within MATLAB and Simulink. These are combined into a single Toolbox which contains a set of Board Support Packages (BSP). The list of supported boards is provided below.
The current stable Toolbox can be downloaded from the Sensor Toolbox GitHub Release Page. Download the latest mltbx file then open that file within MATLAB. Opening the file will automatically install the Toolbox, adding the necessary components to your MATLAB path. The “Analog Devices, Inc. Sensor Toolbox” will appear in your Add-Ons Explore within MATLAB.
To interface and stream data with hardware will require installation of libiio and one of two Hardware Support Packages from MathWorks. The libiio library can be obtained on the Github page of the project.
Installation of either:
is required to use the streaming system objects or blocks. These support packages provide the necessary libIIO MATLAB bindings used by ADI's system objects.
Builds for the master branches are available as well if you want to use something newer:
Depending on your needs, different toolboxes will be required. For basic data streaming into MATLAB or Simulink only the following MathWorks toolboxes are required:
Device interfaces which provide control and data streaming are implemented with MATLAB System Objects and Simulink Blocks. These System Objects can be access under the “adi” namespace in MATLAB and are followed by their part number or board name:
adi.<Part or Board Name>
For example, to instantiate an ADIS16460 object to control IMU it can be created as follows:
imu = adi.ADIS16460;
For example usage of certain objects, it can be useful to inspect their related test code which exercises initiations in different configurations. The available code is available in the GitHub repo folder here, where object tests have the naming convention <Object>Tests.m.
To get a list of currently available objects with the BSP installed simply run:
To get more information on a given object run:
help adi.<Part of Board Name>
doc adi.<Part of Board Name>
There are some common attributes that need to be set for system objects and parts.
uri Context address of IIO device. Possible options include:
rx.uri = 'ip:192.168.2.1'
rx.uri = 'usb:1.2.3'
If a driver attribute or setting is not available in the standard objects it can be easily extended to cover more IIO attributes. See this guide.
The following have device-specific implementations in MATLAB and Simulink. If a device has an Accelerometer, Gyroscope or IMU IIO driver, MATLAB support is possible, but a device-specific MATLAB or Simulink interface may not exist yet. Just ask on sw-interface-tools/.
|Variants and Minimum Supported Release
Examples for streaming data are listed within the Toolbox documentation itself. To view run the following with MATLAB: