Skip to main content

SOFTWARE DE SISTEMA PART2

Page 1

TIPOS DE LENGIAJE DE PROGRAMACIÓN Los lenguajes de programación se clasifican en diferentes tipos según sus características y aplicaciones específicas. Aquí se presenta un resumen de los tipos principales:

7. Lenguajes de Programación Interpretados: No requieren compilación previa y son ejecutados línea por línea. Ejemplos: Python, JavaScript.

1. Lenguajes de Bajo Nivel:

8. Lenguajes de Programación Compilados: Requieren compilación previa para código ejecutable. Ejemplos: C, C++.

Se acercan a la arquitectura de la máquina. Requieren un conocimiento más profundo del hardware. Ejemplos: Ensamblador. 2. Lenguajes de Nivel Medio: Equilibran abstracción y control. Más legibles y portables que los de bajo nivel. Ejemplos: C. 3. Lenguajes de Alto Nivel: Altamente abstractos, distantes de la arquitectura de la máquina. Se centran en la productividad y claridad del código. Ejemplos: Python, Java, JavaScript.

9. Lenguajes de Programación de Scripting: Diseñados para la automatización de tareas. Ejemplos: Python, Bash. Cada tipo de lenguaje tiene sus propias ventajas y desventajas, y la elección depende del contexto, los requisitos del proyecto y las preferencias del programador. La diversidad en los tipos de lenguajes permite abordar una amplia gama de problemas en el desarrollo de software.

4. Lenguajes de Muy Alto Nivel (VHLL): Extremadamente abstractos y orientados a tareas específicas. Minimizan la necesidad de detalles de bajo nivel. Ejemplos: SQL (para bases de datos), HTML (para desarrollo web). 5. Lenguajes de Programación Funcional: Se centran en funciones matemáticas y expresiones. Ejemplos: Haskell, Lisp. 6. Lenguajes de Programación Orientados a Objetos: Organizan el código en objetos y clases. Ejemplos: Java, Python, C#.

generar

PARA MAYOR INFORMACIÓN ESCANÉAME


Completa las oraciones con la opción correcta: 1. ______ es un editor de código fuente de código abierto desarrollado por Microsoft y es ampliamente utilizado en el desarrollo web. a) Atom b) Sublime Text c) Visual Studio Code 2. Uno de los atractivos de ______ es su velocidad y ligereza, siendo un editor de texto avanzado utilizado para la edición de código fuente. a) Notepad b) Sublime Text c) Visual Studio 3. El atajo de teclado común para abrir una nueva pestaña en muchos editores de código es _____. a) Ctrl + N b) Ctrl + O c) Ctrl + T 4. El editor de texto _______ es conocido por su interfaz simple y su presencia en la mayoría de los sistemas operativos Unix y Linux. a) Visual Studio Code b) Nano c) Emacs 5. ______ es un editor de texto para programadores que ofrece muchas funciones avanzadas y es personalizable mediante complementos. a) Vim b) Notepad++ c) Visual Studio

Tipos de Lenguajes de Programación 1. Alto Nivel 2. Bajo Nivel 3. Intermedio 4. Scripting

Descripciones A. Lenguajes cercanos al código máquina, utilizados para la programación de sistemas y hardware. B. Diseñados para ser fáciles de entender y usar por los humanos, proporcionando abstracciones más altas. C. Una combinación de características de lenguajes de alto y bajo nivel. D. Lenguajes utilizados para la automatización de tareas, con énfasis en la simplicidad y velocidad de desarrollo.

REALCIONA LAS COLUMNAS

TIPOS DE LENGIAJE DE PROGRAMACIÓN


METODOLOGIA DE PROGRAMACIÓN

Las metodologías de programación son enfoques sistemáticos y estructurados para el desarrollo de software, que guían el proceso desde la concepción de la idea hasta la entrega del producto final. Aquí se presenta un resumen de algunas metodologías destacadas: 1. Modelo en Cascada: Características: Fases secuenciales y lineales. Planificación detallada desde el principio. Ventajas: Estructura clara. Documentación completa. Desventaja: Poca flexibilidad ante cambios. 2. Metodologías Ágiles (Scrum, Kanban): Características: Adaptabilidad y entrega iterativa. Enfoque en la colaboración y retroalimentación. Ventajas: Flexibilidad para cambios. Mejora continua Desventajas: Requiere una comunicación sólida.

5. Desarrollo Dirigido por Modelos (MDD): Características: Utiliza modelos visuales para generar código. Enfocado en la abstracción y la reutilización. Ventajas: Facilita la consistencia. Aumenta la eficiencia. Desventajas: Curva de aprendizaje. 6. Lean Programming: Características: Minimiza el desperdicio y maximiza el valor. Se centra en la eficiencia y la entrega continua. Ventajas: Optimización de recursos. Mejora la productividad. Desventajas: Puede ser difícil aplicar en todos los contextos.

la

Cada metodología tiene sus propias ventajas y desventajas, y la elección dependerá de los requisitos específicos del proyecto, las preferencias del equipo y la naturaleza del desarrollo de software.

