Derek Molloy

Raspberry Pi® a fondo para desarrolladores


Скачать книгу

de red inalámbrica en un dispositivo RPi que carezca de toma para cable de red. Podemos conectar el cable al RPi, como se mostró en la figura 1-7(b) del capítulo 1.

      Para conectarse al RPi a través de la conexión serie, necesitamos un programa de terminal. Existen varias aplicaciones de este tipo para Windows, por ejemplo RealTerm (tiny.cc/erpi205) o PuTTY (www.putty.org). La mayoría de las distribuciones Linux incluyen un programa de terminal. En Debian pulse Ctrl+Alt+T o Alt+F2 y escriba: gnome-terminal. Mac OS X incluye un emulador de terminal de forma predeterminada, donde puede escribir, por ejemplo, el comando screen /dev/cu.usbserial-XXX 115200). También puede instalar el programa Z-Term (véase dalverson.com/zterm/).

      Para conectarse al RPi a través de la conexión serie USB a TTL, necesitamos la información siguiente:

      ❏Número de puerto: para averiguarlo en Windows, abra el gestor de dispositivos o equivalente según versiones y busque en la sección "Puertos". En la figura 2-3(a) podemos observar una ventana de ejemplo del gestor de dispositivos, donde el dispositivo aparece como puerto COM11. Esta información será diferente en cada ordenador

      ❏Velocidad de conexión: de forma predeterminada, introduciremos 115.200 baudios para conectar con el RPi.

      ❏Otra información que podría ser necesaria para otros programas de terminal: Data bits (bits de datos) = 8, Stop bits (bits de parada) = 1, Parity (paridad) = none y Flow control (control de flujo) = XON/XOFF.

      Figura 2-3: (a) Identificación de dispositivo en el gestor de dispositivos de Windows.

      (b) Una configuración de conexión serie con PuTTY. (c) Un adaptador USB a TTL de bajo coste.

      Guarde la configuración con un nombre de sesión, por ejemplo "RPi USB-to-TTL", como se puede ver en la figura 2-3(b), de manera que esté disponible cada vez que desee utilizarla. Haga clic en "Abrir" y, luego, pulse Intro cuando aparezca la ventana. Esto es muy importante. Cuando se conecte a Raspbian, debería observar la salida siguiente:

      Raspbian GNU/Linux 8 erpi ttyAMA0

      erpi login: pi

      Password: raspberry

      Last login: Fri Dec 18 02:12:32 GMT 2015 from ...

      Linux erpi 4.1.13-v7+ #826 SMP PREEMPT Fri Nov 13 20:19:03 GMT 2015 armv7l

      Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

      permitted by applicable law.

      pi@erpi:~$

      El proceso de conexión nos permite conectar con el nombre de usuario "pi" y la contraseña "raspberry". Observe cómo, cuando reinicia la placa, también puede ver toda la salida por la consola durante el inicio del RPi. Esta es la conexión de respaldo definitiva, puesto que nos permite observar lo que sucede durante el proceso de inicio, como veremos en el capítulo 3.

      NOTA Existen alternativas baratas al cable USB a TTL de 3,3 V, por ejemplo el dispositivo USB mostrado en la figura 2-3(c), que cuesta alrededor de un euro. Sin embargo, en general carecen de carcasa o proteción de seguridad alguna. En todo caso, antes de comprar un dispositivo de este tipo, asegúrese de que soporta niveles lógicos TTL de 3,3 V. El que aparece en la figura 2-3(c) incorpora un conmutador que permite intercambiar los niveles lógicos entre 3,3 y 5 V. Estos dispositivos se emplean en el capítulo 9 para ampliar el número de dispositivos UART disponibles en el RPi.

      En un ordenador con Linux, podrá instalar el programa Screen y conectarse con el dispositivo USB a TTL con los comandos siguientes:

      molloyd@debian:~$ sudo apt-get install screen

      molloyd@debian:~$ screen /dev/cu.usbserial-XXX/ 115200

      El protocolo de red SSH (Secure Shell) se emplea para establecer conexiones cifradas seguras entre dispositivos en una red. Podemos utilizar un cliente de terminal SSH para conectar con un servidor SSH a través del puerto 22 del RPi, lo que nos permitirá hacer lo siguiente:

      ❏Conectar en remoto con el RPi y ejecutar comandos.

      ❏Transferir archivos desde y hacia el RPi usando el protocolo SFTP (SSH File Transfer Protocol, protocolo de transferencia de archivos SSH).

      ❏Redireccionar conexiones X11, lo que permite la computación en redes virtuales.

      De forma predeterminada, las distribuciones Linux para RPi ejecutan un servidor SSH (sshd en Debian) vinculado al puerto 22. Contar con un servidor SSH disponible como medio predeterminado para iniciar sesión remota en el RPi tiene ciertas ventajas.

      En particular, nos permite abrir el puerto 22 del RPi a Internet mediante la funcionalidad de redirección de puertos (port forwarding) de nuestro router. Por favor, asegúrese de modificar la contraseña predeterminada para la cuenta de usuario "pi" antes de hacerlo. Después podremos iniciar sesión en nuestro RPi de forma remota desde cualquier lugar del mundo, siempre que conozcamos su dirección IP. El servicio de DNS dinámico (Dynamic DNS, DDNS o DynDNS), permite a la los routers que lo ofrecen (la mayoría) registrar su dirección IP más reciente en un servicio en línea. Acto seguido, dicho servicio en línea hace corresponder un nombre de dominio de nuestra elección con la última dirección IP que nuestro proveedor de acceso nos haya asignado, es decir, los mapea. El servicio de DNS dinámico suele tener un coste anual, a cambio del que obtendremos una dirección con la forma dereksRPi.servicename.com.

      Anteriormente mencionamos PuTTY como un método para conectar con el RPi a través de una conexión serie. PuTTY es una pequeña aplicación, gratuita y de código abierto, emuladora de terminal, consola serie y cliente SSH, que podemos emplear para conectar con el RPi a través de una red local. PuTTY posee varias características útiles:

      ❏Admite conexiones serie y SSH.

      ❏Instala una aplicación llamada psftp que permite transferir archivos hacia y desde el RPi por la red desde nuestro ordenador.

      ❏Acepta el redireccionamiento SSH X11 (exigido en el capítulo 14).

      La figura 2-4 muestra los ajustes de configuración de PuTTY. Seleccione SSH como tipo de conexión, introduzca la dirección IP de su RPi (o el nombre de Zeroconf), acepte el puerto 22 (predeterminado) y guarde la sesión con un nombre significativo. Haga clic en "Open" ("Abrir") e inicie sesión con su nombre de usuario y contraseña. Si observa una alerta de seguridad que le advierte de posibles "ataques de intermediario" (man-in-the-middle attacks), que pueden resultar preocupantes en redes inseguras, acepte la huella de clave (fingerprint) ofrecida y continúe. Los usuarios de Mac OS X pueden abrir la aplicación Terminal con una configuración similar (por ejemplo, ssh -XC [email protected] o ssh -XC [email protected]).

      Figura 2-4: Ajustes de configuración SSH de PuTTY sobre una ventana de conexión de terminal SSH.

      Más adelante en este mismo capítulo veremos los comandos básicos que se pueden enviar al RPi, pero antes es necesario examinar cómo podemos transferir archivos desde y hacia el RPi.

      El navegador web Chrome de Google permite la instalación de Chrome Apps. Se trata de aplicaciones que operan igual que las instaladas en el propio ordenador (nativas), pero escritas en HTML5, JavaScript y CSS. Muchas de estas aplicaciones utilizan el cliente nativo Google Native Client (NaCl), que no es otra cosa que una tecnología de aislamiento de procesos, sandbox para abreviar, que permite ejecutar aplicaciones compiladas C/C++ directamente en el navegador, con independencia del sistema operativo (SO) subyacente. La ventaja de NaCl es que posibilita que las aplicaciones alcancen niveles de rendimiento casi iguales a las nativas del SO, puesto que pueden contener código fuente capaz de utilizar instrucciones de bajo nivel.

      Existe una aplicación