Physical Computing with  Android Arjan Scherpenisse MiracleThings http://miraclethings.nl/ 10 september 2011
Overview <ul><li>Physical computing
Android
The IOIO board </li></ul>
About me <ul><li>Mixed background </li><ul><li>Computer science (AI, UvA class of 2005)
Unstable Media Art (Rietveld, class of 2009) </li></ul><li>Have worked for Mediamatic for 3+ years
Now: independent software developer </li></ul>
Physical Computing <ul><li>Definition:  “building interactive physical systems by the use of software and hardware that ca...
Physical Computing (2) Sensor (input) Actuator (output) World Device
Physcomp = popular <ul><li>Many different platforms out there </li><ul><li>Arduino
Wiring
Fritzing
Phidgets
… </li></ul><li>Arduino makes it easy </li><ul><li>Plug&play, accessible software, many examples </li></ul><li>Need some e...
hacking a knitting machine... http://miraclethings.nl/id/852
...to knit the score board of a game
Playing ping-pong over the internet
...using a DIY pingpong-ball canon
Physcomp roundup <ul><li>Lots of possibilities!
Mediamatic Atelier has sensors, motors, etc, etc, etc </li></ul>
Android <ul><li>Popular mobile phone OS by Google </li></ul>
Personal Android experience <ul><li>IkPod 2.0 app </li><ul><li>Nexus S-based RFID multimedia guide </li></ul></ul>1.0 2.0
Personal Android experience <ul><li>IkCam app </li><ul><li>mobile  IkTag  photo booth  </li></ul></ul>
Android ♥ physcomp <ul><li>Google's OpenAccessory protocol </li><ul><li>With reference implementation (ADK) </li></ul><li>...
3rd-party board; needs USB debugging on
Upcoming SlideShare
Loading in...5
×

Physical Computing with Android and IOIO

3,003

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,003
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
34
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Physical Computing with Android and IOIO"

  1. 1. Physical Computing with Android Arjan Scherpenisse MiracleThings http://miraclethings.nl/ 10 september 2011
  2. 2. Overview <ul><li>Physical computing
  3. 3. Android
  4. 4. The IOIO board </li></ul>
  5. 5. About me <ul><li>Mixed background </li><ul><li>Computer science (AI, UvA class of 2005)
  6. 6. Unstable Media Art (Rietveld, class of 2009) </li></ul><li>Have worked for Mediamatic for 3+ years
  7. 7. Now: independent software developer </li></ul>
  8. 8. Physical Computing <ul><li>Definition: “building interactive physical systems by the use of software and hardware that can sense and respond to the analog world.” (wikipedia) </li></ul>
  9. 9. Physical Computing (2) Sensor (input) Actuator (output) World Device
  10. 10. Physcomp = popular <ul><li>Many different platforms out there </li><ul><li>Arduino
  11. 11. Wiring
  12. 12. Fritzing
  13. 13. Phidgets
  14. 14. … </li></ul><li>Arduino makes it easy </li><ul><li>Plug&play, accessible software, many examples </li></ul><li>Need some electronics knowledge </li></ul>
  15. 15. hacking a knitting machine... http://miraclethings.nl/id/852
  16. 16. ...to knit the score board of a game
  17. 17. Playing ping-pong over the internet
  18. 18. ...using a DIY pingpong-ball canon
  19. 19. Physcomp roundup <ul><li>Lots of possibilities!
  20. 20. Mediamatic Atelier has sensors, motors, etc, etc, etc </li></ul>
  21. 21. Android <ul><li>Popular mobile phone OS by Google </li></ul>
  22. 22. Personal Android experience <ul><li>IkPod 2.0 app </li><ul><li>Nexus S-based RFID multimedia guide </li></ul></ul>1.0 2.0
  23. 23. Personal Android experience <ul><li>IkCam app </li><ul><li>mobile IkTag photo booth </li></ul></ul>
  24. 24. Android ♥ physcomp <ul><li>Google's OpenAccessory protocol </li><ul><li>With reference implementation (ADK) </li></ul><li>IOIO board </li><ul><li>Released earlier than OA
  25. 25. 3rd-party board; needs USB debugging on
  26. 26. Might work with OA (beta; ymmv) </li></ul></ul>
  27. 27. IOIO vs. OpenAccessory <ul><li>IOIO's pro's: </li><ul><li>Android >= 1.6 (vs. OpenAccessory >= 2.3.x)
  28. 28. Filesystem access to host board
  29. 29. More mature (apparently)
  30. 30. Simpler interface on android side </li></ul><li>OpenAccessory's pro's: </li><ul><li>Better performance (thruput/latency)
  31. 31. Does not require USB debugging hack
  32. 32. Allow apps to be notified on gadget connect </li></ul></ul>
  33. 33. IOIO <ul><li>Provides 48 input/output pins
  34. 34. Software runs on your phone – not on the board
  35. 35. Many pins have extra functions
  36. 36. Needs external powering (Can charge the phone) </li></ul>
  37. 37. IOIO (2) <ul><li>Board needs DC adapter/battery between 5-15V on VIN or directly connected to stable 5V source
  38. 38. Pins only supply 3.3V output
  39. 39. Enable USB debugging on your phone </li></ul>
  40. 40. Made With IOIO <ul><li>“ soccer” playing robot </li><ul><li>http://www.youtube.com/watch?v=qY4b5sIrGKw </li></ul><li>LED wekker </li><ul><li>http://www.youtube.com/watch?v=8sAvXCfEj3s </li></ul><li>Autonomous RC car </li><ul><li>http://www.youtube.com/watch?v=-H6MtevUjBg </li></ul><li>Search “IOIO android” on Youtube </li></ul>
  41. 41. Digital Output <ul><li>Simple 3.3V digital output: </li><ul><li>Pin -> LED -> 220Ω -> GND </li></ul><li>5V digital output: </li><ul><li>Needs 5V-tolerant pin! </li></ul></ul>
  42. 42. Digital Input <ul><li>Input pins can be in 3 modes: </li><ul><li>Pull-up
  43. 43. Pull-down
  44. 44. Floating (need to pull up/down yourself, like Arduino) </li></ul><li>Only put 5V input on 5V-tolerant pins! </li></ul>
  45. 45. Advanced IOIO <ul><li>Analog inputs </li><ul><li>Like http://www.arduino.cc/en/Tutorial/AnalogInput </li></ul><li>UART </li><ul><li>Communicate w/ other devices (e.g. arduino!) over serial port </li></ul><li>PWM </li><ul><li>“ analog output”, e.g. LED brightness </li></ul></ul>
  46. 46. Demonstrate IOIO example project <ul><li>Fixme. </li></ul>
  47. 47. IOIO Getting started <ul><ul><li>http://www.sparkfun.com/tutorials/280 , or in a nutshell:
  48. 48. Install Android Development Environment
  49. 49. Download IOIOLib from https://github.com/ytai/ioio
  50. 50. Create new Android project w/ imported IOIOLib on build path
  51. 51. Write your app – or modify existing example </li></ul></ul>
  52. 52. IOIO go go go <ul><li>Good Luck & Have Fun! </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×