Update: Project jaNET has a home and a Facebook page
Project jaNET provides a framework that allows various components to communicate, controlled interactively by the user. This procedure aim to act like a digital life assistant (DLA) which I inspired by Iron Man's JARVIS.Since I finished a digital photo frame (you can find some material here) with a reflective dielectric glass in front acting like a mirror when its turned off, I thought... hmm, it's a hidden computer, why limited just to play photos and not do more things like, checking email, get weather, controlling my room lights maybe temperature, or any other sensor attached in future, and generally stuff could assist me in matters of information? Then JARVIS came as a guidance inspiration, and the project jaNET began!
But no more talking, lets cut to the chase! I'll try to describe and explain some actions "she" can do at the present time and "drop some specs".
Let's take a look to the hardware used by the time. I use a Phidgets 8/8/8 usb interface kit, a MaxBotix EZ-1 Sonar Sensor and a Dual Relay Board.
Relay board is responsible for the desk lights and the sonar to entrap my office area. Software written in java, is stand alone for each unit and called from jaNET when needed. Update: I use also an arduino microcontroller and sensors to measure temperature, illumination and motion activity.
Beyond hardware I built a framework providing some actions as described below.
Weather check, email check, knowing my gps position, controlling room lights, desk entrapment and alert when someone approach, listening bluetooth devices and react as the configuration XML file instructs, setting wake up calls, listening commands from anywhere by a custom web service or email, sending email alerts, sending sms alerts and sometimes talking too much :)
I wanted to be cross platform but emphasized on linux. I decide to use Ubuntu, C# Mono and Festival Speech Synthesis. I also needed to be flexible in matters of user preferences so the framework and the parser designed so, that the end user configure it to his way. The default instruction set simplifies the actions he has to do! The concept achieved with an XML configuration file.
For instance, I have a built-in function, called %mailcount%, which returns the number of incoming e-mails as an integer. Then I describe a new instruction set "checkmail" in the XML file, something like "You have %mailcount% mail messages". So when I call this command, the parser interprets, trigger the function from the framework, get the value and finally announce it if e-mails fetched. I think it's very handy because you don't need to have programming skills to make it work for you!
You can preview some videos on my youtube channel and more cool things is on the way!