Results 11 to 20 of 72
-
03-11-2014, 02:04 AM #11
- Join Date
- Sep 2013
- Location
- San Diego
- Posts
- 210
I think this hack is fun because there are lots of ways to pull it off, I suspect. I started work on one too, here are some pics.
CAM00083.jpg
My casting setup, with megablocks, clay, and a magnet. This cast failed, it needed to be larger. Setup is the same though.
CAM00086.jpg
Successful casts with flash still on.
CAM00087.jpg
Trimmed, and you can see the magnet through the plastic a little. I will be coating it in silicone sealant, so it's cool.
I'll get some pics of the housing when its done, hopefully tomorrow.
-
03-11-2014, 02:57 AM #12
- Join Date
- Nov 2013
- Location
- Cambridgeshire UK
- Posts
- 55
Sold!
I assume these are going quite fast, I'll find out soon enough, couldn't we just use the mic input as a mic, quick FFT and then you have pump frequency....?
I'm open to this but I'm still not convinced...I was playing with water in a tube the other day to sense drips (turns out saltwater gives nicer pulses than tap water but surprisingly not because it's more conductive [I'll post some captures later in the week]). I'm concerned having done this that pressure may have more to do with flow rate in a drip system than a valve, if you take the original concept of reservoir on top of reservoir then the head changes constantly throughout the print and could be siginificantly different at start and end. I don't know if this is solved if the head is >>higher than the print but then I imagine this would be more of a flow valve than drip governor?
-
03-11-2014, 06:19 AM #13
- Join Date
- Oct 2013
- Posts
- 219
Light Dependent Resistor Electric Circuit.png
Here's the circuit for a light activated switch, just substitute Rylan's valve in place of the LED and 500R. With this solution, the Peachy Basic can be part of the variable z resolution revolution. All you have to do is fire the peachy laser at the LDR and the transistor turns on and operates the valve. This could be an optional extra for the basic. It could plug into a socket on the peachy to supply 5v for the rail (therefore no additional power required, it wud only take a few milliamps from the rail) and Rylan's valve and could be sold as a 'variable z add on'Last edited by mike_biddell; 03-11-2014 at 08:28 AM.
-
03-11-2014, 08:50 PM #14
- Join Date
- Sep 2013
- Posts
- 308
Wow
great work everyone!
ok so in testing the design i had posted last we have found some major problems.
It did work great for a short time here are a list of problems we had:
- it got gummed up by resin and or salt
- it required about 400 mA to work reliably ( way to much power)
- its rather large
- the relays in the circuit combined with the coils were creating a very strong radio wave ( from the spark gap ) and
caused the serial port to time out! (ugg this took a while to figure out!!)
We are just attempting to do some larger prints and so this drip governor could be really valuable to that end.
So me and Erik took some time the other night working on new hardware for this hack
Erik has one that's almost done hopefully he will post some pics of it here tonight.
I went into my head for a few hours and came up with a design with the following features in mind
- much lower power required ( more efficient use of the magnetism )
- super easy to take apart and clean
- easy to make with a stack of rings cut out by the laser cutter
- moving part needs to be guided very well
- very small and inexpensive in volume
- use power mosfet instead of relays ( works great!)
- move to an H bridge, revesing polarity on the coil.
here are my blend files and i wipped up another animation ...
https://github.com/Rylangrayston/Ran...drip%20govener
My next step is to make this same design in open s cad, with the intention of cutting it out of a stack of disks and rings on the laser cutter.
if that docent work well I may just make it on my metal lathe for now.
Speaking of which dose anyone here use open s cad ?
We could alwase use help coding highly parametric designs !
esp for hacks like this.
@Pete
I thought the salt water was better because it was more conductive .. tell me more! What is it about salt that makes the pulses better!
although i must say this topic may need its own thread. Also yes your on to something ... we have noticed that the size of a drip grows by 30 percent
as the drip frequency goes from 1 drip per second to about 5 drips per second. We doubt that this is linear and it needs much more testing before
we can do a good job of accounting for it. luckily we know the drip frequency, and if the frequency stays the same then the drip size is very stable.
so it looks like a very solvable problem.
@Anuvin
great stuff, if i make one on the lathe ill def use your lego casting idea to make a few more!! very cool, plus its something i can do with my son
Any thing to do with lego and he is in! I think if we made a Lego spoon he would eat broccoli with it lol.
@Mike_Biddell
So simple, just love it, how about using a power mosfet to replace the transistor you used and then also adding a capacitor to its gate so when the switch gets a short pulse of light
it charges the cap quickly which holds the mosfet on for a few seconds. That way the peachy can ask for say 10 drips at a time, and spend very little time on the LDR.Last edited by rylangrayston; 03-11-2014 at 08:53 PM.
-
03-12-2014, 05:30 AM #15
- Join Date
- Oct 2013
- Posts
- 219
Rylan, power mosfet is good. The switch could be an adjustable 3 stage mono-stable as you suggest. Coarse, medium and fine. Just set the monostable to the required setting before you start the print. The time constant for the capacitor would be set by switching between 3 resistors. The laser wud then just fire at the LDR and move on. The monostable wud hold on the FET for the required time (drips). Or a 555 timer could be used.
-
03-12-2014, 09:22 AM #16
Could also be turned on by laser and off by the drip sensor. So, when the laser target the LDR it's turn on, then we wait for "X" drips to turn it off again.
If we use an ajustable valve, we could also use the laser to ajust speed... everytime the laser hit the LDR, the valve open a little more. Every drip, she's closing a little, so if you want to have it stable, you hit the LDR one time each drip, if you want +1, you need to hit the LDR 2 time on a drip. Dont know if this could be viable, since I didnt saw how fast the drip goes and how fast the LDR react.
-
03-12-2014, 09:51 AM #17
- Join Date
- Oct 2013
- Posts
- 219
Sebastian, you are correct, there are many possibilities with a light operated switch. LDRs are so cheap, you could have more than one
-
03-12-2014, 08:23 PM #18
- Join Date
- Sep 2013
- Posts
- 308
hmm ya I think nka is on to something too
how about 2 LDRs , shinning on LDR1 turns the dripping on, Shinning on LDR 2 turns the dripping off... with a setup like that the printer can chose exactly how many drips it wants with two quick flicks of the laser beam
Mike do you know how to make a switch like that?
If you post a circuit diagram and ill try it out, all tho it might take me a week as Im away from the shop right now.
-
03-12-2014, 11:35 PM #19
- Join Date
- Sep 2013
- Posts
- 308
ok so progress is coming along nicely on the openscad version
of that last animation i posted..
Screenshot.jpg
I did the hole thing in modules of rings and discs that can be cut with the laser cutter
and the hole thing is almost completely parametric, with parameters for
everything at the top.
All that's left to do is a bit of clean up as well as finish the laserCutterLayout() module
so that all the pieces can be exported to dxf for laser cutting.
Open s cad is a way to program or code objects instead of draw or model them
like you would in a conventional program like blender or cad.
You can grab it here:
http://www.openscad.org/
Note, I did implement an animation in open s cad , just click view --> animate
to play with it.
here is the open S Cad code!
Copy paste it into openscad and enjoy
Code:// ID and OD stand for inside and ouside diameter explodeDistance = 1;// 1+5*$t; split = 3;//1+1*$t; IDClearTubing = 4; wallThickness = 1+1*$t; tubingConnectorLength = 9; magnetThickness = 3; magnetOD = 6; coilWidth = 3; coilID = 4; coilOD = 8; pinOD = 1; pinLength = 10; pinThickness = .5; flowHoleID = 1; flowHoleOffset = 2; valveORingID = 3; valveORingOD = 4; valveORingThickness = (valveORingOD-valveORingID)/2; housingORingID = magnetOD+1+.5; housingORingOD = housingORingID +1; housingORingThickness = (housingORingOD-housingORingID)/2 ; outerORingGap = .5; module tubingConnector() { difference() { cylinder(tubingConnectorLength,IDClearTubing,IDClearTubing,center= true); cylinder(tubingConnectorLength+1,IDClearTubing-wallThickness+1,IDClearTubing-wallThickness+1,center = true); } } module magnet() { color("green",.9) cylinder(magnetThickness,magnetOD,magnetOD, center = true); } module pin() { color("purple",.9) union() { cylinder(pinThickness,magnetOD,magnetOD, center = true); translate([0,0,pinLength/2]) cylinder(pinLength,pinOD,pinOD,center = true); } } module pinAndFlowHole() { cylinder(10,pinOD,pinOD,center = true); translate([flowHoleOffset,0,0]) cylinder(10,flowHoleID,flowHoleID,center = true); } module coilSpoolWall() { difference() { color([0,1,0,0.5])cylinder(wallThickness,coilOD,coilOD, center = true); pinAndFlowHole(); } } module coilSpool() { union() { coilSpoolWall(); translate([0,0,wallThickness/2+coilWidth/2]) { difference() { color([0,0,1,0.8]) cylinder(coilWidth,coilID,coilID, center = true); pinAndFlowHole(); } translate([0,0,coilWidth/2+wallThickness/2]) coilSpoolWall(); } } } module valveORing() { difference() { cylinder(valveORingThickness+wallThickness,valveORingOD,valveORingOD, center= true); //cylinder(100,valveORingID,valveORingID,center= true); } } module inerFacePlate() { difference() { cylinder(wallThickness,magnetOD+1+wallThickness,magnetOD+1+wallThickness,center= true); pinAndFlowHole(); valveORing(); } } module outerFacePlate() { difference() { cylinder(wallThickness,magnetOD+1+wallThickness+wallThickness, magnetOD+1+wallThickness+wallThickness, center =true ); pinAndFlowHole(); } } module housingORing() { difference() { cylinder(housingORingThickness+wallThickness,housingORingOD+wallThickness,housingORingOD+wallThickness, center= true); cylinder(8,housingORingID,housingORingID,center= true); } } module housingORingSeat() { difference() { cylinder(wallThickness,magnetOD+1+wallThickness,magnetOD+1+wallThickness,center= true); cylinder(wallThickness+1,magnetOD+1,magnetOD+1,center= true); //pinAndFlowHole(); housingORing(); } } module inerHousing() { difference() { cylinder(wallThickness,magnetOD+1+wallThickness,magnetOD+1+wallThickness,center= true); cylinder(wallThickness+1,magnetOD+1,magnetOD+1,center= true); } } module outerHousing() { difference() { cylinder(wallThickness,magnetOD+1+wallThickness+wallThickness, magnetOD+1+wallThickness+wallThickness, center =true ); cylinder(wallThickness +1, magnetOD+1+wallThickness+outerORingGap, magnetOD+1+wallThickness+outerORingGap, center= true); } } module assemble() { tubingConnector(); translate([0,0,tubingConnectorLength/2+wallThickness/2*explodeDistance]) coilSpool(); translate([0,0,tubingConnectorLength/2+wallThickness*2+wallThickness/2+coilWidth*explodeDistance]) { inerFacePlate(); translate([0,0,wallThickness*explodeDistance]) color("red",.5)housingORingSeat(); translate([0,0,wallThickness*2*explodeDistance]) inerHousing(); translate([0,0,wallThickness*3*explodeDistance]) { inerHousing(); } translate([0,0,wallThickness*3*explodeDistance+split/2]) { magnet(); translate([0,0,magnetThickness/2+pinThickness/2]) pin(); rotate([0,180,0])translate([0,0,magnetThickness/2+pinThickness/2]) pin(); } translate([0,0,split]) { translate([0,0,wallThickness*4*explodeDistance]) outerHousing(); translate([0,0,wallThickness*5*explodeDistance]) outerHousing(); translate([0,0,wallThickness*6*explodeDistance]) outerFacePlate(); translate([0,0,wallThickness*7*explodeDistance]) coilSpool(); translate([0,0,(wallThickness*8+wallThickness/2+coilWidth+tubingConnectorLength/2)*explodeDistance]) tubingConnector(); } //translate([0,0,housingORingThickness+10]) //housingORing(); //translate([0,0,housingORingThickness+6]) // magnet(); } } module laserCutterLayout() { translate([20,0,0]) tubingConnector(); translate([20,0,0]) magnet(); } laserCutterLayout(); assemble();
Last edited by rylangrayston; 03-12-2014 at 11:38 PM.
-
03-13-2014, 04:19 AM #20
- Join Date
- Oct 2013
- Posts
- 219
Rylan, it occurs to me that we could simply use one LDR as a toggle switch. So fire laser and valve is on, fire laser at same ldr and valve is off. I can think of two solutions, one using a 555 timer and the other using a picaxe 08m. The 08m is cheap, about £2 sterling, but an advantage of using it as a toggle switch, is that it could also provide the scanner drive for the Peachy basic, with few additional components (maybe none). Plus you can change the behaviour of the circuit just by re-programming it (it is therefore more flexible). But I'll try to find time today, to put the circuits into my simulator and get them both working that way. If they work in the sim, they work in real life.
Ender 3v2 poor printing quality
10-28-2024, 09:08 AM in Tips, Tricks and Tech Help