Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Arduino Designer
The making of!
Mélanie Bats
melanie.bats@obeo.fr
@melaniebats
A model
A micro controller
And a cat ?
Arduino Designer
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
Arduino DSL
ON OFF
servo.h
Remind #1
1. Hardware/Software Co-design
2. All is instruction
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....
Diagram definition
Create a Sirius Specification Project and provide
diagram descriptions :
● Mappings
● Styles
● Tools
In...
Mappings
Maps
semantic elements
onto
graphical notation
Mappings
Mappings
Mappings
How to represent
the sketch
loop ?
Mappings
Mappings
Mappings
Styles
Define
graphical appearance
Tools
Defined thanks to
a simple action langage
and/or
Java services
Improve UX
Improve the user experience
thanks to
the tools!
Queries
Coupling to semantics is low
thanks to queries!
Queries
OCL/Acceleo/AQL → [/]
Java → service:
Variables → var:
Features → feature:
Acceleo
Java
Feature
Remind #2
Simplify UI thanks to advanced tools
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
Create a project
Convert to a modeling project
Convert to a modeling project
Create a session
Init the semantic model
Enable viewpoints
Open a diagram
Remind #3
1. This is not your father’s designer
2. Use Sirius API
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, avr...
Build a product
Classical RCP product
Build a product
Build a product
Build a product
Build a product
Have a look to Sirius Developer Manual :
Deploy a Modeler description file
Build a product
Contribute to org.eclipse.sirius.componentization
Build a product
Register your viewpoints at the start of the plugin
Delete your viewpoints in the stop of the plugin
Target Platform
Use target platform definition DSL and generator :
https://github.com/mbarbero/fr.obeo.releng.
targetplatf...
Tycho
Travis
.travis.yml
language: java
script: mvn clean package
jdk: oraclejdk7
deploy:
provider: releases
api_key:
secure:
IQP5qqJ6l...
Products available
On github : https://github.com/mbats/arduino/releases
Model + Microcontroller = ♥
And where is the cat in this story?
The cat making-of ?
Inspire and create yours!
Code available on :
https://github.com/mbats/arduino
Ask questions about Sirius on the forum
Do not miss!
Wednesday
13:30 - Sirius + Xtext = ♥
18:00 - Sirius Poster
Thursday
14:30 - Time-lapse
15:15 - Viewpoint: the...
Mélanie Bats
melanie.bats@obeo.fr
@melaniebats
Give your
feedback !
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
EclipseCon NA 2015 - Arduino designer : the making of!
Prochain SlideShare
Chargement dans…5
×

EclipseCon NA 2015 - Arduino designer : the making of!

1 413 vues

Publié le

Video : http://www.infoq.com/presentations/arduino-designer

What brings together a model, a microcontroller and a cat ?
The Arduino Designer ! Last year, we demoed this new modeler which allows kids to easily write programs for Arduino platforms using a visual tool. The purpose of this new talk is to unveil the making-of of this modeler, by detailing how it is possible to quickly develop such a simple dedicated modeler thanks to Sirius.

We’ll start by explaining how to use Sirius to create graphical editors such as the ones provided by the Arduino Designer. Then we’ll see how to simplify the Eclipse UI to keep the minimum useful interactions for an RCP application dedicated to kids. Finally, we’ll discuss how to integrate the modeler with a code generator and how to combine it with the Arduino tools to build and upload software into the Arduino hardware platform.

Join this session, and discover the power of graphical designers, the simplicity of creating new ones and integrating them with existing tools!

Publié dans : Logiciels
  • Soyez le premier à commenter

