-
Notifications
You must be signed in to change notification settings - Fork 0
Bitácora Grupal 2
Estas dos últimas semanas hemos avanzado cada uno en nuestras respectivas tareas propuestas.
- Armado del brazo
- Armado y entendimiento del circuito eléctrico entre motores y Arduino UNO
- Manejo básico de Arduino IDE
- Programación del Arduino UNO para girar motores mediante potenciómetros
(Individual):
- Programación en python de plataforma de comunicación entre python y arduino para girar los motores mediante inputs en tiempo real
El armado del brazo se logró exitosamente. Hubo algunos problemas con que entraran algunas piezas en los orificios de las piezas, como es común con piezas impresas en 3D.
Para el circuito de arduino y motores, se hizo sencillo armarlo con los cables y breadboard. Este fue programado en el IDE con ejemplos simples para entender lo básico. Los motores y sus drives, potenciómetros y resto del circuito funcionaron con normalidad.
Luego se efectuó la tarea más compleja de utilizar los potenciómetros para manejar la velocidad de los motores. Para esto, se utilizó la librería Stepper de arduino. Sin embargo, en uno de nuestros motores el código funcionaba torpemente (giraba de un lado a otro cuando no tenía que hacerlo, se trababa) sin razón aparente, mientras que en los demás funcionó bien. Por esto, se decidió hacer código más directo que manipulara cada pin del motor y hacerlo girar por pasos. Este fue adaptado para girar los motores en base a las RPM deseadas.
En cuanto al código de comunicación entre python y arduino, se llegó a un código que pudiera girar adecuadamente los motores on inputs desde python. Después de mucho batallar con el código descargado de jdreyer.com (http://jdreyer.com/projects/Arduino/StepperMotor.php) (tanto tratando de entenderlo como de que funcionara), se encontró que la mejor solución fue aprender a utilizar las funciones Serial.read() y Serial.write() de arduino dadas las funciones utilizadas anteriormente para girar los motores con potenciómetros, con esto se programaron nuevas funciones en python utilizando PySerial, con tal satisfacer lo requerido. Hasta ahora el código recibe el número de pasos a hacer en cada motor, el cual es interpretado y enviado al arduino de manera adecuada para hacer girar (secuencialmente) cada motor con los pasos respectivos.
Para la próxima semana, la idea es juntar lo hecho individualmente por cad uno para tener una interacción fluida entre cinemática inversa -> red neuronal -> Python -> Arduino -> motores del brazo.