Derek Molloy - Raspberry Pi® a fondo para desarrolladores

Здесь есть возможность читать онлайн «Derek Molloy - Raspberry Pi® a fondo para desarrolladores» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: unrecognised, на испанском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Raspberry Pi® a fondo para desarrolladores: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Raspberry Pi® a fondo para desarrolladores»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Económico y versátil, Raspberry Pi puede adaptarse a miles de desarrollos. Este libro le permite explorar todas sus posibilidades mediante la aplicación de principios de ingeniería junto con las técnicas de programación en Linux, y desarrollar las habilidades que necesita para diseñar y construir un sinfín de proyectos.Raspberry Pi a fondo para desarrolladores cubre los conceptos básicos y avanzados de la plataforma de hardware, accesorios recomendados, software, sistemas Linux integrados y técnicas de programación en Linux. También profundiza en la interfaz, el control y de comunicaciones, con información detallada sobre Raspberry Pi GPIOs, buses, dispositivos UART y periféricos USB.Aprenderá a configurar un entorno de compilación cruzada para construir aplicaciones de software a gran escala, así como la forma de combinar hardware y software para permitir que el Raspberry Pi interactúe eficazmente con su entorno físico. Por último, descubrirá cómo utilizar el Raspberry Pi para aplicaciones avanzadas de interfaz e interacción como Internet de las Cosas (IoT, por sus siglas en inglés); comunicación y control inalámbricos; interfaces de usuario; imágenes, vídeos y audios; llegando hasta la programación del kernel de Linux.En lugar de instrucciones para algunos proyectos específicos, Raspberry Pi a fondo para desarrolladores le ofrece las habilidades necesarias para construir los proyectos que existen en su imaginación. Aprenderá a: Desarrollar habilidades esenciales de Linux y de programaciónConstruir aplicaciones de Internet de las Cosas (IoT)Dominar la interfaz, control y comunicaciónDiseñar aplicaciones que interactúen con el entorno físicoUtilizar la plataforma Arduino como un procesador de serviciosConstruir aplicaciones de comunicación inalámbricaEscribir e instalar módulos del kernel de Linux personalizadosUsar Raspberry Pi 3 y Raspberry Pi Zero en sus proyectos

Raspberry Pi® a fondo para desarrolladores — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Raspberry Pi® a fondo para desarrolladores», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

pi@erpi ~ $ sudo apt install debsums wavemon

pi@erpi ~ $ debsums wavemon_0.7.6-2_armhf.deb

/usr/bin/wavemon OK

/usr/share/doc/wavemon/AUTHORS OK

/usr/share/doc/wavemon/NEWS.gz OK

...

Si compilamos nuestros propios paquetes para distribuirlos, resultaría útil distribuir los archivos con la suma de verificación correspondiente para que los usuarios puedan comprobar su integridad. Existe una alternativa a md5sum ,sha256sum, que se puede utilizar del mismo modo.

Procesos de Linux

Un proceso es una instancia de un programa que se está ejecutando en el SO. Debemos ser capaces de gestionar los procesos en ejecución en nuestro RPi, comprender los procesos de primer y de segundo plano y cerrar inmediatamente (kill, matar en inglés, pero también es el nombre literal de un comando Unix y Linux) cualquier proceso que se cuelgue.

Cómo controlar los procesos en Linux

El comando ps lista los procesos en ejecución en cada momento en el RPi. Tras escribir ps, vemos que el siguiente RPi está ejecutando dos procesos de usuario, el intérprete de comandos bash, con PID (Process ID, identificador de proceso) 912, y el propio comando ps, con PID 25481. El PID de ps será diferente siempre que lo ejecutemos porque se cierra cada vez que da los resultados:

pi@erpi ~ $ ps

PID TTY TIME CMD

912 pts/0 00:00:05 bash

25481 pts/0 00:00:00 ps

