learning basic mechatronics concepts using the · pdf filelearning basic mechatronics concepts...
TRANSCRIPT
![Page 1: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/1.jpg)
® ®
Learning Basic Mechatronics concepts using the Arduino Board and MATLAB
rks,
Inc.
g
Giampiero Campa PhD Technical Evangelist
009
The
Mat
hWoGiampiero Campa, PhD, Technical Evangelist
The MathWorks, 400 Continental Blvd, Suite 600-028, El Segundo, CA, 90245
giampiero campa@mathworks com
![Page 2: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/2.jpg)
® ®
OutlineOutline
A few challenges with Mechatronics projects
A d i I t d ti & M ti ti Arduino Introduction & Motivation
Analog and Digital IO Analog and Digital IO
Motor ControlMotor Control
Arduino target and Useful Links
2
![Page 3: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/3.jpg)
® ®
Sensing & Data AcquisitionSensing & Data Acquisition
Distance/Range Position/Orientation Force/Pressure Distance/Range, Position/Orientation, Force/Pressure, Touch, Orientation, Motion/Speed, Environment, Optical, Chemical, Flow, Voltage/Current, sensor selection is largely application related but also related to:
Data acquisition system (Analog and Digital input) Data acquisition system (Analog and Digital input) Number of sensors Ranges A/D conversion issues as Resolution and Sampling Rate Signal Conditioning Delay/Bandwidth
3
Delay/Bandwidth
![Page 4: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/4.jpg)
® ®
Processing & Programming PlatformProcessing & Programming Platform
External Microcontroller/Microprocessor Board External Microcontroller/Microprocessor Board Development-Prototyping Environment Low-Level Programming Language, Compiler/Assembler Connection to computer (or LCD) for visualization DAQ typically already there Stand Alone Issues, power requirements, p q
ComputerC ti t DAQ (USB PCI S i l Wi l ) Connection to DAQ (USB, PCI, Serial, Wireless)
Programming-Analysis Environment OS / Drivers (Real Time ?)
4
Embedded / Small Form Factor Computer
![Page 5: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/5.jpg)
® ®
Acting (Digital & Analog Outputs PWM)Acting (Digital & Analog Outputs, PWM)
Relays
Motors DC/Steppers/Servos
Si l A lifi ti Signal Amplification Power Suppliers, Batteries Forward/Reverse, H-Bridges
Displays
5
![Page 6: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/6.jpg)
® ®
Lots of (interrelated) choicesLots of (interrelated) choices
Driving Factors:Driving Factors: Cost Easy of Usey Flexibility
Non trivial process even for simple projects Some challenges are inherent to the multidisciplinary
nat re of the field and it’s good for st dents to str gglenature of the field and it’s good for students to struggle with them (e.g. sensors, actuators, power, design)
Some are not (e.g. debugging C code, drivers issues,
6
( g gg g , ,hardware limitations, unreadable manuals, high costs)
![Page 7: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/7.jpg)
® ®
OutlineOutline
A few challenges with Mechatronics projects
A d i I t d ti & M ti ti Arduino Introduction & Motivation
Analog and Digital IO Analog and Digital IO
Motor ControlMotor Control
Arduino target and Useful Links
7
![Page 8: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/8.jpg)
® ®
ArduinoArduino
Arduino is an open-source microcontroller board, with an associated development environment.
8
![Page 9: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/9.jpg)
® ®
PhilosophyPhilosophy
The schematics and the software are released under the Creative Commons License
Manufacturing and Distributing an official Arduino product is subject to a few restrictions (basically the authors needis subject to a few restrictions (basically the authors need to be contacted) to make sure that: Things work properly.
Th d t fit i t th ll j t The product fits into the overall project. It is manufactured under reasonably fair labor conditions.
9
Some form of contribution might be traded in this case
![Page 10: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/10.jpg)
® ®
Specifications (Arduino 2009)Specifications (Arduino 2009)
ATmega328 microcontrollerg 16 MHz, 32 KB FLASH, 2KB SRAM, 1K EEPROM 19 DIO pins (6 can be 8-bits 500Hz PWM outputs) 6 analog inputs (10 bits over 0-5V range, 15kSPS) 5V operating voltage, 40 mA DC Current per IO Pin
C ( ) f S I2C (TWI) fully supported and SPI partially supported USB connection (FTDI chip converts USB to Serial) FTDI Drivers provide a virtual com port to the OS FTDI Drivers provide a virtual com port to the OS Power jack and optional 9V power supplier
10
![Page 11: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/11.jpg)
® ®
ShieldsShields
Shields are boards to be mounted on top of the ArduinoShields are boards to be mounted on top of the Arduino They extend its functionality to control different devices,
acquire data, and so on …
Examples:M t /St /S Shi ld (M t C t l) Motor/Stepper/Servo Shields (Motor Control)
Multichannel Analog and Digital IO Shields Prototyping Shields Ethernet and Wireless communication Shields Wave Shields (Audio) GPS Logging and Accelerometer Shields
11
GPS Logging and Accelerometer Shields Relay Control Shields
![Page 12: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/12.jpg)
® ®
OutlineOutline
A few challenges with Mechatronics projects
A d i I t d ti & M ti ti Arduino Introduction & Motivation
Analog and Digital IO Analog and Digital IO
Motor ControlMotor Control
Arduino target and Useful Links
12
![Page 13: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/13.jpg)
® ®
What is Arduino good for ?What is Arduino good for ?
Projects requiring Analog and Digital IO
Mechatronics Projects using Servo, DC or Stepper Motors
Projects with volume/size and/or budget constraints
P j t i i t f fl ibilit d Projects requiring some amount of flexibility and adaptability (i.e. changing code and functions on the fly)
13
![Page 14: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/14.jpg)
® ®
What is Arduino good for ?What is Arduino good for ?
Basically any Mechatronics project requiring sensing and acting, provided that computational requirements are not too high (e.g. can’t do image processing with it)
Ideal for undergraduate/graduate Mechatronics Labs and Ideal for undergraduate/graduate Mechatronics Labs and Projects
There is a very large community of people using it for all kind of projects, and a very lively forum where it is possible to get timely support
14
possible to get timely support
![Page 15: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/15.jpg)
® ®
MathWorks SolutionsMathWorks Solutions
Arduino IO Package:Used to perform analog and digital input and output as well as motor control from the MATLAB command linewell as motor control from the MATLAB command line
Arduino Target: Used to compile and download Simulink® code directly to th A d i b dthe Arduino board
15
![Page 16: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/16.jpg)
® ®
Arduino IO : ConceptArduino IO : Concept
16
![Page 17: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/17.jpg)
® ®
Using MATLAB vs IDE EnvironmentUsing MATLAB vs. IDE Environment
MATLAB is more interactive, results from Digital/Analog I/O instructions can be seen immediately without needing to program compile upload execute each timeto program – compile – upload – execute each time.It is a good idea even just for algorithm prototyping
MATLAB code is generally more compact and easier to understand than C (higher-abstraction data types, vectorization no need for initialization/allocation less linesvectorization, no need for initialization/allocation, less lines of code) which means:a) MATLAB scales better with project complexity
17
) p j p yb) People get the job done faster in MATLAB
![Page 18: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/18.jpg)
® ®
Using MATLAB vs IDE EnvironmentUsing MATLAB vs. IDE Environment
For wider-breadth projects (that might include data p j ( ganalysis, signal processing, calculations, simulation, statistics, control design …) MATLAB is better suited
Engineering Departments typically need to introduce MATLAB during the first years, so this package will allowMATLAB during the first years, so this package will allow professors to keep the same environment and students to practice more MATLAB
People might already be more familiar with MATLAB than with C, both in industry and university
18
with C, both in industry and university
![Page 19: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/19.jpg)
® ®
OutlineOutline
A few challenges with Mechatronics projects
A d i I t d ti & M ti ti Arduino Introduction & Motivation
Analog and Digital IO Analog and Digital IO
Motor ControlMotor Control
Arduino target and Useful Links
19
![Page 20: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/20.jpg)
® ®
Analog & Digital IO: WorkflowAnalog & Digital IO: Workflow
Plug board USE:Plug boardConnect Assign Pin Mode
Digital InputDigital InputDigital OutputAnalog InputA l O t t
DisconnectUnplugAnalog Output p g
20
![Page 21: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/21.jpg)
® ®
ConnectConnect
Use the command a=arduino(‘port’), with the right COM port as a string input argument, to connect MATLAB with the board and create an arduino object in thewith the board and create an arduino object in the workspace:
>> a=arduino(‘COM5’);
21
![Page 22: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/22.jpg)
® ®
Assign Pin Mode (input/output)Assign Pin Mode (input/output)
Use the command a.pinMode(pin,str)to get or set the mode of a specified pin:
Examples:>> a.pinMode(11,'output')>> a.pinMode(10,'input')>> val=a.pinMode(10)>> a.pinMode(5)>> a.pinMode(5)>> a.pinMode;
22
![Page 23: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/23.jpg)
® ®
Digital Read (digital input)Digital Read (digital input)
Use the command a.digitalRead(pin) to read the digital status of a pin:
Examples:>> val=a.digitalRead(4)
This returns the value (0 or 1) of the digital pin number 4
23
![Page 24: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/24.jpg)
® ®
Digital Read ExampleDigital Read Example
>> a.digitalRead(4)
ans =
Command executed while button is released
0
>> a.digitalRead (4) Command executed while b tt i d
MATLAB Command Window
24
ans =
1
button is pressed
![Page 25: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/25.jpg)
® ®
Digital Write (digital output)Digital Write (digital output)
Use the command a.digitalWrite(pin,val) with the pin as first argument and the value (0 or 1) as second argument:second argument:
Examples:Examples:a.digitalWrite(13,1); % sets pin #13 higha.digitalWrite(13,0); % sets pin #13 low
25
![Page 26: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/26.jpg)
® ®
Digital Write ExampleDigital Write Example
MATLAB
>> a.digitalWrite(9,1)>> di it lW it (9 0)
MATLAB Command Window
>> a.digitalWrite(9,0)
Led OnLed Off
26
![Page 27: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/27.jpg)
® ®
Analog Read (analog input)Analog Read (analog input)
Use the command val=a.analogRead(pin)with the pin as an integer argument:
Example: val=a.analogRead(0); % reads analog pin # 0 g ( ); g p #
The returned argument ranges from 0 to 1023
Note that 6 analog input pins (0 to 5) coincide with the di it l i 14 t 19 d l t d th b tt i ht
27
digital pins 14 to 19 and are located on the bottom right corner of the board
![Page 28: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/28.jpg)
® ®
Analog Read ExampleAnalog Read Example
>> a.analogRead(3)MATLAB Command
ans =
285
Command Window
>> a.analogRead(3)
ans =
855
28
855
![Page 29: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/29.jpg)
® ®
Analog Write (analog output)Analog Write (analog output)
Use the command a.analogWrite(pin,val) with the pin as first argument and the value (0 to 255) as second argument:argument:
Examples:Examples: a.analogWrite(11,90); % sets pin #11 to 90a.analogWrite(3,10); % sets pin #3 to 10
29
![Page 30: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/30.jpg)
® ®
Analog Write ExampleAnalog Write Example
MATLAB
>> a.analogWrite(9,10)>> l W it (9 50)
MATLAB Command Window
>> a.analogWrite(9,50)
Led On (20%)Led On (4%)
30
![Page 31: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/31.jpg)
® ®
DisconnectDisconnect
Use the command delete(a) to disconnect the MATLAB session from the Arduino board:>> delete(a);>> delete(a);
This renders the serial port available for other sessions orThis renders the serial port available for other sessions or the IDE environment
31
![Page 32: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/32.jpg)
® ®
Example : The blink challenge projectExample : The blink challenge project
This challenge is described in the last part of the LadyadaArduino tutorial, http://www.ladyada.net/learn/arduino/ and it consists in designing a circuit with 5 LEDs and 4 modesit consists in designing a circuit with 5 LEDs and 4 modes (user switches mode by pushing a button):
1. All LEDs Off2. All LEDs On3 LED bli ki i lt l ith i bl f3. LEDs blinking simultaneously with variable frequency
regulated by a potentiometer4 LEDs blinking one after the other (wave like) with
32
4. LEDs blinking one after the other (wave like) with variable speed regulated by a potentiometer
![Page 33: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/33.jpg)
® ®
SchematicsSchematics
33
![Page 34: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/34.jpg)
® ®
Information FlowInformation Flow
INPUTSOUTPUTS
MATLAB
34
USER
![Page 35: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/35.jpg)
® ®
MATLAB CodeMATLAB Code% initialize pinsdisp('Initializing Pins ...');
% get previous stateprev=a.digitalRead(bPin);p( g )
% sets digital input pinsa.pinMode(2, 'INPUT'); a.pinMode(3, 'INPUT'); a.pinMode(4, 'INPUT');
% start loopdisp('Starting main loop, push button to change state ...');
% loop for 1 minutetica.pinMode(7, 'INPUT');
a.pinMode(8, 'INPUT');
% sets digital and analog (pwm) output pins a.pinMode(5, 'OUTPUT'); % pwm available herea pinMode(6 'OUTPUT'); % pwm available here
ticwhile toc/60 < 1
% read analog inputain=a.analogRead(aPin);v=100*ain/1024;a.pinMode(6, OUTPUT ); % pwm available here
a.pinMode(9, 'OUTPUT'); % pwm available herea.pinMode(10,'OUTPUT'); % pwm available herea.pinMode(11,'OUTPUT'); % pwm available herea.pinMode(12,'OUTPUT'); a.pinMode(13,'OUTPUT');
;
% read current button value% note that button has to be kept pressed a few seconds to make sure% the program reaches this point and changes the current button value curr=a.digitalRead(bPin);
% button pin and analog pinbPin=2;aPin=2;
% initialize statet t 0
% button is being released, change state% delay corresponds to the "on" time of each led in state 3 (wave)if (curr==1 && prev==0),
state=mod(state+1,4);disp(['state = ' num2str(state) ' delay = ' num2str(v/200)]);
35
state=0; disp([ state = num2str(state) , delay = num2str(v/200)]);end
![Page 36: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/36.jpg)
® ®
MATLAB CodeMATLAB Code% toggle state all on or off
if (state<2)
% waveif (state==3),
f i 4 8if (state<2),for i=9:13,
a.digitalWrite(i,state);end
end
for i=4:8,a.digitalWrite(9+mod(i,5),0);a.digitalWrite(9+mod(i+1,5),1);pause(v/200);
enda.digitalWrite(13,0);
end
% blink all leds with variable delayif (state==2),
for j=0:1,% analog output pinsf i 9 11
end
% update stateprev=curr;
endfor i=9:11,a.analogWrite(i,20*(i-8)*j);
end% digital output only pinsfor i=12:13,
a digitalWrite(i j);
end
% turn everything offfor i=9:13, a.digitalWrite(i,0); enda.digitalWrite(i,j);
endpause((15*v*(1-j)+4*v*j)/1000);
endend
g ( )
36
![Page 37: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/37.jpg)
® ®
Prototyping ShieldPrototyping Shield
The schematics was implemented using the prototyping shield:
This shield allows for an easy prototyping of projects
37
based on the Arduino board
![Page 38: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/38.jpg)
® ®
ImplementationImplementation
Pot to regulate
Button to change moderegulate
on/off LEDs delay
mode
ArduinoArduino Board underneath
38
![Page 39: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/39.jpg)
® ®
OutlineOutline
A few challenges with Mechatronics projects
A d i I t d ti & M ti ti Arduino Introduction & Motivation
Analog and Digital IO Analog and Digital IO
Motor ControlMotor Control
Arduino target and Useful Links
39
![Page 40: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/40.jpg)
® ®
Motor ShieldMotor ShieldServo Ports # 1 & 2
Motor Ports # 3 & 4Stepper Port #2
Motor Ports # 1 & 2Stepper Port #1 ppStepper Port #1
Arduino
40
Board underneath
External Power Connector
Jumper on == same power source for both Arduino and motor shield
![Page 41: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/41.jpg)
® ®
Motor Shield characteristicsMotor Shield characteristics
2 connections for 5V 'hobby' servos connected to the2 connections for 5V hobby servos connected to the Arduino's high-resolution dedicated timer
Up to 4 bi-directional DC motors with individual 8-bit speed selection
Up to 2 stepper motors (unipolar or bipolar) with single coil, double coil, interleaved or micro-stepping.
4 H-Bridges: L293D chipset provides 0.6A per bridge (1 2A k) ith th l h td t ti 4 5V t 36V
41
(1.2A peak) with thermal shutdown protection, 4.5V to 36V
![Page 42: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/42.jpg)
® ®
Servo motors WorkflowServo motors Workflow
Plug Board USE:ConnectPlug Servo Servo Attach
Servo StatusServo StatusServo WriteServo ReadS D t h
Unplug ServoDisconnectU l B dServo Detach Unplug Board
42
![Page 43: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/43.jpg)
® ®
Servo Status (attached/detached)Servo Status (attached/detached)
Use the command val=a.servoStatus(num) to get the status of a servo, which can be either:
tt h d ( d f d it ) attached (ready for read or write) detached (pin 9 or 10 can be otherwise used)
Examples: val=a.servoStatus(1); a.servoStatus(2);a.servoStatus;
43
![Page 44: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/44.jpg)
® ®
Servo AttachServo Attach
Use the command a.servoAttach(num) to attach a servo to the corresponding pwm pin (servo #1 uses pin #10 servo #2 uses pin #9)#10, servo #2 uses pin #9).
Examples:Examples: a.servoAttach(1); % attach servo #1 a.servoAttach(2); % attach servo #2
44
![Page 45: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/45.jpg)
® ®
Servo ReadServo Read
Use the command val=a.servoRead(num) to read the angle from a servo. The argument is the number of the servoservo.
The returned value is the angle in degrees, typically from 0 to 180.yp y
Examples: val=a.servoRead(1); % read angle servo #1 val=a.servoRead(2); % read angle servo #2
45
val a.servoRead(2); % read angle servo #2
![Page 46: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/46.jpg)
® ®
Servo WriteServo Write
Use the command a.servoWrite(num,val) to rotate a servo of a given angle. Th fi t t i th b f th th d The first argument is the number of the servo, the second is the angle.
Examples: a.servoWrite(1,45); % rotates 45° servo #1
46
![Page 47: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/47.jpg)
® ®
Servo DetachServo Detach
Use the command a.servoDetach(num) to detach a servo from the corresponding pwm pin.
Examples: a.servoDetach(1); % detach servo #1 ( ); #a.servoDetach(2); % detach servo #2
47
![Page 48: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/48.jpg)
® ®
Servo ExampleServo Example>> a.servoAttach(2)
>> a servoWrite(2 5)
MATLAB Command Wi d
External Power:6V Lantern Battery
Power Jumper on (suggested)
>> a.servoWrite(2,5)
>> a.servoWrite(2,180)
>> a.servoRead(2)
Window:
ans =
180Servo #2
48
![Page 49: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/49.jpg)
® ®
DC and Stepper motors WorkflowDC and Stepper motors Workflow
Plug Board USE:ConnectWire Motor
S t S dSet SpeedRun (or Step)
UnwireDisconnectU lUnplug
49
![Page 50: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/50.jpg)
® ®
DC Motor SpeedDC Motor Speed
Use the command val=a.motorSpeed(num,val); to p ,get or set the speed of a DC motor.
The first argument, num, is the number of the motor (1 to 4) th d t i th d (0 t 255)4) the second argument is the speed (0 to 255)
Examples: Examples: a.motorSpeed(4,200);val=a.motorSpeed(1);
t S d(3)a.motorSpeed(3);a.motorSpeed;
50
Note: nothing moves unless we issue a run command …
![Page 51: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/51.jpg)
® ®
DC Motor RunDC Motor Run
Use the command a motorRun(num str); to run a given DCUse the command a.motorRun(num,str); to run a given DC motor.
The first argument, num, is the number of the motor (1 to 4) the second argument is a string that can be either ‘forward’, ‘backward’, ‘release’
Examples: a.motorRun(1,'forward'); a.motorRun(3,'backward'); a.motorRun(1,'release');
51
![Page 52: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/52.jpg)
® ®
DC Motor: ExampleDC Motor: Example
>> t S d(3 100)MATLAB >> a.motorSpeed(3,100)
>> a.motorRun(3,’forward’)
MATLAB Command Window:
(running)
Motor #3
52
![Page 53: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/53.jpg)
® ®
Stepper Motor SpeedStepper Motor Speed
Use the command val=a.stepperSpeed(num,val); pp p ,to get or set the speed of a stepper motor.
The first argument, num, is the number of the motor (1 to 4) th d t i th d i RPM (0 t 255)4) the second argument is the speed in RPM (0 to 255)
Examples: Examples: a.stepperSpeed(2,50)val=a.stepperSpeed(1);
t S d(3)a.stepperSpeed(3);a.stepperSpeed;
53
Again, nothing moves unless we issue a step command ...
![Page 54: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/54.jpg)
® ®
Stepper Motor StepStepper Motor Step
Use the commandUse the command a.stepperStep(num,str,sty,steps); to advance a stepper motor of a certain number of steps. Wh i th b f th t (1 2) Where num is the number of the stepper (1 or 2), str can be either “forward”, “backward”, “release”, sty is the style of motion and can be “single”, ‘double’, ‘interleave’, g , , ,‘microstep’, steps is the number of steps (0 to 255)
Examples: a.stepperStep(1,'forward’,‘interleave’,50);a.stepperStep(1,‘backward’,‘double’,200);
54
pp p( , , , );a.stepperStep(1,'release');
![Page 55: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/55.jpg)
® ®
Stepper Motor: ExampleStepper Motor: Example
>> t S d(1 50)MATLAB >> a.stepperSpeed(1,50)
>> a.stepperStep(1,'backward','microstep',100)
MATLAB Command Window:
Arduino Target, Links, Conclusion
Stepper #1 Coil #1
Coil #2
55
![Page 56: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/56.jpg)
® ®
OutlineOutline
A few challenges with Mechatronics projects
A d i I t d ti & M ti ti Arduino Introduction & Motivation
Analog and Digital IO Analog and Digital IO
Motor ControlMotor Control
Arduino target and Useful Links
56
![Page 57: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/57.jpg)
® ®
Arduino TargetArduino Target
Arduino IO:Used to perform analog and digital input and output from the MATLAB command linethe MATLAB command line
Arduino Target:Arduino Target: Used to compile and download Simulink® code directly to the Arduino board
57
![Page 58: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/58.jpg)
® ®
Arduino Target LibraryArduino Target Library
58
![Page 59: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/59.jpg)
® ®
Arduino ExamplesArduino Examples
59
![Page 60: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/60.jpg)
® ®
Useful Links: Buying an ArduinoUseful Links: Buying an Arduino
An extensive list of sites where you can buy an Arduino is here:http://www arduino cc/en/Main/Buyhttp://www.arduino.cc/en/Main/Buy
In the US, Adafruit industriesIn the US, Adafruit industrieshttp://www.adafruit.com/provides a starter pack that includes pretty much everything that you need to get started with the boardeverything that you need to get started with the board.
60
![Page 61: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/61.jpg)
® ®
Useful Links: Buying MotorsUseful Links: Buying Motors
RC Servos from Pololu:http://www.pololu.com/catalog/category/23
DC Motors from Pololu:http://www.pololu.com/catalog/category/51
Jameco for Stepper Motors and pretty much everything:http://www.jameco.com/
List of Hobbyist and Surplus Stores:htt // l d d t/lib / /h bb i t ht l
61
http://www.ladyada.net/library/procure/hobbyist.html
![Page 62: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/62.jpg)
® ®
Useful Links: Getting Started GuidesUseful Links: Getting Started Guides
Official Arduino web site: http://arduino.cc/en/ Knowledge base: http://www.freeduino.org/
Official Getting Started guide: http://arduino.cc/en/Guide/HomePage
The LadyAda Tutorial: The LadyAda Tutorial:http://www.ladyada.net/learn/arduino/
MATLAB ArduinoIO package, send me an email here: [email protected] li k A d i T t h f i MATLAB C t l
62
Simulink Arduino Target: search for in MATLAB Central (or google for “Arduino Target”)
![Page 63: Learning Basic Mechatronics concepts using the · PDF fileLearning Basic Mechatronics concepts using the ... There is a very large community of people using it for all kind of projects,](https://reader034.vdocuments.mx/reader034/viewer/2022052515/5a730ab37f8b9ac0538e4e49/html5/thumbnails/63.jpg)
® ®
ConclusionConclusion
Arduino is an inexpensive open-source microcontroller board, well suited for a wide range of projects
Arduino + ArduinoIO package + MATLAB = inexpensive and interactive Analog and Digital IO frominexpensive and interactive Analog and Digital IO from the MATLAB command line
Arduino + Motor Shield + ArduinoIO package + MATLAB = inexpensive and interactive Motor Control from the MATLAB command line
63
MATLAB command line