Basic introductions are shown beside the exhibits in a museum. If the visitors want further information, the QR code is applied. Accessing the internet is required when using QR codes, which leads to network congestion in future world. VLC communication is proposed by some researchers by using various designs. We present using mouse sensor to be the receiver side. The design provides a high speed sample rate (as well as bit rate) and a low cost on the receiver.
The figure left shows the scenario of the mouse VLC.
For the experiment of transferring a text file, Laptop A uses arduino to write pattern-moving code into peggy2. After compiling and uploading, the pattern begins to move quickly on the peggy2. Simultaneously, Laptop B controls the camera receiver by using nano-RK OS, this machine can sense the lightness of the peggy2. When data continuously sent to Laptop B, we can know the behavior of the pattern on peggy2.
What sensor can see
Our receiver, which is equipped with a mouse photosensitive element can distinguish every LED light.
All four patterns above can be used as the pattern on peggy2, but their performances are different. According to our experiment, the star-shaped pattern is easiest to be sensed by the receiver.
How data can transfer through VLC
Move Up 6 pixels
Move Right 6 pixels
A problem about synchronizing the pattern movement rate on the transmitter and the sampling rate at the receiver still need to be fixed. For some unknown reason, when the transmitter is shifting the pattern at a rate of XXXXX, the receiver cannot sample the image in a rate that is faster than the transmitter, even if it is said that the sensor can do 6500 samplings in one second. Also, it is hard to keep the sampling rate of the receiver stable. We are not sure how this happen, but the problem is possibly come from the origin design of the mouse sensor. Therefore, we tried to let the transmitter shift the pattern multiple times (6 times in our design) to ensure the receiver catches all the shiftings. Consecutive shifting lefts or shifting rights for over value 3 is consider as valid movement, otherwise invalid.
Move Up 6 pixels
Move Left 6 pixels
After we selected the star-shaped pattern, we found that only one pattern is not enough, that is , using four star-shaped patterns is more easily to be sensed by the receiver, so that the correctness can be higher.The figure above shows how peggy2 transfers bit 0 and bit 1.
When the pattern moves right 6 pixels continuously, that means bit 1.
When the pattern moves left 6 pixels continuously, that means bit 0.
When the pattern moves Up 6 pixels continuously, that’s signal to separate between two bits.
Times-calculate or value-accumulate?
We have tried two methods to handle the data.
First, we tried Times-calculate method. After the pattern moves 5-6 pixels, if the receiver read 2 same-way data continuously then this data will be added. This method can at most lead to 95% correctness.
Second , we applied value-accumulated method. After the pattern moves 5-6 pixels, if the receiver read the same-way data continuously and the value is bigger or equal to 3 then this data will be added. This method can at most lead to 99% correctness, so we finally take this one.
Conclusion and Future work
Currently we can transmit the data at a rate of 10 bytes/s. Our goal is to enhance the rate to at least 100 bytes/s. To do so, we have to give up the 6-shift design. The future work is allowing a few errors on transmission, but increase the data rate. Erasure code will be applied to eliminate the errors.