Para ver todos los procesos en ejecución, escribimos ps ax. En el ejemplo siguiente se aplica un filtro con los caracteres "ntp" para descubrir información acerca de los procesos ntp en ejecución en el RPi.

pi@erpi ~ $ ps ax | grep ntp

1069 ? Ss 0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 107:112

1077 ? S 0:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 107:112

1132 ttyAMA0 S+ 0:00 grep --color=auto ntp

Está claro que se ejecutan tres procesos diferentes para el servicio, lo que le permite manejar múltiples conexiones simultáneas. En este ejemplo, todos los hilos están a la espera de que se complete un evento (S), PID 1069 es el líder de la sesión (Ss), 1077 es su clon (S) y el proceso grep, PID 1132, está en el grupo de primer plano (S+). Como vimos anteriormente, una llamada a systemctl status ntp proporciona información sobre los servicios en ejecución en el RPi, es decir, si ejecutamos la llamada veremos que los PID de los procesos se corresponden con los que muestra el comando ps.

Procesos en primer y en segundo plano

Linux es un sistema operativo multitarea que nos permite ejecutar múltiples procesos en segundo plano (background) mientras usamos un programa que se ejecuta en primer plano (foreground). Este concepto es muy similar al comportamiento que presenta una interfaz gráfica basada en ventanas, como las de Windows, Mac OS X, etc. Por ejemplo, el reloj del escritorio continúa actualizando la hora al mismo tiempo que navegamos por Internet.

Lo mismo es válido para aplicaciones que se ejecuten en una ventana de terminal. Para demostrar esto, veamos un pequeño fragmento de código fuente en C que muestra la frase "Hello World!" cada cinco segundos en una ventana de terminal de Linux. El funcionamiento preciso del código se verá en el capítulo 5, pero por el momento basta con que el lector lo escriba literalmente en un archivo, que llamará HelloRPiSleep.c, mediante el editor nano trabajando en la cuenta de usuario pi; para ello:

pi@erpi ~ $ cd ~/

pi@erpi ~ $ nano HelloRPiSleep.c

pi@erpi ~ $ more HelloRPiSleep.c

#include

#include

int main(){

int x=0;

do{

printf("Hello Raspberry Pi!\n");

sleep(5);

}while(x++<50);

return 0;

}

El programa consiste en un bucle que realiza 50 iteraciones, en cada una de las cuales muestra un mensaje y espera 5 segundos. Después de guardar el archivo como HelloRPiSleep.c, lo compilaremos como un ejecutable mediante el comando siguiente (-o especifica el nombre del archivo ejecutable):

pi@erpi ~ $ gcc HelloRPiSleep.c -o helloRPiSleep

pi@erpi ~ $ ls -l helloRPiSleep

-rwxr-xr-x 1 pi pi 5864 Jun 20 16:40 helloRPiSleep

Si todo ha funcionado, tendremos tanto el archivo de código fuente como el ejecutable llamado helloRPiSleep. Observe cómo este muestra la marca, x, de archivo ejecutable. Podemos, ahora, ejecutarlo sin más:

pi@erpi ~ $ ./helloRPiSleep

Hello Raspberry Pi!

Hello Raspberry Pi! ...

Continuará mostrando este mensaje cada 5 segundos. Podemos terminar su ejecución con Control+C. Sin embargo, para ejecutarlo en segundo plano tenemos dos opciones.

Primero podemos, en lugar de pulsar Control+C para terminar el proceso, pulsar Control+Z y, luego, en el símbolo del sistema, escribir el comando bg (por background, como ya hemos visto).

pi@erpi ~ $ ./helloRPiSleep

Hello Raspberry Pi!

^Z

[1]+ Stopped ./helloRPiSleep

pi@erpi ~ $ bg

[1]+ ./helloRPiSleep &

pi@erpi ~ $ Hello Raspberry Pi!

Hello Raspberry Pi!

Hello Raspberry Pi!

