Mostrando entradas con la etiqueta robótica. Mostrar todas las entradas
Mostrando entradas con la etiqueta robótica. Mostrar todas las entradas

lunes, 2 de marzo de 2015

Conexións remotas a Raspberry Pi


Usar a Raspberry Pi sen teclado e pantalla


Conectarse mediante SSH


Para traballar coa Raspberry Pi, como en calquera outro equipo, se pode acceder remotamente a ela. No caso da Raspberry, non é necesario tela conectada nunha lan, con portos abertos redireccionados, co firewall aberto ou conectado nunha DMZ. Xa que co seu pequeno tamaño se pode levar no peto e conectala o noso ordenador a través do porto ethernet ou con algo de hardware a través do USB.  Tamén é posible conectala ao conmutador da nosa lan.

 Se pode usar a Raspberry Pi sin conectala en unha pantalla e teclado, para executar un programa ou script. Isto é posible usando "Putty" en windows ou a consola de linux, por medio de SSH para acceder al terminal da Raspberry PI.

SSH (Secure Shell) é un protocolo de rede usado para transferir datos nun sentido e outro, para executar comandos remotamente en outra máquina, a través da rede utilizando un enlace serie.

Independentemente da conexión usada (seleccionada coa IP ou porto serie), Putty ou un programa similar pode usase para conectarse a Raspberry Pi e executar a maioría dos programas que normalmente se poden executar co terminal.

Para activar (ou desactivar) o servidor SSH pódese acceder o programa de configuración da Raspberry (tecleando na consola "
sudo raspi-config”) e seleccionar SSH no menú (pode estar activada nalgunhas distros por defecto).

Entón se pode introducir a dirección Ip da túa Raspberry Pi (si te conectas a través da rede), o cal ti podes coñecer tecleando
“hostname -I”.

Unha vez configurado o servidor de SSH, e previamente configurada a rede se pode acceder mediante unha consola do equipo que utilicemos como cliente (ou putty en windows) da seguinte forma:


 manuel@portatil:~$ ssh ken@10.0.5.150
 
O que abrira unha sesión remota na Raspberry que nos permitirá teclear comandos como si estiveramos fisicamente trallando con ela. Este enlace resume o proceso para conectarse por medio da rede da rede. http://learn.adafruit.com/adafruits-raspberry-pi-lesson-6-using-ssh

 

Unha alternativa: Escritorio Remoto


Outra alternativa para aplicacións que precisan usar o interface gráfico e conectarse mediante un escritorio remoto. Para iso unha alternativa é usar VNC.

VNC é un sistema de acceso a un escritorio remoto que permite o control del interface do escritorio de un ordenador en outro. VNC transmite os eventos do teclado e rato o controlador e recibe actualización da pantalla a través da rede do equipo remoto.

Isto permite ver o escritorio da Rasberry Pi dentro dunha fiestra no noso computador. Permitindo o control como se ti estiveras traballando sobre a mesma Raspberry Pi. 


Para instalar o servidor VNC (neste caso instalaremos TightVNC) hai abrir un terminal e teclear: 

sudo apt-get install tightvncserve
 
A continuación executamos o servidor TightVNC o cal nos pedira introducir un contrasinal e un contrasinal para so lectura opcional.


tightvncserver

Arrincamos o servidor VNC dende o terminal. Por exemplo, arrincamos unha sesión sobre o VNC no dispositivo 0 con resolución en alta definición:

 

vncserver :0 -geometry 1920x1080 -depth 24

Despois, sobre o noso ordenador instalamos  e executamos o cliente VNC:
  •  Sobre unha máquina linux instalamos o paquete xtightvncviewer: sudo apt-get install xtightvncviewer 
  • En calquera outro caso, TightVNC se pode descargar dende tightvnc.com
 Finalmente xa estamos en disposición de conectarnos a Raspberry Pi a través do noso cliente por medio do  VNC.
 

sábado, 12 de abril de 2014

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.


domingo, 16 de febrero de 2014

Introducción a Openscad

A forma de traballar con OpenSCAD é a de construír sólidos mediante o modelado de formas básicas como son os cubos, esferas ou cilindros e operacións básicas. Comecemos polas formas básicas, o cubo:

//Este é o código para debuxar un cubo de 10 mm no eixo X
// 20 mm no eixo Y e 30 no eixo Z 
// A variable center permite centrar o obxecto nos eixos
cube ([10,20,30], center = false);


O obxecto que permite debuxar un cilindro ou un cono é:

/* Onde temos que definir o radio (r), altura (h), si está centrado e a resolución ($fn, número de rectángulos para renderizar o cilindro). Para os conos temos que definir r1 (radio da base) e r2 (radio do tope) */
cylinder (r=5, h= 20, center= true, $fn=20);



O obxecto que debuxa a esfera é:

//O parámetro é o radio (r) ou diámetro (d) //e resolución ($fn)
sphere(10);



As operacións, que nomeamos antes, en OpenSCAD se chaman transformacións. A traslación permite desprazar o orixe da figura as coordenadas especificadas, como expresamos no exemplo:

//Debuxamos unha esfera de radio 10
//Trasladamos un cilindro, 15 mm no eixo X, 15 mm no eixo Y e -10 no Z
 sphere(10);
     translate([15,15,-10])
          cylinder(h=20, r=5);





Outra transformación interesante é a que nos permite unir obxectos como é union(). Mostramos un exemplo a continuación, onde se unen (ou combinan) o cilindro e esfera anterior:
union(){
     sphere(10); cylinder(h=20, r=5, center= true); 
 }

Si queremos facer a diferencia de dous obxectos, podemos facelo coa función difference(). Neste caso mostramos o cilindro restado sobre a a esfera:
difference(){ 
      sphere(10);      
      cylinder(h=20, r=5, center= true);
} 





Tamén temos a intersección: 

intersection(){ 
      sphere(10); 
      cylinder(h=20, r=5, center= true); 
}