Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tutorials:arcoslabcnc [2019/05/04 14:12]
aalvarado
tutorials:arcoslabcnc [2019/11/20 13:03] (current)
mmadrigalq
Line 1: Line 1:
-====== ARCOS-Lab CNC: La máquina ​CNC del ARCOS-Lab ======+====== ARCOS-Lab CNC: La fresadora ​CNC del ARCOS-Lab ======
  
  
Line 12: Line 12:
   *  Revisar que ningún cable este recostado o aplastado por la máquina.   *  Revisar que ningún cable este recostado o aplastado por la máquina.
   *  Percatarse que ningún metal este en contacto con la punta cortante de la máquina.   *  Percatarse que ningún metal este en contacto con la punta cortante de la máquina.
-  *  Revisar que todas las diferentes fuentes están conectadas a la regleta principal.+  *  Revisar que todas las diferentes fuentes están conectadas a la regleta principal. ​(Adaptador USB RPI, Cable para los steppers, Cable para la fresadora)
   *  Tener instalado previamente yarp, en la PC    *  Tener instalado previamente yarp, en la PC 
   *  Tener el repositorio de los programas de uso de la CNC   *  Tener el repositorio de los programas de uso de la CNC
Line 23: Line 23:
   * Esperar 30 segundos y probar la parada de emergencia apagando los motores.   * Esperar 30 segundos y probar la parada de emergencia apagando los motores.
   * Volvemos a encender los motores, y esperamos 30 segundos para que el RPI se conecte a la red del lugar de trabajo.   * Volvemos a encender los motores, y esperamos 30 segundos para que el RPI se conecte a la red del lugar de trabajo.
-  * Ahora nos ubicamos en nuestra computadoray por medio de la línea de comandos, nos conectamos con el IP 192.168.16.108 utilizando el siguiente comando:+  * Encendemos la laptop reservada para uso de la CNC (HP i5) y nos logeamos con el usuario cncclave cnc. 
 +  * Contectamos el cable ethernet de la CNC. 
 +  * Por medio de la línea de comandos, nos conectamos con el IP 192.168.10.20 utilizando el siguiente comando:
  
-  ~$ ssh pi@192.168.16.108  +  ~$ ssh pi@192.168.10.20 
- +   
-Accedemos con la siguiente contraseña: ​FQSswyvGQ20So ​+Accedemos con la siguiente contraseña: ​pi 
  
   * Luego de haber logrado con ssh ejecutamos el siguiente comando:   * Luego de haber logrado con ssh ejecutamos el siguiente comando:
  
-  ~$yarpserver+  ~$ yarpserver
   ​   ​
  Esto inicializa un servidor de yarp en la CNC.   Esto inicializa un servidor de yarp en la CNC. 
  
-   * En otra línea de comandos, ​ utilizando el mismo servicio de ssh, nos dirigimos remotamente a la dirección:+   * En otra línea de comandos, utilizando el mismo servicio de ssh, nos dirigimos remotamente a la dirección:
  
    ~$ cd programs/​arcoslabcnc/​software    ~$ cd programs/​arcoslabcnc/​software
Line 43: Line 45:
   ~$ ./​arcoslabcnc-server.py   ~$ ./​arcoslabcnc-server.py
   ​   ​
-Ahora ya en la PC, digitamos el siguiente comando para utilizar el servidor de yarp (que corre en la RPI)(esto solo debe ejecutarse una vez en la PC de cada usuario) :+En una nueva terminal, pero ahora ya PC, digitamos el siguiente comando para utilizar el servidor de yarp (que corre en la RPI)(esto solo debe ejecutarse una vez en la PC de cada usuario) :
   ​   ​
-  ~$ yarp conf 192.168.16.108 10000+  ~$ yarp conf 192.168.10.20 10000
   ​   ​
   ​   ​
-El siguiente comando se puede ejecutar para obtener la lista completa de puertos disponibles:​ +Ahora corremos el siguiente comando, que se puede ejecutar para obtener la lista completa de puertos disponibles:​
  
   ~$ yarp name list.   ~$ yarp name list.
Line 56: Line 57:
       * /​cnc/​cmd:​i ​       (puerto de entrada)       * /​cnc/​cmd:​i ​       (puerto de entrada)
       * /​cnc/​pos:​o ​       (puerto de salida)       * /​cnc/​pos:​o ​       (puerto de salida)