3. Desarrollo Guiado por Pruebas (TDD): Características: Se escriben pruebas antes del código. Centrado en la funcionalidad y calidad. Ventajas: Mejora la calidad del código. Facilita el mantenimiento. Desventajas: Requiere una práctica constante. 4. Programación Extrema (XP): Características: Desarrollo rápido y frecuentes entregas. Colaboración estrecha entre equipos. Ventajas: Respuestas rápidas a cambios. Mejora la comunicación. Desventajas: Requiere un equipo altamente colaborativo.

PARA MAYOR INFORMACIÓN ESCANÉAME


METODOLOGIA DE PROGRAMACIÓN Completa las oraciones con la opción correcta: 1. La metodología ___ se centra en la entrega rápida y frecuente de software mediante iteraciones cortas y colaboración constante con el cliente. a) Cascada b) Ágil c) Espiral 2. ___ es una metodología de desarrollo de software que se basa en la planificación detallada y secuencial de las fases del proyecto. a) Ágil b) Cascada c) Prototipado. 3. La metodología ___ enfatiza la adaptabilidad y la flexibilidad, permitiendo ajustes durante todo el ciclo de desarrollo. a) Incremental b) Cascada c) Ágil


ENTORNO DE DESARROLLO EN PYTHON

El entorno de desarrollo en Python se refiere al conjunto de herramientas y configuraciones que facilitan la creación, prueba y mantenimiento de proyectos en este lenguaje de programación. Aquí se presenta un resumen de los aspectos clave: 1. Interprete de Python: Python utiliza un enfoque interpretado, permitiendo ejecutar código línea por línea. Facilita el desarrollo interactivo y la depuración. 2. Entornos Virtuales: Permite crear entornos aislados proyectos específicos. Evita conflictos de dependencias proyectos.

para entre

3. Gestores de Paquetes: pip: Herramienta estándar para instalar y gestionar paquetes de Python. Anaconda: Un gestor de paquetes y entorno para ciencia de datos con Python. 4. IDEs y Editores de Texto: PyCharm: Un IDE popular con funciones avanzadas como resaltado de sintaxis, depuración, y soporte para pruebas. Visual Studio Code: Un editor de código ligero y extensible con integración para Python. Jupyter Notebooks: Herramienta interactiva para combinación de código, texto y visualizaciones.

6. Herramientas de Pruebas: unittest: Módulo estándar para escribir y ejecutar pruebas unitarias. pytest: Framework de pruebas externo que simplifica la escritura de pruebas. 7. Sistemas de Control de Versiones: Git: Ampliamente utilizado para el control de versiones. GitHub, GitLab, Bitbucket: Plataformas populares para alojar proyectos Git. 8. Documentación: Sphinx: Herramienta para la generación de documentación. Fomenta la creación de documentación clara y legible. 9. Entornos en la Nube: AWS, Azure, Google Cloud:* Ofrecen servicios en la nube para implementar aplicaciones Python. Heroku:* Plataforma que facilita la implementación de aplicaciones web Python. En resumen, el entorno de desarrollo en Python cuenta con una amplia variedad de herramientas y opciones que se adaptan a las necesidades específicas de los proyectos. La elección de estas herramientas dependerá del tipo de desarrollo y las preferencias del programador.

5. Frameworks: Django: Para desarrollo web con énfasis en la simplicidad y la velocidad. Flask: Un framework más ligero para aplicaciones web, flexible y modular.

PARA MAYOR INFORMACIÓN ESCANÉAME


ENTORNO DE DESARROLLO EN PYTHON cuestionario de 5 preguntas sobre el entorno de desarrollo en Python: 1. ¿Cuál es un entorno de desarrollo popular para Python que ofrece características como autocompletado, depuración y administración de entornos virtuales? a) Atom b) Visual Studio c) PyCharm d) Sublime Text 2. ¿Qué comando se utiliza para crear un nuevo entorno virtual en Python usando la herramienta de línea de comandos? a) create env b) make venv c) virtualenv d) python -m venv 3. ¿Qué función cumple el archivo requirements.txt en un proyecto de Python? a) Almacena el código fuente del proyecto. b) Especifica los requisitos y dependencias del proyecto. c) Contiene la documentación del proyecto. d) Define las variables de entorno del proyecto. 4. ¿Qué comando se utiliza para instalar un paquete externo en un entorno virtual de Python? a) install package b) pip install c) add package d) python -m package 5. En un entorno de desarrollo, ¿cuál es la función principal de un sistema de control de versiones como Git? a) Administrar entornos virtuales. b) Seguir el historial de cambios en el código fuente. c) Depurar el código. d) Crear interfaces de usuario gráficas.


PROGRAMACIÓN ORIENTADA A OBJETOS

La Programación Orientada a Objetos (POO) es un paradigma de programación que se basa en la conceptualización y manipulación de "objetos", que son instancias de clases. Aquí se presenta un resumen de sus conceptos fundamentales: 1. Clases y Objetos: Clases: Definen la estructura y el comportamiento de un objeto. Objetos: Instancias específicas de una clase que encapsulan datos y funciones. 2. Encapsulamiento: Oculta los detalles internos de una clase y solo muestra lo que es necesario. Proporciona control de acceso a atributos y métodos.

3. Herencia: Permite a una clase heredar propiedades y métodos de otra. Facilita la reutilización de código y la organización jerárquica.

