Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Informe 1

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 8

Elias.fagua@uptc.edu.co, Sergio.acosta@uptc.edu.

co 1

Fundamentos de Python y Raspberry Pi


Fagua Lancheros Elias Humberto, Acosta Cetina Sergio Steveen

dispositivos resultantes no tienen el aspecto de lo que se suele
Resumen - En el presente documento se verán plasmados los asociar a una computadora. Algunos ejemplos de sistemas
respectivos resultados de los ejercicios propuestos para afianzar embebidos podrían ser dispositivos como un taxímetro, un
los conocimientos adquiridos en el lenguaje Python, además de sistema de control de acceso, la electrónica que controla una
reconocer el funcionamiento de compiladores y métodos para
usarlos tales como las tarjetas de desarrollo raspberry, o
máquina expendedora o el sistema de control de una
utilizando la figura de la máquina virtual para poder mirar los fotocopiadora entre otras múltiples aplicaciones.
cambios obtenidos y profundizar la sintaxis utilizada en este tipo
de lenguajes. Raspberry pi: La Raspberry Pi es una serie de ordenadores
de placa reducida, ordenadores de placa única u ordenadores
de placa simple (SBC) de bajo coste desarrollado en el Reino
Índice de Términos – Python, algoritmo, Virtual Machine,
Unido por la Raspberry Pi Foundation, con el objetivo de
compilación, Ejecutables.
poner en manos de las personas de todo el mundo el poder de
I. INTRODUCCION la informática y la creación digital. Si bien el modelo original
buscaba la promoción de la enseñanza de informática en las
escuelas, este acabó siendo más popular de lo que se esperaba
Los dispositivos de computación han sido una ayuda fundamental en
el desarrollo de la tecnología en general, debido a que de este
, hasta incluso vendiéndose fuera del mercado objetivo para
dispositivo se desprenden varias aplicaciones en todos los ámbitos, usos como robótica. No incluye periféricos (como teclado y
tales como el ámbito industrial en la creación y operación mediante ratón) o carcasa.
sistemas SCADA, y además para la creación de aplicaciones
específicas en cualquier ámbito de la vida, en estos tipos de Software libre: Es el software que respeta la libertad de los
aplicaciones existe uno en particular el cual será el tema central y es usuarios y la comunidad. A grandes rasgos, significa que los
la parte de las tarjetas de desarrollo Raspberry, las cuales se pueden usuarios tienen la libertad de ejecutar, copiar, distribuir,
emplear en diversas aplicaciones de cualquier ciencia, haciendo que estudiar, modificar y mejorar el software. Es decir, el
se puedan obtener nuevas aplicaciones y nuevos caminos para
«software libre» es una cuestión de libertad, no de precio. Para
solucionar problemas de manera efectiva y económica. Dentro de
estas aplicaciones cabe distinguir también la facilidad con la que se entender el concepto, piense en «libre» como en «libre
puede hacer la programación para este tipo de tarjetas, el cual es el expresión», no como en «barra libre». En inglés, a veces en
lenguaje de programación Python, que es un lenguaje sencillo, es lugar de «free software» decimos «libre software», empleando
libre y muy fácil de manejar. También cabe resaltar que el sistema ese adjetivo francés o español, derivado de «libertad», para
operativo es muy sencillo de obtener y se puede utilizar tanto en la mostrar que no queremos decir que el software es gratuito.
tarjeta como en una unidad virtual creada mediante una máquina
virtual. Todas estas facilidades se ofrecen en un lenguaje tan sencillo Python: es un lenguaje de programación interpretado cuya
y muy completo para el usuario. Estas tarjetas y sistemas operativos filosofía hace hincapié en la legibilidad de su código. Se trata
son muy flexibles en todo sentido y se pueden emplear dependiendo
de un lenguaje de programación multiparadigma, ya que
la necesidad de la aplicación a utilizarse.
soporta orientación a objetos, programación imperativa y, en
menor medida, programación funcional. Es un lenguaje
II. MARCO TEÓRICO interpretado, dinámico y multiplataforma.

Congelamiento de Script: El congelamiento de un Script


