Between unrelated issues and realizing that, before I can realistically discuss this with people I need to put a lot more time into high-level specs, including flow-charts, possible part lists, more detailed requirements, etc., I don't want to waste people's time.
If I've already spoken with you about this, I will be in touch, but I have a lot of physical part organizing to do, a written inventory to make so I know what I'm working with, plus the above.
28BYJ-48 stepper motors are not made for precision application. They have 2048 steps but if you turn two of them the same they won't sync up no matter what driver module you use. You'll need better ones like Nema 17 if you want to turn a screw or threaded rod like for a 3d printer or lazer cutter.
You mentioned load cells being used. If you are wanting to get data from the load cells you can use an HX711 module to connect to your controller
Having just wrapped up an HX711 project, I can tell you the reading changes if a mosquito flies by a closed window on the other side of the house. NOT precise instruments at all.
Understood. This is rough at this point. If the data was within +/- 10% it would be fine. And they don't really need to sync because they could have two smooth sliding poles and one drive screw, rather than 2 drive screws.
That being said, if you still think they will cause problems, I'll get small NEMA 17 motors. I already have one 17HE15-1504S, but since they are more expensive and I didn't know what board to drive them with, I went with the 28BJY-48 motors (largely because not only were they cheap, but they came packaged with the driver board).
Things that come to mind from a system design perspective from someone who's done a ton of motion control over his career:
Get a handle on how accurate & precise you want the strain measurement to be. It will have a lot of impact on the final design. Same goes for the motion. As mentioned before, those steppers are not the best.
System should be modular. You want 10 measurement points? Build 10 systems. Again, much simpler in the long run. It also allows you better budget control because 10 systems will cost about 10x what one system will cost, exclusive of the monitoring PC, of course.
Consider distances to measurement points, wiring, supplying power and connections. These are aspects often forgotten and they can cause design changes in the middle of the project to accommodate them.
Arduino makes things easy at up to 3 stepper motor control points. More than that and you have to get creative. I'd think about an ESP32/PicoW at each location and communicating over Wi-Fi. That ends up being much simpler than trying to create your own wired protocol. Worst case, you have to dedicate a $29.95 router to the project.
I've worked with industrial controllers that used Modbus for multiple motion axes, and I'm not really a big fan. Modbus was probably great in 1979, but this is 2024.
A comment about code/language. Be careful that you don't write yourself into a corner by trying to exert too much control here. Sure, you don't want the developer using something like Lisp or another relatively unpopular language that it may be hard to find someone else to use later, but be careful that your desire to understand what they're doing doesn't hamper their ability to deliver.
If you want to send me a PM, I'd be happy to discuss in more detail.
Although writing readable code is part of the coding exercise (there are multiple guidelines out there) I agree with
Especially as fully Documented code and general documentation also comes at a cost. So you’ll have to balance the expected level of details and comments in the code against your budget.
You mention also that things can break - that assumes the torque of the motor is high enough to break whatever is connected in some way to the shaft. The resistance of the target object should be taken into account in choosing the right motor otherwise you might just miss steps and will get inaccurate data.
If the couple of bucks difference in price of the steppers is being talked about, you will freak at the rates a professional programmer charges these days. I am retired 20 years now and the few guys I still know who are working now make between $300k and $500k a year. Your project is between 3 and 6 months. That does NOT mean the invoice will be for 1/4 to 1/2, it will be from (1/3-1/2) to (3/4 to 1/1). Good luck.
I considered adding a hint that this would be an expensive project, but it seems that recently, mentioning budget seems to derail the discussion.
I agree with you that this is a fairly complex project and the description probably only scratches the surface of what it takes to do it right. Three months is a stretch, but it's not three hours!
I like to come at it from a different direction. Instead of asking about budget, I normally describe what it would cost for me to provide the requested functionality, and if that's out of budget, I could cut back on (a), (b) and (c) to reduce cost.
Sure, I totally get that. IME, people get defensive when you ask about budget, so I start off by giving them an Order of Magnitude estimate so they know if they're looking at $200, $2,000 or $20,000 before I start digging deeper. If their budget is $50, then they typically back off right away. If it's $5k, then we discuss further.
I remember one person that I gave a rough estimate of $6,000 to and his answer was to PayPal me a $2,000 deposit via my email address. That was a signal to me that I came in too low