Commercial CNC machines can use a variety of sensors to ensure that the stock is where its meant to be or to sense if a cutting tool has broken. They tend to cost loads of money (upwards of £1000) and are almost always quite bulky.
There have been several other projects to make touch probes with a reasonable level of success but most of these can only be made so miniature. The aim of this project is to use readily available components to make a touch probe capable of 5 micron repeatability and be small enough to be used on my MF70 milling machine.
Ideally I would like to have interchangeable tips so that it can be used for digitising surfaces and for edge-finding without too much trouble. The interchangeable tip can be held on by a magnet so that I am trying to edge find then the tip will detach if no pulse is registered.
The piezo will itself generate a small voltage spike when it is flexed. This means that the method of detection can be as simple as triggering when the returned voltage goes away from ground (assuming one side of the piezo is grounded)
This has the drawback in that it requires a dual voltage op-amp setup so that both positive and negative voltages can be properly detected. Instead I have chosen to bias one lead of the piezo at 2.5V (or so). This means that any deviation from 2.5V will trigger the circuit.
The full schematic (Rev. 5) is shown above. I highlight that this is rev. 5 because in a previous revision I managed to flip the polarity of one of the op-amps and therefore it was always triggered... To make matters worse I had also wanted to buffer the output of the 555 timer so that it could drive an LED. I did this with a transistor without using a current limiting resistor. This configuration meant the 555 timer dumped 500mA!!! through to ground. Doh!
Anyway, the above design is the smallest design I could manage while still including the test switch and the LED indicator. The biasing of the piezo is achieved by the two fixed and the two variable resistors shown on the left of the schematic. The two fixed resistors basically fix the max window range to ~2.45 - ~2.55V. The variable resistors allow for trigger level adjustment to a sensitivity that is better than my multimeter can measure.
To the right of the resistors are two jumpers with a resistor between. This resistor (R5) helps the piezo voltage settle in a short amount of time so as to avoid double triggering. The two op-amps are simply used in comparator mode, one triggering if the piezo voltage is less than the lower bound and the other triggering if the piezo voltage is higher than the upper bound.
The output of the op amps is fed, via current limiting resistors, to the transistor. This acts as an inverter and ensures predictable behaviour because of the pull-up resistor (R6). The switch is also able to trigger the output to help test the probing software and to avoid machine crashes.
The 555 timer is configured as a re-triggerable pulse former. This design is all over google with explanations that are better than I would be able to manage here. The important thing is that the 555 gives a fixed length pulse out from a jittery input. The pulse length is set by the resistor and capacitor pair (R4 and C3). The values displayed give a roughly 10µS pulse length which is plenty for the interrupt on the arduino.
This circuit has shown itself to be very sensitive to vibration and touch events. It is highly sensitive to the extent that it is impossible to walk in a room with a piezo stuck (with tape) to the floor, without it triggering on each step.
I can provide eagle files if people are interested and I will answer question on the circuit if people have them.
I had the prototype boards made up by OSHPark which is an amazing service that I will definitely use again. They cost less that £3 for 3...
I was testing piezo electric speakers for use with a product at work. I have researched touch probe technologies in the past and was vaguely aware of how sensitive they are. As I had an oscilloscope to hand so I decided to see how sensitive they were and was amazingly surprised by how ridiculous even the cheapest of piezo speakers are. The fundamental physical principle of piezo electric crystals is that a voltage is generated whenever the crystal experiences shear forces. The reason that they can be used as speakers is that this can also work in reverse, such that an applied voltage will change the shape of the actuator which emits an audible sound wave.
This is a trace of the voltage measured at the piezo by my Rigol DS1054Z. This is a typical trace for a direct tap on the piezo but its difficult to make repeatable. Note the vertical scale of 2V per division which shows the piezo is capable of huge output voltage which bodes well for this project. The horizontal scale is 2ms per division which means the response is fast and very low power.
Its starting to look like we might be able to make this work. Now we need to move on to looking at electronic detection methods.