jpiat / arduino

112 stars 70 forks source link

Extract value of 1 and 0 at receiver #21

Open bl1229 opened 7 years ago

bl1229 commented 7 years ago

Hi, I used your code to get communications between an LED and a photodiode. I am now trying to implement a positioning algorithm and I need to be able to find the sensor reading that corresponds to receiving a 1 and a 0 for distance estimation purposes. Do you know if it will be possible to do this with this code? Thank you

jpiat commented 7 years ago

I am not sure to understand ... Would you have many transmitters and the refeiver would triangulate its position based on the transmitter it sees ? Jonathan Piat

Le 16 févr. 2017 9:19 PM, "bl1229" notifications@github.com a écrit :

Hi, I used your code to get communications between an LED and a photodiode. I am now trying to implement a positioning algorithm and I need to be able to find the sensor reading that corresponds to receiving a 1 and a 0 for distance estimation purposes. Do you know if it will be possible to do this with this code? Thank you

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jpiat/arduino/issues/21, or mute the thread https://github.com/notifications/unsubscribe-auth/ACNWZMGS-qmGom1beaXfuR96OS1aelX0ks5rdK9AgaJpZM4MDfse .

bl1229 commented 7 years ago

Yes I have 4 transmitters to one receiver. But it sees multiple transmitters at the same time and only one transmitter sends data at any one time (when not sending data the rest transmit at a constant high value - no Manchester). Based on the difference in light intensity between receiving a 1 and a 0 the Rx will find its distance from each of the Tx. These distances then used for triangulation

jpiat commented 7 years ago

You cannot use the light level for triangulation since it will depend on many factors (orientation or ambient light level) that have nothing to do with localization. I have no idea on how you can triangulate the receiver position using VLC. You can try GPS like localization but it would require your transmitter to be accurately synchronized, and this won't work at room scale. What you can do is use multiple receiver and try to triangulate only based on the emitters you see. Jonathan Piat

Le 16 févr. 2017 10:47 PM, "bl1229" notifications@github.com a écrit :

Yes I have 4 transmitters to one receiver. But it sees multiple transmitters at the same time and only one transmitter sends data at any one time (when not sending data the rest transmit at a constant high value

  • no Manchester). Based on the difference in light intensity between receiving a 1 and a 0 the Rx will find its distance from each of the Tx. These distances then used for triangulation

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jpiat/arduino/issues/21#issuecomment-280471969, or mute the thread https://github.com/notifications/unsubscribe-auth/ACNWZETt1CoGp0Aemu5bwpoqam_wSjApks5rdMQCgaJpZM4MDfse .

bl1229 commented 7 years ago

The receiver is always on a plane parallel to the transmitters so orientation angle is not a problem. The distance from the Tx to Rx is related to the difference in light level from a 1 and a 0 so the ambient light will not be a problem because it is constant, I am conducting experiments in the dark anyway so the only ambient light in the system is from other transmitters. In your code do you calculate the light level associated with a 1 and 0 or is just based on the assumption that if the light level is higher than the last bit by the threshold it must be a 1 and lower than the last bit it must be 0? Thank you