Friday, April 17, 2015

UIST Paper and Demonstration






After testing our prototypes a number of time, we decided to film the final demonstaration and the reult turned out really well. TeamTouch is able to detect all the users with different frequencies and the chains of users. Therefore, the demo game and the painting work perfectly. However, we see the obvious fact that the system need to calibration as different person has a different level of conductive. This directly effects the result of detecting frequencies of the system. In the future, this may consider as a major development for this project.

After completing the filming and editing the videos, we decided to write our paper to submit to UIST conference. We use google drive to share the work between team members and by the end of the day we completed and submited the paper. Such a long hard working day but we feel rewarded by seeing the videos. So please watch it and comment what do you think? Will it be a millionare project in the future? what should we do better?

Wednesday, April 15, 2015

Demos Application

To illustrate potential applications of TeamTouch, we developed two simple demos. The first is a whack-a-mole game designed to support user identification and collaborative inputs. The game requires three players: moles appear randomly on the screen in various colors, which users must “whack”. Brown moles can be whacked by any user, while red, green, and blue moles must be whacked by a specific user--inputs by other users are ignored. Moles overlaid with a “2+” or “3+” require a collective input by two or three users, respectively. Inputs with fewer users are ignored

TeamTouch-enabled Whack-a-Mole

Our second demo is a painting application that assigns a different color to each user. The contributions of each individual to the shared workspace is tracked by color. Collective contributions by two or more users result in the combination of the users’ individual colors (red and blue yield purple, green and blue yield yellow, etc.)

Tracking individual and collective contributions

Thursday, April 2, 2015

Pre-Easter Demo Session