-      * /​cnc/​status:​o ​     (puerto de salida) +      * /​cnc/​status:​o ​    ​(puerto de salida) 
-   * Podemos ​ observar la información de los puertos de salida si abrimos una consola y así  obtener información fundamental de la máquina, si introducimos el siguiente comando y luego el puerto que queremos utilizar:+   * Podemos ​ observar la información de los puertos de salida si abrimos una consola y así  obtener información fundamental de la CNC, si introducimos el siguiente comando y luego el puerto que queremos utilizar:
  
-  ~$yarp read puerto ​"​deseado de salida"​+  ~$ yarp read ... "puerto ​deseado de salida" ​(ya sea /cnc/pos:o ó /​cnc/​status:​o)
    
-   * Podemos ​enviar información ​a la máquina ​por medio del puerto de entrada, ejecutando el siguiente comando en una nueva consola: +   * Podemos ​darle a la PC la capacidad de enviarle comandos a la CNC por medio del puerto de entrada, ejecutando el siguiente comando en una nueva consola: 
-   ​ + 
-  ~$yaro write  /cnc/cmd:i+  ~$ rlwrap yarp write  ​... /cnc/cmd:i
   ​   ​
 Un comando muy importante para este puerto de entrada es “status”. Lo cual nos responde en el puerto de salida un “0” si la máquina esta desocupada y un “1” si la máquina está trabajando. Un comando muy importante para este puerto de entrada es “status”. Lo cual nos responde en el puerto de salida un “0” si la máquina esta desocupada y un “1” si la máquina está trabajando.
Line 69: Line 70:
      * /​cnc/​pos:​o ​      * /​cnc/​pos:​o ​
      * /​nc/​status:​o ​      * /​nc/​status:​o ​
- Otro comando muy útil es “cur\_pos” que nos responde en el puerto de posición ​ los valores.“0.0 0.0 0.0 0.0 0.0 0.0” donde nos encontramos en el origen ​ de los tres ejes y en donde los tres primeros números son los ejes “X”, “Y” y “Z” en metros y los tres números siguientes son los mismos ejes pero en pulgadas.  ​+ Otro comando muy útil es “cur\_pos” que nos responde en el puerto de posición ​ los valores.“0.0 0.0 0.0 0.0 0.0 0.0” donde nos encontramos en el origen ​ de los tres ejes y en donde los tres primeros números son los ejes “X”, “Y” y “Z” en metros y los tres números siguientes son los mismos ejes pero en pulgadas ​(NOTA: es común que dé valores muy bajos en vez de cero, del orden de los attómetros).  ​
  
 === Uso de la máquina === === Uso de la máquina ===
