Skip to content

johnnycubides/taller-ing-electronical-UNAL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

<!--
author:   Johnny Cubides
email:    jgcubidesc@unal.edu.co
version:  0.1.0
logo:     
comment:  Documentación para el curso de Taller de Ingeniería Electrónica de la Universidad Nacional de Colombia
script:   https://cdn.jsdelivr.net/chartist.js/latest/chartist.min.js
          https://felixhao28.github.io/JSCPP/dist/JSCPP.es5.min.js
link:     https://cdn.jsdelivr.net/chartist.js/latest/chartist.min.css
link:     https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css
-->

Taller de Ingeniería Electrónica

Bienvenido al curso de Taller de Ingeniería Electrónica, en este curso aprenderá a "Pensar con las Manos", desarrollar habilidades Makers/Hackers, se espera que esta experiencia de aprendizaje contribuya a descubrir intereses sobre su futura vida profesional, como también, facilitarle relacionar los conocimientos que puede adquirir en los otros cursos y poderlos implementar al enfrentar una situación real.

La experiencia de aprendizaje está enmarcada en el Aprendizaje Basado en Fenómenos ABF en el cual el objeto de estudio es la Tecnología. Se espera que a través del desarrollo de un Artefacto, (para nuestro caso un proyecto electrónico), podamos estudiar la relación existente entre la Ciencia, Tecnología y Sociedad.

Proyecto

A continuación verá un esquema que representa las diferentes fases/tareas del desarrollo de un proyecto en el curso de taller de electrónica:

Faces del proyecto

¿Qué se quiere realizar?

En el curso de taller de ingeniería electrónica se pretende realizar un producto terminado el cual está orientado como alternativa de solución a una situación real problematizada por los estudiantes, la cual se puede alinear con metas o esfuerzos de interés global.

¿Qué se debe entregar?

  • Sistema electrónico
  • Caja
  • Documentación
  • Brochure comercial o Poster
  • Vídeo del producto final

Sobre el sistema electrónico

Final Caja negra Tecnologico flujo imagen10 imagen9 imagen12 imagen3 imagen11 imagen6

El dispositivo deberá responder a los requerimientos funcionales y no funcionales y además tener las siguientes características:

  • Desarrollar una PCB a la medida de la necesidad; podrá desarrollar el sistema embebido completo o desarrollar una tarjeta hija para una tarjeta de desarrollo.
  • Para las tareas de software se puede hacer uso de Micropython.
  • El sistema debe permitir la comunicación con otros dispositivos para monitoreo o control por parte del usuario final (puede ser a través de un medio guiado o no, lo cual depende de la aplicación).

Sobre la caja

Banner Banner Banner Banner !?Michi bot

En este caso se refiere a los aparatos encargados de realizar las tareas mecánicas, de protección, estéticas, de experiencia de usuario, las cuales contienen sensores, actuadores y el sistema diseñado; puede hacer uso de CAD para impresión 3D, corte láser, existen bibliotecas libres en Internet que podrá descargar y ajustar a la necesidad.

Sobre la documentación

Queremos documentar el proceso de desarrollo, para tal fin puede hacer uso de:

  • git
  • Wiki

En primer lugar GIT es un sistema de gestión de versiones para proyectos de cualquier tipo que permite seguirle la pista a nuestro proyectos de manera colaborativa; puede hacer uso de gestores de repositorios de proyectos como gitlab, codeberg, github, bitbucket o cualquier otro que conozca.

Con respecto a la Wiki, en realidad puede ser en cualquier lugar siempre y cuando muestre el proceso realizado del proyecto como también el producto terminado con algún demo; los gestores de repositorios de proyectos anteriormente mencionados tienen la posibilidad de crear wikis asociadas al proyecto, pero también puede hacer uso de un blog o crear páginas web staticas (gitlab y github tienen esa propiedad y por ahora es libre).

Sobre el brochure o poster

Queremos que piensen que este producto va a ser ofrecido a un público que lo pueda necesitar por tanto muestre el producto de tal manera que se pueda reconocer sus características y particularidades.

Ejemplo de brochure:

poster

Sobre el vídeo

Como parte del producto final deberá crear que muestre el resultado final del artefacto creado, haciendo alusión al proceso de creación y su proceso de aprendizaje. El vídeo debe ser subido a alguna plataforma, como YouTube, Vímeo entre otras, y en el caso de drive o similares, no será admitido.

A continuación un ejemplo:

!?Construye tu propio robot y domina la electrónica básica, ARM UNAL

Discord

Bienvenidos al curso de Taller de Ingeniería Electrónica, por favor acceder al servidor de Discord el cual es diseñado como espacio para realizar los encuentros asíncronos.

QR servidor de Discord Lea el código QR o de clic aquí para ir al servidor de Discord

Instrucciones:

  1. Acceda al servidor de Discord.
  2. Sino tiene cuenta de Discord crear una.
  3. En el canal que acaba de acceder llamado #lobby identifíquese con su nombre, código y grupo del curso, ejemplo: Johnny Cubides, Taller de Electrónica, Grupo 2.
  4. Espere a que el profesor le dé un rol y pueda ver el contenido del Curso.

Ejemplo de identificación:

discord ejemplo

Historial de Proyectos

Proceso de diseño

Proceso de diseño de proyecto

Ideación

!?¿Qué quiero hacer en taller de electrónica?


lang: es

Diagrama de flujo

Un diagrama de flujo representa de manera gráfica la solución general y abstracta sobre una situación o problema propuesto.

