Arduino Mega proyecto avanzado

Hola a todos, soy nuevo con arduino pero como ya se programar me ha sido super fácil, tengo un proyecto, se trata de un carro que implementa sensores ultrasonido para detectar obstáculos y esquivarlos para evitar choques. Cuenta con motores de corriente continua motores DC de 6voltios cada uno para la movilidad del chasis, cuenta con una rueda loca en cada esquina delantera , o sea es 2WD 2W, y obvio tracción solo en las ruedas traseras (tracción trasera). Cuenta con puente H L298N para controlar los motores impulsores del auto, y otros componentes, y le implementa un brazo robótico encima de si mismo, o sea encima del auto un brazo robótico, tipo antropomorfico. Capaz de agarrar objetos y moverlo de lugar sin q el auto pierda estabilidad. El brazo agarra los objetos de un pequeño remolque ligero, y los coloca a medida que el auto va parando con las posibles amenazas. Todo el mecanismo es controlado por una placa Arduino Mega 2560 REV3. El problema es q para el brazo robótico implementado uso solo dos servomotores, y el resto motores de corriente directa de 6v pero mas dedicados a realizar fuerzas, yo los servos los controlo con la libreria servo, pero no conozco ninguna para mover de iwal forma los motores dc, por eso yo los muevo por tiempos y no por ángulos, es decir, cambio e intercambio la polaridad del motor, por un tiempo específico calculando los angulos q gira cada uno por milisegundos. Y así fue como controle los motores dc del brazo, pero me pregunto si conocen otro método, o si el mio es mas facil.

Si hubieras puesto fotos, esquemas y código el post estaría mejor, así como lo has hecho asustas a cualquiera!!!.

Dejando de lado la presentación, y tratando el tema de motores. Creo que la manera de controlar los motores en este caso es la mejor. ¿Cómo puedes saber en que posición está el motor? De ninguna manera si no añades más electrónica. Por ejemplo, si ese motor tuviera un encoder, podrías saber cuanto se ha movido.

También podrías usar mas servos o motores paso a paso.

No soy un experto… pero diria que con un motor paso a paso en vez de un motor dc podras calcular todo mejor y mas exactamente. ¿Te sirve?

Bueno, yo lo pongo así y me funciona,
Verás, con un puente H L298N puedes controlar los motores de igual forma que para los dc de las ruedas, bueno si le intercambias la polaridad, o sea, pones el positivo en un lado y el negativo en otro obvio, si le das electricidad el motor gira hacia un sentido, pero si inviertes la polaridad, es decir el positivo en el negativo y viceversa. El motor gira al lado contrario, lo q hago es sin necesidad de librerías solo con el puente H le intercambio la polaridad, haciendo q la placa arduino invierta la polaridad mediante programación. Y le doy una potencia baja, para q no se fuerce y como es un brazo robótico es mejor q valla lento, y se puede ajustar 100% a las necesidades, y se sabe donde está porq tu lo estas programando, además puedes calcular los angulos q se mueve por segundo q es proporcional a la velocidad, o la intensidad del motor. Y con eso obtienes cada posición. No obstante es casi en la mayoria usado para movimientos específicos en la industria. Y obvio se le puede poner modo online para q el usuario introduzca unos movimientos q se guardan en memoria y luego el robot los ejecuta secuencialmente.

La manera de controlar un motor DC es como te ha dicho @victorjam, no por tiempos.
Que pasa si aumenta el torque, que ocurre con el desplazamiento angular, pues cambia, y que pasa con tu velocidad constante puese cambia tambien porque hay un frenado. Entonces por tiempo no es la manera de controlar un motor DC. Puede ser una forma aproximada pero para nada precisa.
Es un problema de control Clásico, Motor-controlador+enconder para saber su posición angular.

A la hora de usar un servo motor para un brazo robótico industrial como este

Brazos-roboticos-517-g

Se usa una placa arduino mega , o se usa otra placa? Supongo que la placa tenga un motor escudo también, perdonen la pregunta pero es duda que tengo.

Gracias!!...

Hola @mp1990a3 . Por lo que comentas, y tratándose de un brazo robótico industrial, no te recomendaría en absoluto hacerlo de la forma en la que lo estás haciendo. Esos motores DC llevan siempre asociados unos encoders o controladoras que regulan tu sistema; en función del nivel en que lo hagas, pueden resultar bastante caros. Por otra parte, te ofrecen la estabilidad que necesita tu proyecto. En caso de que todo vaya bien, no habría problema más allá de la imprecisión que tendría tu sistema, pero como comenta @Surbyte, cualquier cambio en el torque de uno de los motores, echaría por tierra todo el estado dinámico (las constantes de movimiento) de tu robot, y este reaccionará de forma totalmente inesperada. De echo, si te pilla cerca, puede ser peligroso.

He visto controlar brazos de ese tipo con Raspberry Pi, asique me imagino que Arduino puede con ello perfectamente, pero ya te digo, necesitas un encoder.

Muchas gracias !!!

Por favor contínua con el tema en este hilo, no crees uno nuevo.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.