OpenResearch : Pressure Sensor for DuetWifi
-
The ones I've used (albeit only two) relied on the linear travel of the piston to work out dispensed amounts.
Encoder support is on the horizon , but I suppose you could also get away with using a screw if the target is 3-500cc syringes?
-
@bearer : In my case the linear travel of the piston is not controlled by any motor (threaded rod pushing the piston or augerscrew feeding)
In my case : A constant air pressure applied on the piston cause the piston to travel.This system allow to use High pressure and High throughput and is the standard in the dispensing industry.
Do you know If I could wire a pressure sensor on the duet board and read the input.
How can we use the unused input of the Duet wifi Board ?
Thanks,
-
I never said anything about motors, you can use linear encoders with pneumatic, and I'm sure it'll be easier to to use a step/dir interface from the duet and do some custom code on an arduino/esp8266/etc to control the pneumatics to achieve the desired position according to the step/dir signals from the duet than to write the custom code to control it from the duet; and you wouldn't have to maintain a custom fork with updates.
-
@bearer
Ok sorry, I wasn't aware of linear encoder for pneumatics.
I think your right, it's a great idea I will try to learn about step/dir interface .
I just want to point out something :
Today I am able to regulate the pressure of my pneumatic circuit for each syringe by controlling 2 supplementary Axis. (U and V)
By controlling the motors I am turning the knob on this type of pressure regulator :Thus changing the pressure.
So if I understood well, I have two/three options then :
-
Option 1 (Yours): Use the step/dir interface from the duet to know the position of the piston with a linear encoder and communicate from the duet to an Arduino circuit in order to regulate the pressure thus monitoring the piston position. (Have a PID loop with pressure output / Position input)
-
Option 2 (Mine) : Use an external Arduino circuit in order to read the pressure of each syringe and communicate to the Duetboard in order to control my U & V axis thus changing pressure.
-
Option 2 (Mix) : Use the duet to know the position of the piston with a linear encoder, read the pressure with an external Arduino circuit and use those 2 informations in order to control my U&V axis position on the duet to regulate pressure and thus piston position.
My guess : Use the wifi module esp8266 in order to send command to the Duet web interface and vice versa ?
Tell me if I'm wrong.
Thanks for your patience,
Tom Samson
-
-
You can use a linear encoder with anything that moves in a linear fashion, provided you can mount it. I'm not sure if there are pneumatic specific encoders.
If youre not in a hurry the next version of reprap firmware (version 3) will have some support for encoders and conditional g-code, but I'm guessing months not weeks until that is available and stable.
The step/dir interface is what is currently used to control the stepper motor drivers. You define steps/mm and the duet sends out enough step pulses to cover the amount of mm you tell it to move. Another signal will indicate direction, forward or reverse, you would read it just like any other quadrature encoder basically.
If you let the external controller deal with the mix ratios you might be able to set the step/mm in the duet and use a regular 3d printing slicer to generate g-code to lay down your 2 component stuff as if it was plastic.
You could of course use your pressure sensing idea instead of the linear encoder, but my guess is there would be more noise and hysteresis on the pressure sensing.
-
@bearer
Ok I get it but how am I supposed to communicate between an external circuit and the duet boards ?
Is there a easy way to do that ? -
If you got it I'm not sure what more you need to communicate?
-
I mean that If I understood well I need to acquire data on an external Arduino circuit and to use this data to control the duet.
But how can I do to communicate between the duet and the external circuit ? -
In my mind I'd avoid controlling the Duet. I'd let the Duet dictate to external controller the movement it needs the cylinder to make. (i.e. just like normal hotend feeding 1.75mm plastic, and the slicer works out how much to feed through the normal 0.4mm nozzle to get the desired line width for the given layer height).
That would work as any other stepper driven axis as far as the Duet is concerned, and your external controller would then read the step/dir signals from the Duet and control your valves to achieve the desired movement. Set the acceleration and jerk to values the air can deal with and the open-loop controls to the Duet should work (and you'll have a closed loop control on the external controller)
But if you want to send data from the Duet you can look at
M118
to send to a connected telnet or serial client. Or i2c is an option, the second you want to return data you're most likely over in custom firmware development territory. -
@bearer
Ok thank you it's much more clear now. -
@reflexlab said in OpenResearch : Pressure Sensor for DuetWifi:
@bearer
Ok sorry, I wasn't aware of linear encoder for pneumatics.
I think your right, it's a great idea I will try to learn about step/dir interface .
I just want to point out something :
Today I am able to regulate the pressure of my pneumatic circuit for each syringe by controlling 2 supplementary Axis. (U and V)
By controlling the motors I am turning the knob on this type of pressure regulator :Thus changing the pressure.
So if I understood well, I have two/three options then :
-
Option 1 (Yours): Use the step/dir interface from the duet to know the position of the piston with a linear encoder and communicate from the duet to an Arduino circuit in order to regulate the pressure thus monitoring the piston position. (Have a PID loop with pressure output / Position input)
-
Option 2 (Mine) : Use an external Arduino circuit in order to read the pressure of each syringe and communicate to the Duetboard in order to control my U & V axis thus changing pressure.
-
Option 2 (Mix) : Use the duet to know the position of the piston with a linear encoder, read the pressure with an external Arduino circuit and use those 2 informations in order to control my U&V axis position on the duet to regulate pressure and thus piston position.
Why not use a stepper motor to control that valve and home it by stalling it at the fully closed position. Then you can use the stepper motor to open it any number of turns that you want. No need for a linear encoder.
-