DFD, nivel 0: contextual Este diagrama hace referencia al nivel contextual a la que se plantea la solución, por ejemplo, permite observar cómo el sistema a diseñar interactua con los otros sistemas externos, también es una aproximación que en el diseño de un diagrama de caja negra permite relacionar el flujo de la información con los dispositivos con los cuales el sistema contará.

Diagrama de flujo como ejemplo, fuente: Wiki Este diagrama representa el flujo de la información, las operaciones y decisiones que se toman para cumplir una tarea. Un diagrama general puede estar compuesto por otros diagramas que representan las especificidades de las diferentes tareas.

Los diagramas de flujo se diseña a través de un estandar de símbolos los cuales indican, tareas, procesos, flujos, entre otros. A continuación puede conocer una lista de ellos:

Documentación de referencia

Herramientas opensource para el diseño de diagramas de flujo

Estos diagramas los puede realizar a mano, como a través de software que contenga estos símbolos.

Diagrama de Cajas Negras

diagrama-caja-negra

<iframe width="560" height="315" src="https://www.youtube.com/embed/HvkKBwPVH_0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen>
</iframe>

Creación de PCB

En este vídeo hacemos un proceso completo en el desarrollo de una PCB de una sola cara, pasando por la selección de componentes, creación de esquemáticos, revisión de reglas eléctricas, creación de ruteo, zonas de GND, uso de componentes en 3D, generación de Gerbers. Aunque no se hace uso de las normas IPC de diseño, si se realizan recomendaciones importantes.

!?Crea tu PCB con KiCAD (ejemplo guiado)

Repositorio en github de el ejemplo guiado del vídeo

Proceso de documentación

WIKI:

A tener en cuenta: La mayoría de servicios como es github o gitlab permiten crear y asociar wikis en formato Markdown (archivos.md), también puede crear este Wiki haciendo uso de distintos README.md que cumplan el orden que será propuesto más adelante en este documento. Comparto un ejemplos de WiKi creados con github Kaku_bot (Tenga presente que el contenido del ejemplo está incompleto o desordenado).

El proceso de documentar es un ejercicio prioritario en el desarrollo de un proyecto, permite reconocer aprendizajes, vacíos de conocimiento, necesidades y ser referente para emprender otros proyectos por parte de los autores u otras comunidades de desarrollo/aprendizaje.

Usando como referente el enfoque planteado, en el ejercicio de documentación se pretende:

  • Describir el planteamiento del problema y una ruta para abordar los retos que se puedan presentar.
  • Identificar vacíos de conocimiento a nivel del problema como también de orden técnico.
  • Proponer soluciones tecnológicas contextualizadas haciendo uso de referentes.
  • Detallar el proceso de implementación de la solución propuesta con sus aciertos y desaciertos
  • Evidenciar el resultado final evaluando resultados en función de objetivos.
  • Recoger conclusiones y recomendaciones para iteraciones futuras.

Teniendo presente los contenidos vistos en el curso de taller de electrónica la documentación tiene la siguiente estructura y cantidad de páginas:

  • Home (Página 1)

    1. Título del proyecto

    2. Integrantes

    3. Descripción y/o Introducción

    4. Palabras clave

    5. Poster o brochure

    6. Imagen tipo banner de la implementación del proyecto (resultado final)

    7. Vídeo del proyecto: Deberá crear un vídeo y subirlo a una plataforma como puede ser Youtube, explicando del proyecto lo siguiente:

      • La problemática
      • La solución planteada (los módulos usados)
      • El criterio que tuvo para las decisiones tomadas
      • El funcionamiento del proyecto desde el punto de vista del usuario
      • Recomendaciones y conclusiones
  • Contexto (Página 2)

    1. Problemática
    2. Objetivos
    3. Alcance
    4. Ruta o roadmap o cronograma
  • Diseño de la solución (Página 3)

    1. Diagramas de caja negra (abstractos)
    2. Diagramas tecnológicos
    3. Diagrama de flujo general del proyecto (cómo interactúa con el usuario final)
    4. Impacto ambiental y acciones propuestas de mitigación
  • Diseño e implementación del case (página 4)

    1. Diseño corte 3D o corte láser
    2. Evidencias de implementación (imágenes, vídeos)
  • Diseño e implementación electrónica (página 5)

    1. Simulaciones según haya sido necesario (opcional)

    2. Imágenes sobre los diseños creados (papel/tablero) sobre las tecnologías a usar

    3. Diseño de PCB en KiCad (teniendo presente el siguiente contenido):

      • Diseño esquemático del circuito en pdf y png
      • Diseño de PCB layout (imagen del ruteo)
      • Imagen PNG en 3D del diseño final de la PCB
      • Fotografías de la PCB fabricada
      • Imagen de la PCB con componentes soldados
      • Imagen de la PCB con los sensores, actuadores y demás componentes interconectados
  • Diseño e implementación de software (Página 6):

    1. Diagrama(s) de flujo sobre las diferentes tareas que realiza el proyecto (A nivel de la solución)
    2. Código sobre las diferentes pruebas unitarias de sensores y actuadores
    3. Diagramas o código explicado sobre el cómo interactúa con otras interfaces
    4. Otros códigos y plataformas usadas (NodeJS, Appinventor, etc).
  • Evidencias (Página 7):

    1. Puede subir información sobre el proceso de integración y de ensamble de cada cosa que sea relevante para el grupo por ejemplo, aquellas cosas que no funcionaron o se dañaron, aquellas cosas que fueron descubrimientos, aciertos o desaciertos.
  • Conclusiones y recomendaciones futuras (Página 8)

    1. Conclusiones
    2. Recomendaciones para trabajos futuros
    3. Referentes (Referencias sobre inspiraciones, códigos base o documentación consultada relevante)