7. Mensajes y Comunicación: Los objetos se comunican enviándose mensajes entre sí. Facilita la interacción y colaboración entre objetos. 8. Ejemplo Básico: python class Coche: def __init__(self, marca, modelo): self.marca = marca self.modelo = modelo def acelerar(self): print(f"{self.marca} {self.modelo} acelerando.") mi_coche = Coche("Toyota", "Corolla") mi_coche.acelerar() En resumen, la Programación Orientada a Objetos organiza el código alrededor de entidades (objetos) que interactúan entre sí, proporcionando una estructura modular, reutilizable y fácil de entender. Los conceptos de clases, herencia, polimorfismo y encapsulamiento son fundamentales para este enfoque y ofrecen una manera efectiva de modelar y abordar problemas complejos en programación.

4. Polimorfismo: Permite que un objeto pueda tomar diferentes formas según el contexto. Facilita la implementación de interfaces y la flexibilidad en el diseño. 5. Abstracción: Simplifica un objeto a sus características y funciones esenciales. Enfoca la atención en lo relevante para un contexto específico. 6. Métodos y Atributos: Métodos: Funciones asociadas a una clase. Atributos: Variables asociadas a una clase.

PARA MAYOR INFORMACIÓN ESCANÉAME


PROGRAMACIÓN ORIENTADA A OBJETOS Ejercicio: 1. En POO, un objeto es una instancia de una _____ . a) Clase b) Método c) Variable d) Función 2. Un atributo en una clase representa _____. a) Una acción realizada por la clase. b) Un valor que caracteriza la instancia de la clase. c) Un método específico de la clase. d) Una variable local de la clase. 3. En Python, el método especial utilizado para inicializar objetos es _____. a) initialize() b) init() c) start() d) __init__() 4. El concepto de herencia en POO permite _____. a) Ocultar la implementación interna de una clase. b) Compartir atributos y métodos entre clases. c) Limitar el acceso a ciertos atributos. d) Crear instancias de una clase. 5. ¿Qué palabra clave se utiliza para referirse a la instancia actual dentro de un método de una clase en Python? a) self b) this c) instance d) object


OPERADORES ARITMÉTICOS Los operadores aritméticos son símbolos matemáticos que se utilizan en programación para realizar operaciones entre variables o valores numéricos. Los operadores aritméticos comunes incluyen: Suma (+): Se utiliza para sumar dos valores. Resta (-): Realiza la resta entre dos valores. Multiplicación (*): Multiplica dos valores. División (/): Divide el primer valor entre el segundo. Módulo (%): Devuelve el residuo de la división entre dos valores. Incremento (++) y Decremento (--): Aumenta o disminuye en uno el valor de una variable, respectivamente. Operadores de asignación compuestos (+=, -=, =, /=): Realizan la operación indicada y asignan el resultado a la variable.

EJEMPLO a=5 b=2 # Operadores aritméticos simples suma = a + b resta = a - b multiplicacion = a * b division = a / b modulo = a % b # Incremento y decremento a += 1 # Incrementa a en 1 b -= 1 # Decrementa b en 1 # Resultados print("Suma:", suma) print("Resta:", resta) print("Multiplicación:", multiplicacion) print("División:", division) print("Módulo:", modulo) print("Incremento de a:", a) print("Decremento de b:", b) Estos operadores son esenciales para realizar cálculos y manipulación de variables en programación.

PARA MAYOR INFORMACIÓN ESCANÉAME


OPERADORES ARITMÉTICOS ARMULTIPLICACION RESUMENRRERENUAT SAUMESTSUTRESUAD AEECONDICIONALDI RORESTARAICORICO RENEEDIVISIONTNA ADIISUMARSSATECA CIOOADICIONALOIO COMOERROCENTAJER IOSIROACENOMONSR OSDOCOIDAMODULOO Palabras a encontrar: 1. SUMA 2. RESTA 3. MULTIPLICACION 4. DIVISION 5. MODULO 6. INCREMENTO 7. DECREMENTO 8. CONDICIONAL 9. PORCENTAJE


VARIABLES Las variables son nombres simbólicos que representan espacios de almacenamiento para datos en programas de computadora. Algunos conceptos clave sobre variables incluyen: Declaración de variables: Se realiza asignando un nombre a un espacio de memoria y especificando el tipo de datos que contendrá. Por ejemplo, en muchos lenguajes de programación, puedes declarar una variable así: pythonCopy code edad = 25 Tipos de datos: Las variables pueden almacenar diferentes tipos de datos, como enteros, decimales, cadenas de texto, booleanos, entre otros. El tipo de datos determina la naturaleza de la información que puede contener la variable. pythonCopy code nombre = "Juan" salario = 1500.50 es_estudiante = False

Convenciones de nomenclatura: Es común seguir ciertas convenciones al nombrar variables, como utilizar nombres descriptivos y seguir un formato consistente. Por ejemplo, en Python, se recomienda el formato snake_case (palabras en minúsculas separadas por guiones bajos) para nombres de variables. pythonCopy code nombre_completo = "Ana García". Alcance de las variables: El alcance de una variable se refiere a la región del programa donde la variable puede ser utilizada. Variables locales están limitadas a la función o bloque donde fueron declaradas, mientras que las variables globales pueden ser accesibles desde cualquier parte del programa. Estos conceptos son fundamentales para entender cómo se almacenan y manipulan datos en un programa y cómo las variables juegan un papel clave en este proceso.

