Top Banner
A practical guide to connecting open source hardware (Arduino’s) to Flex Justin Mclean Class Software Connecting Hardware to Flex
50

Connecting Hardware to Flex (360MAX)

Jan 28, 2015

Download

Technology

Justin Mclean

Looking at the revolution in low cost easy to program embedded computing, focusing on the arduino open source hardware and software platform and zigbee network modules and how both of these can be easily connected up to Flex.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Connecting Hardware to Flex (360MAX)

A practical guide to connecting open source hardware (Arduino’s) to Flex

Justin McleanClass Software

Connecting Hardware to Flex

Page 2: Connecting Hardware to Flex (360MAX)

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

• Based in Sydney Australia

Page 3: Connecting Hardware to Flex (360MAX)

Electronics Trends• Low cost small components

• More complex components with simple standard interfaces

• Cheap low volume board manufacture

Page 4: Connecting Hardware to Flex (360MAX)

Computing Trends• Easier to program

• Use of high level languages

• Software tools

• Open source

Page 5: Connecting Hardware to Flex (360MAX)

Communication Trends• Low cost long range wireless

• Mesh networks

Page 6: Connecting Hardware to Flex (360MAX)

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

Page 7: Connecting Hardware to Flex (360MAX)

Arduino

Open source hardware and software platform

Page 8: Connecting Hardware to Flex (360MAX)

Arduino Platform• Open source hardware and software platform

• Easy to program

• Hardware is flexible, fast, low power and low cost

Page 9: Connecting Hardware to Flex (360MAX)

Arduino Hardware• Comes in a number of shapes sizes

• Low cost

• Easy to program

• Easy to extend

Page 10: Connecting Hardware to Flex (360MAX)

Arduino Boards

Page 11: Connecting Hardware to Flex (360MAX)

Arduino Boards

Page 12: Connecting Hardware to Flex (360MAX)

Arduino Boards

Page 13: Connecting Hardware to Flex (360MAX)

Arduino Boards

Page 14: Connecting Hardware to Flex (360MAX)

Arduino Shields

Page 15: Connecting Hardware to Flex (360MAX)

Arduino Shields

Page 16: Connecting Hardware to Flex (360MAX)

Arduino Shields

Page 17: Connecting Hardware to Flex (360MAX)

Arduino Shields

Page 18: Connecting Hardware to Flex (360MAX)

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

Page 19: Connecting Hardware to Flex (360MAX)

Arduino IDE

Page 20: Connecting Hardware to Flex (360MAX)

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

Page 21: Connecting Hardware to Flex (360MAX)

Led Shield Demo

Page 22: Connecting Hardware to Flex (360MAX)

Led Shield Demo

Page 23: Connecting Hardware to Flex (360MAX)

Setup and Loop Functions• Setup function called once

void setup() {...}

• Loop function called over and over again

void loop() {...}

Page 24: Connecting Hardware to Flex (360MAX)

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);

Page 25: Connecting Hardware to Flex (360MAX)

Flex

Flex to Arduino communication

Page 26: Connecting Hardware to Flex (360MAX)

Layers of Communication• Flex to proxy via an Actionscript library

• Proxy to USB communication

• USB to arduino

Page 27: Connecting Hardware to Flex (360MAX)

USB Proxy FirmataAS3 Glue

Flex Code Arduino

USBCable

TCP/IPSocket

Computer Arduino

Function Calls and Events

Code

Flex to Arduino

Page 28: Connecting Hardware to Flex (360MAX)

Flex Led Demo

Page 29: Connecting Hardware to Flex (360MAX)

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);

Page 30: Connecting Hardware to Flex (360MAX)

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 {}

Page 31: Connecting Hardware to Flex (360MAX)

Wireless Communication

Wireless communication with XBee modems

Page 32: Connecting Hardware to Flex (360MAX)

XBee Modems• Hardware wireless modem

• Low cost

• Consume very little power

• Good range

• Easy to configure

Page 33: Connecting Hardware to Flex (360MAX)

XBee Modem

Page 34: Connecting Hardware to Flex (360MAX)

XBee Networks• Point to point

• Point to multipoint

• Mesh

Page 35: Connecting Hardware to Flex (360MAX)

Funnel IO• Arduino based hardware

• Java server

• Flex library

Page 36: Connecting Hardware to Flex (360MAX)

Funnel Digital Output

Page 37: Connecting Hardware to Flex (360MAX)

Funnel Digital Output

Page 38: Connecting Hardware to Flex (360MAX)

Funnel Digital Output

Page 39: Connecting Hardware to Flex (360MAX)

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;

Page 40: Connecting Hardware to Flex (360MAX)

Funnel Analog Graph

Page 41: Connecting Hardware to Flex (360MAX)

Funnel Analog Graph

Page 42: Connecting Hardware to Flex (360MAX)

Reading Analog Input• Read analog value same way as digital value

value = ioModule(1).analogPin(pin).value;

• Event basedanalogPin(pin).addEventListener(PinEvent.CHANGE, function);

• Timer based

Page 43: Connecting Hardware to Flex (360MAX)

Issues• Debugging can be hard

• No simulator

• Memory, power and speed limits

• Need a little electronic knowledge

Page 44: Connecting Hardware to Flex (360MAX)

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

Page 45: Connecting Hardware to Flex (360MAX)

It’s Fun!

Page 46: Connecting Hardware to Flex (360MAX)

Questions?

Ask now, see me after the session or email me at [email protected]

Page 47: Connecting Hardware to Flex (360MAX)

Useful Sites

List of useful hardware of software sites

Page 48: Connecting Hardware to Flex (360MAX)

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/

Page 49: Connecting Hardware to Flex (360MAX)

Hardware Sites• Spark Fun (US) http://www.sparkfun.com/

• Adafruit Industries (US) http://www.adafruit.com/

• Electronic Goldmine (US) http://www.goldmine-elec.com/

Page 50: Connecting Hardware to Flex (360MAX)

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/