Reconstrucción de Robot CS-113

Hola a tod@s:

Soy nuevo en el mundo de la electrónica, nos han propuesto un proyecto de reconstrucción de un robot de hace 31 años, CS-113, este ejemplar ha estado guardando polvo en varios centros educativos hasta que la electrónica ha sido mas asequible y atractiva de la mano de arduino.

http://mimosa.pntic.mec.es/~flarrosa/robot.pdf

Nuestros profesores han intentado moverlo de muchas maneras y al parecer no tiene suficiente memoria para implemetarlo en una línea de producción a escala.

Su propuesta es: retirar la electrónica existente y adaptarlo a arduino, nos facilitan todo tipo de componentes en aras de que futuros alumnos puedan mejorar el proyecto y así promover la robótica en el centro.

Dicho esto, los profesores solo nos aportan ayuda económica (ahora que arduino es asequible para todos XD), y nosotros de momento estamos haciendo una recopilación de información con la finalidad de poder mover todos sus motores, hasta la fecha hemos visto brazos robóticos de 2 a 5 ejes con servomotores y no con motores paso a paso como es nuestro modelo.

Nuestro conocimiento del lenguaje que se usa en arduino es prácticamente nulo, pero se hará lo posible para aprenderlo y entenderlo en su totalidad (de ello que aprobemos o no jejejeje), estoy abierto a todo consejo que se exponga, aqui os dejo un par de fotos.

Estructura: |500x375

Base: |500x375

Gracias de ante mano.

Por lo visto ya dispone de un microcontrolador o microprocesador, y toda una interfaz serial. La diferencia es que ésta debe ser RS232 como se usaba antes.

Asi que revisen la electronica y busquen si dispone de un chip MAX232 o otra cosa similar junto a un conector DB9 o DB25.

La propuesta es introducir arduino en el temario de robótica de alguna manera, ya que han comprado kits y componentes por separado, he estado investigando los Shields y el máximo de componentes que he visto a controlar son 4 motores (para CNC, CNC Shields), no se si se pueden interconectar mas placas con shields de modo que una sea Master y el resto Slave, no como podría empezar este proyecto.

Gracias de ante mano

Según la documentación la interfaz no es serie (RS232) sino que es paralelo (CENTRONICS) https://es.m.wikipedia.org/wiki/Centronics, la de las impresoras de antaño https://es.m.wikipedia.org/wiki/IEEE_1284.

Con Arduino yo haría una interfaz de serie a paralelo, para mandar los comandos con el “monitor” del IDE de arduino.

También se podría usar el Arduino para mandar los comandos, mediante la implementación de la interfaz paralelo, controlado por pulsadores, joysticks o incluso por Bluetooth.

Si aún funciona, lo que nunca haría es “desmantelar” el robot. Sería un sacrilegio.

Según la documentación la interfaz no es serie (RS232) sino que es paralelo (CENTRONICS)

Tienes razón IgnoranteAbsoluto, no leí RUTINA DE PROGRAMACIÓN CENTRONIC y como las fotos recién las edité yo porque el autor, hizo caso omiso al privado que le envié, recién me percato de ambas cosas.

Hola a todos de nuevo.

Tengo estos motores:

Stepping Motor (B) C-S113 Coil: 70 Ohms Gratio: 1/175 Volt: 12 Phase 4 DEG 15

Stepping Motor (A) C-S113 Coil: 10 Ohms Gratio: 1/25 75 Volt: 12 Phase 4 DEG 15

Lo de (A) (B) nos desconcierta y por eso no sabemos que controladores usar, también en la placa de características situada detrás pone. Power: DC 12-5A

Gracias de ante mano, saludos.

Pero la idea es eliminar la placa controladora que existe y hacer todo con arduino?

Exacto, se retirará la placa controladora por si en el futuro hay entre los alumnos alguien capaz y con tiempo para aprovecharla, en el centro se han adquirido placas arduino y las quieren aprovechar, ya que no tienen la consola, quieren implementar arduino en sus asignaturas.

Bueno con toda la electrónica que vi, no me extrañaria que eso consuma 2A como mínimo y si quiero ser conservador los motores 2A cada uno A riesgo de equivocarme comencemos progando con un módulo L298 o bien conseguir otro que permita mayor corriente. Y probar con el primer motor que dice COIL 70 ohms ya que el segundo COIL 10 ohms obviamente tomará mas corriente.

Para mi es un error separar el robot de la placa inferior. Pensar que ese robot es muy básico y permite programación por puerto paralelo.

Buscando 1 minuto encontré esto http://platea.pntic.mec.es/vgonzale/cyr_0204/cyr_01/robotica/cs113.htm

