The document discusses connecting physical computing devices like Arduino and Phidgets to software. It provides an overview of Arduino and Phidgets, comparing their components, ease of use, advantages and disadvantages. It also gives examples of programming Arduino and Phidgets in ActionScript 3 to control devices like servos and read sensor values. The document encourages readers that the possibilities for interactive projects are limited only by their imagination.
2. Who Am I?
Steven Peeters
Unit manager / Instructor / consultant at multimediacollegeTM
• Adobe Flex, AIR, Flash Catalyst & ColdFusion Certified Instructor
• Adobe Community Professional
• ColdFusion User Group Manager
• 12+ years of development experience
• Flex & AIR since 2004
• Author for Friends of ED
Email: steven@multimediacollege.be
LinkedIn: www.linkedin.com/in/stevenpeeters
Twitter: @aikisteve
Blog www.flexpert.be
Website www.multimediacollege.be
7. Getting started
• Yeah, how did I get started on this?
• College
• Prototype This
• Grant Skinner
8. Differences
Boards, light sensors,
Components Boards
motors, displays, ...
Shields: XBee, Ethernet, Thermocouple,
Third party
motors electrodes, sensors, ...
Out of the box
Ease of use Build your own stuff
components
Cheap, build your own Don’t worry about
Advantage
components making mistakes
Disadvantage Build your own stuff Little bit more expensive
9. Differences
Boards, light sensors,
Components Boards
motors, displays, ...
Shields: XBee, Ethernet, Thermocouple,
Third party
motors electrodes, sensors, ...
Out of the box
Ease of use Build your own stuff
components
Cheap, build your own Don’t worry about
Advantage
components making mistakes
Disadvantage Build your own stuff Little bit more expensive
10. Differences
Boards, light sensors,
Components Boards
motors, displays, ...
Shields: XBee, Ethernet, Thermocouple,
Third party
motors electrodes, sensors, ...
Out of the box
Ease of use Build your own stuff
components
Cheap, build your own Don’t worry about
Advantage
components making mistakes
Disadvantage Build your own stuff Little bit more expensive
11. Differences
Boards, light sensors,
Components Boards
motors, displays, ...
Shields: XBee, Ethernet, Thermocouple,
Third party
motors electrodes, sensors, ...
Out of the box
Ease of use Build your own stuff
components
Cheap, build your own Don’t worry about
Advantage
components making mistakes
Disadvantage Build your own stuff Little bit more expensive
12. Differences
Boards, light sensors,
Components Boards
motors, displays, ...
Shields: XBee, Ethernet, Thermocouple,
Third party
motors electrodes, sensors, ...
Out of the box
Ease of use Build your own stuff
components
Cheap, build your own Don’t worry about
Advantage
components making mistakes
Disadvantage Build your own stuff Little bit more expensive
13. Differences
Boards, light sensors,
Components Boards
motors, displays, ...
Shields: XBee, Ethernet, Thermocouple,
Third party
motors electrodes, sensors, ...
Out of the box
Ease of use Build your own stuff
components
Cheap, build your own Don’t worry about
Advantage
components making mistakes
Disadvantage Build your own stuff Little bit more expensive
22. Programming Arduino
• Open-source
• Large community
• Lots of example available
• Language based on processing
• extensible with C, C++, Flash...
23. Programming Arduino
• Open-source
• Large community
• Lots of example available
• Language based on processing
• extensible with C, C++, Flash...
• examples in the IDE and on http://tv.adobe.com
27. Programming Arduino
• Connecting to Flash/Flex
• Upload Firmata program to board
• SerProxy/TinkerProxy
• AS3Glue: http://code.google.com/p/as3glue/
28. Programming Arduino
• Connecting to Flash/Flex
• Upload Firmata program to board
• SerProxy/TinkerProxy
• AS3Glue: http://code.google.com/p/as3glue/
• Use Arduino object methods
29. Arduino Example
private var arduino:Arduino;
private function initApp():void {
arduino = new Arduino("localhost", 5331);
arduino.setPinMode(13, Arduino.OUTPUT);
arduino.writeDigitalPin(13, Arduino.HIGH);
var value:int = arduino.getAnalogData(2);
}