Asignación de valores: Las variables pueden cambiar su valor durante la ejecución del programa. Puedes asignar un nuevo valor simplemente utilizando el nombre de la variable. pythonCopy code edad = 25 edad = 26 Uso de variables en expresiones: Puedes utilizar variables en expresiones matemáticas u operaciones, lo que permite manipular datos de manera dinámica. pythonCopy code a=5 b=2 suma = a + b

PARA MAYOR INFORMACIÓN ESCANÉAME


VARIABLES Completa las oraciones con la opción correcta: 1. En programación, una variable es un espacio de almacenamiento que tiene un nombre y un _____. a) Color asignado b) Tipo de dato c) Peso específico 2. El proceso de reservar espacio en memoria para una variable se conoce como _____. a) Inicialización b) Asignación c) Declaración 3. En muchos lenguajes de programación, el signo igual (=) se utiliza para _____. a) Comparar valores b) Asignar valores a variables c) Incrementar valores 4. El nombre de una variable en programación debe seguir ciertas reglas, como comenzar con una letra o un _____. a) Número b) Carácter especial c) Espacio en blanco 5. ¿Cuál de las siguientes es una práctica común para nombrar variables en estilo snake_case? a) camelCase b) PascalCase c) kebab-case


CONSTANTES Las constantes son valores que no cambian durante la ejecución de un programa. Algunos aspectos clave sobre las constantes incluyen: Declaración de constantes: Se realiza asignando un valor fijo a un nombre simbólico durante la fase de desarrollo del programa. A diferencia de las variables, el valor de una constante no puede ser modificado después de la asignación inicial. pythonCopy code PI = 3.14159 LONGITUD_MAXIMA = 100 Convenciones de nomenclatura: Al igual que con las variables, se suelen seguir convenciones de nomenclatura al nombrar constantes. Los nombres suelen escribirse en mayúsculas, y las palabras pueden separarse con guiones bajos para mejorar la legibilidad. pythonCopy code

Beneficios: El uso de constantes mejora la legibilidad del código y facilita el mantenimiento, ya que los valores importantes están centralizados y son fáciles de identificar y modificar si es necesario. pythonCopy code DIAS_EN_SEMANA = 7 HORAS_EN_DIA = 24 horas_en_semana = HORAS_EN_DIA

DIAS_EN_SEMANA

*

Alcance de las constantes: Al igual que las variables, el alcance de una constante puede ser local o global, dependiendo de cómo se defina en el programa. En resumen, las constantes son valores invariables utilizados para representar información fija y significativa en un programa, mejorando la claridad del código y permitiendo cambios globales con facilidad.

VELOCIDAD_LUZ = 299792458 Uso de constantes: Se utilizan para representar valores fijos y significativos en un programa, como constantes matemáticas, tamaños máximos, valores límite, etc. Esto facilita la comprensión del código y permite realizar cambios globales al ajustar solo el valor de la constante. pythonCopy code radio_circulo = 5 area_circulo = PI * (radio_circulo ** 2)

PARA MAYOR INFORMACIÓN ESCANÉAME


CONSTANTES Completa las oraciones con la opción correcta: 1. Una constante en programación es un valor que no cambia durante la ejecución del programa y se define utilizando la palabra clave ____. a) constant b) define c) const d) value 2. En algunos lenguajes de programación, las constantes se escriben en mayúsculas para distinguirlas de las variables. Esto se conoce como notación ____. a) camelCase b) PascalCase c) UPPERCASE d) snake_case 3. ¿Cuál es el propósito principal de utilizar constantes en un programa? a) Permitir que el valor cambie durante la ejecución. b) Mejorar la legibilidad del código. c) Facilitar la inicialización de variables. d) Evitar el cambio accidental del valor. 4. En algunos lenguajes, se pueden definir constantes utilizando la palabra clave ____ en lugar de const. a) define b) final c) let d) constant 5. Una constante puede ser inicializada en el momento de su definición o en una sección especial llamada ____. a) initial b) setup c) initialization d) const_block


CONDICIONALES Las estructuras condicionales son elementos fundamentales en la programación que permiten tomar decisiones basadas en ciertas condiciones. Algunos aspectos clave sobre condicionales incluyen:

Anidamiento: Puedes anidar estructuras condicionales dentro de otras para manejar situaciones más complejas. pythonCopy code if condicion_1:

Declaración if: La declaración if se utiliza para ejecutar un bloque de código si una condición especificada es verdadera. La sintaxis básica es:

if condicion_2:

pythonCopy code if condicion:

else: # Bloque de código si la condicion_1 es falsa

Declaración else: Puedes usar la declaración else para especificar un bloque de código que se ejecutará si la condición en el if es falsa. pythonCopy code if condicion:

Ternary operator (operador ternario): Algunos lenguajes de programación, como Python, permiten el uso de un operador ternario para expresar condicionales de manera más concisa.

else: Declaración elif: La declaración elif (abreviatura de "else if") se utiliza para evaluar múltiples condiciones en secuencia. Se ejecuta el bloque de código asociado a la primera condición verdadera. pythonCopy code if condicion_1:

else:

