Using Arduino with MATLAB and Simulink
Dan Seal
MathWorks
Product Marketing
2015 The MathWorks, Inc.
MathWorks Supports Low-Cost Hardware
Explosion of new hardware platforms
available for hobbyists and students
Increasingly used by educators for
project-based learning
Hardware support packages enable
programming these devices with
MATLAB and Simulink
What is Arduino?
Low-cost microcontroller board
designed for students and makers
Widely used to teach topics in
electronic circuits, controls, and
embedded systems
Projects that can sense and
interact with the physical world
Outline
Getting started
Demo: Accessing input and output pins in MATLAB
Demo: Designing and controlling a light meter
Beyond the basics
Summary
Sample Application: Rubiks Cube Solving Robot
Arduino as one part of a larger
system controlled by MATLAB
What hardware is used?
SparkFun RedBoard
(Arduino Uno clone)
2 Servo Motors
Webcam
More details at
http://www.mathworks.com/matlab
central/fileexchange/49434
Get Started: Download the Support Packages
Install through MATLAB with Support Package Installer
Three Arduino support packages available
MATLAB Support Package for Arduino Hardware
Simulink Support Package for Arduino Hardware
Simulink Support Package for Arduino Due Hardware
Lets do it together!
Demo Summary: Simple Inputs and Outputs
MATLAB Support Package makes it easy to directly control and read the
digital and analog pins on Arduino
Digital Input
Analog Input
Digital Output
PWM Output
Play Tone
Demo: Light Meter
Measure light intensity with
photoresistor and track extreme
values
Control servo motor to position
needle on gauge
Use Simulink to run the algorithm
on the Arduino
Demo Summary: Light Meter
1.
Develop algorithm in MATLAB
2.
Build Simulink model containing
MATLAB Function block
3.
Test and enhance model by
running in External mode
4.
Deploy to hardware for
standalone execution
MATLAB vs Simulink Workflows
MATLAB Support Package
Use hardware as I/O device
Low-cost data acquisition
Processing done on desktop
Must be connected to computer
Simulink Support Package
Develop algorithm in Simulink
Deploy to hardware
Processing done on hardware
Can run independent of computer
Beyond the Basics: Other Protocols and Capabilities
MATLAB Support Package has additional functionality for
I2C
SPI
Simulink Support Package has additional blocks for
Serial receive/transmit
Write to ThingSpeak
TCP/IP
UDP
Additional Resources
More on Simulink Support Packages for Arduino
http://www.mathworks.com/hardware-support/arduino-simulink.html
Discover other projects with Arduino, Raspberry Pi, and LEGO
MINDSTORMS at the MakerZone
http://makerzone.mathworks.com/
To explore more hardware support
http://www.mathworks.com/hardware
For higher speed data acquisition
Connect to a wide range of professional DAQ hardware with Data Acquisition Toolbox
http://www.mathworks.com/products/daq/
Summary
Get up and running quickly without learning a new programming language
Bring live results into MATLAB or Simulink
Deploy to hardware using Simulink
Talk to other devices over I2C/SPI or send your data over the Internet