51
1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

1

Java SE 8 for Tablets, Pis, and Legos

Stephen Chin

Java Technology Ambassador

JavaOne Content Chair

@steveonjava

Page 2: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

2 http://commons.wikimedia.org/wiki/File:Genting_Highlands_theme_park.jpg

Page 3: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

3

Lego

Mindstorms

Digital

Signage

Dev

Boards

DukePad iOS Android

Page 4: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

4

World

Population 6.3 Billion 6.8 Billion 7.2 Billion 7.6 Billion

500 Million 12.5 Billion 25 Billion 50 Billion

Connected Devices

per Person 0.08 1.84 6.58 3.47

2003 2010 2020 2015

Source: Cisco

3x 5x 1x

Connected

Devices

Page 5: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

5

From…

Things Connected to the Internet

www.

Page 6: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

6

To…

The Internet of Things

Page 7: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

7

Java SE 7

Today

APIs Language

Java SE 7

CDC 1.1

CDC 1.1 (based on SE 1.4.2)

CLDC 1.1 (based on SE 1.3)

CLDC 1.1

Page 8: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

8

Java SE 8 Java SE 8

Java ME 8

Java 8

Java ME 8

APIs Language

Page 9: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

9

Java SE Java SE

Small

Devices

Beyond Java 8

Small

Devices

APIs Language

Page 10: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

10

Java Embedded Native/C/C++

Cross-platform/multi-architecture/ Yes No

Sandbox security model Yes No

Robustness Excellent Varied

Multi-tasking/multi-threading Built-in Add-on, platform-

specific

Automatic memory management Yes No

Pre-integrated and customizable Yes Varied

Performance Optimized Varied

Code updatability Excellent Varied

Efficient, scalable development model

from small embedded to large systems Yes No

Developer community Large Fragmented

Page 11: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

11

LeJOS How it works on the EV3

Page 12: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

12

The Heart of the EV3

TI Sitara AM1808

– ARM9, 300Mhz

64MB RAM / 16MB Flash

Analog to Digital Converter

4 Motor Ports

4 Sensor Ports

Bluetooth / USB

MicroSD

Page 13: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

13

EV3 Motors

Page 14: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

14

EV3 Sensors

Page 15: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

15

Color and Light Sensor

Page 16: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

16

High frequency

sound waves

Measuring mode Vs Presence Mode

Ultrasonic Sensor

Page 17: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

17

Infrared Sensor

Page 18: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

18

Remote Control

Page 19: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

19

Getting Started with LeJOS

Micro SD Card (> 2GB)

Compatible WIFI adapter

– NetGear WNA1100

– EDIMAX EW-7811Un

Linux (or a Linux VM)

Details here:

Creating Your SD Card

http://sourceforge.net/p/lejos/wiki/Home/

Page 20: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

20

Getting Started with LeJOS

IDE

– Eclipse Kepler (needed to compile LeJOS source)

Jars you need:

– OpenJDK Java 7 Runtime

– Java Native Access (libjna)

Download/compile LeJOS Code

– Repo: git://git.code.sf.net/p/lejos/ev3

Creates ev3classes.jar

Setting Up Your Dev Environment

Page 21: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

21

Simple LeJOS Application

import lejos.nxt.Button;

import lejos.nxt.LCD;

public class EV3FirstProgram {

public static void main(String[] args) {

LCD.clear();

LCD.drawString("First EV3 Program", 0, 5);

Button.waitForAnyPress();

LCD.clear();

LCD.refresh();

}

}

Page 22: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

22

Running on Device

Copy your jar to device:

Desktop$ scp EV3FirstProgram.jar root@<ev3 ip>:~

SSH to device (password is blank):

Desktop$ ssh root@<ev3 ip>

Run program:

EV3$ jrun –cp EV3FirstProgram.jar EV3FirstProgram

Page 23: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

23

Lego Duke Segway

Page 24: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

24

=

Have Java With Your Dessert Raspberry Pi

Page 25: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

25 http://elinux.org/File:Raspi-Model-AB-Mono-2-699x1024.png

Page 26: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

26

I2C Hardware via Pi4J

3.3V/GND

MPU-9150

Page 27: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

27

And what are these for?

http://i.imgur.com/k0Puu.jpg

Page 28: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

28

Chalkboard Electronics Touchscreen

10" or 7" Form Factor

Connects via HDMI/USB

Tested with JavaFX 8

10% Exclusive Discount:

G1F0U796Z083

Page 29: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

29

JavaFX on Raspberry Pi Gotchas

WebView Media

Page 30: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

30

And you can do cool stuff like this… https://bitbucket.org/stephanj/tweetwall

Page 31: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

31

Page 32: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

32

Example device that run Java SE Embedded

Trimslice

Plugcomputer

Beaglebone Black

Raspberry Pi

HDMI Stick (white one)

iMX6 Saberlite / Platform Kit

iMX53 Tablet

ST Micro Snowball

Page 33: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

33

DukePad

http://j.mp/dukepad

Page 34: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

34

Page 35: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

35

Page 36: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

36

Page 37: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

37

Page 38: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

38

Page 39: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

39

Page 40: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

40

Page 41: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

41

Page 42: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

42

Page 43: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

43

Page 44: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

44

Getting Involved http://j.mp/dukepad

Page 45: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

45

RoboVM JavaFX on iOS

+ =

Page 46: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

46

Page 47: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

47

JavaFX on Android It is about time!

Page 48: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

48

Open Source Effort https://bitbucket.org/javafxports/android/wiki/Home

Page 49: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

49

MemeQuest: End-to-end JavaFX

Animations, Images, Binding, Controls on the Client

DataFX (http://www.javafxdata.org) for communication with DaliCloud

back-end

User Interface: We need to stop Johan from doing User Interfaces.

Who wants to help?

Code + downloads at http://bitbucket.org/lodgon/memequestfx

Page 50: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

50

Stephen Chin tweet: @steveonjava

blog: http://steveonjava.com

nighthacking.com

Real Geeks

Live Hacking

NightHacking Tour

Page 51: Java SE 8 for Tablets, Pis, and Legos€¦ · 1 Java SE 8 for Tablets, Pis, and Legos Stephen Chin Java Technology Ambassador JavaOne Content Chair @steveonjava

51

The preceding is intended to outline our general product direction. It is intended

for information purposes only, and may not be incorporated into any contract.

It is not a commitment to deliver any material, code, or functionality, and should

not be relied upon in making purchasing decisions. The development, release,

and timing of any features or functionality described for Oracle’s products

remains at the sole discretion of Oracle.