EclipseCon NA 2015 - Arduino designer : the making of!

  1. 1. Arduino Designer The making of! Mélanie Bats melanie.bats@obeo.fr @melaniebats
  2. 2. A model
  3. 3. A micro controller
  4. 4. And a cat ?
  5. 5. Arduino Designer
  6. 6. A dedicated tooling Graphical Programming Light UI
  7. 7. A dedicated tooling Graphical Programming = Sirius Light UI
  8. 8. A dedicated tooling Graphical Programming = Sirius Light UI = RCP application
  9. 9. Create graphical editor AcceleoArduino SDK EMF GMF Runtime Sirius Runtime Eclipse RCP Arduino Designer
  10. 10. Data AcceleoArduino SDK EMF GMF Runtime Sirius Runtime Eclipse RCP Arduino Designer
  11. 11. Arduino DSL
  12. 12. ON OFF
  13. 13. servo.h
  14. 14. Remind #1 1. Hardware/Software Co-design 2. All is instruction
  15. 15. Create graphical editor AcceleoArduino SDK EMF GMF Runtime Sirius Runtime Eclipse RCP Arduino Designer
  16. 16. Sirius A tool to quickly define DSL based on custom multi- view workbenches with dedicated representations http://eclipse.org/sirius
  17. 17. Diagram definition Create a Sirius Specification Project and provide diagram descriptions : ● Mappings ● Styles ● Tools Interpreted @ runtime
  18. 18. Mappings Maps semantic elements onto graphical notation
  19. 19. Mappings
  20. 20. Mappings
  21. 21. Mappings How to represent the sketch loop ?
  22. 22. Mappings
  23. 23. Mappings
  24. 24. Mappings
  25. 25. Styles Define graphical appearance
  26. 26. Tools Defined thanks to a simple action langage and/or Java services
  27. 27. Improve UX Improve the user experience thanks to the tools!
  28. 28. Queries Coupling to semantics is low thanks to queries!
  29. 29. Queries OCL/Acceleo/AQL → [/] Java → service: Variables → var: Features → feature:
  30. 30. Acceleo
  31. 31. Java
  32. 32. Feature
  33. 33. Remind #2 Simplify UI thanks to advanced tools
  34. 34. Diet RCP Keep only in the UI what’s really necessary
  35. 35. Simplified UI AcceleoArduino SDK EMF GMF Runtime Sirius Runtime Eclipse RCP Arduino Designer
  36. 36. Dashboard
  37. 37. Diet RCP Simplify the workflow
  38. 38. Use Sirius API Have a look to the Sirius Developer Manual
  39. 39. Create a project
  40. 40. Convert to a modeling project
  41. 41. Convert to a modeling project
  42. 42. Create a session
  43. 43. Init the semantic model
  44. 44. Enable viewpoints
  45. 45. Open a diagram
  46. 46. Remind #3 1. This is not your father’s designer 2. Use Sirius API
  47. 47. Integrate code generator Generate ino file with Acceleo
  48. 48. Integrate code generator AcceleoArduino SDK EMF GMF Runtime Sirius Runtime Eclipse RCP Arduino Designer
  49. 49. All is instruction!
  50. 50. All is instruction! Use inheritance for the templates!
  51. 51. Combine with Arduino tools AcceleoArduino SDK EMF GMF Runtime Sirius Runtime Eclipse RCP Arduino Designer
  52. 52. Combine with Arduino tools Arduino compiler Target uploader Based on Arduino IDE to get well packaged tools : avr-gcc, avrdude
  53. 53. Build a product Classical RCP product
  54. 54. Build a product
  55. 55. Build a product
  56. 56. Build a product
  57. 57. Build a product Have a look to Sirius Developer Manual : Deploy a Modeler description file
  58. 58. Build a product Contribute to org.eclipse.sirius.componentization
  59. 59. Build a product Register your viewpoints at the start of the plugin Delete your viewpoints in the stop of the plugin
  60. 60. Target Platform Use target platform definition DSL and generator : https://github.com/mbarbero/fr.obeo.releng. targetplatform
  61. 61. Tycho
  62. 62. Travis
  63. 63. .travis.yml language: java script: mvn clean package jdk: oraclejdk7 deploy: provider: releases api_key: secure: IQP5qqJ6lZtZYU6814OVyVcVLsTXlNzd4yRBF/KSIzABgJ6jtbgFthAub3nMKWGPXLZZYzGJzChU+mcvXCaOAh3DCcTSPun404oP2ORdYpSoexios+wIqLRz6XordpeMNCPURM2XVcRAR8w+HSGlFtW/rA5GkbnK+L155/K5bRg= file: - $TRAVIS_BUILD_DIR/packaging/fr.obeo.dsl.arduino.product/target/products/ArduinoDesigner-linux.gtk.x86.zip - $TRAVIS_BUILD_DIR/packaging/fr.obeo.dsl.arduino.product/target/products/ArduinoDesigner-linux.gtk.x86_64.zip - $TRAVIS_BUILD_DIR/packaging/fr.obeo.dsl.arduino.product/target/products/ArduinoDesigner-macosx.cocoa.x86_64.zip - $TRAVIS_BUILD_DIR/packaging/fr.obeo.dsl.arduino.product/target/products/ArduinoDesigner-win32.win32.x86.zip - $TRAVIS_BUILD_DIR/packaging/fr.obeo.dsl.arduino.product/target/products/ArduinoDesigner-win32.win32.x86_64.zip on: repo: mbats/arduino tags: true all_branches: true
  64. 64. Products available On github : https://github.com/mbats/arduino/releases
  65. 65. Model + Microcontroller = ♥
  66. 66. And where is the cat in this story?
  67. 67. The cat making-of ?
  68. 68. Inspire and create yours! Code available on : https://github.com/mbats/arduino Ask questions about Sirius on the forum
  69. 69. Do not miss! Wednesday 13:30 - Sirius + Xtext = ♥ 18:00 - Sirius Poster Thursday 14:30 - Time-lapse 15:15 - Viewpoint: the making of
  70. 70. Mélanie Bats melanie.bats@obeo.fr @melaniebats Give your feedback !

×