Running part of the code on a PC, the other part on the MCU?

Hello,
in my current project, I will rotate an object, stop when its position is good, take pictures of it with a camera, strobe LEDs in sequence using the camera trigger out.

Now, my problem is that "when the position is good" will be decided by computer vision, and I can't imagine implementing that on an Arduino.
So at some point, there will be some feedback loop between the MCU driving the rotation, and the PC analysing the camera signal, then the image acquisition will be started, and the LED strobing could run with TTL communication between the MCU and camera only.

On the other hand, I could also run the whole thing on the PC and use the MCU only as an hardware interface for TTL in/out, LED strobing and rotation driving.

My question is the following: in general, is it good practice to mix PC-driven action and a "meaningful" loop(), or is it easier and cleaner to program everything PC-side (with PyArduino or something like that), and only have loop() waiting for instructions?

The best practice in general is to make your project as simple as possible: minimise communications back and forth, make components as independent as possible.
So one program that is doing the hard work and sends simple commands to the peripherals, such as the strobe and the rotation control.

vvlabo:
On the other hand, I could also run the whole thing on the PC and use the MCU only as an hardware interface for TTL in/out, LED strobing and rotation driving.

this would be my choice as I'm more familiar with VB than C++.

Using a three-way handshake and checking that what's received is the same as what was sent, etc.

Peter