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

More Related Content

PDF
Putting your device in a browser or on the web
PDF
Connecting open source hardware to the web
PDF
A Practical Guide to Connecting Hardware to Flex
PDF
Connecting hardware to ColdFusion
PDF
BarCamp Melbourne 2012: Internet of Things
KEY
2011 01-24 dragino
PDF
Internet Of Things, Smart Energy Groups
PDF
Internet Of Things: Hands on: YOW! night
Putting your device in a browser or on the web
Connecting open source hardware to the web
A Practical Guide to Connecting Hardware to Flex
Connecting hardware to ColdFusion
BarCamp Melbourne 2012: Internet of Things
2011 01-24 dragino
Internet Of Things, Smart Energy Groups
Internet Of Things: Hands on: YOW! night

Viewers also liked (6)

PDF
ColdFusion Security and Risk Management
PDF
Edge Of The Web
PDF
ColdFusion Security and Risk Management
PDF
PDF
Corso Security Manager
PDF
What's the Right Messaging Standard for the IoT?
ColdFusion Security and Risk Management
Edge Of The Web
ColdFusion Security and Risk Management
Corso Security Manager
What's the Right Messaging Standard for the IoT?
Ad

Similar to Connecting RIAs and hardware together (20)

PDF
Connecting Hardware to Flex (360MAX)
PDF
A practical guide to connecting hardware to Flex
PDF
A Practical Guide to Connecting Hardware to the Web
PDF
Making things sense-Day 2 (May 2011)
PDF
Connecting hardware up to ColdFusion
PPTX
Introduction to the Arduino
PDF
Hubduino
PDF
arduino
PPTX
Introduction to Arduino
PDF
Arduino Development For Beginners
PDF
Arduino - Learning.pdf
PDF
Arduino talk by Toon Nelissen
PDF
Arduino talk by Toon Nelissen
PPTX
Arduino and c programming
PPTX
Arduino Robotics workshop Day1
PDF
Making things sense - Day 1 (May 2011)
PDF
Arduino Teaching Program
PDF
IOTC08 The Arduino Platform
PDF
Arduino_Booklet.pdf
PDF
Arduino A Technical Reference A Handbook For Technicians Engineers And Makers...
Connecting Hardware to Flex (360MAX)
A practical guide to connecting hardware to Flex
A Practical Guide to Connecting Hardware to the Web
Making things sense-Day 2 (May 2011)
Connecting hardware up to ColdFusion
Introduction to the Arduino
Hubduino
arduino
Introduction to Arduino
Arduino Development For Beginners
Arduino - Learning.pdf
Arduino talk by Toon Nelissen
Arduino talk by Toon Nelissen
Arduino and c programming
Arduino Robotics workshop Day1
Making things sense - Day 1 (May 2011)
Arduino Teaching Program
IOTC08 The Arduino Platform
Arduino_Booklet.pdf
Arduino A Technical Reference A Handbook For Technicians Engineers And Makers...
Ad

Recently uploaded (20)

PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
August Patch Tuesday
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
Enhancing emotion recognition model for a student engagement use case through...
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
DOCX
search engine optimization ppt fir known well about this
PDF
Getting Started with Data Integration: FME Form 101
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PPT
What is a Computer? Input Devices /output devices
PPT
Geologic Time for studying geology for geologist
Taming the Chaos: How to Turn Unstructured Data into Decisions
Hindi spoken digit analysis for native and non-native speakers
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Zenith AI: Advanced Artificial Intelligence
August Patch Tuesday
Univ-Connecticut-ChatGPT-Presentaion.pdf
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Enhancing emotion recognition model for a student engagement use case through...
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Group 1 Presentation -Planning and Decision Making .pptx
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
search engine optimization ppt fir known well about this
Getting Started with Data Integration: FME Form 101
Benefits of Physical activity for teenagers.pptx
NewMind AI Weekly Chronicles – August ’25 Week III
What is a Computer? Input Devices /output devices
Geologic Time for studying geology for geologist

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