You may remember my last Pick was about a new capability to download and run Simulink models on an Arduino, a low-cost electronics prototyping platform. Well I just got a new Arduino Mega ADK board and have been playing around with different ways to connect it with MATLAB and Simulink. So if you'll indulge me I'd like to do one more Pick about the Arduino.
Giampiero's submission allows you to easily control an Arduino directly from MATLAB or Simulink. You first download a fixed Arduino program to your board and then you can use either MATLAB code or Simulink blocks to access and control the I/O on your board. For example, the following MATLAB code connects to a board, reads the voltage on one pin and uses it to control the output on another:
% connect to the board a=arduino('COM9'); % set pin 9 to output a.pinMode(9,'output'); % read analog input from analog pin 5 av=a.analogRead(5); % normalize av from 0:1023 to 0:255 av=(av/1023)*255; % ouptput value on digital (pwm) pin 9 a.analogWrite(9,av) % close session delete(a)
If you connect a potentiometer to analog pin 5 and an LED to digital pin 9, you could use this code to set the brightness of the LED by turning the potentiometer!
Giampiero's interface lets you read and write to the digital and analog pins, and also control DC, Servo, and Stepper motors if you have the Motor Shield. One thing I really like about this package is that it uses object-oriented programming, which makes it very simple to see the available methods by hitting the tab key.
The big difference between this package and the Run on Target Hardware capability is that the actual algorithm is running on your computer so you will always need to be connected to the Arduino.
Note that the actual Arduino IO Package is available here on our academic website, the File Exchange submission now just contains some additional demos.Comments
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.