Jump to content


Photo
- - - - -

Infrared distance sensor


  • Please log in to reply
5 replies to this topic

#1 geth

geth

    MIDIbox Newbie

  • Members
  • Pip
  • 5 posts
  • LocationGermany

Posted 08 May 2012 - 21:42

By using the lpc17Core's analog inputs, it is possible to connect a sharp infrared sensor, so that the distance between the sensor and maybe a hand is converted to midivalues.

The sensor:
Sharp 2D120x f 9z
around 10 euro (Watterott)
size: appr. 5x1x1cm
operating voltage: 5V
output: analog voltage
range: 4-30cm

Minimal setup:
Lpc17Core with midio128v3.006
SDcard (to enable the Ain)

I bought and additional cable which fitted in the sensors plug. As the sensor requires 5V to operate, its ground and source are connected to
J2, with and 100nF capacitor to reduce jittering. The analog output is connected to an analog input of the core (Note: there is a version of
the sharp which has a digital output).
Attached File  P1020058_low.jpg   617.57K   39 downloads

Result:
I used the distance to control a value in Traktor (by a hand), it worked well, except the highest 5% of the values are unreachable, but this is not so problematic on the first run. I could achive higher values by using something more reflective as my hand, a paper. The jittering is lower than I expected, the value jumps approximatly every 5 seconds. The area in which the sensor will work is about 10cm diameter at a distance of 30cm to the sensor.


I hope this is usefull to someone, I had a lot of fun playing around with it and will use multiple sensors in my (traktor-)midicontroller.

Greetings Geth

Edited by geth, 08 May 2012 - 21:45.


#2 Imp

Imp

    MIDIbox Tweaker

  • Members
  • PipPipPip
  • 316 posts

Posted 09 May 2012 - 08:41

That looks like fun!
Such a sensor might slip into the cart, on my next order.

I always wanted a midi-out on my Alesis AirFX, but this might be a good alternative.

I recommend a CD as reflective object, it's great for fast LFOs, if grabbed on one edge and wobbled around.

#3 Nasrudin

Nasrudin

    MIDIbox Newbie

  • Members
  • Pip
  • 63 posts
  • LocationGermany

Posted 09 May 2012 - 09:40

some information concerning your issue with the "unreachable upper 5%":

Ausgangsspannung: ca. 0.4V @ 30cm, ca. 2.7V @ 4cm


This information was extracted from the product description on watterot.com.
i am not familar with modifying core32 applications, but it should be possible to output the full range of midi values by doing a small mathematical error computation.
here is my idea:

the core32 ADC has a maximum range from 0 to 3.3 Volts, if i remember right.
therefore, the ADC has a gain of 3.3, offset is 0.
the output range of the IR sensor is 0.4 to 2.7 Volts.
IR gain is 2.3, offset is 0.4

In order to convert the captured real data into the expected range we have to write a small function which does the following calculation:

adcProcessed = (adcConverted -0.4) * (3.3/2.3)


i am not sure if a similar option is allready included into the code, i just wanted to share the general concept of dealing with this kind of problem (without the need of aditional electronic parts).
contra of this solution: reduces resolution.

Cheers, Nasrudin

Edited by Nasrudin, 09 May 2012 - 09:46.


#4 geth

geth

    MIDIbox Newbie

  • Members
  • Pip
  • 5 posts
  • LocationGermany

Posted 10 May 2012 - 21:48

hi, just a short update:

Concerning the jittering: When I played around today I found out that the jittering is greater (probably like an unused open pot) without the 100nF capacitor on the connection of the yellow and the grey wire, I guess I was to tiered for proper testing...
With this cap solderd back the jittering is gone again, but when I wait long enough it comes again, I suppose this is because the otherside is not connected to ground, I will test that when I have more time.

Thanks for the replies, I totally forgot to check the outputvoltages :frantics: . I will definitly go for the software-correction of the 5%-problem in the custom code of my controller, so thanks for your clear instructions.
By the way, it seems intelligent to me to add a switch to each infrared sensor, to prevent unwanted triggering.

Greetings Geth

#5 Imp

Imp

    MIDIbox Tweaker

  • Members
  • PipPipPip
  • 316 posts

Posted 11 May 2012 - 16:21

By the way, it seems intelligent to me to add a switch to each infrared sensor, to prevent unwanted triggering.


Hehe, yes. That's why i added a bypass switch to my AirFX. I don't know why Alesis didn't include it in the first place, it's so easy to trigger by accident.

#6 geth

geth

    MIDIbox Newbie

  • Members
  • Pip
  • 5 posts
  • LocationGermany

Posted 17 May 2012 - 13:55

Hi, I found some time to check the sensor again.

So my current wireing is like this:
5+ Volt and ground from the sensor to J2 with a 100nF cap between them. And the sensor output to an Ain frome the core, with another 100nF cap between this and ground. Now the input is jittering, but this comes from the sensor, if I put my finger over the photodiode of the sensor, the jittering stops and the output drops to zero. The infrared LED seems to be very strong, because if I put my finger (directly) over the photodiode and the LED, the output has still one fourth of its maximum value.
So I will definetly use an additional switch to toggle this sensor on and of (otherwise mapping in traktor would be a pain), and recommend this to everyone else using this sensor.
Greetings Geth




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users