A tener en cuenta: Cualquier imagen o código que suba deberá tener asociada una descripción para saber cuál es su relación.

En el siguiente ejemplo se muestra una imagen de las páginas de la wiki bien ordenadas:

Wiki bien ordenada

SRC (archivos fuente) en Github

  • Los archivos deben están en el gestor de proyectos, no en formatos comprimidos, por ejemplo no en archivos.zip, tampoco podrán estar en gestores de archivos como es el caso de drive o similares.
  • Se recomienda el orden en los archivos fuentes, por ejemplo en directorios separados con nombres representativos.
  • Las evidencias deben estar en un directorio de evidencias.
  • Los vídeos de gran tamaño serán subidos a una plataforma como puede ser el caso de Youtube, por favor no hacer uso de drive o cualquier otro similar.
  • En el about del proyecto en github agregar el topic taller-de-ingenieria-electronica-unal para fácil búsqueda.

A continuación se observará un ejemplo de la organización de los archivos fuente en un repositorio de Github:

Ejemplo de documentación

Recomendación: Haga uso de un cliente de git como puede ser Github desktop para que no tenga problemas subiendo el contenido a su gestor de proyectos. A continuación un vídeo introductorio sobre la plataforma.

!?Gestionar nuestro proyecto en Github

Poster

Laboratorios

Los laboratorios aquí propuestos permiten la exploración y el desarrollo de habilidades duras, en electrónica y programación. A continuación se comparte información útil y general que sirve de guía como parte de los conceptos fundamentales para el desarrollo de estos ejercicios:

Mi primer circuito


geometry: margin=2cm lang: es toc: true title: Mi primer circuito

Iniciándome con las herramientas de desarrollo

Este taller pretende orientar al estudiante en el inicio Maker; en este taller se enfrentará a desarrollar cosas como:

  • Análisis de corriente de un circuito D.C.

Uso del multímetro

  • ¿Cómo verificar que los fusibles del multímetro no están dañados?
  • ¿Cómo medir el valor de una resistencia?
  • ¿Cómo calcular el valor de una resistencia de carbón?
  • Configuración de fuente DC y medición de tensión de la misma con el multímetro

Referencias útiles

Montaje del circuito

Puedes descargar el taller "Mi primer circuito" desde aquí

  1. MATERIALES A USAR
  • Una fuente de energía D.C. de tensión variable.
  • Un par de cables bananas caimán
  • Conectores rápidos (jumper-dupon)
  • Protoboard
  • Una resistencia de cualquier valor no mayor a 33 Kohms.
  • Un LED de cualquier color.
  • Dos multímetros, uno para medir corriente y el otro para medir tensión.
  • Cuaderno para realizar apuntes
  1. REALIZA ESTE PRIMER MONTAJE

A continuación podrá ver un diagrama pictográfico el cual es una aproximación de como se ven las cosas realmente.

Mi primer circuito

Una manera abstracta de entender como está interconectado un circuito es a través de un esquemático, este diagrama muestra los componentes representados por símbolos con sus nodos de conexión y además etiquetados como sigue:

R1: Resistencia DC Power 1: Fuente de energía DC LED1: Diodo emisor de Luz

Esquemático primer circuito

  1. ENERGIZAR CIRCUITO
  • Se debe verificar que el circuito realizado corresponda al propuesto en esta guía.
  • A continuación conecta la fuente de energía y empieza con un voltaje de 0 V.
  • Realizar incrementos de tensión de la fuente hasta que el LED se encienda y que la intensidad lumínica sea la deseada, es decir, ni tan tenue, pero tampoco tan intensa.

Observación: En la electrónica existen componentes polarizados y no polarizados, un elemento no polarizado es aquel que no requiere una orientación para su funcionamiento como sucede con la resistencia; en el caso del LED este si tiene polaridad (Ánodo y Cátodo) y si no enciende es muy probable que deba intercambiar sus pines de conexión para su funcionamiento correcto.

  1. MEDIR VOLTAJE EN CADA COMPONENTE DEL CIRCUITO

Como se mencionó con anterioridad, tenemos tres componentes R1, DC Power y LED1. Para medir el voltaje deberás poner el multímetro en modo V en DC, como se ilustra en la siguiente imagen, además de lo anterior, se pone las puntas del multímetro en los puertos de conexión indicados como COM (cable negro) y V. Las puntas del multímetro deberán ser conectadas sobre cada componente en cada uno de sus nodos de conexión, en la imagen siguiente se observa como se realiza la medición de la tensión (voltaje) en el LED1.

Diagrama pictográfico de medición de tensión en el LED

Observar el diagrama esquemático siguiente, en él se puede observar como se realiza la medición de la tensión.

Esquemático sobre medición de tensión en el LED

Comprendiendo como se realiza las mediciones de tensión en cada uno de los tres componentes, registra los valores obtenidos en una tabla, como en el siguiente ejemplo:

Componente Tensión V
R1 3.5 V
DC Power 1 5 V
LED1 1.5 V
  1. COMPROBAR LA SIGUIENTE TEORÍA

