Ejecutar software al inicio

0 comentarios

En un post anterior vimos cómo controlar la raspberry remotamente desde otro ordenador. Para ello, además de instalar una serie de softwares, cada vez que arrancáramos nuestra raspberry había que ejecutar el comando:

vncserver :1 -geometry 1280x800 -depth 16 -pixelformat rgb565

¿Hay alguna forma de poner este comando (u otros) en el autoarranque de forma que no haya que escribirlos manualmente? ¡Claro que si! ¡Y nada más fácil!
En un terminal abrimos el fichero "bashrc" del directorio raiz escribiendo:

sudo nano ~/.bashrc

y al final del todo añadimos el comando a ejecutar. Pulsamos CTROL-O y ENTER para guardar los cambios y reiniciamod la raspberry. Veras como se ejecuta al arranque de forma automática.

Controlar la raspberry desde el ordenador

0 comentarios

Cuando empecé a trastear con mi raspebrry nueva, la tenía al lado del ordenador personal con windows y cada dispositivo tenía su teclado, su ratón y su propia pantalla. Desde el principio pensé que sería mejor poder usar el mismos hardware para ambos dispositivos. Estuve buscando para comprobar si eso era posible y comprobé que si, que de la misma forma que controlo desde mi PC, mis dos móviles, mis tres tablets y el netpc :) podía controlar también mi raspberry. Después de haber investigado varias formas posibles, incluído el famoso teamviewer, he comprobado que la mejor forma es conectarse mediante VNC.

El primer paso es acudir a la página de RealVNC y descargar el software dependiendo del sistema operativo que tengamos en nuestro dispositivo desde el que vamos a controlar la raspberry, en mi caso, windows, aceptando las condiciones. En esa página aparecerá un botón de color verde para obtener la licencia. Este software tiene varias modalidades, algunas gratis y otras de pago y dentro de las gratis nos ofrece tres modalidades. Una de ellas gratis total pero limitada en sus funcionalidades y otras dos con un perioro de prueba de 30 días para las opciones premium. Nosotros nos bajaremos la gratis total porque cumple de sobra con nuestras necesidades. Al pulsar el botón nos pedirá algunos datos y nos dará una clave que nos servirá para cinco dispositivos. A continuación instalamos el software que nos pedirá la clave antes obtenida. Nos avisará que las conexiones no estarán cifradas y alguna que otra cuestión más pero la instalación es muy sencilla.

A continuación en nuestra raspberry instalaremos el servidor escribiendo en un terminal:

sudo apt-get install tightvncserver

y una vez instalado lo ejecutaremos escribiendo:

vncserver :1 -geometry 1280x800 -depth 16 -pixelformat rgb565

Donde ":1" es el número del escritorio que va a compartir y que luego necesitará sabiendo que puede tener varios escritorios a la vez numerados de la misma forma. "-geometry" indica el tamaño de la pantalla en pixeles y "-depth" determina la profundidad del color en bits y "-pixelformat" indica la presentación del color aunque puede omitirse. Para ver las distintas opciones escriba:

vncserver --help

La primera vez que se ejecute solicitará una contraseña para dar acceso al escritorio remoto que tendrás que ingresar cada vez que accedas el escritorio.

Una vez que hemos instalado VNC en ambos dispositivos, sólo queda ejecutar en el ordenador el visor "VNC viewer"

E introducir la contraseña en la siguiente pantalla:

Y ya tenemoss nuestra raspberry en la pantalla de nuestro ordenador y manejándoila con nuestro teclado y nuestro ratón de toda la vida.

Conectarse siempre con la misma IP

0 comentarios

Cada dispositivo que se conecta a internet tiene una dirección IP como ya hemos descrito en un post anterior. Normalmente esta dirección IP es distinta cada vez que nos conectamos ya que se tratan de IP dinámicas. De esta forma, tendríamos que ejecutar el comando:

ifconfig

cada vez se conectara la raspberry para saber su dirección y poder interactuar con ella, lo cual no parece una buena idea (dehecho, hazlo ahora y apunta los datos que te aparezcan porque luego los vas a necesitar).
Si deseamos tener siempre la misma dirección IP deberemos editar el fichero "interfaces" que se encuentra en la ruta "/etc/network/". Para ello abriremos una sesión de terminal y escribiremos:

