Page 1
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
Jose-Luis Poza-Luján
Arduino as embedded industrial controllerAn introduction to the Arduino as control system
Page 2
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
The teacher
• Ph D. Jose-Luis Poza-Luján– Professor
• University: Technical University of Valencia-Spain (www.upv.es)
• Research: University Institute of Control Systems and Industrial Computing (www.ai2.upv.es)
• Reaching: School of Informatics (www.inf.upv.es)• Management: Dept. of Computer Engineering (
www.disca.upv.es)– Contact
• Web: http://jopolu.webs.upv.es• Mail: [email protected] • Facebook, Twitter, LinkedIn, Google+ jopolu
2
Page 3
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
Aims
• How Arduino can work as platform to develop simple control systems– What’s a Control System?– What’s Arduino?
• What I can do with an Arduino?– Sensors?– Actuators?– Software?
• Where I can find documents?3
Page 4
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
Aims
• Experiences with Arduino?• What do you think can be done with
Arduino?4
Page 5
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
5
Open hardware
• Open hardware– Inspired on the free software? not, open software – It’s not a new concept, first open hardware: early
70s (XX century)• Definitions– Hardware device whose specifications
and schematics can be accessed publically (free or not free charges)
• Open Hardware Specification Program– Limited form of free hardware.– Enough information that allows a
programmer to make a driver.
Page 6
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
6
Project based on open hardware
– OpenSPARC (http://www.opensparc.net/)• Sun Microsystems (Oracle)• Complete 64 bits processor
– Openmoko (http://wiki.openmoko.org/wiki/Main_Page)• Open Mobile Phones (Free Hw and SW)
– Raspberry Pi (http://www.raspberrypi.org/)• Complete embedded PC
– RepRap (http://reprap.org/wiki/RepRap)• Free Hw and SW 3D printer
– Arduino (http://www.arduino.cc/es/)• Free Microcontroller: analog/digital
input/output oriented.
Page 7
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
7
Arduino background
• Origin of Name– Its name comes from "Bar di Re
Arduino" where Massimo Banzispent a few hours (is the name of an ancient European king (year 1002)
• History– IEEE: The Making of Arduino– Arduino: The documentary (2010)(http://vimeo.com/18539129)
Page 8
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
8
Fundamentals of Arduino project
• Collaborative work(credits)– David Cuartielles– Gianluca Martino– Tom Igoe– David Mellis– Massimo Banzi
• Motivations– In 2005, a group of students, and
professors of the Institute of Interactive Design of (Ivrea) in Italy started to develop a Hardware platform because commercial platforms are expensive and closed systems.
– Made entirely in Italy– Target: price < 30 €– Philosophy: DIY (Do It Yourself)
Page 9
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
9
Arduino: Present and future
• Evolution– Web• Source: Arduino
– Software• Sorce: Gource
Page 10
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
10
Where Arduino is placed in Industrial Systems?
Field bus
Redes de planta
LAN & WAN
Production Network
Fourth floor: Business
Third floor: Management (Warehouses)
Second floor: Field level (PC)
First floor: Control level (PLC/CNC)
Ground: devices (Sensors and actuators)
Page 11
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
11
Where Arduino is placed in REAL Industrial Systems?
• Bus integration
Source: Siemens 2013
Page 12
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
12
Where to place Arduino?
Arduino
Intel Galileo
Raspberry PI
PLC
Reliability (and price)
Computing
Page 13
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
13
Where to place Arduino?
• Do you know any of the above systems (PLC, Arduino, Intel Galileo, Raspberry PI)?
Page 14
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
Overview
14
The programming environment allows you to write, compile and load the code that controls the system.
The Arduino runs the code through a control loop (infinite loop), without using the programming environment for normal operation
From your home to the factory
Page 15
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
15
Hardware
• No hardware…. No software– So that… It is important to know the
hardware on which the software will run.
Arduino ADK R310.16 cm
5.3
cm6.8 cm
5.3
cm
Arduino Uno
Arduino Mega
1.8 cm
4.3
cm
Arduino Diecimila
Arduino Duemilanove
5.0
cm
Arduino LilyPadArduino Nano
Arduino Leonardo
Arduino Ethernet
http://arduino.cc/en/Main/Boards
Page 16
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
16
Models & characteristics
Model Processor Speed Power (V) Memory I/O (A)
ADK ATMEGA2560 16 MHz 7-12 (5) 256 KB 54 (16)
BT ATMEGA328 16 MHz 1.2-5.5 (5) 32 KB 14 (6)
Diecimila ATMEGA168 16 MHz 7-12 (5) 16 KB 14 (6)
Duemilanove ATMEGA168 16 MHz 7-12 (5) 16/32 KB 14 (6)
Ethernet ATMEGA328 16 MHz 7-12 (5) 32 KB 14 (6)
Fio ATMEGA328p 8 MHz 3.3-12 (3.3) 32 KB 14 (8)Leonardo ATMEGA32U4 16 MHz 7-12 (5) 32 KB 20 (12)
LilyPad ATmega268V 8 MHz 2.7-5.5 16 KB 14 (6)
Mega ATMEGA1280 16 MHz 7-12 (5) 128 KB 54 (16)
Mega2560 ATMEGA2560 16 MHz 7-12 (5) 256 KB 54 (16)
Mini ATMEGA168 16 MHz 7-9 (5) 32 KB 14 (8)
Nano ATMEGA328 16 MHz 7-12 (5) 16 KB 14 (8)
Uno ATMEGA328p 16 MHz 7-12 (5) 32 KB 14 (6)
Page 17
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
17
Programming environments
• Arduino IDE– Depending on the Operative System, needs
a driver installation (Guide)– Based on Processing language• Part of the project “Design by numbers”, from
the MIT, to bring computer science to “no programmers”.• Processing is similar al C, but it is possible to
program Arduino in other languages• Aimed at users who do not need to know high
level languages• Oriented to programmers unfamiliar with the
hardware.• Conditions GNU LGPL
Page 18
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
18
Programming environments
• Arduino IDE• Google Code
Page 19
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
19
Programming environments
• It is possible to program Arduino by means other estándar platforms– Eclipse • PlayGround (alternativas)
– VisualMicro • Microsoft environment
– Atmel Studio• Classic microprocessors programing
environment– Minibloc, Compilador online
• More environments on Arduino site
Page 20
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
20
Arduino simulators
• SFA– Simulator for Arduino– Windows
• VBBExpress– Virtual Bread Board– Windows
• Simuino– Linux (Written on C)
• Arduino Simulator– IOS
• Ardusim– Working project
• Fritzing– Arduino Design environment
Simulator for Arduino
Virtual Bread Broad
Page 21
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
21
Mobile device software
Eight Control Arduino
Ardumote
Arduino Commander
Domotic Home with Arduino
Arduino Reference
Arduino Uno Communicator
Arduino meets Android
Arduino GR
Arduino Control Free
Arduino simulator
Hotkeys for Arduino
And more…
Page 22
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
22
References
– Arduino Programming Notebook. • Brian Evans. 2011. (www.lulu.com)
arduino "creative commons" filetype:pdf
arduino "cheat sheet" filetype:pdf
Page 23
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
23
References
– Arduino Cookbook • Michael Margolis. • 2012
– Getting Started with Arduino• Massimo Banzi. 2011
– Make: Arduino Bots and Gadgets• Tero Karvinen, Kimmo Karvinen• 2011
– Environmental Monitoring with Arduino• Emily Gertz , Patrick Di Justo. 2012
Page 24
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
24
References
• Arduino Playgroundhttp://arduino.cc/playground/Main/HomePagehttp://arduino.cc/en/Tutorial/HomePagehttp://arduino.cc/playground/Es/Guias/
• Web siteshttp://www.arduinobooks.com/http://www.arduinodev.com/
And more…http://en.wikipedia.org/wiki/Arduinohttp://tronixstuff.wordpress.com/tutorials/
Page 25
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
25
References
• Distributors list– http://arduino.cc/es/Main/Buy
• Arduino oriented distributors– Seedstudio• http://www.seeedstudio.com
– RS• http://nl.rs-online.com/web/
Page 26
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
26
• Photoduino. http://photoduino.com/– Photoduino is anOpen camera
Controller based on Arduino. Used for taking pictures Automatically.
• PolarPlotter. http://roxen.github.io/polar-plotter/– Plotter based on a single arm robot.
With greater performance area that traditional plotters.
• ArduPilot. http://ardupilot.com/– Arduino based drone.
Arduino based projects
http://makezine.com/http://www.instructables.com/ http://hacknmod.com/
Page 27
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
27
Arduino based projects
Page 28
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
28
Arduino based projects
• You think it's possible for you to learn to do things with Arduino?
Page 29
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
29
Arduino uno: connections
• Pin mapping
Page 30
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
30
Arduino uno: communications
• Programming and communications pin
Page 31
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
31
Pin functionality
Pin (Link ) Functionality[0,13] Digital Input/Output
0, 1 RX, TX. Serial TTL (ATmega8U2 USB-to-TTL chip)2, 3 Extern interruptions (high or low level, and signalled rising or falling)
3,5,6,9,10,11 Analogic outputs PWM (pulse-width modulation).10,11,12,13 Communications SPI (Serial Peripheral Interface)
GND GroundAREF Analogic reference
[A0,A5] Analogical inputs 10 bits = from 0 to 1023A4,A5 Communications TWI/I2C (Two Wire Interface)
Vin Extern power(combined with GND)5V 5 V output (combined with GND)
3V3 3.3V, 50mA output (combined with GND)RESET Restart the board
ICSP In Chip/Circuit Serial Programmer (to direct access to ATMega)
Page 32
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
32
Power supply
• USB– 5V
• Extern– Range• Work: 7-12V• Limits: 6-20V
– Connectors• 2.1mm (+ centro)s• Pins Vin, GND
• The selection of the power supply is automatically
Page 33
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
33
Connecting components
• Breadboard
• Buses– Carried on the same cable the sensor /
actuator signal and the power supply
Page 34
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
34
Danger
• Some ways to destroy an Arduino– #1 Short circuit a I/O pin with GND– #2 Short circuit two I/O pins– #3 Apply overvoltage on I/O pins– #4 Interchange polarity between Vin y GND– #5 Short circuit Vin y GND– #6 Apply voltage to output voltage pins (5V y 3V3)– #7 Apply more than 12 V to reset pin de reset– #8 Over charge the Arduino (connect to Arduino a
great amount of components without additional power supply)
http://ruggedcircuits.com/html/ancp01.html
Page 35
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
35
Caution
• Hardware– Assemble the circuits with the Arduino offline– Review connections before connect the
Arduino– No force conectors– In case of failure: Test every component
individually– Do not desperate: it is difficult for a run at the
first assembly• Software– Save code frequently– Comment the code– One change… one test
Page 36
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
36
Programing
• Arduino programs are known as “sketches
• References– http://arduino.cc/es/Reference/HomePage– http://arduino.cc/es/Reference/Extended
Page 37
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
37
Expectations
• Is Arduino a Powerful device?
Page 38
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
38
Digital output
• Examples Basics Blink
int pinLed = 13;
void setup(){ pinMode(pinLed, OUTPUT);}
void loop(){ digitalWrite(pinLed,HIGH); delay(1000); digitalWrite(pinLed,LOW); delay(1000);}
Page 39
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
39
Digital output & Digital input
• Examples Basics Blink
• Examples Basics DigitalReadSerial
Pin 13 220RLed
GND
Pin 13 220RLed
GND
Pin 6
10KR
GND
5V switch
Page 40
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
40
Digital input-output
• Simple control loopint pinSwitch = 6;int pinLed = 13; void setup(){ pinMode(pinSwitch, INPUT); pinMode(pinLed, OUTPUT);}void loop(){ digitalWrite(pinLed,LOW); if(digitalRead(pinSwitch)==HIGH){ digitalWrite(pinLed,HIGH); }}
Pin 13 220RLed
GND
Pin 6
10KR
GND
5V switch
Page 41
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
41
Analogical output & Analogical input
• Examples Basics Fade
• Examples Basics AnalogReadSerial
Pin 9 220RLed
GND(PWM mode)
A0
10KR
Pin 13 220RLed
GND
5V
GND
Page 42
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
42
Analogical input-output
• Examples Basics Fade
• Examples Basics AnalogReadSerial
Pin 9 220RLed
GND(PWM mode)
A0
10KR
Pin 13 220RLed
GND
5V
GND
Page 43
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
43
Analogical sensor
• LDR (Light Dependent Resistor)
5V10KR LDR
A0
GND
int sensorPin = 0;int value = 0;void setup(){ Serial.begin(9600);}void loop(){ value = analogRead(sensorPin); Serial.println(value); delay(100);}
Page 44
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
44
Analogical actuator
• Speaker
• Controller speaker
Pin 8 100R Speaker 8R
GND
void setup() {}void loop() { tone(8, 1000, 100); delay(1000); noTone(8); delay(1000);}
Pin 8 100R Altavoz 8R
GND
A0
10KR5V
GND
Page 45
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
45
Analogical actuator
• Mapping datavoid setup() { Serial.begin(9600);}void loop() { int sensorReading = analogRead(A0); int thisPitch = map(sensorReading, 0, 1023, 120, 1500); tone(8, thisPitch, 10); Serial.print(sensorReading); Serial.print(":"); Serial.println(thisPitch); delay(1);}
Page 46
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
46
Conclusions
• Arduino is born of the need to provide a platform for the control that is open and accessible
• Free Hardware philosophy has made Arduino extends at high speed
• There are a wide variety of models, consequently there is a wide variety of applications
• There are also a wide variety of programming environments and simulation
• In addition, more documentation can be founded.
Page 47
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
47
Arduino projects
• Youtube test: search “Arduino”+…– Led cube– Quadcopter– 3d printer– Robot– Rocket– Telescope– …– Your interest
Page 48
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
48
Arduino projects
• Test the examples that Arduino IDE offers (asks the teacher the necessary components)
• Propose a circuit– A semaphore?– A “Mini” Piano?– Ask the teacher…
Page 49
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
49
Design your own project
Page 50
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
50
Design your own project
• Arduino oriented sensors and actuators
http://www.cooking-hacks.com/
Page 51
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
51
Arduino in real world?
• Arduino as PLCwww.controllino.cc
www.winkhel.com
www.industrialshields.com/plc-arduino-ardbox-20ios-rele
Page 52
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
52
Arduino in real world?
• Looking for a job– Arduino vs PLC
Page 53
Arduino as an embedded industrial controller
Jose-Luis Poza -Luján
IntroductionOverviewHardwareSoftwareReferencesConnectionsProgrammingConclusionsProject
Jose-Luis Poza-Luján
Thanks
For your attention and for your patient