pythonCopy code resultado = "par" if numero % 2 == 0 else "impar" Estas estructuras condicionales permiten que los programas tomen decisiones dinámicamente, ejecutando diferentes bloques de código según las condiciones establecidas.

elif condicion_2: else: Operadores de comparación: Las condiciones en las declaraciones if se construyen utilizando operadores de comparación como == (igual), != (no igual), < (menor que), > (mayor que), <= (menor o igual que), >= (mayor o igual que), entre otros. pythonCopy code if edad >= 18: print("Eres mayor de edad.") else: print("Eres menor de edad.")

PARA MAYOR INFORMACIÓN ESCANÉAME


CONDICIONALES CAOFBMJIPLEEDIAS IFSTATEMENTSNKEA TICONDITIONALSOC ELIFTGREATERWIDT LEOSPNEALCMETUCF SREPEATEDGUNMAOV EQUALSOBSMLESSYM DORFETURNLOOPSER 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.

Palabras a encontrar: CONDICIONALES IF ELSE ELIF STATEMENTS BOOLEAN GREATER LESS EQUALS REPEATED RETURN LOOPS


BUCLES Los bucles, también conocidos como ciclos, son estructuras que permiten la repetición de un bloque de código hasta que se cumple una condición específica. Hay dos tipos principales de bucles: bucles for y bucles while.

BUCLE WHILE:

BUCLE FOR:

pythonCopy code

Sintaxis básica: El bucle for se utiliza para iterar sobre una secuencia (como una lista, tupla, cadena de texto, etc.) y ejecutar un bloque de código para cada elemento. pythonCopy code for elemento in secuencia: Función range(): La función range() es comúnmente utilizada en bucles for para generar secuencias numéricas. pythonCopy code for i in range(5): Bucles anidados: Puedes anidar bucles for para iterar sobre múltiples dimensiones o secuencias. pythonCopy code for i in range(3): for j in range(2):

Sintaxis básica: El bucle while se utiliza para repetir un bloque de código mientras una condición sea verdadera.

while condicion: Incremento o decremento: Es común utilizar variables que se incrementan o decrementan en el bloque de código del bucle while para eventualmente hacer que la condición sea falsa y salir del bucle. pythonCopy code contador = 0 while contador < 5: contador += 1 Uso con precaución: Debe tenerse cuidado al usar bucles while para evitar bucles infinitos si la condición nunca se vuelve falsa. Control de bucles: Se pueden utilizar palabras clave como break para salir prematuramente del bucle, y continue para pasar a la siguiente iteración sin ejecutar el resto del código en el bucle. pythonCopy code while True: if condicion_de_salida: break

PARA MAYOR INFORMACIÓN ESCANÉAME

Los bucles son fundamentales para la implementación de la repetición y la iteración en la programación, permitiendo que un conjunto de instrucciones se ejecute varias veces de manera eficiente.


BUCLES Completa las oraciones con la opción correcta: 1. Un bloque de código es un conjunto de instrucciones agrupadas entre _____. a) Comillas b) Llaves { } c) Paréntesis ( ) d) Corchetes [ ] 2. En Python, la indentación se utiliza para indicar el inicio y fin de un _____. a) Comentario b) Bloque de código c) Variable d) Operador 3. ¿Cuál es el propósito principal de utilizar bloques de código en programación? a) Mejorar la velocidad de ejecución del programa. b) Organizar y estructurar el código. c) Reducir la cantidad de líneas de código. d) Aumentar la complejidad del programa. 4. En lenguajes como C++ o Java, los bloques de código se delimitan con _____. a) Paréntesis ( ) b) Llaves { } c) Corchetes [ ] d) Menos (-) 5. ¿Qué sucede si las llaves que delimitan un bloque de código no están correctamente emparejadas en muchos lenguajes de programación? a) El programa se ejecuta más rápido. b) Se produce un error de sintaxis. c) El código sigue funcionando normalmente. d) Se mejora la legibilidad del código.


¡VÁMOS A EXPERIMENTAR!


PRENDER Y APAGAR UN LED En esta práctica, exploramos la electrónica necesaria para controlar la iluminación de LEDs mediante la programación del IDE de Arduino. Antes de continuar, es esencial descargar e instalar el software IDE de Arduino. Además, utilizamos el programa TinkerCAD, que ayuda a visualizar el circuito que construiremos.

MATERIALES 1. Dos LEDs, de diferentes colores. 2. Dos resistencias de 220 Ω. 3. Una tarjeta Arduino. 4. Un cable USB impresora. 5. Un computador. 6. Cables para el montaje del circuito. 7. Un protoboard.

DIAGRAMA

Implementación del algoritmo 1 en el simulador TinkerCad:


CALABAZA DE HALLOWEN Le damos un instructivo para un proyecto que realiza las siguientes funciones: intermitente, gritando, arduino calabaza de Halloween. Es muy divertido, consiste en conocimientos de soldadura y es ideal para aprender sobre sensores y salida de luz MATERIALES 1. una calabaza, tenemos uno de tamaño medio. Si usted compra una más grande, el altavoz y USB power pack sólo podría caber a la derecha, que es un plus 2. una fuente de alimentación USB, cualquier persona es realmente fino 3. un accionado altavoz con conector de 3,5 mm, como un JamBox 4. un BareConductive touchboard 5. un anillo de NeoPixel, elegí un anillo de 12 x, 1 capacitor de 1000uF y un resistor de 470 Ohm 6. un Sensor de distancia ultrasónico, HC-SR04 o similar 7. algunos cables de puente 1.- Para detectar la proximidad de un individuo tenemos varias opciones. Yo he optado por un sensor de ultrasonidos HC-SR04. Quizá no sea lo más óptimo pero es lo que tenía más a mano. También necesitaremos un par de LEDs con sus respectivas resistencias de 1K y un pequeño altavoz o speaker (cuidado, no lo he probado, pero me temo que con un piezoeléctrico no funcione bien). La idea es que cuando alguien se acerque a la calabaza, emita un sonido digitalizado y encienda sus dos ojos (LEDs). 2.- El altavoz se conecta a tierra y al pin 11, el sensor de ultrasonidos a los pines 9 y 10 (además de a VCC y GND), y finalmente, he usado los pines 2 y 3 para controlar el encendido de los LEDs. El programa para Arduino es el siguiente. #include <PCM.h> #define MIN_DISTANCIA 30 int echo = 9; // Pin para echo int trigger = 10; // Pin para trigger int ojo1 = 2; // leds para los ojos int ojo2 = 3; unsigned long tiempoRespuesta; unsigned long distancia; const unsigned char sample[] PROGMEM = { 126, 124, 123, 123, 123, 124, 124, 124, 124, ... }; void setup() { pinMode(trigger, OUTPUT); pinMode(echo, INPUT); pinMode(ojo1, OUTPUT); pinMode(ojo2, OUTPUT); } void loop() {

digitalWrite(trigger, HIGH); // Enviamos pulso de 10 microsegundos delayMicroseconds(10); digitalWrite(trigger, LOW); tiempoRespuesta = pulseIn(echo, HIGH); // Y esperamos pulso de vuelta distancia = tiempoRespuesta/58; // Calculo de distancia en cm if (distancia < MIN_DISTANCIA) { digitalWrite(ojo1, HIGH); digitalWrite(ojo2, HIGH); startPlayback(sample, sizeof(sample)); delay(5000); digitalWrite(ojo1, LOW); digitalWrite(ojo2, LOW); } }

En este caso dejaremos el acceso a un video donde podrán ver el funcionamiento completo del proyecto


SEMÁFORO Simular un semáforo es uno de los clásicos en la iniciación de los proyectos de Arduino. Aquí vamos a mostrar como puedes montar un semáforo sencillo MATERIALES 1. Arduino Uno. 2. Protoboard. 3. Cables. 4. Un led rojo, un led amarillo y uno verde. 5. 3 resistencias de 220 Ω

1. Para el montaje del esquema colocamos los leds rojo, amarillo y verde en la protoboard, teniendo en cuenta que los vamos a conectar a los pines digitales 10, 9 y 8 de la placa de Arduino UNO. Comprobaremos que la patilla larga del LED está conectada al voltaje positivo, mientras que la pata corta está conectada a la resistencia. 2. El código es sencillo: se crea una variable donde almacenar el tiempo de espera. En la función setup() indicamos que los pines 10, 9 y 8 funcionarán como salida. 3. -Lo siguiente será encender el led correspondiente, con un valor HIGHT, y apagarlo cuando queramos, cambiando el valor a LOW. Primero, el rojo estará encendido; cuando el semáforo se ponga verde, el rojo se apagará; y antes de volver a rojo, se encenderá el amarillo y se apagará el verde.

4.- El código completo es el siguiente: // Semáforo sencillo en Arduino int tiempoEspera = 5000; void setup(){ pinMode(10, OUTPUT); // Rojo pinMode(9, OUTPUT); // Amarillo pinMode(8, OUTPUT); // Verde } void loop() { digitalWrite(10, HIGH); // rojo encendido delay(tiempoEspera); digitalWrite(8, HIGH); // verde encendido digitalWrite(10, LOW); // rojo apagado delay(tiempoEspera); digitalWrite(9, HIGH); // amarillo encendido digitalWrite(8, LOW); // verde apagado delay(1000); digitalWrite(9, LOW); // amarillo apagado }

Agregare enlace a TINKERCAD para simular el funcinamiento


CUATRO SEMÁFOROS Desarrollaremos el proyecto anterior un poco mas complejo esta vez se trata de un simple controlador de semáforo de 4 vías MATERIALES 1. 4 led rojo, 2. 4 led amarillo 3. 4 led verde 4. protoboard 5. Arduino UNO 6. Cable para circuitos

INSTRUCTIVO 1. Procederemos a armar el circuito como se muestra en la imagen. 2. Realizaremos el código para que nuestro semáforo funcione correctamente.

// void setup() { pinMode(1, OUTPUT); pinMode(4, OUTPUT); pinMode(8, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); pinMode(6, OUTPUT); pinMode(5, OUTPUT); pinMode(10, OUTPUT); pinMode(9, OUTPUT); pinMode(3, OUTPUT); pinMode(2, OUTPUT); }

Agregare enlace a TINKERCAD para simular el funcinamiento

