Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

A practical guide to connecting hardware to Flex

7,925 views

Published on

WebDU 2009 session looking at the revolution in low cost easy to program embedded computing. It focuses on the arduino open source hardware and software platform and zigbee network modules and how both of these can be easily connected up to Adobe Flex.

Published in: Technology, Education

A practical guide to connecting hardware to Flex

  1. 1. Connecting Hardware to Flex A practical guide to connecting open source hardware to Flex Justin Mclean Class Software Friday, 22 May 2009
  2. 2. Who am I? • Director of Class Software for 10 years • Developing and creating web applications for 15 years • Programming for 25 years • Adobe solution partner • Adobe certified developer and trainer in Flex and ColdFusion Friday, 22 May 2009
  3. 3. Electronics Trends • Low cost small components • More complex components with simple standard interfaces • Cheap low volume board manufacture Friday, 22 May 2009
  4. 4. Computing Trends • Easier to program • Use of high level languages • Software tools • Open source Friday, 22 May 2009
  5. 5. Communication Trends • Low cost long range wireless • Mesh networks Friday, 22 May 2009
  6. 6. 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 • Commercial and open source products and kits are available Friday, 22 May 2009
  7. 7. Arduino Open source hardware and software platform Friday, 22 May 2009
  8. 8. Arduino Platform • Open source hardware and software platform • Easy to program • Hardware is flexible, fast, low power and low cost Friday, 22 May 2009
  9. 9. Arduino Hardware • Comes in a number of shapes sizes • Low cost • Easy to program • Easy to extend Friday, 22 May 2009
  10. 10. Arduino Boards Friday, 22 May 2009
  11. 11. Arduino Boards Friday, 22 May 2009
  12. 12. Arduino Boards Friday, 22 May 2009
  13. 13. Arduino Boards Friday, 22 May 2009
  14. 14. Arduino Shields Friday, 22 May 2009
  15. 15. Arduino Shields Friday, 22 May 2009
  16. 16. Arduino Shields Friday, 22 May 2009
  17. 17. Arduino Shields Friday, 22 May 2009
  18. 18. Arduino Software Platform • Open source cross platform IDE • Alpha but very stable • Code in high level C like language • Updated frequently • Growing and active community Friday, 22 May 2009
  19. 19. Arduino IDE Friday, 22 May 2009
  20. 20. 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 Friday, 22 May 2009
  21. 21. Led Shield Demo Friday, 22 May 2009
  22. 22. Led Shield Demo Friday, 22 May 2009
  23. 23. Setup and Loop Functions • Setup function called once void setup() { ... } • Loop function called over and over again void loop() { ... } Friday, 22 May 2009
  24. 24. Setting Digital Outputs • Set digital pin as output in setup pinMode(pin, OUTPUT); • Digital outputs turned on or off in setup or loop digitalWrite(pin, HIGH); digitalWrite(pin, LOW); Friday, 22 May 2009
  25. 25. Flex Flex to Arduino communication Friday, 22 May 2009
  26. 26. Layers of Communication • Flex to proxy via an Actionscript library • Proxy to USB communication • USB to arduino Friday, 22 May 2009
  27. 27. Computer Arduino Flex Code Arduino Function Calls and Code Events TCP/IP USB AS3 Glue USB Proxy Firmata Socket Cable Flex to Arduino Friday, 22 May 2009
  28. 28. Flex Led Demo Friday, 22 May 2009
  29. 29. AS3Glue Digital Output • Create arduino instance var arduino:Arduino = new Arduino(); • Set digital pin as output arduino.setPinMode(pin, Arduino.OUTPUT); • Turn digital output on arduino.writeDigitalPin(pin, Arduino.HIGH); Friday, 22 May 2009
  30. 30. AS3Glue Events • Uses Flex events for digital inputs. • Listen for changes via event listener arduino.addEventListener (ArduinoEvent.DIGITAL_DATA, onReceiveData); public function onReceiveData(event:ArduinoEvent):void { } Friday, 22 May 2009
  31. 31. Wireless Communication Wireless communication with XBee modems Friday, 22 May 2009
  32. 32. XBee Modems • Hardware wireless modem • Low cost • Consume very little power • Good range • Easy to configure Friday, 22 May 2009
  33. 33. XBee Modem Friday, 22 May 2009
  34. 34. XBee Networks • Point to point • Point to multipoint • Mesh/Peer to peer Friday, 22 May 2009
  35. 35. Funnel IO • Arduino based hardware • Java server • Flex library Friday, 22 May 2009
  36. 36. Funnel Digital Output Friday, 22 May 2009
  37. 37. Funnel Digital Output Friday, 22 May 2009
  38. 38. Funnel Digital Output Friday, 22 May 2009
  39. 39. Setting Digital Output • Create FIO instance var fio:Fio = new Fio([1], Fio.FIRMATA); • Turn digital output on or off by setting value fio.ioModule(1).digitalPin(pin).value = 1; Friday, 22 May 2009
  40. 40. Funnel Analog Graph Friday, 22 May 2009
  41. 41. Funnel Analog Graph Friday, 22 May 2009
  42. 42. Reading Analog Input • Not event based, need to use timer • Read analog value same way as digital value value = ioModule(1).analogPin(pin).value; Friday, 22 May 2009
  43. 43. Issues • Debugging can be hard • No simulator • Memory, power and speed limits • Need a little electronic knowledge Friday, 22 May 2009
  44. 44. Why do this? • Expose yourself to new ideas and new ways of solving problems • Involves interaction with the real world • Encourages creativity • Platform limits improves programming skill Friday, 22 May 2009
  45. 45. It’s Fun! Friday, 22 May 2009
  46. 46. Questions? Ask now, see me after the session or email me at justin@classsoftware.com Friday, 22 May 2009
  47. 47. Useful Sites List of useful hardware of software sites Friday, 22 May 2009
  48. 48. Software Sites • Arduino http://www.arduino.cc for software, user forum and playground • AS3Glue http://code.google.com/p/as3glue/ • Funnel IO http://funnel.cc/ Friday, 22 May 2009
  49. 49. Hardware Sites • Little Bird Electronics (Australian) - http:// www.littlebirdelectronics.com/ • Jaycar (Australian) http://jaycar.com.au/ • Adafruit Industries (US) http:// www.adafruit.com/ • Spark Fun (US) http://www.sparkfun.com/ • Electronic Goldmine (US) http://www.goldmine- elec.com/ Friday, 22 May 2009
  50. 50. Other Sites • Lady Ada http://www.ladyada.net/ • Evil Mad Scientist http:// www.evilmadscientist.com/ • NY Resistor http://www.nycresistor.com/ • Make Zine http://makezine.com/ Friday, 22 May 2009

×