Physical Computing with Android and IOIO

  • 2,875 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,875
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
33
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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