您的位置:首页 > 理论基础 > 计算机网络

JavaScript Beyond the Web in 2014 http://www.sitepoint.com/javascript-beyond-web-2014/

2014-10-11 09:56 821 查看


Ninja Sphere


Photo
credit: Ninja Blocks Inc

The Ninja Sphere is the next generation of home automation from the team that brought the world Ninja Blocks. The Ninja Sphere is
replacing the original Ninja Blocks kit and has a bunch of new capabilities, now supporting
Bluetooth Smart devices and the ZigBee framework. It’s basically compatible with a ton of new devices, looks like a sleek
glowing tech ball from a sci-fi movie and even has gesture control.


Getting Involved via JavaScript

Ninja Sphere Node.js library – Applications for the Ninja
Sphere are all programmed using their official Node.js library. Even drivers and device definitions for the Sphere are in JavaScript files. It’s a JavaScript and IoT fanatic’s dream.


Leap Motion



Photo credit: Leap Motion Inc

The Leap Motion is a wonderful piece of tech that allows you to control applications and devices using hand gestures. It tracks
both hands and all ten fingers giving developers a futuristic alternative to the typical keyboard and mouse.

Since last year, things have stepped up in the world of the Leap Motion to some exciting new possibilities. They’ve got V2 of their hand tracking in beta which fine tunes tracking making it a great deal more reliable. They can now track individual bones in
each finger!

V2 also provides an exciting new use for the Leap Motion – virtual reality. As exciting as virtual reality is, it is a bit offputting that you can’t see your hands. Bring in Leap
Motion’s new Oculus mount and you can attach your Leap Motion to an Oculus VR headset, allowing you to interact with virtual worlds using your hands.

From a JavaScript perspective, the Leap Motion team has provided a JavaScript SDK of a pretty darn high standard with great documentation and examples – already updated with a lot of the V2 functionality.


Getting Involved via JavaScript

Leap Motion JavaScript framework
This brings almost all of the capabilities of the Leap Motion to web applications and Node. A huge amount of the V2 beta is already available for you to develop with in JavaScript, we’re just waiting on the head-mounted tracking capabilities for VR which hopefully
will come soon.


Pebble Watch



Photo credit: Pebble

Oh the Pebble watch… Don’t get me started on how wonderful this device is. I’m an outspoken Pebble enthusiast and have given entire
talks on why people should get one! In an age before the Apple watch and Android Wear, the Pebble team were pioneering an incredibly functional, easy to use smartwatch that pairs with both iPhones and Android devices via Bluetooth. It uses an e-paper display
making it easy to read in direct sunlight and battery life that lasts about a week between charges.

This year was the release of version 2.0 of the Pebble SDK which brought along with it a Pebble Appstore, a range of new functionality and most exciting of all, the PebbleKit JavaScript framework.


Getting Involved via JavaScript

PebbleKit JavaScript framework – This framework
allows you to run JavaScript on the phone to pull in data from the web to build rich web enhanced experiences on your watchfaces and apps. It also has access to location data from your phone, so it is possible to create location based web API apps. App development
still requires some C coding for the watch app itself but for those without much C experience, you can take a sample watchface, make minor changes that don’t require too much C knowledge and then build most of the exciting functionality in JavaScript! If you’re
keen to give Pebble development a go, I covered how to get started with Pebble app development from a JavaScript perspective in two SitePoint articles below.
Pebble Watch Development with JavaScript
My first article covering all the basics.
Advanced Pebble Watch Configuration – How
to add configuration options to Pebble apps using the JavaScript framework.
Pebble.js – While still in beta, this is an official framework for building
Pebble applications completely in JavaScript! Keep an eye out for this in the upcoming months.


Oculus Rift



Photo credit: Oculus VR, LLC

The Oculus Rift headset has gotten us closer to easily accessible virtual reality than ever before. The Developer Kit 2 recently
shipped this year with new iterations of the headset on the horizon – the “Crescent Bay” prototypeand a Samsung
Gear VR headset that uses the Samsung Galaxy Note 4.

While there is no official JavaScript API for the Oculus Rift just yet, there are a few options for creating JavaScript powered Oculus experiences.


Getting Involved via JavaScript

OculusBridge – A desktop app and JavaScript library to allow
for Three.js based Oculus Rift web experiences. It has both Windows and Mac OSX installs and works on Chrome 28, Safari 6 and Firefox 22. It doesn’t mention IE, so I’m not sure if it is supported. This is the JS library I’ve gotten to work relatively easily
on my Macbook.
vr.js – A plugin for Chrome and Firefox that provides access to the
Oculus Rift headset, however it runs using NPAPI which Chrome is depreciating, so it might
not be a good long term solution. I’ve been experimenting with OculusBridge instead.
Babylon.js and IE11 – If
you’ve got a PC with IE11, you can create a 3D environment using Babylon.js and then with a single line of code and a driver, pick
up device orientation. From that you’ve got an Oculus Rift VR experience! It apparently doesn’t work for Chrome just yet but fingers crossed that happens soon.


Cylon



Photo credit: The Hybrid Group

A very useful JavaScript API that has really hit its stride this year is Cylon.js, a JavaScript framework for robotics and the Internet
of Things. It is making some great progress in enabling JavaScript to bridge the gap between devices by allowing you to program a range of devices using the same API structure. It does all of this in an easy to understand way that makes programming for devices
really simple. Cylon.js works by having multiple modules available to support an ever expanding list of devices including the Leap Motion, Pebble watch, Arduinos, Raspberry Pis and more.


Arduino YUN



Photo credit: Arduino

