SlideShare una empresa de Scribd logo
1 de 74
Programación de
Sistemas
Embebidos
Profesor: Msc. Ronald Solis M.
Objetivo General
•Conocer los conceptos sobre sistemas
embebidos y sus aplicaciones industriales
y científicas, así como los elementos
necesarios para su desarrollo.
Objetivos Específicos
• Introducir a los estudiantes en el mundo de los sistemas
embebidos y sus aplicaciones.
• Conocer las plataformas para el desarrollo de aplicaciones
con sistemas embebidos.
• Saber que lenguajes son los mas utilizados en la
programación de sistemas embebidos.
• Conocer el proceso de diseño de un sistema embebido.
Temario
• Introducción a sistemas embebidos.
• Herramientas de desarrollo para sistemas embebidos, compiladores o
interpretadores, editor y simulador de ambiente embebido y uso de
lenguaje de alto nivel.
• Lenguajes de Programación para sistemas embebidos; Programación
estructurada, identificadores y palabras claves.
• Lenguajes de Programación para sistemas embebidos; Tipos de datos,
declaración de variables, constantes. (comparación entre c y python)
• Lenguajes de Programación para sistemas embebidos; Funciones y librerías
en lenguajes de alto nivel.
• Proceso de diseño de un sistema embebido
Introducción a sistemas
embebidos.
Temario
¿Qué es un Sistema Embebido?
• Se conoce como sistema embebido a un circuito electrónico computarizado que esta diseñado para
cumplir una labor especifica en un producto. Un dispositivo que ofrece confiabilidad, inteligencia,
conectividad, interacción con el entorno y/o productividad.
• Un sistema embebido o empotrado (integrado, incrustado) es un sistema de computación diseñado para
realizar una o algunas pocas funciones dedicadas, frecuentemente en un sistema de computación en
tiempo real. Al contrario de lo que ocurre con los ordenadores de propósito general (como por ejemplo una
computadora personal o PC) que están diseñados para cubrir un amplio rango de necesidades, los
sistemas embebidos se diseñan para cubrir necesidades específicas.
Temario
¿Qué es un Sistema Embebido?
• En un sistema embebido la mayoría de los componentes se encuentran incluidos en la placa base (tarjeta
de vídeo, audio, módem, etc.) y muchas veces los dispositivos resultantes no tienen el aspecto de lo que se
suele asociar a una computadora.
• Algunos ejemplos de sistemas embebidos podrían ser dispositivos como un taxímetro, un sistema de
control de acceso, la electrónica que controla una máquina expendedora o el sistema de control de una
fotocopiadora entre otras múltiples aplicaciones.
Temario
Entrevista
• https://www.youtube.com/watch?v=dFu4t5yGKfI
Ejemplos
• https://www.youtube.com/watch?v=gDLT5Jl5968
• Un compilador es un programa de software que transforma uno o varios
archivos de código fuente y genera un archivo en código de máquina
llamado ejecutable; este nuevo archivo es enviado al “target” para que lo
ejecute.
¿Qué es un Compilador?
Temario
• Un interpretador es un software que es instalado en el “target”, el cual está
preparado para recibir un archivo fuente editado; una vez el “target” recibe
la orden de ejecutar inicia el proceso de cambiar línea por línea de programa
a su respectivo código de máquina y ejecutar este código.
¿Qué es un Interpretador?
Temario
Diferencia
• El programa editado es llevado a la máquina que lo ejecutará finalmente, en este
caso un microcontrolador comúnmente llamado “target”, de dos formas posibles:
1. El programa es convertido a código de máquina al 100% y luego se ejecuta.
2. El programa es enviado al “target” tal cual fue editado, y éste toma línea por línea
y lo va convirtiendo a código de máquina a medida que va pasando por él.
• En el primer caso se dice que el código es compilado, y en el segundo caso, que el
código es interpretado.
Temario
Herramientas de desarrollo para
sistemas embebidos, compiladores o
interpretadores, editor y simulador de
ambiente embebido y uso de lenguaje
de alto nivel.
Temario
¿Qué es una plataforma de desarrollo?
Una plataforma de desarrollo es el ambiente o entorno de software
común en el cual se desenvuelve la programación de un grupo definido
de aplicaciones. Comúnmente se encuentra relacionada directamente
a un sistema operativo; sin embargo, también es posible encontrarla
ligada a una familia de lenguajes de programación o a una interfaz de
programación de aplicaciones (API, por las siglas en inglés: Application
Programming Interface). Cabe recordar que funciona como sistema
plataforma o multiusuario.
Plataformas de Desarrollo de escritorio
Temario
Arduino IDE
Temario
Link: https://www.arduino.cc/en/main/software
El entorno de desarrollo integrado (IDE) de Arduino es una aplicación
multiplataforma (para Windows, macOS, Linux ) que está escrita en
el lenguaje de programación Java. Se utiliza para escribir y cargar
programas en placas compatibles con Arduino, pero también, con la
ayuda de núcleos de terceros, se puede usar con placas de desarrollo
de otros proveedores.
Temario
MPLAB X IDE
Temario
Link: https://www.microchip.com/mplab/mplab-x-ide
MPLAB ® X Integrated Development Environment (IDE) es un programa
de software ampliable y altamente configurable que incorpora
herramientas poderosas para ayudarlo a descubrir, configurar,
desarrollar, depurar y calificar diseños integrados para la mayoría de los
microcontroladores y controladores de señales digitales de
Microchip. MPLAB X IDE funciona a la perfección con el ecosistema de
desarrollo de software y herramientas MPLAB, muchos de los cuales son
completamente gratuitos.
MPLAB X IDE
Temario
Link: https://www.microchip.com/mplab/mplab-x-ide
MPLAB X IDE trae una serie de características para ayudarlo a depurar rápidamente sus
proyectos y minimizar su tiempo de desarrollo. Algunas características más nuevas incluyen:
•Visualizador de datos: no es necesario comprar herramientas de visualización adicionales ya
que los datos de transmisión en tiempo real se pueden ver en el Visualizador de datos
•Vista de E / S: los estados de los pines se pueden verificar y manipular con la Vista de E / S
para una verificación rápida del hardware
•Recursos de diseño útiles: ahorre tiempo con enlaces útiles a bibliotecas de software, hojas de
datos y guías de usuario que se proporcionan automáticamente
•Fácil de usar: las definiciones de registro y bits ahora están a solo un clic de distancia
PlatformIO
• Está construido sobre el Código Visual Studio de Microsoft: editor gratuito, de código abierto y
con licencia MIT.
• Desarrollo rápido: C / C ++ Finalización inteligente de código y Smart Code Linter para un rápido
desarrollo profesional. Flujo de trabajo de proyectos múltiples con paneles múltiples. Temas
Soporte con colores oscuros y claros.
• Desarrollo Embebido: Sistema de compilación multiplataforma sin dependencias externas del
sistema operativo: más de 750 placas integradas , más de 30 plataformas de desarrollo , más de
20 marcos . Compatible con Arduino y ARM mbed.
• Depurador unificado: PIO Unified Debugger con soporte para múltiples arquitecturas y
plataformas de desarrollo que le permite depurar más de 250 placas integradas con
configuración cero.
Temario
Link:https://platformio.org/
Temario
PythonThonny IDE
• Thonny viene con Python 3.7 integrado, por lo que solo se necesita un
instalador simple y estás listo para aprender a programar. (También puede
usar una instalación de Python por separado, si es necesario). La interfaz de
usuario inicial se despoja de todas las características que pueden distraer a
los principiantes.
Temario
Link: https://thonny.org/
Temario
Link: https://thonny.org/
Quartus
Temario
Link:
https://www.intel.com/content/www/us/en/programmable/downloads
/download-center.html
Quartus II es una herramienta de software producida por Altera para el análisis y la síntesis de diseños
realizados en HDL.
Quartus II permite al desarrollador o desarrolladora compilar sus diseños, realizar análisis temporales,
examinar diagramas RTL y configurar el dispositivo de destino con el programador.
Con el programa de diseño Quartus ® II los diseñadores pueden usar los dispositivos HardCopy Stratix de
manera que puede prever y verificar su rendimiento, el cual resulta en promedio un 50 por ciento más rápido
que su FPGA equivalente. Además, en el flujo de diseño del HardCopy Stratix, Quartus II incluye una serie de
utilidades que reducen el tiempo de diseño. Como contraste adicional el bajo precio del Quartus II en
comparación con otras herramientas de diseño de ASIC.
Temario
Plataformas de desarrollo Online
Temario
Link: https://repl.it/
Editor
Temario
Link: https://notepad-plus-plus.org/downloads/
Simulador
Temario
Link: https://www.youtube.com/watch?v=HxfFValobIQ
Programación estructurada, identificadores y
palabras claves.
Temario
¿Qué es Programación estructurada?
• Es un paradigma de programación orientado a mejorar la claridad, calidad y
tiempo de desarrollo de un programa de computadora, utilizando
únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e
iteración (bucles for y while), considerando innecesario y contraproducente
el uso de la instrucción de transferencia incondicional (GOTO), que podría
conducir a "código espagueti", que es mucho más difícil de seguir y de
mantener, y era la causa de muchos errores de programación.
Temario
Identificadores en lenguaje C
• Un identificador es usado para dar nombre a un objeto. Este empieza por
una letra o el carácter “underscore” _, seguido por una letra o un dígito. Los
identificadores son sensibles a mayúscula y minúscula, de tal manera que
vBle1 es diferente de vBLE1 e identifican objetos diferentes. Un
identificador puede contener hasta 255 caracteres aunque en la práctica no
se recomiendan identificadores de más de 20 caracteres.
Temario
Identificadores en Python
• Los identificadores son los nombres que colocamos a las variables para identificar
una de otra. En la entrada anterior podrán observar que puse variables con los
nombres "x" y "y"; sin embargo, estas variables pueden tener tantos nombres
como se nos ocurran. Así, yo pude haber puesto, en lugar de "x", "naranjas"; y en
lugar de "y" pude haber puesto "tomates" y Python seguiría ejecutando el
programa de la misma manera. Pero hay ciertas restricciones que debemos de
considerar y es que Python tan solo admite una secuencia cualquiera conformada
por algunos de los siguientes caracteres:
• de la a a la z
• de la A a la Z
• números
• guiones bajos ( _ ) Temario
Identificadores en Python
• Versiones recientes de Python también admiten vocales con acentos; sin embargo,
tenemos que tener en cuenta algunos consejos y reglas para que nuestro código no
carezca de legibilidad, lo cual es importante para que nos sea más fácil identificar
variables en caso de que haya qué corregir o modificar nuestro programa:
• Python nota la diferencia entre mayúsculas y minúsculas, por lo tanto, variables como
"Promedio", "promedio", "PROMEDIO" y "proMEDio", son 4 identificadores diferentes
para Python.
• Evita identificadores que te dificulten la legibilidad de tu código. Por ejemplo, "hóla" o
"precIo" son identificadores que no facilitan la lectura y la misma identificación de las
variables. Por algo son llamados identificadores.
• Trata siempre de usar identificadores que tengan algo que ver con la información que
estaremos guardando en cada variable. Nunca uses una variable identificada como
"suma" cuando en realidad está siendo una resta o viceversa; o no utilices "mediana"
cuando en realidad estás calculando el promedio.
• Cuando quieras hacer identificadores que incluyan varias palabras utiliza el guión bajo y
evita escribir todas las palabras juntas, pues puede confundirte; por ejemplo: En lugar de
escribir "preciodelalechuga" escribe "precio_de_la_lechuga".
Temario
Tipos de datos, declaración de variables,
constantes. (comparación entre c y python)
Temario
Tipos de datos en C
C ofrece tres tipos de datos básicos:
• Números enteros definidos con la palabra clave int
• Letras o caracteres definidos con la palabra clave char
• Números reales o en coma flotante definidos con las palabras claves float o double
Temario
Números Enteros
Se definen con “int” y admiten de forma opcional dos prefijos
modificadores:
“short” y “long”: Modifica el tamaño en bits del entero. Existen por
tanto tres tipos de enteros: “int”, “short int” (que se puede abreviar
como “short”), y “long int” (que se puede abreviar como “long”).
El lenguaje C no define tamaños fijos para sus tipos de datos básicos.
Lo único que garantiza es que un short int tiene un tamaño menor o
igual que un int y este a su vez un tamaño menor o igual a un long
int. Esta característica del lenguaje ha complicado la creación de
programas que sean compatibles entre varias plataformas.
“unsigned”: define un número natural (mayor o igual a cero).
Temario
Letras y cadenas
• Las variables de tipo letra se declaran como “char”. Para referirse a una letra se
rodea de comillas simples: 'M'. Como las letras se representan internamente como
números, el lenguaje C permite realizar operaciones aritméticas como 'M' + 25.
• Las cadenas de texto o strings son simplemente tablas de “char”. Las funciones de
biblioteca para manipular estas cadenas asumen que el último byte tiene valor
cero. Las cadenas de texto se escriben en el programa rodeadas de dobles comillas
y contienen el valor cero al final. A continuación se muestran dos definiciones:
Temario
Números Reales
• Los números reales se definen con “float” o “double”. La diferencia entre ambas es la
precisión que ofrece su representación interna. Hay un número infinito de reales, pero se
representan con un número finito de bits. A mayor número de bits, mayor número de reales
se representan, y por tanto, mayor precisión. Los reales definidos con “double” tienen un
tamaño doble a los definidos con “float”. Al igual que en el caso de los enteros, el tamaño
de estas representaciones varía de una plataforma a otra.
• Algunas plataformas ofrecen números reales con tamaño mayor al “double” que se definen
como “long double”. Los tamaños típicos para los tipos “float”, “double” y “long double”
son 4, 8 y 12 bytes respectivamente. A continuación se muestran varias definiciones de
números reales.
Temario
Tipos de datos en Python
Particularidades los tipos de datos en Python.
• Tipos dinámicos.
Python es un lenguaje que no requiere que se defina el tipo de un objeto. El intérprete "infiere" el tipo de dato del que se trata.
• Fuertemente tipado.
Existen operaciones que no están permitidas entre tipos que no sean compatibles.
• Los tipos son clases.
En Python todos sus elementos son objetos y los datos una vez identificados, se convierten objetos instanciados del tipo al
que pertenecen.
Temario
Tipos Numéricos
Números enteros (int).
Python identifica a los número enteros como un tipo de dato el cual puede ser expresado
de la siguiente manera.
Decimal: 24, 60
Binario: 0b010011, 0b1101
Hexadecimal: 0x18, 0x3cf4
Octal: 030, 074
Python 2 también identifica a un tipo llamado entero largo (long), al cual se le añadía la
letra "L" al final, pero ya no son reconocidos por Python 3.
Temario
Tipos Numéricos
Números de punto flotante (float).
Los objetos tipo float corresponden al conjunto de los números reales.
3.141595
12.
-45.3556
Precisión de los números flotantes.
Hay que tomar en cuenta de que la precisión de los números dependen en gran medida de la capacidad del equipo de cómputo,
por lo que en ocasiones una operación con números de tipo float no dará el resultado exacto, sino una aproximación.
Ejemplo:
2.0/3.0
0.6666666666666666
En este caso, es imposible para Python calcular una sucesión infinita de "6" y por ende truncó el número a 16 decimales.
Temario
Tipos Numéricos
Números complejos (complex).
Los objetos de tipo complex corresponden al conjunto de los números complejos.
Siempre que el componente en los números reales sea distinto de 0, los objetos de tipo complex
se expresarán como un par de números de tipo floatseparados por el operador de adición "+",
en el que el primer número corresponde al componente en los números reales y el componente
en los números imaginarios es identificado añadiéndole la letra "j" al final.
6.32 + 45j
0.117j
(2 + 0j)
1j
Temario
Tipos Numéricos
Valores booleanos (bool).
El tipo booleano es una especie de tipo numérico que es utilizado para evaluar
expresiones lógicas.
Si la expresión lógica es cierta, el resultado esTrue (con mayúscula al principio).
Si la expresión lógica NO es cierta, el resultado es False (con mayúscula al
principio).
False equivale numéricamente a 0. Cualquier otro número equivale a True y su
valor por defecto es 1.
Temario
Cadenas de caracteres
Cadenas de caracteres (str) .
Las cadenas de caracteres son secuencias de caracteres encerradas entre comillas (" ") o apóstrofes
(' ') indistintamente.
'Hola Mundo'
"Vamos al McDonald's“
None.
El tipo None representa un valor "vació".
Temario
Funciones y librerías en lenguajes de alto nivel.
Temario
Funciones en lenguaje C
La estructura general de una función en C es:
Donde:
• tipo_de_retorno: es el tipo del valor devuelto por la función, o, en caso de que la función no devuelva
valor alguno, la palabra reservada void.
• nombre_de_la_función: es el nombre o identificador asignado a la función.
• lista_de_parámetros: es la lista de declaración de los parámetros que son pasados a la función. Éstos se
separan por comas. Debemos tener en cuenta que pueden existir funciones que no utilicen parámetros.
• cuerpo_de_la_función: está compuesto por un conjunto de sentencias que llevan a cabo la tarea
específica para la cual ha sido creada la función.
• return expresión: mediante la palabra reservada return, se devuelve el valor de la función, en este caso
representado por expresión.
Temario
Temario
Librerias en lenguaje C
Temario
Librerias en lenguaje C
Temario
Funciones en Python
• Para declarar una función solo se debe poner la palabra "def" seguido del
nombre de la función, para el ejemplo le hemos puesto "sumar", en los
paréntesis deben ir los parámetros, ya hablaremos de eso más adelante, por
último la palabra "pass" es el contenido de la función. Siempre tengan en
cuenta la identación dentro de la función.
Temario
Funciones en Python
• Si bien en el ejemplo anterior creamos una función que suma 5 + 10
eso no es suficiente, ahora vamos a enviarle parámetros a esa
función y sumar los datos que le enviemos. Ahora el código.
Temario
Temario
Librerias de Python
• Requests
Es según sus creadores Python HTTP para humanos. La librería requests te
permitirá hacer peticiones por http de una manera sencilla. Cuando se hace
una petición, requests automáticamente decodificará el contenido extraido
de un servidor y la mayoría de caracteres unicode serán decodificados
correctamente.
Temario
Librerias de Python
• Requests
Ejemplo
Resultado
Temario
Librerias de Python
• tqdm
Barras de progreso para Python. Las barras de progreso son bastante útiles
porque ayudan a hacer que los trabajos de procesamiento de datos sean
menos dolorosos entre otras cosas porque mostrarán una estimación
confiable de cuánto tiempo tomará y el porque el usuario puede ver de
inmediato si una tarea se ha detenido.
Temario
Librerias de Python
• tqdm
Ejemplo
Resultado
Temario
Librerias de Python
• Pillow
Una herramienta para manipular imágenes. Es un fork de PIL y es más fácil de
usar, bastante útil si trabajas con imágenes frecuentemente.
Temario
Librerias de Python
• Pillow
Ejemplo
Temario
Librerias de Python
• Pillow
El resultado será una ventana con la imagen de tamaño diferente. Antes de
mostrar la ventana se creará una nueva imagen con el tamaño asignado.
Temario
Librerias de Python
• scrapy
Scrapy es framework que te permitirá rastrear sitios web y extraer datos
estructurados que pueden utilizarse para una amplia gama de aplicaciones,
como la extracción de datos, el procesamiento de información o el archivo
histórico.
Temario
Librerias de Python
• scrapy
Ejemplo
Temario
Librerias de Python
• Numpy
Es el paquete más usado para computación científica con Python. Contiene,
entre otras cosas:
• Un poderoso objeto de matriz N-dimensional
• Funciones sofisticadas (broadcasting)
• Herramientas para la integración de código C / C ++ y Fortran.
• Álgebra lineal útil, transformada de Fourier y capacidades de números
aleatorios.
Temario
Librerias de Python
• Pandas
• Es una biblioteca de código abierto con licencia BSD que proporciona
estructuras de datos de alto rendimiento, fáciles de usar y herramientas de
análisis de datos para el lenguaje de programación Python.
• Pretende ser un bloque de construcción fundamental para realizar análisis
prácticos de datos del mundo real con Python. Pandas es muy extenso y
para entender mejor todo lo que puedes hacer es mejor pasar por la página
del proyecto.
Temario
Librerias de Python
• Scapy
• Permite enviar, rastrear y diseccionar y falsificar paquetes de red. Esta capacidad
permite la construcción de herramientas que pueden sondear, escanear o atacar
redes.
• En otras palabras, Scapy es un poderoso programa interactivo de manipulación de
paquetes. Es capaz de forjar o decodificar paquetes de una gran cantidad de
protocolos, enviarlos por cable, capturarlos, hacer coincidir solicitudes y
respuestas, y mucho más. Scapy puede manejar fácilmente la mayoría de las
tareas clásicas como escaneo, rastreo de rutas, sondeo, pruebas unitarias, ataques
o descubrimiento de redes. Puede reemplazar hping, arpspoof, arp-sk, arping, p0f
e incluso algunas partes de Nmap, tcpdump y tshark)
Temario
Librerias de Python
• Matplotlib
Matplotlib es una biblioteca de trazado 2D que produce gráficas de buena
calidad en una variedad de formatos y entornos interactivos. Podrás generar
gráficas, histogramas, espectros de potencia, gráficas de barras, gráficas de
errores, diagramas de dispersión, etc., con unas pocas líneas de código.
Temario
Librerias de Python
• Kivy
Es una biblioteca de software de código abierto para el rápido desarrollo de
aplicaciones equipadas con interfaces de usuario novedosas, como las
aplicaciones multitáctiles. Es proyecto multiplataforma con un módulo
para Python 2 y Python 3.
Temario
Librerias de Python
• Nltk
NLTK es una plataforma líder para la creación de programas en Python para
trabajar con datos en lenguaje humano. Proporciona interfaces fáciles de usar
para más de 50 recursos corporales y léxicos, como WordNet, junto con un
conjunto de bibliotecas de procesamiento de texto para clasificación,
tokenización, derivación, etiquetado, análisis y razonamiento semántico,
wrappers para bibliotecas NLP muy solidas.
Temario
Librerias de Python
• Keras
Es una API de redes neuronales de alto nivel, escrita en Python y capaz de
ejecutarse sobre TensorFlow, CNTK o Theano. Fue desarrollada para permitir
a los desarrolladores experimentación rápida. Con al filosofía de «Poder pasar
de la idea al resultado con el menor retraso posible es clave para hacer una
buena investigación».
Temario
Librerias de Python
• SQLAlchemy
• Es el kit de herramientas SQL para Python y un mapeador relacional de
objetos que ofrece a los desarrolladores de aplicaciones el máximo poder y
flexibilidad de SQL.
• Proporciona un conjunto completo de patrones de persistencia conocidos a
nivel empresarial, diseñados para el acceso a bases de datos eficientes y de
alto rendimiento.
Temario
Librerias de Python
• Django
Es un framwork web para Python de alto nivel que fomenta el desarrollo
rápido y el diseño limpio y pragmático. Creado por desarrolladores
experimentados, se encarga de gran parte de las complicaciones del desarrollo
web, por lo que podrás concentrarte en escribir aplicaciones sin necesidad de
reinventar la rueda. Es gratis y de código abierto.
Temario
Librerias de Python
• Twisted
Twisted es un framework de red que se basa en el paradigma de la
programación dirigida por eventos, quiere decir que los usuarios de Twisted
pueden escribir pequeños callbacks (retrollamadas) predefinidos en el
framework para realizar tareas complejas. Está bajo la licencia MIT.
Temario
Investigación
Proceso de diseño de un sistema embebido ??
Referencias
• Libro: Programación de Sistemas Embebidos en C. Gustavo Caleano. Editorial: Alfaomega.
• https://es.wikipedia.org/wiki/Sistema_embebido
• https://www.ecured.cu/Programacion_estructurada
• https://travelerisallama.blogspot.com/2016/07/python-4-identificadores.html
• http://www.it.uc3m.es/pbasanta/asng/course_notes/data_types_es.html
• https://pythonista.io/cursos/py101/tipos-de-datos-basicos-y-operadores
• https://www.mheducation.es/bcv/guide/capitulo/8448148681.pdf
• https://es.wikipedia.org/wiki/Biblioteca_est%C3%A1ndar_de_C
• https://devcode.la/tutoriales/funciones-en-python/
• https://es.wikipedia.org/wiki/Plataforma_de_desarrollo
• http://decodigo.com/2019/03/librerias-mas-usadas-python.html

