SlideShare una empresa de Scribd logo
1 de 52
Descargar para leer sin conexión
Justin Mclean, Class Software

       Connecting Hardware to
       Rich Internet Applications
       Flex and the Arduino platform


Tuesday, 1 June 2010
Who am I?
       Director of Class Software for 10 + years
       Developing and creating web applications for 15
         years
       Programming for 25 years
       Adobe community professional in Flex
       Adobe certified developer and trainer in ColdFusion
         and Flex
       Based in Sydney Australia




Tuesday, 1 June 2010
Electronics Trends
       Low cost components
       Small components
       Complex components with simple standard interfaces




Tuesday, 1 June 2010
Computing Trends
       Easier to program
       Use of high level languages
       Software tools
       Open source




Tuesday, 1 June 2010
Are We There Yet?
       Low   cost fast devices
       It’s easy to communicate between devices and
         computers
       Can build complex systems from off the shelf
         components




Tuesday, 1 June 2010
Arduino

               Overview of the Arduino Platform




Tuesday, 1 June 2010
Arduino Platform
       Open  source hardware and software platform
       Easy to program
       Hardware is flexible, fast, low power and low cost




Tuesday, 1 June 2010
Arduino Hardware
       Comes    in a number of shapes sizes
       Low cost
       Easy to extend
       Digital inputs/outputs
       Analog inputs




Tuesday, 1 June 2010
Arduino Boards




Tuesday, 1 June 2010
Arduino Boards




Tuesday, 1 June 2010
Arduino Boards




Tuesday, 1 June 2010
Arduino Boards




Tuesday, 1 June 2010
Arduino Shields




Tuesday, 1 June 2010
Arduino Shields




Tuesday, 1 June 2010
Arduino Shields




Tuesday, 1 June 2010
Arduino Shields




Tuesday, 1 June 2010
Arduino Software Platform
       Open  source cross platform IDE
       Alpha but very stable
       Updated frequently
       Growing and active community




Tuesday, 1 June 2010
Arduino Code
       C  like high level language
       Inbuilt functions to read and set digital and analog
         inputs and outputs
       Includes libraries to perform common hardware or
         software tasks
       Once uploaded programs are permanent




Tuesday, 1 June 2010
Arduino IDE




Tuesday, 1 June 2010
Led Shield Demo




Tuesday, 1 June 2010
Led Shield Demo




Tuesday, 1 June 2010
Issues
       Debugging  can be hard
       No simulator
       Memory, power and speed limits
       Helps to have a little electronics knowledge




Tuesday, 1 June 2010
Connecting Arduinos to the
            Web
               How Arduinos can communicate with the world




Tuesday, 1 June 2010
Connection Methods
       Directto computer (USB)
       Wireless (XBee modems)
       Ethernet or WiFi
       “The Cloud”




Tuesday, 1 June 2010
Supported Languages
       Flashand Flex
       Processing
       Python
       Ruby
       Java
       C, C++, C# and Objective C
       .NET




Tuesday, 1 June 2010
Flex


               Flex to Arduino direct connection




Tuesday, 1 June 2010
Layers of Communication
       Flexto proxy via an Actionscript library
       Proxy to USB communication
       USB to arduino




Tuesday, 1 June 2010
Flex to Arduino
                                            Computer                       Arduino




                           Flex Code                                       Arduino




                       Function Calls and
                                                                            Code
                             Events


                                             TCP/IP                USB
                            AS3 Glue                   USB Proxy           Firmata
                                             Socket                Cable




Tuesday, 1 June 2010
Flex Led Demo




Tuesday, 1 June 2010
AS3Glue Digital Output
       Create  arduino instance
         var arduino:Arduino = new Arduino();
       Wait for firmware version
       Set digital pin as output
         arduino.setPinMode(pin, Arduino.OUTPUT);
       Turn digital output on
         arduino.writeDigitalPin(pin, Arduino.HIGH);




Tuesday, 1 June 2010
Danger Shield Demo