En un circuito existen componentes activos y pasivos; los activos son aquellos que son capaces de entregar energía como es el caso de la DC Power, mientras que los pasivos son aquellos que consumen energía como es el caso de R1 y LED los cuales manifiestan este consumo en Luz y calor.

Un circuito eléctrico cerrado como es el caso anterior donde solo hay un camino cerrado por donde pueda transportarse electricidad conservará su energía; lo anterior se puede interpretar como sigue: la energía que se entrega al circuito es igual a la que se consume.

Lo anterior en términos de voltaje se puede representar así:

$$ V_{DC_POWER_1} = V_{R1} + V_{LED1} $$

Hay que comprobar la anterior ecuación, tomando los valores obtenidos y registrados en la tabla comprueba que la tensión en la fuente es igual a la suma de las tensiones de los componentes que consumen energía.

  1. MEDICIÓN DE CORRIENTE ELÉCTRICA

Para medir la corriente eléctrica que pasa por el circuito con el multimetro, éste último deberá hacer parte de ese cicuiro cerrado, por tanto, deberá abrir un nodo en el circuito y poner en serie el multimetro con los demás componentes; para mayor claridad observe las siguiente imagen:

Multímetro como amperímetro

Observe ademés de los cables cómo están interconectados que la perilla o selector del multímetro se debe poner en la función de medición de corriente continua simbolizado con la letra A la cual tiene encima dos líneas: una línea recta y continua y debajo de ella una línea recta y discontinua.

También puede ver la abstracción de este diagrama pictográfico, donde preste atención a los nodos de conexión, verá que solo hay un camino cerrado en el circuito.

Diagrama esquemático circuito con amperímetro

Observación: Dependiendo del multímetro, se puede usar escalas diferentes a A, tal es el caso de mA (miliamperios) o uA (microamperios).

Simulación de circuitos

Simulación de mi primer circuito{width=9cm}

Simulación de circuitos{width=9cm}

La simulación es una herramienta que permite comparar los resultados de los cálculos de los diseños eléctricos, antes de realizar una implementación física del mismo, en las simulaciones se pueden observar comportamientos de diferentes variables, como puede ser el caso de corriente eléctrica, voltaje, potencia, impedancias, frecuencia de operación, entre otros.

En el siguiente enlace podrá ver la simulación del circuito denominado "mi primer circuito"; podrá observar de manera gráfica el voltaje (a modo de colores), la corriente que circula por los conductores (puntos amarillos que se desplazan por el circuito), y la intensidad de encendido del LED rojo (Dependiendo de la potencia eléctrica que es consumida en el LED, el color rojo cambiará su intensidad).

Enlace para observar la simulación de mi primer circuito

EL siguiente archivo el cual es un texto plano (.txt) es la representación en spice, la cual indica por números de nodos cómo está interconectado un circuito y qué modelo corresponde, se invita a descargar el archivo y leer su contenido para comprender cómo está codificado.

Archivos en formato .txt de mi primer circuito en CircuitJS

Desde luego hay diferentes tipos de simuladores, están aquellos como éste (circuitjs) que es a nivel pedagógico una herramienta poderosa para visualizar el comportamiento, pero también hay otros simuladores con características profesionales que pueden ser opensource, gratis o privativos, a continuación se señalan dos de ellos que pueden ser útiles en su carrera de ingeniería.

Observación Sobre cómo instalar Qucs, puede seguir las instrucciones que encontrará en este enlace

Reto de diseño

En vista de lo aprendido en el taller "Mi primer circuito" deberá desarrollar el siguiente reto que verá en la siguiente imagen.

Reto de calculo de resistencias

Simulaciones con Qucs


geometry: margin=2cm lang: es toc: true title: Simulaciones con Qucs

Simulaciones con Qucs

Este taller está diseñado para que el estudiante analice circuitos en DC como es el caso de el divisor de tensión, resistencias en seria y paralelo, divisor de corriente y finalmente un circuito de un rectificador que hace uso de un diodo.

El estudiante deberá descargar el taller de qucs en pdf, realizar los cuatro ejercicios propuestos (cálculos, simulación, analisis de resultados y conclusiones) y reportar los resultados en un informe de formato libre.

Las simulaciones las deberá realizar con Qucs y cuenta con información de uso e instalación en los siguientes enlaces:

Ejemplos de simulaciones:

Divisor de voltaje

Divisor de corriente

Diferencia entre lo analógico y lo digital

Determinar el beta del transistor

Conocer el valor de corriente para el giro de motor.

Montar el siguiente circuito:

Control de motor por transistor-motor

Control de motor por transistor-motor

Cambiar la fuente DC por un generador de señales cuadrada equivalente y controlar el PWM

Agregar una tarjeta de desarrollo para programar el PWM.

Control de motor por PWM

Control de motor por PWM

Driver de motor

Realizaremos el siguiente circuito el cual corresponde a un driver Puente H con tecnología de transistores npn discretos (2n2222a)

Esquemático del puente H

Para reconocer el funcionamiento podrá ir al siguiente enlace y conocer las configuraciones posibles:

Programa a realizar: Realice el programa que está planteado en el siguiente diagrama de flujo; haga uso del esp32 o rp2040 y Micropython.

diagrama de flujo

Reto: Realice un programa con funciones de python las cuales puedan ser llamadas desde el prompt de micropython para iniciar o detener el motor.

Recuerde también que puede hacer uso del programa de encendido de LEDs para adaptarlo para este taller:

# Importar la librería para el manejo de pines
from machine import Pin
#librería para control por ancho de pulso
from machine import PWM

