Showing posts with label adk. Show all posts
Showing posts with label adk. Show all posts

Sunday, 9 March 2014

[PROJECT] Epson Moverio BT 100 ... Let's try to make them better

I had the opportunity during the last days to try Google Glasses.


It is a great product, well designed.
But in my opinion, it should be considered just as a wearable, with the same capabilities of a potential "smart" watch.
The only advantage over other wearables, is that:

  • it has the same PoV of the user
  • it can show stuff in front of the user
I really see it like a data companion and for sure Google capabilities with voice recognition are awesome. But you do not have enough space on your "display" to perform complex workflows.

But when we are talking about Augmented Reality or Virtual Reality, we have to move to other products.

Latest products making attempts to bring back HMD and AR/VR
But if we go back in the past, EPSON presented, at the end of 2011, the Moverio BT-100. One of the best features of those glasses is they are transparent. You can actually see through them changing your focus.



They are quite old and the specs of the SoC are quite outdated. Furthermore, sensors and peripherals are quite limited... Wi-Fi... And nothing else. Here you are some information about the SoC they used (EMMA Mobile EV).
Android 2.2, no updates, not Google branded (no Play and so on...)... No camera, microphone(!) and/or USB Host functionality (for example could enable the use of ADK).
APX Labs tried to enrich it (see video above).
EPSON will go out on the market in May with the BT 200, the reviewed version. They are throwing the old version to the people interested in developing Android apps or curious about them at a ridiculous price.

That's why I decided to take a ride and ordered them.
The idea is to exploit the best part of this product: the optics, the "glasses" part.

I am quite satisfied by the Google Nexus line... And all the latest 3 products (Nexus 4, Nexus 5 and Nexus 7) support Miracast and SlimPort.
Well known working devices:


This is a way to respectively do wireless display mirroring or by-wire display mirroring.

EPSON provides a Input AV Card to enable external audio&video sources to be sent to the 2 projectors.

The idea is to link the following devices:

  • EPSON Moverio BT-100 (around 99€)
    • EPSON AV Adapter (0€)
      • HDMI to AV Composite adapter (35€)
        • HDMI Male-Male Coupler (5€)
          • SlimPort / Miracast device (30 / 60€)
This allows to use any HDMI capable device to use your BT-100. And with a RaspberryPi or any development card (such as an Odroid one, a BeagleBoard, etc...), you can potentially connect a webcam or a Kinect to put over your head and use computer vision to extract features, gather AR-Tag's positions and generate graphics to be overlayed over the real world images.


Tuesday, 28 August 2012

Softmodem communication on Android

One of the projects I would like to proceed but I am a little stuck due to limited amount of time...
Being able to communicate between Arduino devices and Android via audio cable.
The idea is simple (and not mine): modulate a carrier wave using frequency changes in correspondence of binary data changes. It is called Frequency Shift Keying.
Obviously, transmission data rates are not suitable for media streaming, but enough for trasmitting small amount of information like commands, data from sensors connected to Arduino board, etc....



There is a similar project, called Androino. Another working example, this time on Apple hardware, is IR-Remote.
I think it was a university project but I think it has been abandoned. Source code is available but I wasn't able to make it work.

Hardware

On the hardware side, all I bought is:

Software

Talking about the software, the Arduino code is ready and available as serial interface. It has been developed by ARMS22 (authors of the board too). It is available on this website. They focused their attention on iPhone, but I want to make it work on Android.

An Android client existed too, but it has been removed from the website. For receiving data on Android, the main idea is to use the Audio API to record chunks of audio, perform a zero crossing algorithm on it to store the "distance" between crossings. Then perform an RLE to translate it into valid byte values.
This will be packed into a threaded library offering an input and an output queue as interface for reading incoming data.
For sending data, some code in Javascript is available and it should not be too difficult to implement it in Java.

The issue can be the battery consumption, since we are continuously recording&processing Audio, having no interrupt on Android side.
I am sure an ADK board is the best way to communicate with Android, but it wouldn't be cross-platform and cross-device.