Bien, en esta segunda parte nos introducimos al cuarto semestre. Habiendo ya pasado un semestre lleno de temas como programación, redes, electrónica y demás, es hora de recordar todo lo anterior y, para esto, en este primer parcial nos dedicamos básicamente a recordar lo visto anteriormente, haciendo desde una topología en Packet Tracer, hasta volver a programar una serie de leds en la placa arduino.
Como ya he mencionado antes, lo primero que repasamos fue Packet Tracer, haciendo un pequeño ejercicio con un router, brindándole internet a unas computadoras que colocamos en el plano. Quedó algo así:
(Enlaces de descarga más abajo)
De ahí, realizamos trabajos en C++ para recordar lo básico visto antes:
1.- Determinar qué número es mayor
2.- Ejemplo de suma 1:
3.- Ejemplo de suma 2:
4.- Resta
5.- Multiplicación
6.- División
7.- Calculadora completa
Enlace de descarga a todos los archivos anteriores:
https://drive.google.com/open?id=1ltFgEs30AwIhSi5Ay3z9Gjgpiu56kXCx
Posterior a esto, lo único que hicimos fue recordar un poco de electrónica, encendiendo unos leds en arduino en base a un código preestablecido. Hicimos un video y quedó algo así:
Ahora bien, toca realizar el trabajo final de parcial en Arduino. Nuestro equipo se dedicó a hacer funcionar un fotoresistor, el cual va a hacer que, mediante este sensor y su sensibilidad, se enciendasn los leds gradualmente cada que se ausenta la luz. He aquí nuestro video y, con ello, nuestro código.
Código:
int pinldr = A0;int pinled1 = 10;
int pinled2 = 9;
int pinled3 = 8;
int pinled4 = 7;
int sen = A0;
void setup(){
Serial.begin(9600);
pinMode (pinled1, OUTPUT);
pinMode (pinled2, OUTPUT);
pinMode (pinled3, OUTPUT);
pinMode (pinled4, OUTPUT);
pinMode (pinldr, INPUT);
}
void loop(){
int ldrstatus = analogRead (pinldr);
Serial.println( ldrstatus);
if(ldrstatus < 20){
digitalWrite (pinled1, HIGH);
digitalWrite (pinled2, HIGH);
digitalWrite (pinled3, HIGH);
digitalWrite (pinled4, HIGH);
Serial.println ("...4 leds encendidos...");}
else if(ldrstatus < 50){
digitalWrite (pinled1, HIGH);
digitalWrite (pinled2, HIGH);
digitalWrite (pinled3, HIGH);
digitalWrite (pinled4, LOW);
Serial.println ("...3 leds encendidos...");
}
else if(ldrstatus < 70){
digitalWrite (pinled1, HIGH);
digitalWrite (pinled2, HIGH);
digitalWrite (pinled3, LOW);
digitalWrite (pinled4,LOW);
Serial.println ("...2 leds encendidos...");
}
else if(ldrstatus < 100){
digitalWrite (pinled1, HIGH);
digitalWrite (pinled2, LOW);
digitalWrite (pinled3, LOW);
digitalWrite (pinled4, LOW);
Serial.println ("...1 leds encendidos...");
}
else {
digitalWrite (pinled1, LOW);
digitalWrite (pinled2, LOW);
digitalWrite (pinled3, LOW);
digitalWrite (pinled4, LOW);
Serial.println ("...4 leds apagados...");
}
}
A partir de aquí y hasta nuevo aviso por decreto de la Secretaría de Educación Pública hemos tenido apoyo mediante clases en línea, usando plataformas como CISCO Webex Teams y una nueva y al parecer más estable, la cual es Jitsi Meet. En dichas plataformas hemos estado haciendo reuniones en la cuales estamos dando seguimiento al semestre en este segundo parcial, comenzando con temas como electrónica digital y analógica, para lo cual voy a definir y explicar un poco de ambas:
Electrónica digital:
La electrónica digital es la rama de la electrónica más moderna y que evoluciona más rápidamente. Se encarga de sistemas electrónicos en los que la información está codificada en estados discretos, a diferencia de los sistemas analógicos donde la información toma un rango continuo de valores.
Electrónica analógica:
La electrónica analógica es una rama de la electrónica que estudia los sistemas cuyas variables (tensión, corriente, etc.) varían de una forma continua en el tiempo y pueden tomar (al menos teóricamente) valores infinitos.
Analógica vs Digital: ¿Cuál es mejor? -Opinión-
Yo considero que la Electrónica digital es el futuro de las cosas, pues al tratarse de procesos meramente tecnológicos pueden seguir en constante progreso y evolución, además de economizar espacio y ser más eficientes.
Posterior a todo esto, comenzamos con sistema binario, decimal y hexadecimal, para lo cual nos dio una explicación sencilla de cómo convertir números decimales a binarios y viceversa, así de cómo convertir binario a hexadecimal y, de igual modo, viceversa.