# Se configura el pin D22 como un PWM
led22 = PWM(Pin(22), freq=30, duty=0)
led23 = PWM(Pin(23), freq=30, duty=512)


# Si desea cambiar frecuencia
led22.freq(5)
led23.freq(15)


# Si desea cambiar el ancho del pulso
# 0 para 0% y 1023 para 100%, 50% es 512
led22.duty(512)
led23.duty(100)


# Para detener
# led.deinit()
# Para reiniciar
# led.init()

Periférico ADC

El conversor ADC es un módulo que convierte señales de tensión analógicas a valores enteros en un rango determinado; la resolución de la conversión está determinada por el tamaño de bits del conversor, es decir, si el ADC es de 16 bits, el número máximo a obtener en una conversión será de $2^{n}-1$, donde n es el número de bits, es decir, $2^{16}-1=65535$.

ESQUEMÁTICO: Este diagrama representa la solución a realizar, solo se ha agregado en sí el circuito para el sensor de Luz que es alimentado por la tensión ofrecida desde el pin de 3.3v (3v3 o 3V) de la tarjeta de desarrollo, para crear los demás elementos del circuito deberá remitirse a los conocimientos previos de los anteriores talleres.

Esquema circuital

PROGRAMA A REALIZAR:

Traduzca este algoritmo a una tecnología/lenguaje, en este caso a micropython, si tiene dificultades para crear las diferentes instrucciones, remítase a algún tutorial del lenguaje python3.

Diagrama de flujo

RECOMENDACIÓN PARA LA REALIZACIÓN DEL PROGRAMA:

Para que pueda resolver este problema podrá seguir estas recomendaciones:

  1. Realice el circuito planteado e identifique el nodo de voltaje v_out
  2. Como es un sensor de Luz deberá provocar los dos casos extremos: cuando hay mucha luz 100 % o poca luz 0 %; para provocar estas dos situaciones use sus manos para tapar el sensor y que no reciba luz 0% y por medio de la linterna del celular estimule el sensor para obtener el 100 % de la intensidad de la luz.
  3. Simultáneamente al paso 2 mida el voltaje con un multímetro entre el nodo v_out y GND observe el cambio de voltaje que existe en proporción de la intensidad de luz percibida por el sensor e indique qué tipo de comportamiento tiene el voltaje en función de la luz recibida.
  4. Teniendo presente que el ADC convierte señales de voltaje a valores de unidades enteras haga un pequeño programa que imprima el valor del voltaje convertido en esas unidades (ver abajo ejemplos de código según tarjeta de desarrollo), para ello acompañe su código de la función print() en un while True acompañado con un time.sleep(segundos) y mire la relación que existe entre el voltaje medido con el multímetro y las unidades imprimidas en consola; determine la relación existente de las unidades en función del voltaje convertido por el ADC.
  5. Teniendo en cuenta los dos casos extremos realizados desde el paso 2, tome el valor de unidades obtenido para ambos casos (0% de luz y 100 % de luz), recuerde que estos valores se observan en la terminal y deben corresponder a la acción de aplicar los dos casos extremos del paso 2.
  6. Al tener los dos casos extremos que puede llamar $P_1$ y $P_2$ donde cualquier punto es una coordenada de la forma $P(unidades_adc, porcentaje_luz)$ y que en un plano cartesiano $P(x, y)$, $x=unidades_adc$ y $y=porcentaje_luz$ trace una recta que una a esos dos puntos y construya una ecuación de la recta. Recuerde que la ecuación de la recta es de la forma $y(x) = mx + b$, la pendiente $m = {{y_2 - y_1} \over {x_2-x_1}}$ y que el punto de corte $b = y_1 -mx_1 = y_2 - mx_2$
  7. Con la información obtenida en el paso 6 construya una función en python que haga esa transformación, pruebe su funcionamiento estimulando el sensor como fue planteado en el paso 2 y si es coherente el resultado, construya el algoritmo planteado en este taller (PROGRAMA A REALIZAR)
# Fije el valor de la pendiente m
# m = ...
# Fije el valor de B
# b = ...
# Los anteriores valores los puede sustituir directamente en la ecuación.

def calcularPorcentajeDeLuz(val_adc):
    return m*val_adc + b

USO DE ADC EN MICROPYTHON

Para decidir cuál pin va usar para la conexión deberá tener presente el pinout de la tarjeta de desarrollo en cuestión, revise que el pin a seleccionar debe permitir la configuración de un periférico ADC.

# On the ESP32, ADC functionality is available on pins 32-39
# (ADC block 1) and pins 0, 2, 4, 12-15 and 25-27 (ADC block 2).

from machine import Pin
from machine import ADC

pin = Pin(pin_number, Pin.IN)
adc = ADC(pin, attent=ADC.ATTN_11DB)        # create an ADC object acting on a pin
val = adc.read_u16()  # read a raw analog value in the range 0-65535
# RP2040 has five ADC channels in total, four of which are 12-bit
# SAR based ADCs: GP26, GP27, GP28 and GP29. The input signal for
# ADC0, ADC1, ADC2 and ADC3 can be connected with GP26, GP27, GP28,
# GP29 respectively (On Pico board, GP29 is connected to VSYS).
# The standard ADC range is 0-3.3V. The fifth channel is connected
# to the in-built temperature sensor and can be used for measuring
# the temperature.

