Hola buenos días, me llamó Fernando y quiero exponeros mi proyecto y luego comentar mis dudas si es viable o no.
Estoy cursando un grado superior de automatización y robótica industrial. Cómo proyecto se me ha ocurrido construir un brazo robótico controlado por arduino. Bueno el caso es el siguiente. Este brazo quiero que esté automatizado con un PLC Siemens. El brazo va a tener una pcb donde tenga los controladores de los motores paso a paso y todo conectado a un Arduino mega. El proyecto, además de la construcción del brazo es que pueda jugar al 3 en raya. La programación del juego se hace en el PLC y ahora viene mi pregunta si es posible.
Voy a usar gbrl en Arduino y los movimientos que vaya a hacer el brazo serían g-codes. En el 3 en raya hay 9 posibles movimientos donde el brazo dejaría una ficha o algo parecido. Lo que quiero saber es si puedo guardar en el Arduino esos 9 posibles movimientos y activar cada posible movimiento con una entrada digital donde la señal vendría del PLC que es quien le dice en qué casilla tiene que dejar la ficha.
El tema es que en Arduino ando muy flojo, apenas rozamos en clase el tema. Antes de meterme en este proyecto me gustaría saber si es posible o no. Al final lo que estoy preguntando es si puedo guardar esos 9 movimientos y activar el que yo quiera a través de 9 entradas digitales controlado todo por el PLC.
Cualquier ayuda sería de gran ayuda!!!!!
Muchas gracias de antemano a todos!!!!!
Si me comentáis que no se puede o que va a ser muy complicado, hare uno pero con servomotores, más pequeño y menos complejo de programar....
Pienso que lo mas fácil es usar servos y para que te hagas una idea podría ser algo así:
4 servos implican 4 variables , por 10 posiciones, (una de reposo), 40 bytes de memoria que definidas como "PROGMEN" para almacenarlas en la "sram" cualquier placa arduino te vale.
10 pines de comunicación con la PLC + 4 para los servos son 14, ¿ Un mega para eso ?, un nano o un pro-mini te sirve y la programación lo mas fácil, 10 "if" de lectura a los pines de la PLC y las 4 escrituras a los pines de los servos con las variables de posición previamente asignadas.
Esto en líneas generales y como primera opinión, muy factible.
Moderador
Como vas a usar GRBL y subirás códigos G-Code entonces qué tiene de proyecto para este foro?
Movido a Hardware.
Tu brazo robótico debe plantearse desde la cantidad de grados de libertad que tienes.
Hablas de 9 grados de libertad? Y tienes la matemática que sustenta todo, porque al final pretendes hacer un TATETI.
Lo que no sabes de arduino te lo respondes asi. Pones en Google Arduino servo y ya tienes cientos de links.
Pones Arduino Servo algo_mas y refinas la busqueda. Veras que es muy fácil.
Voy a resumir que igual me he expresado mal y no se entiende lo que quiero decir. Tengo que realizar un proyecto por el grado superior de automatización y robótica y se me ocurrió imprimir en 3d un brazo robótico. Buscando por internet encontré un brazo creado por una persona llamada ángel que lo bautizó como brazo thor. Dicho brazo es un brazo de 6 grados de libertad movidos por 7 motores paso a paso más un servo para una pinza. Los controladores de los motores se integran en una tarjeta pcb diseñada por el autor de este brazo. Para su control ya tengo el grbl para descargar y un programa para moverlo que lo que hace es crear g-code que lo manda al brazo. El problema que tengo que este programa es solo para moverlo conectado directamente al ordenador y lo que yo pretendo es poder grabar en el Arduino varias secuencias de movimientos y a través de entradas digitales hacer una secuencia u otra, vamos que quiero saber si puedo guardar en el Arduino varias secuencias de movimientos y que haga en función de la señal digital que active ( a través de un PLC)
Ya para que podáis entender el proyecto es que quiero crear el juego de 3 en raya en el PLC que con eso no tengo problemas, el brazo quiero que sean los movimientos que haga el PLC, por eso tendría que configurar 9 movimientos que son los 9 espacios posibles para poner las fichas del 3 en raya.
Puede que sea la mejor solución, no complicarme tanto la vida. Si tienes unos minutos y buscas brazo thor, ese es el que quería montar. Igual el tema es que la programación que estoy planteando es con grbl que es como explica el autor del propio brazo pero nose igual es posible hacer una programación con arduino sin que sea gcode pero imagino que para cada movimiento tendría que hacer una programación muy larga....
pero ya te digo que pensaba que los motores paso a paso serían parecidos a los servos en tema programación y ya me estoy dando cuenta que son todo un mundo, y encima en este brazo son 7 mas el servo....
Estoy mirando bastante por internet y bueno puede que tenga una solución, se podría utilizar otro arduino que haga de puente entre el plc y el arduino del brazo? me explico, la idea es que el arduino que hace de puente sea el que envíe los gcodes a la placa arduino del brazo, en esta placa puente programar los gcodes necesarios y en función de lo que le mande el plc, este puente envíe el gcode que quiera. no se si es descabellado o puede ser una solución. por ejemplo un arduino nano.
Yo me olvidaba del gcode. Veamos... Por ejemplo:
La PLC pone un pin del arduino a 1, (una posicion que es conocida). Codigo:
if (digitalRead (posicion1)) {
servo_base.write (grados);
servo_brazo_1.write (grados);
servo_brazo_2.write (grados);
}
La Plc pone un pin para la pinza a 0, cerrar o 1 abrir. Codigo:
if (digitalRead (pinza)) {
servo_pinza.write (0);
}
else {
servo_pinza.write (180);
}
10 "if" como el primero + 1 como el segundo lo soporta en memoria cualquier placa arduino.
Si, claro que se puede.
La cantidad de secuencias dependerá de cuan largas sean (o sea cuanta memoria ocupe cada una).
Hola buenas a todos. Tengo que realizar este curso un proyecto y bueno mi idea es imprimir con 3d un brazo robótico de 5 grados de libertad con servomotores. El brazo estaría controlado por un arduino mega. además este brazo estar automatizado con un plc s7 1200. el problema que tengo es la comunicación entre plc y arduino. La idea es programar varias secuencias de movimientos, 9 en total. Entonces mi idea es hacer una comunicación modbus entre plc y arduino para que el plc le envíe un carácter o bit o lo que sea, que lo reciba el arduino y en función de lo que reciba, a través de un if en cada secuencia de movimiento que el brazo se mueva. La cosa es que si he visto información pero haciendo una comunicación donde es el arduino el que envía la información. Es posible hacer esta comunicación y si envió un carácter, el arduino reciba ese carácter?
Si, por supuesto que se puede, pero vas a tener que trabajar un poco, mira este hilo:
Moderador:
Que pasa con este tema del PLC S7 Siemens y Arduino. Van dos preguntando lo mismo. Y este hilo ya fue iniciado asi que esto es un doble posteo.
Quedas advertido @fertilo84 proxima sanción por doble posteo.
Movido a tu hilo original.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.