Tuesday, 1 June 2010
AS3Glue Analog Input
       Turn on analog reporting
       arduino.setAnalogPinReporting(pin, Arduino.ON);
       Listen for changes via event listener
         arduino.addEventListener
         (ArduinoEvent.ANALOG_DATA, onReceiveData);

             public function onReceiveData
             (event:ArduinoEvent):void {
             ....
             }



Tuesday, 1 June 2010
Ethernet

               Using Arduino Ethernet Shields




Tuesday, 1 June 2010
Ethernet Shields
       Allow direct internet connection
       No dedicated PC needed
       Shields need a little config
       Can act as web server or client




Tuesday, 1 June 2010
Ethernet Shields




Tuesday, 1 June 2010
Ethernet Shields




Tuesday, 1 June 2010
Ethernet Shields




Tuesday, 1 June 2010
Web Servers
       Simplerthan you think
       A web server:
               Listens for connections
               Parse requests
               Send back status messages/resources requested




Tuesday, 1 June 2010
HTTP Requests
       Startwith request “GET index.html HTTP/1.1”
       Optional headers “Accept-Language: en”
       Empty line
       Optional message body (POST and other requests)




Tuesday, 1 June 2010
Ethernet Arduino Code
       Web  server code
       Easy to modify




Tuesday, 1 June 2010
Ethernet Demo




Tuesday, 1 June 2010
Rich Internet Applications

               Ideas on how and where to use this technology




Tuesday, 1 June 2010
Environmental Monitoring
       Indoors or outdoors
       Wide range of sensors
       Sleep mode/low power consumption




Tuesday, 1 June 2010
Home Automation
       Power and utilities monitoring
       Controlling Lights and Heating/Cooling
       Garden watering/monitoring




Tuesday, 1 June 2010
Security and Safety
       Security systems
       Location reporting
       Bike jackets




Tuesday, 1 June 2010
Why do this?
       Expose  yourself to new ideas and new ways of
         solving problems
       Involves interaction with the real world
       Encourages creativity
       Makes you a better programmer




Tuesday, 1 June 2010
It’s Fun!



Tuesday, 1 June 2010
Questions?

               Ask now, see me after session or email
                  justin@classsoftware.com
               Slides and code can be found at
                       http://blog.classsoftware.com/


Tuesday, 1 June 2010
Useful Sites

               List of useful hardware and software sites




Tuesday, 1 June 2010
Software Sites
       Arduino http://www.arduino.cc for software, user
         forum and playground
       Ethernet Shields http://arduino.cc/en/Reference/
         Ethernet
       Pachhub http://www.pachube.com/




Tuesday, 1 June 2010
Hardware Sites
       Spark  Fun (US) http://www.sparcfun.com/
       Adafruit Industries (US) http://www.adafruit.com/
       Electronic Goldmine (US) http://www.goldmine-
         elec.com/




Tuesday, 1 June 2010
Other Sites
       Lady  Ada http://www.ladyada.com/
       Evil Mad Scientist http://www.evilmadscientist.com/
       NY Resistor http://www.nycresistor.com/
       Make Zine http://www.makezine.com/




Tuesday, 1 June 2010

Más contenido relacionado

Destacado

Destacado (6)

ColdFusion Security and Risk Management
ColdFusion Security and Risk ManagementColdFusion Security and Risk Management
ColdFusion Security and Risk Management
 
Edge Of The Web
Edge Of The WebEdge Of The Web
Edge Of The Web
 
ColdFusion Security and Risk Management
ColdFusion Security and Risk ManagementColdFusion Security and Risk Management
ColdFusion Security and Risk Management
 
Brochure 11352
Brochure 11352Brochure 11352
Brochure 11352
 
Corso Security Manager
Corso Security ManagerCorso Security Manager
Corso Security Manager
 
What's the Right Messaging Standard for the IoT?
What's the Right Messaging  Standard for the IoT?What's the Right Messaging  Standard for the IoT?
What's the Right Messaging Standard for the IoT?
 

Similar a Connecting RIAs and hardware together

Arduino Workshop Day 1 - Basic Arduino
Arduino Workshop Day 1 - Basic ArduinoArduino Workshop Day 1 - Basic Arduino
Arduino Workshop Day 1 - Basic ArduinoVishnu
 
