Recently I got a Chromebook, mostly out of curiosity for this odd “computer that runs only a web browser”. While playing with Google dev tools I quickly saw a possibility to make a Crazyflie client as a Chrome app: the Chrome API provides USB connectivity,and HTML5 has a javascript gamepad API. A chrome app is designed to look and feel like a native application: the app does not require internet connection and is launched in its own window.
This week-end I finally got around to test it, it’s not pretty but it works :-)
The current functionality is:
- Channel and datarate can be changed
- Read input from a gamepad, the mapping is fixed to mode 3 and the sensitivity is fixed
- Sends set-points to Crazyflie 33 times per seconds.
I haven’t had time to do any layout work on it (that is pretty obvious in the screenshoot :) ), but the plan is to use Angular Material to handle the GUI.
This is only a proof of concept but we are seeing a lot of potential: the Chrome app runs on Linux, Mac, Windows and Chromebook, is easy to install and is written in HTML/CSS/Javascript which seems to be a very popular platform nowadays.
I have pushed the code on Github so if anyone is interested in helping to shape up the app head to the forum to read the discussion about it.
Hi Arnaud,
I’ve been working on improving the look and functionality of this extension. I’ll send a github pull request after my Crazyflie 2.0 arrives and I get a chance to test it.
Hi Richard,
Sounds great! If you want you can also send the pull request not and I can test :-).
I just sent the pull request. My version expands the User Interface and I would like to make more changes, but I can’t connect the Crazyradio PA yet. Not sure what’s wrong, it shows the following error:
chrome.usb.claimInterface error: Error claiming interface.
Great! Though I think you made the pull request on the wrong repos (happens to me recently, github has a strange UI). For Crazyradio PA it works on the master branch for me, maybe it depends of the system. Lets talk about it on Github.