-   * En el repositorio previamente descargado. Ahora escogemos el método con que vamos a  manipular la máquina. Para efectos de este manual vamos a utilizar el programa: “jogging\_dualshock.py”,​ el cual nos permite mover libremente ​ la máquina, utilizando un joystick, particularmente se utilizó ​ un joystick de PlayStation 2. +== Utilizando el joystick (No funciona en este momento) == 
-   * Ejecutamos el programa, luego de conectar el joystick, lo que nos va desplegar en la consola los  comandos cuando interactuamos con el dispositivo. Se puede mencionar que el programa en uso solo va funcionar con comandos de velocidad y no de posición. + 
-   * Hasta el momento los comandos del joystick, no se envían al servidor en la RPI, esto por seguridad. Para poder enviarlos, se tiene que presionar el botón habilitador,​ para nosotros “R1”. Al presionarlo al mismo tiempo que activamos el joystick, vemos en la consola del servidor como se despliegan los comandos. +   * En el repositorio previamente descargado. Ahora escogemos el método con que vamos a  manipular la máquina. Para efectos de este manual vamos a utilizar el programa: “jogging\_dualshock.py”,​ el cual nos permite mover libremente ​ la máquina, utilizando un joystick, particularmente se utilizó ​ un joystick de PlayStation 2. (NOTA: ESTO NO FUNCIONA EN ESTE MOMENTO) 
-   * En este punto es de mucho cuidado, ya que si movemos el control bruscamente y la máquina está en un punto de  rozamiento, podemos hacer grandes daños. ​ En este punto luego de percatarse que no hay ningún comando ejecutándose en el servidor, encendemos los motores, y movemos con el joystick muy despacio el eje z hacia la parte superior para asegurarnos que no vamos a tener ninguna colisión. +   * Ejecutamos el programa, luego de conectar el joystick, lo que nos va desplegar en la consola los  comandos cuando interactuamos con el dispositivo. Se puede mencionar que el programa en uso solo va funcionar con comandos de velocidad y no de posición. ​(NOTA: ESTO NO FUNCIONA EN ESTE MOMENTO) 
-   * Ya podemos escoger la fresa con la que vamos a trabajar y colocarla en el rotor. Encendemos el rotor y podemos trabajar.+   * Hasta el momento los comandos del joystick, no se envían al servidor en la RPI, esto por seguridad. Para poder enviarlos, se tiene que presionar el botón habilitador,​ para nosotros “R1”. Al presionarlo al mismo tiempo que activamos el joystick, vemos en la consola del servidor como se despliegan los comandos. ​(NOTA: ESTO NO FUNCIONA EN ESTE MOMENTO) 
 +   * En este punto es de mucho cuidado, ya que si movemos el control bruscamente y la máquina está en un punto de  rozamiento, podemos hacer grandes daños. ​ En este punto luego de percatarse que no hay ningún comando ejecutándose en el servidor, encendemos los motores, y movemos con el joystick muy despacio el eje z hacia la parte superior para asegurarnos que no vamos a tener ninguna colisión. ​(NOTA: ESTO NO FUNCIONA EN ESTE MOMENTO) 
 +   * Ya podemos escoger la fresa con la que vamos a trabajar y colocarla en el rotor. Encendemos el rotor y podemos trabajar. ​(NOTA: ESTO NO FUNCIONA EN ESTE MOMENTO) 
 + 
 + 
 + 
 +== Realizando movimientos simples (líneas) == 
 + 
 +Los movimientos simples de la CNC se corren de forma individual, cada uno como un comando independiente. Para accederlos nos dirigimos a: 
 + 
 +  ~$ cd /​local/​scr/​arcoslabcnc/​software 
 +   
 +Un ejemplo de la sintaxis es el siguiente:​ 
 + 
 +  ~$ ./​move_line.py ​ 0 0.2 0 0.0016 mm rel 
 + 
 +  * Los primeros tres números corresponden la nueva posición en X, Y, Z, respectivamente. 
 +  * El cuarto valor es la velocidad. 
 +  * El quinto indica que las únidades son siempre en milímetros. 
 +  * El último parámetro indica si la posición deseada es relativa a la posición actual o absoluta (rel o abs). Se recomienda siempre trabajar con posiciones relativas. 
 +  * La velocidad recomendada para desplazamientos en el aire es de 0.16. Cuando se está maquinando materiales suaves, como aluminio, se puede utilizar 0.0016. En el caso del acero 0.00016. Siempre teniendo el cuidado de cambiar la velocidad para evitar altas vibraciones. 
 + 
 + 
 +Para poder ajustar la velocidad en caliente, se puede utilizar la siguiente función: 
 + 
 +  ~$ ./​kbd_speed.py 10 
 + 
 +Que se encuentra en la misma dirección del move_line. En esta terminal puedo bajar o subir la velocidad en pasos de relativos del 10% de la velocidad actual, con las teclas de arriba y abajo.  
 === Apagado de la máquina. === === Apagado de la máquina. ===
    * Presionamos el switch de encendido de los motores. Con ello ya quedan libres y podemos moverlos, hacia una posición inicial ​ “home”.    * Presionamos el switch de encendido de los motores. Con ello ya quedan libres y podemos moverlos, hacia una posición inicial ​ “home”.
Line 82: Line 111:
    * Luego con el comando logout cerramos sesión en el RPI,  y terminamos apagando la regleta que se encuentra junto a la máquina,ya que esta se encarga de apagar todos los dispositivos restantes.    * Luego con el comando logout cerramos sesión en el RPI,  y terminamos apagando la regleta que se encuentra junto a la máquina,ya que esta se encarga de apagar todos los dispositivos restantes.
    * Realizar la limpieza de la máquina, usando la escobilla para recoger la viruta del proceso.    * Realizar la limpieza de la máquina, usando la escobilla para recoger la viruta del proceso.
 +
 +
 +
 +
 ===== Fuentes útiles de información ===== ===== Fuentes útiles de información =====
  
  • tutorials/arcoslabcnc.1556997145.txt.gz
  • Last modified: 2019/05/04 14:12
  • by aalvarado