So, the STAR TREK DOOR has been a slow, “back-burner” project for a while. Recently, I got a little time, so I sat down and figured out how to hook up the air valves to a set of relays, and control those relays with an Arduino.
Here’s a video overview of the physical doors themselves and how we plan to open and close them with air valves.
This is a joint project, working on this with my brother-in-law, Fred. The doors are between his garage and workshop. Fred has been working on the doors themselves, the wall and framing, and mechanical connections. I’ve been working on figuring out the software, controls, and electronic magic that will drive everything.
The physical doors themselves are done, except for paint. Fred has also been making a pretty neat frame for the garage side. He cut alternating widths of wood and then glued them together for the nice light-colored wood on the inset of the planks that will frame out either side of the door. A similar piece will cross the top of the door.
I got all the main components – Arduino, breadboard, relay board, 12V power fuse panel, and air valves themselves all screwed to a piece of plywood. At this point, it’s not pretty, but it is functional.
We have a nice industrial door control with OPEN/CLOSE/STOP buttons on it. Those are momentary on buttons, but through the power of the Arduino, I can make them be whatever I want. I started with a Button Tutorial, and then modified it to suit my purposes, and added a Delay(1500) command after activating the air valve. That way, the valve will stay open long enough to fully open or close the door, even if the button is just pressed for a moment.
I programmed the pin for the STOP button to test out a sequence to open the door, pause (long enough for a person to walk though,) and then close the door. It seemed to work pretty well. If the timing is wrong for the real-world application, all I have to do is simply change the delay times. (It will also need a safety. We don’t want the door closing on a person!)
At this point, the basics of the control panel are working. The STOP button is just wired up as a “stand-in” for a single button we already have installed on the garage side of the door. It’s a capacitive touch button that lights up either blue or white with internal LEDs. It’s a neat looking button, but it’s only a SINGLE button. So, it needs to have functionality to both open AND close the door. I’d also like to explore using a variable in the Arduino that states whether or not the door is open, and then changes the functionality of that button based on whether the door is open or not. The air cylinders themselves also have built-in position sensors, which would be neat to use possibly as both a safety AND a “Is the door open or not?” sensor.
Here’s a video clip showing all the components actually working together. At this point, if the panel was simply mounted above the door, and air connected between the compressor and air cylinders, we would actually have functioning doors.
I don’t like the look of how the air valves and tees are held together right now. I was able to find some not-too-expensive push connectors (similar to PEX Sharkbite style) for air, which might make it a little easier to connect all the air components and look cleaner. Once I really have everything finalized on what’s going on at the breadboard, I also need to decide if I want to pull the breadboard out and replace it with a custom circuit board. One thing I DO need is a simple way to connect the tiny pin connectors to the larger wires going to the buttons AND provide strain relief. For the moment, I just used staples to nail the 18 ga lamp cord wire to the plywood and then made the electric connection with alligator clips. What would be the BEST/CLEANEST way to do this? Some sort of small screw down terminals?
I also have a rather large fuse panel mounted on the plywood. It was free, and I already had it. It supports many separate circuits, but for this project, a single DC fuse would probably be fine. I’m also using a bit of an overkill 12V power supply. I’ll want to replace that with a simple wall-wart. Lastly, the Arduino is running from USB power. I’ll need to solder up a 12V DC barrel connector so that it can run off the same power as everything else. I think we will make a switched electric outlet, and plug the wall-wart in to that. If the system is ever not working right, just switch off the power and manually open and close the door as needed.
I’ll definitely want to hang out with the guys at the Makerspace sometime soon talking Arduino, specifically how to integrate some more sensors and get feedback used to activate the doors fully automatically.
-Ben Nelson