arduino designer - cesec2015

110
Arduino Designer Turning Eclipse into an Arduino programming platform for kids Mélanie Bats [email protected] @melaniebats

Upload: melbats

Post on 06-Aug-2015

21 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Arduino Designer - Cesec2015

Arduino DesignerTurning Eclipse into an Arduino programming platform for kids

Mélanie Bats [email protected]

@melaniebats

Page 2: Arduino Designer - Cesec2015

A model

Page 3: Arduino Designer - Cesec2015

A micro controller

Page 4: Arduino Designer - Cesec2015

And a cat ?

Page 5: Arduino Designer - Cesec2015

Curiosity

Page 6: Arduino Designer - Cesec2015

Discover by yourself

Page 7: Arduino Designer - Cesec2015

Computers are everywhere

Page 8: Arduino Designer - Cesec2015

Understand electronics

Page 9: Arduino Designer - Cesec2015

Arduino

Page 10: Arduino Designer - Cesec2015

Understand programming

Many open source software are dedicated to learn

programming to kids: Scratch, TurlteLogo, KidsRuby,

Python4Kids…

Initiatives: Programatoo, Devoxx4Kids, greenlight,

coding goûter...

Page 11: Arduino Designer - Cesec2015

Text

Page 12: Arduino Designer - Cesec2015

Graphical

Page 13: Arduino Designer - Cesec2015

Program the real world

Page 14: Arduino Designer - Cesec2015

Eclipse

Page 15: Arduino Designer - Cesec2015

Arduino Designer

Page 16: Arduino Designer - Cesec2015

Blink a LED!

Page 17: Arduino Designer - Cesec2015

A dedicated tooling

Graphical Programming

Light UI

Page 18: Arduino Designer - Cesec2015

A dedicated tooling

Graphical Programming = Sirius

Light UI

Page 19: Arduino Designer - Cesec2015

A dedicated tooling

Graphical Programming = Sirius

Light UI = RCP application

Page 20: Arduino Designer - Cesec2015

Create graphical editor

AcceleoArduino SDK

EMF

GMF Runtime

Sirius Runtime

Eclipse RCP

Arduino Designer

Page 21: Arduino Designer - Cesec2015

Data

AcceleoArduino SDK

EMF

GMF Runtime

Sirius Runtime

Eclipse RCP

Arduino Designer

Page 22: Arduino Designer - Cesec2015

Ecore Modeling Framework (EMF)

A modeling framework

and code generation facility

for building tools and other applications based on a

structured data model.

https://eclipse.org/modeling/emf/

Page 23: Arduino Designer - Cesec2015

Arduino DSL

Page 24: Arduino Designer - Cesec2015
Page 25: Arduino Designer - Cesec2015
Page 26: Arduino Designer - Cesec2015
Page 27: Arduino Designer - Cesec2015
Page 28: Arduino Designer - Cesec2015
Page 29: Arduino Designer - Cesec2015
Page 30: Arduino Designer - Cesec2015
Page 31: Arduino Designer - Cesec2015
Page 32: Arduino Designer - Cesec2015
Page 33: Arduino Designer - Cesec2015
Page 34: Arduino Designer - Cesec2015
Page 35: Arduino Designer - Cesec2015
Page 36: Arduino Designer - Cesec2015
Page 37: Arduino Designer - Cesec2015
Page 38: Arduino Designer - Cesec2015

ON OFF

Page 39: Arduino Designer - Cesec2015

servo.h

Page 40: Arduino Designer - Cesec2015
Page 41: Arduino Designer - Cesec2015
Page 42: Arduino Designer - Cesec2015
Page 43: Arduino Designer - Cesec2015
Page 44: Arduino Designer - Cesec2015
Page 45: Arduino Designer - Cesec2015
Page 46: Arduino Designer - Cesec2015
Page 47: Arduino Designer - Cesec2015
Page 48: Arduino Designer - Cesec2015
Page 49: Arduino Designer - Cesec2015
Page 50: Arduino Designer - Cesec2015
Page 51: Arduino Designer - Cesec2015
Page 52: Arduino Designer - Cesec2015
Page 53: Arduino Designer - Cesec2015
Page 54: Arduino Designer - Cesec2015

EMF.edit

JAVA API :

★ Content & label

providers

★ Command framework

★ Default tree editor

Page 55: Arduino Designer - Cesec2015

Create graphical editor

AcceleoArduino SDK

EMF

GMF Runtime

Sirius Runtime

Eclipse RCP

Arduino Designer

Page 56: Arduino Designer - Cesec2015

Sirius

A tool to quickly define DSL based on custom multi-

view workbenches with dedicated representations

http://eclipse.org/sirius

Page 57: Arduino Designer - Cesec2015

Diagram definition

