This example shows you how to use the Simulink Support Package for Raspberry Pi Hardware to run a Simulink model on Raspberry Pi hardware.
A recorded webinar of this material is also available.
The Simulink Support Package for Raspberry Pi Hardware enables you to create and run Simulink models on Raspberry Pi hardware. The target includes a library of Simulink blocks for configuring and accessing Raspberry Pi hardware’s I/O peripherals and communication interfaces. Additionally, the target enables you to monitor and tune algorithms running on Raspberry Pi hardware from the same Simulink models from which you developed the algorithms.
In this example, you will learn how to create and run a simple Simulink model on Raspberry Pi hardware, and how to tune and monitor the algorithm in real time as it is executing. When you are developing algorithms, it is often necessary to determine appropriate values of critical algorithm parameters in iterative fashion. For example, an algorithm that detects hand clapping may use a threshold to determine hand clapping in the presence of ambient noise. If the threshold value is set too low, the algorithm may confuse any sound for hand clapping. If the threshold value is set too high, the algorithm may not be able to detect any sound at all. In such cases, the right threshold value can be obtained by trying different values until the desired algorithm performance is reached. This iterative process is called parameter tuning.
The External mode feature in Simulink enables you to accelerate the process of parameter tuning by letting you change certain parameter values while the model is running on target hardware, without stopping the model. When you change parameter values from within Simulink, the modified parameter values are communicated to the target hardware immediately. The effects of the parameter tuning activity may be monitored by viewing algorithm signals on scopes or displays in Simulink.
This example introduces the Simulink External mode feature by showing you how to:
- Configure communications between Simulink and Raspberry Pi hardware
- Tune parameters of an algorithm from the same Simulink model that is running on the Raspberry Pi hardware
- Use Simulink scopes to monitor results from an algorithm running on Raspberry Pi hardware
If you are new to Simulink, we recommend completing the Interactive Simulink Tutorial, reading the Getting Started section of the Simulink documentation, and running the Simulink Getting Started example.
To run this example, you will need the following hardware:
- Raspberry Pi hardware
In this task, you will create a simple model that will run on your Raspberry Pi hardware.
1. In MATLAB, select HOME > New > Simulink Model.
2. Enter simulink at the MATLAB command line to open the Simulink Library Browser.
3. Select the Simulink > Sources tab in the Simulink Library Browser. Drag and drop a Sine Wave block to the model. Double-click the Sine Wave block to set parameters of the block as shown in the picture below. Click OK to save and close the block mask.
4. Select the Simulink > Math Operations tab in the Simulink Library Browser. Drag and drop a Slider Gain block to the model. Connect the output port of the Sine Wave block to the input port of the Slider Gain block.
5. Select the Simulink > Sinks tab in the Simulink Library Browser. Drag and drop a Scope block to the model. Connect the output port of the Slider Gain block to the input port of the Scope block.
6. Save your model.
In this task, you will configure your model to run on Raspberry Pi hardware. You will run your model on Raspberry Pi hardware in External mode. When you are prototyping and developing an algorithm, it is useful to monitor and tune the algorithm while it runs on hardware. The External mode feature in Simulink enables this capability.
1. If your Raspberry Pi hardware is not connected to an Ethernet network, follow the instructions in Configure IP Settings on the Raspberry Pi Hardware.
2. In your model, set simulation stop time to ‘inf’ to run the simulation until you explicitly pause or stop the model.
3. In your Simulink model, make sure that the Simulation mode on the toolbar is set to External. Then, click the Run button on the toolbar.
4. When the Configuration Parameters page opens up, set the Target hardware parameter to Raspberry Pi. Review the other parameters on that page. If you performed a firmware update, board information will be automatically populated with the IP address, user name, and password of your Raspberry Pi hardware.
5. Also, notice the TCP/IP port edit box under Signal monitoring and parameter tuning. The default value of TCP/IP port is 17725. Simulink uses this TCP/IP port to communicate with Raspberry Pi hardware. Leave the TCP/IP port parameter at its default value.
6. Click OK.
7. The model will now run on the Raspberry Pi hardware. A system command window will open that shows the messages coming from the model running on Raspberry Pi hardware:
8. Open the Scope block. Observe the scope displaying a sine wave.
9. Double-click the Slider Gain block. Change the Slider Gain value and observe that the amplitude of the waveform on the Scope block changes appropriately in response.
10. When you are done changing model parameters, press the Stop button on the model. Observe that the system command window opened in the previous step indicates that the model has been stopped. Close the system command window.
11. Save your model.
This example introduced the workflow for creating an algorithm in a Simulink model, and then running the model on Raspberry Pi hardware. Using External mode, you tuned an algorithm parameter while the model was running and observed the effects of parameter value changes.