sudo nano -w /etc/network/interfaces

Buscamos la línea que pone:

iface eth0 inet dhcp

o también puede aparecer:

iface eth0 inet manual

y escribimos los siguiente según los datos que obtuvimos al principio al hacer ifconfig poniendo en este ejemplo "54" para dejar la dirección IP fija en la "192.168.1.54"

iface eth0 inet static  
address 192.168.1.54  
netmask 255.255.255.0  
gateway 192.168.1.1

Lo anterior lo hemos hecho en el caso de conectarnos por cable directamente al router (eth0) pero si lo que deseamos es conectarnos vía wifi y tener de la misma forma una dirección IP fija, haríamos de la misma forma sólo que en lugar de modificar las líneas correspondientes a la red de cable, añadas a la red wifi (wlanxx) lo siguiente:

auto wlanXX
iface wlanXX inet static
address 192.168.1.ZZ
gateway 192.168.1.1
netmask 255.255.255.0
wpa-ssid red_wifi
wpa-psk contraseña_wifi

Donde "XX" es el identificador de tu red wlan, "ZZ" es lo que configurará tu dirección IP fija, el nombre de tu red y su contraseña serán respectivamente "red_wifi" y "contraseña_wifi". A continuación pulsa CTRL-O e INTRO para guardar los cambios. Debería quedarte un fichero como el siguiente con tus datos:

Conocer la IP

0 comentarios

Habrá ocasiones en las que necesitemos conocer cuál es la dirección IP de nuestra raspberry. Para los que no lo sepan, una dirección IP es una serie de números que identifica cada aparato que se encuentra conectado a internet (básicamente). Esta dirección es única pero puede ser siempre la misma (IP fija) o cambiar cada vez que se conecta el aparato a la red (IP dinámica). Sea cual sea el caso, para conocer la IP debemos ejecutar en un terminal:

ifconfig

y nos aparecerá algo como:
En el bloque "wlan0" que es la conexión inalámbrica, aparece la línea "inet addr:" y cuatro números como "192.154.0.57" pues esa es la IP de nuestra raspberry. En un post más adelante veremos cómo convertir esa IP dinámica en fija.
Puede ocurrir que sólo te salga la dirección "inet6". En este caso, escribe en una sesión de terminal:

ip addr show

Y te aparecerá la información que deseas.

Nuevo hardware y comenzamos con la "robótica"

1 comentarios

Acaban de llegar las últimas adquisiciones para seguir avanzando en proyectos. Mi regalo de onomástica ha tardado (gracias mami) más de un mes pero ha merecido la pena.
En primer lugar he cambiado el teclado y el ratón, principalmente porque tenían cable y era un estorbo, pero también el hecho de que estuviera el teclado estuviera en ruso ;) no ayudaba mucho. He comprado el mejor que hay según todas las críticas con la ventaja de que sirve para cualquier aparato (incluido chromecast y compañía) y que además en la raspberry es plug&play. Se enchufa y funciona. Listo.


Y para ir empezando a controlar elementos externos a la raspberry con miras a poder controlar servos (motores), brazos robóticos, etc. he comprado loss elementos básicos para poder encender y apagar un led que será uno de mis próximos proyectos. Sencillo, ya, pero hay que empezar por el principio.






Programar en Phyton

0 comentarios

Lo que vamos a ver hoy nos viene muy lejos aún porque todavía no vamos a usar esto, pero al tratarse de un curso que dura un tiempo relativamente amplio, no vendría mal ir estudiando.
Lo interesante de raspberry no pasa por usarla como un terminal con un sistema operativo para tareas domésticas o profesionales. Ni siquiera para usarla como centro multimedia al estilo de Chromecast (cosa que tampoco está nada mal). Los proyectos más interesantes para usar una raspberry es aplicarla al mundo de la robótica y al internet de las cosas. Para ello necesitamos programar nuestro propio software para encender luces, arrancar motores, controlar aparatos, etc.
Aunque en la raspberry se pueden usar muchos lenguajes de programación como C, C++, Java, Scratch, y Ruby, lo normal y recomendado por la Raspberry Pi Foundation es usar Phyton.
Aquí te traigo un magnífico curso interactivo para aprender a programar en Phyton. Es un curso gratuito de unas 13 horas de duración en el que están inscritos a día de hoy más de 2.5 millones de personas. Ve estudiando porque te va a hacer falta.

