Watson is a project I started a few years ago. I like to think of Watson as a person, so throughout this post I will refer to him as such. The reason I decided to write this post was because I plan on bringing him back to life and would like to share his progress. Watson is essentially a device that allows me to control certain things in my room using my voice. I called him Watson because I really wanted him to have a typical butler name. Some of my other options were Jarvis and Alfred, but I chose Watson instead, due to the fact that the name had not been used in movies. For the past few years, he has only been a proof of concept and is still in beta. The voice recognition still needs to be improved and so does the response time. Both of these can be improved by adding more command samples and by cleaning up the code. Watson is based on an Arduino and a Voice recognition shield. In the demo I filmed a few years ago, I used an RGB LED to represent my lights and my air-conditioning. Green represents my lights and blue represents my air-conditioning. I did try to implement a rotating servo with a custom head (seen in video below) so that I could at least control my lights without taking apart the switch. Unfortunately, there was a bug in the code that I could not fix. I tried changing I/O pins, using non PWM I/O pins, asking on forums, and even asking one of the instructors I worked with when I went to NuVu. Nothing I tried worked, and nobody could find a solution. The code is designed in a way so that nothing will activate until a trigger word is spoken. In this case, the trigger word is Watson. This essentially means that Watson will not do anything for me unless I say his name first. This is extremely beneficial as it eliminates several errors. If I did not have a trigger word then any speech that is spoken in my room could be accidentally recognised and could result in my lights or air-conditioning turning on without my command. To make Watson seem more human, while adding command samples, I did not just stick to simple phrases such as “Watson, AC on” I also added more common phrases such as “Watson, Im feeling hot”. This unfortunately makes it harder for Watson to recognise commands, thus making him less responsive.  All of this can be seen in the demo below. Sorry for the bad video quality. If you wish to see Watson in action skip to 1:05.


Unfortunately, when he was first developed, I was living in a house that was rented. For me to implement him cleanly into my room would require me to splice wire that were hidden behind the dry wall. This is what led me to trying to use a servo. The dorm room I currently live in at my boarding school only has one light. The wiring from the switch to the light is exposed. This light is not bright enough for the room, so my roommate and I have several lamps in the corners. In place of air-conditioning, we have a simple fan. All these items run on 110v and the arduino can only output a maximum of 5v. To overcome this barrier, I will use a relay. Below is a very basic explanation of how some relays work.

Untitled

This is how we get the arduino to activate the lights and the fan. In the picture above, the blue bar is an electromagnet. This magnet is triggered at 5v which the Arduino is also capable of outputting. When triggered, a conductive piece is pulled up, which then completes the 110v circuit. Keep in mind this is a very general and simplified explanation. Relays today are much more complicated.

Some of my future plans include implementing Watson in my living room back home and also connecting Watson to the internet or GPRS. This would allow me to control my lights and fan via web browser or text.

Updates coming soon!

Leave a Reply