Pone como programarlo desde cualquier ordenador un poco antiguo que tenga puerto paralelo.

Si seguís queriendo usar arduino, sustituir el ordenador por el arduino y mandarle los comandos con el arduino. Incluso podéis usar arduino como interfaces USB robot solo tenéis que buscar una librería lpt o algo similar.

El hardware lo tenéis para que romperse la cabeza si ese brazo es tan básico que la forma de moverlo es diciéndole directamente la posición en pasos en la que tiene que estar cada eje. Podríais meter un algoritmo de bresenham 6 ejes y controlar linealmente el robot . mejor esplicado decirle vete al punto xyz y ángulo de la pinza

Repito no lo desguaceis vas a estar 6 meses mínimo buscando hardware antes de poder moverlo y descubriréis que un arduino uno se quedo corto para añadir cualquier otra entrada o salida.

Un ejemplo básico en robótica buscar objetos con un sensor con arduino sería sencillo mandarías al robot ir incrementando de paso en paso hasta en ontrar la pieza luego podrías hacer con ese punto lo que quisieras

Buenas noches a tod@s: Esta mañana hemos conseguido mover varios motores con el mismo software uno por uno, estamos a esperas de que nos envíen los drivers L298N, tenía uno por casa de un kit de un vehículo y con ello hemos probado.

juand91: El hardware lo tenéis para que romperse la cabeza si ese brazo es tan básico que la forma de moverlo es diciéndole directamente la posición en pasos en la que tiene que estar cada eje. Podríais meter un algoritmo de bresenham 6 ejes y controlar linealmente el robot . mejor esplicado decirle vete al punto xyz y ángulo de la pinza

Repito no lo desguaceis vas a estar 6 meses mínimo buscando hardware antes de poder moverlo y descubriréis que un arduino uno se quedo corto para añadir cualquier otra entrada o salida.

Un ejemplo básico en robótica buscar objetos con un sensor con arduino sería sencillo mandarías al robot ir incrementando de paso en paso hasta en ontrar la pieza luego podrías hacer con ese punto lo que quisieras

juand91 lo que has comentado me parece muy interesante, me gustaría ver algún ejemplo para poder probarlo.

Gracias un saludo.

Tal vez debería aclarar que fin educativo se busca: ¿aprender programación de Arduino, electrónica o robótica? Si es robótica me parecería interesante hacer un "traductor" de gcode con el Arduino, dejando la electrónica intacta. De esa manera se podrían utilizar GUIs de Gcode. El gcode se utiliza aun en muchas maquinas herramientas industriales.

https://sites.google.com/site/proyectosroboticos/Descargar-Simuladores

En esa pagina tenéis desde como saber que ángulos le corresponden a los motores para situar el robot en un punto definido XYZ Aparte tenéis el algoritmo de bresenham que sirve para conocer las coordenadas intermedias de una recta.

Vayamos por partes. Primero hay que saber si la electrónica esta viva. Para eso sirve los modos de test(en el enlace de mi primer mensaje) Segundo crear un pequeño programa que lea puerto serial (USB) y lo convierta a Paralelo con eso podrás mandar mensajes al robot y comprobar si usa coordenadas absolutas o relativas(vete al punto 10 o muevete 10 pasos a la izquierda)

En este momento era bueno decidir como vais a expresar los puntos: Ángulos de los motores o xyz? Ángulos seria lo mas rapido, coordenadas implicaría que arduino tuviera que calcular la cinemática inversa para mandarle al robot los angulos.

Lo de buscar piezas con un detector vas a descubrir que esta tirado es un mero while en arduino. Mientras no tengas detección avanza 1 paso o incrementa la posición en x 1mm . una vez la tengas guardas la posición.

Seria interesante que tuvieseis algo de conocimiento de algún lenguaje de robot pues lo que describo es típico y es una instruccion nativa de los robots

Tú dices hasta que punto tiene que ir, dices que sensor quieres usar, si buscas un flanco positivo o negativo del sensor y si quieres parar al llegar al punto En abb esa instruccion es searchL

ayuda abb sobre esa instrucción podéis buscar mas instrucciones

Incluso podéis fabricar una interface o consola para mover el robot o programarlo sin pc

Hola a tod@s:

Muchisimas gracias a todos por la información que habeis aportado, cuando acabemos el proyecto (tengamos lo que tengamos) lo subiremos para que veais los resultados finales de este.

