Giter Club home page Giter Club logo

babblebots's Introduction

BabbleBots

BabbleBots is meant to be a library that allows you to declaratively write a thin client for IoT devices-- so you can easily connect them to a Node/Python/Ruby/Go/Whatever server. It's basically a tool so that I don't have to keep writing thin clients for my devices, and so others can make thin-client NodeBots without having to deal with C.

WARNING: the API and definitons for this can and will change at a moment's notice. Don't expect API stability for a bit-- I want to be very deliberate but at the same time I'm going to make mistakes and need to fix them.

How it Works

Install: npm install -g babblebots

Run: babblebots ./path-to-my/build-file.js

Wanna know what goes in the build files? Check out an example or --the docs-- (coming soon-- check out the docs branch!)

Note

Here are the components this supports:

  • Creating a setPin function that allows you to set any pin to any value via REST API
  • Neopixels, with function that allows you to set colors on neopixels strands via REST API
  • Internet Button, with function that allows you to set the neopixels colors and access accelerometer values and button push events via REST API
  • TCS34725 color sensor with variables that allow you to access red green and blue values via REST API

Goals

  • Declare a JSON schema representing your bot, and BabbleBots spits out a language-appropriate file
  • Start with Particle Photon/Core support, but add in later:
    • Electric Imp
  • Unit tests, unit tests everywhere

Up Next

  • clean up-- add gulp build with jshint/jscs/beautifier
  • Docs. All the docs.
  • UNIT TESTS. I failed at TDD but I need to put tests in.
  • write a spark upload task
  • write an actual CLI menu

Versioning

0.2.61 -- docs push.

0.2.6 -- minor bug fixes and added TCS34725 color sensor

0.2.5 -- minor bug fixes and added Internet Button. Also, dependencies now fetch from GitHub instead of keeping files in BabbleBots repo.

0.2.1 -- I did a major refactor. Build, Platform, and Component now separate concerns much better than they did. Still a lot of cleaning to do.

0.1.0 -- Okay. So, it works. For one component and one platform. Probably needs a ton of cleanup. BUT IT WORKS.

0.0.1 -- Scaffolding set up. exampe files created, build filled out.

0.0.0 -- I have the files set up. Like, the .gitignore and the README. Nothing is here except my goals and the idea (written in JFK after 20 pages of written brainstorming on a plane.)

babblebots's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

babblebots's Issues

Working on deprecating the npm module 'spark'

Hi Awesome Maintainer(s) of BabbleBots!

We recently got a request to free up the 'spark' module on npm, but we wanted to first make sure anyone using it had a chance to upgrade to the new and improved particle-api-js.

If you have time in the next 6-12 months, we'd love it if you did so we can give the package name back to the community. :)

New module:
https://github.com/particle-iot/particle-api-js

Thanks!
David (from Particle)

Use template-literal instead of EJS

Template Literal is fastest, smallest and simplest template engine, because it use JS's literal template feature.

It's 55 times faster than EJS, and it also use less CPU and RAM ressources, so it may be a good idea to use it instead of EJS ๐Ÿ˜€

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.