from machine import ADC, Pin
adc = ADC(Pin(pin_number))     # create ADC object on ADC pin
val = adc.read_u16()         # read value, 0-65535 across voltage range 0.0v - 3.3v

Microcontrolador enviando datos a red local


lang: es geometry: margin=2cm title: Microcontrolador enviando datos a red local toc: true

!?Enviar datos desde microcontrolador a red local con Micropython y Node Red

En este taller se aprenderá a compartir los datos de los sensores en una red Local como también dar órdenes a microcontroladores para que cambien el estado de algunos actuadores. En este ejemplo, los sensores son simulados por funciones de generación de datos aleatorios, por tanto, se invita a los estudiantes que después de comprender el funcionamiento de este ejemplo modifiquen el ejercicio agregando sensores y actuadores que han manejado en el transcurso del curso.

Envio de datos desde microcontrolador con micropython a navegador en red local

Dispositivos conectados a una red local Dispositivos conectados a una red local a través del hostpot del celular Microcontrolador conectado por USB a node-red Envío y control desde el microcontrolador hasta el monitor del usuario

Configuración de Node-red

Node-Red es un software que permite conectar información de diferentes medios y protocolos ya sea para almacenar, presentar o controlar información de interés en un sistemas.

Instalación de node-red

Para instalar Node-Red deberá primero instalar NodeJS para su sistema operativo, seguido, desde la línea de comandos de una terminal deberá instalar node-red con el gestor de paquetes de nodejs denominado npm. Según su sistema operativo siga las indicaciones planteadas en la documentación oficial:

Si tiene dificultades en la instalación puede buscar un ejemplo de instalación en Internet, Teniendo presente la documentación oficial ya que puede tener algunas variaciones en los comandos que deberá considerar, ejemplo de instalación de node-red

EJECUTAR NODE-RED

Para ejecutar la aplicación nuevamente desde la terminal ejecute el siguiente comando:

node-red

Esto iniciará la aplicación y le pedirá que en el navegador que usted use escriba la dirección IP del servicio para que pueda ser consumido, ejemplo:

http://127.0.0.1:1880

Ponga la anterior dirección IP en el navegador para que Node-red esté listo para usarse.

INSTALACIÓN DE COMPLEMENTOS/MÓDULOS EN NODE-RED

Para que el ejemplo pueda ser ejecutado requiere los módulos de Dashboard y Serialport. Dashboard permite crear una interfaz de usuario y Serialport la comunicación con el microcontrolador.

En la aplicación en la siguiente ruta busque e instale los módulos requeridos:

Ruta para instalación en la aplicación:Menu -> Manage Palette -> Install -> Option and Search

Módulos a buscar e instalar:

  • node-red-dashboard
  • node-red-node-serialport

Es posible que la aplicación le pida que deba reiniciar node-red, para tal fin, en la terminal, detenga la ejecución con Control + C y vuelva a iniciar el servicio de node-red con node-red en la misma terminal.

Flujo de Node-red

A continuación se comparte el flujo diseñado en node-red que podrá descargar e importar en node-red y desplegar:

El flujo importado y desplegado en node red permite la comunicación bidireccional con el microcontrolador a través del puerto serial.

Flujo en node-red

En la anterior imagen se puede observar los siguientes nodos:

  • Comunicación serial bidireccional (serialport RX y serialport TX)
  • Funciones para validar y dar formato a los mensajes que se envían y reciben (addCarrierReturn y checDataFormat)
  • Flujos de debug permiten darle seguimiento a los datos enviados o recibidos
  • Nodos de dashboard los cuales se despliegan y son visualizados por el usuario en un formato legible, con estos nodos el usuario monitorea y controla el sistema (LED ON y LED OFF como entradas de información, y Estado de los datos, Volt1 y Volt2 como salida de información visual).

La lógica de los nodos desplegados está escrita en javascript, para conocer cómo funciona puede dar clip en el nodos y se mostrará una ventana con un menú e información de ello, ejemplo:

Lógica de un nodo en node-red

Para obtener la URL del dashboard desplegado puede dar clic en el ícono que encuentra en el menú del dashboard, ejemplo:

Obtener la url del dashboard desplegado

La anterior URL la puede compartir a otros dispositivos que estén en la misma red cambiando la ip de la URL por la IP del equipo donde está el servicio de Node-red que en este caso es el computador, ejemplo:

Si la URL generada es:

http://127.0.0.1:1880/ui/#!/0?socketid=2xbT63rXMJDBZ5i3AAAB

Y la ip del equipo es por ejemplo: 192.168.1.100 quedaría algo como lo siguiente:

http://192.168.1.100:1880/ui/#!/0?socketid=2xbT63rXMJDBZ5i3AAAB

Se recomienda codificar la URL en un código QR para que pueda ser compartido a un celular.

Micropython y node-red (comunicación)

El siguiente programa que se ejecuta en el microcontrolador, permite la generación de los datos que se van a compartir en la red, como se hace uso de micropython es importante reconocer que la programación del microcontrolador se hace a través del REPL y ésta está compartida por el canal USB que será usado para el envío de datos, por tanto, aunque funciona se puede optimizar para otros propósitos.

Observe en el código que se comparte que los datos son enviados a través de la función print(), también observe que en este programa se hace uso de threads los cuales permiten la ejecución de tareas en loops distintos de manera "simultanea".

!include ./desing/t5-node-red/main.py

Para el ejemplo, descargue el programa main.py y guárdelo con ese nombre en el microcontrolador que tiene micropython, libere el puerto de comunicación serial, en el caso de Thonny cambie de interprete o cierre la aplicación, si es necesario desconecte y conecte el microcontrolador del puerto USB.