Realizamos ejercicios de tarea:
Y después un programa en C++ en el cual nos pide realizar lo mismo que en las actividades. Yo hice dos programas: uno que convierte de decimal a binario y otro que convierte de binario a decimal. Quedaron más o menos así:
Programa 1:
Programa 2:
Link de programas: https://drive.google.com/open?id=1XT91AhzJs9owYhYygj0gQkJILx-fLdKH
El sistema binario
Se trata de un sistema de codificación, el cual consta únicamente de dos cifras: el cero (0) y el uno (1). Los valores de los mismos van en incremento de dos en dos, y sólamente se aplicará el cargo de ese valor a la posición que contenga el número 1. Es decir, algo como lo siguiente:
Se puede transformar tanto de un número binario a uno decimal como de uno decimal a uno binario. Considero que es sencillo, a decir verdad.
Sabiendo esto, continuamos con la clase y resolvimos algunos ejercicios como los puestos en la siguiente tabla:
A partir de aquí comenzamos con compuertas digitales, las cuales son entradas de 2 dígitos que permitirán la salida de un único y tercer dígito, y hay de diferentes tipos, y las tablas de verdad son tablas donde van anotados todas las combinaciones que pueden entrar y salir de las compuertas.
(las compuertas vienen explicadas en un video más adelante). Ahora bien realizamos 2 ejercicios: uno en clase:

En el cual debemos plantear lo siguiente:
¿Cuáles interruptores deben estar encendidos?, pues para eso hacemos nuestra propia tabla de verdad estableciendo unos parámetros:
-AND = P
-NOR = Q
-OR = R
-XOR = S
-P depende de A y B
-Q depende de B y C
-R depende de P y Q
-S depende de R y C
-X es igual a S
Una vez establecido esto, podemos hacer una tabla con todos los casos posibles:
Dependiendo del numero de interruptores que halla se llamará "n", y la operación para saber cuantas filas hay es: F=2^n, y la acomodación es similar de alguna forma al código binario.
En este caso son 3 interruptores y 2^3=8, por lo que hay 8 acomodaciones posibles, y la forma de escribirlas es en forma cíclica de mitades:
La primera columna tendrá mitad de filas en 0 y la otra mitad en 1, como pueden observar, en A hay 4 ceros y 4 unos.
En B, se irá de forma cíclica de la mitad de 4, es decir 2, 2 ceros, luego 2 unos y 2 ceros y así hasta llenar las 8 filas.
La mitad de 2 es 1, así que en C se irán de uno en uno, 0, 1, 0, 1..., hasta llenar las 8 filas.
Si hay 4 columnas pues serán 16 combinaciones, la primera divida en mitades de 8, la segunda en partes de 4, la tercera en partes de 2, la cuarta en alternancia, lo mismo si son 5 columnas, 6 , 10, 20, todo se basa en potencias de 2, igual que el código binario.
Todo lo anterior para resolver el primer ejercicio.
Ahora, de tarea nos encargó un circuito similar, para el cual se nos pregunta que cuál es la combinación de interruptores para que el robot funcione, como se ve en la imagen:

