sábado, 12 de abril de 2014

Instalación de Octoprint sobre Raspberry Pi.

Servidor de impresión para impresoras 3D

Octoprint é un proxecto que permite implementar un servidor de impresión, con case todas as funcionalidades dos programas para manexar as impresoras 3D (como Cura, Printum, etc), de forma remota.



O tempo, é unha das variables que é máis importante a hora de imprimir as nosas pezas. E nese tempo precisamos dun equipo que controle a impresora durante ese período. Tamén é necesario realizar unha supervisión do proceso impresión. E o fin é preciso realizar o apagado da impresora, cama quente, etc.

Como non sempre é posible estar a espera de que o proceso de impresión 3D remate a solución é poder seguir, controlar, e accionar a impresora a distancia. Octoprint permite realizar o control e seguimento da impresora sen que estar directamente presente no lugar onde está situada. Permite cargar dende calquera equipo os arquivos que queremos imprimir, lanzar a orde de impresión, seguir a evolución da impresión (incluso visualmente mediante webcam), cambiar os parámetros (incluso durante a impresión) e por último apagar remotamente cama, ventiladores e incluso impresora.


Para obter unha imaxe de Raspibian co Octoprint instalado, podemos baixar a imaxe do seguinte servidor
. Unha vez xa temos o arquivo, o descomprimimos e copiamos a imaxe na tarxeta SD (podedes consultar o proceso aquí).


Unha vez preparada a imaxe e copiada na tarxeta, o arrincar hai que configurar as opcións do Raspibian.Isto se pode facer nada mais arrincar por primeira vez ou mediante o comando raspi-config.


Para poder executar Octoprint, precisase instalar os paquetes de python. Estos están especificados no documento de texto requirements.txt. Mediante a utilidade pip instalamos os paquetes, mediante o comando sudo pip install -r requirements.txt.


O arrinque do servidor se fai mediante o script run, situado no directorio de Octoprint. É necesario especificar a dirección ip e o porto por onde se van a atender as peticións. O comando quedaría asi:  ./run --host=0.0.0.0 --port=5000. Neste caso a dirección 0.0.0.0 especifica calquera interface.

E a imprimir!



Creando obxectos parametrizables en Openscad e outras funcións

Openscad permite a posibilidade de crear obxectos de distintas características utilizando unha única definición.
Para poder facer isto precisamos definir módulos (funcións) os cales se lle pasan os parámetros. Estes parámetros diferencian as características dos obxectos.
A definición dun módulo se realiza mediante a palabra clave module. Para exemplarizar isto imos crear unha estrela de oito puntas. En primeiro lugar creamos o módulo marco, que crea un cadrado hueco.
 
//Marco cadrado

module marco( ){

difference (){

cube([40, 40, 10], center= true);

cube([25, 25, 14], center= true);

}

}

A limitación que ten o código anterior é que o marco que crea o módulo sempre ten a mesma dimensión 40 por 40 mm. Podemos definir parámetros para esa función, de maneira que dependendo do valor que lle pasemos na chamada a esa función, podamos variar as características do noso marco. No exemplo imos definir dous parámetros un se vai chamar dimensión é se refire o tamaño externo do cubo e outro altura que define a altura do marco. 

//Marco cadrado con parámetros

module marco(dimension, altura ){

difference (){

cube([dimension, dimension, altura], center= true);

cube([25, 25, 14], center= true);

}

}
Para utilizar este módulo temos que chamalo, como unha función máis do Openscad, especificando entre os parentesis os parámetros.

marco (40, 10); 

Se poden chamar os módulos dende outros módulos permitindo a creación de figuras máis complexas a partir de figuras máis simples.

//Estrela de oito puntas a partir de dous marcos rotados
module estrela (dimension, altura){
              marco (dimension, altura);
  rotate ([0,0,45])
  marco (dimension, altura);

 

Se isto se garda nun arquivo chamado estrela.scad se pode utilizar en calquera outro deseño importando o arquivo, e chamando o módulo dentro do código.
Utilizando a instrución include se pode facer referencia o arquivo onde se encontra a nosa estrela.

include <estrela.scad>

Para utilizar a función só se ten que facer a chamada, da mesma maneira que si estivera codificado no mesmo ficheiro.