arduino designer - cesec2015
TRANSCRIPT
Arduino DesignerTurning Eclipse into an Arduino programming platform for kids
Mélanie Bats [email protected]
@melaniebats
A model
A micro controller
And a cat ?
Curiosity
Discover by yourself
Computers are everywhere
Understand electronics
Arduino
Understand programming
Many open source software are dedicated to learn
programming to kids: Scratch, TurlteLogo, KidsRuby,
Python4Kids…
Initiatives: Programatoo, Devoxx4Kids, greenlight,
coding goûter...
Text
Graphical
Program the real world
Eclipse
Arduino Designer
Blink a LED!
A dedicated tooling
Graphical Programming
Light UI
A dedicated tooling
Graphical Programming = Sirius
Light UI
A dedicated tooling
Graphical Programming = Sirius
Light UI = RCP application
Create graphical editor
AcceleoArduino SDK
EMF
GMF Runtime
Sirius Runtime
Eclipse RCP
Arduino Designer
Data
AcceleoArduino SDK
EMF
GMF Runtime
Sirius Runtime
Eclipse RCP
Arduino Designer
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/
Arduino DSL
ON OFF
servo.h
EMF.edit
JAVA API :
★ Content & label
providers
★ Command framework
★ Default tree editor
Create graphical editor
AcceleoArduino SDK
EMF
GMF Runtime
Sirius Runtime
Eclipse RCP
Arduino Designer
Sirius
A tool to quickly define DSL based on custom multi-
view workbenches with dedicated representations
http://eclipse.org/sirius
Diagram definition
Create a Sirius Specification Project and provide
diagram descriptions :
● Mappings
● Styles
● Tools
Interpreted @ runtime
Mappings
Maps
semantic elements
onto
graphical notation
Mappings
Mappings
Styles
Define
graphical appearance
Tools
Defined thanks to
a simple action langage
and/or
Java services
Queries
Coupling to semantics is low
thanks to queries!
Diet RCP
Keep only
in the UI
what’s really
necessary
Simplified UI
AcceleoArduino SDK
EMF
GMF Runtime
Sirius Runtime
Eclipse RCP
Arduino Designer
Dashboard
Diet RCP
Simplify the workflow
Use Sirius API
Have a look to the
Sirius Developer Manual
Integrate code generator
Generate ino file with Acceleo
Integrate code generator
AcceleoArduino SDK
EMF
GMF Runtime
Sirius Runtime
Eclipse RCP
Arduino Designer
All is instruction!
All is instruction!
Use
inheritance
for the templates!
Combine with Arduino tools
AcceleoArduino SDK
EMF
GMF Runtime
Sirius Runtime
Eclipse RCP
Arduino Designer
Combine with Arduino tools
Arduino compiler
Target uploader
Based on Arduino IDE to get well packaged tools :
avr-gcc, avrdude
Model + Microcontroller = ♥
And where is the cat in this story?
Tigger
https://github.com/mbats/arduino/wiki/Tutorial-:-
Tigger,-the-Arduino-bubble-cat
The cat making-of ?
Touch
Push button nose commmands a blinking necklace
See
Infrared sensor eye commands the servo-motored
tail
GEMOC
ANR INS Project (2012-2016):
“A Language Workbench for Heterogeneous Modeling
and Analysis of Complex Software-Intensive Systems”
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
Interpreter
Execution Engine
Animator
simulator.odesign
customizing arduino.
odesign
Animator (2)
Contributing actions
Animator (3)
Adapting style
Demo
Demo...with no cat
Products available
On github : https://github.com/mbats/arduino/releases
Inspire and create yours!
Code available on :
https://github.com/mbats/arduino
Ask questions about Sirius on the forum