Create a Sirius Specification Project and provide

diagram descriptions :

● Mappings

● Styles

● Tools

Interpreted @ runtime

Page 58: Arduino Designer - Cesec2015
Page 59: Arduino Designer - Cesec2015

Mappings

Maps

semantic elements

onto

graphical notation

Page 60: Arduino Designer - Cesec2015

Mappings

Page 61: Arduino Designer - Cesec2015

Mappings

Page 62: Arduino Designer - Cesec2015

Styles

Define

graphical appearance

Page 63: Arduino Designer - Cesec2015
Page 64: Arduino Designer - Cesec2015
Page 65: Arduino Designer - Cesec2015

Tools

Defined thanks to

a simple action langage

and/or

Java services

Page 66: Arduino Designer - Cesec2015
Page 67: Arduino Designer - Cesec2015
Page 68: Arduino Designer - Cesec2015
Page 69: Arduino Designer - Cesec2015

Queries

Coupling to semantics is low

thanks to queries!

Page 70: Arduino Designer - Cesec2015

Diet RCP

Keep only

in the UI

what’s really

necessary

Page 71: Arduino Designer - Cesec2015

Simplified UI

AcceleoArduino SDK

EMF

GMF Runtime

Sirius Runtime

Eclipse RCP

Arduino Designer

Page 72: Arduino Designer - Cesec2015

Dashboard

Page 73: Arduino Designer - Cesec2015

Diet RCP

Simplify the workflow

Page 75: Arduino Designer - Cesec2015

Integrate code generator

Generate ino file with Acceleo

Page 76: Arduino Designer - Cesec2015

Integrate code generator

AcceleoArduino SDK

EMF

GMF Runtime

Sirius Runtime

Eclipse RCP

Arduino Designer

Page 77: Arduino Designer - Cesec2015
Page 78: Arduino Designer - Cesec2015
Page 79: Arduino Designer - Cesec2015
Page 80: Arduino Designer - Cesec2015

All is instruction!

Page 81: Arduino Designer - Cesec2015

All is instruction!

Use

inheritance

for the templates!

Page 82: Arduino Designer - Cesec2015
Page 83: Arduino Designer - Cesec2015

Combine with Arduino tools

AcceleoArduino SDK

EMF

GMF Runtime

Sirius Runtime

Eclipse RCP

Arduino Designer

Page 84: Arduino Designer - Cesec2015

Combine with Arduino tools

Arduino compiler

Target uploader

Based on Arduino IDE to get well packaged tools :

avr-gcc, avrdude

Page 85: Arduino Designer - Cesec2015
Page 86: Arduino Designer - Cesec2015
Page 87: Arduino Designer - Cesec2015
Page 88: Arduino Designer - Cesec2015
Page 89: Arduino Designer - Cesec2015
Page 90: Arduino Designer - Cesec2015
Page 91: Arduino Designer - Cesec2015
Page 92: Arduino Designer - Cesec2015

Model + Microcontroller = ♥

Page 93: Arduino Designer - Cesec2015

And where is the cat in this story?

Page 95: Arduino Designer - Cesec2015

The cat making-of ?

Page 96: Arduino Designer - Cesec2015

Touch

Push button nose commmands a blinking necklace

Page 97: Arduino Designer - Cesec2015

See

Infrared sensor eye commands the servo-motored

tail

Page 98: Arduino Designer - Cesec2015

GEMOC

ANR INS Project (2012-2016):

“A Language Workbench for Heterogeneous Modeling

and Analysis of Complex Software-Intensive Systems”

Page 99: Arduino Designer - Cesec2015

Arduino simulator

2 plugins:

fr.obeo.dsl.arduino.simulator

fr.obeo.dsl.arduino.simulator.design

Language files blank comment code

Java 14 229 318 1185

XML 5 0 0 329

Maven 2 12 18 54

SUM: 21 241 336 1568

Page 100: Arduino Designer - Cesec2015

Interpreter

Page 101: Arduino Designer - Cesec2015

Execution Engine

Page 102: Arduino Designer - Cesec2015

Animator

simulator.odesign

customizing arduino.

odesign

Page 103: Arduino Designer - Cesec2015

Animator (2)

Contributing actions

Page 104: Arduino Designer - Cesec2015

Animator (3)

Adapting style

Page 105: Arduino Designer - Cesec2015

Demo

Page 106: Arduino Designer - Cesec2015

Demo...with no cat

Page 107: Arduino Designer - Cesec2015
Page 108: Arduino Designer - Cesec2015

Products available

On github : https://github.com/mbats/arduino/releases

Page 109: Arduino Designer - Cesec2015

Inspire and create yours!

Code available on :

https://github.com/mbats/arduino

Ask questions about Sirius on the forum