Sistema embebido: Un sistema embebido (integrado,
consiste en la creación de un archivo ejecutable (.exe) para
incrustado) es un sistema de computación diseñado para
que sea distribuido para los usuarios finales, sin necesidad de
realizar una o algunas pocas funciones dedicadas,
tener el compilador instalado en la máquina.
frecuentemente en un sistema de computación en tiempo real.
Al contrario de lo que ocurre con los ordenadores de propósito
Máquina Virtual: Una máquina virtual es un software que
general (como por ejemplo una computadora personal o PC)
permite emular el funcionamiento de un ordenador dentro de
que están diseñados para cubrir una amplia gama de
otro ordenador.
necesidades, los sistemas embebidos se diseñan para cubrir
necesidades específicas. En un sistema embebido la mayoría
de los componentes se encuentran incluidos en la placa base
III. OBJETIVO
(tarjeta de vídeo, audio, módem, etc.) y muchas veces los
Obtener bases del Lenguaje de programación Python para
 poder aplicarlo en la tarjeta Raspberry.
Elias.fagua@uptc.edu.co, Sergio.acosta@uptc.edu.co 2

IV. MATERIALES
Computador personal, Raspberry pi, Conexión a internet,
Máquina virtual (Virtual Box).

V. DESARROLLO DE LA PRACTICA

PARTE 1: PROGRAMACION.

A. Programación

1. Escriba un programa Python para encontrar


trillizos únicos cuyos tres elementos den la suma de
cero de un conjunto de n números enteros.

En este ejercicio se deben encontrar las posibles


Fig.2. Comparación de los resultados de los números ingresados por el
combinaciones de los números ingresados por el usuario,
usuario.
entonces para poder determinar las combinaciones se debe
determinar que la suma de los números sea igual o diferente de Este se puede decir que es el método más efectivo para
cero. detectar cualquier combinación en números trillizos
ingresados por el usuario.
Para poder determinar la suma se le pide al usuario ingresar
los números explicados mediante la siguiente sección de A continuación, se muestran los resultados de ejecutar el
código: código anteriormente dicho:

Fig.1. Ingreso de Números por el usuario.


Fig.2. Comprobación de los resultados de los números ingresados por el
Después de pedidos los números al usuario se procederá a usuario.
realizar las respectivas sumas para verificar que la suma sea
2. Escriba un programa Python para imprimir un
cero y para saber cuáles cumplen con el requisito que sean
texto largo, convertir la cadena en una lista e
números trillizos. Después se procede a imprimir cuales
imprimir todas las palabras y sus frecuencias.
números de los ingresados son trillizos, en caso de no haber
números trillizos no se imprime ningún mensaje.
En este ejercicio se puede solucionar o es necesario utilizar la
librería Count, el cual lo que hace es contar cada una de las
En caso de que la combinación cumpla con la condición para
palabras que están presentes dentro de la frase y la frecuencia
que sean trillizos se procede a informar que no existen
de cada una, además se debe usar las variables tipo String,
números trillizos dentro de los números ingresados por el
para que detecte la cadena de caracteres, porque si no se
usuario.
emplea esta función automáticamente el lenguaje no reconoce
las cadenas de caracteres, al finalizar se retornara el dato junto
con la frecuencia de las palabras empleadas para así mostrar la
respuesta por cada una palabra y la cantidad de veces que se
repite dentro de un texto específico.
Elias.fagua@uptc.edu.co, Sergio.acosta@uptc.edu.co 3

porque se puede clasificar por relevancia según el autor del


texto.

4. Escriba un programa Python para obtener una lista


de los módulos Python instalados localmente.

Para conocer los módulos instalados en el Python


Fig.3. Código para el punto 2. localmente se pueden hacer mediante el comando
help(modules). Se hace mediante la siguiente comprobación
El código anteriormente mostrado funciona siempre y cuando del código:
se tenga en cuenta la manera como se escribe el texto, debido
a que la función Count tiene en cuenta la escritura de las
palabras ya sean con mayúsculas o con minúsculas.

A continuación, se muestra la comprobación del punto con la


frase: ¨Microprocesadores es mi ultima materia y es la mejor¨
quedando de la siguiente manera:

Fig.5. Códigos para poder obtener los módulos disponibles mediante la


ejecución del programa.
A continuación, se presenta la siguiente comprobación del
código anterior:

Fig.3. Comprobación para el punto 2.

3. Escriba un programa Python para obtener las


principales historias de las noticias de Google.

En este punto se debe utilizar la herramienta BeautifulSoup


para que extraiga ficheros HTML y XML y la puede
obtener de manera apropiada de manera de árbol para un
mayor procesamiento y entendimiento para el usuario.

Para la realización de la solicitud al servidor se debe utilizar


