Let's Make Robots!

Computer controlled door

I am familiar with computer programming in many languages, but this is the first time that I actually need to control something that is motorized and not handed to me with an API. I have a VB application that is essentailly a test that can be taken by a test subject. When the test subject picks one option, door number one needs to open. When they pick the other option, door number 2 opens. The doors can be as simple as a small piece of sheet metal that slides in a track, but they need to be controlled by the application. The doors would then automatically close after 10 seconds, but I need a sensor that would prevent closing if something was in the way. You could think of them as small garage doors, where if the sensor is tripped at the base of the opening, the door will not close.

Where do I start with this? I realize that it is probably very simple to construct, but most of what I have seen is well beyond what I need for this project. Can you help me pare down to just the essentials?

Thank you in advance!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

how much you want to spend. The choices I would suggest are no different than the options you already have, save for, maybe, a PICAXE chip. An arduino Nano might be less expensive than the servo driver chip, which is just a uC with special programming anyway. I would imagine the time the door stays open might still be best controlled in your VB software. I only suggested a Nano, because, it is small and has the FTDI chip installed on its board. Otherwise, I would have suggested a Micro or Micro Pro.

You ask: Where do I start with this?

I answer: Starting with a pen and paper is always fine.

High level logic system diagram. Then break it down. 

Create a Something Else so that we can hit you with comments while you build this computer controlled door.


Like Maxhirez says an Arduino would be the most flexible solution to handle this. You just have to use the serial communications to talk back and forth with your code on the Arduino.

But with that said a servo controller like the Pololu series (http://www.pololu.com/catalog/category/12) could possibly be used. The Mini Maestro series not only can control servos but also can be used as general I/O for either digital or analog inputs (or outputs too). I used one on my LTBotV2 telepresence solution (http://letsmakerobots.com/node/34323) and it works quite well. I'm using JustBasic and not VB but will likely port it over to VB Express someday to get a little better graphics and speech recon and output features. That would keep your code all in VB, just still have to use the serial port (USB Com port) to control and read things.

I didn't see how many doors you're talking about but you would need a servo port for each and some mechanical pieces to pull/push the door up and down and then enough ports to read an LDS or IR sensor to sense anything in the way across the door. I would bet some LDRs, a little shrink wrap around them and some LED's or small bulbs for light across the opening would work. So for six doors you would need at least a 12 port servo controller.

I also use an older version of their servo board on my Home Automation system to pan/tilt small cameras and web cams around the house. I don't get angle corrected views but it it quite cheap and easy to be driven off an ASP webpage or a VBScript file.

Just an idea...


Arduino is the obvious choice for a beginner.  It's ubiquitous, relatively inexpensive and documented all to hell.  Using it with Visual Basic will be the biggest hurdle, but that probably won't even be a problem.  There are less involved solutions but without the grounding in microcontrollers you'll just be working backwards from that point.  Just decide if you want your actuators to be DC motors, solenoids or servos and go from there.