android + physical computing

108
Wednesday, November 23, 11

Upload: scott-janousek

Post on 28-Jan-2015

115 views

Category:

Technology


2 download

DESCRIPTION

Physical Computing is about connecting the virtual world of digital things to the physical world of analog that we live in. Android is about powering mobile and other devices, worldwide. What happens when you combine the two? The answer lies in this workshop. Google’s Android Open Accessory is a way of connecting android powered devices (i.e. phones and tablets) to physical electronics. With Google Open Accessory, Android powered devices are becoming even more sophisticated computing devices, by allowing them to communicate with standard USB-based peripherals such as mouse, keyboard, game controllers, but also other items like alarm clocks, exercise bikes, robotics, and even home automation. In this session we’ll explore the Open Accessory API, and how it can be used, and some of the possibilities when connecting it to Arduino based microcontrollers. We’ll also look at programming accessories via the Google Accessory Development Kit (ADK). Half the workshop will be hands-on and the other half will be installation, setup and getting started with tools.Attendees are encouraged to purchase their own Accessory Development Kits (ADKs). However, during hands-on, participants will be broken into groups and provided with Open Accessory hardware. No prior software or electronics knowledge is required for this workshop (but is welcome). If you are interested in bridging the gap between analog and digital worlds, come join the fun!

TRANSCRIPT

Page 1: Android + Physical Computing

Wednesday, November 23, 11

Page 2: Android + Physical Computing

Android +Physical Computing

RIA Unleashed 2011Thursday, October 27 9am-12:30pm

@scottjanousek

Wednesday, November 23, 11

Page 3: Android + Physical Computing

Intro: Agenda

9 am - 10 am Physical Computing & Arduino Overview

10 am - 12:30 am Android (OA & ADK)

12:30 - 1:30 pm LUNCH

Wednesday, November 23, 11

Page 4: Android + Physical Computing

Supplies

3 ADK Boards

No extra Android Phones (Sorry!)

Electronics (LEDS, servos, sensors, etc)

Conductive Ink

Wednesday, November 23, 11

Page 5: Android + Physical Computing

