INGENIERÍA EN METAL MECÁNICA
ASIGNATURA: Instrumentación y Control
ACTIVIDAD: Fundamentos de PROGRAMACION en Python
DOCENTE: Ing. CESAR CHÁVEZ OLIVARES
Integrantes del equipo:
A. Paterno A. Materno Nombre
Hernández Sanches Damián Jasiel
Zavaleta Agustín Rodolfo
Gamez Hernández Daniel
CUATRIMESTRE: 10° Décimo GRUPO: “A”
HUEJUTLA DE REYES, HIDALGO; 09 DE OCTUBRE DEL 2023.
Introducción
Las estructuras de programación y las estructuras de datos son elementos fundamentales en el campo de
la programación y la informática. Proporcionan la base sobre la cual se construyen algoritmos y sistemas de
software. En este contexto, se pueden identificar cinco categorías clave de estructuras: Estructuras Básicas,
Estructuras Selectivas, Estructuras Repetitivas, Vectores, Matrices y sus representaciones visuales mediante
pseudocódigos y diagramas de flujo.
En conjunto, estas estructuras son fundamentales para la construcción de programas y sistemas de
software efectivos y eficientes. Los pseudocódigos y diagramas de flujo son herramientas valiosas para
representar visualmente cómo estas estructuras interactúan y se utilizan en la programación y la manipulación
de datos. Cada una de estas estructuras tiene su lugar y aplicación en una variedad de problemas y proyectos de
programación.
Desarrollo
Sensor de luminosidad con Fotorresistencia – LDR
# Sensor de luminosidad con Fotoresistencia - LDR
# Sale del A0(analog output) del sensor al 34 del esp32. También tiene elD0(digital output)
del
# sensor(aporta 1 o 0), pero no lo uso.
# The ADC class to read analog value, and the PWM class to generate PWMsignals.
'''
The voltage on the AO pin depends on the illumination - that is the amountof light that
falls on the sensor. You can read this voltage by connecting the AO pin ofthe
photoresistor sensor to an analog input pin and then using the analogRead()function.
'''
from machine import Pin,ADCimport utime
sensor=ADC(Pin(34)) [Link](ADC.ATTN_11DB)#
atenuación
[Link](ADC.WIDTH_12BIT) #resolución, o sea , regular la precisión dela lectura
# Si es 12 bits su valores son de 0 a 4095, si es bits 11 es desde 0 a 2046
led=Pin(2,[Link])
while True:
medicion=int([Link]()) # entre 0 y 4095
print("Medición: ", medicion) [Link](0.5)
if medicion >= 1000:[Link](1)
else:
[Link](0)
Programado en un ESP32 en Python mapeando un servomotorSG90 función map
# Importamos los módulos from machine
import Pin, PWM
from utime import sleep, sleep_ms#Creando el objeto
servo = PWM(Pin(21), freq = 50) # equivale a 20 ms
#funcion
#
def map_s(x):
#return int (( x - 0) * (8200 - 1800) / (180 - 0) + 1800) # duty_u16 --
0 y 65536
#return int (( x - 0) * (125 - 25) / (180 - 0 ) + 25 ) # duty(m) --0y1023
return int (( x - 0) * (2400000 - 500000) / (180 - 0) + 500000) #
duty_ns() - 0 y 1000000000
angulos = [0, 45, 90, 125, 180, 125, 90, 45, 0]
while True:
# 16 bits 65536 (1800 - 8200)
for i in angulos:m =map_s (i)
servo.duty_ns (m)
sleep_ms(500)
Programando la OLED SSD1306 y mostrando datos basicos. 128 x64
from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
import time
import framebuf
ancho = 128
alto = 64
i12c = I2C (0, scl-Pin(22), sda-Pin(21))
oled = SSD1306_I2C(ancho, alto, i2c)
print([Link]())
def buscar_ icono (ruta): dibujo = open (ruta, "rb") # Abrir en modo lectura
de bits [Link]
[Link]() # metodo para ubicarse en la primera linea de los bist
xy = [Link]() # ubicarnos en la segunda línea
x = int([Link]()[0]) # split devuelve una lista de los elementos de la
variable solo 2 elemeto
y = int([Link]()[1])
icono = bytearray([Link]()) # guardar en matriz de bites
[Link]()
return framebuf. FrameBuffer(icono, x, y, framebuf .MONO_HLSB) #Utilizamos
el metodo MONO HLSB
[Link] (buscar_icono("[Link]"), 0, 0) # ruta y sitio de ubicación del
directorio
oled. show ()
[Link](3)
oled.fil1(0)
oled. show()
[Link] (2)
led. fill(1)oled.
show()[Link](3)
Conclusión
En conclusión, las estructuras básicas, selectivas, repetitivas, así como los conceptos de vectores y
matrices, junto con sus representaciones mediante pseudocódigos y diagramas de flujo, desempeñan un papel
fundamental en la programación y resolución de problemas en la informática.
En conjunto, estas estructuras y técnicas son fundamentales para la construcción de programas efectivos
y eficientes. Proporcionan las herramientas necesarias para abordar una amplia gama de problemas en la
programación y la ingeniería de software. Una comprensión sólida de estos conceptos es esencial para cualquier
programador y les permite crear soluciones robustas y funcionales.