External mode

Anuncio
Departamento de Ingeniería
de Sistemas y Automática
Control of Mechatronic Systems with
Matlab/Simulink
Episode I: An introduction to real-time target programming
By J. M. Gómez de Gabriel
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Contents
1.
2.
3.
4.
5.
6.
7.
8.
Today’s goal
Matlab/Simulink approaches
Targets
Installing target support
Arduino targets
Simulink blocks for Arduino programing
Examples
Hands-on project
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Automatic Photovoltaic Panel Orientation
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
... In our case:
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Matlab vs Simulink approach
• IO library and Matlab language running on the PC as the
control process
– The target is used as a remote I/O server
– Easy debugging
– Non real-time
Departamento de Ingeniería
de Sistemas y Automática
•
Simulink graphical model can generate C code for different
real-time embedded targets.
–
–
–
–
Standalone target
Real-time
Not so easy debugging
Host/target architecture
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Some Simulink Real-Time Targets
• Things are getting harder for Mathworks:
– Free open source OS and languages (linux, Python, …)
– Embedded computing is evolving very fast
Departamento de Ingeniería
de Sistemas y Automática
• Recently more popular:
–
–
–
–
–
–
Arduino (Atmel AVR/Non OS)
BeagleBoard (ARM/Linux/Android/Lots of I/O/Multi CPU)
Gumstix Overo
LEGO Mindstorms NXT
PandaBoard (OMAP5/Linux)
Raspberry Pi (ARM/GPU/Linux)
• Any other: user definable
Both PC and target C language compilers are needed (i.e.
Visual Studio+Arduino IDE)
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Matlab Support Packages
Departamento de Ingeniería
de Sistemas y Automática
• Manual installation (unoffical libraries)
• 2011 Automated
• 2013b fully integrated
• Please, help with the installation …
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Supported arduino targets
• Arduino UNO
Departamento de Ingeniería
de Sistemas y Automática
• Mega 2560
• Nano
• Leonardo not yet 
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Arduino UNO
Features:
• Microcontroller: ATmega328
• Operating Voltage: 5V
• Input Voltage:7-12V (6-20V limit)
• Digital I/O Pins: 14 (of which 6 provide PWM output)
• Analog Input Pins: 6
• DC Current per I/O Pin: 40 mA
• DC Current for 3.3V Pin: 50 mA
• Flash Memory: 32 KB (ATmega328) of which 0.5 KB used by bootloader
• SRAM: 2 KB (ATmega328)
• EEPROM: 1 KB (ATmega328)
• Clock Speed16 MHz
• UART-USB bridge (Atmega8) programmable
• Bootloader
• Easy to use IDE
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Atmega328
Departamento de Ingeniería
de Sistemas y Automática
•
•
•
•
•
Interrupts (INT0,INT1)
I2C
PWM
ADC
SPI
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Arduino Mega2560
•
•
•
•
•
•
•
•
•
•
Microcontroller: ATmega2560 (Atmel AVR family)
Operating Voltage: 5V
Input Voltage 7-12V (limits 6-20V)
Digital I/O Pins: 54 (of which 15 provide PWM output)
Analog Input Pins: 16
DC Current per I/O Pin40 mA (3.3V Pin: 50 mA)
Flash Memory: 256 KB of which 8 KB used by bootloader
SRAM: 8 KB
EEPROM: 4 KB
Clock Speed16 MHz
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Atmega2560
Departamento de Ingeniería
de Sistemas y Automática
• Same type of
peripherals
• More I/O
• More Ext Inter.
• More memory
• !! IMPORTANT !!
More memory = automatic debugging possible under simulink
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Arduino Support in Simulink
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Finding the Arduino Blocks
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Arduino Digital Input
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Arduino Digital Output
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Arduino Analog Input
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Arduino PWM output (“analog output”)
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Arduino Servo Write
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Arduino Serial Receive
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Arduino Serial Transmit
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Block Produces Zeros or Does Nothing in Simulation
• If you simulate a model on your host computer without running
it on your target hardware:
– Input blocks produce zeros.
– Output blocks do nothing.
Departamento de Ingeniería
de Sistemas y Automática
• This is the expected behavior. For example, in a model, if you
select Simulation > Mode > Normal and then
select Simulation > Run, the following happens:
– The sensor block and Digital Input block send zeros to the model.
– The Digital Output block does nothing.
• To see the blocks work normally, run your model on target
hardware or use External mode.
– To run the model on target hardware, select Tools > Run on
Target Hardware > Prepare to Run. Then, click the Deploy to
Hardware button.
– To use External mode, select Simulation > Mode > External
mode. Then, select Simulation > Run.
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Running model on the external hardware
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Run on target Hardware Parameters
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
External mode (With Mega2560)
• You can use External mode to tune parameters in, and monitor
data from, your model while it is running on the Arduino Mega
2560 hardware (Not available with Arduino Uno).
• External mode enables you to tune model parameters and
evaluate the effects of different parameter values on the model
results in real-time, in order to find the optimal values to
achieve the desired performance. This process is
called parameter tuning.
• External mode accelerates parameter tuning because you do
not have to re-run the model each time you change
parameters.
• External mode also lets you develop and validate your model
using the actual data and hardware for which it is designed.
This software-hardware interaction is not available solely by
simulating a model.
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
External mode (II)
•
The model on the host computer as a user interface for interacting
with the model running on the target hardware:
Departamento de Ingeniería
de Sistemas y Automática
– When you open blocks and apply new parameter values on the host
computer, External mode updates the corresponding values in the model
running on the target hardware.
– If your model contains blocks for viewing data, such as Scope or Display
blocks, External mode sends the corresponding data from the target
hardware to those blocks on the host computer.
•
•
When you have finished tuning a model, you can disable External
mode and run the tuned model on your hardware.
Some limitations apply while you are using External mode:
– Do not configure Serial Receive or Serial Transmit blocks in your model to
use serial port 0. External mode uses serial port 0.
– Do not use the following Arduino servo blocks: Standard Servo Read,
Standard Servo Write, and Continuous Servo Write.
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Detecting Task Overruns
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Examples
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Example: Led output with arduino UNO
Departamento de Ingeniería
de Sistemas y Automática
• Connect a LED or use onboard led connected to Pin 13
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Example: Commanding a standard servo
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Servo PPM signal
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
More examples at Mathworks community
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
How to design Device drivers
• You can build your own device drivers such as:
– Incremental encoder quadrature decoding (Interrupts)
– I2C
– SPI
Departamento de Ingeniería
de Sistemas y Automática
• Intermediate/advanced topic to be addressed in another
seminar.
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Class Project: Hands-on
Departamento de Ingeniería
de Sistemas y Automática
• Use a photocell and a servo to control the orientation of a solar
photovoltaic panel with the Arduino UNO.
• Use the simulink example and implement a control law fot the
panel orientation depending on the light intensity.
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Photocell
Departamento de Ingeniería
de Sistemas y Automática
• Choosing the pull-down resistor value (10K vs 1K).
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Departamento de Ingeniería
de Sistemas y Automática
Links and references
• General:
www.mathworks.com
• Simulink arduino support:
http://www.mathworks.es/es/help/simulink/arduino.html
• All about arduino:
http://www.arduino.cc
• How to design device drivers:
http://www.mathworks.com/matlabcentral/fileexchange/39354device-drivers
• Mathworks MakerZone Comunity:
http://makerzone.mathworks.com/
• Using a photocell:
http://learn.adafruit.com/photocells/using-a-photocell
Master Oficial en Ingeniería Mecatrónica
Modelado y Control de Sistemas Mecatrónicos y Robots
Descargar