Manejando un sistema linux

0 comentarios

Como ya hemos dicho en entradas anteriores, lo normal es que nuestra raspberry comience a funcionar bajo un sistema linux. Los que están habituados a trabajar con windows pueden sentirse perdidos, sobre todo si son tan jóvenes que no han llegado a usar el MSDOS (¡qué viejo soy!).

Linux es un sistema operativo de código libre, bueno su kernel, pero eso es otra historia. Como tal, existen multitud de distribuciones para que cada usuario instale en sus máquinas la que más le guste o satisfaga sus necesidades. Para raspberry existen varias distribuciones diferentes aunque la más habitual es la Raspbian.

Lo malo (y lo bueno) es que casi todas las distribuciones de linux tienen un entorno gráfico al estilo de las ventanas de windows pero los puristas de este sistema y aquellos que quieren divertirse trasteando prefieren la línea de comandos. Antes de entrar en el entorno gráfico o ya en él abriendo una sesión de terminal podemos manejar linux con líneas de texto con las distintas órdenes para que el sistema haga determinadas cosas. Ya hemos visto algunas de estas lineas en post anteriores pero sin explicarlas. Ahora vamos a ver algunos de estos comandos:

sudo

El comando sudo nos da permisos de administrador del sistema. Este comando siempre inicia la linea de comandos a ejecutar.

sudo apt-get install firefox
sudo aptitude install firefox

Para instalar y desinstalar aplicaciones usaremos esta herramienta de empaquetado. Normalmente usaremos el comando apt-get, aunque algunos usuarios prefieren el uso de aptitude que suele ejecutar estas operaciones de manera más eficiente.

sudo apt-get remove --purge firefox

Para desinstalar alguna aplicación se añade remove y si además añadimos la orden --purge se eliminarán todos los datos del programa eliminando cualquier rastro de él en nuestro sistema. sudo apt-get remove --purge firefox

cd /documentos

Este comando (de change directory o cambiar directorio) permite cambiar el directorio en la terminal de forma que seguido de una ruta te ubica en un directorio especifico. Si solo escribimos cd llegaremos al directorio Home o Carpeta Personal. Si estás en /home/ejercicios y deseas subir un nivel (es decir ir al directorio /home) sólo habrá que añadir dos puntos "cd .."

cat fichero.txt

Es una utilidad que permite ver el contenido de un archivo de texto sin la necesidad de un editor.

ls /home/directorio

Ls (de listar) permite ver un listado del contenido de un directorio o fichero. El comando ls tiene varias opciones que permiten organizar la salida

touch /home/prueba1.txt

Este comando crea un archivo vacío y si el archivo existe actualiza la hora de modificación.

mkdir /home/ejercicios
mkdir -p /home/ejercicios/prueba/uno/dos/tres

Mkdir (de make directory o crear directorio) crea un directorio nuevo en la ruta actual. Tiene una opción bastante útil que permite crear un árbol de directorios completo que no existe. Para eso usamos la opción -p

cp /home/prueba.txt /home/respaldo/prueba.txt
cp -r /home/ejercicios /home/respaldos/

Cp (de copy o copiar) copia un archivo o directorio origen a un archivo o directorio destino. Siempre se especifica primero el origen y luego el destino. El comando también cuenta con la opción -r que copia no sólo el directorio especificado sino todos sus directorios internos de forma recursiva.

mv /home/prueba.txt /home/respaldos/prueba2.txt

Mv (de move o mover) mueve un archivo a una ruta específica al igual que cp pero con la diferencia de que lo elimina del origen.

rm /home/prueba.txt
rm -fr /home/respaldos

Rm (de remove o remover) es el comando necesario para borrar un archivo o directorio. La opción -r borra todos los archivos y directorios de forma recursiva. Por otra parte, -f borra todo sin pedir confirmación. Como puede verse este comando hay que manejarlo con cuidado para evitar desastres.

pwd

Pwd (de print working directory o imprimir directorio de trabajo) imprime nuestra ruta o ubicación

clear

Clear limpia nuestra terminal.