juand91 la electronica del Robot original no se va a tocar, hemos pedido los drivers L298N para mover todos los motores desde una placa Arduino, nos hemos dado cuenta de que no tenemos tiempo para aprender a programar, un compañero de clase ajeno al proyecto con conocimientos de Lenguaje C nos ha propuesto mover los motores mediantes Joysticks, estamos buscando Sketchs de proyectos similares para copiarlos y modificar los parámetros (nº de pines etc...) y ver si funciona o no, hasta hoy sólo hemos movido motor por motor con un solo driver, hemos programado los motores en diferentes pines pero de momento solo le damos al Joystick y se mueve el número de pulsos que se han declarado, la idea es usar los Joysticks y que se muevan hasta que dejemos de presionar la dirección del Joystick, podemos usar 3 joysticks para comandar un motor por cada eje.

Hoy he recibido 3 motores Nema 17 que he comprado por mi cuenta para hacer prácticas en casa, estoy esperando los drivers DRV8825 para mover los 3 motores a la vez, si encuentro Sketchs para copiar el programa y ver como se mueven los motores, los implantaré en el Robot de manera que funciona con Joysticks, y en un futuro proximo aprender a programar y poder hacer mas proyectos de la misma índole.

A lo referente a PeterKantTropus, la finalidad es hacer mover el robot a toda costa en el menor tiempo posible, el ciclo es de Mecatrónica Industrial y va enfocado a la Gestión y Mantenimiento de entornos industriales, pero al tener ese Robot ahí, nos han propuesto que lo movamos, resumiendo, no tenemos conocimientos de Electrónica, Robótica y tampoco lenguajes de programación, como mucho sabemos programar PLC´s y pantallas táctiles Omron y lo poco que sabemos de Arduino es de tutoriales básicos que vienen en los kits, motaje, copiar pegar el sketch compilarlo y subirlo a la placa arduino y modificar parametros como delays y poco más. Pero no nos queremos quedar ahí estancados, la róbotica es un mundo fáscinante en la que quiero invertirle todas las horas necesarias para hacer proyectos propios; cuando leo cosas como: "hacer un traductor de GCODE para Arduino", "hacer un pequeño programa para que lea el puerto serial (USB) y lo convierta a puerto paralelo" me doy cuenta de que este mundo es muy extenso como para abarcarlo en tan solo unos meses.

Gracias a tod@s de ante mano y bendita sea su paciencia.

mira cuando digo que un programa es pequeño me refiero a que son 10 lineas de loop y 30 en total.
el conversor usb–>lpt lo encontre buscando arduino lpt write en imagenes es el segundo resultado
codigo
web donde aparece como conectarlo y el enlace al codigo

ahora lo que quereis es esto:

void setup()
{

}

void loop()
{

  // motor 0--> ad0
  int val= map( analogRead(0),0,1023,-vel0,vel0);

  if (val>muerta0){   
    stepper0.setSpeed(val);
    stepper0.step(1);
  }
  else if (val<-muerta0){
    stepper0.setSpeed(abs(val));
    stepper0.step(-1);
  }
  else{
    stepper0.setSpeed(0);
  }

  // motor 1-->ad1

val= map( analogRead(1),0,1023,-vel0,vel0);

  if (val>muerta1){   
    stepper1.setSpeed(val);
    stepper1.step(1);
  }
  else if (val<-muerta1){
    stepper1.setSpeed(abs(val));
    stepper1.step(-1);
  }
  else{
    stepper1.setSpeed(0);
  }

  // motor 2-->ad2

val= map( analogRead(2),0,1023,-vel0,vel0);

  if (val>muerta2){   
    stepper2.setSpeed(val);
    stepper2.step(1);
  }
  else if (val<-muerta2){
    stepper2.setSpeed(abs(val));
    stepper2.step(-1);
  }
  else{
    stepper2.setSpeed(0);
  }
}

para que os hagais una idea la libreria stepper.h es nativa de arduino y viene en los ejemplos del propio ide; esplicacion de la libreria

por limitaciones en el numero de pines no es posible hacer todo el control con un arduino uno a no ser usar shield via i2c pero lo mas rapido es irse a un mega o dos arduino uno, creo que no tendreis problema en añadir los otros motores.

posdata: quiero ver ese cacharro moverse para la semana. estoy aqui para cualquier duda.

quedaria mucho mas completa con la libreria accelstepper pero no se porque al proteus se le atraganta
si tengo algo de tiempo hago una cosita un poco mas chula pero necesito saber si vais a usar un arduino uno, un mega y los drivers que vais a usar para el robot pues cambia la cabecera donde se define los pines
ayuda sobre los pines

Hola a todos

Nosotros también nos hemos embarcado en un proyecto de "resurrección" de este brazo robótico cs-113. No sé si lo estamos haciendo de la mejor manera posible, pero si os interesa os dejo el enlace al blog donde voy subiendo mis avances:

https://robozzz.blogspot.com/

Espero que os pueda servir.

Un saludo

Buen aporte @juanpfps!