TSOP4856 receivers
and TSAL6100 emitters were not meant to be used as proximity switch components.
They were designed for data transmission. Making them work like a
proximity switch required a little more tweaking than they were meant for. One
problem was that the receiver was picking up the emitter even when it should
have been out of range. Being able to see the emitter despite obstacles would
be a huge benefit when transmitting data but when the point is to drop the
signal when there is nothing NEARBY to reflect on then a problem arises.
Analogously it would be like hiding a search light under a bedsheet and detecting
it with a telescope aimed right at the bedsheet.
The solution was to turn down the high-performance emitter by adding resistance in series. A 270Ω resistor was used to reduce the voltage from the Arduino’s output so a 910Ω resistor was added. Performance and reliability were greatly improved.
Coding and testing continued. Values such as the delay between activating the light and reading from the sensor were modified. This value was thought to be zero but a value of five microseconds produced more reliable results. The number of samples taken to determine a good read started at ten but was increased to 300 which slowed the refresh rate down and eliminated interference from IR remote controls. The number of good reads - bad reads was capped at 7/10 or 210/300 in this case. Every good read got closer to 210 but a bad read would subtract from that running count.
A video was narrated to describe the operation of the device and explain the zone where the sensor doesn't act reliably. Experiments were done to make the device act like a distance sensor but nothing could be done reliably. Without any modifications the assembly senses a hand so reflective material wasn't necessary. Holding a mirror to reflect the infrared beam back at the receiver greatly extended the range of the device. Reflective tape was purchased for this project but shouldn't be necessary. Code should be modularized so a single function can be added to the existing servo code and called as necessary. Existing code was posted below.
The shape of the emitter and receiver tubes may also have played a part in the reliability. There could have been light leaking out the backs of the tubes and interfering with results. A new model will be made which can also hold an LED for visual feedback of the device.
Downloadable Files:
The rest of the posts for this project have been arranged by date.
First time here?
Completed projects from year 1.
Completed projects from year 2.
The solution was to turn down the high-performance emitter by adding resistance in series. A 270Ω resistor was used to reduce the voltage from the Arduino’s output so a 910Ω resistor was added. Performance and reliability were greatly improved.
Resistors in series
Coding and testing continued. Values such as the delay between activating the light and reading from the sensor were modified. This value was thought to be zero but a value of five microseconds produced more reliable results. The number of samples taken to determine a good read started at ten but was increased to 300 which slowed the refresh rate down and eliminated interference from IR remote controls. The number of good reads - bad reads was capped at 7/10 or 210/300 in this case. Every good read got closer to 210 but a bad read would subtract from that running count.
Animation showing light being triggered
A video was narrated to describe the operation of the device and explain the zone where the sensor doesn't act reliably. Experiments were done to make the device act like a distance sensor but nothing could be done reliably. Without any modifications the assembly senses a hand so reflective material wasn't necessary. Holding a mirror to reflect the infrared beam back at the receiver greatly extended the range of the device. Reflective tape was purchased for this project but shouldn't be necessary. Code should be modularized so a single function can be added to the existing servo code and called as necessary. Existing code was posted below.
Narrated video
The shape of the emitter and receiver tubes may also have played a part in the reliability. There could have been light leaking out the backs of the tubes and interfering with results. A new model will be made which can also hold an LED for visual feedback of the device.
Downloadable Files:
- Common OpenSCAD files
- Servo footprints for OpenSCAD.
- Arduino Code for wired keyboard
- Spreadsheet for chords.
- Wrist mount
- Terminal board
- Input voltage
- USB
- Make base for keyboard
- Spacers
- Magnet mounts
- Integrate:
- Enclosure for each controller
- Potentiometer access
- Activation switch
- Debug
- Test
- Refine
- Repeat
- Write instructions
- Compress and link to all files
- OpenSCAD files
- STL models
- Arduino code
- Make diagram with every part labeled
- Schematic for servo controller
The rest of the posts for this project have been arranged by date.
First time here?
Completed projects from year 1.
Completed projects from year 2.
Disclaimer for http://24hourengineer.blogspot.com/
This disclaimer must be intact and whole. This disclaimer must be included if a project is distributed.
All
information in this blog, or linked by this blog, are not to be taken
as advice or solicitation. Anyone attempting to replicate, in whole or
in part, is responsible for the outcome and procedure. Any loss of
functionality, money, property or similar, is the responsibility of
those involved in the replication.
All digital communication regarding the email address 24hourengineer@gmail.com becomes
the intellectual property of Brian McEvoy. Any information contained
within these messages may be distributed or retained at the discretion
of Brian McEvoy. Any email sent to this address, or any email account
owned by Brian McEvoy, cannot be used to claim property or assets.
Comments
to the blog may be utilized or erased at the discretion of the owner.
No one posting may claim claim property or assets based on their post.
This blog, including pictures and text, is copyright to Brian McEvoy.
2015-10-08 (Th)
Comments
Post a Comment