Build, Test, Document
Table of Contents
This page documents the building and testing of the periodontal measurement system, including the mechanical fixture, tooth phantom and electrical aspects.
Subsystems 1 & 2: Mechanical FixtureThe first step in building and assembling the mechanical fixture involved machining out the frame components and pressing the ball bearings into the correct frame sections. The machining operations for these components were mostly simple milling and drilling operations, but it became clear that things were going to take longer than expected due to the sheer amount of machining that needed to be done. Once the basic frame of the fixture was cut, the skeleton was assembled to mock up the fitment.
The next structural component to be made was the three piece u-shaped frame for the vertical axis. Once this was made and assembled, it was time to machine the sliding platforms which ride on the guide rails and are connected to the lead screws. Initially the design for these platforms called for bores running the entire length of the platform which the guide rails would ride inside. This bore was to serve as the contact surface for the guide rails to ride on and the platforms were made from Delrin plastic to help reduce the friction on the rails. After consulting with some more experienced machinists it was found that it would be difficult to maintain the parallelism of the two bores due to the fact that the drill bit would drift off course throughout the long depth. With these bores not being parallel, it would introduce a misalignment into the system and make the platforms increasingly difficult to translate and possibly out of the spec of the motors driving the screws. To avoid this problem, oversize bores were placed into the platforms. The bores were drilled starting from each side of the platform and meeting in the middle. This allowed us to accurately locate the bores on the ends of the platform and neglect the drift of the bit since it was larger than the rails. Lubricated bronze linear bearings were placed in the ends of bores which accurately located the platforms on the rails and provided a low friction contact surface to keep things moving smoothly.
The next step was to cut the guide rails to length for each linear axis and make the guide rail clamps. Again, these were simple operations, but time consuming due to the sheer number of components to be made. During this time, the lead screws were also cut to length and the bearing journal surfaces at each end were turned down on a lathe.
Once the above components were completed, the platforms could be assembled with the rails and attached to the frame structure, including the vertical u-shaped frame. This allowed for the current assembly to be moved by hand to verify things moved smoothly. After this was verified, the components for the pitch axis and turntable assembly could be manufactured.
Our initial design for the pitch axis assembly had the probe mounting fixture being pressed onto the pitch shaft to transmit the torque from the servo motor. After consulting again with more experienced machinists, it was determined that it would be better to instead use a spring dowel pin to fix the probe mounting fixture to the shaft. This provided a rigid attachment between the two and eliminated any risk of relative motion between the fixture and the shaft.
The turntable structure was pretty straight forward and no changes were necessary to the initial design due its simple construction and use of bronze bearings to control friction.
Since all the components had now been made, a first run at the final assembly of the fixture could be done to verify that things could be actuated by hand before the electrical system was integrated. Upon assembling everything a few issues became apparent. First, there was some misalignment issues which were causing a high torque requirement on the lead screws to actuate the linear axes. It was found that the reason for this misalignment was that the platforms were being located using too many points. The platforms were being located positively using the guide rails (both at the bore where they pass through the frame and the guide rail mounting brackets) and the interface of the lead screw. It was decided that the only necessary location component was to be the guide rails using the mounting brackets. To eliminate the other positive locations, the mounting holes between the screw and the platform (L bracket) and the guide rail bores passing through the frame were both enlarged to create some flexibility. This allowed the system to be assembled and tightened down first using the guide rails, then fastening the motor-screw-platform interface down in a position with no misalignment. Once this was completed, the system moved freely by hand and was ready for electrical integration.
Subsystem 3: Tooth Phantom
The decision process for material selection can be found on the Detailed Design page. Upon evaluation of several materials, the team agreed upon the following: aluminum tubing to represent the bone, concrete to represent the dentin, and dimensional fabric paint (also known as "puffy paint") and rubber to represent the gum tissue. Since two materials were selected to simulate the gum tissue and the turn table accommodates four tooth phantoms, two tooth phantoms will be constructed of each material.
- 1. Cut aluminum tubes and flat aluminum plate to size.
- 2. Mill edges to ensure flat surfaces
- 3. Drill two holes in each aluminum sheet according to Drawing XX.
- 4. Cut a credit card/ motel key in half, bend the card around aluminum tube making sure to keep it level tape using masking tape tight to the aluminum tube.
- 5. Using Scotch Extreme Mounting tape, fasten the tube to one aluminum plate.
- 6. Using an exacto knife, remove any excess Scotch Extreme Mounting tape.
- 7. Sift the aggregate out of the concrete; prepare the concrete according to directions.
- 8. Carefully pour the concrete into the stacked aluminum tubes then using a small stick to push concrete into all corners.
- 9. Allow concrete to set for approximately 4 hours .
- 10. Remove the credit card from the outside pealing away tape and card slowly to not break the concrete.
- 11. Allow concrete to set completely (overnight).
- 12. Apply layer of "puffy paint" or rubber accordingly. Note: Ensure that the "puffy paint" layer maintains consistent thickness (using a different credit card/hotel key wrap the concrete and aluminum to allow a level surface to pour the puffy paint and level off).
Subsystem 4: Motor Control
The decision process for material selection can be found in the Detailed Design page. The Arduino Uno development board is able to control servo motors and, with the EasyDriver boards, stepper motors. As discussed previously, it was decided to utilize the ALPS slide pot for the three stepper motors in order to implement a feedback system. This was done through creating three voltage divider boards. The perfboards used for the voltage divider circuits were Universal Component PC Boards with 780 Holes from RadioShack. The components needed for this are the ALPS slide pots, a resistor for the voltage divider circuit (a 1kOhm resistor is used here), and a 2-position PC board terminal for voltage and ground connections.
- 1. Determine where the components and wire connections will be on the perfboard based on the grid spacing. The alignment chosen in this system is shown in the figure below.
- 2. Line up the slide pot to match pins with the perfboard, and mark where the middle tabs will be. The middle tabs will not be perfectly aligned with the grid spacing of the board.
- 3. Drill holes into the marked areas, using a 1/16" drillbit. This ensures that the slide pot can be mounted into the perfboard.
- 4. Cut perfboard in half, the long way. This is done for potential spacing issues when mounted onto the fixture itself.
- 5. Solder wire connections before the components.
- 6. Solder the components - the PC board terminal at the top strip, resistor and slide pot on the main grid in correct positions.
- 7. Solder an output wire for the voltage divider output. A 22AWG wire is used in this case for the output.
The wiring of the servo motors, stepper motors, and the voltage divider feedback, was connected based on the wiring diagram shown on the Detailed Design page. The stepper motor was wired for high torque operation. This led to a wiring configuration of:
The program to control the servos and steppers are based on the Arduino example programs that Labview has. Motor control VIs were developed for the servos and steppers. The stepper feedback positional systems, once integrated onto the fixture, were connected to the Arduino Uno board. The voltage divider circuits of the positional systems were powered by the +5V power rails of the Arduino Uno, and the output of the circuits were connected to the Arduino Uno's Analog to Digital Converter (ADC). A VI was created to read the ADC inputs during operation of the stepper motors.
Subsystems 5 & 6: Data Acquisition & Limit Comparison
The oscilloscope used to sample the readings from the transducer is the Tektronix TDS 2012C oscciloscope. Labview has VI support with the Tektronix oscilloscopes. As such, a program was created utilizing the available Tektronix-related VIs in order to control the oscilloscope and sample the data. With the sampled data, the program was set so that it would be able to export this data to a dedicated folder.
First, the pulser/receiver unit required proper setup. The JSR DPR35E Pulser/Receiver unit was connected to the computer and to the Tektronix oscilloscope based on the instruction manual. The unit communicates to the computer via hexadecimal commands, so a GUI was initially created to facilitate communication between the user and the unit through Labview. To verify proper communication, the unit has to go through an initialization stage. Utilizing the instruction manual, the "D" command activates the initialization mode of the unit. The "I" command was next used to send queries to the unit which, with proper communication, prompted the unit to respond back. Once communication was verified and established, the "E" command was used to exit initialization and begin accepting function command prompts.
The function command prompts were tested in order to determine what the default settings should be during operation. Based on experimentation, default settings were determined for the function command prompts and established in a VI for the pulser/receiver unit. The Damping command was set to 52 Ohms. The Energy command was set to level 2. The Gain command was set to 50 dB. The High Pass Filter was set to DC, and the Low Pass Filter was set to 10 MHz in order to set a bandpass of DC to 10 MHz when acquiring data. The Pulse Repetition Frequency (PRF) of the pulser was set to 1000 Hz. The Voltage command was set to 325 V. The Impedance command was set to max. In order to operate the pulser itself to sample and acquire data, the Trigger command needs to be set to Internal mode, the Receiver needs to be set to Echo mode, and the Pulser State has to be turned on to begin pulsing.
The Tektronix oscilloscope required another VI in order to control and display the sampled data. The oscilloscope was tested during operation of the pulser/receiver unit in order to determine what settings would generate the best possible waveform display. As such, several default settings were determined. Channel 1, which is receiving the output of the pulser/receiver unit, is set to DC coupling and has a Probe Attenuation of 1x. There is no vertical offset needed for the data collected. The vertical range was set to 200 mV, and the horizontal range was set to 1 µs. The display itself is set so that it autoscales both the X- and Y-axis in order to show the full display and not cut off anything. The oscilloscope was set to begin data collection on the first falling edge, as opposed to the first rising edge, in order to capture the full operation of the pulser/receiver.
A main Front Panel GUI was created utilizing the motor control, feedback position, pulser/receiver control, and oscilloscope control and waveform display VIs. The Front Panel was designed to first undergo an initialization phase, through which the motors are briefly tested for movement before moving towards their home positions. The stepper motors' home position was based on the slide pot positional feedback readings. The user is prompted to confirm whether the motors are in their home position and the motors were properly initialized. If not, the program shuts down. If it was successfully initialized, then the program goes through an automated process of obtaining 17 captures from the bottom to the top of the tooth phantom before returning to home position and completing the operation. The captures are exported into a dedicated folder for future analysis.
The test plan for the tooth phantom can be found here: Tooth Phantom Test Plan. This test plan covers the testing of specifications 3.2, 3.3 and 3.4. Therefore, the tests analyze the time required to replace a tooth phantom, the measurement of varying tooth to gum distances and the ultrasonic differentiation between the tooth phantom materials.
The test plans for the electrical aspects of the project can be found here: Motor Control, Data Acquisition and Limit Comparison. These test plans cover the testing of specifications 4.1, 4.2, 5.1, 5.2 and 6.1.
Test ResultsThe test results for the phantom tooth material choice are outlined in specification 3.4. An example of the read out is below. The first spike indicates the first material and the second spike shows that it penetrated to the base material. These spikes will vary based on the materials used.
The changing of the teeth results are outlined here in specification 3.3 and the dimensions are outlined in specification 3.2. (Tables below)
Testing for the mechanical assembly was done to verify the accuracy of the 5 axes of movement. The testing was split up into two groups: the three linear axes and the two rotational axes. For both test groups, initial tests were done to verify that the motors were capable of moving the fixture. After this was determined, more specific testing was done.
The two photos below illustrate the basic test setup for both groups. The linear axes tests were conducted using a dial indicator and a magnetic base. Based on the number of steps per revolution of the motor, and the lead of the screw being tested, it was calculated how many steps were necessary to move a nominal linear distance. That step command was inputted into the control program to move the fixture. The movement was measured by placing the dial indicator in contact with a moving surface on the axis being tested. The results of this test for all three axes are shown below.
The rotational axes testing was done using a dial protractor. The protractor was placed on the turntable and the probe mounting fixture. Angular commands were put into the program and verified using the protractor. The results from this test are also shown below.
Looking at the test results above, the axes controlled by the stepper motors were all within spec. The largest difference seen between the requested motion and the measured motion was found to be 0.1mm, which is within the goals set from the beginning. Beyond being within the desired threshold, the values were very repeatable.
The results for the two axes controlled by servo motors were not as successful. It was not possible to control the servos in increments of one degree. Both servo motors were consistent in their movements, but not accurate. To attempt to detect variation, tests were done in two formats; one going to a specified degree in one degree increments, and the other going directly from the starting value to the end value. Both motors showed no variation when conducting the tests in these two formats. The turntable servo was consistently turning twice as much as the value that was inputted on the Labview interface. Meanwhile, the pitch axis servo was seemingly offset by a few degrees instead of being off by a multiplication factor. Looking at the first data point for the pitch axis servo, it can be seen that the axis was not moving when the first degree was requested. One explanation for this "lag" is the design of the servo mounting block. It was noticed during the test that the servo was moving slightly relative to the mounting block when the first input was given. After this initial slop was taken up, the holding/movement torque going through the motor held it stationary. As a quick check, the motor was held in place more rigidly by hand while the test was repeated. Even with the relative motion between the servo and the mounting block held to a negligible amount the offset was still present in the measurements, but was not as severe. Also, this does not explain the factor of error seen in the turntable axis where there was no such slop present.
The servo and stepper motors were also tested outside of the fixture to ensure they were up to spec. Using the Servo Debug file, the servo motors were tested for the range of motion it could achieve and the accuracy of control. Based on testing, the servos were physically able to go from 0°-197°, however the steps necessary to operate it are from 33°-146° on the debug VI. As shown below, each servo step size when controlled via Labview equates to a physical movement of around 1.74°. Using the Stepper Debug file, the stepper motors were tested as well. The stepper motors were able to function as expected.
For the electrical side below is a link to a sample set of data captured from ImagineRIT. Each time the test fixture executes it successfully captures data and logs it as required. That it is able to log data shows that the data acquisition is working and for electrical positioning the same results as the mechanical tests can be referred to since they are performed programmatically through Labview.
To meet specification 6.1, the fixture also had to be able to show clear differences between materials of the tooth phantom, akin to differing ultrasound properties of gum, bone, and dentin of a real tooth. The sampled data obtained through each test run is exported to a dedicated folder for future analysis. The test run captures data starting from the bottom of the tooth phantom and going up, performing 17 captures in total. Of the 17 captures, the first 6 are expected to showcase the "bone" of the phantom, with the remaining 11 captures showing the "dentin" of the phantom. Shown below is a graph of the Sample Results, which shows the results of the "bone" testing and of the "dentin" testing.
Additional testing was performed in order to showcase the repeatability of the data acquisition and meet specification 5.2, performed in a 3 test trial. Each one of the 17 captures were separated and compared between the three tests, and analyzed for its repeatability. As shown below, all three test runs gave very similar results at their corresponding capture points that were within spec. While some comparisons show some outlier data, for the most part the fixture was able to move to the 17 acquisition points on the tooth phantom repeatably and obtain very similar results on different test runs.Repeatability Results
User or Operator Instructions/Manual
The following link contains the Test Procedures for the completed test fixture. These are the instructions for the end user to perform the test as demonstrated at Imagine RIT. Test Procedure