Introducing... Arduino
Introducing... ArduinoIntroducing... Arduino
Introducing... Arduinozvikapika
 
Arduino presentation by_warishusain
Arduino presentation by_warishusainArduino presentation by_warishusain
Arduino presentation by_warishusainstudent
 
Making arduino-talk-with-android-using-amarino
Making arduino-talk-with-android-using-amarinoMaking arduino-talk-with-android-using-amarino
Making arduino-talk-with-android-using-amarinoSudar Muthu
 
Taller IoT en la Actualidad
Taller IoT en la ActualidadTaller IoT en la Actualidad
Taller IoT en la ActualidadLaurence HR
 
Prototyping IoT- Easy Tools to Start Demonstrating Your Hardware Ideas- Santh...
Prototyping IoT- Easy Tools to Start Demonstrating Your Hardware Ideas- Santh...Prototyping IoT- Easy Tools to Start Demonstrating Your Hardware Ideas- Santh...
Prototyping IoT- Easy Tools to Start Demonstrating Your Hardware Ideas- Santh...WithTheBest
 
ARTIFICIAL INTELLIGENCE DESKTOP VOICE ASSISTANT IN PYTHON
ARTIFICIAL INTELLIGENCE DESKTOP VOICE ASSISTANT IN PYTHONARTIFICIAL INTELLIGENCE DESKTOP VOICE ASSISTANT IN PYTHON
ARTIFICIAL INTELLIGENCE DESKTOP VOICE ASSISTANT IN PYTHONIRJET Journal
 
ARDUINO_presentation_by_Ravishankar_Pati.ppt
ARDUINO_presentation_by_Ravishankar_Pati.pptARDUINO_presentation_by_Ravishankar_Pati.ppt
ARDUINO_presentation_by_Ravishankar_Pati.pptDeanSchoolofElectric1
 
Open Sound Control as Middleware for Games Accessibility and Body-movement Co...
Open Sound Control as Middleware for Games Accessibility and Body-movement Co...Open Sound Control as Middleware for Games Accessibility and Body-movement Co...
Open Sound Control as Middleware for Games Accessibility and Body-movement Co...Alasdair Thin
 
iOS Development Introduction
iOS Development IntroductioniOS Development Introduction
iOS Development IntroductionGonzalo Parra
 
aibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@Madridaibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@MadridTomoya Fujita
 
Arduino seminar report
Arduino seminar reportArduino seminar report
Arduino seminar reportZaka Jutt
 
NUS-ISS Learning Day 2019-Building IoT solutions with the Pi
NUS-ISS Learning Day 2019-Building IoT solutions with the PiNUS-ISS Learning Day 2019-Building IoT solutions with the Pi
NUS-ISS Learning Day 2019-Building IoT solutions with the PiNUS-ISS
 
6-1-2010 Smart Technologies for Smart Conference Participants
6-1-2010 Smart Technologies for Smart Conference Participants6-1-2010 Smart Technologies for Smart Conference Participants
6-1-2010 Smart Technologies for Smart Conference ParticipantsMathieu Plourde
 

Similar a Connecting RIAs and hardware together (20)

Arduino Workshop Day 1 - Basic Arduino
Arduino Workshop Day 1 - Basic ArduinoArduino Workshop Day 1 - Basic Arduino
Arduino Workshop Day 1 - Basic Arduino
 
Introducing... Arduino
Introducing... ArduinoIntroducing... Arduino
Introducing... Arduino
 
Arduino presentation by_warishusain
Arduino presentation by_warishusainArduino presentation by_warishusain
Arduino presentation by_warishusain
 
Making arduino-talk-with-android-using-amarino
Making arduino-talk-with-android-using-amarinoMaking arduino-talk-with-android-using-amarino
Making arduino-talk-with-android-using-amarino
 
Taller IoT en la Actualidad
Taller IoT en la ActualidadTaller IoT en la Actualidad
Taller IoT en la Actualidad
 
Prototyping IoT- Easy Tools to Start Demonstrating Your Hardware Ideas- Santh...
Prototyping IoT- Easy Tools to Start Demonstrating Your Hardware Ideas- Santh...Prototyping IoT- Easy Tools to Start Demonstrating Your Hardware Ideas- Santh...
Prototyping IoT- Easy Tools to Start Demonstrating Your Hardware Ideas- Santh...
 