We’ve been able to issue commands from remote Node servers to Arduinos a number of different ways over Node for a while now. They’ve always relied on the Arduino running its own C code which understands how to communicate with a Node server. This year saw the
introduction of a new Arduino – the Arduino YUN. This Arduino is the first to have an installation of Linux running
on the board, so you can set up and run a web server on your Arduino that talks to the Arduino itself, eliminating the need for a main server elsewhere to be issuing commands.


Getting Involved via JavaScript

Installing Node.js on the Arduino YUN – For JS developers,
this Linux installation means you can install Node.js on the Arduino itself, keeping a huge amount of the running code on the board itself. Basically – your Arduino can run JavaScript!
Cylon.js module – It also has a Cylon.js module of its
own that can be installed on the YUN.


Spark OS



Photo credit: Spark

Spark OS is an operating system in the cloud that allows Internet enabled devices to communicate. They have Spark Cores which are Wi-Fi
enabled microcontroller boards similar to Arduinos (but much smaller than an Arduino Uno). You connect them up to a WiFi network and can send commands to the Spark Core board via their cloud platform. It is the easiest setup process I’ve gone through for an
IoT device and has been the most reliable to hook up and use every time.


Getting Involved via JavaScript

Official Spark JavaScript SDK – Spark have their own JavaScript SDK which
is quite simple to follow, along with various third party libraries below.
spark-io – A module by voodootikigod who also did the Johnny-Five Arduino
Node module.
Sparky – A very simple Node.js library.
Cylon.js module


Tessel



Photo credit: Tessel

This year was also the year that the Tessel shipped to the world. Tessel is a microcontroller like the Arduino and the Spark Core but is
built specifically for JavaScript developers because the board itself runs JavaScript. It is compatible with thousands upon thousands of Node.js packages (but doesn’t run Node itself), developed with the end goal of utilizing all of this existing potential
in the JavaScript ecosystem and in JavaScript developers.


Getting Involved via JavaScript

Official Tessel docs – There are a bunch of examples within the modules section
of the docs to show how to communicate with each type of module via JavaScript.
Cylon.js module


Espruino



Photo credit: Pur3 Ltd

Earlier this year, another microcontroller that also runs JavaScript was shipped out – the Espruino. This board is tiny, runs on
a single chip and is so energy efficient it can apparently run for years on battery power. It doesn’t really run Node modules and such, instead working via an event-based system where the device can run your JavaScript commands in real time. You run code on
the device from your computer, then when you’re happy with it, you run a command on the Espruino that saves the current functions and configurations. It’s quite a different model than the uploading of code for each change on the Arduino and Tessel.


Getting Involved via JavaScript

Official Espruino docs – A quick start guide followed by a bit more
in depth stuff.
node-espruino – A third party Node library for interfacing
with the Espruino via Node.js.


Intel Galileo



Photo credit: Intel Corporation

The Intel Galileo board is a microcontroller board that uses Intel’s own components but follows the Arduino Uno pin structure so existing Arduino shields can be used. Just like the Arduino YUN, Galileo runs Linux onboard. However, the Linux image used is apparently
quite limited, so a bigger Linux image can be installed by inserting an SD card. This fully fledged Linux contains Node.js and all of its JavaScript capabilities (along with many other non-JS capabilities too).


Getting Involved via JavaScript

The “bigger” Linux image
with Node.js – A guide from SparkFun on getting started with the SD card Linux option. Definitely the most powerful option with the most potential. It doesn’t cover how to use the Node.js server as it has a Python focus but it is the starting point.
Intel Galileo Programming with JavaScript and Node.js
This article speaks more in detail on getting involved with Node on the board, showing how to install the Johnny-Five module onto the board itself.
Cylon – Cylon’s module works if you have the SD card with the full powered Linux installed.
Galileo-IO module for Johnny-Five – Just like using the Johnny-Five
module to control Arduinos, the JavaScript controlling happens via a Node server outside of the Galileo board, not installed on the board itself.


Google Cardboard



Photo credit: Google Inc

At Google I/O this year, a wildly strange, yet powerful concept was introduced – Google Cardboard. They are a pair
of DIY virtual reality glasses made of cardboard that you connect an Android device to for a rather inexpensive VR experience. Their documentation focuses on native Android development, however there are Chrome experiments too which show potential for web
based virtual reality powered by JavaScript.


Getting Involved via JavaScript

Cardboard Chrome Experiments – Includes a bunch of demos and a code example.
View source in the demos to see how it all works.


Myo Armband



Photo credit: Thalmic Labs Inc

The Myo Armband uses the electrical activity in your muscles to control applications via hand gestures completely wirelessly.
It is relatively new and is only just currently shipping its pre-orders. We’ll have a bunch of new developers giving this a go throughout the year and shall see just how well this new device works. I’m eagerly awaiting mine. There’s definitely huge potential
with this technology.


Getting Involved via JavaScript

MyoJS – An unofficial JavaScript framework for the Myo. Sadly, there’s
no official support just yet.


Nest



Photo credit: Nest Labs

The Nest team have two smart devices around right now, the Nest thermostat and the Nest Protect (a smoke and carbon monoxide alarm). This
year they opened their Nest Developer Program and Nest API to the public. While they don’t have a specific JavaScript API, they provide examples of how to access their Nest API via JavaScript in two examples.


Getting Involved via JavaScript

Official sample JS for the Nest Thermostat
Official sample JS for the Nest Protect
Cylon.js module – Seems to focus on the thermostat functionality
so far.


Conclusion

As you can see, the number of devices with JavaScript support in one way or another is growing. There’s much more than I can list within a reasonably sized article! JavaScript developers of the world who’ve yet to try their hand at an IoT device, there’s a
whole range of untapped potential in that skill set of yours – get yourself a device and start experimenting!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