This example shows you how to use Simulink® Support Package for Android® Devices to design an algorithm and augment the same with a custom GUI.
The raw output of the sensors are very noisy - they change rapidly even when the device is resting on a stable surface. In this example, you will implement a simple low pass filter that will smooth out the output.
The following sections will describe how the low pass filter is specified, run on the device, how the outputs can be analyzed, and finally add a custom GUI that uses the output.
We recommend completing
DSP System Toolbox™
Android device, configured using androidhwsetup
USB cable to connect the device to host computer
Task 1 - Filter Design
1. Open the
androidSensorFilterExample Simulink model.
2. In the Modeling tab of the toolstrip, select Model Settings to open Configuration Parameters dialog.
3. Select the Hardware Implementation pane and review the parameters on the page that opens.
4. Click Device options under the Target Hardware Resources section and ensure the listed Device matches your connected device. Click OK
5. In the Simulink model, select the Simulation tab and make sure Stop time is set to
6. In the Simulink model, select the Simulation tab and click Run to run the model on your Android device.
7. Once the model finishes running, double click After running the model... to plot the data.
Task 2 - Use OpenGL for Custom GUI
1. Open the
androidSensorExample Simulink model.
2. This model uses the same filter to smooth out the Accelerometer data and send the filtered data to app using To App block.
3. Double click To App block and observe the function name specified: FilteredData. This is the function that will be called with vector as input.
4. On the Modeling tab of the toolstrip, select Model Settings to open Configuration Parameters dialog.
5. Select the Hardware Implementation pane and review the parameters on the page that opens.
6. On the Hardware tab of the Simulink model, in the Mode section, select Run on board and then click Build, Deploy & Start. The model will now be deployed to your Android device.
7. Now you can update the app with a custom GUI by double clicking Double click this block.... This will add a base class that implements a rotating membrane. The amount of rotation will depend on the acceleration along the X-Axis.
8. Open androidSensorExample.java under src directory and observe that FilteredData method is implemented by this class. This method passes its input to an OpenGL renderer.
Other Things to Try
Replace Accelerometer with Gyroscope and repeat the same exercise. Also try rotating the membrane about all three axis.