We start by building the impeller and the frame, using my own design available in Thingiverse:
https://www.thingiverse.com/thing:4279708
You will find STL files for the four parts:
- 1 x top frame, para la electrónica
- 2 x Bottom frame, para sujetar el rodete
- 1 x Impeller
You will also need the following mechanical parts:
- 4 x Small circular magnets (5 mm diameter, 0.1 mm thickness)
- 1 x M3 screw 15 mm
- 1 x M3 self locking nut
- 2 x M3 washers
I have printed the parts in PLA (white and orange, use your preferred colors) with a Da Vinci Jr. printer. I have used cyanoacrylate adhesive for glueing the different parts. Print the impeller and make a 3mm drill for the axle. Then glue the four magnets in place, tangentially in the tips of the impeller. Then glue the two washers around the drill. Their intended mission is avoid plastic-plastic friction when the impeller turns inside the frame. You can find the finished impeller in the image below.
Then print the three parts of the frame and then glue them in place, observing a correct alignment. Then insert the impeller, and make it firm with screw and nut. take care of not applying excessive torque, otherwise the impeller will not turn correctly. In my case, the screws can freely rotate in the frame. You can find the final speedlog below.
The operation of the device is very simple. The ingressing water flow makes the impeller turn. Because the magnets are located on the tips of the impeller, we can know when a blade passes by theta part of the frame, because the is a variation of the magnetic field, which is measured using a Hall effect sensor. In this way we can measure the rotation speed of the impeller (each full turn corresponds to detecting the four magnets sequentially). The rotation speed of the impeller will be proportional to the actual speed over water of the craft (this is NOT really in this way, but for the intended use the difference is negligible ).
The electronics are quite straightforward. The KY-003 can be powered either with 5V or 3.3V. This outputs a high state signal if it detects the magnetic field, otherwise it stays at a low state. The LCD 1602 presents 16 columns and 2 rows, and it is interfaced with a parallel bus. In order to simplify its use, we use the PCF-8574 to convert from I2C to a 8-bit parable port and viceversa. Both the LCD and the module are powered with 5V.
PROGRAMMINGThe code is almost trivial. In the loop () function the Hall switch is polled, so that we can maintain a counter of the 0-1 and 1-0 transitions (no magnet->magnet and magnet->no magnet). Every 250 ms the actual count is shown in the LCD and it is simultaneously dumped to the serial port (you can plot the counter values with the Arduino IDE). And that's all folks!!
Depending on the intended use of the speedlog, the counter might not be sufficient. If we want to know the actual speed over water, this can be estimated proportionally to the impeller count as follows:
speed_over_water = K * counter
We can find the desired K constant in multiple ways. One of the most used if to place the speedlog in a GPS enabled sailing craft. The craft is sailed at constant speed over a short course, for instance during a minute. For this to work, the sea state must be calmed, otherwise the measurement will not be accurate enough. The value of the K constant can then be estimated as follows:
K = gps_speed / counter
(DISCLAIMER: the GPS measures the speed over ground, while the speedlog measures the speed over water, which might be different in presence of water currents. A calmed water might assure that both speed are similar)
WORKINGFor making the speelog to work we only need to turn the impeller, either by hand (practical for preliminary test) or by using a water current (initially in a bathtub or directly from the water tap). It is simpler to make the initial tests at home instead of trying at see to only know something is not working properly. You can watch the system working in the following video:
Comments
Please log in or sign up to comment.