Aquí nos pide encontrar la combinación correcta de interruptores para encender un robot, es decir, 2^4=16, de esas 16 formas solo una hará que X sea 1, y las otras 15 solo harán que X sea 0, usando el mismo método de antes y analizando que compuertas son cada una hacemos nuestra tabla de verdad.
Una vez hecho esto podemos elegir cual de todas las configuraciones es aquella que nos permitirá encender el robot, la cual es prender A, B y D.
A continuación, realizamos un video en el cual explicamos más a detalle el álgebra de Boole, las compuertas lógicas y su aplicación en Arduino.
Cabe mencionar que fue un trabajo realizado por:
- Morales Rodríguez Fernando
- Chung Domínguez Emiliano
- Estudillo Collado Jair
Con esto concluimos nuestro segundo parcial. :)
Tercer parcial: Mapas de Karnaugh
Para comenzar: ¿Qué es un mapa de Karnaugh?
Tercer parcial: Mapas de Karnaugh
Para comenzar: ¿Qué es un mapa de Karnaugh?
Los Mapas de Karnaugh son una herramienta muy utilizada para la simplificación de circuitos lógicos. Cuando se tiene una función lógica con su tabla de verdad y se desea implementar esa función de la manera más económica posible se utiliza este método.
Ejemplo: Se tiene la siguiente tabla de verdad para tres variables. Se desarrolla la función lógica basada en ella. (primera forma canónica). Ver que en la fórmula se incluyen solamente las variables (A, B, C) cuando F cuando es igual a “1”. Si A en la tabla de verdad es “0” se pone A, si B = “1” se pone B, Si C = “0” se pone C, etc.
Ejemplo: Se tiene la siguiente tabla de verdad para tres variables. Se desarrolla la función lógica basada en ella. (primera forma canónica). Ver que en la fórmula se incluyen solamente las variables (A, B, C) cuando F cuando es igual a “1”. Si A en la tabla de verdad es “0” se pone A, si B = “1” se pone B, Si C = “0” se pone C, etc.


F = A B C + A B C + A B C + A B C + A B C + A B C
Una vez obtenida la función lógica, se implementa el mapa de Karnaugh. Este tiene 8 casillas que corresponden a 2n, donde n = 3 (número de variables (A, B, C)). Ver el diagrama arriba. La primera fila corresponde a A = 0 La segunda fila corresponde a A = 1 La primera columna corresponde a BC = 00 (B=0 y C=0).
La segunda columna corresponde a BC = 01 (B=0 y C=1) La tercera columna corresponde a BC = 11 (B=1 y C=1) La cuarta columna corresponde a BC = 10 (B=1 y C=0)
En el mapa de Karnaugh se han puesto “1” en las casillas que corresponden a los valores de F = “1” en la tabla de verdad. Tomar en cuenta la numeración de las filas de la tabla de verdad y la numeración de las casillas en el mapa de Karnaugh.
- Para el primer grupo (rojo): la simplificación da B (los “1”s de la tercera y cuarta columna corresponden a B sin negar)
- Para el segundo grupo (azul): la simplificación da A (los “1”s están en la fila inferior que corresponde a A sin negar).

Entonces el resultado es F = B + A ó F = A + B
Ejemplo: Una tabla de verdad como la de la derecha da la siguiente función booleana: F = A B C + A B C + A B C + A B C
Se ve claramente que la función es un reflejo del contenido de la tabla de verdad cuando F = “1”, Con esta ecuación se crea el mapa de Karnaugh y se escogen los grupos. Se lograron hacer 3 grupos de dos “1”s cada uno. Se puede ver que no es posible hacer grupos de 3, porque 3 no es potencia de 2. Se observa que hay una casilla que es compartida por los tres grupos.

La función simplificada es: F = A B+ A C + B C. Grupo en azul: A B, grupo marrón: A C, grupo verde:B C
Posterior a ver toda la teoría, nos encargaron algunos ejercicios relacionados al tema. Anexo aquí algunos ejemplos:
Y bueno, para proyecto final, en equipos nos juntamos para realizar un video que incluye todo lo visto, y quedó algo así:
Python
Comenzamos un curso de programación esencial en Python, para el cual nos dimoa de alta en la página de netacad.com, en la cual fuimos avanzando clase con clase por los distintos módulos que el curso nos ofrece. Conforme fuimos avanzando, fuimos realizado actividades y mini evaluaciones de lo que veíamos en clase.

Los ejercicios que fuimos realizando fueron variados pero muy sencillos. Abrimos el IDLE y comenzamos a realizar nuestros primeros programas:
Realizamos también un programa en el cual se le pedían unos datos al usuario y estos se imprimen junto con un texto predeterminado, dando como resultado lo siguiente:
Con respecto a los cursos que estuvimos realizando durante este parcial, nos inscribimos a un curso de introducción a la ciberseguridad, en el cual al terminarlo pudimos obtener un certificado en el mismo, el cual se puede anexar a nuestra curricula profesional en el fturo.
Cabe hacer mención de que este certificado viene por parte de CISCO, y no de la escuela, por lo tanto el mérito de obtenerlo se suele saborear mejor. :)
No hay comentarios:
Publicar un comentario