void loop() { digitalWrite(1, HIGH); digitalWrite(4, HIGH); digitalWrite(8, HIGH); digitalWrite(11, HIGH); delay(4000); // Wait for 4000 millisecond(s) digitalWrite(11, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(12, HIGH); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(12, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(13, HIGH); digitalWrite(6, HIGH); digitalWrite(4, LOW); delay(4000); // Wait for 4000 millisecond(s) digitalWrite(5, HIGH); digitalWrite(6, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(5, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(10, HIGH); digitalWrite(4, HIGH); digitalWrite(8, LOW); delay(4000); // Wait for 4000 millisecond(s) digitalWrite(9, HIGH); digitalWrite(10, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(9, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(3, HIGH); digitalWrite(8, HIGH); digitalWrite(1, LOW); delay(4000); // Wait for 4000 millisecond(s) digitalWrite(3, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(2, HIGH); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(2, LOW); delay(1000); // Wait for 1000 millisecond(s) digitalWrite(13, LOW); }


BOTE DE BASURA CON SERVOMOTOR Y SENSOR DE PROXIMIDAD Desarrollaremos el proyecto anterior un poco mas complejo esta vez se trata de un simple controlador de semáforo de 4 vías MATERIALES Ahora solo agregamos el código para controlar el 1. Arduino UNO servomotor 2. Sensor de ultrasonido #include <Servo.h> 3. Cables Macho Hembra int Trig = 9; 4. Cables Macho Macho int Echo = 8; 5. Servo motor Servo servo1; 6. Una caneca void setup() 7. Tabla en triplo o PVC espumado para hacer la tapa. {

INSTRUCTIVO 1. Por un lado se necesitará una placa Arduino UNO; un sensor de ultrasonido y un servomotor. Nos descargamos el código del proyecto y lo insertamos en la placa Arduino, luego conectamos el sensor que hemos colocado en la tapa del cubo de basura a la placa Arduino y también el servomotor en la parte trasera para que abra la tapa cuando nos acerquemos. También necesitaremos una fuente de alimentación, algo que podremos sustituir con un cable de corriente con su correspondiente adaptador.

Serial.begin(9600); pinMode(Trig,OUTPUT); pinMode(Echo,INPUT); pinMode(13,OUTPUT); servo1.attach(2); servo1.write(0); } void loop() { long duracion; long distancia;

//Estamos haciendo un disparo limpio digitalWrite(Trig,LOW); delayMicroseconds(4); digitalWrite(Trig,HIGH); delayMicroseconds(10); digitalWrite(Trig,LOW); duracion = pulseIn(Echo,HIGH); duracion = duracion/2; distancia = duracion/29; Serial.println(distancia); delay(100); if(distancia >= 5 && distancia <= 30){ servo1.write(90); digitalWrite(13,HIGH); delay(5000); servo1.write(0); } if(distancia > 30){ servo1.write(0); digitalWrite(13,LOW); } }

Agregare enlace a TINKERCAD para simular el funcinamiento


CARRITO CONTROLADO POR BLUETOOTH EN ARDUINO

Para poder realizar el proyecto utilizamos los componentes electrónicos proporcionados por la docente a cargo del módulo de aprendizaje. MATERIALES 1. MÓDULO BLUETOOTH HC-05. 2. ARDUINO UNO R3 3. CONTROLADOR DE MOTORES L298N 4. MOTOREDUCTORES DE 500 RPM 5. RUEDA LOCA 6. PROTOBOARD 7. DIODO LED 8. RESISTENCIA DE 220 OHM 9. BATERIA LIPO DE 7,4 V


CARRITO CONTROLADO POR BLUETOOTH EN ARDUINO CÓDIGO int motor1PWM = 9; // PWM int motor1Dir1 = 8; // Dirección 1 int motor1Dir2 = 7; // Dirección 2 // Definición de pines del motor derecho int motor2PWM = 10; // PWM int motor2Dir1 = 11; // Dirección 1 int motor2Dir2 = 12; // Dirección 2 void setup() { Serial.begin(9600); pinMode(motor1PWM, OUTPUT); pinMode(motor1Dir1, OUTPUT); pinMode(motor1Dir2, OUTPUT); pinMode(motor2PWM, OUTPUT); pinMode(motor2Dir1, OUTPUT); pinMode(motor2Dir2, OUTPUT); } void loop() { if (Serial.available() > 0) { char command = Serial.read(); handleBluetoothCommand(command); } } void handleBluetoothCommand(char command) { switch (command) { case 'F': forward(); break; case 'B': backward(); break; case 'L': left(); break; case 'R': right(); break; case 'S': stopMotors(); break; default: break; } }

void forward() { digitalWrite(motor1Dir1, HIGH); digitalWrite(motor1Dir2, LOW); analogWrite(motor1PWM, 255); digitalWrite(motor2Dir1, HIGH); digitalWrite(motor2Dir2, LOW); analogWrite(motor2PWM, 255); } void backward() { digitalWrite(motor1Dir1, LOW); digitalWrite(motor1Dir2, HIGH); analogWrite(motor1PWM, 255); digitalWrite(motor2Dir1, LOW); digitalWrite(motor2Dir2, HIGH); analogWrite(motor2PWM, 255); } void left() { digitalWrite(motor1Dir1, LOW); digitalWrite(motor1Dir2, HIGH); analogWrite(motor1PWM, 200); digitalWrite(motor2Dir1, HIGH); digitalWrite(motor2Dir2, LOW); analogWrite(motor2PWM, 200); } void right() { digitalWrite(motor1Dir1, HIGH); digitalWrite(motor1Dir2, LOW); analogWrite(motor1PWM, 200); digitalWrite(motor2Dir1, LOW); digitalWrite(motor2Dir2, HIGH); analogWrite(motor2PWM, 200); } void stopMotors() { digitalWrite(motor1Dir1, LOW); digitalWrite(motor1Dir2, LOW); analogWrite(motor1PWM, 0); digitalWrite(motor2Dir1, LOW); digitalWrite(motor2Dir2, LOW); analogWrite(motor2PWM, 0);


ÁRBOL DE NAVIDAD CON ARDUINO Para poder realizar el proyecto utilizamos los componentes electrónicos proporcionados por la docente a cargo del módulo de aprendizaje. MATERIALES 1. SENSOR HC-SR04 (SENSOR ULTRASÓNICO) 2. ARDUINO UNO 3. SERVOMOTOR 4. PROTOBOARD 5. 15 PIEZAS DE DIODO LED 6. CAUTIN 7. POWER BANK


ÁRBOL DE NAVIDAD CON ARDUINO CÓDIGO

RESULTADO


TIRAR LOS DADOS En este proyecto aprenderemos a crear un dado electrónico con la ayuda de arduino y 6 LED’s. Al presionar el interruptor, se ejecutará el programa y los LED’s se encenderán de forma consecutiva de izquierda a derecha y de derecha a izquierda y dejará encendido, de forma aleatoria cierto número de LED’s. En el monitor serie también podremos ver este resultado de forma numérica.

MATERIALES

El esquema anterior lo realizamos utilizando la aplicación en línea TinKerCAD. ahí mismo puedes hacer la simulación antes de realizar el montaje del circuito. PinOUT: LED1 -> PIN2 LED2 -> PIN3 LED3 -> PIN4 LED5 -> PIN6 LED6 -> PIN7 Interruptor -> PIN9

Agregare enlace a TINKERCAD para simular el funcinamiento


TIRAR LOS DADOS CÓDIGO iEn el monitor serie se verá el número arrojado y coincidirá con el número de led encendidos PIN OUT Interruptor -> PIN9 LED -> 2-7 */ // configurar 1 si estamos depurando #define DEBUG 0 // 6 pines digitales consecutivos para los LED int first = 2; int second = 3; int third = 4; int fourth = 5; int fifth = 6; int sixth = 7; // pin para el interruptor de botón int button = 9; // valor para comprobar el estado del interruptor de botón int pressed = 0; void setup() { // set all LED pins to OUTPUT for (int i=first; i<=sixth; i++) { pinMode(i, OUTPUT); } // establece el pin del botón en INPUT pinMode(button, INPUT); // inicializar la semilla aleatoria por ruido del pin analógico 0 (debe estar desconectado) randomSeed(analogRead(0)); // si estamos depurando, conéctese al serial #ifdef DEBUG Serial.begin(9600); #endif } void buildUpTension() { // ilumina los LED de izquierda a derecha y hacia atrás para aumentar la tensión // mientras espera que se lancen los dados // de izquierda a derecha for (int i=first; i<=sixth; i++) { if (i!=first) { digitalWrite(i-1, LOW); } digitalWrite(i, HIGH); delay(100

); } // right to left for (int i=sixth; i>=first; i--) { if (i!=sixth) { digitalWrite(i+1, LOW); } digitalWrite(i, HIGH); delay(100); } } void showNumber(int number) { digitalWrite(first, HIGH); if (number >= 2) { digitalWrite(second, HIGH); } if (number >= 3) { digitalWrite(third, HIGH); } if (number >= 4) { digitalWrite(fourth, HIGH); } if (number >= 5) { digitalWrite(fifth, HIGH); } if (number == 6) { digitalWrite(sixth, HIGH); } } int throwDice() { // get a random number in the range [1,6] int randNumber = random(1,7); #ifdef DEBUG Serial.println(randNumber); #endif return randNumber; } void setAllLEDs(int value) { for (int i=first; i<=sixth; i++) { digitalWrite(i, value); } } void loop() { // si se presiona el botón - tira los dados pressed = digitalRead(button); if (pressed == HIGH) { // remove previous number setAllLEDs(LOW); buildUpTension(); int thrownNumber = throwDice(); showNumber(thrownNumber); } }


CRONÓMETRO Explicaremos cómo crear un cronómetro mediante Arduino UNO y una serie de componentes electrónicos de una manera muy sencilla. Este cronómetro constará de 2 pulsadores, uno para reiniciar el conteo y otro para pausarlo cuando creamos conveniente. Además se incluye un display LCD 1602 con comunicación I2C, con el que se muestra el tiempo transcurrido en formato HH:MM:SS.

MATERIALES Arduino UNO Rev.3 Cable USB tipo A-B Módulo LCM 1602 I2C V1 Display 16×2 LCD 1602 2 Pulsadores 2 Resistencias de 10KΩ Protoboard Cables de conexión


CRONÓMETRO

Agregare enlace a TINKERCAD para simular el funcinamiento


IXTAPALUCA


Turn static files into dynamic content formats.

Create a flipbook
SOFTWARE DE SISTEMA PART2 by ALEXIS MANCILLA - Issuu