una librería adicional llamada Requests, la cual se encarga Fig.5. Módulos disponibles mediante la ejecución del programa.
de solicitar las peticiones al HTTP.
5. Escriba un programa en Python para mostrar la
El orden de funcionamiento en este punto consta de la información sobre el sistema operativo en el que se
función Request y con el parámetro Get, el cual es el que está ejecutando el script.
obtiene la solicitud de la página requerida, Después de esto
se procede a utilizar la librería BeautifulSoup la cual es la Para esta parte del trabajo es necesario importar la librería
que convierte el archivo a un formato HTML. platform, la cual le dará a conocer el sistema operativo en el
cual se está trabajando, y facilitará toda la información.
Ya para el siguiente paso se procede a utilizar la etiqueta
find_all la cual recibe como parámetro una etiqueta, esta De la siguiente manera se estructuro el código:
etiqueta se recibe en nivel h3 el cual es donde están escritos
las principales noticias de google. Después se selecciona la
etiqueta a para hacer referencias a los textos y al enlace.

Ya para la parte final del código se debe poner la etiqueta


text en caso de que se quiera adquirir el texto.

Al usar estas etiquetas y funciones es de suma importancia


Elias.fagua@uptc.edu.co, Sergio.acosta@uptc.edu.co 4

Fig.5. Código para mirar la información del OS.

Al verificar el código nos debe mostrar la siguiente


información: Fig.5. Código para el punto 6.

La comprobación para el punto 6 es la siguiente:

Este código es importante para poder encontrar las fallas


dentro de un lazo de control, ya que en una red de sensores y
actuadores puede arrojar alguna falla entonces este algoritmo
puede detectar con más facilidad cual es el dispositivo que
muestra falla.

7. Escriba un programa Python para obtener todas las


combinaciones posibles de letras de dos digitos de
una cadena de digitos (1 a 9). arreglos_letras =
Fig.6. Comprobación de la información del OS.
{"1": "abc","2": "def","3": "ghi","4": "jkl","5":
Esta función es de mucha importancia porque los comandos "mno","6": "pqrs","7": "tuv","8": "wxy","9":
varían dependiendo el OS instalado en el equipo, además de "z"}
saber la versión real del Python.
Para empezar, se debe guardar en vectores los datos para
6. Escriba un programa Python para comprobar que proceder con las combinaciones mediante el siguiente código:
la suma de tres elementos (cada uno de una matriz)
de tres matrices es igual a un valor objetivo.
Imprima en pantalla todas esas combinaciones de
tres elementos. Datos de muestra: X = [10, 20, 20,
20], Y = [10, 20, 30, 40], Z = [10, 30, 40, 20], objetivo
= 70.

En este ejercicio es necesario conocer las posibles


combinaciones, las posibles sumas y almacenarlas para poder
cumplir el objetivo el cual es que la suma sea igual a 70. Este
punto es muy similar al punto 1 debido a que es de almacenar
valores en los respectivos vectores. Fig.5. Código para el punto 7(Almacenamiento letras).

Después se solicita el ingreso de los dígitos del 0 al 9 para que


El código que satisface esta parte es el siguiente:
el usuario pueda hacer las respectivas combinaciones de la
siguiente manera:

Fig.5. Código para el punto 7(Requerimiento para la combinación).

Después se proceden a hacer las posibles combinaciones de


letras según los arreglos que se quieren hacer combinación
ingresado previamente por el usuario lo cual queda descrito en
el siguiente código:
Elias.fagua@uptc.edu.co, Sergio.acosta@uptc.edu.co 5

considerar como estroboscópicos son los números 1,6,8,9 esto


se puede asemejar como en un display 7 segmentos el cual
cuando se programa un lector estroboscópico por la velocidad
del muestreo no se puede ver a simple vista que numero se
esté viendo realmente, esto es por la propiedad que se puede
girar 180 grados. Para esto se propuso el siguiente código:

Fig.5. Código para el punto 7(Combinaciones posibles).

Para la comprobación se van a combinar las opciones 1 y 2


definidas anteriormente quedando el siguiente resultado:

Fig.5. Código para ejercicio 8.

En consola ya comprobado con un N=3 se da la siguiente


comprobación:

Fig.5. Comprobación para el punto 7 opciones 1 y 2.


Fig.5. Comprobación para ejercicio 8.

Para este ejercicio es notable que el tamaño de los vectores es