Más contenido relacionado

La actualidad más candente

Uso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorUso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorLuis Zurita
 
Sesion contadores y registros
Sesion  contadores y registrosSesion  contadores y registros
Sesion contadores y registrosMarco Antonio
 
Sistemas De Control Distribuido
Sistemas De Control DistribuidoSistemas De Control Distribuido
Sistemas De Control Distribuidoguest259ab3
 
Ejercicios de-programacic3b3n-resueltos-con-step-7
Ejercicios de-programacic3b3n-resueltos-con-step-7Ejercicios de-programacic3b3n-resueltos-con-step-7
Ejercicios de-programacic3b3n-resueltos-con-step-7Guido Carmona Girón
 
Unidad III: Polos y Ceros de una función de transferencia.
Unidad III: Polos y Ceros de una función de transferencia.Unidad III: Polos y Ceros de una función de transferencia.
Unidad III: Polos y Ceros de una función de transferencia.Mayra Peña
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador SintácticoPablo Guerra
 
Definiciones de control
Definiciones de controlDefiniciones de control
Definiciones de controlPaolo Castillo
 
CONTROL Y SUPERVISION DE LLENADO DE BOTELLAS CON PLC S7-1200 Y LABVIEW (SERVI...
CONTROL Y SUPERVISION DE LLENADO DE BOTELLAS CON PLC S7-1200 Y LABVIEW (SERVI...CONTROL Y SUPERVISION DE LLENADO DE BOTELLAS CON PLC S7-1200 Y LABVIEW (SERVI...
CONTROL Y SUPERVISION DE LLENADO DE BOTELLAS CON PLC S7-1200 Y LABVIEW (SERVI...UNIVERSIDAD NACIONAL DE TRUJILLO
 
Presentacion plcs
Presentacion plcsPresentacion plcs
Presentacion plcsRomuloz
 
Protocolos de comunicacion Industrial
Protocolos de comunicacion IndustrialProtocolos de comunicacion Industrial
Protocolos de comunicacion IndustrialJohan Silva Cueva
 

La actualidad más candente (20)

Uso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorUso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensamblador
 
Transistor Tip 41 C
Transistor Tip 41 CTransistor Tip 41 C
Transistor Tip 41 C
 
Presentacion sensores digitales y analogicos
Presentacion sensores digitales y analogicosPresentacion sensores digitales y analogicos
Presentacion sensores digitales y analogicos
 
Sesion contadores y registros
Sesion  contadores y registrosSesion  contadores y registros
Sesion contadores y registros
 
DIAGRAMAS DE TIEMPO
DIAGRAMAS DE TIEMPODIAGRAMAS DE TIEMPO
DIAGRAMAS DE TIEMPO
 
Compuertas logicas
Compuertas logicasCompuertas logicas
Compuertas logicas
 
TTL-CMOS
TTL-CMOSTTL-CMOS
TTL-CMOS
 
Conclusion de labview
Conclusion de labviewConclusion de labview
Conclusion de labview
 
Sistemas De Control Distribuido
Sistemas De Control DistribuidoSistemas De Control Distribuido
Sistemas De Control Distribuido
 
2da tarea de control
2da tarea de control2da tarea de control
2da tarea de control
 
Ejercicios de-programacic3b3n-resueltos-con-step-7
Ejercicios de-programacic3b3n-resueltos-con-step-7Ejercicios de-programacic3b3n-resueltos-con-step-7
Ejercicios de-programacic3b3n-resueltos-con-step-7
 
Unidad III: Polos y Ceros de una función de transferencia.
Unidad III: Polos y Ceros de una función de transferencia.Unidad III: Polos y Ceros de una función de transferencia.
Unidad III: Polos y Ceros de una función de transferencia.
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Definiciones de control
Definiciones de controlDefiniciones de control
Definiciones de control
 
REDES DE COMUNICACIÓN INDUSTRIAL MAS IMPORTANTES
REDES DE COMUNICACIÓN INDUSTRIAL MAS IMPORTANTESREDES DE COMUNICACIÓN INDUSTRIAL MAS IMPORTANTES
REDES DE COMUNICACIÓN INDUSTRIAL MAS IMPORTANTES
 
CONTROL Y SUPERVISION DE LLENADO DE BOTELLAS CON PLC S7-1200 Y LABVIEW (SERVI...
CONTROL Y SUPERVISION DE LLENADO DE BOTELLAS CON PLC S7-1200 Y LABVIEW (SERVI...CONTROL Y SUPERVISION DE LLENADO DE BOTELLAS CON PLC S7-1200 Y LABVIEW (SERVI...
CONTROL Y SUPERVISION DE LLENADO DE BOTELLAS CON PLC S7-1200 Y LABVIEW (SERVI...
 
Presentacion plcs
Presentacion plcsPresentacion plcs
Presentacion plcs
 
Protocolos de comunicacion Industrial
Protocolos de comunicacion IndustrialProtocolos de comunicacion Industrial
Protocolos de comunicacion Industrial
 
Protocolo comunicación serial
Protocolo comunicación serialProtocolo comunicación serial
Protocolo comunicación serial
 
MARLON
MARLONMARLON
MARLON
 

Similar a 01 T1 2021 Sistemas Embebidos.pptx

Similar a 01 T1 2021 Sistemas Embebidos.pptx (20)

Herramientas de programación para desarrolladores
Herramientas de programación para desarrolladoresHerramientas de programación para desarrolladores
Herramientas de programación para desarrolladores
 
Fundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicosFundamentos de Programacion - Unidad 1 conceptos basicos
Fundamentos de Programacion - Unidad 1 conceptos basicos
 
Diana marcela arias escobar
Diana marcela arias escobarDiana marcela arias escobar
Diana marcela arias escobar
 
Diana marcela arias es
Diana marcela arias esDiana marcela arias es
Diana marcela arias es
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Electonica de potencia, diodos de rectificacion
Electonica de potencia, diodos de rectificacionElectonica de potencia, diodos de rectificacion
Electonica de potencia, diodos de rectificacion
 
Exposición CASE - IDE
Exposición CASE - IDEExposición CASE - IDE
Exposición CASE - IDE
 
Software
Software Software
Software
 
Linux
LinuxLinux
Linux
 
Presentacion Informatica
Presentacion InformaticaPresentacion Informatica
Presentacion Informatica
 
01 - Introducción al lenguaje C
01 - Introducción al lenguaje C01 - Introducción al lenguaje C
01 - Introducción al lenguaje C
 
Tipos de software -- Katherine Nicole Ramos
Tipos de software  -- Katherine Nicole RamosTipos de software  -- Katherine Nicole Ramos
Tipos de software -- Katherine Nicole Ramos
 
Software
SoftwareSoftware
Software
 
Sistemas de informacion
Sistemas de informacionSistemas de informacion
Sistemas de informacion
 
Dueño de microsoft
Dueño de microsoftDueño de microsoft
Dueño de microsoft
 
Dueño de microsoft
Dueño de microsoftDueño de microsoft
Dueño de microsoft
 
Blog
BlogBlog
Blog
 
Software
SoftwareSoftware
Software
 
Software - marcello
Software - marcelloSoftware - marcello
Software - marcello
 
Code blocks & lenguaje c++
Code blocks & lenguaje c++Code blocks & lenguaje c++
Code blocks & lenguaje c++
 

Último

Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosJeanCarlosLorenzo1
 
Clase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxClase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxPaolaVillalba13
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...Arquitecto Alejandro Gomez cornejo muñoz
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdfRicardoRomeroUrbano
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionOsdelTacusiPancorbo
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)dianamateo1513
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxluisvalero46
 
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónEstacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónAlexisHernandez885688
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana5extraviado
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfAdelaHerrera9
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdffredyflores58
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdffredyflores58
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialyajhairatapia
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxHarryArmandoLazaroBa
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfJessLeonelVargasJimn
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRyanimarca23
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para PlataformasSegundo Silva Maguiña
 

Último (20)

Revista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de ProyectosRevista estudiantil, trabajo final Materia ingeniería de Proyectos
Revista estudiantil, trabajo final Materia ingeniería de Proyectos
 
Clase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptxClase 1 Análisis Estructura. Para Arquitectura pptx
Clase 1 Análisis Estructura. Para Arquitectura pptx
 
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
MEC. FLUIDOS - Análisis Diferencial del Movimiento de un Fluido -GRUPO5 sergi...
 
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf3.3 Tipos de conexiones en los transformadores trifasicos.pdf
3.3 Tipos de conexiones en los transformadores trifasicos.pdf
 
Peligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacionPeligros de Excavaciones y Zanjas presentacion
Peligros de Excavaciones y Zanjas presentacion
 
Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)Sistema de Gestión de Freelancers (Base de Datos)
Sistema de Gestión de Freelancers (Base de Datos)
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptx
 
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinaciónEstacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
Estacionamientos, Existen 3 tipos, y tienen diferentes ángulos de inclinación
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
 
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdfS454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
S454444444444444444_CONTROL_SET_A_GEOMN1204.pdf
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Descubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundialDescubrimiento de la penicilina en la segunda guerra mundial
Descubrimiento de la penicilina en la segunda guerra mundial
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptx
 
Fisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdfFisiología del azufre en plantas S.S.pdf
Fisiología del azufre en plantas S.S.pdf
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
 
Parámetros de Perforación y Voladura. para Plataformas
Parámetros de  Perforación y Voladura. para PlataformasParámetros de  Perforación y Voladura. para Plataformas
Parámetros de Perforación y Voladura. para Plataformas
 

01 T1 2021 Sistemas Embebidos.pptx

  • 2. Objetivo General •Conocer los conceptos sobre sistemas embebidos y sus aplicaciones industriales y científicas, así como los elementos necesarios para su desarrollo.
  • 3. Objetivos Específicos • Introducir a los estudiantes en el mundo de los sistemas embebidos y sus aplicaciones. • Conocer las plataformas para el desarrollo de aplicaciones con sistemas embebidos. • Saber que lenguajes son los mas utilizados en la programación de sistemas embebidos. • Conocer el proceso de diseño de un sistema embebido.
  • 4. Temario • Introducción a sistemas embebidos. • Herramientas de desarrollo para sistemas embebidos, compiladores o interpretadores, editor y simulador de ambiente embebido y uso de lenguaje de alto nivel. • Lenguajes de Programación para sistemas embebidos; Programación estructurada, identificadores y palabras claves. • Lenguajes de Programación para sistemas embebidos; Tipos de datos, declaración de variables, constantes. (comparación entre c y python) • Lenguajes de Programación para sistemas embebidos; Funciones y librerías en lenguajes de alto nivel. • Proceso de diseño de un sistema embebido
  • 6. ¿Qué es un Sistema Embebido? • Se conoce como sistema embebido a un circuito electrónico computarizado que esta diseñado para cumplir una labor especifica en un producto. Un dispositivo que ofrece confiabilidad, inteligencia, conectividad, interacción con el entorno y/o productividad. • Un sistema embebido o empotrado (integrado, incrustado) es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas, frecuentemente en un sistema de computación en tiempo real. Al contrario de lo que ocurre con los ordenadores de propósito general (como por ejemplo una computadora personal o PC) que están diseñados para cubrir un amplio rango de necesidades, los sistemas embebidos se diseñan para cubrir necesidades específicas. Temario
  • 7. ¿Qué es un Sistema Embebido? • En un sistema embebido la mayoría de los componentes se encuentran incluidos en la placa base (tarjeta de vídeo, audio, módem, etc.) y muchas veces los dispositivos resultantes no tienen el aspecto de lo que se suele asociar a una computadora. • Algunos ejemplos de sistemas embebidos podrían ser dispositivos como un taxímetro, un sistema de control de acceso, la electrónica que controla una máquina expendedora o el sistema de control de una fotocopiadora entre otras múltiples aplicaciones. Temario
  • 10. • Un compilador es un programa de software que transforma uno o varios archivos de código fuente y genera un archivo en código de máquina llamado ejecutable; este nuevo archivo es enviado al “target” para que lo ejecute. ¿Qué es un Compilador? Temario
  • 11. • Un interpretador es un software que es instalado en el “target”, el cual está preparado para recibir un archivo fuente editado; una vez el “target” recibe la orden de ejecutar inicia el proceso de cambiar línea por línea de programa a su respectivo código de máquina y ejecutar este código. ¿Qué es un Interpretador? Temario
  • 12. Diferencia • El programa editado es llevado a la máquina que lo ejecutará finalmente, en este caso un microcontrolador comúnmente llamado “target”, de dos formas posibles: 1. El programa es convertido a código de máquina al 100% y luego se ejecuta. 2. El programa es enviado al “target” tal cual fue editado, y éste toma línea por línea y lo va convirtiendo a código de máquina a medida que va pasando por él. • En el primer caso se dice que el código es compilado, y en el segundo caso, que el código es interpretado. Temario
  • 13. Herramientas de desarrollo para sistemas embebidos, compiladores o interpretadores, editor y simulador de ambiente embebido y uso de lenguaje de alto nivel. Temario
  • 14. ¿Qué es una plataforma de desarrollo? Una plataforma de desarrollo es el ambiente o entorno de software común en el cual se desenvuelve la programación de un grupo definido de aplicaciones. Comúnmente se encuentra relacionada directamente a un sistema operativo; sin embargo, también es posible encontrarla ligada a una familia de lenguajes de programación o a una interfaz de programación de aplicaciones (API, por las siglas en inglés: Application Programming Interface). Cabe recordar que funciona como sistema plataforma o multiusuario.
  • 15. Plataformas de Desarrollo de escritorio Temario
  • 16. Arduino IDE Temario Link: https://www.arduino.cc/en/main/software El entorno de desarrollo integrado (IDE) de Arduino es una aplicación multiplataforma (para Windows, macOS, Linux ) que está escrita en el lenguaje de programación Java. Se utiliza para escribir y cargar programas en placas compatibles con Arduino, pero también, con la ayuda de núcleos de terceros, se puede usar con placas de desarrollo de otros proveedores.
  • 18. MPLAB X IDE Temario Link: https://www.microchip.com/mplab/mplab-x-ide MPLAB ® X Integrated Development Environment (IDE) es un programa de software ampliable y altamente configurable que incorpora herramientas poderosas para ayudarlo a descubrir, configurar, desarrollar, depurar y calificar diseños integrados para la mayoría de los microcontroladores y controladores de señales digitales de Microchip. MPLAB X IDE funciona a la perfección con el ecosistema de desarrollo de software y herramientas MPLAB, muchos de los cuales son completamente gratuitos.
  • 19. MPLAB X IDE Temario Link: https://www.microchip.com/mplab/mplab-x-ide MPLAB X IDE trae una serie de características para ayudarlo a depurar rápidamente sus proyectos y minimizar su tiempo de desarrollo. Algunas características más nuevas incluyen: •Visualizador de datos: no es necesario comprar herramientas de visualización adicionales ya que los datos de transmisión en tiempo real se pueden ver en el Visualizador de datos •Vista de E / S: los estados de los pines se pueden verificar y manipular con la Vista de E / S para una verificación rápida del hardware •Recursos de diseño útiles: ahorre tiempo con enlaces útiles a bibliotecas de software, hojas de datos y guías de usuario que se proporcionan automáticamente •Fácil de usar: las definiciones de registro y bits ahora están a solo un clic de distancia
  • 20.
  • 21. PlatformIO • Está construido sobre el Código Visual Studio de Microsoft: editor gratuito, de código abierto y con licencia MIT. • Desarrollo rápido: C / C ++ Finalización inteligente de código y Smart Code Linter para un rápido desarrollo profesional. Flujo de trabajo de proyectos múltiples con paneles múltiples. Temas Soporte con colores oscuros y claros. • Desarrollo Embebido: Sistema de compilación multiplataforma sin dependencias externas del sistema operativo: más de 750 placas integradas , más de 30 plataformas de desarrollo , más de 20 marcos . Compatible con Arduino y ARM mbed. • Depurador unificado: PIO Unified Debugger con soporte para múltiples arquitecturas y plataformas de desarrollo que le permite depurar más de 250 placas integradas con configuración cero. Temario Link:https://platformio.org/
  • 23. PythonThonny IDE • Thonny viene con Python 3.7 integrado, por lo que solo se necesita un instalador simple y estás listo para aprender a programar. (También puede usar una instalación de Python por separado, si es necesario). La interfaz de usuario inicial se despoja de todas las características que pueden distraer a los principiantes. Temario Link: https://thonny.org/
  • 25. Quartus Temario Link: https://www.intel.com/content/www/us/en/programmable/downloads /download-center.html Quartus II es una herramienta de software producida por Altera para el análisis y la síntesis de diseños realizados en HDL. Quartus II permite al desarrollador o desarrolladora compilar sus diseños, realizar análisis temporales, examinar diagramas RTL y configurar el dispositivo de destino con el programador. Con el programa de diseño Quartus ® II los diseñadores pueden usar los dispositivos HardCopy Stratix de manera que puede prever y verificar su rendimiento, el cual resulta en promedio un 50 por ciento más rápido que su FPGA equivalente. Además, en el flujo de diseño del HardCopy Stratix, Quartus II incluye una serie de utilidades que reducen el tiempo de diseño. Como contraste adicional el bajo precio del Quartus II en comparación con otras herramientas de diseño de ASIC.
  • 27. Plataformas de desarrollo Online Temario Link: https://repl.it/
  • 30. Programación estructurada, identificadores y palabras claves. Temario
  • 31. ¿Qué es Programación estructurada? • Es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación. Temario
  • 32. Identificadores en lenguaje C • Un identificador es usado para dar nombre a un objeto. Este empieza por una letra o el carácter “underscore” _, seguido por una letra o un dígito. Los identificadores son sensibles a mayúscula y minúscula, de tal manera que vBle1 es diferente de vBLE1 e identifican objetos diferentes. Un identificador puede contener hasta 255 caracteres aunque en la práctica no se recomiendan identificadores de más de 20 caracteres. Temario
  • 33. Identificadores en Python • Los identificadores son los nombres que colocamos a las variables para identificar una de otra. En la entrada anterior podrán observar que puse variables con los nombres "x" y "y"; sin embargo, estas variables pueden tener tantos nombres como se nos ocurran. Así, yo pude haber puesto, en lugar de "x", "naranjas"; y en lugar de "y" pude haber puesto "tomates" y Python seguiría ejecutando el programa de la misma manera. Pero hay ciertas restricciones que debemos de considerar y es que Python tan solo admite una secuencia cualquiera conformada por algunos de los siguientes caracteres: • de la a a la z • de la A a la Z • números • guiones bajos ( _ ) Temario
  • 34. Identificadores en Python • Versiones recientes de Python también admiten vocales con acentos; sin embargo, tenemos que tener en cuenta algunos consejos y reglas para que nuestro código no carezca de legibilidad, lo cual es importante para que nos sea más fácil identificar variables en caso de que haya qué corregir o modificar nuestro programa: • Python nota la diferencia entre mayúsculas y minúsculas, por lo tanto, variables como "Promedio", "promedio", "PROMEDIO" y "proMEDio", son 4 identificadores diferentes para Python. • Evita identificadores que te dificulten la legibilidad de tu código. Por ejemplo, "hóla" o "precIo" son identificadores que no facilitan la lectura y la misma identificación de las variables. Por algo son llamados identificadores. • Trata siempre de usar identificadores que tengan algo que ver con la información que estaremos guardando en cada variable. Nunca uses una variable identificada como "suma" cuando en realidad está siendo una resta o viceversa; o no utilices "mediana" cuando en realidad estás calculando el promedio. • Cuando quieras hacer identificadores que incluyan varias palabras utiliza el guión bajo y evita escribir todas las palabras juntas, pues puede confundirte; por ejemplo: En lugar de escribir "preciodelalechuga" escribe "precio_de_la_lechuga". Temario
  • 35. Tipos de datos, declaración de variables, constantes. (comparación entre c y python) Temario
  • 36. Tipos de datos en C C ofrece tres tipos de datos básicos: • Números enteros definidos con la palabra clave int • Letras o caracteres definidos con la palabra clave char • Números reales o en coma flotante definidos con las palabras claves float o double Temario
  • 37. Números Enteros Se definen con “int” y admiten de forma opcional dos prefijos modificadores: “short” y “long”: Modifica el tamaño en bits del entero. Existen por tanto tres tipos de enteros: “int”, “short int” (que se puede abreviar como “short”), y “long int” (que se puede abreviar como “long”). El lenguaje C no define tamaños fijos para sus tipos de datos básicos. Lo único que garantiza es que un short int tiene un tamaño menor o igual que un int y este a su vez un tamaño menor o igual a un long int. Esta característica del lenguaje ha complicado la creación de programas que sean compatibles entre varias plataformas. “unsigned”: define un número natural (mayor o igual a cero). Temario
  • 38. Letras y cadenas • Las variables de tipo letra se declaran como “char”. Para referirse a una letra se rodea de comillas simples: 'M'. Como las letras se representan internamente como números, el lenguaje C permite realizar operaciones aritméticas como 'M' + 25. • Las cadenas de texto o strings son simplemente tablas de “char”. Las funciones de biblioteca para manipular estas cadenas asumen que el último byte tiene valor cero. Las cadenas de texto se escriben en el programa rodeadas de dobles comillas y contienen el valor cero al final. A continuación se muestran dos definiciones: Temario
  • 39. Números Reales • Los números reales se definen con “float” o “double”. La diferencia entre ambas es la precisión que ofrece su representación interna. Hay un número infinito de reales, pero se representan con un número finito de bits. A mayor número de bits, mayor número de reales se representan, y por tanto, mayor precisión. Los reales definidos con “double” tienen un tamaño doble a los definidos con “float”. Al igual que en el caso de los enteros, el tamaño de estas representaciones varía de una plataforma a otra. • Algunas plataformas ofrecen números reales con tamaño mayor al “double” que se definen como “long double”. Los tamaños típicos para los tipos “float”, “double” y “long double” son 4, 8 y 12 bytes respectivamente. A continuación se muestran varias definiciones de números reales. Temario
  • 40. Tipos de datos en Python Particularidades los tipos de datos en Python. • Tipos dinámicos. Python es un lenguaje que no requiere que se defina el tipo de un objeto. El intérprete "infiere" el tipo de dato del que se trata. • Fuertemente tipado. Existen operaciones que no están permitidas entre tipos que no sean compatibles. • Los tipos son clases. En Python todos sus elementos son objetos y los datos una vez identificados, se convierten objetos instanciados del tipo al que pertenecen. Temario
  • 41. Tipos Numéricos Números enteros (int). Python identifica a los número enteros como un tipo de dato el cual puede ser expresado de la siguiente manera. Decimal: 24, 60 Binario: 0b010011, 0b1101 Hexadecimal: 0x18, 0x3cf4 Octal: 030, 074 Python 2 también identifica a un tipo llamado entero largo (long), al cual se le añadía la letra "L" al final, pero ya no son reconocidos por Python 3. Temario
  • 42. Tipos Numéricos Números de punto flotante (float). Los objetos tipo float corresponden al conjunto de los números reales. 3.141595 12. -45.3556 Precisión de los números flotantes. Hay que tomar en cuenta de que la precisión de los números dependen en gran medida de la capacidad del equipo de cómputo, por lo que en ocasiones una operación con números de tipo float no dará el resultado exacto, sino una aproximación. Ejemplo: 2.0/3.0 0.6666666666666666 En este caso, es imposible para Python calcular una sucesión infinita de "6" y por ende truncó el número a 16 decimales. Temario
  • 43. Tipos Numéricos Números complejos (complex). Los objetos de tipo complex corresponden al conjunto de los números complejos. Siempre que el componente en los números reales sea distinto de 0, los objetos de tipo complex se expresarán como un par de números de tipo floatseparados por el operador de adición "+", en el que el primer número corresponde al componente en los números reales y el componente en los números imaginarios es identificado añadiéndole la letra "j" al final. 6.32 + 45j 0.117j (2 + 0j) 1j Temario
  • 44. Tipos Numéricos Valores booleanos (bool). El tipo booleano es una especie de tipo numérico que es utilizado para evaluar expresiones lógicas. Si la expresión lógica es cierta, el resultado esTrue (con mayúscula al principio). Si la expresión lógica NO es cierta, el resultado es False (con mayúscula al principio). False equivale numéricamente a 0. Cualquier otro número equivale a True y su valor por defecto es 1. Temario
  • 45. Cadenas de caracteres Cadenas de caracteres (str) . Las cadenas de caracteres son secuencias de caracteres encerradas entre comillas (" ") o apóstrofes (' ') indistintamente. 'Hola Mundo' "Vamos al McDonald's“ None. El tipo None representa un valor "vació". Temario
  • 46. Funciones y librerías en lenguajes de alto nivel. Temario
  • 47. Funciones en lenguaje C La estructura general de una función en C es: Donde: • tipo_de_retorno: es el tipo del valor devuelto por la función, o, en caso de que la función no devuelva valor alguno, la palabra reservada void. • nombre_de_la_función: es el nombre o identificador asignado a la función. • lista_de_parámetros: es la lista de declaración de los parámetros que son pasados a la función. Éstos se separan por comas. Debemos tener en cuenta que pueden existir funciones que no utilicen parámetros. • cuerpo_de_la_función: está compuesto por un conjunto de sentencias que llevan a cabo la tarea específica para la cual ha sido creada la función. • return expresión: mediante la palabra reservada return, se devuelve el valor de la función, en este caso representado por expresión. Temario
  • 51. Funciones en Python • Para declarar una función solo se debe poner la palabra "def" seguido del nombre de la función, para el ejemplo le hemos puesto "sumar", en los paréntesis deben ir los parámetros, ya hablaremos de eso más adelante, por último la palabra "pass" es el contenido de la función. Siempre tengan en cuenta la identación dentro de la función. Temario
  • 52. Funciones en Python • Si bien en el ejemplo anterior creamos una función que suma 5 + 10 eso no es suficiente, ahora vamos a enviarle parámetros a esa función y sumar los datos que le enviemos. Ahora el código. Temario
  • 54. Librerias de Python • Requests Es según sus creadores Python HTTP para humanos. La librería requests te permitirá hacer peticiones por http de una manera sencilla. Cuando se hace una petición, requests automáticamente decodificará el contenido extraido de un servidor y la mayoría de caracteres unicode serán decodificados correctamente. Temario
  • 55. Librerias de Python • Requests Ejemplo Resultado Temario
  • 56. Librerias de Python • tqdm Barras de progreso para Python. Las barras de progreso son bastante útiles porque ayudan a hacer que los trabajos de procesamiento de datos sean menos dolorosos entre otras cosas porque mostrarán una estimación confiable de cuánto tiempo tomará y el porque el usuario puede ver de inmediato si una tarea se ha detenido. Temario
  • 57. Librerias de Python • tqdm Ejemplo Resultado Temario
  • 58. Librerias de Python • Pillow Una herramienta para manipular imágenes. Es un fork de PIL y es más fácil de usar, bastante útil si trabajas con imágenes frecuentemente. Temario
  • 59. Librerias de Python • Pillow Ejemplo Temario
  • 60. Librerias de Python • Pillow El resultado será una ventana con la imagen de tamaño diferente. Antes de mostrar la ventana se creará una nueva imagen con el tamaño asignado. Temario
  • 61. Librerias de Python • scrapy Scrapy es framework que te permitirá rastrear sitios web y extraer datos estructurados que pueden utilizarse para una amplia gama de aplicaciones, como la extracción de datos, el procesamiento de información o el archivo histórico. Temario
  • 62. Librerias de Python • scrapy Ejemplo Temario
  • 63. Librerias de Python • Numpy Es el paquete más usado para computación científica con Python. Contiene, entre otras cosas: • Un poderoso objeto de matriz N-dimensional • Funciones sofisticadas (broadcasting) • Herramientas para la integración de código C / C ++ y Fortran. • Álgebra lineal útil, transformada de Fourier y capacidades de números aleatorios. Temario
  • 64. Librerias de Python • Pandas • Es una biblioteca de código abierto con licencia BSD que proporciona estructuras de datos de alto rendimiento, fáciles de usar y herramientas de análisis de datos para el lenguaje de programación Python. • Pretende ser un bloque de construcción fundamental para realizar análisis prácticos de datos del mundo real con Python. Pandas es muy extenso y para entender mejor todo lo que puedes hacer es mejor pasar por la página del proyecto. Temario
  • 65. Librerias de Python • Scapy • Permite enviar, rastrear y diseccionar y falsificar paquetes de red. Esta capacidad permite la construcción de herramientas que pueden sondear, escanear o atacar redes. • En otras palabras, Scapy es un poderoso programa interactivo de manipulación de paquetes. Es capaz de forjar o decodificar paquetes de una gran cantidad de protocolos, enviarlos por cable, capturarlos, hacer coincidir solicitudes y respuestas, y mucho más. Scapy puede manejar fácilmente la mayoría de las tareas clásicas como escaneo, rastreo de rutas, sondeo, pruebas unitarias, ataques o descubrimiento de redes. Puede reemplazar hping, arpspoof, arp-sk, arping, p0f e incluso algunas partes de Nmap, tcpdump y tshark) Temario
  • 66. Librerias de Python • Matplotlib Matplotlib es una biblioteca de trazado 2D que produce gráficas de buena calidad en una variedad de formatos y entornos interactivos. Podrás generar gráficas, histogramas, espectros de potencia, gráficas de barras, gráficas de errores, diagramas de dispersión, etc., con unas pocas líneas de código. Temario
  • 67. Librerias de Python • Kivy Es una biblioteca de software de código abierto para el rápido desarrollo de aplicaciones equipadas con interfaces de usuario novedosas, como las aplicaciones multitáctiles. Es proyecto multiplataforma con un módulo para Python 2 y Python 3. Temario
  • 68. Librerias de Python • Nltk NLTK es una plataforma líder para la creación de programas en Python para trabajar con datos en lenguaje humano. Proporciona interfaces fáciles de usar para más de 50 recursos corporales y léxicos, como WordNet, junto con un conjunto de bibliotecas de procesamiento de texto para clasificación, tokenización, derivación, etiquetado, análisis y razonamiento semántico, wrappers para bibliotecas NLP muy solidas. Temario
  • 69. Librerias de Python • Keras Es una API de redes neuronales de alto nivel, escrita en Python y capaz de ejecutarse sobre TensorFlow, CNTK o Theano. Fue desarrollada para permitir a los desarrolladores experimentación rápida. Con al filosofía de «Poder pasar de la idea al resultado con el menor retraso posible es clave para hacer una buena investigación». Temario
  • 70. Librerias de Python • SQLAlchemy • Es el kit de herramientas SQL para Python y un mapeador relacional de objetos que ofrece a los desarrolladores de aplicaciones el máximo poder y flexibilidad de SQL. • Proporciona un conjunto completo de patrones de persistencia conocidos a nivel empresarial, diseñados para el acceso a bases de datos eficientes y de alto rendimiento. Temario
  • 71. Librerias de Python • Django Es un framwork web para Python de alto nivel que fomenta el desarrollo rápido y el diseño limpio y pragmático. Creado por desarrolladores experimentados, se encarga de gran parte de las complicaciones del desarrollo web, por lo que podrás concentrarte en escribir aplicaciones sin necesidad de reinventar la rueda. Es gratis y de código abierto. Temario
  • 72. Librerias de Python • Twisted Twisted es un framework de red que se basa en el paradigma de la programación dirigida por eventos, quiere decir que los usuarios de Twisted pueden escribir pequeños callbacks (retrollamadas) predefinidos en el framework para realizar tareas complejas. Está bajo la licencia MIT. Temario
  • 73. Investigación Proceso de diseño de un sistema embebido ??
  • 74. Referencias • Libro: Programación de Sistemas Embebidos en C. Gustavo Caleano. Editorial: Alfaomega. • https://es.wikipedia.org/wiki/Sistema_embebido • https://www.ecured.cu/Programacion_estructurada • https://travelerisallama.blogspot.com/2016/07/python-4-identificadores.html • http://www.it.uc3m.es/pbasanta/asng/course_notes/data_types_es.html • https://pythonista.io/cursos/py101/tipos-de-datos-basicos-y-operadores • https://www.mheducation.es/bcv/guide/capitulo/8448148681.pdf • https://es.wikipedia.org/wiki/Biblioteca_est%C3%A1ndar_de_C • https://devcode.la/tutoriales/funciones-en-python/ • https://es.wikipedia.org/wiki/Plataforma_de_desarrollo • http://decodigo.com/2019/03/librerias-mas-usadas-python.html