Due to budget. :(

Wednesday, November 23, 11

Page 6: Android + Physical Computing

Your Fairy Berries!

Wednesday, November 23, 11

Page 7: Android + Physical Computing

INTRO

Wednesday, November 23, 11

Page 8: Android + Physical Computing

“S.J.”

Wednesday, November 23, 11

Page 9: Android + Physical Computing

Intro: Hello!

@scottjanousek

www.scottjanousek.com

“Analog and Digital Artisan”

Creative Technologist &

Innovation Architect @ Isobar

Wednesday, November 23, 11

Page 10: Android + Physical Computing

Intro: Recent Work

Electronics Projects

Wednesday, November 23, 11

Page 11: Android + Physical Computing

Intro: Recent Work

Create-48 (NFC Event in Boston)

Wednesday, November 23, 11

Page 12: Android + Physical Computing

Intro: Recent Work

Touch Tables

Wednesday, November 23, 11

Page 13: Android + Physical Computing

Intro: Art && Code (3D)

http://artandcode.com/3d/

Wednesday, November 23, 11

Page 14: Android + Physical Computing

HOUSEKEEPING

Wednesday, November 23, 11

Page 15: Android + Physical Computing

Intro : You?

Creatives?

Techs?

Electronics?

DIY’ers?

Wednesday, November 23, 11

Page 16: Android + Physical Computing

Basic Assumptions

You know:

... a programming language (like Java).

... about Android, maybe even programmed an app.

Wednesday, November 23, 11

Page 17: Android + Physical Computing

Intro: Prep! (1/2)

Who has & brought their ADK kits?

Who has an Android device?

People using Linux? Mac? Windows?

Wednesday, November 23, 11

Page 18: Android + Physical Computing

Intro: Prep! (2/2)

... been working with Arduino?

... been working with Android?

Who has installed Eclipse installed?

Who has installed Eclipse and ADK?

Wednesday, November 23, 11

Page 19: Android + Physical Computing

OVERVIEW OF TODAY’S

DISCUSSION SPACE

Wednesday, November 23, 11

Page 20: Android + Physical Computing

Physical Computing

Wednesday, November 23, 11

Page 21: Android + Physical Computing

Open Hardware

Wednesday, November 23, 11

Page 22: Android + Physical Computing

Popular “Stores”

Wednesday, November 23, 11

Page 23: Android + Physical Computing

DIY (Do it yourself)

Wednesday, November 23, 11

Page 24: Android + Physical Computing

ANDROID

Wednesday, November 23, 11

Page 25: Android + Physical Computing

ARDUINO

Wednesday, November 23, 11

Page 26: Android + Physical Computing

Google I/O 2011 Keynote

Wednesday, November 23, 11

Page 27: Android + Physical Computing

Google I/O 2011 Keynote

Wednesday, November 23, 11

Page 28: Android + Physical Computing

Google I/O “Maze”

Wednesday, November 23, 11

Page 29: Android + Physical Computing

SETUP & CONFIG

Wednesday, November 23, 11

Page 30: Android + Physical Computing

DOWNLOADS

Wednesday, November 23, 11

Page 34: Android + Physical Computing

Seeeduino URLcode.google.com

/p/microbridge/downloads/list

bit.ly/l9ychb

OR ...

Wednesday, November 23, 11

Page 35: Android + Physical Computing

SETUP: Software

http://developer.android.com

/guide/topics/usb/adk.html#installing

Wednesday, November 23, 11

Page 36: Android + Physical Computing

SETUP: Firmware

http://developer.android.com

/guide/topics/usb/adk.html#installing-firmware

Wednesday, November 23, 11

Page 37: Android + Physical Computing

SETUP: DEMOKIT

http://developer.android.com

/guide/topics/usb/adk.html#running-demokit

Wednesday, November 23, 11

Page 38: Android + Physical Computing

ARDUINO

Wednesday, November 23, 11

Page 39: Android + Physical Computing

http://www.arduino.cc

Wednesday, November 23, 11

Page 40: Android + Physical Computing

Arduino: Packaging!

Wednesday, November 23, 11

Page 41: Android + Physical Computing

Arduino: What is it?

Wednesday, November 23, 11

Page 42: Android + Physical Computing

Arduino: What is it?

Open Source Hardware Device Platform

Sensors, LEDs, servos, other components

Arduino Programming Language

Wednesday, November 23, 11

Page 43: Android + Physical Computing

Arduino: Microcontrollers

Arduino Dumeavollive

Arduino MEGA

Arduino UNO

& many, many more variations!

Wednesday, November 23, 11

Page 44: Android + Physical Computing

Arduino: Duemilanove

Wednesday, November 23, 11

Page 45: Android + Physical Computing

Arduino: Diagram

Wednesday, November 23, 11

Page 46: Android + Physical Computing

Arduino: UNO

Wednesday, November 23, 11

Page 47: Android + Physical Computing

Arduino: MEGA 2560

Wednesday, November 23, 11

Page 48: Android + Physical Computing

Arduino: IDE (1/2)

Wednesday, November 23, 11

Page 49: Android + Physical Computing

Ardunio: IDE (2/2)

Wednesday, November 23, 11

Page 50: Android + Physical Computing

Arduino: IDE (3/3)

Name of Sketch

ToolbarNew Tab

Console Message Area

Coding Area

Wednesday, November 23, 11

Page 51: Android + Physical Computing

Arduino: IDE Toolbar

Compile Sketch Stop Running Sketch New Sketch Open Sketch Save Sketch Upload Sketch to Arduino Board

Serial Monitor

Wednesday, November 23, 11

Page 52: Android + Physical Computing

Arduino: Serial Monitor

Wednesday, November 23, 11

Page 53: Android + Physical Computing

Arduino: .PDE files

Wednesday, November 23, 11

Page 54: Android + Physical Computing

Arduino: Programming

Arduino Programs are called “Sketches”

C-like language

IDE is based off of Processing

Sketches are compiled, and loaded as firmware onto Arduino boards

Wednesday, November 23, 11

Page 55: Android + Physical Computing

Arduino: setup()

Runs once

Place all initializations in here

Wednesday, November 23, 11

Page 56: Android + Physical Computing

Arduino: loop()

Runs continuously until Reset is hit, or power is lost.

Wednesday, November 23, 11

Page 57: Android + Physical Computing

Arduino: Code Commenting

Wednesday, November 23, 11

Page 58: Android + Physical Computing

Arduino: Hello World Sketch

Wednesday, November 23, 11

Page 59: Android + Physical Computing

Arduino Examples

In Arduino IDE:

File->Examples

Wednesday, November 23, 11

Page 60: Android + Physical Computing

Arduino Libraries

In Arduino IDE:

File->Examples

Wednesday, November 23, 11

Page 61: Android + Physical Computing

Arduino: CheatSheet

Wednesday, November 23, 11

Page 62: Android + Physical Computing

Fritzig

http://fritzing.org/

Wednesday, November 23, 11

Page 63: Android + Physical Computing

WALKTHROUGHS

Wednesday, November 23, 11

Page 64: Android + Physical Computing

Basic LED Light (aka Hello World)

Wednesday, November 23, 11

Page 65: Android + Physical Computing

Conductive Paint

Wednesday, November 23, 11

Page 66: Android + Physical Computing

Boston Arduino UG

Wednesday, November 23, 11

Page 67: Android + Physical Computing

ANDROID & ADK

Wednesday, November 23, 11

Page 68: Android + Physical Computing

Android Platform “in a nutshell”

Wednesday, November 23, 11

Page 69: Android + Physical Computing

Android: OS

Wednesday, November 23, 11

Page 70: Android + Physical Computing

Android: Devices

Archos 28 Nexus One Samsung Galaxy Tab 10.1

Wednesday, November 23, 11

Page 71: Android + Physical Computing

Android: Apps

Wednesday, November 23, 11

Page 72: Android + Physical Computing

Google TV

Wednesday, November 23, 11

Page 73: Android + Physical Computing

Android: UI

Wednesday, November 23, 11

Page 74: Android + Physical Computing

Google’s Open AccessoryDevelopment Kit

Wednesday, November 23, 11

Page 75: Android + Physical Computing

Google I/O Preso

Wednesday, November 23, 11

Page 76: Android + Physical Computing

Google I/O Preso

www.google.com/events/io/2011/sessions/android-open-accessory-api-and-development-kit-adk.html

Wednesday, November 23, 11

Page 77: Android + Physical Computing

ADK(Accessory Development Kit)

Wednesday, November 23, 11

Page 78: Android + Physical Computing

USB Host & Accessory Modes

Wednesday, November 23, 11

Page 79: Android + Physical Computing

ADK: Why add USB Support?

If you haven’t noticed Android is turning from just a mobile platform into a full fledged Computing Platform:

Android Phones, Tablets, Computers, Google TV, Android@HOME, etc

Wednesday, November 23, 11

Page 80: Android + Physical Computing

ADK: Use Cases

Robotics

Home Automation

Misc USB Accessories (keyboards, webcams, etc)

... pretty much anything Physical!

Wednesday, November 23, 11

Page 81: Android + Physical Computing

ADK: is composed of ...

Android Development Kit (Software)

Arduino ADK Board (Hardware)

Arduino Sketch (Software)

Wednesday, November 23, 11

Page 82: Android + Physical Computing

ADK: Boards

Seeeduino ADK

Microchip

Google I/O “MEGA Shield Prototype”

Wednesday, November 23, 11

Page 83: Android + Physical Computing

Seeeduino ADK

http://www.seeedstudio.com/depot/seeeduino-adk-main-board-p-846.html

Wednesday, November 23, 11

Page 84: Android + Physical Computing

ADK: Seeeduino Digram

Wednesday, November 23, 11

Page 85: Android + Physical Computing

RT Board

http://www.rt-net.jp/shop/index.php?main_page=product_info&cPath=3_4&products_id=1

Wednesday, November 23, 11

Page 86: Android + Physical Computing

ADK: Seeeduino Digram

Wednesday, November 23, 11

Page 87: Android + Physical Computing

ADK: MicroChip

http://www.microchip.com/

Wednesday, November 23, 11

Page 88: Android + Physical Computing

IOIO

http://sparkfun.com/products/10748

Wednesday, November 23, 11

Page 89: Android + Physical Computing

ADK: Arduino MEGA ADK

http://store.arduino.cc/ww/

Wednesday, November 23, 11

Page 90: Android + Physical Computing

Grove - ADK Dash (Kit)

http://www.seeedstudio.com/depot/grove-adk-dash-kit-p-929.html

Wednesday, November 23, 11

Page 91: Android + Physical Computing

PhoneDrone

http://store.diydrones.com/PhoneDrone_Board_p

Wednesday, November 23, 11

Page 92: Android + Physical Computing

TOOLS

Wednesday, November 23, 11

Page 93: Android + Physical Computing

adb

Wednesday, November 23, 11

Page 94: Android + Physical Computing

DDMS

Wednesday, November 23, 11

Page 95: Android + Physical Computing

DemoKit

Wednesday, November 23, 11

Page 96: Android + Physical Computing

DemoKit: Eclipse

How to install Android, and ADK, etc.

Wednesday, November 23, 11

Page 97: Android + Physical Computing

DemoKit: Connecting

Wednesday, November 23, 11

Page 98: Android + Physical Computing

DemoKit: Demo App

Wednesday, November 23, 11

Page 99: Android + Physical Computing

DemoKit : Arduino Code Walkthrough

Wednesday, November 23, 11

Page 100: Android + Physical Computing

DemoKit : Android Code Walkthrough

Wednesday, November 23, 11

Page 101: Android + Physical Computing

DemoKit : Android Code Walkthrough

Wednesday, November 23, 11

Page 102: Android + Physical Computing

Seeeduino ADK

Wednesday, November 23, 11

Page 103: Android + Physical Computing

LED Dimmer

seeedstudio.com

/wiki/Seeeduino_ADK_Main_Board

bit.ly/vn4kfu

OR:

Wednesday, November 23, 11

Page 104: Android + Physical Computing

LED Dimmer

Wednesday, November 23, 11

Page 105: Android + Physical Computing

LED Dimmer

Wednesday, November 23, 11

Page 106: Android + Physical Computing

LED Dimmer

Wednesday, November 23, 11

Page 107: Android + Physical Computing

Q & A

Wednesday, November 23, 11

Page 108: Android + Physical Computing

Thank you.

Enjoy the Conference!

Wednesday, November 23, 11