Apart from the data obtained from the CFD simulations, we decided to build an instrument to measure the drag across textured surfaces. This page shows our making process!
Prototype Design Specifics
Test cylinders
The cylinders were sent into the CNC lab for milling. Here are the two cylinders – one with riblets and the other without.
![](https://blogs.ntu.edu.sg/ps9888-2019-jawss/files/2019/07/the-two-cylinders.jpeg)
The cylinders were also manufactured such that there would be key grooves to insert the shaft and ensure that the cylinder would not slide around while everything was spinning at such a high RPM.
Apart from the above metal cylinders, we decided to 3D-print two additional test cylinders – one with a golf ball-like dimpled surface and one with a ‘smooth surface’.
![](https://blogs.ntu.edu.sg/ps9888-2019-jawss/files/2019/07/822.jpg)
The cylinder on the left was printed in two separate parts – top and bottom half – and this explains it’s multi-coloured facade. Similarly to the milled cylinders, there were key grooves printed (as seen from the top of the cylinder on the right) to fit the cylinder on the shaft and prevent it from sliding around the shaft during rotation.
Due to the nature of 3D printing, the layering of the filament causes the surface of the ‘smooth’ cylinder to be slightly rough. However, since both printed cylinders face this issue, the contrast in deceleration times due to drag effects is still preserved.
Bearings
The bearings we initially chose would decelerate too fast when spun. This might cause problems where the bearings might not be able to reach a sufficiently large RPM, instead, acting as a braking force on the motor. This would cause the motor to heat up and potentially damage the motor. The way the original bearing spins can be seen in the left image. Therefore, we went to buy a bearing (on the right) that spins more freely and also, ordered a bearing online that might be able to spin more freely even at a high RPM. The plan would be to try both bearings and gradually eliminate whichever stops working at a higher RPM.
The bearing in the middle also presents a new set of issues. Despite the bearing offering less resistance to motion, this bearing likely experiences more friction. Therefore, it may heat up at when operating at a high RPM. A motor that is less likely to experience this problem is the bearings on the right. This set of bearings, however, also offer a set of unique challenges. It would be challenging to remove the central axle from the newest bearings as those bearings are not self-aligning (meaning the bearing can move in the housing). It is thus likely that while experiments are being carried out, the bearings will have to be removed together with the whole central set-up. This will mean that every time an experiment is carried out, the bearings + central set-up will have to be aligned with the motor.
Having bought the newest bearing, we realised that the inner deep groove bearings can only be hammered onto our rod. This meant that we had to find a way to remove the cylinder past the bearings. To solve this problem, we opted to use the cross beam (which passes through the axle) and get rid of the cap which could not be pulled past the bearings.
Motors
![](https://blogs.ntu.edu.sg/ps9888-2019-jawss/files/2019/07/motor-225x300.jpeg)
This motor generated less torque than we would like, which also meant it was unlikely to be able to spin our central shaft and cylinder due to its weight. In order to resolve this issue, a new spindle motor that can generate high torque was bought.
z-axis
In order to mount our Z-axis, we had to drill the Z-axis mounting brackets to fit our 30×30 aluminium profile screws and 20×20 aluminium profile motor mounting bracket screws. To drill strong metal, we opted to grind the metal down using the tool below as seen below.
![](https://blogs.ntu.edu.sg/ps9888-2019-jawss/files/2019/07/Metal-grinding.jpeg)
Our Z-axis can now be mounted nicely onto our 30×30 aluminium profile!
motor clutch
The motor will be connected to one side of the motor clutch (the black one in the photo below). This motor clutch will be glued to a rubber surface which is high friction. Our long aluminium rod will be connected to the other side of the motor clutch. This is the motor clutch that’s in pink. These two sides of the motor will connect to each other and cling onto each other such that when the motor is engaged and running, the sides will not slip against each other. This thus allows us to engage out the motor with our axle set-up without the two parts slipping!
How did we get to the final design of the motor clutch? First, we had to find a way to secure our axle to one half of the clutch. This was done by 3D printing the clutch (the pink clutch) with two screw holes so that the clutch can be tightened around the aluminium rod. On the other hand, for the black motor clutch (used for the motor), we used the existing clamping nut which can fit around the motor chuck component. Using a screw to pass through the collet hole, we 3D printed a component that could circle around the screw nicely and be clamped on the other end by a nut. This ensured that the 3D printed component would not slip around the screw when the clutch is made to rotate by the spindle motor.
![](https://blogs.ntu.edu.sg/ps9888-2019-jawss/files/2019/07/Motor-clutch-225x300.jpeg)
![](https://blogs.ntu.edu.sg/ps9888-2019-jawss/files/2019/07/how-spindle-motor-connects-to-clutch-300x225.jpeg)
Stabilising the spindle motor
After running a few test runs, we realised that the spindle motor was vibrating at a very high frequency. Due to the weight of the spindle motor, the metal holding the spindle motor on the Z-axis would bend which caused the spindle motor to vibrate. This meant that we had to find a way to guide the spindle motor so that when it is running, the vibration is reduced. In order to do this, we used low friction PTFE stickers which act as a guide. This helped to minimise the spindle motors movement when running experiments. Since the friction on PTFE stickers is low, the motor could easily slide in and out during engaging and disengaging.
![](https://blogs.ntu.edu.sg/ps9888-2019-jawss/files/2019/07/ptfe-.jpeg)
OVerall set-up
Here is our shaft and cylinder installed on the frame of our prototype.
Since the aluminium rods might be too weak, we are replacing our aluminium rods with stronger reinforced aluminium.
Our spindle motor will be controlled by a driver board which was wired up to the potentiometer. In order to control this potentiometer during the experiments, without touching the potentiometer itself, we opted to use an additional stepper motor which will be controlled by the Arduino circuit board. This stepper motor will be connected to the potentiometer with the help of a flat screw head. The whole experiment process will be entirely automated. This means that the spindle motor speed control, the Z-axis movement as well as the tachometer will ideally, be completely automated.
Both the spindle motor speed control and the Z-axis movement have been automated already. As seen in the video below, during initialisation, the Z-axis will carry our mounted spindle motor down to pre-engage position. Upon interaction with the Arduino serial monitor interface, we will call the Z-axis to engage the motor with the axle. The stepper motor will then automatically turn slightly to increase the current, allowing the spindle motor to start turning slowly. We can then use the Arduino interface to gradually increase the current (never having to actually touch the potentiometer which will likely be running at a very high voltage and current. When we are done experimenting, we can call through the Arduino serial monitor to disengage the motor and automatically drop the spindle motor current to 0 slowly. We can then call for the Z-axis to completely disengage and turn the motor completely (if it already isn’t completely switched off) when we are done with our experimenting session!
For our overall electrical set-up, due to the high voltage the spindle motor needs to draw, we have chosen to 3D print an insulating box which will house our high voltage electrical components, such as our driver board, stepper motor and potentiometer.
Now, all there is left to do is to ensure our tachometer can be programmed to fit the Arduino interface. This would be great for our experimenting as it ensures that our tachometer can automatically start recording data when the cylinder starts spinning. We can then avoid being too near to the spinning cylinder during the actual experiment! This is an incredibly daunting software-related task that most students will not learn to do in school and requires large amounts of software development experience! Here is our resident programmer hard at work!
![](https://blogs.ntu.edu.sg/ps9888-2019-jawss/files/2019/07/our-resident-programmer-hard-at-work.jpeg)
Systems Integration
Due to the potential danger in conducting high RPM experiments, we would like to make the experiment as autonomous as possible. The end goal was to have an integrated system where one could edit a configuration file and the experiment would autonomously complete the experiment including data collection.
In the pursuit of this goal we faced several problems:
- The tachometer shipped with its own proprietary software which could not easily be integrated into other solutions.
- Documentation on the open-source equivalent of the tachometer software was scant
- The Arduino does not contain any means of processing and editing collected data
- Decision making based on tachometer data would be a little slow, and thus thread-blocking (prevents other computer operations from running) while it is being executed.
To address these issues, we added a mediating process between the Arduino and the tachometer.
Data Flow Control Chart for Drag Experiment Setup
By using a Python script to interface with the Windows/Linux Command Line, we are able to run the open source Command Line Utility, SIGROK-CLI, and pipe the direct serial output of the tachometer to our script.
Our python code then sends serial commands to the Arduino, which then communicates with our motors to engage and disengage our clutch as well as turn the potentiometer controlling our spindle motor’s power.
To prevent the problem of decision making and data I/O (Input/ Output) being thread blocking, we prioritise the tachometer data and make its stream the main thread. All other communications, such as the arduino logic and writing data to files are offloaded to other sub processes.
State Transition Diagram for Drag Machine Experiment
Above is the state transition diagram for the logic processing in the experiment. This allows us to autonomously conduct the experiment without any personnel at risk of injury. The configuration file (as shown below) allows complete customisation of deceleration experiment parameters, thus allowing for flexibility in experiment design.
Our prototype was finally completed.
![](https://blogs.ntu.edu.sg/ps9888-2019-jawss/files/2019/07/final-prototype-labelled-1.png)
The central set-up is shown above. The Z-axis is behind the spindle motor, helping to control the up and down motion of the motor during engagement and disengagement. The tachometer is mounted at the side, completely hands-free and connected to a computer via USB to log and track data during experiments. A small reflective tape is stuck at the bottom so that each time the tachometer’s laser passes the reflective tape, the tachometer can track the cylinder’s RPM.
This entire set-up is also connected to an electrical set-up, as seen in the picture below. The Arduino connects to both the stepper motor controlling the potentiometer as well as the Z-axis.
![](https://blogs.ntu.edu.sg/ps9888-2019-jawss/files/2019/07/Circuit-set-up-labelled.png)
Having completed our prototype, it was time to move onto our experiments. The following videos show how our experiments were run. Even though our cylinder could go up to 10,000 RPM, we decided to test it at 5000 RPM first. This allowed us to gauge how safe it was to run the experiments while collecting useful results. 5000 RPM is equivalent to a linear velocity of 60 km/h, which is about the speed of a car.
This first video shows our smooth cylinder which is rotating at 5000 RPM.
This second video shows our ribleted surface being rotated at 5000 RPM. This can be compared with the previous experiment to determine if ribleted surfaces help reduce drag.
Following a series of both the experiments, a graph was plotted of the deceleration phase. Curve fitting was performed to determine the coefficients. These coefficients allowed us to compare between the two surfaces to determine, using a quantifiable method, whether there is a difference in drag between the two surfaces.