¿Cuál es la mejor manera de usar el control de movimiento basado en gestos en los steppers?

Todavía no he entendido cómo planea usar su disposición LDR-LED y el sensor MEMS. Pero, aún intentaré responder sus preguntas.
Si nos fijamos en el enunciado del problema, abarca en general tres áreas de ingeniería. Primero, sería Diseño Mecánico / Eléctrico, Segundo sería HMI y tercero sería Controles. Entonces, desacoplemos los tres aspectos y procedamos. Creo que está bastante seguro acerca de la HMI, así que no voy a entrar en ella.
Primero, nos gustaría quitar los controles del camino. A partir del enunciado del problema, podemos deducir que el robot que construirá debería poder moverse sobre una superficie plana 2d, también debería poder orientarse. Por lo tanto, puede decir que hay tres parámetros que desea controlar. Para lograrlo, planeamos usar un robot de accionamiento diferencial. Mirando el modelo del robot de accionamiento diferencial, podemos decir que puede cumplir con nuestros criterios. Ahora, debemos decidir qué tipo de bucle de control debemos implementar. Sabemos que el movimiento del robot se ve afectado por parámetros como la superficie de la arena. Por lo tanto, no podemos usar un sistema de bucle abierto. Necesitamos cerrar el ciclo. Para esto, necesitaremos un sensor para proporcionar una retroalimentación y un controlador para corregir el ángulo del robot basado en la retroalimentación.
Un enfoque es controlar la velocidad de rotación de ambas ruedas y usar esto para controlar la orientación. En este caso, necesitará codificadores en las ruedas. Puede usar el controlador PID como su controlador. Incluso en el caso de motores paso a paso, es posible que necesite un sistema de retroalimentación si su carga es considerablemente grande y el motor deja de funcionar.
Otro enfoque más simple que puede tomar es utilizar al usuario como controlador. Asigne la rotación de la palma al voltaje proporcionado a los motores. De hecho, este será el método más robusto y rentable. Si no planeas hacer un robot autónomo. Realmente te sugiero que vayas con esto.
Ahora, para el diseño mecánico, cuando se mueve a lo largo de un plano horizontal, si se superan las fuerzas de fricción, sus ruedas se moverán. Cuando la rueda está en reposo, deberá superar una fuerza equivalente al (peso del robot) * (coeficiente de fricción estática). Este es el par mínimo básico que su motor necesita para producir. Sin embargo, a medida que aumenta la velocidad de un motor, tiende a producir menos par siguiendo la ecuación Par * velocidad = Potencia entregada. Por lo tanto, tome su decisión basándose en la curva de velocidad de torque en lugar de en el torque de parada del motor. Una buena estimación para sería elegir un motor cuyo par de parada sea al menos 3-5 veces más de lo que se requiere.
En lo que respecta al código para controlar un motor de CC, intente buscar un control de motor de CC basado en PWM en la red y obtendrá su respuesta.

Para saber cuánto peso podrán manejar sus motores cómodamente, divida el diámetro de las ruedas con la información de torque proporcionada.
Puede usar motores de CC para la declaración de su problema. Todo lo que requiere es un poco de calibración. Si está utilizando una fuente de energía de corriente constante, averigüe cuánto tiempo requirió el bot para completar un movimiento giratorio completo. Haga algunas pruebas, tome el promedio de v y puede encontrar la velocidad angular sobre su eje Z o la altura.
Sea w la velocidad angular y t sea el tiempo necesario.
Entonces, wt = 2 * pi
Por lo tanto w = 2 * pi / t.
Ahora que tiene la velocidad angular, puede girar su bot a cualquier ángulo requerido.
Deje A ser el ángulo requerido.
Entonces,
A = wt o t = A / w
Por lo tanto, si deja que el bot gire durante t unidades de tiempo, puede lograr un giro total de radianes A. Para el ángulo en grados, haga el cálculo en consecuencia.
Puede que esta no sea la metodología más precisa a seguir, pero debería serlo para la robótica hobby.
Esto también le ahorrará el costo incurrido en el par LED_ldr.
Buena suerte !

Puede consultar el robot KUSAKU Human Action Tracer desde su tubo.
Este proyecto ha utilizado el software LabVIEW y myRIO (como controlador) en hardware.
El robot replica la acción tomando datos del giroscopio que se coloca a la mano del ser humano y los datos se transmiten al sistema a través de la conexión inalámbrica (supongo que es zigbee o xBee). Han utilizado servomotores en su proyecto. El proyecto está listo, pero no han subido el video.