9. Escriba un programa Python que acepte seis
sumamente diferente en las opciones 6 y 9 ya que al
números como entrada y los clasifique en orden
combinarlo puede salir más largo y que puede haber una serie
descendente. El Usuario debe escribir el numero en
de problemas por sus tamaños indiferentes.
consola, no pueden estar preprogramados.
8. Escriba un programa Python para obtener todos los
En este punto el usuario debe ingresar seis números y el
números estroboscópicos de longitud n. Un numero
algoritmo debe clasificarlo en orden descendente; en este
estroboscópico es un numero cuyo número es
ejercicio se debe usar la función sort la cual es una librería
simétrico en rotación, de modo que aparece igual
facilitada por Python para la organización de números de
cuando se gira 180 grados. En otras palabras, el
forma ascendente.
numeral se ve igual de arriba a abajo (por ejemplo,
69, 96, 1001).
Después de usar la función sort se procede a usar el parámetro
reverse=true ya que de esta manera puede ordenar los dígitos
Para este ejercicio es necesario que el usuario ingrese N el
de manera descendente.
cual es la dimensión del vector que considere para que se haga
el número estroboscópico, para esto se debe usar la función
Ya para finalizar se imprimirán los números separados por
findStrobo el cual se encargara de las partes laterales para que
comas para que el algoritmo lea el vector y proceda a
se pueda cumplir la función, los números que se pueden
organizarlo.
Elias.fagua@uptc.edu.co, Sergio.acosta@uptc.edu.co 6

Después de recibido el vector, es necesario utilizar la función En este ejercicio está definido para poder definir el número de
sorted para que se pueda almacenar los datos en una sola islas presentes dentro de una matriz 10X10, esto se debe hacer
variable. mediante un vector X, Y, Z respectivamente, como se muestra
en el siguiente código:
A continuación, se muestra el siguiente código:

Fig.5. Código para ejercicio 9. Fig.5. Código para ejercicio 10.

Y se comprueba de la siguiente manera: Después se definen dos variables que recorren los dos vectores
haciendo un barrido y analizando cada 1 y cada 0 presente
dentro de los vectores.

Dentro de la comprobación se hace de la siguiente manera:

Fig.5. Comprobación para ejercicio 9. Fig.5. Comprobación para ejercicio 10.

Este algoritmo es útil para poder organizar prioridades dentro B. Investigación


de una tarea, esto es fundamental para una descripción de
instrucciones dentro de un sistema microprocesado.
1. Congelamiento o freeze
10. Hay 10 cuadrados verticales y horizontales en un
El congelamiento es una utilidad que tiene el
plano. Cada cuadrado esta pintado de azul y verde.
lenguaje Python que sirve para compilar ejecutables
El azul representa el mar y el verde la tierra.
para sistemas Unix.
Cuando dos cuadrados verdes estan en contacto con
la parte superior e inferior, o la derecha y la
Esta propiedad sirve para poder ejecutar un programa
izquierda, se dice que son la tierra. El area creada
sin necesidad de tener Phyton instalado.
por un solo cuadrado verde se llama "isla". Por
ejemplo, hay cinco islas en la figura de
Existen diversas herramientas utilizadas para el
abajo.Escriba un programa Python para leer los
congelamiento del ejecutable los cuales son:
datos de masa y encontrar el numero de islas. Ver
Figura 6. Entrada: Un solo conjunto de datos esta
representado por 10 filas de 10 numeros que  PYNSTALLER: Es el más utilizado y el más
representan cuadrados verdes como 1 y cuadrados común para hacer congelamiento a los
azules como 0. Salida: La salida AB y CD no son ejecutables, este es utilizado para sistemas
ortogonales! o AB y CD son ortogonales!. WINDOWS, GNU, MAC OSX. Tiene la misma
Elias.fagua@uptc.edu.co, Sergio.acosta@uptc.edu.co 7

finalidad del anterior solo que posee una


cualidad especial y es que puede dar la
oportunidad de poderlos firmar digitalmente.
 CX FREEZE: Este tiene la finalidad de congelar
multiplataforma y es compatible con Python 3.5
y además su distribución es de código abierto.

2. Congelamiento Ejercicio 10

Este caso se congelará el ejercicio 10 ya que el código de


los dos integrantes termina en 0.

En el ejercicio propuesto se plantea la elaboración de un


programa en Python en el cual determine la cantidad de islas
en un mapa representado por datos binarios, donde 0 (cuadro
azul) representa una porción de agua y el 1(cuadro verde)
representa una porción de tierra o continente. Figura 2. Porción de código del ejercicio 10
En la siguiente figura se formula el siguiente arreglo de
islas con el fin de proponer un ejercicio para probar el
programa elaborado.

Input

