Awesome
Admin panel for Meteor Cylon.js
Meteor CylonJS wrapper for Arduino board.
This is just for fun but all ideas and PRs are welcomed :)
Usage
Then add the packages:
meteor add juliancwirko:arduino-cylon
meteor add juliancwirko:caprica
Blog post
Meteor meets Arduino and Cylon
and config your Cylon:
Example
Server side:
Meteor.startup(function () {
Cylon.robot({
name: 'Number Six',
description: 'Description is optional...',
connections: {
arduino: { adaptor: 'firmata', port: '/dev/ttyACM0' }
},
devices: {
redLed: { driver: 'led', pin: 13 },
yellowLed: { driver: 'led', pin: 12 }
},
redLed: function () {
this.devices.redLed.toggle();
return 'Cylon ' + this.name + ' toggles red led';
},
yellowLed: function () {
this.devices.yellowLed.toggle();
return 'Cylon ' + this.name + ' toggles yellow led';
},
toggleAll: function () {
this.devices.redLed.toggle();
this.devices.yellowLed.toggle();
return 'Cylon ' + this.name + ' toggles red and yellow led';
},
commands: function () {
return {
'Toggle red Led': this.redLed,
'Toggle yellow Led': this.yellowLed,
'Toggle all': this.toggleAll
};
}
}).start();
});
Next step is to place {{> capricaHomeland}}
template somewhere in your Meteor app layout.
You can se it in demo app here: https://github.com/juliancwirko/caprica-demo
Client side (HTML):
<head>
<title>caprica</title>
</head>
<body>
{{> capricaHomeland class="my-custom-class" defaultTheme=true}}
</body>
You can disable default css styling by setting defaultTheme
to false
. You can provide your own class for styling. Other classes will be prefixed with your custom class.
You can also use aldeed:template-extension to overwrite templates. (Be careful with this).
More configuration options and devices documentation on cylonjs website:
You can also read more about juliancwirko:arduino-cylon
package here:
https://github.com/juliancwirko/meteor-arduino-cylon
Current UI demo
http://caprica-demo.meteor.com/
Video demo
Problems to solve
- better understanding of npm packages and sudo privilages with Meteor - I have to run meteor with sudo after adding packages :/
- better exceptions handling - if there is no Arduino connected we should comment devices and connections blocks
- you need to refresh page after changes in Cylonjs config
TODO (if time permits):
- http api (maybe with Iron Router) ( ..yes I know that there is cylon-api-http ;) )
- better UI
- more research on cylonjs events etc.
- more demos and examples