ARTIFICIAL INTELLIGENCE DESKTOP VOICE ASSISTANT IN PYTHON
ARTIFICIAL INTELLIGENCE DESKTOP VOICE ASSISTANT IN PYTHONARTIFICIAL INTELLIGENCE DESKTOP VOICE ASSISTANT IN PYTHON
ARTIFICIAL INTELLIGENCE DESKTOP VOICE ASSISTANT IN PYTHON
 
Mickael Couzinet_Arduino
Mickael Couzinet_ArduinoMickael Couzinet_Arduino
Mickael Couzinet_Arduino
 
Introduction à Arduino
Introduction à ArduinoIntroduction à Arduino
Introduction à Arduino
 
ARDUINO_presentation_by_Ravishankar_Pati.ppt
ARDUINO_presentation_by_Ravishankar_Pati.pptARDUINO_presentation_by_Ravishankar_Pati.ppt
ARDUINO_presentation_by_Ravishankar_Pati.ppt
 
ARDUINO_presentation
ARDUINO_presentationARDUINO_presentation
ARDUINO_presentation
 
Open Sound Control as Middleware for Games Accessibility and Body-movement Co...
Open Sound Control as Middleware for Games Accessibility and Body-movement Co...Open Sound Control as Middleware for Games Accessibility and Body-movement Co...
Open Sound Control as Middleware for Games Accessibility and Body-movement Co...
 
iOS Development Introduction
iOS Development IntroductioniOS Development Introduction
iOS Development Introduction
 
aibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@Madridaibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@Madrid
 
Arduino seminar report
Arduino seminar reportArduino seminar report
Arduino seminar report
 
Arduino
ArduinoArduino
Arduino
 
NUS-ISS Learning Day 2019-Building IoT solutions with the Pi
NUS-ISS Learning Day 2019-Building IoT solutions with the PiNUS-ISS Learning Day 2019-Building IoT solutions with the Pi
NUS-ISS Learning Day 2019-Building IoT solutions with the Pi
 
Particle photon
Particle photon Particle photon
Particle photon
 
Arduino
ArduinoArduino
Arduino
 
6-1-2010 Smart Technologies for Smart Conference Participants
6-1-2010 Smart Technologies for Smart Conference Participants6-1-2010 Smart Technologies for Smart Conference Participants
6-1-2010 Smart Technologies for Smart Conference Participants
 

Último

Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 

Último (20)

Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 