Finalmente en Node-red reinicie los flujos y observe en el dashboard si se reciben datos desde el microcontrolador, interactúe con los botones de encendido y de apagado del LED.

Dasboard de node-red visualizadores

Dasboard de node-red botones

Si por alguna razón no se puede visualizar los datos, es recomendable reiniciar Node-red y refrescar las ventanas del navegador.

Microcontrolador y appInventor, control por WiFi

Este ejemplo contienen información base para enviar datos desde una aplicación en Android creada con AppInventor, tiene el código para la app de android y el programa que debe tener un esp32 el cual corre un interpretye de micropython.

Enlace de la aplicación base en github

Herramientas

Tarjetas de desarrollo

Comparativa entre placas de desarrollo

Tarjeta de Desarrollo Arquitectura Lenguaje de prog Perifericos RAM - ROM N. pines io Vin - Vpin
NodeMCU esp32 Wroom espressif xtensa, dos nucleos, 80 to 240 MHz, 32bits Python, Lua, C, C++, Forth, Asm uart, i2s, spi, adc, dac, wifi, bluetooth 520 KB sram , 448 KB rom y 4 MB flash 25 Digitales de los cuales 15 Analógicos 5V , 3.3V
ESP32CAM Wroom espressif xtensa, dos nucleos, 80 to 240 MHz, 32bits Python, Lua, C, C++, Forth, Asm uart, i2s, spi, adc, dac, wifi, bluetooth, camera 520 KB sram y psram 4MB , 448 KB rom y 4 MB flash 10 Digitales de los cuales 7 Analógicos 5V , 3.3V
Nodemcu esp8266 e12 espressif xtensa, 80MHz to 160 MHz, 32bits Python, Lua, C, C++, Forth, Asm uart, i2s, spi, adc, dac, wifi 50 KB , 4 MB flash 10 Digitales y 1 ADC 5V , 3.3V
Raspberry Pi Pico rp2040, dos nucleos, 133 MHz, 32bits Python, Lua, C, C++, Forth, Asm uart, i2s, spi, adc, dac 264 KB sram , 2MB flash 23 Digitales y 3 Analógicos 5V , 3.3V
Raspberry Pi Pico W rp2040, dos nucleos, 133 MHz, 32bits Python, Lua, C, C++, Forth, Asm uart, i2s, spi, adc, dac, wifi, bluetooth 264 KB sram , 2MB flash 23 Digitales y 3 Analógicos 5V , 3.3V
Arduino UNO Atmega328p, 16MHz, avr8, 8bits C, C++, Forth, Asm uart, i2s, spi, adc 2 KB sram , 32 KB flash 20 Digitales y de ellos 6 Analógicos 5V , 5V o 3.3V
Arduino Nano Atmega328p, 16MHz, avr8, 8bits C, C++, Forth, Asm uart, i2s, spi, adc 2 KB sram , 32 KB flash 20 Digitales y de ellos 6 Analógicos 5V , 5V o 3.3V
Arduino Pro Atmega328p, 16MHz, avr8, 8bits C, C++, Forth, Asm uart, i2s, spi, adc 2 KB sram , 32 KB flash 20 Digitales y de ellos 6 Analógicos 5V , 5V o 3.3V

Nodemcu ESP32 Wroom

Esp32 dev kit:

esp32 nodemcu

Pinout esp32:

Esp32 Dev Kit v1 Esp32 Dev Kit v3

Herramientas para el esp32:

Si tiene dificultades para descargar las herramientas de desarrollo, pruebe directamente desde estos enlaces

ESP32CAM

Esp32CAM:

esp32cam

¿Cómo conectar el esp32CAM?:

El esp32CAM no cuenta con un adaptador USB a UART en la placa y este debe ser agregado, existen varios que pueden ser útiles como pueden ser:

  • FT232RL (recomendado)
  • CH340
  • CP2102

El siguiente gráfico muestra cómo debe quedar conectado el esp32CAM, el cable de color verde es agregado en el momento de subir el firmware y no es requerido cuando el esp32cam está en modo de ejecución de programas.

esp32cam conexion

Pinout del esp32cam:

pinout esp32cam pinout esp32cam front

Herramientas de referecia:

Raspberry Pi Pico y Pico W

Raspberry Pi Pico y Pico W:

Raspberry pi pico

Pinout raspberry pi pico:

Pinout de raspberry pi pico

Herramientas y documentación Raspberry pi pico:

Arduino UNO

Arduino UNO:

Arduino uno png

Pinout de Arduino UNO:

Pin out arduino uno

Herramientas para Arduino:

Entornos de programación

Thonny Editor

Presentación de Thonny

Tohnny Editor es un entorno de desarrollo en lenguanje Python que puede servir para diferentes placas de desarrollo con un intérprete de Micropython:

  • esp8266
  • esp32
  • Raspberry Pi Pico

En el siguiente enlace encontrá las instrucciones de instalación según sistema operativo y placa de desarrollo:

Cómo instalar Thonny Editor y configurar para una placa de desarrollo

Simuladores de circuitos

Qucs

Ejemplo de Qucs

Instalación de Qucs en Windows y primer acercamiento

<iframe width="560" height="315" src="https://www.youtube.com/embed/624if7zhbIU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen>
</iframe>

Ejemplos de uso de Qucs en GitHub

