Now that the risky part of project is successful (ie: a cheap IR emitter & receiver with an Arduino microcontroller is enough to measure the rough distance to objects hundreds of times per second), I got a tiny vibration motor (www.dx.com/p/1027-flat-vibrating-vibration-motor-silver-5-pcs-154245) and connected to the Arduino GPIO, using the same sort of MOSFET switching circuit as I used for powering the IR LED, but I added a Schottky diode across the motor and a small capacitor, to reduce the back-EMF current & noise, since these are highly recommended when powering any motor through a MOSFET circuit. When I used a 7.2 Ohm current-limiting resistor just like for the IR LED, it only used around 20mA (compared to 40mA that the IR LED draws when using that same circuitry), but the vibrations were quite strong. So I increased the resistor to 18 Ohm so the vibrations won't be as annoying to the user.
I've uploaded the circuit diagram (created using the free open-source KiCad package) to GitHub at "https://github.com/shervinemami/DepthIR/tree/master/DepthIR_Breadboard".
The ports "IR_OUT", "IR_IN" and "VIBR_OUT" attach to 3 pins on any Arduino or microcontroller:
- IR_OUT can be connected to GPIO Pin D2 that turns the IR emitter LED on when it's high.
- IR_IN can be connected to Analog Pin A0, so Arduino can measure the IR receiver voltage.
- VIBR_OUT can be connected to GPIO Pin D3 that turns on the vibration motor when it's high.
The MOSFETs can be replaced by pretty much any MOSFET that's rated for atleast 0.1A Source-Drain current at 3.3V or 5V (depending on your model of Arduino). Most through-hole MOSFETs have significantly higher current ratings, but not all MOSFETs will switch on at voltages as low as 3.3V or 5V, so make sure your MOSFETs don't need more than 5V to switch on. Also be careful that all MOSFETs are very static sensitive, so you need to be careful when touching their pins, probably even more-so than when touching IC chips! The vibration motor can be replaced by any vibration motor that's rated upto 3.3V or 5V, depending on your model of Arduino. (If you use a 5V Arduino, then you could use a MOSFET that switches at low voltage such as 3V and/or a low-voltage vibration motor such as a 1V motor, it's only if you use a 3.3V Arduino that you need to be extra careful your MOSFET and/or vibration motor doesn't need more than about 3V to turn on). The Schottky diode can be replaced by pretty much any diode, but using a Schottky diode means it will give slightly more protection (to the MOSFET from the motor) than other types of diodes.
Now that a prototype using a breadboard is working, I'm ready to start designing a PCB using tiny SMD components, so it can fit nicely ontop of the hand. Any Arduino-compatible microcontroller is fine for this project, but to keep costs & size down, I'll be using an ATMEL ATTiny85, powered directly from a single-cell LiPo rechargeable battery (ranges between 3.3V when "flat" to 4.2V when "fully charged"). The ATTiny85 microcontroller has just 8 pins on it and is extremely small compared to a normal Arduino, and the community has provided methods of running Arduino code on an ATTiny85 (with a few restrictions), so it will result in a very small wearable device compared to even the Arduino Nano!
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.