Connecting RIAs and hardware together

  • 1. Justin Mclean, Class Software Connecting Hardware to Rich Internet Applications Flex and the Arduino platform Tuesday, 1 June 2010
  • 2. Who am I? Director of Class Software for 10 + years Developing and creating web applications for 15 years Programming for 25 years Adobe community professional in Flex Adobe certified developer and trainer in ColdFusion and Flex Based in Sydney Australia Tuesday, 1 June 2010
  • 3. Electronics Trends Low cost components Small components Complex components with simple standard interfaces Tuesday, 1 June 2010
  • 4. Computing Trends Easier to program Use of high level languages Software tools Open source Tuesday, 1 June 2010
  • 5. Are We There Yet? Low cost fast devices It’s easy to communicate between devices and computers Can build complex systems from off the shelf components Tuesday, 1 June 2010
  • 6. Arduino Overview of the Arduino Platform Tuesday, 1 June 2010
  • 7. Arduino Platform Open source hardware and software platform Easy to program Hardware is flexible, fast, low power and low cost Tuesday, 1 June 2010
  • 8. Arduino Hardware Comes in a number of shapes sizes Low cost Easy to extend Digital inputs/outputs Analog inputs Tuesday, 1 June 2010
  • 17. Arduino Software Platform Open source cross platform IDE Alpha but very stable Updated frequently Growing and active community Tuesday, 1 June 2010
  • 18. Arduino Code C like high level language Inbuilt functions to read and set digital and analog inputs and outputs Includes libraries to perform common hardware or software tasks Once uploaded programs are permanent Tuesday, 1 June 2010
  • 22. Issues Debugging can be hard No simulator Memory, power and speed limits Helps to have a little electronics knowledge Tuesday, 1 June 2010
  • 23. Connecting Arduinos to the Web How Arduinos can communicate with the world Tuesday, 1 June 2010
  • 24. Connection Methods Directto computer (USB) Wireless (XBee modems) Ethernet or WiFi “The Cloud” Tuesday, 1 June 2010
  • 25. Supported Languages Flashand Flex Processing Python Ruby Java C, C++, C# and Objective C .NET Tuesday, 1 June 2010
  • 26. Flex Flex to Arduino direct connection Tuesday, 1 June 2010
  • 27. Layers of Communication Flexto proxy via an Actionscript library Proxy to USB communication USB to arduino Tuesday, 1 June 2010
  • 28. Flex to Arduino Computer Arduino Flex Code Arduino Function Calls and Code Events TCP/IP USB AS3 Glue USB Proxy Firmata Socket Cable Tuesday, 1 June 2010
  • 29. Flex Led Demo Tuesday, 1 June 2010
  • 30. AS3Glue Digital Output Create arduino instance var arduino:Arduino = new Arduino(); Wait for firmware version Set digital pin as output arduino.setPinMode(pin, Arduino.OUTPUT); Turn digital output on arduino.writeDigitalPin(pin, Arduino.HIGH); Tuesday, 1 June 2010
  • 32. AS3Glue Analog Input Turn on analog reporting arduino.setAnalogPinReporting(pin, Arduino.ON); Listen for changes via event listener arduino.addEventListener (ArduinoEvent.ANALOG_DATA, onReceiveData); public function onReceiveData (event:ArduinoEvent):void { .... } Tuesday, 1 June 2010
  • 33. Ethernet Using Arduino Ethernet Shields Tuesday, 1 June 2010
  • 34. Ethernet Shields Allow direct internet connection No dedicated PC needed Shields need a little config Can act as web server or client Tuesday, 1 June 2010
  • 38. Web Servers Simplerthan you think A web server: Listens for connections Parse requests Send back status messages/resources requested Tuesday, 1 June 2010
  • 39. HTTP Requests Startwith request “GET index.html HTTP/1.1” Optional headers “Accept-Language: en” Empty line Optional message body (POST and other requests) Tuesday, 1 June 2010
  • 40. Ethernet Arduino Code Web server code Easy to modify Tuesday, 1 June 2010
  • 42. Rich Internet Applications Ideas on how and where to use this technology Tuesday, 1 June 2010
  • 43. Environmental Monitoring Indoors or outdoors Wide range of sensors Sleep mode/low power consumption Tuesday, 1 June 2010
  • 44. Home Automation Power and utilities monitoring Controlling Lights and Heating/Cooling Garden watering/monitoring Tuesday, 1 June 2010
  • 45. Security and Safety Security systems Location reporting Bike jackets Tuesday, 1 June 2010
  • 46. Why do this? Expose yourself to new ideas and new ways of solving problems Involves interaction with the real world Encourages creativity Makes you a better programmer Tuesday, 1 June 2010
  • 48. Questions? Ask now, see me after session or email justin@classsoftware.com Slides and code can be found at http://blog.classsoftware.com/ Tuesday, 1 June 2010
  • 49. Useful Sites List of useful hardware and software sites Tuesday, 1 June 2010
  • 50. Software Sites Arduino http://www.arduino.cc for software, user forum and playground Ethernet Shields http://arduino.cc/en/Reference/ Ethernet Pachhub http://www.pachube.com/ Tuesday, 1 June 2010
  • 51. Hardware Sites Spark Fun (US) http://www.sparcfun.com/ Adafruit Industries (US) http://www.adafruit.com/ Electronic Goldmine (US) http://www.goldmine- elec.com/ Tuesday, 1 June 2010
  • 52. Other Sites Lady Ada http://www.ladyada.com/ Evil Mad Scientist http://www.evilmadscientist.com/ NY Resistor http://www.nycresistor.com/ Make Zine http://www.makezine.com/ Tuesday, 1 June 2010