Today, we have a group meeting to test the new electrode I bought it yesterday. The new electrodes are fit perectly to the device (as shown in Figure  and these can be reuse many times as these don't need the gel to stick to the human. The signal generated directly AD9850 DDS and the one pass through the electrodes to our body are nearly identical.

Figure 1: An Electrode in use.
In addition, we change the signal detection code to make it even more accurate and test it. The below videos shows the test of the device with the electrode.


The test result is amazing. Both user can control the tank directly or through touching each other hand. This is a very promising result.

By the end of today I think I will have 2 tasks to do

  1. To symplify the already existing code of the Tank application. At the moment, the Tank application is written by 1 python file which includes the code to detect the signal from Pico Oscilloscope. I believe It is best to seperate the detection code as a seperate module and other games or applications have just import it and use it. I will make it easier for the developers to maintain the signal detection and the applications. The jobs can be independent. The application, game developers dont need to know about the detection code, they have just rather use it. On the other hand, the device developers can make changes and update without interfere with the application development.
  2. To implement the painting application to demonstrate the functionality of the collabrative touch device. Initially, I think this will be easily implemented by using existing free painting source code. From that, I can just added neccesary functions to adapt to new input in this case requencies.
Thats quite alot of work for today (nearly 7hours work) before Easter. I can see that everyone in the group are excited with what we got so far and we are also work hard. Specially Paul, he is the key idea and role in this project.

Anyway, Happy Easter!!!

The problems

So it has been a few weeks since we decided the final hardware for the collabrative touch idea. This is to use the combination of Arduino and AD9850 DDS as the frequency generator and the Pico Oscilloscope as the signal detector. The project seems going well as we are able to generate and detect he desire frequencies we want. However, I think it is worth mention that are the problems we are facing and the propose solutions.

Problem 1 - USB Power (Dedicated to all Mac Haters): After many times couldn't get the signal from the AD9850 DDS, we figured out that the usb power or the current supply of the Macbook are not enough for the Aruino and AD9850 DDS function properly. It turn out that the Macbook power management is so "advanced" so that I can control the current out of the each of the USB port depends on the device plug in to that port.  This problem has caused alot of troubles for us in the last week. The current solution is to move to use the PC usb port with laptop hooked to the socket all the time.

Problem 2 - Contact to the skins: It is hard to connect the signal generator to human skin and even we can do that, the contact between the signal generator wire to the skin is not very good. It also painful to stick the shart "ugly" wire to our skin to test. We decided to bought the reusable electrodes (as shown in Figure 1) which we believe that is best adhesive for optimal conductivity and skin adherence. This has solved the problem completely. The pad is easy to use and can be reuse. The signal pass through our body is good and the Pico Oscolliscope can detect it accurately.


Figure 1: The Reusable Electrodes.

Problem 3 - Switching to battery: After successfully tested using the usb power supply, We wanted to switch to battery so that the device can be portable. We bought the 2.1mm DC Jack to use the battery as the power suppyl for the Arduino ( as shown in Figure 2). The problem is that the signal received from the battery power is not as good as the one fromt he USB power supply. The signal is just 50% clear compare to the one from the USB power signal. The reason is the current from the 9V battery is much less than the current directly from the USB and hence, the signal is not as good. We are currently working on this problem and will find a solution soon as this is the neccessary step to increase the detect arruracy and to cutting wire.

Figure 2: 2.1mm DC Jack Plug Arduino

Monday, March 30, 2015

Arduino with AD9850 - Redesign

Today, we have a meeting to test the target frequencies by using Pico Oscilloscope and the game programmed by Sven. The test was sucessful with high accuracy. Hence, we move to redesign the Arduino + AD9850 set to make it more compact so that it can be treated as a wearable device.

Thanks to the first set up by Andy in the group, I am able to rearrange the Ardunio and AD9850 so that it takes less space and looks a bit cooler. The below figure shows the new set up where the AD9850 board sits on top of the Ardunio.




By pushing the AD9850 chip into the Arduino right digital pin set, The AD9850 uses different pins in the Ardunio compare to the orgional propose by Andy. Here is the full new pins set up;

  • Wire from AD9850 VCC pin to 3.5V on Arduino
  • Male AD9850 W_CLK pin plug to directly to pin 10 on Arduino
  • Male AD9850 FV_VD pin plug to directly to pin 11 on Arduino
  • Male AD9850 DATA pin plug to directly to pin 12 on Arduino
  • Male AD9850 RESET breadboard row to digital pin 11 on Arduino
  • Male AD9850 GND pin plug to directly to pin GND on Arduino
  • Wire from AD9850 ZOUT2 so that we can use it for testing
As the new pins set have been changed the code for the Arduino has been changed to adapt to a new set up. Here the full new code based on the origional code by Andy:

 //AD9850 DDS test  
 #define DDS_CLOCK 125000000  
 #define CLOCK 10 //pin connections for DDS  
 #define LOAD 11  
 #define DATA 12  
 #define RESET 13  
 int flag=0;  
 int time = 2000;  
 bool on = false;  
 long lastTime;  
 long freq1 = 5000000;  
 long freq2 = 6000000;  
 long freq3 = 7000000;  
 long freq4 = 8000000;  
 long freq5 = 9000000;  
 long freq6 = 10000000;  
 long freqUp = freq3;  
 long freqDown = freq3;  
 void setup()  
 {  
  pinMode (DATA, OUTPUT);  
  pinMode (CLOCK, OUTPUT);  
  pinMode (LOAD, OUTPUT);  
  pinMode (RESET, OUTPUT);  
  AD9850_init();  
  AD9850_reset();  
  SetFrequency(freqUp);  
  Serial.begin(9600);  
  lastTime = millis();  
 }  
 /*void loop() {  
 SetFrequency(freqUp);  
 while(1);  
 } */  
 void loop()  
 {  
  // if(flag==1)  
  if (millis() - lastTime > time)  
  {  
   if (on)  
   {  
    SetFrequency(freqUp);  
   }  
   else {  
    SetFrequency(freqDown);  
   }  
   on = !on;  
   lastTime = millis();  
  }  
  // read the input on analog pin 0:  
  int sensorValue = analogRead(A0);  
  // print out the value you read:  
  Serial.println(sensorValue);  
  delay(1);  
 }  
 void SetFrequency(unsigned long frequency)  
 {  
  unsigned long tuning_word = (frequency * pow(2, 32)) / DDS_CLOCK;  
  digitalWrite (LOAD, LOW);  
  shiftOut(DATA, CLOCK, LSBFIRST, tuning_word);  
  shiftOut(DATA, CLOCK, LSBFIRST, tuning_word >> 8);  
  shiftOut(DATA, CLOCK, LSBFIRST, tuning_word >> 16);  
  shiftOut(DATA, CLOCK, LSBFIRST, tuning_word >> 24);  
  shiftOut(DATA, CLOCK, LSBFIRST, 0x0);  
  digitalWrite (LOAD, HIGH);  
 }  
 void AD9850_init()  
 {  
  digitalWrite(RESET, LOW);  
  digitalWrite(CLOCK, LOW);  
  digitalWrite(LOAD, LOW);  
  digitalWrite(DATA, LOW);  
 }  
 void AD9850_reset()  
 {  
  //reset sequence is:  
  // CLOCK & LOAD = LOW  
  // Pulse RESET high for a few uS (use 5 uS here)  
  // Pulse CLOCK high for a few uS (use 5 uS here)  
  // Set DATA to ZERO and pulse LOAD for a few uS (use 5 uS here)  
  // data sheet diagrams show only RESET and CLOCK being used to reset the device, but I see no output unless I also  
  // toggle the LOAD line here.  
  digitalWrite(CLOCK, LOW);  
  digitalWrite(LOAD, LOW);  
  digitalWrite(RESET, LOW);  
  delay(5);  
  digitalWrite(RESET, HIGH); //pulse RESET  
  delay(5);  
  digitalWrite(RESET, LOW);  
  delay(5);  
  digitalWrite(CLOCK, LOW);  
  delay(5);  
  digitalWrite(CLOCK, HIGH); //pulse CLOCK  
  delay(5);  
  digitalWrite(CLOCK, LOW);  
  delay(5);  
  digitalWrite(DATA, LOW);  //make sure DATA pin is LOW  
  digitalWrite(LOAD, LOW);  
  delay(5);  
  digitalWrite(LOAD, HIGH); //pulse LOAD  
  delay(5);  
  digitalWrite(LOAD, LOW);  
  // Chip is RESET now  
 }  

To sump up, It has been a great work to reduce the side of the device. The new set up may also promise a space for the 9V battery to sit on top of the Arduino and next to the AD9850.

Wednesday, March 25, 2015

Successful Application Scenario - Multiplayer Tank Game

Sven in the group has created a simple tank game that use the frequencies as the controllers for the game. We tested with our design device and the result is promising. Here is the video of the test.

The Tank Application Scenario

It is clearly that the game is function with a very high accuracy. This test seesion today has motivated us to dveelop the device better and think about more applications in the future if the time is allow.

Wednesday, March 18, 2015

Band-pass filter

Today lab session, we used the Oscilloscope to test the signal generators built built by Paul and Sven (as shown in Figure 1). However, one colpitts oscillator generated expected signal which is 7Mhz, the other one ,instead of producing 10Mhz, has a uneven output signal.


Figure 1: Signal generator Oscilloscope testing. 

After having a discussion and suggestion from the lab instructor, we decide to built the band-pass filter to detect our target frequency (ass shown in Figure 2). I spent hours to look at the combination of capacitors, resitors to peoduce the target 7Mhz and 10 Mhz band-pass filters. However, what I found was that the capacitor and resitors I needed for the circuit were'nt not avalable. Hence, we thought about buying it.

Figure 2: Band-pass filter diagram.


In the end of the lab, after considering the time limit and the current problem with the hand built signal generators, we decided that we will come back and use AD9850 DDS (see Figure 3) as the signal generators.

Figure 3: AD9850 DDS.

There are a few reasons make us choose AD9850 DDS instead of continuing building our own signal generator:
  • AD9850 DDS is the ready chip. It is ready to use and hence, it can save us time.
  • It is realative cheap around 8£ which is still under budget for this project
  • It produces clean sine wave signal which important for detecting signal later
  • It can be easily programme to change the frequency
However, there are some drawbacks that we need to deal with when using the AD9850 DDS;
  • We need the Arduino to programme/control the AD9850. It means that they must come as a set of Arduino+AD9850 DDS to work.
  • The combination of Arduino and AD9850 is relatively big.
Considering the advanatges of using the AD9850 outbreak some small drawacks using AD9850 brings, we have made the final decision that using the AD9850 as the signal generator.

Tuesday, February 17, 2015

Second Lab - More Group Discussion

Today we have another group discussion to narrow down the ideas and select potential ideas for the project. According to the lab instructor, we should focus more on designing a new device rather than implementing a new peice of software. Based on that, we have eliminate some ideas such Mario Kart and Kitchen Minitors as these are software development mainly.

The rest of the group session is more branstorming into new device and hardware development. By the end of the group discussion, We had a potential idea about an interpersonal gesture detector (see Figure 1).


Figure 1: The interpersonal gesture detector idea.

This idea is inspired by rhe Disney research Touche'. Here is the video demonstrate the Disney Touche' research



Monday, February 16, 2015

Brainstorm Session Look Back

Wearable Synchoniser
Last week, we had a first brainstorm session. Our group has 5 members and we came up with more than 20 ideas. These range from wearable devices to household applicants but there were 3 ideas was selected. These are Mario Kart augmented reality game, a wearable synchronizer, and dynamic QR enhanced clothing for social interactions. I am particularly interested in the wearable synchroniser. The idea behide that is to allow people know the other greeting reference and act conrespondingly. 

Pairing - Hell No
However, I see the security issue here. Consider all the existing communication technologies such as NFC, and Bluetooth. These are required the grant permission before pairing to transfer information. The wearable synchosier needs to send and receive signal all the time in order to cleverly identify other people greeting referecnce. So if the devices ask both users to grant permission to pair and then enter PIN, it becomes rather an unnecessary device. The users would possibly refer to ask directly the greeting reference from the other which take less than a minute and of course free.

Smart Watch Implementation
Ignoring the Bluetoth pairing and NFC problem, the idea can be implemented as an application onf smart watch platform rather than developing a new device which is costly and time consumming. Another benefit of using the existing platform is the project is not put at risk of the potential market as the smart watch market is already exist and taking quite a portion in the future. 

Clap to unfriend > < FriendBeams - using NFC to make friends
So we also came up with the idea "Clap to unfriend", the idea is to synchonise the real world activities with social network. This is quite cool when everyone now on Twitter or Facebook. This idea reminds me a small application that allow users to use NFC on their phone to make friend.


I think it is a great app. Rather logging on FaceBook, searching for the user, pressing friend request button, now users just need put their 2 phones near and then done. The process take less than a few second. This is quick, easy and no hassle.

Other Ideas
Andy, one of our group memeber, has a very clear description of all notable ideas HERE.


Sunday, February 15, 2015

Smart Mirror - It is Great


It is really interesting to see other group’s ideas. Some are totally news and some are new ways of combining things. Overall, I think each group has done very well in presenting their ideal projects to the audience. However, there is one I am particularly really interested in - a smart mirror. I couldn’t remember what they exactly call it but I think smart mirror can be used here appropriately.

The smart mirror proposed a new multifunction mirror. According to the presenter, it can be use as a normal mirror with added features such as weather backgrounds. The weather background allow users to foreseen what they look like in a particular weather condition such as snow, rain and sunny. The idea is not something breakthrough or amazing new but it is very practical and useful.

I think there are other features can be added to the smart mirror to make it even more useful. It can allow user to see their look with a certain weight and hence motivate person to loose weights or gaining muscle. Moreover, users can choose different background such as in the beach, forest, or at the party, it will help users visualize more what they actually look like when wearing particular clothes.

Intel MemoryMirror is one type of smart mirror but it is rather than a camera and the screen. The functionality of the MemoryMirror is nothing rather than a camcorder with playback feature. Another example is Panasonic Smart Mirror. The mirror allows user to foreseen their make up or their beard J. It is more like a fun app to play with rather than a device that actually help user do something. I think part of the reason is the market for such a device is new and none of the producers make a proper investment on it. Hence, it is still a paper work.


Panasonic's Smart Mirror Demonstration

Even though, the group didn’t mention anything about implementation or how could the smart mirror can be produced, it is clear that a massive screen and cameras will obviously be used. Of course, a pc or tablet is used to control the smart mirror.

I think using exist devices such as tablets running iOS or Android is the best choice for the project. The group will be mainly developing an application that take the input from the cameras, process it and output to the big screen act like a mirror. This will mainly to deal with image processing technique and machine learning. In order to produce a perfect mirror, developers can consider place a background color to use he mirror, which is very practical.

Overall, I think this is a great idea. It can turn to a product for that every fashion shops need to have, or any homes that user can afford a modern and multi purpose mirror. The only drawback of this project is that it may take a lot of work and up to years to finish

UIST 2014: Skin Buttons - Yes It Is Practical


There are many interesting researches, new devices and new projects at the SCM UIST 2014. Some projects are super creative when the others are very practical in improving existing technologies. After going through all the videos in the SCM UIST 2014, I find that even though these innovations and works are excellent and worth credited for, there are not many can be actually apply in solving the real work problems now or in a very near future.  Skin buttons is however can be seen as one of the bright project for future deployment and can promise a great success.

The five researchers at the Carnegie Mellon University have come up with the idea of laser projections to solve the problem of small screen such as smart watch. They developed a prototype that can project laser icons on skin that allow users to touch it as touch buttons. The prototype can be easily integrated to smart watches or other devices. The video provided by them about the prototype is very impressive.


As seen on the video, these laser icons act like buttons and users can use it to fully interact with the connected device. These laser buttons are clickable and clearly visible on the user skin.

There are 2 main components are used in the prototype: the button projectors and the touch sensing. The button projector is implemented by combining a tiny laser projector with a fix button image film. The touch sensing is achieved by using a photo transistor/emitter. The transistor/emitter measures the intensity of reflected infrared from the surface. The commination of these two creates the touch touchable laser buttons.

The initial testing carried out by them shows a high accuracy with 96.9% correct click. In addition, the power measure of the sensors is as slow as slow as 1mW and the laser projector is 19.9mW. The paper also indicates that adjusting the brightness and the sleeping mode of the device can reduce the use power. The cost of production of the prototype has been estimated at around 5$ which is relative cheap and can be potentially reduced rapidly if go on mass production.

Although the paper and the video shows the functional prototype, the project is still in an early stage of development with some limitations such as fix icon projectors only and uncontrolled brightness of the icons. Still, the project has show that it can be used to improve the interaction with small touch screens. In addition, it can be used as the main interaction in some specially environments where touch screen is impossible such as under water. I may also be used to aid user with disability.

Personally, I find the prototype is really “cool”. The “cool” thing is that it projects nice looking and eyes catching image right on the skins. Another “cool” thing is it can be used as part of the smart watch, which is a trend now. All the big names namely Samsung, Apple, Sonny, and LG have already joined the wearable gadget games. Hence, the future deployment of the skin buttons is a promise.


Here is the link to the original paper at SCM UIST 2014

About this blog

This blog is set up mainly for the Interactive Devices unit at the University of Bristol. This is used to post my reviews, ideas and works during the course. However, this is also a place where I experss my free opinion about anything realated to technologies including new devices, researches and similar stuff.

As a business student at the University of London and computing student at the University of Bristol, My thinkings are mixtures of science and economy. Hence, this blog is written with the same style.