Figura 1. Arreglo de islas propuesto para el ejercicio


Output
En el anterior arreglo 10x10, se observan 9 islas las cuales
están enumeradas, el objetivo es comprobar el correcto Figura 3. Ejecución del programa Ejercicio_10.py
funcionamiento en el programa como se muestra a
continuación, representando el mapa con números binarios Vemos que los datos ingresados en la ventana de comandos
como se explicó anteriormente. son un reflejo del arreglo de datos mostrado en el mapa
En la siguiente imagen se observa la porción de código para propuesto, y que se verifica el número correcto de islas como
establecer las coordenadas y luego como estas se comportan se muestra a la salida (Output) del programa.
para determinar el número de islas en base a determinar los Se verifica el correcto funcionamiento del programa el cual
“1” adyacentes. es flexible a admitir por entrada, distintas combinaciones de
dígitos o distintos arreglos geográficos en formato 10x10
binario.

PARTE 2. Investigación
Al terminar el código institucional en 0, nos correspondió
aplicar el freezing al ejercicio 10, de la primera parte.
Para el congelamiento o freezing del programa en cuestión
Elias.fagua@uptc.edu.co, Sergio.acosta@uptc.edu.co 8

se emplea la herramienta PyInstaller, el cual es un programa electrónica y sistemas de control e IoT.


que permite un congelamiento de una manera muy sencilla 3. El congelamiento de las aplicaciones es muy útil ya
ejecutando pocas instrucciones en la ventana de comandos del que no todos los ordenadores contienen una
sistema, además para la versión de Python de trabajo (3.9) plataforma de Python para poderlo reproducir por
trabaja sin problemas de compatibilidad. consola, además es muy necesario para poder dejar
Es necesario primero ejecutar la siguiente instrucción para un código cerrado y operativo en cualquier sistema.
instalar la herramienta. En este caso se instala dentro de la
carpeta del proyecto a congelar. BIBLIOGRAFIA

pip install pyinstaller [1]V. Castillo Robledo, "Los sistemas embebidos y su importancia en la
actualidad", Licuado de Letras, 2020. [Online]. Disponible:
https://licuadodeletras5.wordpress.com/los-sistemas-embebidos-y-
A continuación, se ejecuta la siguiente línea de comandos la suimportancia-en-la-actualidad/. [2]"1.2. ¿Qué es GNU/Linux?", Debian.org,
cual congela el programa, genera un archivo ejecutable .exe 2020. [Online]. Disponible:
junto con los archivos necesarios para su ejecución en una https://www.debian.org/releases/jessie/armhf/ch01s02.html.es. [3]"Freezing
Your Code — The Hitchhiker's Guide to Python", Docs.pythonguide.org,
carpeta denominada “dist” dentro de la carpeta del proyecto. 2020. [Online]. Disponible: https://docs.pythonguide.org/shipping/freezing/.
[4]"Freeze - Python Wiki", Wiki.python.org, 2020. [Online]. Disponible:
pyinstaller Ejercicio_10.py -n foobar https://wiki.python.org/moin/Freeze. [Accessed: 27- Jul- 2020].

La anterior instrucción genera un programa ejecutable pero


no portable, es decir, el ejecutable necesita estar dentro del
folder que contenga las librerías y los archivos necesarios para
su correcta ejecución; para resolver esto, se añade la línea “—
onefile” al final, de la siguiente manera

Pyinstaller Ejercicio_10.py –n foobar --onefile

La anterior instrucción hace que se genere un ejecutable


.exe (foobar.exe que luego se renombra con el proyecto
deseado) completamente portable, el cual hace que se pueda
ejecutar en otros sistemas sin la necesidad de contar con
Python instalado.

Figura 4. Ejecutable generado por medio de freezing del


ejercicio en cuestión.

El funcionamiento de este ejecutable por medio del freezing


del programa se mostró en el desarrolló del ejercicio 10 del
presente trabajo. (Figura 3). La comprobación de los archivos
y carpetas generados al realizar el congelamiento del
programa Ejercicio10, se pueden verificar en los archivos
anexos.

CONCLUSIONES

1. El lenguaje Python se ha considerado como uno de


los lenguajes más utilizados en la actualidad debido a
su flexibilidad de código y sus amplias aplicaciones
en todos los sistemas electrónicos.
2. Los sistemas embebidos se han caracterizado por
evolucionar a medida que se va pasando la historia,
esto debido a que los lenguajes también han sido cada
vez más sencillos de entender y de aplicar a la

También podría gustarte