En el siguiente repositorio de github podrá encontrar Ejemplos de uso para dominar este excelente simulador.

qucs github Ejemplos de uso de Qucs en github

Herramientas para diagramar

Herramientas de documentación

La siguiente lista se refiere a gestores de repositorios de proyectos, los cuales tienen como característica el seguimiento de avance de proyectos y la capacidad de aporte grupales al proyecto.

Las herramientas listadas hacen uso del sistema de gestión de versiones denominado git, esta herramienta en principio no es fácil aprender, sin embargo, existes diferentes clientes que puede usar para facilitar el proceso de alimentar los proyectos. Conozca la lista de aplicaciones clientes recomendada por git.

Si hace uso de github, puede usar el cliente creado por github denominado Github client desktop.

Las anteriores herramientas hacen uso del formato de Markdown, el cual es sencillo y fácil de aprender, para aprender de éste, visite el siguiente enlace: Imagen de tutorial de markdown Tutorial Markdown

Si conoce o sabe usar Notion puede hacer uso de este para enlazarlo con su proyecto git

Vídeos recomendados:

KiCAD: Herramienta de diseño de PCB

KiCAD

DOCUMENTACIÓN DE KICAD

Enlace de documentación oficial de kicad

Enlace de descarga de Kicad para varias plataformas

Si usa Linux puede abrir la terminal y ejecutar el siguiente comando para instalar Kicad: sudo apt install kicad

MI PRIMER PCB CON KICAD

tutorial primera pcv Make Your First Printed Circuit Board: Este tutorial en idioma inglés acerca al estudio de la herramienta de diseño kicad mientras crea su primera PCB.

EJERCICIOS DE ROUTEO

flow free flow free: Para desarrollar la habilidad de routeo, puede realizar hacer uso de la herramienta flow free la cualnos reta a pensar la manera correcta de conectar nodos de colores a través de puentes, la herramienta está compilada en distintas tiendas.

Tareas recomendadas

Banco de Actividades

Plantea una solución

  • Los temas principales: Abordaje de problemáticas sociales.
  • Los estudiantes deberán trabajar en equipos y cada equipo deberá encargarse de una problemática.
  • Cada estudiante del equipo de trabajo será responsable de un subtema de la problemática seleccionada.
  • Todos los equipos de trabajo deberán tener el mismo número de integrantes, los cuales corresponden al mismo número de Subtemas

Fase 1 (30 min): Seleccionado los grupos y sus problemáticas, los estudiantes deberán reunirse por subtemas para comprender el subtema y así poder realizar aportes a la intervención de la problemática. Los estudiantes podrán discutir sus problemáticas para generar relaciones de interés y prioridades.

Fase 2 (30 min): Los estudiantes deberán reunirse según problemática seleccionada para estudiarla, comprenderla y plantear una alternativa de abordaje.

Fase 3 (20 min): Los estudiantes socializarán el estudio de su problemática haciendo uso de un PITCH de máximo 3 minutos

Ejemplo de problemáticas sociales: Los 10 problemas más graves de Bogotá

Temas:

  • Vendedores ambulantes
  • Los interminables trancones de Bogotá
  • Obras que nunca terminan
  • Zonas de tolerancia de Bogotá
  • Basura y reciclaje
  • Una negra nube cubre a Bogotá
  • Inundación de motocicletas
  • El colapso de Transmilenio
  • Habitantes de la calle
  • Los huecos en la calle
  • Inseguridad

Subtemas:

  • Educación y participación ciudadana
  • Legislación y políticas públicas
  • Tecnología e innovación
  • Economía y desarrollo
  • Ambiental y salud pública

Referencias

Vídeos recomendados en clase

Fuentes de referencia e inspiración

Plataformas de Crowdfunding

Las plataformas de crowdfunding permiten visibilizar e impulsar proyectos de emprendimiento artísticos, de desarrollo, de innovación entre otros. Allí se han apoyado ideas de desarrollo interesante como han sido:

Omega2: Sistema embebido que costaba 5 dólares con capacidad de correr Linux y conexión WiFi.

Mycropython: Proyecto que permite programar microcontroladores en el lenguaje Python.

Cubetto: Plataforma de programación de hardware tangible.

Espruino: Programa microcontroladores con el lenguaje de programación JavaScript.

Papilio Duo: Crear circuitos y probar en FPGA de manera gráfica o por bloques.

Endless: Computadoras para todo el mundo.

Si es necesario un poco de inspiración para emprender un proyecto, puede revisar los siguientes sitios de crowdfunding, podrá encontrar proyectos que inclusive podrá adoptar para emprender su propio proyecto.

Enlaces a plataformas de crowdfunding

Kickstarter

Crowsupply

Indiegogo

Ulule

Plataformas de Chacharreo/Hackeo

Hackster

Hackaday

Tiendas electrónicas

Con el fin de que los estudiantes puedan realizar consultas sobre componentes electrónicos se comparte a continuación algunos enlaces de tiendas electrónicas que se encuentran en Bogotá y sus alrededores:

https://www.sigmaelectronica.net/

https://www.mactronica.com.co/

https://yorobotics.co/

https://electronilab.co/

https://www.vistronica.com/

https://www.controldinamico.com/

https://ferretronica.com/

https://laredelectronica.com/

https://www.bigtronica.com/

https://www.embtronik.com/

https://www.tuvoltio.com/

https://osakaelectronicsltda.com/

http://www.microelectronicos.com/

https://tundamacomplejoelectronico.com/locales/

https://ja-bots.com/