Built a larger scale prototype of the multiplexing concept. For control, I tried something new, using the USB Bit Whacker:
Instead of using a microcontroller, you can bit twiddle this in Java (or in Groovy, in my case) using simple serial port commands. I used JSSC for the serial port communication because javax.comm is way too complicated, and as far as I can tell is not part of the JDK or hosted on Maven Central. (If it's not on Maven Central, I don't need it.) The main reason for trying the Bit Whacker was that, when using the Arduino, the compile-upload-run cycle is long, and getting feedback (button presses, whatever) into the system is non-trivial. The Bit Whacker lets me iterate on variables and protocols much more quickly. Also, I can do things like start it up, open a valve, put it in an idle state waiting for keyboard input while I light the flame, and then hit a button to continue the program. I can do this really easily, whereas with the Arduino it requires actually attaching a button and reading input from it.
I placed 6" lengths of 1/16 inch holes at six inch spacings, with 3 strands with 3" overlaps. I re-used the valve array plumbing from the electromechanical prototype. Here are some test videos at two different flow rates:
The lighting makes it hard to see what's going on, but there are two main problems: First, because there are holes all along the length, the gas pressure at the distal end is much lower than at the proximal end. This is especially apparent in the first video. This is easily fixable by creating a loop of the tube and plugging both ends into a t-junction, but it's more plumbing, and a pain in the ass.
Second, in the second video, you can see that the first segment ignites, then the second segment, in sequence, and the first goes out (mostly.) Then the second ignites the third. At this point, the first segment comes on again, and should ignite the next length of the first segment. The problem is that the original position flares back up, and we get two flame fronts. Why? Because the flame never actually goes out; when I shut down the gas flow to the first segment, there's still residual propane in the pipe, and it doesn't burn off or go out immediately. It just goes to a very low flame. This can persist for minutes at a time. If I want to continue with this prototype, I'll need to figure out a way to deal with this. It's not a failure, but there are bugs to be worked out. Every bug fix introduces new complexity, and the goal is to make the design as simple as possible, but no simpler.
Also notable about this run was that it was the first time I had to use my fire extinguisher. The solenoid valves are poor quality (I guess that's what you get from $9 a valve on Alibaba) and there was some leakage from one of the unused valves that's supposed to remain closed when unenergized. I was trying to work around it so I could do a quick and dirty test, but it caught fire, and wouldn't go out because of the volume of gas leaking. I decided to extinguish it for safety, since it was close to a few things that I didn't want to catch on fire. Safety third! (A friend of mine told me once that they saw a t-shirt that said:
1) Porn
2) Bacon
3) Safety
But I can't find it on the intarwebz. Would be fun to have. Suppose I could make one.)
Instead of using a microcontroller, you can bit twiddle this in Java (or in Groovy, in my case) using simple serial port commands. I used JSSC for the serial port communication because javax.comm is way too complicated, and as far as I can tell is not part of the JDK or hosted on Maven Central. (If it's not on Maven Central, I don't need it.) The main reason for trying the Bit Whacker was that, when using the Arduino, the compile-upload-run cycle is long, and getting feedback (button presses, whatever) into the system is non-trivial. The Bit Whacker lets me iterate on variables and protocols much more quickly. Also, I can do things like start it up, open a valve, put it in an idle state waiting for keyboard input while I light the flame, and then hit a button to continue the program. I can do this really easily, whereas with the Arduino it requires actually attaching a button and reading input from it.
I placed 6" lengths of 1/16 inch holes at six inch spacings, with 3 strands with 3" overlaps. I re-used the valve array plumbing from the electromechanical prototype. Here are some test videos at two different flow rates:
Second, in the second video, you can see that the first segment ignites, then the second segment, in sequence, and the first goes out (mostly.) Then the second ignites the third. At this point, the first segment comes on again, and should ignite the next length of the first segment. The problem is that the original position flares back up, and we get two flame fronts. Why? Because the flame never actually goes out; when I shut down the gas flow to the first segment, there's still residual propane in the pipe, and it doesn't burn off or go out immediately. It just goes to a very low flame. This can persist for minutes at a time. If I want to continue with this prototype, I'll need to figure out a way to deal with this. It's not a failure, but there are bugs to be worked out. Every bug fix introduces new complexity, and the goal is to make the design as simple as possible, but no simpler.
Also notable about this run was that it was the first time I had to use my fire extinguisher. The solenoid valves are poor quality (I guess that's what you get from $9 a valve on Alibaba) and there was some leakage from one of the unused valves that's supposed to remain closed when unenergized. I was trying to work around it so I could do a quick and dirty test, but it caught fire, and wouldn't go out because of the volume of gas leaking. I decided to extinguish it for safety, since it was close to a few things that I didn't want to catch on fire. Safety third! (A friend of mine told me once that they saw a t-shirt that said:
1) Porn
2) Bacon
3) Safety
But I can't find it on the intarwebz. Would be fun to have. Suppose I could make one.)
No comments:
Post a Comment