Believe it or not... It is possible to build a resistive opto-isolator!
Parts to continue the Desktop Defender mod are on their way. We will use a IC contianing 4 opto-isolators... And we need 5 "digital switches"...
Why do not use a really low cost device to trigger the missile launch?
Necessary parts? A LED and a photoresistor.
The photoresistor I found in my box reaches 520Ω when the LED is glowing and acts as open circuit when the LED is off.
To be sure to not close the circuit with some environmental light, we have to isolate the led and the resistor using some isolating tape or some plasticine. The best is to put some aluminium foil, so that light will reflect and will redirect rays to the resistor.
Remember to put a marker to remember which is the side of the LED!
First of all, you will need to open the control pad. You'll find a 7 pin connector. My idea is to do not break the control pad. I want to add an extra input method to it. So... Let's solder them.
The control pad:
Closes the circuit between -3V and DO (Down), L (Left)
Closes the circuit between +3V and UP (Up), R (Right), PLA (Play)
We will need to replicate this on Arduino side.
The issue is... We cannot control a DC Motor directly via Arduino. In this particular case the +3V would be compatible with Arduino (Nano or Pro, for example). The current is the issue. The motors are protected by 2 limit switches for each direction, so they will not stall (the motors reach peak current draw when stalling), but as my "dumb" tester says... There are still 90mA when closing the circuit. Which is more than the maximum allowed for I/O Pins (e.g.: 40 mA).
There are different options for driving DC Motors safely:
I just discovered them... Amazing! In few words... It allows to drive the current on another circuit using a LED and... A phototransistor on the other side. We can call them also photocouplers.
Each product has its own maximum voltage and current.
My choices are optoisolators, relays (I found a L293DNE on my magic box, hurray... But I am unable to use it, except if I completely remove original control pad). Since I will wait for parts to be shipped, see you in few days/weeks! Ok people... SainSmart come in my help!
I just tested using a single Relay and my Bluetooth Silver Mate.
It works! Here you are the code... I'll deploy everything on github (both Arduino and Android code).
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters