Disfruta de 1 año de Premium al 40% de dto ¡Lo quiero!

Podcast
El Laboratorio del Toro
77
229
Podcast dedicado a compartir conocimiento de electrónica, microcontroladores y programación
Podcast dedicado a compartir conocimiento de electrónica, microcontroladores y programación
¿Controlador de versiones? ¿qué es eso?
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2022/03/El-Laboratorio-del-Toro-Ep-58.mp3
Cuando empezamos nuestros proyectos de electrónica con microcontroladores o cuando realizamos algún script, siempre comenzamos con una idea en la cabeza del código que vamos a usar y terminamos el proyecto con cosas diferentes o con algunas variaciones. No sé si a ti te pasa, pero yo termino haciendo varias versiones del mismo código donde tengo funciones y comportamientos diferentes. Me pasa también que para diferenciar estas piezas de código le comienzo a colocar nombres como v1, v2, v2.2, etc.
En este artículo te voy a hablar de git un controlador de versiones para que a partir de aquí puedas mejor esa organización del código que creas.
Si eres programador, git es algo que seguramente usas en tu día a día. Pero en caso de que no lo seas como es mi caso, posiblemente no lo conozcas o lo hayas oído mencionar en algunas oportunidades.
Logo git. Fuente: Wikipedia commons.
¿Qué es git?
Pero dejemos de perder el tiempo y comencemos por definir que es git. Este es un control de versiones. Lo que hace es que registra los cambios que le realizamos a un archivo y crea una nueva versión del mismo. De esta manera podemos hacer un seguimiento de todos los cambios que realizamos en nuestro código desde que comenzamos a crearlo.
Git es un programa que instalamos en nuestro computador. Para que tenga efecto y realice el seguimiento de los cambios debemos ejecutarlo dentro del directorio donde estará nuestro código. Git trabaja a nivel de comandos. Como seguramente te estarás imaginando son varios y tienen sus variantes. Pero en este artículo solo te voy a mencionar lo esencial para que tengas un conocimiento mínimo de que es git y como trabaja. Después queda de tu parte profundizar más si así lo deseas.
Para iniciar el control de versiones dentro de un directorio debes usar el comando git init dentro del directorio donde vas a trabajar. Luego de eso puedes crear tu archivo de código y comenzar a trabajar. Pero antes debes de tener en cuenta algunas cosas.
Un proyecto de git tiene 3 secciones: El directorio de trabajo, un área llamada stage y por último el directorio de git.
El flujo es de la siguiente manera. Cuando hacemos cambios en nuestro archivo, estos no se registran en git automáticamente, sino que debemos hacer unos pasos adicionales para que se guarden estos cambios. Digamos que comienzas un nuevo código y escribes 3 líneas, guardas el archivo y lo cierras. En este momento estos cambios no son registrados por git. Para registrarlos debes escribir el comando git add . de esta forma git pasa los cambios a la sección stage. Pero aún aquí todavía no han sido registrados en git. Para ello debe colocar el comando git commit -m "mensaje descriptivo de los cambios en el código". Luego de ese paso, los cambios que en la última sección que es el directorio git.
Cada vez que permitimos que git le haga seguimiento a nuestros cambios y los registre se crear un hash. Este hash es un algoritmo matemático que convierte un conjunto de datos como puede ser un archivo en una serie de caracteres de longitud fija. Los algoritmos hash se usan para conocer la integridad de un archivo, cualquier mínima modificación del archivo da como resultado una cadena de caracteres totalmente diferente. Para el caso de git, esta cadena sirve para identificar la versión de los cambios.
Recapitulando el flujo para registrar nuestros cambios en git. Modifico mi archivos de código, guardo mis cambios. Luego ejecuto el comando en git, git add . (también se puede usar el nombre del archivo), después ejecuto el comando git commit -m "mensaje descriptivo" y listo. Ya tengo registrados mis cambios en git.
¿Dónde consigo ese programa git?
Seguramente te parece interesante la herramienta y ya la quieres usar. Como te habrás dado cuenta git trabaja con comandos, no tiene una interfaz gráfica donde podamos realizar las acciones con botones. Para usarlo en nuestro PC debemos instalarlo. Si eres usuario de Windows te dejo este enlace donde puedes descargar git. Es del sitio oficial, puedes usar el enlace con confianza. Para instalarlo es simplemente abrir el archivo y seguir las instrucciones como cuando instalas cualquier otro programa en Windows.
En caso de que seas usuario de Linux te dejo el siguiente enlace donde se muestran los comandos necesarios para instalar git desde la terminal de acuerdo a la distribución de Linux que utilices. Instalar git en Linux
¿Cómo uso git luego de instalarlo?
Luego que lo instales. Si estas en Linux, simplemente abres la terminal, entras al directorio donde está el código y listo. Ya puedes comenzar a trabajar con git. Recuerda que para comenzar a darle seguimiento a los archivos dentro de un directorio, debes primero ejecutar el comando git init.
En caso que te uses Windows, como seguramente lo hace la mayoría. Debes buscar el icono del programa y ejecutarlo. Aquí te abre una ventana de terminal. Solo debes buscar el directorio donde se encuentra el código que estás escribiendo e iniciar el seguimiento usando el comando git init.
Conceptos importantes de git
Estos son algunos concepto que debes tener presente cuando usas un control de versiones como git.
Branch
Si traducimos esta palabra al español significa rama. En git representa una línea independiente de desarrollo, es decir, tomamos el código de la rama master (así se le llama a la rama o branch principal) y le hacemos modificaciones. Luego esta modificaciones las podemos unir a la rama más posteriormente esto se conoce como merge.
Merge
Significa hacer la fusión de una o varias branchs. Con esto logramos integrar el código de varias personas al proyecto principal. Es importante destacar que muchas veces el merge lo realiza una persona que revisa los cambios y el código que agregan otras personas.
Checkout
Con checkout podemos ir a versiones anteriores de nuestro código. De esta manera si tenemos una versión que funcionaba y ahora luego de unos cambios no funciona, podemos volver a la versión anterior sin muchos inconvenientes.
Repositorio
Es donde se almacena el proyecto. Aquí es donde se guardan las versiones del código que estas creando. Puedes ser de unos pocos archivos o de muchos archivos y directorios. Todo depende del tamaño del proyecto.
Clonar
Esta es la acción de copiar un repositorio existente. Por ejemplo, si ves un repositorio con un código que necesitas y quieres hacer algunas mejoras puede clonarlo.
¿Dónde se almacena el repositorio?
Cuando instalas git y ejecutas el comando git init en un directorio para crear un proyecto ese repositorio se almacena de forma local en tu computadora. Pero una ventaja de git es que puedes usar servicios de almacenamiento de repositorios que se encuentran en Internet, seguramente los has escuchado, pero igual te voy a mencionar algunos.
GitHub
Es quizás el servicio de almacenamiento más famoso. Seguramente has utilizado algún código de ese repositorio. Existen millones de repositorios de código públicos en ese servicio. También tiene la opción de configurar un repositorio privado, lo cual te permite guardar tu código también en la nube.
GitLab
Este viene a ser un competidor de GitHub y tiene practicamente las mismas funciones de GitHub, pero adicional ofrece otros servicios y funciones como realizar scan de seguridad al código entre otras.
BitBucket
Este es otro servicio para almacenamiento de repositorios en internet, es propiedad de la empresa Atlassian. En BitBucket también puedes almacenar tu código.
La ventaja de estos servicios es que los puedes enlazar con el programa de git que tienes instalado en tu computadora y subir los cambios que realices. Esto permite crear entornos donde varios programadores pueden trabajar en un mismo proyecto. Además de esto tienes la ventaja que tu código está en un lugar adicional a tu computadora, por lo cual si sufres algún inconveniente con ella tienes tu código respaldado. Ten en cuenta que puedes crear repositorios privados, de esa manera solo tu tendrás acceso al código.
Conclusión
Usar un controlador de versiones como git es una buena opción para llevar un registro de los cambios que realizamos en nuestro código. Si no eres un programador de igual forma te invito a que investigues más sobre este tema ya que llevar este control tiene muchos beneficios. Posiblemente te ha pasado que hiciste un código y lo probaste y te funcionó bien, pero decidiste hacer algunos cambios al código para incorporar mejoras y después de eso tu proyecto no te funcionaba como antes, si hiciste muchos cambios y no guardaste la versión que funcionó con otro nombre. Vas a perder mucho tiempo reparando ese código. Por eso mi recomendación es que investigues más sobre git, que lo aprendas a usar y que lo adoptes como una herramienta para mejorar tus proyectos.
Espero que este artículo te haya gustado y nos vemos en la próxima.
Siempre parece imposible hasta que se hace.
Buy me a beer
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post ¿Controlador de versiones? ¿qué es eso? appeared first on rjconcepcion.
15:47
Todo lo que necesitas saber sobre los FPGA
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2022/02/El-Laboratorio-del-Toro-Ep-57.mp3
Si mal no recuerdo hace un tiempo mencioné en algún artículo algo sobre las FPGAs pero fue algo muy breve. Sin embargo, en este episodio te voy a detallar un poco más sobre este componente. Mi intención es que a partir de ahora tengas un conocimiento general de que es un FPGA, para que se utilizan y como podrías empezar en este mundo si alguna vez te animas.
Los FPGAs son una asignatura pendiente para mí, desde hace mucho tiempo he querido sumergirme en ese mundo. He empezado en un par de oportunidades, pero no he llegado a adquirir el nivel, ni las destrezas que me gustaría. Lo que si te puedo decir es que un mundo muy interesante y áreas de conocimientos muy diversas.
Yo conocí los FPGAs cuando estaba en la universidad, tenía compañeros de estudios que veían materias donde se usaban estos dispositivos, yo no estaba en esa rama de la carrera, pero si me interesaban esos dispositivos. Les pedí guías y orientación, me compré mi FPGA y me puse a estudiar e incluso llegué a montar algunas practicas. Pero luego de un tiempo no seguí en ese mundo. Luego de muchos años retomé nuevamente. Ahora se complicaba un poco más la cosa debido a que el software y la placa que usaba estaba descontinuada, lo que llevó a que me costará un poco poner todo a funcionar nuevamente. Al igual que la vez anterior logré retomar los estudios del lenguaje utilizado y pude hacer algunas practicas. Esa fue la última vez que toqué mi FPGA, quizás te esté hablando de alrededor de unos 4 años.
Por eso digo que es una asignatura pendiente. Me gustaría retomar ese mundo y comenzar nuevamente a realizar practicas y retomar el aprendizaje del lenguaje usado en estos componente. Espero que este artículo además de informarte un poco, me sirva a mi de motivación para retomar el apasionante mundo de las FPGAs.
Ya habiéndote contado un poco mis relaciones previas con las FPGAs vamos al grano.
Imagen FPGA. Foto wikipedia commons.
¿Qué es una FPGA?
El término FPGA no es un nombre sino unas siglas que significan Field Programmable Gate Array. Esto podríamos traducirlo como arreglo de compuertas programables. Una FPGA es un componente electrónico que contiene internamente un elevado de número de compuertas lógicas que permiten su programación. Al igual de que microcontroladores, podemos cargarle un código con ciertas instrucciones y este ejecutará lo solicitado. Con las FPGAs se puede realizar desde tareas sencillas como la creación de una simple compuerta lógica, hasta sistemas complejos como crear un microcontrolador o un procesador.
Las FPGAs llevan bastante tiempo entre nosotros, lo que pasa es que no han tenido el impacto de otros componentes electrónicos más conocidos como los microcontroladores o los microprocesadores. Fueron inventadas en el año 1984 por Ross Freeman y Bernard Von Der Schmitt ambos confundadores de Xilinx. Esta es una empresa de fabricación de FPGA de la cual hablaremos un poco más adelante.
Lenguajes usado para programar FPGAs
Para programar los FPGAs no usamos C o micropython que son dos lenguajes usados para programar microcontroladores, sino que usamos un tipo de lenguaje llamado HDL (Hardware Description Language) que traducido al castellano es lenguaje de descripción de hardware. Existen dos lenguajes HDL que son los más usados: Verilog y VHDL.
Verilog
Es un lenguaje de descripción de hardware para modelar sistemas electrónicos. La sintaxis de verilog es similar al lenguaje de programación C de tal manera que seguramente te resultaran familiar algunas cosas. Es de código abierto, es el más utilizado dentro de la comunidad de open hardware y por eso se ha convertido en un estándar dentro de la industria.
VHDL
Fue desarrollado por el departamento de defensa de Estados Unidos a inicios de los años 80 y está basado en el lenguaje de programación ADA, la finalidad de este lenguaje de programación es la misma que la de Verilog que es la de similar circuitos electrónicos digitales.
Principales fabricantes
No son muchos los fabricantes de FPGAs que existen. Los más reconocidos son los siguientes:
Xilinx
Es la principal empresa del sector de FPGAs cuenta con un poco más de la mitad del mercado actual. Esto ha llevado que AMD la comprara a finales de 2020 para hacer frente a Intel. Xilinx fue creada en 1984 y actualmente cuenta con las familias de productos Virtex, Kintex, Artix y Spartan. Además de esto ofrece los software Xilinx ISE y Vivado Design Suite.
Altera
Otro de los fabricantes destacados de FPGAs, Fue fundada en 1983 y fue adquirida por Intel en el año 2015. La familias de productos de altera son la Stratix y la Cyclone. El software para programar las FPGAs de Altera es el Quartus II.
Lattice
Esta es una compañía que se ha hecho presente recientemente debido al auge de su serie de productos ICE40 de bajo costo. Estos han permitido crear tarjetas de desarrollo más accesibles para el público.
Usos y aplicaciones de las FPGAs
Como te comenté al inicio, estos dispositivos tienen muchas aplicaciones las cuales te las mencionaré a continuación:
En equipos de comunicaciones inalámbricas como por ejemplo dispositivos para las redes 5G.
Equipos de redes. Algunos routers utilizan FPGAs para desempeñar algunas de sus funciones.
Vídeo y procesamiento de imágenes. He visto FPGAs en grabadores de cámaras de seguridad.
Estas son algunas de las aplicaciones que tienen los FPGAs en el mundo actual. A partir de ahora cuando veas el circuito electrónico de un equipo, trata de identificar los componentes que posee, yo siempre reviso para ver si tienen FPGAs o microcontroladores.
Recomendaciones antes de comprar una FPGA
Si después de conocer las FPGAs has quedado con ganas de adquirir uno, te voy a dar algunas recomendaciones que te ayudaran al seleccionar la opción adecuada.
Busca un FPGA económico para empezar. No gastes mucho dinero en comprar tu primer dispositivo. La programación es muy diferente a la secuencial que estamos acostumbrados a utilizar y eso puede desmotivarte y contribuir a que abandones el uso de la FPGA.
Investiga el software que utiliza. Algo importante de las FPGAs, que salvo excepciones que han aparecido recientemente, es que debes usar el software propietario para programarlas. No es como el Arduino o el ESP32 que tienes diferentes opciones. Aquí si compras una tarjeta de desarrollo FPGA debe usar el software de la marca que la compraste.
Verifica los requerimientos del hardware necesario para instalar el software de programación. Estos software tienden ha ser pesados y requieren unos buenos recursos del PC, por lo cual te recomiendo que lo verifiques antes de adquirir tu FPGA.
Averigua sobre las nuevas opciones de FPGAs libres. Ya existen desarrollos de dispositivos que son open source. Busca información sobre estos.
Valida que exista bastante información y una buena comunidad que trabaje con la FPGA que vas a comprar. Esto es muy importante, ya que ellos te pueden ayudar a resolver errores que se te presenten cuando estés aprendiendo.
Te dejo el enlace de dos opciones que he estado evaluando en caso de que me decida entrar de nuevo en el mundo de las FPGAs.
ICE40HX1K-STICK-EVN
Alhambra II
Si en tu investigación te consigues con alguna otra que sea interesante, no olvides enviarme un comentario al correo info@rjconcepcion.com.
Espero que este artículo te haya gustado y nos vemos en la próxima.
Siempre parece imposible hasta que se hace.
Buy me a beer
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post Todo lo que necesitas saber sobre los FPGA appeared first on rjconcepcion.
13:46
Como realizo mis proyectos de electrónica
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2022/01/El-Laboratorio-del-Toro-Ep-56.mp3
En este artículo te explico cual es el procedimiento que sigo para crear mis proyectos de electrónica.
Muchas veces cuando queremos hacer un proyecto de electrónica o un proyecto en general, no sabemos como empezar. A veces simplemente iniciamos y en el camino nos encontramos con una serie de obstáculos que nos aparecen a cada paso, los cuales nos hacen perder tiempo y en muchas ocasiones la motivación. Estos obstáculos mencionados son muy difíciles de eliminar en su totalidad, pero si es posible disminuirlos, y esto lo podemos hacer con la planificación previa.
Te voy a describir los pasos que yo realizo cuando me dispongo a hacer mis proyectos, estos pasos los he ido mejorando con el tiempo, es posible que tu realices otros pasos o tengas algunos más simplificados. Yo los utilizo ya que me permiten ahorrar tiempo y minimizar los obstáculos que me iré encontrando en el camino.
Lo primero que debes hacer es crear un documento donde coloques estos pasos y los vayas llenando con la información necesaria.
Soldadura componentes. Fuente: Pixabay.
Pasos para la creación de proyectos
Idea
Obviamente el primer paso es tener un idea. Estas pueden venir por una necesidad que se te presente en un determinado momento, por una mencionada por un amigo o familiar, o simplemente por un dispositivo que viste en Internet y que quieres replicar o mejorar.
Anota la idea de tu proyecto en el documento.
Alcance y objetivos
Este es uno de los puntos más importante antes de comenzar tus proyectos. Ya que muchas veces queremos que nuestro dispositivo haga muchas cosas porque conocemos todas las posibilidades que tenemos. Pero a menudo me pasa que algo simple, lo convierto en algo complejo y termino por no realizarlo. En este punto, pienso que simple es mejor. Lo importante es iniciar. Si después piensas en agregarle más características a tu proyecto, entonces te recomiendo que crees otro y le agregues esas nuevas funciones. Te digo esto, ya que a veces hacemos tan complicada la idea inicial, que cuando empezamos nos parece imposible o muy difícil el finalizarlo. Esto sin contar toda la frustración que da el hecho de que no funcione como quieres o que no obtengas los resultados esperados. Por eso es mejor iniciar simple, porque vas a ir logrando pequeñas victorias que te motivaran a seguir avanzando.
En el documento debes poner todas las funciones que quieres que realice tu proyecto o dispositivo.
Materiales
Cuando tienes la idea inicial, una de las primeras cosas que piensas es en los materiales que necesitas para implementar ese proyecto. Seguramente te pasa como a mi que ya tienes en la mente tu proyecto construido y funcionando a la perfección. Bueno en esta etapa te toca desarmar ese proyecto mental y anotar todos esos materiales en una lista.
Luego de hacer la lista, debes adquirir o tener disponibles todos los materiales y componentes al inicio del proyecto, esto es importante ya que te ahorra tiempo. Seguramente muchos materiales, componentes y herramientas seguramente ya los tienes. La idea es tenerlos todos a mano a la hora de iniciar los trabajos.
Después de un tiempo en este mundo, te darás cuenta de todos los componentes y herramientas que tienes. Yo he comenzado a hacer vídeos de todo lo que tengo en mi laboratorio. Te invito a que los veas en mi canal de Youtube.
Diagrama
Luego que ya tienes la idea, el alcance y los objetivos y el listado de materiales, toca realizar el diagrama de conexiones. Esta parte es importante hacerla desde el inicio, ya que tienes que tener en mente los pines que utilizarás en caso de usar una tarjeta de desarrollo del tipo Arduino o ESP32. Es imprescindible cuando trabajamos con tarjetas de desarrollo, validar que el pin que vamos a usar cumple con lo necesario para la conexión que vamos a realizar. Por ejemplo, si se necesita usar una PWM o un convertidor analógico-digital, esto de ser contemplado desde el inicio. Lo mismo pasa cuando tienes que hacer una comunicación entre dos dispositivos, debes usar los pines que vienen para ese tipo de comunicación dígase i2c, SPI, UART, etc.
Este diagrama lo puedes realizar en una hoja de papel o lo puede hacer de forma digital con algún software como Fritzing o Kicad. Depende de cual sepas manejar y tengas disponible.
Montaje
En este punto simplemente debes pasar el diagrama que acabas de realizar a la vida real. Debes conectar los componentes entre sí usando un protoboard. Recuerda estar pendiente de la polaridad de la alimentación y siempre es recomendable hacer una verificación con el diagrama luego de realizada la conexión. Esto te puede ahorra tiempo e incluso evitar que dañes algún componente por mala conexión.
Dependiendo de la complejidad del proyecto puede darse el caso que tengas que hacer el montaje por partes. Por ejemplo, si el proyecto lleva varios displays 7 segmentos conectados a un multiplexor, puedes conectar un display, probar y si todo sale bien hacer la conexión del siguiente. Esto te ayudará a conseguir algún error más fácilmente que si tienes más componentes y conexiones.
Código
Esta parte solo aplica si en el proyecto se va a usar una tarjeta de desarrollo. Si ese es el caso, entonces debes crear el código necesario para que tu proyecto funcione. En este parte recomiendo dividir el código por partes. Si tienes por ejemplo un sensor y dependiendo del valor que capte el sensor vas a realizar una acción con un actuador, lo que deberías hacer es primero tomar la medida con el sensor, luego que esta parte te funcione bien, puedes pasar a probar la acción, por ejemplo si quieres encender un led, haces la parte del código que enciende el led, y por último, juntas ambos segmentos de código y los unes para hacer las pruebas finales.
Pruebas
Las pruebas las puedes realizar al momento de haber terminado las conexiones en caso de que sea un circuito sin una tarjeta de desarrollo o por el contrario probar todo al final luego de tener el código. Es recomendable tener anotado las pruebas que se van a realizar, esto tiene que estar especificado en forma de casos para ver como reacciona nuestro proyecto ante los distintos escenarios.
También se recomienda dejar el dispositivo funcionando por un tiempo para ver si todo trabaja correctamente.
Compartir
Luego que tu proyecto está finalizado y funcionando de forma correcta, seguramente lo siguiente que quieres hacer es mostrárselo a todo el mundo. En este caso te recomiendo que no pierdas la oportunidad. Súbelo a tus redes sociales, ponlo en tu estado de Whatsapp y compártelo en grupos de Facebook relacionados y también en foros. Es importante muestres este logro al mundo, por muy pequeño y simple que sea, no importa, muchos ni siquiera tienen el conocimiento o no se animan a hacer este tipo de cosas y solo piensan en criticar, en cambio tu haz dado el paso y estas avanzando. Que tus amigos, conocidos y familiares se enteren de tus proyectos te va a comenzar a dar autoridad en el mundo de la electrónica y quien sabe, quizás algún día te solicitan un proyecto y puedes hacer algo de dinero.
Documentar
Este sería el último paso y no por eso menos importante. Documentar todo lo que hiciste es una buena manera de preservar ese conocimiento. Debes incluir todo, si es posible hasta los errores que cometiste. Muchas veces me ha pasado que he resuelto un error en un proyecto y al cabo de un tiempo me pasa nuevamente en otro proyecto y lo he podido resolver rápido porque lo tengo documentado. Esto me tocó aprenderlo de mala manera, los errores me aparecían y sabía que los había resuelto antes, pero no recordaba como, desde ese momento comencé a documentar los errores. Esto me ha ahorrado mucho tiempo. Evita repetir los errores. Trata siempre de ayudar a tu Yo del futuro jajajaja.
En mi caso tengo una carpeta con todos mis proyectos. Los divido por categorías de esta forma es más fácil buscar cuando necesite alguna información.
Conclusión
Te he mostrado los pasos que sigo al momento de realizar mis proyectos. Esto lo he ideado personalmente, posiblemente no sean los correctos o no se adapten a todas las personas, pero a mí me han funcionado. Si tienes alguna mejora o recomendación, recuerda que siempre me puedes escribir al correo info@rjconcepcion.com. Siempre estoy abierto a escuchar y a mejorar, esa es la forma en la que podemos crecer.
Espero que este post sobre como realizo mis proyectos te sea de utilidad y nos vemos en la próxima.
Siempre parece imposible hasta que se hace.
Buy me a beer
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post Como realizo mis proyectos de electrónica appeared first on rjconcepcion.
16:05
Proyecto pantalla LCD con micropython
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2022/01/El-Laboratorio-del-Toro-Ep-55.mp3
En el último artículo del año pasado te hablé sobre las pantallas que puedes usar en tus proyectos de electrónica, son muy útiles cuando quieres mostrar el resultado de las operaciones o capturas de información que realiza tu dispositivo.
En este post te quiero presentar un proyecto usando una pantalla LCD junto con el ESP32 y micropython. De esta forma seguiremos practicando y haciendo proyectos con este magnifico lenguaje de programación.
Para hacer el proyecto más interesante voy a hacer una consulta a una API de frases celebres y mostrar información como: fecha, la frase, el autor, entre otros datos en la pantalla.
Para esto vamos a usar el sitio web theysaidso.com
En el sitio mencionado existe una documentación donde indican cual es el endpoint que se debe consultar para obtener la frase del día. Este sitio tiene más opciones, pero son de pago, como este es un proyecto de practica, nos funciona con la versión gratis. En esta podemos hacer hasta 10 consultas en una hora. Ten esto en mente cuando hagas pruebas, ya que si te pasas te va a dar error. Para usar este servicio no se requiere un token de autenticación, lo cual hace más sencilla la consulta.
El endpoint es: http://quotes.rest/qod.json?category=inspire
La pantalla LCD que tengo ya trae incluido el modulo controlador HD44770, por lo cual las conexiones serán mucho más sencillas, ya que solo usaremos 4 cables, los cuales serían Vcc, tierra, SCL y SDA. Si tienes pantallas LCD y no tienes este modulo, te recomiendo que adquieras uno, es más fácil para realizar las conexiones. te dejo el enlace de la pantalla que usé en este proyecto. Pantalla LCD 16x2 con módulo i2c
Para trabajar con esta pantalla debemos usar dos librerías. Estas debes subirlas al ESP32 antes de comenzar a escribir el código. Puedes descargar estas librerías de los siguientes enlaces:
libreriasLCD
Estas librerías los obtuve la siguiente cuenta de GitHub: https://github.com/dhylands/python_lcd
La conexión es muy sencilla. El pin Vcc de la pantalla se conecta con el pin 5V del ESP32, el pin GND se conecta con cualquier pin GND, el pin SCL se conecta con el pin IO22 y el SDA con el pin IO21 del ESP.
"""
Nombre:
Proyecto Frases en LCD
Descripción:
Este proyecto muestra en una pantalla LCD
una frase consultada a la API
del sitio web theysaidso.com
Elaborado por:
Ricardo Concepcion
www.rjconcepcion.com
Enero 2022 """
# Librerias utilizadas
import urequests as requests
from time import sleep_ms, ticks_ms
from machine import I2C, Pin
from i2c_lcd import I2cLcd
# Función para conectarse a Wifi
def do_connect():
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('connecting to network...')
wlan.connect('WIFI_SSID', 'WIFI_PASS')
while not wlan.isconnected():
pass
print('network config:', wlan.ifconfig())
# Variables
flag = True
DEFAULT_I2C_ADDR = 0x3F
# Objetos i2c y lcd
i2c = I2C(scl=Pin(22), sda=Pin(21), freq=400000)
lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, 2, 16)
# Inicio del programa
lcd.clear() # Limpia la pantalla LCD
do_connect() # Se conecta a la red wifi
r = requests.get("http://quotes.rest/qod.json?category=inspire") # Solicitud a la API
respuesta = r.json() # Respuesta convertida a formato JSON
print(respuesta)
lcd.putstr('Proyecto Frases')
sleep_ms(1000)
lcd.clear()
print('date: ', respuesta['contents']['quotes'][0]['date'])
lcd.putstr(respuesta['contents']['quotes'][0]['date'])
sleep_ms(1000)
print('Quote: ', respuesta['contents']['quotes'][0]['quote'])
print('Author: ', respuesta['contents']['quotes'][0]['author'])
print('Cpyright: ', respuesta['copyright']['url'])
frase = respuesta['contents']['quotes'][0]['quote']
tamanoFrase = len(frase)
# Loop para recorrer la frase y mostrarla en la pantalla LCD
for i in range(0, tamanoFrase, 15):
print(frase[i:i+15])
if flag == True:
lcd.clear()
lcd.move_to(0,0) # mueve el cursor la fila 0 columna 0.
flag = False
lcd.putstr(frase[i:i+15])
sleep_ms(2000)
else:
lcd.move_to(0,1) # mueve el cursos a la columna 0 fila 1.
flag = True
lcd.putstr(frase[i:i+15])
sleep_ms(2000)
lcd.clear()
lcd.move_to(0,0)
lcd.putstr('Autor:')
lcd.move_to(0,1)
lcd.putstr(respuesta['contents']['quotes'][0]['author'])
sleep_ms(2000)
lcd.clear()
lcd.move_to(0,0)
lcd.putstr('Copyright:')
lcd.move_to(0,1)
lcd.putstr('theysaidso.com')
sleep_ms(2000)
lcd.clear()
lcd.move_to(0,0)
lcd.putstr('visita:')
lcd.move_to(0,1)
lcd.putstr('rjconcepcion.com')
sleep_ms(2000)
Te invito que hagas este proyecto, te ayudará a mejor tus conocimientos de micropython y aprenderas a usar las pantallas LCD.
Recuerda que cualquier pregunta o comentario lo puedes hacer al correo info@rjconcepcion.com
Siempre parece imposible hasta que se hace.
Buy me a beer
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post Proyecto pantalla LCD con micropython appeared first on rjconcepcion.
09:44
Conoce sobre las pantallas y como usarlas en tus proyectos
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/12/El-Laboratorio-del-Toro-Ep-54.mp3
Cuando realizamos un proyecto electrónico, es común que necesitemos mostrar un resultado, esto puede ser el estado de alguna entrada, el valor recibido de algún sensor, o simplemente la información obtenida de alguna otra fuente o de un cálculo. Depende de lo que estemos haciendo podemos usar leds, displays 7 segmentos o pantallas. De estas te hablare hoy en este artículo.
Pantallas LCD
Existen una gran variedad de proyectos de electrónica donde es necesarios conocer el resultado de alguna operación que realice nuestro microcontrolador o saber los valores actuales que estamos monitoreando con nuestros sensores. Para ello podemos usar una serie de dispositivos que nos permiten visualizar estos resultados, pero uno de los más útiles y versátiles son las pantallas.
Esta demás decir que hoy en día pasamos mucho de nuestro tiempo viendo una pantalla. Ya sea viendo TV, trabajando, jugando, etc obtenemos información de este dispositivo. En este caso vamos a hablar de pantallas más sencillas que las usadas por nuestros teléfonos inteligentes, tablets, laptops o TVs.
Pantalla LCD. Fuente: Wikepedia Commons.
La pantallas permiten que le mostremos al usuario valores que son el resultado de los procesos que trabaja nuestro proyecto electrónico. Podemos por ejemplo, mostrar los valores obtenidos por sensores de temperatura, humedad, presión, etc. También podemos mostrar el estado de algún otro dispositivo o simplemente indicar opciones para interactuar con el usuario.
Las pantallas reciben información de nuestro microcontrolador. Tenemos varias opciones para enviarle la información a mostrar a la pantalla. Esta puede ser: Paralela, SPI e I2C. La forma de comunicación que utilicemos depende del tipo de proyecto que estemos realizando
Actualmente existen en el mercado varios tipos de pantallas que nos pueden ser útilies para nuestros proyectos electrónicos.
Tipos de pantallas
Las pantallas que podemos usar normalmente en nuestros proyecto se diferencian mayormente por la tecnología con la que se realizan. A continuación voy a mencionar y describir brevemente las más conocidas.
Pantalla LCD 16X2 con controlador HD44770
Esta pantalla es una de las más comunes y tiene dos filas de 16 caracteres. Es muy usada en proyectos de electrónica. La desventaja que tiene que requerimos muchas conexiones, a parte de la tierra y el voltaje, se requieren de 7 pines del microcontrolador para conectar la pantalla, lo cual hace que consumamos muchos pines de nuestro microcontrolador.
Para solucionar el problema de la cantidad de pines, existe un módulo adaptador que permite conectar la pantalla mediante i2c. Esto es fabuloso, ya que con solo 2 pines adicionales al voltaje y tierra, podemos enviar datos a nuestra pantalla.
Algunas pantallas ya traen integrado este módulo, por lo cual es bueno revisar bien la información antes de adquirir una de estas pantallas.
En este tipo de pantallas solo podemos mostrar caracteres alfanuméricos.
Pantalla LCD 20x4
Es similar a la pantalla anterior con la diferencia que esta tiene 4 filas de 20 caracteres, por lo cual nos permite colocar más información dentro de la misma. Al igual que la versión de 16x2, esta se puede conseguir con el controlador HD44770 y con el módulo de i2c.
Pantallas OLED
Este tipo de pantalla produce una imagen más brillante y nítida que las pantallas LCD. Además por la tecnología con la que se fabrican consumen muy poco energía y son más delgadas, lo cual agrega una ventaja si queremos hacer que nuestro proyecto sea portátil.
Estas pantallas se comunican con el microcontrolador a través de los protocolos i2c y SPI. Lo cual nos permite usar pocos pines de nuestro micro y ser más fácil de conectar.
Se pueden encontrar de dos tamaños. La de 128x32 píxeles que mide unas 0,69 pulgadas y la de 128x64 píxeles que mide 0,96 pulgadas.
En el pasado he realizado varios proyectos con pantallas OLED. Te dejo el enlace de un termómetro IoT que publiqué hace un tiempo.
Termómetro IoT
Nokia LCD 5110
Esta es una pantalla que se usaba en los viejos teléfonos celulares de Nokia. Su tamaño es de 84x48 píxeles y son un poco más grande que las OLED mencionadas anteriormente, midiendo 1.5 pulgadas. La ventaja de esta pantalla es que puede mostrar gráficos. La comunicación se realiza a través del protocolo SPI.
LCD 7 segmentos 6X1
Este es un tipo de pantalla LCD pero que solo muestra números. Tiene 6 caracteres y una fila. La comunicación es a través de i2c. Los número que se muestran son en la forma de displays 7 segmentos.
Pantallas de tinta electrónica o E-Ink
Son un tipo de pantallas que representan la información simulando un papel. Son muy usadas en lectores de libros electrónicos. Por ejemplo los Kindles, usan pantallas de tinta electrónica.
Lo interesante de estas pantallas es que consumen poca energía y no tienen luz de fondo, por lo cual son las recomendadas para la lectura. Estas mantienen la información incluso si no tienen energía. La energía es utilizada cuando se requiere refrescar la información.
Son más grande que las que hemos visto hasta ahora, pero a su vez son más costosas. Podemos conseguir de varios tamaños, por ejemplo las hay de: 2.7, 7.5 y 10.3 pulgadas, El protocolo de comunicación que utilizan es SPI.
Pantalla LCD TFT
Este tipo de pantalla tiene más resolución que las mostradas anteriormente. Estas pueden mostrar imágenes a color y con buena resolución. Se pueden conseguir de varios tamaños como: 1.3, 2.4, 3.5 pulgadas entre otros. Su conexión normalmente es usando el protocolo SPI, de todos modos siempre es recomendable revisar las especificaciones.
Algo adicional a tener en cuenta es el controlador que tienen integrado. Es importante conocer este componente ya que de esta forma seleccionaremos la librería adecuada para trabajar en nuestro código.
Conclusión
Como puedes ver existen varios tipos de pantallas que puedes usar para tus proyectos de electrónica. Yo te recomiendo que compres al menos un par de cada tipo para que practiques usandolas en laboratorios, recuerda que la practica hace al maestro y no hay mejor forma de fijar los conocimientos.
Recuerda revisar las hojas de datos de las pantallas que adquieras, de esta forma no cometerás errores al conectarla que pueda dañarla.
Espero que este artículo te haya gustado. Es posible que en un futuro artículo te muestre un proyecto donde usemos una pantalla para explicarte su conexión y el código necesario para su implementación.
Este es el último artículo por este año, espero que hayas aprendido mucho durante este tiempo y que la información y los proyectos que he mostrado en este sitio web te hayan ayudado a crecer y mejorar tus conocimientos de electrónica, computación y programación.
Te deseo un feliz y prospero año 2022. Hasta el próximo año.
Siempre parece imposible hasta que se hace.
Buy me a beer
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post Conoce sobre las pantallas y como usarlas en tus proyectos appeared first on rjconcepcion.
11:18
Crea una VPN usando Raspberry Pi
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/11/El-Laboratorio-del-Toro-Ep-53.mp3
En esta oportunidad te voy a presentar un proyecto para crear una VPN usando tu Raspberry Pi. Si no conoces el término VPN, este se refiere a Virtual Private Network y es utilizada para crear conexiones seguras entre dos dispositivos a través de Internet. En redes y computación, Internet se considera como una red no segura. Cuando se requiere la transferencia de información confidencial entre dos dispositivos que se conectan usando Internet, normalmente se recurre a una VPN.
VPN
Puedes ver la VPN como un túnel donde el tráfico interno viaja cifrado, por lo cual si el tráfico es interceptado de alguna manera, este no pueda ser entendido por la persona o sistema que hizo la intercepción.
Las VPN también permiten a un dispositivo externo conectarse a una red interna o LAN. Por ejemplo, tu puedes estar en tu computadora en tu trabajo o en cualquier lugar fuera de tu casa y conectarte a la red interna de tu hogar. De esta forma tendrás acceso a todos los equipos y servicios que tengas en tu red local. Por ejemplo, si tienes un NAS, podrás tener acceso a los archivos que se encuentren ahí, o conectarte a tu PC o Raspberry Pi mediante ssh o escritorio remoto.
Conexión VPN. Fuente: Wikipedia commons.
Mi intención con este proyecto es crear un servidor VPN usando la Raspberry Pi. De esta manera podré conectarme remotamente y de manera segura desde cualquier sitio. Para este proyecto, voy a conectar una máquina virtual que tengo en Azure con mi red interna.
Recursos
Para hacer este proyecto vamos a necesitar de dos recursos. Estos son:
PiVPN
No-ip
PiVPN
Este es un proyecto que permite la instalación de OpenVPN o WireGuard en la Raspberry Pi de la forma más sencilla posible. Como supondrás, crear una VPN no es una tarea sencilla, ya que necesitas hacer varias configuraciones usando protocolos especializados para esa tarea. En este caso, 0-kaladin quien es el encargado del proyecto PiVPN, se le ocurrió juntar todos los scripts necesarios para la instalación de un servidor VPN en la Raspberry Pi de la forma más sencilla posible. En el siguiente enlace puedes visitar el sitio web del proyecto:
PiVPN
No-ip
Como sabes, cuando una computadora se conecta a una red, debe tener una dirección IP. Lo mismo pasa cuando se conecta a Internet. En el caso de Internet, es nuestro router el que tiene esa dirección IP que es conocida como IP pública. Esta dirección IP no es fija (a menos que la hayas comprado), puede cambiar cada cierto tiempo. Cuando se realiza la configuración de PiVPN, debemos colocar la dirección IP pública del sitio donde pongamos el servidor VPN. No podemos colocar la IP pública que tengamos en ese momento, porque cuando cambie, nuestra VPN se va a caer. Aquí es donde entra el juego el servicio no-ip. Este lo que hace es que nos permite crear un nombre de dominio y asociarlo a nuestra dirección IP. Cuando la IP cambie, este servicio actualizará esta dirección con nuestro dominio. Entonces en las configuraciones de nuestro servidor VPN lo que haremos será colocar un nombre de dominio que habremos creado previamente en no-ip.
Te recomiendo que te registres en no-ip y crees tu dominio.
No-ip
Diagrama del proyecto
Para que tengas una idea visual, la siguiente imagen representa un diagrama del proyecto mencionado.
Vídeo explicativo del proyecto
Te recuerdo que si este post te ha gustado, por favor compártelo con personas que creas que le pueda gustar. Cuento con tu apoyo.
Nos vemos en un próximo artículo.
Siempre parece imposible hasta que se hace.
Buy me a beer
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post Crea una VPN usando Raspberry Pi appeared first on rjconcepcion.
07:08
¿Qué son los contenedores y como puedo usarlos?
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/11/El-Laboratorio-del-Toro-Ep-52.mp3
Si estas en el mundo de la tecnología seguramente ya habrás escuchado el término contenedor, en caso contrario, no pienses que es una de esas cajas de metal que vienen en barcos y que traen productos. Los contenedores son una tecnología que está explotando en los últimos años gracias a su versatilidad, facilidad de uso y por su escasa complejidad.
Los contenedores tienen un cierto parecido a las máquinas virtuales. Si no sabes que es la virtualización, te recomiendo que leas el artículo: Lo que debes saber sobre la virtualización.
Contenedores. Fuente: pxfuel.com
Contenedor
Vamos a empezar definiendo que es un contenedor. Podemos decir que un contenedor es como una pequeña máquina virtual cuya finalidad es ejecutar uno o pocos servicios específicos, de esta forma solo se realiza un tarea en concreto, lo cual permite que el contenedor sea liviano y consuma pocos recursos y poder tener la posibilidad de escalar la cantidad de contenedores en caso de requerir manejar una mayor carga de trabajo.
Contenedores vs Máquinas virtuales
Seguramente te estarás pregunta. Si existen las máquinas virtuales, para que quiero usar contenedores. Bueno todo radica en la cantidad de recursos que consume cada uno. Cuando montamos una máquina virtual hacemos una reserva de recursos de nuestro equipo host. Por ejemplo si creas una máquina sencilla normalmente le puedes colocar 1 CPU, 2 GB de RAM y unos 10 GB de disco duro. Ahora bien, imagina si quieres correr diferentes servicios y quieres que se encuentren en equipos diferentes. Entonces tienes que apartar todos estos recursos de tu equipo host. Al final no siempre se terminan usando todos esos recursos que son reservados. Lo cual es un desperdicio.
En cambio, cuando usamos contenedores. Se crea una pequeña máquina virtual que solo va a ejecutar uno o muy pocos servicios. Por ejemplo puedes crear un contenedor para colocar un servidor de páginas web, puedes crear otro contenedor que corra un script de Python, etc. haciendo esto se consumen mucho menos recursos que creando una máquina virtual para que se realicen esas tareas.
En la siguiente imagen se puede apreciar la explicación anterior.
Diferencias entre contenedores y máquinas virtuales. Fuente: Wikipedia Commons.
Plataformas de contenedores
Existen varias plataformas de contenedores, pero el más usado y conocido es Docker, incluso podemos pensar que es un estandar de la industria. Además de docker existen CoreOS rkt, Mesos Containerizer, LXC Linux Containers, OpenVZ, y crio-d.
Imagenes Docker
Al igual que en las máquinas virtuales, los contenedores se trabajan con imagenes. Actualmente existe una gran variedad de imagenes, puedes conseguir desde sistemas operativos hasta servicios como servidores web apache. También puedes conseguir imagenes de bases de datos.
Estas imagenes que menciono se encuentran en el sitio web Docker hub. Te recomiendo que le des un vistazo para que veas la gran cantidad de imagenes de docker que tiene este sitio web. Seguramente tu mente volará con todas las posibilidades que tienes ahí.
Beneficios de los contenedores
Portabilidad: Seguramente alguna vez te ha pasado que creas un programa o script en tu computadora y cuando se lo pasas a un amigo o cliente este programa no funciona. Te tengo una buena noticias, los contenedores solucionan ese problema. Puedes crear un contenedor con las librerías y dependencias que necesites para tu aplicación y luego puedes compartir ese contenedor y todo funcionará de forma correctar independientemente de donde se corra el contenedor. Esto es una ventaja muy importante de los contenedores.
Menos recursos: Como los contenedores se enfocan en ejecutar uno o muy pocos servicios esto permite crear esas pequeñas máquinas con solo no necesario para que funcione nuestro servicio, de este modo se usan de forma eficiente los recursos.
Mejor desarrollo de aplicaciones: Los contenedores respaldan las culturas ágiles y DevOps para la creación de aplicaciones.
Aislamiento: Aunque los contenedores se ejecuten en el mismo engine estos trabajan de forma aislada. Esto permite que un error en un contenedor, no afecte el resto de contenedores que se están ejecutando.
Kubernetes
Cuando comiences a investigar un poco más sobre contenedores, estoy seguro que te vas a conseguir con Kubernetes. Kubernetes es un orquestador de contenedores, lo que hace es poner a trabajar contenedores de forma conjunta. También permite gestionar los recursos, facilitar la automatización y el escalado de las cargas de trabajo entre otras cosas.
Aplicación en el mundo de la electrónica
Seguramente después de conocer los contenedores te habrán surgido muchas ideas de como puedes usarlos en combinación con la electrónica. A mi se me ocurre por ejemplo que un dispositivo IoT envie los datos a un servidor y este se encargue de almacenar esta información en una base de datos. Este tipo de proyecto lo puedes hacer usando contenedores sin ningun problema. En lugar quizás de montar una máquina virtual.
Conclusión
Como habrás visto este tema de los contenedores es bastante interesante. Hay pocas limitaciones en cuanto a los proyectos que podemos hacer. Adicional a esto, los proveedores de servicios en la nube te ofrecen plataformas para montar los contenedores que pueden ser de gran utilidad para ciertos proyectos. Este demuestra el potencial de esta tecnología. Espero que te haya parecido interesante y cualquier comentario no olvides escribirme al correo info@rjconcepcion.com.
Recurso
En esta oportunidad te quiero hablar de dos nuevas noticias que salieron hace poco relacionadas con Raspberry Pi.
La primera es que hay una nueva versión del sistema operativo Raspberry Pi OS. Esta versión fue liberada el 30 de Octubre. Aun no he tenido tiempo de probarla, pero ya la descargué. Pienso probarla dentro de poco.
La otra buena noticias es que las Raspberry Pi Foundation sacó la Raspberry PI Zero 2 W. La cual tiene un procesador es quad-core de 64 bits que es más potente que el anterior que era de un solo core. Adicional a esta mejora, se mejoró el bluetooth a la versión 4.2 y ahora la placa incluye una antena para esta tecnología. El costo de esta nueva placa es de $15.
Te dejo los enlaces de estas informaciones:
Raspberry Pi Zero 2 W
Raspberry Pi OS
Te recuerdo que si este post te ha gustado, por favor compártelo con personas que creas que le pueda gustar. Cuento con tu apoyo.
Nos vemos en un próximo artículo.
Siempre parece imposible hasta que se hace.
Buy me a beer
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post ¿Qué son los contenedores y como puedo usarlos? appeared first on rjconcepcion.
11:19
Contador de objetos con displays 7 segmentos
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/10/El-Laboratorio-del-Toro-Ep-51.mp3
En esta oportunidad vamos a realizar un contador con displays 7 segmentos. Este dispositivo va a trabajar de la siguiente manera: Contará los objetos que sean detectados por un un sensor de ultrasonidos HC-SR04. Para mostrar el valor de la cuenta, estará compuesto por dos displays 7 segmentos. Además de esto dispondrá de 3 botones. Uno para sumar a la cuenta, uno para restar y otro para reiniciar de la cuenta a cero.
Este proyecto lo realicé usando microPython, de esta forma practicaremos un poco con este lenguaje de programación. Si no conoces micoPython, te recomiendo que leas el artículo MicroPython. Python en microcontroladores.
Como puedes ver este proyecto tiene varios componente. Cuando se van a realizar proyectos de este tipo, siempre es bueno dividirlo en partes. En el episodio del podcast que acompaña este artículo te explico como realicé la división de la que hablo.
Materiales
Para este proyecto vas a necesitar los siguientes materiales y componentes:
Tarjeta de desarrollo ESP32.
Sensor de ultrasonidos HC-SR04.
3 Pulsadores.
2 Displays 7 segmentos.
2 Transistores 2N3904.
2 Resistencias de 220 Ω.
2 Resistencias de 1000 Ω.
Shift Register SN74HC595N.
Protoboard.
Cables jumpers.
Diagrama de conexiones
Código
A continuación te coloco el código que utilicé para programar el proyecto.
Contador de objetos microPython
Datasheet SN74HC595N
Recurso
El recurso que te quiero compartir hoy es un software que me compartí mi amigo Marcos Díaz y este permite colocar multiples sistemas operativos para ejecutarlos en tu Raspberry Pi. Lo interesante es que no solo funciona con memorias micro-SD, sino que también trabaja con pendrive.
Ahora ya no tienes que borrar tu micro-sd para probar un nuevo sistema operativo en tu Raspberry Pi. Con esta herramienta puedes ponerlo en un mismo medio de almacenamiento. Otra cosa interesante es que el almacenamiento es persistente, es decir, los archivos y configuraciones que crees en el sistema se guardaran como si fuera tu PC.
Te dejo el enlace de su sitio web
BerryBoot
Te recuerdo que si este post te ha gustado, por favor compártelo con personas que creas que le pueda gustar. Cuento con tu apoyo.
Nos vemos en un próximo artículo.
Siempre parece imposible hasta que se hace.
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post Contador de objetos con displays 7 segmentos appeared first on rjconcepcion.
10:24
Lo que necesitas saber sobre los displays 7 segmentos
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/09/El-Laboratorio-del-Toro-Ep-50.mp3
Arrancamos esta nueva temporada con un componente que te va a ayudar mucho a mostrar los valores que midas con tus circuitos, te hablo del display 7 segmentos. Ese componente es muy útil cuando queremos mostrar el valor obtenido de una medición o el resultado de algún cálculo realizado por nuestro proyecto. En fin es un medio de salida de la información. En las próximas líneas conocerás un poco más sobre este componente.
¿Qué es un display 7 segmentos?
Un display 7 segmentos es un dispositivo compuesto internamente por diodos que leds ubicados de tal manera que realizando combinaciones de estos podemos obtener números y en algunos casos letras. Como su nombre lo indica están compuestos de 7 segmentos, cada segmento representa una parte, combinando estas partes podemos obtener números y letras. Estos segmentos están compuestos por diodos leds.
Imagen display 7 segmentos. Fuente: Wikipedia Commons.
Como puedes ver en la imagen, el display 7 segmento tiene unos pines, estos son un extremo del led interno. Un display puede ser de ánodo común o de cátodo común.
El display de ánodo común tiene todos los ánodos de los leds interno interconectados entre sí. En cada lado del display hay un pin que representa este ánodo común. Para que enciendan los segmentos debemos conectar este pin al voltaje de alimentación.
Por otra parte, si el display es de cátodo común, este tendrá interconectados todos los cátodos de los leds que conforman cada segmento. De igual forma que en el caso anterior, existe un pin de cátodo común en cada hilera de pines del display. Para que enciendas los segmentos debemos conectar este pin a tierra.
Como hemos dicho que los segmento del display están compuestos internamente por un led, este significa que cuando hagamos la conexión debemos agregar una resistencia para limitar la corriente. Para saber cual es la corriente ideal de trabajo del display debemos consultar la hoja de datos o el datasheet del componente.
Conexión display 7 segmentos
Los displays de 7 segmento tienen 10 pines a cada lado. Cada pin representa un led más dos pines de ánodo/cátodo común. Seguramente estarás pensando que sobra un pin, ya que la suma da 9. Pues bien, este pin es un punto que tienen los displays en la parte inferior derecha. En total son 8 leds más dos pines de ánodo/cátodo común.
Como he mencionado, los displays 7 segmentos están compuestos por leds y como sabemos debemos limitar la corriente a esos leds usando una resistencia. Para la conexión de un display de 7 segmentos tenemos dos maneras de conectarlo.
Colocar una resistencia en cada pin de un segmento. Con lo cual tendríamos que poner 8 si usamos el punto.
Colocar una resistencia en el ánodo/cátodo común.
La primera conexión tiene la desventaja de que tendremos que usar muchas resistencias, pero obtendremos una iluminación del display constante independientemente de la cantidad de segmentos que se enciendan. Por otro lado, la segunda opción tiene la ventaja que solo usamos una resistencia, pero la iluminación variará a medida que se vayan encendiendo los segmentos, ya que la corriente se distribuirá entre los segmentos.
Conexión con varias resistencias.
Conexión con una resistencia.
Calcular la resistencia para un solo segmento
El cálculo de la resistencia la debemos hacer de la misma manera que con un led común. Para ello debemos buscar el datasheet del display 7 segmentos que vayamos a utilizar. Acá abajo te dejo el enlace del datasheet del display 7 segmentos que voy a utilizar.
Datasheet display 7 segmentos 5161AS
Para este display la corriente de trabajo del led de un segmento es de 30 mA. En mi caso asumiré un voltaje de alimentación de 5 VDC que sería por ejemplo la salida de un pin de Arduino. El dato que nos faltaría sería el voltaje en directo o forward que en este caso es de 1.8 V. Con esos datos tenemos que:
R = (Vs - Vf)/If => R = (5V - 1.8V)/30mA => R = 106.66Ω
Como el resultado no es un valor comercial, tendríamos que aproximar al siguiente valor que sería 120Ω o superior. Puedes usar cualquier valor cercano superior de resistencia que tengas entre tus componentes.
Pines del display 7 segmentos
Como ya te he comentado, cada pin representa un led. Un display de 7 segmentos tiene como su nombre lo dice 7 segmentos, aunque en realidad son 8 si contamos el punto. Cada segmento tiene una letra asignada de la A a la G y al punto se le llama DP.
Letras de los segmentos. Fuente: Wikipedia Commons.
Ahora apoyado en el datasheet debes identificar el pin que corresponde a cada letra. Luego si necesitas mostrar el número 1, sabes que debes encender los segmentos B y C. Para ello debes colocar un "1" o "0" lógico en los pines respectivos.
Tipos de displays
En el mercado se pueden conseguir varios tipos de displays además de los de 7 segmentos. Existen de 14 segmentos y de hasta 16 segmentos. Esto cuando hablamos de un solo dígito.
Además de los tipos de displays basados en la cantidad de segmentos, también tenemos basados en la cantidad de dígitos por display. Podemos conseguir desde 2 dígitos hasta 4 dígitos. Estos últimos son los que conozco. Quizás existan displays de más de 4 dígitos.
Visualización dinámica
Quizás estes pensando que uno de los principales problemas de usar displays 7 segmentos es que debemos usar muchos pines para conectar ese componente a un Arduino u otro microcontrolador y que si además queremos usar más números entonces vamos a requerir más pines. Te informo que ese problema tiene una sencilla solución y es usando un componente adicional llamada shfit register junto con una técnica conocida como visualización dinámica. Te explico ambos a continuación:
Un shift register nos permite agregar entradas o salidas a nuestro microcontrolador. Este trabaja convirtiendo datos en serie a paralelo o viceversa. Esto signfica que podemos enviarle un número o valor de forma serial y el lo cambiará a comunicación en paralelo. Por ejemplo estos componentes tienen una entrada que es serial y como salida tienen 8 pines. Estos los podemos conectar a nuestro display 7 segmentos. Si queremos mostrar un 1 en el display, simplemente debemos enviar vía serial un dato que permita mostrar el valor 1 en el display, de esta forma podemos mostrar números en nuestro display solo usando 3 pines de nuestro microcontrolador.
Ahora bien, si queremos crear un número con dos o más dígitos debemos usar la visualización dinámica. Esta es una técnica que consiste en engañar al ojo humano para que vea el número de dos o más dígitos cuando en realidad el microcontrolador solo enciende un display. Esto lo que hace es alterna el encendido del display tan rápido que el ojo humano no es capaz de distinguir que el display está apagado. Esto lo podemos lograr colocan un transistor en el ánodo/cátodo de cada display de forma tal que este nos permita encender y apagar el display.
Conclusión
Hasta ahora te he dado mucha información sobre los displays 7 segmentos. Para que entiendas completamente su funcionamiento voy a hacer un proyecto para que de esta forma termines de afianzar los conocimientos sobre este componente.
Como siempre digo, la mejor forma de aprender algo es haciendolo.
Recurso
El recurso que quiero compartir en esta oportunidad son unas certificaciones de la empresa Oracle. Oracle ofrece un servicio de cloud computing. Estos exámenes de certificación están de forma gratuita hasta el 31 de Diciembre de 2021. En la misma plataforma tienes todo el material de estudio para estas certificaciones
Certificaciones Oracle
Espero no dejes pasar esta oportunidad.
Siempre parece imposible hasta que se hace.
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post Lo que necesitas saber sobre los displays 7 segmentos appeared first on rjconcepcion.
13:40
Celebramos nuestro 2do Aniversario
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/09/El-Laboratorio-del-Toro-Ep-49.mp3
Sorprendentemente hemos llegado al 2do aniversario del podcast y del blog.
En el audio publicado hago un repaso a lo que hicimos en el último año y lo que viene en la próxima temporada.
Nos vemos en un próximo artículo.
Siempre parece imposible hasta que se hace.
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post Celebramos nuestro 2do Aniversario appeared first on rjconcepcion.
09:00
API. ¿Qué es y para qué sirve?
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/08/El-Laboratorio-del-Toro-Ep-48.mp3
En este artículo conoceras sobre API, la cual es una herramienta de programación muy útil que puedas usar para tus proyectos tanto de programación como de electrónica.
¿Qué es API?
API viene de las siglas en inglés Application Programming Interface y es un conjunto de definiciones que se utilizan para integrar dos aplicaciones. Las API permiten obtener, actualizar, crear y borrar información de recursos. También te permite que tu aplicación pueda realizar procesos y tareas sin tener que tu mismo desarrollarlas.
Si recuerdas en el episodio anterior te comenté sobre un proyecto que realice que utiliza la API de Telegram para escribirme un mensaje en la aplicación cuando ocurra un determinado evento. Yo no tuve que desarrollar nada en Telegram, simplemente usando una comunicación con la API le digo que escriba un mensaje con la información que necesito en un determinado chat.
Actualmente existen muchos servicios que se pueden usar para obtener datos a través de API y de esta forma lograr que nuestros proyectos tengan un alcance mayor.
API públicas y privadas
Podemos decir que existen dos tipos de API. Las públicas y las privadas.
Las API públicas son aquellas en la que solo realizamos la solicitud al servidor deseado y esta nos devuelve la información. No necesitamos nada adicional. En cambio las API privada si requieren información adicional, esta puede ser un usuario y una contraseña o como suele utilizarse más comúnmente un token. Este es un código que le dice al API quienes somos y que nos puede dar la información que estamos solicitando. Este tipo de API normalmente requiere que nos registremos en el sitio web que provee el servicio y que generemos el token. La forma en la que se genera el token depende de la plataforma. Normalmente todas las API tienen una documentación donde se explica como generar el token, incluso hasta en algunos casos podemos configurar ciertos permisos para restringir lo que el usuario del API puede realizar.
REST
Cuando comiences a investigar sobre las APIs te vas a conseguir con el termino REST. Este viene del inglés Representational State Transfer y es una arquitectura mediante la cual se rigen las APIs. Las APIs REST se caracterizan por trabajar peticiones o solicitudes HTTP, de esta forma se pueden obtener datos en los formatos XML y JSON. Para que una API sea REST o RESTful como también se conoce, debe cumplir con los siguientes criterios:
Arquitectura cliente-servidor.
Solicitudes a través de HTTP.
Comunicación entre el cliente y el servidor sin estado.
Capacidad de caché.
Sistema en capas.
Interfaz uniforme. Este es referente a la identificación y administración del recurso solicitado.
Métodos HTTP
Para trabajar con las APIs RESTful se usan los métodos HTTP, seguramente ya los conoces o por lo menos los debes haber escuchado. De igual forma te los explico rápidamente.
GET: Se usa para solicitar información sobre un recurso especifico.
POST: Se utiliza para enviar información de un recurso al servidor.
PUT: Con este podemos actualizar la información de un recurso en el servidor.
DELETE: Borra el recurso especificado.
Con estos métodos se le indica a la API la acción que se quiere tomar.
JSON
Luego de que realizas una solicitud a un API ella te va a dar un respuesta. El formato de esta depende de la API, pero el más usado es JSON. Este significa JavaScript Object Notitation y es un formato en texto plano, el cual es liviano y es usado para intercambiar datos en entre sistemas. Aunque el nombre menciona a JavaScript, este es independiente del lenguaje. Al ser un formato muy usado, ya existen librería en los lenguajes de programación para leer y generar información en JSON.
Beneficios API
Ahora para que te termines de enamorar de las APIs te voy a mencionar algunos de los beneficios de estas.
Automatización: Si realizas tareas repetitivas en las cuales consultas ciertos datos en un sistema y luego debes procesarlos para crear un informe o tomar una decisión, es posible que esta tarea la puedas realizar con el API del sistema que usas. Obviamente este debe tener una API para realizar consultas, pero te digo que se pueden realizar automatizaciones muy interesantes usando el API de un sistema y con esto ahorrar tiempo.
Integración: Podemos integrar dos o más sistemas para que trabajen en conjunto simplemente usando las APIs.
Mayor alcance: Si tenemos un proyecto sencillo, podemos ampliar su alcance simplemente realizando consultas a diferentes APIs para traer nueva información. Esto puede mejorar la funcionalidad de nuestro proyecto y no aumentaría la complejidad del mismo.
Adaptable al lenguaje: No estamos obligados a trabajar con un determinado lenguaje, simplemente debemos buscar las librerías o el código necesario para que nuestro proyecto pueda hacer solicitudes a un API y luego procesar la respuesta.
Control de acceso y permisos: Dependiendo del sistema que estemos consultando a través del API podemos restringuir los permisos y el acceso a la información del usuario que realiza la consulta.
Variedad: Actualmente existe una gran variedad de servicios que podemos utilizar usando un API. Tenemos por ejemplo: Consulta del tiempo, consulta del valor de acciones en la bolsa, incluso podemos enviar mensajes SMS usando un servicio que tiene API.
Conclusión
Si estas empezando en el mundo de la programación te recomiendo que comiences a investigar y a trabajar con proyectos sencillos usando APIs. Son muchas las cosas que se pueden hacer usando esta vía. Yo no tengo mucha experiencia trabajando con APIs, hasta ahora solo he realizado integraciones entre sistemas y algunas automatizaciones usando API. Pero como te comenté es una herramienta muy valiosa que nos puede ayudar a realizar proyectos mucho más interesantes o a ampliar el alcance de los que hemos realizado hasta ahora.
Si consigues alguna API interesante con la cual se puedan hacer buenos proyectos de electrónica, no dudes en escribirme al correo info@rjconcepcion.com
Aprendiendo micropython
Esta es la última entrega de aprendiendo microPython. Como en este artículo hablamos de las API, decidí hacer una practica donde el microcontrolador consulte una API y nos muestre la respuesta en el monitor serial. Lo ideal sería que lo muestre en una pantalla OLED o LCD, pero esa parte te la dejo de tarea.
Esta practica consiste en que el microcontrolador consulte una API que es este caso es la de OpenWeather y nos muestre el resultado en el monitor serial. Como indique anteriormente se puede hacer que el ESP32 muestre la respuesta en una pantalla OLED u LCD, pero no quería que la practica fuera muy compleja.
En la siguiente imagen se muestra la respuesta que obtuve.
En el enlace de abajo puedes descargar el código que utilicé.
WeatherAPI
Espero que te haya gustado esta sección de Aprendiendo MicroPython. Por favor si puedes escríbeme que te ha parecido al correo info@rjconcepcion.com
Recurso
El recurso que te quiero compartir en esta ocasión en un sitio web llamado postman. Este es una plataforma para construir y utilizar APIs. Puedes descargar el programa y utilizarlo en tu computadora o simplemente lo puedes usar en tu navegador.
En postman puedes crear la consulta una API y ver la respuesta que obtienes. Es un entorno gráfico, por lo cual te ayuda a mostrar mejor la respuesta obtenida y a configurar la consulta HTTP a la URI del API. También tiene una función que te da el código de la consulta que estas haciendo en varios lenguajes de programación, lo cual facilita mucho el trabajo con APIs.
Postman
Te recuerdo que si este post te ha gustado, por favor compártelo con personas que creas que le pueda gustar. Cuento con tu apoyo.
Nos vemos en un próximo artículo.
Siempre parece imposible hasta que se hace.
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post API. ¿Qué es y para qué sirve? appeared first on rjconcepcion.
14:05
Conoce sobre las tarjetas PCB y como utilizarlas
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/07/El-Laboratorio-del-Toro-Ep-47.mp3
Hasta ahora hemos hablado de varios componentes electrónicos, y de herramientas como por ejemplo el protoboard y el multímetro. También te he presentado proyectos, los cuales normalmente te los muestro montados en un protoboard. Pero luego de hacer pruebas usando el protoboard u otro medio como pueden ser simulaciones en software especializado, llega el momento de interconectar todos esos componentes de la mejor forma posible. En ese instante entran en juego las tarjetas PCB.
Tarjeta PCB. Fuente: pixabay.
¿Qué es una tarjeta PCB?
Una tarjeta PCB es simplemente una placa donde se colocan los componentes electrónicos para interconectarlos entre sí y lograr que nuestro proyecto o producto funcione de forma permanente. Esta interconexión se logra a través de pistas de cobre diseñadas previamente. Todos los dispositivos electrónicos que usamos hoy en día como teléfonos inteligentes, computadoras, televisores, etc, tienen internamente una o quizás varias tarjetas PCB donde se conectan los componentes electrónicos.
Las letras PCB vienen de las siglas en inglés de Printed Circuit Board. En español se les conoce a estas placas como circuito impreso.
Las tarjetas PCB están hechas de distintos tipos de materiales, entre los más comunes tenemos: Baquelita y fibra de vidrio FR4. Este último es el recomendado ya que tiene un componente retardante a la llama, esto disminuye las probabilidades de incendio de la placa en caso de que alguno de los componentes falle.
Las tarjetas de baquelita tienden a ser de color marrón como la que se muestra en la imagen.
Tarjeta de baquelita. Fuente: Pixabay.
Por otra parte, las tarjetas de fibra de vidrio FR4 son las que solemos ver de diferentes colores, los más comunes son el verde, el azul y el negro, pero esto es cuestión de gustos, las puedes conseguir de otros colores.
Tarjeta PCB fibra de vidrio FR4. Fuente: Pixabay.
Tipos de tarjetas PCB
Actualmente se pueden conseguir varios tipos de tarjetas PCB. Las más comunes y las que conozco son las siguientes:
Perforadas
Estas tarjetas ya tienen perforaciones para insertar los componentes. En estas los componentes se interconectan creando la pista con el estaño o usando cables. Son las más sencillas de usar para crear un circuito impreso. Cuando quieras fijar los componentes de un proyecto de forma permanente, te recomiendo que utilices una de estas. Hay de una gran variedad de tamaños, por lo cuales solo tienes que elegir el adecuado.
La desventaja de este tipo de tarjetas es que el proyecto no queda muy estético y que algunas veces se complica el soldado de los componentes en la tarjeta cuando el proyecto es complejo.
Una cara
Las tarjetas PCB de una cara son aquellas que tienen el revestimiento de cobre por un lado y por el otro lado el material de baquelita o fibra. Sobre este material de cobre es donde se crean las pistas para interconectar los componentes. El cobre es removido con cloruro férrico o mediante una fresadora.
Estas tarjetas las puedes usar para crear tus circuitos impresos. Existen métodos caseros mediante los cuales puedes obtener tus tarjetas para tus proyectos de forma sencilla. En mi caso, trabajé realicé mi tesis de ingeniería usando este tipo de tarjetas.
La desventaja de estas tarjetas es se limitan a circuitos o proyectos sencillos. Si el proyecto es complejo, se complica mucho crear un buen diseño en una sola cara.
Doble cara
Adicional a las tarjetas PCB de una cara, también podemos conseguir de dos caras. Esto es cobre por ambos lados de la tarjeta. Es muy útil ya que te permite conectar los componente por ambas caras. Esto ayuda a disminuir la complejidad en el diseño del circuito impreso.
La desventaja que presenta el uso de este tipo de tarjetas es que se hace más compleja la elaboración de forma artesanal. Se debe ser muy preciso para que los agujeros queden en el lugar correcto. Para la creación de este tipo de tarjetas, yo recomiendo hacerlas con un proveedor de creación de PCBs.
Multicapa
Por último y no menos importante tenemos las tarjetas multicapa. Estas están compuestas de capas de cobre separadas por baquelita o por fibra de vidrio. Se pueden conseguir en pares desde 4 capas hasta 14. Para la fabricación de este tipo de placas si vamos a requerir una empresa especializada.
¿Cómo puedo hacer las tarjetas PCBs para mis proyecto?
Esta es una pregunta que seguramente te estaras haciendo luego de conocer sobre estas tarjetas. Según mi experiencia tienes dos formas. Una es usando algún método artesanal y la otra es enviando el diseño a una empresa de fabricación de tarjetas PCBs. Obviamente todo va a depender de la complejidad del proyecto y del objetivo del mismo. Si por ejemplo el proyecto es algo sencillo y personal, quizás puedas hacer las tarjetas usando algún método artesanal. Si por el contrario, el proyecto es complejo, es recomendable usar una empresa de PCBs.
Otra cosa que también debes tomar en cuenta es la presentación. Si el proyecto es algo personal no hay problema en usar la fabricación artesanal, pero si en cambio debes entregar tu producto a otra persona, quizás sea una buena idea usar un suplidor de PCBs. Muchas veces la presentación importa mucho.
Ahora bien. Para realizar tus tarjetas independientemente de la forma que elijas vas a necesitar un software de diseño de PCBs. En este realizarás el montaje del circuito de tu proyecto usando los componentes y conexiones respectivas entre los mismos. Luego el software te ayuda a crear las pistas. En esta parte es donde eliges la cantidad de capas que vas a utilizar. Al final obtienes un archivo que se envía al proveedor de tarjetas PCB.
Si seleccionaste crear la tarjeta PCB usando un suplidor, deberás cargar el archivo de tu diseño y seleccionar varios parámetros adicionales en la página del suplidor. Luego simplemente te quedará esperara el tiempo de fabricación y el envío.
Por otra parte, si elegiste hacer tu PCB de forma artesanal debes elegir el método. Te voy a describir brevemente el método que yo he usado y conozoco.
Luego que tienes el diseño de las pistas de tu proyecto debes pasarlo a la tarjeta PCB virgen, esto lo hacía yo imprimiendo el diseño en un papel especial con una impresora de laser. Luego usando una plancha calentaba el cobre de la tarjeta PCB limpiada previamente, colocaba el papel con la cara de la impresión en la parte de cobre y planchaba el papel en la tarjeta durante unos minutos. Después sumergía la tarjeta en agua por unos minutos y retiraba el papel con mucho cuidado. La idea es que las pistas que estaban en el papel se pasen en su totalidad al cobre.
Luego que ya tienes el diseño pegado en la tarjeta, debes sumergirla en una solución de cloruro férrico. Está eliminar el cobre que no está cubierto con el toner de la impresión dejando las pistas de tu circuito. Después puedes limpiar la tinta usando tiner.
Esa es una explicación superficial del método que he usado. Es probable que existan nuevas formas y mejores para realizar circuitos impresos de forma artesanal. Si has usado un método diferente, puedes enviarme un comentario al correo.
Al final si me pones a elegir, yo prefiero usar un suplidor de PCBs.
Proyecto
Desde hace un poco más de un año he estado aprendiendo sobre trading en forex e inversión en bolsa. He estado probando algunas estrategias de scalping (un tipo de trading) en forex y me daba cuenta que varias operaciones iban con ganancias, pero se invertían y las perdía. Se me ocurrió idear un script en Python para que esas operaciones que iban en positivo por lo menos no acabaran en perdidas.
Realizando una investigación puede notar que existía una librería Python que permite conectarse la plataforma de trading MetaTrader 5. Usando esta librería realicé un script que permite mover el stop loss al precio de entrada de la operación cuando la operación tiene una cierta ganancia. Adicional a esto, el script me envía una notificación a Telegram cuando se realiza este cambio en los parámetros de la operación.
Te dejo el código por si también estas en el mundo del trading.
autoBErc
Esto demuestra que si sabes un poco de programación puedes realizar scripts que te ayuden con problemas que tienes en otras áreas de tu vida. Por eso es que te recomiendo que aprendas a programar.
Recurso
El recurso que te quiero mostrar a continuación es un software cliente escritorio remoto llamado Remmina. Este es un cliente para linux. Yo lo uso para conectarme a una máquina virtual que tengo creada en la nube de AWS donde por cierto tengo corriendo el script que te mencioné anteriormente. Me a gustado mucho hasta ahora. Si eres usuario de linux te recomiendo su uso. Te dejo el enlace de su sitio web por si desea descargarlo y obtener más información.
Remmina
Te recuerdo que si este post te ha gustado, por favor compártelo con personas que creas que le pueda gustar. Cuento con tu apoyo.
Nos vemos en un próximo artículo.
Siempre parece imposible hasta que se hace.
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post Conoce sobre las tarjetas PCB y como utilizarlas appeared first on rjconcepcion.
12:24
Lo que necesitas saber sobre las plataformas IoT
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/06/El-Laboratorio-del-Toro-Ep-46.mp3
Hoy en día el Internet de las cosas es una realidad. Cada día más y más dispositivos se conectan a Internet para compartir datos con otras plataformas, estas son conocidas como plataformas IoT. Aunque actualmente muchos de los equipos que disponemos en nuestro hogar y en nuestra vida diaria se conectan a Internet, todavía quedan muchos por conectar.
Adicional a la gran cantidad de dispositivos que podemos conseguir hoy en día, nosotros podemos diseñas nuestros propios proyectos con objetivos específicos. Hoy en día existen tarjetas de desarrollo y plataformas de Internet de las cosas que nos facilitan esta tarea.
En este post vamos a hablar de las plataformas de IoT.
Plataforma IoT
Una plataforma de Internet de las cosas es un software que nos permite procesar, visualizar y almacenar datos provenientes de dispositivos electrónicos. Estos dispositivos normalmente son tarjetas de desarrollo como las que hemos hablado en artículos anteriores.
Muchas de las plataformas de Internet de las cosas se presentan como servicios en sitios web, lo cual nos permite utilizar todas las funciones de estas plataformas sin tener que nosotros alojar el software en un dispositivo propio.
Dependiendo del tipo de plataforma podemos procesar los datos obtenidos de nuestros sensores, graficar estos datos e incluso almacenarlos para un análisis posterior. Adicional a esto algunas plataforma ofrecen las posibilidad de ejecutar acciones e incluso conectarse con otras plataformas para incrementar la cantidad de acciones que se pueden realizar.
Tipos de plataformas IoT
Podemos conseguir dos tipos de plataformas IoT, estas son:
Servicio
Software
Plataforma de servicio IoT
Esta es una plataforma en la cual nos podemos registrar en un sitio web y a partir de ahí podemos comenzar a utilizar los servicios. Normalmente estas plataformas ofrecen muchos servicios básicos de forma gratuita. Si queremos acceder a más servicios o ampliar los existentes debemos pagar.
Algunas de estas plataformas como servicio son:
Adafruit IO
Thinkspeak
Thinger
Plataforma de software IoT
Este tipo de plataforma es un programa que instalamos en un computador y ofrece los servicios de una plataforma IoT. En este caso nosotros nos debemos encargar de la administración del equipo donde se ejecuta el software. Podemos ponerlo en una máquina virtual, en una Raspberry Pi, en un servidor físico o en una plataforma de computación en la nube como Amazon, Azure o Google Cloud.
Una plataforma como software son:
KAA
NodeRed
¿Cómo elegir una plataforma IoT?
Elegir una plataforma de IoT adecuada va a depender del proyecto y de lo que quieras o pienses realizar. Pero te voy a mencionar algunos puntos que yo tengo en cuenta al momento de elegir una plataforma de IoT.
Documentación: Esta es una de las cosas que más tengo en cuenta al momento de elegir una plataforma. Cada plataforma tiene una manera de enviarle los datos, algunas te suministran una librería, la cual puedes cargar en tu microcontrolador. Otras simplemente te dan código de ejemplo que puedes usar para guiarte y así conectarte a la plataforma. En esta parte es importante considerar que en esa documentación se encuentre la tarjeta de desarrollo que vamos a utilizar. Actualmente las mayoría de plataformas son compatibles con las tarjetas ESP32 y ESP8266.
Visualización de los datos: Al enviar los datos de sensores queremos no solo ver los datos crudos en la plataforma, sino también tener la posibilidad de crear gráficas o tableros donde ver el cambio de estos datos a lo largo del tiempo. Esta es otra de las características que tengo mucho en cuenta cuando selecciono una plataforma IoT.
Tiempo de retención de los datos: Este tiempo va a depender de lo que necesites para tu proyecto. También depende del plan que elijas. Si es un proyecto para un tercero o algo que piensas rentabilizar seguramente es mejor consultar los planes que ofrece la plataforma y elegir el tiempo de retención que más se adapte a tu necesidad y tu presupuesto. Sino puede tratar de ajustarte al tiempo que ofrecen en la versión gratuita.
Procesamiento de los datos: Algunas plataformas van más allá de solo guardar los datos y graficarlos, también ofrecen la posibilidad de procesar esos datos para obtener otros detalles de interés. Obviamente todo depende del tipo de datos y de la aplicación de nuestro proyecto. Pero es bueno saber que en algunos casos podemos manipular los datos que capturamos.
Integración con otras plataformas: La opción de poder integrar dos plataformas nos abre un abanico de posibilidades para realizar una gran cantidad de proyecto. En algunos casos podemos disparar o activar acciones en una plataforma basadas en los datos obtenidos por nuestra plataforma de IoT. Esto permite crear proyectos mucho más complejos para a la vez interesantes.
Ejecución de acciones: En el punto anterior comenté sobre la integración con otras plataformas, pero algunas traen entre sus opciones acciones que podemos ejecutar, por ejemplo podemos hacer que se nos envíe un correo cuando un dato llegue a cierto valor. Todo depende de las posibilidades que nos de la plataforma seleccionada. Muchas veces algunas de estas funciones son de pago.
Costos: Siempre el dinero entra en el juego por alguna parte. Obviamente, si estamos usando un servicio de una plataforma IoT esta tiene sus gastos de mantenimiento que deben ser cubiertos. Los costos los debemos considerar cuando hagamos un proyecto que puede ser rentable para nosotros, cuando sea un proyecto para un tercero o cuando las funciones de la versión gratuita de la plataforma no cubran nuestras necesidades. En este momento es cuando debemos empezar a hacer números.
Conclusión
Ahora ya conoces un poco más sobre que es una plataforma de IoT. Solo para comentarte, de las que te he mencionado he usado Thinkspeak, Thinger (esta fue la primera que usé) y Adafruit IO. Esta última es la que uso actualmente, me gusta mucho por lo fácil que es trabajar en ella, también se puede integrar con la plataforma IFTTT. De hecho tengo un proyecto donde te muestro como hacer una integración entre ambas, si estas interesado en ver como lo hice puedes hacer clic en este enlace.
Para empezar te recomiendo que explores las plataformas que te he nombrado en este artículo, veas la documentación y analices que tan sencillo es trabajar en ella. Si ves que entiendes bien la documentación y que es sencilla de digerir, puedes empezar montando un proyecto sencillo para familiarizarte con la plataforma. Si quieres ideas puedes visitar la sección proyectos donde encontrarás proyectos sencillos para probar las plataformas.
Aprendiendo Micropython
En esta oportunidad vamos a conectar un sensor a nuestro ESP32. Para este caso usaremos el ya conocido sensor de medición de humedad y temperatura DHT11.
Para esta practica haremos un sencillo proyecto para medir temperatura y humedad. De esta forma podrás aprender a usar la librería del sensor en micropyhton. Simplemente tomaremos las mediciones del sensor y las mostraremos en nuestra consola de nuestro IDE. Algo parecido a lo que ya hicimos con la practica del potenciometro y el convertidor analógico-digital.
Diagrama de circuito para practica con sensor dht11.
La conexión que se muestra en el diagrama es para el sensor que tiene 4 pines. Si tienes el que viene montado en un pequeño PCB no necesitas conectar la resistencia de pull up.
El código de está practica es el siguiente:
from machine import Pin
import time
import dht
sensor = dht.DHT11(Pin(4))
loopVar = 1
while (loopVar > 0):
sensor.measure()
temperatura = sensor.temperature()
print('Temperatura: ')
print(temperatura)
humedad = sensor.humidity()
print('Humedad: ')
print(humedad)
time.sleep(10)
Salida practica dht11.
Para esta practica yo usé el pin 4 para conectar el sensor, pero puedes usar otros pines, no todos puede ser usados. Los pines disponibles son: GPIO0/2/4/5/16/17/18/19/21/22/23/25/26/27. Esta información la puedes encontrar en la documentación de la librería dht.
Respuesta del reto anterior:
from machine import Pin, PWM
import time
# Declaración pines
pwm = PWM(Pin(23))
pinEntrada = Pin(22, Pin.IN, Pin.PULL_UP)
valor = 0
flag = 0
loopVar = 1
pwm.duty(valor)
while (loopVar > 0):
if (pinEntrada.value() == False):
if (flag == 0):
valor += 100
print('El valor es: ')
print(valor)
pwm.duty(valor)
time.sleep(0.5)
if valor >= 1000:
flag = 1
else:
valor -= 100
print('El valor es: ')
print(valor)
pwm.duty(valor)
time.sleep(0.5)
if valor <= 0:
flag = 0
Salida del reto.
En esta oportunidad no te voy a dejar reto, te voy a dejar a ti inventarte algo para practicar un poco más.
Recurso
Ya que en este artículo hablamos de plataformas IoT, te voy a recomendar como recurso Adafruit IoT. Esta es una de las plataformas de IoT que recomiendo. Tiene buena documentación, lo que permite conectar los dispositivos de forma sencilla. Es compatible con el ESP8266 y el ESP32. Puedes almacenar los datos hasta por 30 días y cuenta con variedad de funciones en la versión gratuita.
Te dejo el enlace para que la revises. EStoy seguro que te va a gustar.
Adafruit IO
Te recuerdo que si este post te ha gustado, por favor compártelo con personas que creas que le pueda gustar. Cuento con tu apoyo.
Nos vemos en un próximo artículo.
Siempre parece imposible hasta que se hace.
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post Lo que necesitas saber sobre las plataformas IoT appeared first on rjconcepcion.
12:37
El condensador. Un componente muy usado en electrónica
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/06/El-Laboratorio-del-Toro-Ep-45.mp3
En este post te voy a hablar del condensador, que al igual que la resistencia, es un componente bastante usado en la electrónica y también en electricidad.
Condensador
El condensador es un componente que nos permite almacenar energía, esto lo logra a través de un campo eléctrico. El condensador que también se le conoce como capacitor, está compuesto de dos placas o láminas conductoras y un material dieléctrico entre ellas. Este material dieléctrico puede ser: aire, tántalo, papel o cerámica.
La magnitud de medida de los condensadores es la capacitancia y la unidad de medida es el Faradio. Un Faradio es una unidad de medida muy grande, por lo cual los condensadores vienen en medidas más pequeñas como microfaradio (µF), nanofaradio (nF) o picofaradio (pF).
En la siguiente figura se muestran los símbolos que representan al condensador cerámico y al condensador electrolítico respectivamente.
Símbolos condensador cerámico y electrolítico.
Tipos de condensadores
Los condensadores se clasifican principalmente de acuerdo al material dieléctrico que usan, vamos a nombrar algunos de los más comunes:
Cerámico.
Tántalo.
Electrolítico.
Poliéster.
Plástico.
La mayoría de los condensadores no son polarizados, pero hay que prestar atención a los condensadores electrolíticos y de tántalo, los cuales deben ser conectados respetando la polaridad. Es muy importante esto, ya que una mala conexión puede dañar el componente y en algunas ocasiones estos pueden explotar. También se debe tener el cuenta el voltaje de trabajo de los condensadores, no usarlos a un voltaje superior al diseñado.
Tipos de condensadores.
Código de los condensadores
La mayoría de los condensadores a excepción de los electrolíticos tienen su valor de capacitancia indicado por un código. Este código está compuesto de 3 dígitos y algunas veces de 3 dígitos y una letra. El cálculo del valor de la capacitancia en este caso es algo parecido al código de colores de las resistencias. Los primeros dos dígitos corresponden al valor numérico, y el tercer dígito al multiplicador, el resultado es el valor de la capacitancia del condensador en picofaradios.
En caso de que el valor sea muy grande, se debe ir realizando las conversiones a nanofaradio, microfaradio o milifaradio.
Código de los condensadores
La mayoría de los condensadores a excepción de los electrolíticos tienen su valor de capacitancia indicado por un código. Este código está compuesto de 3 dígitos y algunas veces de 3 dígitos y una letra. El cálculo del valor de la capacitancia en este caso es algo parecido al código de colores de las resistencias. Los primeros dos dígitos corresponden al valor numérico, y el tercer dígito al multiplicador, el resultado es el valor de la capacitancia del condensador en picofaradios.
En caso de que el valor sea muy grande, se debe ir realizando las conversiones a nanofaradio, microfaradio o milifaradio.
Capacitor.
Vamos a explicar el cálculo con un ejemplo. Tenemos el condensador que se muestra en la imagen 3-3. El código que indica es 105K. Partiendo de lo que hablamos anteriormente, tenemos que los dos primeros dígitos son los dos primeros números, en este caso tendríamos 10, el tercer dígito es el multiplicador, que sería 5, esto sería 100000. Entonces el valor total que tenemos es 1000000 pf. Esto sería igual a 1000 nF o 1uF. En el apéndice A de esta guía hay una explicación de cómo realizar estas conversiones. Por último la letra K indica la tolerancia del valor. En este caso la letra K indica una tolerancia del 10%.
Tabla tolerancia condensadores
Letra
Tolerancia
D
+/- 0.5 pf
E
+/- 0.5%
F
+/- 1%
G
+/- 2%
H
+/- 3%
J
+/- 5%
K
+/- 10%
M
+/- 20%
Carga y descarga del condensador
Como comentamos al inicio, el condensador es un dispositivo que almacena energía, pero este almacenamiento no se realiza de forma instantánea, como muchas cosas en la vida toma tiempo, este tiempo de carga y de descarga lo podemos calcular.
De hecho, si estamos realizando un circuito temporizador este tiempo de carga y descarga es muy importante.
Circuito RC.
En la figura 3-6 tenemos el circuito que vamos a utilizar para este ejemplo. Supongamos que inicialmente ambos interruptores SW1 y SW2 están abiertos. Para cargar el condensador activamos o cerramos el interruptor SW1, en este momento comenzará la carga del condensador, el tiempo que le tome cargarse dependerá de la resistencia R1 y del valor de capacitancia del condensador. Estos dos valores componen una variable llamada constante de tiempo que se simboliza con la letra 𝜏. Este es el tiempo que el condensador tarda en alcanzar el 63,2% del voltaje de la fuente. El valor de la constante de tiempo se calcula con la ecuación:
𝜏 = R*C
En nuestro ejemplo el valor de la resistencia sería el correspondiente a R1 y el valor de C el correspondiente a C1. Se dice que un condensador alcanza su capacidad máxima de 99.3% en 5 veces la constante de tiempo.
Gráfica de carga y descarga del condensador.
En la figura 3-7 vemos como el condensador comienza a cargarse hasta que llega a su punto máximo, en ese momento abrimos el interruptor SW1 y cerramos el interruptor SW2 y vemos como comienza a descargarse.
De igual manera, el tiempo que toma en descargar el condensador dependerá de la capacitancia y de la resistencia, en este caso de C1 y R2. La constante de tiempo se calcula igual 𝜏 = R*C y se dice que un condensador está completamente descargado luego de un tiempo de 5 veces la constante de tiempo.
Medición de condensador con multímetro
Algunos multímetros tienen la función para medir condensadores, esta está identificada por el símbolo del condensador en una de las opciones de la perilla.
Para probar un condensador simplemente debemos medirlo colocando cada punta en cada uno de los pines. Pueden ver como se hace en la figura.
Aprendiendo micropython
En esta oportunidad vamos a aprender a usar la famosa PWM con micropython. Para esto utilizaremos un sencillo montaje de utilizando un potenciómetro y un diodo led. La intención en esta oportunidad es que al variar el potenciómetro nuestro led cambie el brillo. En este caso vamos a reciclar el circuito de la lección anterior y vamos a agregarle un diodo led en el pin GPIO23.
En la imagen se muestra la conexión que debemos realizar.
Circuito para prueba de PWM con micropython.
from machine import Pin, ADC, PWM
import time
# Declaración pines
pwm = PWM(Pin(23))
adc = ADC(Pin(36))
tam = 0
loopVar = 1
while (loopVar > 0):
valor = adc.read()
print('ADC: ')
print(valor)
tam = valor//1023
tam = tam * 250
print('duty: ')
print(tam)
pwm.duty(tam)
time.sleep(1)
Ejemplo de resultado PWM.
Respuesta reto anterior:
from machine import Pin, ADC, PWM
import time
# Declaración pines
pwm = PWM(Pin(23))
adc = ADC(Pin(36))
loopVar = 1
while (loopVar > 0):
valor = adc.read()
print('El valor es: ')
print(valor)
pwm.duty(valor)
Reto: El reto de esta lección es el siguiente:
Al montaje que realizaste para esta practica debes agregarle un botón. La intención es que al presionar el botón el led incremente o decremente su brillo, esto debe realizarse en pasos de 10. Cada vez que presionas el botón el brillo se va a incrementar hasta que llega al brillo máximo, en ese momento cuando se presione de nuevo el botón debe comenzar a disminuir el brillo del led hasta que llegue a su brillo mínimo y se revierta el ciclo nuevamente.
Recurso
Ya te hablé hace no mucho tiempo de la revistar MagPi, en esta ocasión te voy a hablar de otra revista de la Raspberry Pi Foundation su nombre es HackSpace. Esta revista sale mensualmente y recopila una gran cantidad de proyectos interesantes relacionados con el mundo Maker.
Si estas leyendo este artículo seguro que eres un aficionado a crear cosas. Te recomiendo leer esta revista ya que contiene muchos artículos interesantes que te pueden ayudar a generar nuevas ideas para tus futuros proyectos.
Te dejo el enlace para que visites el sitio de la revista.
HackSpace
Al igual que la MagPi, esta la puedes descargar de forma gratuita en formato pdf.
Recuerda si está en tus posibilidades hacer una donación de vez en cuando para que este proyecto se mantenga en pie.
Te recuerdo que si este post te ha gustado, por favor compártelo con personas que creas que le pueda gustar. Cuento con tu apoyo.
Nos vemos en un próximo artículo.
Siempre parece imposible hasta que se hace.
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post El condensador. Un componente muy usado en electrónica appeared first on rjconcepcion.
10:53
Lo que debes saber sobre virtualización
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/05/El-Laboratorio-del-Toro-Ep-44.mp3
En este post te voy a hablar sobre la virtualización. Aunque seguramente ya has escuchado sobre este termino o quizás ya utilices la virtualización en algunos proyectos te voy a dar una explicación de los conceptos básicos y lo que debes saber sobre este tema. La intención es que puedas crear tus máquinas virtuales para probar proyectos que combinan la electrónica y la computación.
Virtualización
Vamos a empezar definiendo que es la virtualización. Podemos decir que la virtualización es tener un equipo de computación o relacionado en forma lógica, es decir que no existe físicamente sino que se encuentra dentro de otro equipo físico. Por ejemplo, podemos crear un computadora con sus principales componentes: CPU, RAM, Disco Duro, tarjeta de red, etc de forma virtual e instalarle un sistema operativo y programas tal cual lo hacemos en la computadora de nuestro hogar o trabajo.
La virtualización nos permite utilizar los recursos de un equipo de computo y usarlo en varias máquinas virtuales, las cuales pueden tener cada una características diferentes y pueden ser usadas para distintas aplicaciones.
La magia de la virtualización es realizada por un hypervisor.
Imagen virtualización. Fuente: www.openclipart.org
Hypervisor
El hypervisor es un software que permite gestión de los recursos del hardware para la creación y ejecución de máquinas virtuales. Puedes pensar en el hypervisor como ese programa que se utiliza para crear las máquinas virtuales y donde también se pueden gestionar las características y recursos de cada equipo virtual que sea creado.
El hypervisor utiliza los recursos como: CPU, RAM, disco duro y hardware adicional del equipo host (así se conoce al hardware donde se instala el hypervisor) y los pone a disposición del usuario para su utilización en las máquinas virtuales, las cuales en el mundo de la virtualización se conocen como guests.
Tipos de hypervisores
Existen dos tipos de hypervisores. Los cuales son los siguientes:
Hypervisor tipo 1.
Hypervisor tipo 2.
Hypervisor tipo 1
Este es un tipo de hypervisor que se instala directamente en el hardware físico, no existe un sistema operativo previo en el equipo. Sobre este hypervisor es donde se ejecutan las máquinas virtuales y con el podemos gestionar los recursos del sistema. A los hypervisores de tipo 1 también se les conoce como nativo o bare metal. Unos ejemplos de estos son Microsoft Hyper-V y VMware ESXi.
Hypervisor tipo 2
Este tipo de hypervisor es un programa que se instala sobre el sistema operativo que tiene la PC o el equipo anfitrión y con el podemos crear las máquinas virtuales. Algunos hypervisores tipo 2 son: VMware Player y VirtualBox. Este último es el que normalmente utilizo.
Tipos de hypervisor. Fuente: Wikipedia Commons.
Beneficios de la virtualización
Reducción de costes: Con la virtualización podemos reducir los gastos de adquisición de equipos, ya que de un mismo equipo podemos crear varias máquinas virtuales para diferentes funciones, de lo contrario, deberíamos comprar un equipo para cada aplicación.
Menor consumo energético: El número de equipos físicos disminuye y por ende el consumo de electricidad.
Eficiencia: Con la virtualización podemos tener una mejor del 80% de los recursos de un servidor.
Fácil administración: Podemos crear y eliminar equipos de forma muy sencilla, algo que sería impensable si fueran equipos físicos.
Utilización de la nube: Podemos aprovechar las bondades de la virtualización con proveedores de servicios en la nube. Si quieres saber más sobre la computación en la nube puedes revisar el siguiente artículo: Computación en la nube
Estos son solo algunos de los muchos beneficios de la virtualización de sistemas.
Usos de la virtualización y la electrónica
Ahora seguro te estarás preguntando como se relaciona esto de la virtualización con la electrónica. Bueno muy sencillo. Imagina que quieres crear una aplicación que lea datos enviados de un microcontrolador y los muestre en una ventana, pero a su vez es necesarios que esa aplicación sea desarrollada en alguna distribución de Linux por ejemplo. Bien, si trabajas con Windows simplementes debes instalar un software hypervisor en tu PC y crear una máquina virtual con la distribución de Linux que desea y listo. Ya puedes empezar a desarrollar tu aplicación. Luego puedes guardar esa máquina virtual en un archivo y puedes darle eso a otra persona que la monte en un servidor destinado para esa aplicación. Esto en caso de que el proyecto que este realizando sea para un tercero.
Así podemos pensar en muchos más casos en los cuales puedas apoyarte en la virtualización para realizar pruebas de tus proyectos.
Si se te ocurre algún otro ejemplo. Recuerda que me puedes escribir al correo info@rjconcepcion.com
Aprendiendo micropython
Espero que hayas podido realizar el reto propuesto en el post anterior. Pues bien, seguimos aprendiendo sobre micropython y en esta oportunidad vamos a conocer como podemos usar el convertidor analógico digital de nuestro microcontrolador ESP32 usando micropython.
Como siempre mi intención es mostrarte de una forma sencilla como trabajar con las instrucciones y luego tu debes usar tu imaginación y hacer pruebas un poco más desafiantes. En este caso simplemente vamos a obtener un valor de un pin y vamos a imprimir este número en monitor o terminal que estemos usando. La intención es conocer como capturar valores a través del convertidor analógico-digital.
# Importado de librerías
from machine import Pin, ADC
import time
i = 1
while i > 0:
adc = ADC(Pin(36)) //Selecciona el Pin para tomar las medidas
valor = adc.read() //Se lee el valor y se guarda en la variable valor
print('El valor es: ')
print(valor)
time.sleep(10)
Resultado ejercicio ADC microPython.
Diagrama circuito para medición con ADC.
Respuesta reto anterior:
from machine import Pin
import time
# Declaración pines
pinEntrada = Pin(22, Pin.IN, Pin.PULL_UP)
pinSalida = Pin(23, Pin.OUT)
ledInterno = Pin(2, Pin.OUT)
loopVar = 1
while (loopVar > 0):
ledInterno.on()
if (pinEntrada.value() == False):
pinSalida.on()
ledInterno.off()
time.sleep(5)
pinSalida.off()
Reto: El reto que te propongo en esta oportunidad es el siguiente:
Agrega un botón al circuito y debes tomar las medidas del convertidor analógico-digital cada vez que el botón sea pulsado. Obviamente estas medidas se deben mostrar en el monitor serial o en la terminal respectiva. Puedes guiarte del circuito y código que usamos en el post anterior.
Espero que realices esta practica, esa es la mejor forma de fijar los conocimientos.
Recurso
Como en este post hablamos de virtualización, te voy a recomendar un recurso que uso para crear mis máquinas virtuales y este VirtualBox. Es es un sencillo hypervisor de tipo 2 que puede ser usado para crear tus máquinas virtuales en tu PC personal. Es fácil de usar y hay mucha información en Internet sobre como puedes sacarle provecho. Yo lo uso para hacer prueba de distribuciones de Linux o cuando quiero probar nuevas aplicaciones y por alguna razón no la quiero instalar directamente en mi PC personal.
Te dejo el enlace para que puedas descargar este software y lo utilices para crear tus máquinas virtuales:
VirtualBox
Recuerda que si quieres compartir esos programas, aplicaciones o sitios web con información importante que uses para tus proyectos. No dudes en escribirme al correo info@rjconcepcion.com.
Te recuerdo que si este post te ha gustado, por favor compártelo con personas que creas que le pueda gustar. Cuento con tu apoyo.
Nos vemos en un próximo artículo.
Siempre parece imposible hasta que se hace.
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post Lo que debes saber sobre virtualización appeared first on rjconcepcion.
10:26
Aprende a utilizar el transistor MOSFET en tus proyectos
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/05/El-Laboratorio-del-Toro-Ep-43.mp3
En el artículo anterior te comenté sobre los transistores de efecto de campo y en especial hable sobre el MOSFET. En este post vamos entrar más en profundidad a analizar las zonas de trabajo de este transistor.
Los MOSFET son uno de los tipos de transistores más usados en electrónica, por eso es recomendable que conozcas como lo puedes usar, ya que de esta forma puedes incorporarlo o tenerlo presente para futuros proyectos.
Transistor MOSFET K2049
Para estas demostraciones voy a usar el transistor MOSFET K2049, el cual es uno de los transistores de este tipo que he usado en mis proyectos de electrónica. Te dejo el datasheet en el siguiente enlace:
Datasheet K2049
Regiones de Trabajo
Como mencionamos en el artículo anterior los transistores MOSFET al igual que los bipolares tienen zonas de trabajo. Estas dependen de los voltajes que se apliquen a los terminales del transistor.
En la siguiente gráfica puedes ver la representación de las regiones o zonas de trabajo de un transistor MOSFET.
Regiones de trabajo de un transistor MOSFET. Fuente: Wikipedia Commons.
Región de corte
En este caso el voltaje Vgs es menor a Vt (Voltaje umbral), Vgs < Vt. Por lo cual el transistor MOSFET se comporta como un circuito abierto, es decir, la corriente entre el drenador y el surtido es cero, Ids = 0.
Región de saturación
En esta región el MOSFET conduce, es decir, sería como un interruptor cerrado. Para que eso suceda el voltaje Vds > Vds sat. En esta región la corriente Ids se mantiene constante siempre que el voltaje Vds sea superior a Vds sat.
Vds sat se calcula de la siguiente manera:
Vds sat = Vgs - Vt
Donde Vt es el voltaje Vgs (th) que aparece en el datasheet del componente.
Entonces para que el transistor se encuentre en saturación se tienen que dar las siguientes dos condiciones:
Vgs > Vt
Vds > Vgs - Vt
De esta forma nuestro transistor MOSFET estaría en saturación.
Región ohmica, lineal o activa
Como puedes ver en el titulo esta región tiene varios nombres, la puedes encontrar como óhmica, lineal o activa. En esta región el transistor trabaja como un amplificador al igual que lo hace el transistor bipolar. En este caso la corriente Ids varía debido a que existe una resistencia interna en el MOSFET llamada Rds, esta resistencia cambia dependiendo del valor que tenga Vgs.
Para que el MOSFET entre en la zona activa se debe cumplir que: Vgs > Vt y Vds < (Vgs - Vt)
Ejemplo
Te comparto un sencillo circuito donde puedes probar las zonas de trabajo del transistor MOSFET.
En el siguiente vídeo te dejo un explicación rápida del circuito mostrado. Pero como siempre digo, para aprender debes montarlo y hacer tus pruebas.
Aprendiendo MicroPython
En esta oportunidad vamos a hacer un sencillo montaje con el ESP32, un pulsador, un diodo led y su respectiva resistencia. El objetivo es aprender como configurar un pin como entrada con una resistencia pull up.
Nuestro circuito va a funcionar de la siguiente manera: Cuando se oprima el pulsador, el LED debe encender por 5 segundos y luego se apagarás hasta que el pulsador sea oprimido nuevamente. Es algo sencillo, la idea es aprender como configurar las variables, obtener el valor digital de una entrada y usar el ciclo de decisión if.
# Creado por Ricardo Concepción
# Importado de librerías
from machine import Pin
import time
# Declaración pines
pinEntrada = Pin(22, Pin.IN, Pin.PULL_UP)
pinSalida = Pin(23, Pin.OUT)
loopVar = 1
while (loopVar > 0):
if (pinEntrada.value() == False):
pinSalida.on()
time.sleep(5)
pinSalida.off()
Reto:
Me gustaría que probaras tu conocimiento sobre micropython que tienes hasta ahora, por eso te propongo el siguiente reto. Sobre el mismo circuito que acabo de explicar, debe hacer que el LED interno de la tarjeta ESP32 se encienda cuando no esté encendido el otro LED del circuito. Es sencillo, estoy seguro que lo podrás hacer.
En la próxima oportunidad te daré la solución a este reto. Nos vemos.
Recurso
El recurso que quiero mostrarte en esta oportunidad es una revista de la Raspberry Pi Foundation llamada MagPi. Esta revista contiene mucha información interesante como: artículos, tutoriales y proyecto. Puedes suscribirte para que te envíen la revista física o simplemente descargar el pdf gratuito.
Si te gusta el contenido de esta revista, te sugiero que realices una donación de vez en cuando, es importante que proyectos de este tipo que contribuyen con la educación se mantengan en pie.
Te dejo el enlace para que visites el sitio web:
The MagPi Magazine
Recuerda que si quieres compartir esos programas, aplicaciones o sitios web con información importante que uses para tus proyectos. No dudes en escribirme al correo info@rjconcepcion.com.
Te recuerdo que si este post te ha gustado, por favor compártelo con personas que creas que le pueda gustar. Cuento con tu apoyo.
Nos vemos en un próximo artículo.
Siempre parece imposible hasta que se hace.
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post Aprende a utilizar el transistor MOSFET en tus proyectos appeared first on rjconcepcion.
09:32
Conoce sobre los transistores de efecto de campo
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/05/El-Laboratorio-del-Toro-Ep-42.mp3
En un post anterior hablamos sobre los transistores y en especial sobre el transistor BJT. En este artículo te voy a hablar de los transistores de efecto de campo y más concretamente del transistor tipo MOSFET.
Como recordarás un transistor es un componente que puede trabajar como amplificador o como un interruptor. Es uno de los componentes más utilizados en electrónica.
Como se mencionó en el post sobre los transistores existen varios tipos. En esta oportunidad te voy a hablar de los transistores de efecto de campo.
Transistores de efecto de campo
Los transistores de efecto de campo tienen ese nombre debido a que la corriente entre drenaje y fuente es controlada por un campo eléctrico, al contrario de los transistores BJT en los cuales la corriente entre colector y emisor era contralada por la corriente de base. Esta es una diferencia entre ambos tipos de transistores.
Un transistor de efecto de campo tiene 3 terminales al igual que un transistor bipolar, pero este caso, estos terminales tienen nombres diferentes. En las transistores de efecto de campo hablamos de puerta que se representa por la letra G de la palabra en ingles Gate. Drenaje que se representa con la letra D de la palabra en inglés Drain y por último la fuente que es representada por la letra S y viene de Source. Básicamente tienen las mismas funciones que los terminales base, colector y emisor de un transistor bipolar, solo que en este caso se llaman diferente.
Tipos de transistores de efecto de campo
Existen varios tipos de transistores de efecto de campo. Voy a nombrar algunos de los más comunes:
JFET
MOSFET
IGBT
Seguramente existen otros tipos de transistores de efecto de campo, pero esos son los más conocidos.
MOSFET
En este post voy a enfocarme en el MOSFET ya que es el transistor de efecto de campo más utilizado. La palabra MOSFET viene del inglés Metal-Oxide-Semiconductor Field-Effect Transistor y es el transistor de efecto de campo más utilizado.
Imagen MOSFET. Fuente: flickr.com
Al igual que los transistores BJT los transistores MOSFET están compuestos de material semiconductor de tipo N y P. Pero adicionalmente a esto tienen un electrodo metálico conectado a un aislante en la zona donde se conecta la puerta. Este aislante es la capa de óxido metálico. En la siguiente imagen se puede ver como está compuesto internamente el MOSFET.
Estructura transistor MOSFET. Fuente: Wikipedia Commons.
Como puedes ver en la imagen, las partes de color marrón y gris son de material semiconductor de tipo N o P dependiendo del MOSFET, mientras que parte blanca es el aislante de óxido de metal y la zona de color negro es el material conductor.
En la siguiente imagen puedes ver los símbolos que puedes conseguir de un transistor MOSFET en los diagramas electrónicos. Obviamente depende si es del tipo N o P.
Símbolos de los transistores MOSFET.
Regiones de Trabajo
Al igual que los transistores bipolares los MOSFETs presentan regiones de trabajo. Voy a describir brevemente las 3 regiones de trabajo, pero antes te tengo que mencionar una característica importante de los transistores MOSFET y esta es su tensión umbral (Vt). Este es el valor de voltaje que debe ser superado para que el MOSFET comience a conducir.
Región de corte
En esta región el voltaje Vgs (entre puerta y fuente) es menor al voltaje umbral, es decir, Vgs < Vt. Aquí el transistor se comporta como un interruptor abierto, es decir no deja pasar nada de corriente entre el pin fuente y el pin drenador, por lo cual decimos que Ids = 0.
Región óhmica o activa
En está región el voltaje Vgs es mayor al voltaje Vt, Vgs > Vt. En este caso el MOSFET se comporta como un resistencia variable. De esta forma podemos controlar la corriente Ids variando el voltaje Vgs. Explicaré esto en un siguiente artículo.
Región de Saturación
El MOSFET entra en esta zona cuando la tensión entre el drenador y la fuente Vds es mayor a un valor llamado Vds de saturación. Este valor se consigue en el datasheet del dispositivo. En está región la corriente Ids se mantiene constante siempre y cuando el voltaje Vgs > Vt y Vds > Vds sat.
En un próximo artículo ampliaré un poco más sobre estás zonas de trabajo y colocaré algunos ejemplos.
Usos del transistor MOSFET
Los transistores MOSFET tienen muchos usos al igual de que los transistores bipolares. Los MOSFET son más utilizados en aplicaciones donde se requiere más potencia, ya que estos pueden manejar corrientes mayores y son más eficientes que los transistores bipolares. Entre los usos más comunenes tenemos:
En amplificadores en dispositivos de radio frecuencia.
Convertidores DC-DC.
Control de velocidad de motores.
Fuentes de alimentación conmutadas.
Como puedes ver los transistores MOSFET son muy útiles en aplicaciones de potencia.
Aprendiendo MicroPython
Espero que ya en este punto tengas tu ESP32 con micropython instalado, sino te recomiendo que revises los artículos anteriores de esta guía.
Para iniciar a programar nuestro ESP32 con micropython debemos usar un IDE al igual que se hace con Arduino. En mi caso voy a usar un IDE muy sencillo llamado Thonny. Te dejo el enlace para que lo descargues y lo instales
https://thonny.org/
Programa Thonny.
Luego de haber instalado Thonny, debe conectar tu ESP32 y abrirlo. Si está usando Windows como sistema operativo, te será muy sencillo conectar con el ESP32, si por el contrario estas usando Linux, deberas dar los permisos necesarios para utilizar el dispositivo que se encuentra en el puerto USB. Después de abrir el programa Thonny debes ir a tools, seleccionar options, luego la pestaña intérprete, seleccionar la opción donde te aparece el ESP32 y por último le das al botón OK. En este momento ya estarás conectado a tu microcontrolador.
Selección del interprete del ESP32.
Ahora vamos a subirle nuestro primer programa. El clásico encender y apagar un led durante un segundo. Vamos a utilizar el pin integrado que vienen en la tarjeta, de esta forma no tendremos que hacer conexiones para esta prueba. Para ello debes escribir las siguientes líneas de código en el IDE Thonny:
from machine import Pin //Librería donde se localiza la función pin
from time import sleep_ms //Librería donde se encuentra la función sleep_ms (similar a delay)
led = Pin(2, Pin.OUT) //Declara el pin como salida.
i = 1 //Inicializo la variable i para usarla en el ciclo while
while i > 0: //Ciclo while infinito
led.on() //Función para encender el led
sleep_ms(1000) //Espera durante 1 segundo
led.off() //Apaga el led
sleep_ms(1000) //Espera durante 1 segundo
Luego que escribes esas líneas de código debes hacer clic en la pestaña File que se encuentra en la parte superior izquierda y seleccionar save. Te preguntará donde quieres guardar el archivo, debes seleccionar en el micro. Para que el programa se ejecute debemos colocarle el nombre main.py de esta forma se ejecutará cuando se encienda el micro.
Ubicaciones para guardar el archivo.
Una vez guardes el código en el ESP32 ya verás funcionando tu primer proyecto con micropython.
Espero que realices esta actividad.
Nos vemos en la próxima.
Proyecto
Te comentó que le estoy haciendo mejoras al proyecto del medidor de tiempo en PC. Estas mejoras se deben a que últimamente han habido algunas interrupciones del servicio eléctrico, lo cual hace que se pierdan los valores del contador de tiempo. Para esto lo que estoy haciendo es guardando este valor en la memoria Flash, de forma tal que si existe un corte de energía, este valor se encuentre guardado y no se pierda.
También decidí enviar valores cada hora, para así hacer el estudio un poco más interesante y saber durante que horas del día paso más tiempo frente al PC.
Te dejo el nuevo código con estas mejoras:
Programa medidor de tiempo en PC
Te dejo el siguiente enlace donde puedes ver las gráficas de los valores capturados.
Dashboards
Nos vemos en la próxima.
Siempre parece imposible hasta que se hace.
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post Conoce sobre los transistores de efecto de campo appeared first on rjconcepcion.
11:01
TinyML. Machine Learning en Microcontroladores
Episode in
El Laboratorio del Toro
\n\n \nhttps://www.rjconcepcion.com/wp-content/uploads/2021/04/El-Laboratorio-del-Toro-Ep-41.mp3\n \r\n\nHace ya algún tiempo los términos de inteligencia artificial, machine learning y deep learning han estado sonando bastante, si bien estas tecnología no son nuevas, el incremento en la capacidad de procesamiento en los equipos han contribuido a su adopción. Siendo estas tecnologías innovadoras, siempre se busca la manera de que puedan ser usadas en dispositivos más pequeños. Ahí en donde entra TinyML, de la cual hablaremos en este artículo.\r\n\nSuscríbete a la newsletter. para que recibas un correo cada vez que publico un nueva información.\r\n\n \r\n\nInteligencia artificial\r\n\nEl termino inteligencia artificial se refiere a la capacidad que tiene una máquina o sistema de realizar actividades propias de los humanos como aprender, razonar, pensar y resolver problemas.\r\n\nDentro de la inteligencia áreas o campos, te voy a mencionar algunas:\r\n\n\nMachine Learning.\r\n\nDeep Learning.\r\n\nRedes neuronales (neural Networks)\r\n\nSistemas expertos (Expert Systems).\r\n\nLógica difusa (Fuzzy Logic).\r\n\nMinería de datos (Data Mining).\r\n\nProcesamiento del lenguaje natural (Natural Language Processing).\r\n\n\nEn este post nos vamos a enfocar en la rama de machine learning, la cual es la usada para en TinyML.\r\n\n \r\n\n\r\n\n \r\n\nMachine Learning\r\n\nMachine Learning es una rama de la inteligencia artificial que se enfoca en el desarrollo de algoritmos que aprenden a resolver problemas analizando patrones dentro de los datos.\r\n\n \r\n\nComo trabaja Machine Learning\r\n\nPara conocer como trabaja Machine Learning vamos a hacer una comparación con la programación tradicional. Cuando realizamos un programa o algoritmo, nosotros conocemos cuales van a ser las variables de entradas y desarrollamos o implementamos ciertas reglas para que nuestro algoritmo obtenga la respuesta deseada.\r\n\n \r\n\n\r\n\nProgramación Tradicional.\r\n\n \r\n\nEn el caso del Machine Learning es diferente, nosotros le damos al sistema los datos o variables de entradas y le damos la respuesta, y este sistema se encarga de desarrollar las reglas para que obtener la respuesta lo más preciso posible. Este proceso es realizado haciendo iteraciones. El sistema hace una adivinanza, mide la precisión, optimiza y vuelve a repetir ese ciclo.\r\n\n \r\n\n\r\n\nMachine Learning.\r\n\n \r\n\nA simple vista se ve muy sencillo el hecho de que el sistema desarrolle el mismo las reglas para obtener la respuesta, pero esto no es cierto. Todo esto se basa en modelos matemáticos y en iteraciones para obtener la respuesta con la mejor aproximación. Depende de la complejidad la aplicación se va a requerir una cierta capacidad de procesamiento y de tiempo para entrenar el modelo.\r\n\nHoy en día es accesible obtener una buena capacidad de procesamiento. Por ejemplo, Google ofrecer Google Colab, una plataforma donde se pueden entrenar modelo y se puede usar la capacidad de procesamiento de la nube de Google. En el recurso te hablo un poco más sobre esta herramienta.\r\n\n \r\n\nTinyML\r\n\nSeguramente después de haber leído que para desarrollar un algoritmo de Machine Learning se requiere gran poder de procesamiento, te estarás preguntando, ¿Y como entran los microcontroladores en este mundo? Muy sencillo. Para entrenar estos modelos necesitas datos y actualmente los microcontroladores son uno de los dispositivos que podemos usar para colectar estos datos. Seguramente en tu casa tienes algún dispositivo IoT que tiene alguna cámara, micrófono o sensor. Pues bien, estos recogen esos datos necesarios.\r\n\nAhora imagina todos esos millones de dispositivos de Internet de las cosas que existen. Ellos envían los datos que obtienen a plataformas en la nube donde estos datos son analizados y procesados. Esto presenta los siguientes inconvenientes:\r\n\n\nProblemas de privacidad: Los datos obtenidos pertenecen a alguien y si estos datos caen en manos maliciosas pueden comprometer la seguridad de las personas o del lugar donde son colectados los datos.\r\n\nLatencia: Los datos deben ser colectados, enviados a la plataforma de la nube para ser procesados y luego el dispositivo debe dar respuesta. Un ejemplo de esto es Amazon Alexa. Si tu conexión a Internet es lenta, las respuesta de Alexa tendrán retardos.\r\n\nAlmacenamiento: No toda la data recolectada es de valor, por lo cual enviar está data para ser analizada es un desperdicio de recursos.\r\n\nEficiencia energética: La transmisión inalámbrica consume mucha energía, lo cual puede incrementar el tamaño de un dispositivo IoT o simplemente hacer que un dispositivo no sea viable para un proyecto por el alto consumo.\r\n\n\nAhora bien, todos estos problemas mencionados tienen solución si se puede usar Machine Learning en estos dispositivos de Internet de las cosas. El dispositivo no requeriría estar conectado constantemente transmitiendo data, ya que pudiera hacer el procesado el mismo. No enviaría data innecesaria, mejoraría la eficiencia energética, disminuiría el consumo de ancho de banda ya que solo transmitiría lo necesario, y por último, al enviar poca información contribuye al incremento de la seguridad.\r\n\nEn pocas palabras en eso consiste TinyML, usar microcontroladores para hacer el procesado de datos usando Machine Learning. Obviamente esto se realiza con modelos adaptados que no requieren un gran poder de procesamiento.\r\n\nActualmente se puede trabajar con TinyML con la Raspberry Pi y con el Arduino Nano 33 BLE Sense. Te dejo un enlace de Amazon sobre esta tarjeta y un kit de Machine Learning que venden en el sitio oficial de Arduino.\r\n\nArduino Nano 33 BLE sense\r\n\nARDUINO TINY MACHINE LEARNING KIT\r\n\n \r\n\nAprende MicroPython\r\n\nEspero que vengas preparado en esta ocasión para instalar microPython en tu ESP32. Si aún no lo has comprado te dejo el enlace de Amazon para que lo adquieras.\r\n\nESP32\r\n\nComo ya deberías saber Python es un lenguaje interpretado, por lo cual a diferencia del lenguaje C que se trabaja con Arduino, este necesita de un interprete. Por ese motivo, debemos instalar un interprete de microPython en nuestro controlador para que pueda ejecutar las instrucciones que le daremos a través del código escrito en Python.\r\n\nEstos son los pasos que debemos seguir para instalar microPython en el ESP32.\r\n\n \r\n\nPasos para instalar MicroPython\r\n\nInstalar Python\r\n\nSi aún no tienes Python instalado en tu PC no hay problema. Simplemente debes ir al enlace que te muestro más abajo donde podrás descargar Python para tu sistema operativo.\r\n\nDescargar Pyhton\r\n\nLuego de haber descargado el instalador debes ejecutarlo. Si usas Windows, es sencillo, simplemente solo debes seguir las instrucciones del instalador.\r\n\n \r\n\nInstalar esptool usando PIP\r\n\nPosterior a la instalación de Python se debe descargar la herramienta llamada esptool, la cual nos permitirá comunicarnos con nuestro ESP32. PIP es un gestor de paquete que nos permite instalar librería de terceros. Es muy importante tenerlo en cuenta.\r\n\nPara esto debes entrar a la consola de Windows y colocar la siguiente línea de comando:\r\n\npip install esptool\r\n\nSi no te funciona esa línea prueba usando:\r\n\npy -m pip install esptool\r\n\nEn el supuesto caso que se produzca un error. Te recomiendo valides si tienes instalado pip en tu PC. Para eso te dejo una guía de como puedes validar que tienes pip y como instalarlo y actualizarlo en caso de ser necesario.\r\n\nInstalación pip\r\n\n \r\n\nBorrar la Flash\r\n\nAntes de instalar el interprete se recomienda borrar la memoria flash. Para eso debes conectar primero el ESP32 y buscar en que puerto está conectado. Eso se encuentra en el panel de control dentro de la sección administración de dispositivos. El nombre de estos puertos normalmente están compuestos por las letras COM y un número, por ejemplo COM4. Luego que tengas el nombre del puerto usas el siguiente comando en la terminal cmd.\r\n\nesptool.py --chip esp32 --port COMX erase_flash\r\n\nDebes sustituir la letra X que está en el nombre del puerto por el número correspondiente que te aparece en el administrador de dispositivos.\r\n\n \r\n\nDescargar microPython\r\n\nAhora toca descargar microPython, para eso vamos al enlace que se muestra a continuación:\r\n\nDescargar microPython\r\n\nTe recomiendo que elijas una que no tenga la palabra unstable y que tenga el nomber GENERIC al inicio.\r\n\n \r\n\nInstalar microPython\r\n\nAhora solo falta copiarle el archivo que descargamos a nuestro ESP. Para ello vamos a la carpeta donde se descargó el archivo anterior y ejecutamos el siguiente comando:\r\n\nesptool.py --chip esp32 --port COMX --baud 460800 write_flash -z 0x1000 nombre_archivo_descargado\r\n\nDebes sustituir el nombre del puerto y el nombre del archivo que descargaste de la página de micoPython.\r\n\nAhora solo queda esperar y listo. Ya tenemos microPython en nuestro ESP.\r\n\n \r\n\nEspero que todo este proceso te haya salido bien, en caso contrario, puedes escribirme tus dudas al correo info@rjconcepcion.com\r\n\nNos vemos en el próximo artículo donde realizaremos nuestro primer programa.\r\n\n \r\n\n \r\n\nRecurso\r\n\nEl recurso que quiero hablarte en esta oportunidad se llama Google Colad. Es un Software as a Service que nos permite ejecutar y programar en Python. No requiere instalación, te da acceso a GPUs gratuuitos y además te permite compartir tus programas fácilmente.\r\n\nGoogle Colab te permite combinar código ejecutable con texto enriquecido en un mismo documento. También se pueden agregar imágenes, texto e incluso escribir en HTML. Estos cuadernos como son llamados se guardan en tu cuenta de Google Drive.\r\n\nTe dejo el enlace donde puedes acceder a este recurso de Google:\r\n\nGoogle Colab\r\n\nEste recurso es muy utilizado en Machine Learning e Inteligencia Artificial. Espero que aproveches este recurso si te vas entrar en el mundo de la Inteligencia Artificial.\r\n\n \r\n\nTe recuerdo que si este post te ha gustado, por favor compártelo con personas que creas que le pueda gustar. Cuento con tu apoyo.\r\n\nNos vemos en un próximo artículo.\r\n\n \r\n\nSiempre parece imposible hasta que se hace.\n\r\n\nMúsica usada en el podcast: Shinigami by XTaKeRuX\r\n\nhttps://freemusicarchive.org/music/XT...\r\n\nLicencia: CC BY 4.0\r\n\n\nThe post TinyML. Machine Learning en Microcontroladores appeared first on rjconcepcion.\r\n
13:06
El 555. Uno de los circuitos integrados más famosos.
Episode in
El Laboratorio del Toro
\n\n \nhttps://www.rjconcepcion.com/wp-content/uploads/2021/03/El-Laboratorio-del-Toro-Ep-40.mp3\n \r\n\nSuscríbete a la newsletter. para que recibas un correo cada vez que publico un nueva información.\r\n\n \r\n\nEl circuito integrado 555 es quizás unos de los más famosos en el mundo de la electrónica. Cualquier revista o sitio web de electrónica seguramente tiene varios proyectos usando este circuito integrado.\r\n\nVamos a comenzar hablando sobre que es un circuito integrado. En inglés se conoce como SoC (System on Chip) y es un componente que internamente esta compuesto por un gran número de componentes como: transistores, resistencias, condensadores, diodos, etc, con el propósito de realizar una o en algunos caso unas funciones en especifico. Aunque su forma es parecida a la de un microcontrolador, a estos no podemos programarle lo que queramos. Ellos cumplen solo una función y lo hacen de manera correcta durante su vida útil.\r\n\nNormalmente los ajustes a los circuitos integrados se logran colocando componentes como resistencias, diodos y condensadores en sus terminales.\r\n\n\r\n\nFoto integrado 555. Fuente: wikipedia Commons.\r\n\n \r\n\nEl 555\r\n\nEs un circuito integrado que puede ser utilizado para desempeñar varias funciones. Entre ellas tenemos: Oscilador, temporizado o generador de pulsos. Este circuito fue creado en el año 1971 por la empresa Signetics, la cual fue adquirida posteriormente por Philips.\r\n\nInternamente el 555 está compuesto de dos circuitos comparadores, un transistor, un inversor y un flip flop. Además de 3 resistencias para la división del voltaje. No quiero entrar muy en detalle sobre el funcionamiento de cada componente interno del 555. Te dejo una imagen donde puedes ver como se interconectan estos componentes.\r\n\n \r\n\n\r\n\nComponentes internos 555. Fuente: Wikipedia Commons.\r\n\n \r\n\nEste integrado es pequeño, consta de solo 8 pines. De los cuales 2 son para la alimentación. En la siguiente imagen se muestra el nombre de cada pin.\r\n\n \r\n\n\r\n\nPinout integrado 555. Fuente: https://snappygoat.com/\r\n\n \r\n\nDescripción de los pines\r\n\nSiempre que usemos un circuito integrado o microcontrolador, es muy importante conocer la función de cada pin. De esta forma sabremos que debemos y que no conectar en cada uno. Esta información se encuentra en el datasheet del componente. Siempre recomiendo tener el datasheet a la mano antes de comenzar cada proyecto.\r\n\nA continuación la descripción de cada pin:\r\n\n \r\n\nGND: Conexión a tierra.\r\n\nTRIG: Pin de disparo. Si este pin tiene menos de 1/3 del voltaje de alimentación. La salida será alta, es decir un pulso constante.\r\n\nOUT: Este es el pin de salida del circuito integrado. El voltaje de salida depende del voltaje de alimentación que se le aplique. El 555 puede trabajar desde los 4.5 V hasta los 18 V.\r\n\nReset: Se utilizar para deshabilitar el integrado o para reiniciar un timer. Si no se va a utilizar se debe conectar al voltaje de alimentación.\r\n\nCTRL: Con este pin se puede controlar los niveles de umbral y disparo. También determina el ancho del pulso. Si se aplica un voltaje externo se puede modular la forma de onda de la salida.\r\n\nTHR: Es una entrada a un comparador de voltaje. La amplitud del voltaje de entrada a este terminal determina el estado set del flip flop.\r\n\nDIS: Se utiliza para descargar el condensador.\r\n\nVCC: Esta es la entrada de alimentación del integrado. El voltaje máximo de alimentación es de 18 VDC y el mínimo es de 4.5 VDC.\r\n\n \r\n\nModos de trabajo del 555\r\n\nEl 555 se puede configurar para trabajar de dos maneras. Estas son: astable y monoestable.\r\n\n \r\n\nMonoestable\r\n\nUn monoestable es un circuito que genera un pulso cuadrado de una cierta duración luego de una señal de disparo. Este tiempo esta determinado por la siguiente fórmula:\r\n\nt = 1.1*R*C\r\n\nEn la siguiente imagen puedes ver como se debe montar un integrado 555 para que funcione como un monoestable.\r\n\n \r\n\n\r\n\nCircuito monoestable con 555. Fuente: Wikipedia Commons\r\n\n \r\n\nLa salida que se obtiene de este circuito se puede ver en la siguiente imagen:\r\n\n \r\n\n\r\n\nSalida monoestable. Fuente: Wikipedia Commons.\r\n\n \r\n\nComo puedes ver en la imagen, la salida permanece en un estado alto durante el tiempo de carga del condensador, cuando el condensador llega a su máxima carga, la salida pasa a un estado bajo.\r\n\nUno de los usos de este tipo de circuito es el de temporizador. Con la fórmula que te mostré anteriormente puedes calcular la duración que se mantendrá activa la salida luego de recibir la señal de disparo.\r\n\n \r\n\nAstable\r\n\nUn circuito astable genera una salida de onda cuadrada de forma continua.\r\n\nEn la siguiente imagen se puede ver un 555 configurado para trabajar como astable\r\n\n \r\n\n\r\n\nCircuito Astable con 555. Fuente: Wikipedia Commons.\r\n\n \r\n\nEn este caso las resistencias R1 y R2 junto con el condensador C, nos van a dar el ancho de la onda cuadrada.\r\n\nEn la siguiente imagen puedes ver la salida de onda cuadrada en comparación con el voltaje del condensador.\r\n\n \r\n\n\r\n\nForma de onda astable. Fuente: Wikipedia Commons.\r\n\n \r\n\nCon las siguientes ecuaciones podemos calcular el tiempo que la onda cuadrada permanece en alto y el tiempo que permanece en bajo.\r\n\nta = 0.693*(R1 + R2)*C\r\n\ntb = 0.693*R2*C\r\n\nDe esa manera se puede calcular tanto el tiempo en alto como en bajo. Ahora bien, normalmente ese tiempo lo definimos nosotros dependiendo de la aplicación que queramos realizar. Por cual simplemente debemos sustituir en las ecuaciones el tiempo y de esa forma calcular las resistencias y el condensador necesarios para nuestra aplicación. Si no quieres enredarte con fórmulas, te invito a ver el recurso de este artículo donde te muestro una herramienta para hacer estos calculos de forma sencilla.\r\n\nEste tipo de circuito es usado ser usado para hacer que una luz sea intermitente.\r\n\n \r\n\nUsos del 555\r\n\nComo te comenté anteriormente el 555 es uno de los circuitos integrados más famosos, con el se pueden realizar una gran variedad de proyecto. Son normalmente usados en circuitos temporizadores y para generar pulsos de ondas cuadradas que pueden ser usadas para crear intermitencia en luces. También pueden ser usados para generar una señal de reloj para la sincronización de dispositivos.\r\n\n \r\n\nEjemplos de circuitos con el 555\r\n\n \r\n\nCircuito Monoestable\r\n\nTe comparto una imagen con el montaje y los calculos para diseñar un circuito monoestable.\r\n\n \r\n\n\r\n\nCalculos y montaje de circuito monoestable.\r\n\n \r\n\nCircuito Astable\r\n\nAl igual que el circuito anterior, en la siguiente imagen puedes ver los calculos y el montaje para realizar un circuito astable con el 555.\r\n\n \r\n\n\r\n\nCalculos y montaje de circuito astable.\r\n\n \r\n\n\r\n\n \r\n\nAprendiendo MicroPython\r\n\nComo indiqué en el post anterior voy esta será una nueva sección sobre micropython donde poco a poco te iré enseñando sobre esta versión de Python para microcontroladores. La ideas es que paso a paso vayas aprendiendo tanto la teoría como la práctica.\r\n\nEn esta sección publicaré ejercicios sencillos para que puedas entender fácilmente el lenguaje y tengas la opción de micropyhton como lenguaje de programación para realizar tus proyectos.\r\n\nYa explicados los objetivos de esta nueva sección, te voy a dar algunas recomendaciones:\r\n\n\nPractica lo que aprendes. Esta es la mejor forma de fijar los conocimientos. No importa si el código o el circuito mostrado se ve muy sencillo. La idea es que lo montes y hagas tu mismos las pruebas. De esta forma fijaras este conocimiento. También es posible que te consigas con cierto problemas imprevistos los cuales contribuirán con tu conocimiento.\r\n\nNo tengas miedo. Es muy importante que no tengas miedo al desconocimiento, la idea es aprender cosas nuevas. Si no sabes, no importa debes empezar. Siempre me puedes escribir para consultarme sobre alguna duda.\r\n\nSe curioso. Si realizas una practica y la vez muy sencilla, prueba agregando otras cosas y ve como resultan. Esto despertará tu imaginación y aprenderás cosas nuevas tu mismo. Esta es una excelente forma de ampliar los conocimientos en un tema.\r\n\nTen todo listo. Antes de empezar trata de tener todo listo. Me refiero a los componentes que vas a usar, tu computadora, etc y sobre todo tener el tiempo necesario para realizar la actividad.\r\n\n\nEspero que te hayan gustado estas recomendaciones. En la próxima oportunidad nos pondremos manos a las obras.\r\n\nPor último, te comentó que debes tener una tarjeta de desarrollo ESP8266 o ESP32. Yo voy a trabajar con la ESP32. Si aún no la tienes te dejo en enlace de Amazon de unas que adquirí recientemente.\r\n\nESP32\r\n\nPrepárate. Nos vemos en el próximo artículo.\r\n\n \r\n\nRecurso\r\n\nEn esta oportunidad te voy a recomendar un recurso para que hagas mucho más fácilmente los cálculos que hemos mencionados relacionados con el integrado 555. Si quieres realizar un proyecto usando este integrado pero no quieres trabajar con las fórmulas, este recurso te resuelve ese problema. Es una calculadora que te permite determinar el condensador y la o las resistencias tanto para un circuito monoestable como para un astable.\r\n\nEn el siguiente enlace puedes acceder a esta calculadora de la empresa Digikey.\r\n\n555 Timer Calculator\r\n\nEspero que este recurso te sea de mucha utilidad.\r\n\n \r\n\nTe recuerdo que si este post te ha gustado, por favor compártelo con personas que creas que le pueda gustar. Cuento con tu apoyo.\r\n\n \r\n\nNos vemos en un próximo artículo.\r\n\n \r\n\nSiempre parece imposible hasta que se hace.\n\r\n\nMúsica usada en el podcast: Shinigami by XTaKeRuX\r\n\nhttps://freemusicarchive.org/music/XT...\r\n\nLicencia: CC BY 4.0\r\n\n\nThe post El 555. Uno de los circuitos integrados más famosos. appeared first on rjconcepcion.\r\n
12:15
MicroPython. Python en microcontroladores
Episode in
El Laboratorio del Toro
https://www.rjconcepcion.com/wp-content/uploads/2021/03/El-Laboratorio-del-Toro-Ep-39.mp3
Hace un tiempo escribí un artículo relacionado con el lenguaje de programación Python. Este es uno de los 3 lenguajes más usados en la actualidad. Python es un lenguaje muy útil, versátil, poderoso y fácil de aprender. Hace algún tiempo apareció una versión para microcontroladores llamada microPython.
En este artículo te voy a hablar sobre como puedes usar python en microcontroladores.
Logo microPython. Fuente: https://github.com/micropython/micropython/tree/master/logo
¿Qué es MicroPython?
Micropython es una versión ligera y eficiente del lenguaje de programación Python. Esta versión incluye un pequeño subset de librerías de Python y adicional a esto está optimizada para trabajar con microcontroladores.
En el año 2013 Damien P. George inicia una campaña kickstarter para el desarrollo de una versión de Python para microcontroladores, la cual conocemos hoy como MicroPython.
El proyecto de Damien consistía en correr Python en una pequeña tarjeta que el mismo desarrolló llamada Pyboard. Esta consiste en un microcontrolador STM32F405RG que cuenta con 1024KB de memoria flash ROM y 192KB RAM.
Para que microPython pudiera ser utilizado en microcontroladores no debía requerir de mucha memoria. Actualmente se necesitan 256KB de memoria flash y 16 KB de memoria RAM. Debes recordar que los micros no tienen los mismos recursos que nuestras computadores o teléfonos inteligentes, por lo cual los recursos deben ser muy bien utilizados.
Lenguaje interpretado
Si has trabajado con Arduino y el lenguaje C, habrás notado que antes de subir el código a tu microcontrolador primero debes compilarlo y luego subirlo. Esto es debido a que C es un lenguaje compilado. El código debe ser pasado a un lenguaje que el microcontrolador entienda para funcionar.
Capas de un sistema embebido tipo Arduino.
En el caso de Python y por lo tanto también de MicroPython, estos son lenguajes interpretados, es decir, se requiere de un software o programa que interprete o traduzca el código que le vamos a subir a nuestro micro para que este realice las operaciones que le hemos indicado.
En la imagen se aprecia la capa de microPython que se debe colocar al hardware para poder ejecutar el código deseado.
Capas en un sistema embebido.
Ventajas de MicroPython
Las ventajas de usar microPython están relacionadas obviamente con el lenguaje Python. Acá te presento algunas de ellas:
Lenguaje de programación sencillo y fácil de aprender.
Gran comunidad. Python es un lenguaje muy popular que tiene una gran comunidad detrás.
Lenguaje popular. Python se encuentra actualmente entre los 3 lenguajes más usados hoy en día.
Python es un lenguaje de alto nivel lo que hace que el código sea más sencillo y comprensible por los seres humanos.
Casos de Uso
Estos son los casos por lo cuales se considera que microPython es útil:
Educación: Al ser python un lenguaje de programación sencillo, puede ser usado para que las personas inicien en el mundo de la programación y más concretamente con dispositivos electrónicos.
Proyectos de hobby y makers: Los que tenemos el hobby de hacer proyectos de electrónica en nuestro tiempo libre podemos usar MicroPython para hacer más sencillos nuestros proyectos, que de otra manera serían más complejos con el lenguaje C.
Prototipado rápido: Apoyándose en la facilidad de Python se puede realizar prototipos rápidamente.
Dispositivos compatibles
Como indiqué anteriormente, debemos instalar microPython dentro del dispositivo que vayamos a utilizar, por esto el dispositivo debe contar con una serie de recursos mínimos.
Actualmente microPython está disponible entre otros para los siguientes microcontroladores o tarjetas:
Pyboard v1 and D-series.
Tarjetas con el STM32.
Raspberry Pi Pico.
ESP32.
ESP8266.
¿Por donde empiezo?
Seguramente todo esto que te he comentado hasta ahora te tenga confundido o pienses que es muy difícil y que no lo podrás hacer. Pero no te preocupes. Voy a comenzar una nueva sección llamada Aprendiendo microPython donde iremos paso a paso aprendiendo y descubriendo como usar este poderosos lenguaje en nuestros proyectos.
Tengo pensado iniciar esta sección en el próximo artículo e ir publicando por lo menos una vez al mes información que te ayude a aprender sobre microPython.
Si tienes alguna sugerencia o quieres que incluya algo adicional en esta sección, recuerda que siempre puedes escribirme tus comentarios al correo info@rjconcepcion.com
Proyecto
Como te comenté en el artículo anterior estaba trabajando en un proyecto para medir el tiempo que permanezco cada día sentado frente a la computadora. Para ello estaba usando un ESP8266 y un sensor de ultrasonido HC-SR04. Los problemas que estaba teniendo eran los siguientes:
El sensor no encendía. Si bien el datasheet indicaba que el voltaje de trabajo era de 5 V, encontré en algunos documentos que podía trabajar con 3.3 V. La verdad es que no es así, sino se alimenta con 5 V no enciende y no se pueden tomar las mediciones. Para solucionar este inconveniente utilicé una fuente de 5 V para alimentar el sensor y el ESP8266. Recuerda que el ESP trabaja con 3.3 V por lo cual debes utilizar la entrada de voltaje marcada como Vin.
El otro problema era la comunicación. Por alguna razón el ESP8266 no se estaba conectando a la red wifi que tengo en mi lugar de trabajo. Probé con otros módulos y tampoco funcionaba. Revisando conseguí que el AP tenía un ancho de canal de 40 MHz. Lo bajé a 20 MHz y funcionó. Quizás en algún momento realicé este cambio y no recordaba.
Te dejo el enlace donde puede consultar el resto de la información sobre este proyecto.
Medidor de tiempo en PC
Recurso
En esta oportunidad te quiero hablar de un sitio web llamado ThinkSpeak. Este sitio web ofrece servicios que permiten agregar, visualizar y analizar datos en la nube que provienen de dispositivos de Internet de las cosas. En ThinkSpeak tienes la posibilidad de ejecutar código en Matlab. Si eres ingeniero, es muy probable que hayas escuchado o incluso utilizado Matlab en algún momento. Con esa potente herramienta puedes analizar y visualizar los datos obtenidos desde tus dispositivos IoT.
Hace algún tiempo que no utilizo esta plataforma, pero no por eso deja de ser buena y potente. Te recomiendo que le des una mirada e incluso te animes a crear algún proyecto sencillo para que la pruebes. Es posible que en el futuro puedas necesitar análisis de datos y para eso Matlab puede ser de gran ayuda.
Recuerda que si quieres compartir esos programas, aplicaciones o sitios web con información importante que uses para tus proyectos. No dudes en escribirme al correo info@rjconcepcion.com.
Te recuerdo que si este post te ha gustado, por favor compártelo con personas que creas que le pueda gustar. Cuento con tu apoyo.
Suscríbete a la newsletter. para que recibas un correo cada vez que publico un nuevo artículo.
Nos vemos en un próximo artículo.
Siempre parece imposible hasta que se hace.
Música usada en el podcast: Shinigami by XTaKeRuX
https://freemusicarchive.org/music/XT...
Licencia: CC BY 4.0
The post MicroPython. Python en microcontroladores appeared first on rjconcepcion.
11:12
Creator' lists View more
Audio Libros
0
2
You may also like View more
La Hora Maker
La Hora Maker te ofrece las últimas novedades relacionadas con el mundo maker: tecnologías para la fabricación personal, herramientas para la fabricación digital, técnicas e ideas para la construcción en formato hazlo tu mismo.
En este programa también queremos dar a conocer el movimiento maker al público general, así como destacar los principales eventos en España y el resto del mundo.
En La Hora Maker hablaremos también de los grandes cambios que se están produciendo de forma simultánea como el diseño abierto, la personalización radical, las máquinas que fabrican máquinas, el software libre, etc. Súmate a este viaje. ¡Será divertido! Updated
Kernel
Debate con buenos invitados sobre cómo la tecnología afecta a nuestra vida diaria. Con Álex Barredo de mixx.io Updated
Despeja la X (by Xataka)
Despeja la X es un podcast semanal que se centra en el tema más importante de los territorios editoriales de Xataka. Updated




