Development, debug and deploy hardware/software solutions based on Android and Arduino

21
Development, debug and deploy hardware/software solutions based on Android and Arduino Ilya Rodin Senior Android Engineer Lohika Systems

Transcript of Development, debug and deploy hardware/software solutions based on Android and Arduino

Page 1: Development, debug and deploy hardware/software solutions based on Android and Arduino

Development, debug and

deploy hardware/software

solutions based on

Android and Arduino

Ilya Rodin

Senior Android Engineer

Lohika Systems

Page 2: Development, debug and deploy hardware/software solutions based on Android and Arduino

Arduino

Page 3: Development, debug and deploy hardware/software solutions based on Android and Arduino

Introduction into Arduino

3

Arduino is…

Open-source electronics prototyping platform

Open-source development environment

A lot of electronics circuit elements, Arduino-base schemes and kits

e.t.c

Page 4: Development, debug and deploy hardware/software solutions based on Android and Arduino

4

Microcontroller ATmega2560

Operating Voltage 5V

Input Voltage (recommended)

7-12V

Input Voltage (limits)

6-20V

Digital I/O Pins54 (of which 15 provide PWM output)

Analog Input Pins 16

DC Current per I/O Pin

40 mA

DC Current for 3.3V Pin

50 mA

Flash Memory256 KB of which 8 KB used by bootloader

SRAM 8 KB

EEPROM 4 KB

Clock Speed 16 MHz

Hardware

Page 5: Development, debug and deploy hardware/software solutions based on Android and Arduino

5

Development environment

Cross-platform Java-base IDE

Simple C++ base language

• Well known language constructions (class, variables, loops, operators, methods, etc…)

• You can use already created library (LiquidCrystal, EEPROM, Servo, TinyGPS, erc…)

• You can create new library, if it needed…

Simple application life circle

Port Monitor toolkit

etc…

•Begin

setup()

loop()

Page 6: Development, debug and deploy hardware/software solutions based on Android and Arduino

6

… and something more

Connection by Digital I/O

• PWD

• UART

• I2C/TWI

• SPI devices

• DC motors

• etc..

Connection by Analog port

• Microphone

• Sensors

• AC drive

• etc…

Page 7: Development, debug and deploy hardware/software solutions based on Android and Arduino

Hey, bro!

What about

Android?

Page 8: Development, debug and deploy hardware/software solutions based on Android and Arduino

8

Android Open Accessory

Implemented…

USB Host Mode

Accessory Mode

Support in…and higher

Android SDK 3.1 (API 12)

Google API add-on lib for Android 2.3.4 (API 10)

Page 9: Development, debug and deploy hardware/software solutions based on Android and Arduino

9

How it is work?

1. Wait for and detect connected devices

2. Determine the device's accessory mode support

• The attached device supports Android accessory mode and is already in accessory mode.

• The attached device supports Android accessory mode, but it is not in accessory mode.

• The attached device does not support Android accessory mode.

3. Attempt to start the device in accessory mode if needed

4. Establish communication with the device if it supports the Android accessory protocol

Page 10: Development, debug and deploy hardware/software solutions based on Android and Arduino

10

AOA 2.0

New features…

Audio output by USB (only for Android 4.1 (API 16) and higher)

Support multi-connection with HID devices

New products Ids…

AOA 1.0

• 0x2D00 – accessory

• 0x2D01 – accessory+ADB

AOA 2.0

• 0x2D02 – audio

• 0x2D03 – audio+ADB

• 0x2D02 – accessory+audio

• 0x2D03 – accessory+audio+ADB

Page 11: Development, debug and deploy hardware/software solutions based on Android and Arduino

11

Trouble…

Limitations…

High API level

Some Android devices do not support Accessory/Host Mode

Android Emulator do not support USB

Resolving…

Try use MicroBridge Mode

Try use MicroBridge Mode

×Actually not resolved

Page 12: Development, debug and deploy hardware/software solutions based on Android and Arduino

ok, it is clear…

ADK ?! O_o

Page 13: Development, debug and deploy hardware/software solutions based on Android and Arduino

13

Android Development Kit

ADK 2011 ADK 2012

Page 14: Development, debug and deploy hardware/software solutions based on Android and Arduino

14

IOIO

Spark Fun IOIO it is…

Low cost PIC24FJ256-DA206 base platform

Support connection by Digital Input/Output, PWM, Analog Input, I2C, SPI, and UART.

Support Android 1.5 and higer

Page 15: Development, debug and deploy hardware/software solutions based on Android and Arduino

Tools

Page 16: Development, debug and deploy hardware/software solutions based on Android and Arduino

16

Proteus Design Suit

Page 17: Development, debug and deploy hardware/software solutions based on Android and Arduino

17

LabVIEW 2012

Page 18: Development, debug and deploy hardware/software solutions based on Android and Arduino

Workshop

Page 19: Development, debug and deploy hardware/software solutions based on Android and Arduino

http://developer.android.com/tools/

adk/

http://www.arduino.cc/

https://github.com/ytai/ioio/

http://code.google.com/p/

microbridge/

Find out more…

Page 20: Development, debug and deploy hardware/software solutions based on Android and Arduino

Q&A

Page 21: Development, debug and deploy hardware/software solutions based on Android and Arduino

Thank you!