Cuando pulsamos Control+Z, ^Z aparece en la salida. Cuando escribimos bg, el proceso se sitúa en segundo plano, donde continúa su ejecución. De hecho, podemos continuar usando el terminal, pero resultará frustrante porque cada cinco segundos aparecerá el mensaje "Hello Raspberry Pi!" El comando fg nos permite devolver este proceso al primer plano.

pi@erpi ~ $ fg

./helloRPiSleep

Hello Raspberry Pi!

^C

pi@erpi:~$

Cuando pulsamos Control+C, que aparece como ^C, la aplicación se detiene.

La otra manera de poner la aplicación en segundo plano consiste en añadir el símbolo ampersand, &, al final de su nombre:

pi@erpi ~ $ ./helloRPiSleep &

[1] 30965

pi@erpi ~ $ Hello Raspberry Pi!

Hello Raspberry Pi!

El proceso se ha situado en segundo plano y su PID es 30965, en este caso. Para detener el proceso, usamos ps para encontrar el PID:

pi@erpi ~ $ ps aux|grep hello

pi 30965 0.0 0.0 1612 304 pts/0 S 20:14 0:00 ./helloRPiSleep

pi 30978 0.0 0.1 4208 1828 pts/0 S+ 20:15 0:00 grep hello

Para terminar el proceso, use el comando kill:

pi@erpi ~ $ kill 30965

[1]+ Terminated ./helloRPiSleep

Podemos confirmar la terminación del proceso usando ps de nuevo. Si el proceso no termina de inmediato, usaremos el argumento -9 para asegurarnos de que lo haga. Por ejemplo: kill -9 30965. Un comando diferente, pkill, termina un proceso a partir de su nombre. Así, en este caso:

pi@erpi ~ $ pkill helloRPiSleep

Otro comando que merece la pena mencionar es watch. Este ejecuta un comando a intervalos regulares y muestra el resultado en terminal a pantalla completa. Por ejemplo, para ver el log de mensajes del núcleo, escribimos:

pi@erpi ~ $ watch dmesg

Podemos concretar la duración del intervalo entre ejecuciones mediante -n seguido del número de segundos. Una buena manera de comprender el funcionamiento de watch consiste en ejecutarlo del siguiente modo:

pi@erpi ~ $ watch -n 1 ps a

Every 1.0s: ps a Sat Jun 20 20:22:39 2015

PID TTY STAT TIME COMMAND

912 pts/0 Ss 0:06 -bash

31184 pts/0 S+ 0:01 watch -n 1 ps a

31257 pts/0 S+ 0:00 watch -n 1 ps a

31258 pts/0 S+ 0:00 sh -c ps a

31259 pts/0 R+ 0:00 ps a

Veremos que el PID de ps, sh y watch cambia cada (1) segundo, lo que deja claro que watch está realmente ejecutando el comando (ps) al pasarlo a un nuevo intérprete de comandos mediante sh -c. La razón por la que watch aparece dos veces en la lista es que se reproduce a sí mismo temporalmente en el momento exacto en el que ejecuta ps a.

Otros temas de Linux

En este punto del libro, el lector ha podido revisar los principales comandos para trabajar con Linux en el RPi. Sin embargo, el tema de la gestión de sistemas Linux da mucho más de sí. Por ejemplo: ¿cómo configurar un adaptador WiFi? ¿Cómo usar cron para planificar (schedule) trabajos con el RPi? Estos temas se analizarán en los capítulos restantes del libro. Sin ir más lejos: la programación de trabajos con cron se trata en el capítulo 12, en el contexto de los dispositivos IoT.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Raspberry Pi® a fondo para desarrolladores»

Представляем Вашему вниманию похожие книги на «Raspberry Pi® a fondo para desarrolladores» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Raspberry Pi® a fondo para desarrolladores»

Обсуждение, отзывы о книге «Raspberry Pi® a fondo para desarrolladores» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x