I need to put together a performance monitor for my single sculling activities. Base requirements are:
Sensing a pulse at the end of a phase of movement (cheap accelerometer)
Sensing uneven pulses at the start of the movement phase (cheap accelerometer)
GPS for location and velocity (Arduino GPS hat)
A method to negate current when calculating the true velocity (typically an impeller with a hall sensor) (Hall sensor)
Output all of this data to a simple screen (likely a few dedicated purpose LCDs) (either 1 big LED or several smaller LCDs)
(Optional) Heart rate monitoring with BLE and/or ANT+
(Optional) Additional accelerometers for oars.
Based on the specs I've read, I'm looking at a either an Arduino Due, TWO Arduino Uno R3s the Raspberry pi4 with extra GPIO hats, I'd like to avoid the Pi if possible because of the power requirements ...
Several commercial solutions for this already exist such as the NK SpeedCoach. I am seeking the custom route so I can add additional functionality later on.
Quite a large project but no engineering information for helpers.
Please read the first topic telling how to get the best of this forum.
Forum answers to specific questions but issuing a foggy description will not return a complete project definition.
I should have specified, but I am mostly interested in a platform upon which to design my project (arduino, pi, etc). I don't need help engineering the device itself, this is as much a learning opportunity for myself as a creation to share with my friends.
The real issue I have come across is the limitation on GPIO..
Each accelerometer will require 3.3v, and Serial links (SDA & SDL), and a ground.
Counting the SD* pins on either device provides a ceiling.
A hall sensor can work with analog pins
Accelerometers need SD* pins (two sets on either a Pi or Arduino Uno)
Did you realise that multiple i2c devices can share the same pins? That is, as long as each device has a different address on the bus. Many i2c devices can be configured to have 2 or 8 different addresses. Where that's not the case, i2c multiplexers can be used, or by connecting their address pins to Arduino pins, the need for a multiplexer can sometimes be avoided.
A method to negate current when calculating the true velocity
The GPS will measure the true velocity. I think what you mean is velocity through the water, which I guess is how you would fairly measure your performance as a sculler.
Secondly, the GPS will measure the velocity as it pertains to distance between updates. It will not deduct the current when running downstream, which is the need for the impeller/hall sensor.
Projects like this usually have a learning phase where you discover how the parts you want to use function. It's often suggested that you take the external components one by one and learn to use them on their own and validate that they are suitable.
So although of course, looking at the big picture at the start is good, it's likely that your project will evolve as you learn more, so consider getting a Nano or the like to test your initial part selections out.
For the end game, if you find that a lot of pins really are required, look at the Teensy range - the higher end ones have more.
Distance between updates, seen by GPS, is true velocity. That was my point. But velocity through the water (ie. relative to any upstream/downstream/tidal current) is a better measure for the performance of a sculler, and for that you need the impeller to measure the speed of water under the boat, combined with the true speed and heading over-the-ground, from the GPS.
Ah, wait. What am I talking about? Performance as a sculler is all about speed through the water, isn't it? Why is GPS needed for that? All you need is the impeller.
The GPS has other benefits such as datalogging your path down the river for later analysis and review.
This is over simplified and leaves out a lot of variables, however, I hope this clarifies my thinking process and why I have elected the components I have.
It is true that you can use either/or for velocity measurement, however, using them both provides better resolution of your corrected velocity.
This idea to use both an impeller and GPS is not new and is not my own, this is what the companies charging nearly $1000 for one of their devices have developed. I am merely trying to engineer a working solution and save myself some $ while learning along the way.
Is this the same accelerometer? Is it attached to your body, or a sliding seat or something?
GPS for location and velocity
Most GPS modules need the Arduino to have a spare UART. Sometimes software serial can be used instead, but given your need to monitor accelerometers and hall sensors, I think I would recommend a hardware UART. Perhaps an Arduino Pro Micro (don't confuse with Pro Mini).
Can you describe in more detail what you need to display? If only text is needed, try mocking up a layout, perhaps based on a 20x4 character LCD. You can get i2c adapters for these displays, so they can share the same pins as the accelerometers.
Is this the same accelerometer? Is it attached to your body, or a sliding seat or something?
No, the entire project will need to fit into a relatively small/lightweight enclosure that will be mounted to the boat somewhere, the accelerometer(s) will be chassis mounted.
The screen ..
It is a text only display, I can label the face of the instrument with the data being presented, so I need output of only a few numbers. The rest of the data shall be collected and logged for later analysis. The 20x4 LCDs do look splendid for this and I was planning to go that route. When you're rowing along, too much information getting tossed around isn't a good thing. You're best to have necessary data (stroke rate, pace, time) presented as simply as possible, everything else is superfluous until you're back on land and can review everything.
As @wildbill indicated, this is a big project with a few moving parts so my learning curve will be rather steep here.
@PaulRB I appreciate your question, they alone have directed me to what I should have been doing which is asking "why" and "what for" and "how shall" about the components, where they go, and their necessity. Socratic reasoning isn't something I've applied to engineering before, I guess that's why I'm not an engineer (yet).