12/17/2017

¡¡Felices fiestas 2017-2018!!

¡Saludos amigos de E&R! Como ya es costumbre aquí un par de palabras para todos ustedes, este 2017 esta a punto de terminarse, ha sido un año un poco ocupado para mi, aprendiendo cosas nuevas, resolviendo algunas cuestiones del trabajo, etc. Espero que ustedes hayan tenido la oportunidad de concluir sus proyectos y/o metas de este año.

Solo tengo un deseo para ustedes, de todo corazón que tengan unas excelentes fiestas de fin e inicio de año, que pasen un momento agradable con sus familiares, amigos y gente que está con ustedes y que los apoya en todo momento, ¡Éxito en todo! y feliz 2018.

Debo dar gracias a las personas que recomiendan este sitio, también a las paginas/sitios/blogs/ que nos han agregado en su seccion de enlaces o sitios recomendados ya que constantemente generan trafico hacia el blog y eso es muy bueno, porque lo que aquí se comparte llega a mas personas, invito a visitar la seccion de enlaces para conocer los sitios que recomiendo.

Comparto una imagen con un poco de las estadísticas del blog.

Aprovecho para dejar algunos enlaces, en donde me encuentro regularmente (en unos mas frecuentes que otros), también les comento que este año se me invito a formar parte del grupo MPV de TI en su foro E2E con lo cual esto muy feliz y agradecido.


_________________________________________________________________________________
Atte. Pedro Sánchez Ramírez




11/29/2017

MSP-EXP430G2 LaunchPad & CCS: Uso básico de PWM

¡Saludos! Siguiendo con los ejemplos básicos con la MSP-EXP430G2 LaunchPad & CCS, es hora de usar el PWM, para comenzar utilicé el archivo "msp430g2xx1_ta_16" de la carpeta de ejemplos proporcionada por TI.

Código:
El código es el siguiente, se ha agregado la opcion para que el Duty_Cycle sea variable:

Vídeo:
Aquí un pequeño vídeo de funcionamiento:

Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes DESCARGAR la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.

11/24/2017

Mejorando mueble para el taller

Saludos!! Recientemente tuve la oportunidad de mejorar mi mueble, en esta ocasión porque quería aprender a utilizar el FreeCAD, así que fue buena opción primero hacerlo el dibujo en 3D, hacerle cambios, añadirle cosas, etc, bueno acá mostrare algunas fotos y capturas de pantalla. Para iniciar debo recomendar los tutoriales de Obijuan sobre este software, muy buenos para dar los primeros pasos (Temporada 1, Temporada 2).

Aquí un par de capturas de pantalla del mueble en FreeCAD (debo mencionar que aun me falta mucho por aprender).



Después de haberlo hecho en 3D, he tenido acceso a un router CNC y también acceso a un poco de MDF, asi que lo que siguió fue cortarlo, armarlo y presentarlo, aquí un par de fotos (se notara a simple vista que la mesa y el nuevo mueble son de distintos materiales, pero bueno no soy tan exigente en esas cosas, para mi lo mejor es tener todo a la mano). 






Con esto tendré mas lugar para llenarlo de cosas, me falta conseguir algunos contenedores para mas componentes y todo eso, pero ya sera después que lo siga equipando, también veré la posibilidad de colocarle iluminación LED para reemplazar ese estorbo de lampara de mesa que tengo (al fondo, detrás de la computadora).

Por si se preguntaban para que seria esa parte, ademas de reforzar el mueble, pues ahí colocare algunos contactos, para tener acceso a ellos de una forma muy fácil.


Por el momento he agregado esos, pero puedo colocar otros según los necesite.


Bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.

11/08/2017

Librerías para KiCad: Actualización nro. 1

Saludos!! Hace tiempo mencione que era tiempo de iniciar a usar KiCad, bueno aun no lo domino al cien, pero como sabrán siempre se utilizan componentes que en algunas ocasiones no se encuentran en las librerias, por lo que es necesario crearlas o buscarlas en la red, en mi caso he optado por crear algunas que iré agregando a mi repositorio de GitHub (por si gustan seguirme), acá en el blog mostrare las actualizaciones o modificaciones de estas. Apenas hoy realice el repositorio así que o hay mucho, como pasa con las librerias de Eagle estas también estarán separadas por grupos para identificarlos fácilmente.

E&R_Microchip
  • PIC18F25K22 (Package SOIC28 y SSOP28)
E&R_Modules
  • Bluetooth HC-05 

Aquí el enlace para DESCARGAR las librerias disponibles desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.

10/28/2017

MSP-EXP430F5529 & CCS: Happy Halloween!!


Regards! I mention that in particular I do not celebrate this party, but I have friends who do, so I wish you have a fun night, I made a small video to wish you happy hallowen.

Here some photos:


Here the video, Happy Halowen!!:


Here the direct link to DOWNLOAD the available files, you can also DOWNLOAD the information from my repository on GitHub, if you do not know how to download it you can check here, well for the moment it is all if you have doubts, comments, suggestions, concerns, etc. leave them and I will try to answer as soon as possible.


References:

10/20/2017

Arduino: Multiplexar puerto serie

¡Saludos! Para iniciar diré que este no es el mejor método, o que este sea el único, simplemente fue la forma en la que yo resolví esto. Hace tiempo me vi en la necesidad de usar dos módulos que se comunican con el puerto serie (en ese tiempo fue un bluetooth y un modulo MP3, para este ejemplo uso un FT232 para reemplazar el MP3 ya que no tengo este a la mano, pero la mecánica es similar), prácticamente recibimos un carácter por el bluetooth (para enviar el dato se puede usar otro monitor serial con el bluetooth de la computadora o un adaptador, o simplemente usar la aplicación antes mostrada aquí en el blog), si es "a" encendemos el LED, si es "b" lo apagamos y en ambos casos mandamos un mensaje por el FT232 para visualizarlo en el monitor serial de arduino.

10/11/2017

MSP-EXP430F5529 & CCS: Leer y mostrar el voltaje del ADC


Saludos!! En esta publicación veremos otro ejemplo del ADC de 12 bits, con el que cuenta este microcontrolador, como ya habíamos visto en otra publicación vamos a usar el potenciometro con el que cuenta esta tarjeta,  ahora mostraremos los bits del ADC en la pantalla y haremos la conversión para mostrar de igual forma el voltaje correspondiente.

La primer tarea fue conseguir una función para pasar de flotante a array (esto se logro usando la version que muestra InDevice en sus tutoriales, por cierto recomiendo su canal con muy buenos tutoriales sobre el MSP340G2553), yo he agregado esas funciones a un par de archivos, llamados special.h y special.c, ahí sera donde tenga algunas funciones comunes para los MSP y sea mas fácil añadirlas a nuestros proyectos.

El código que hace posible esto, es el siguiente:
Aquí una foto donde se aprecia el voltaje medido con un multimetro:

Aquí un vídeo en funcionamiento:

Aquí el enlace para DESCARGAR los archivos disponibles desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.


Referencias:

10/03/2017

Cupón de descuento para TI Store "2017"


Saludos a todos los seguidores!! En esta ocasión y como agradecimiento por colaborar con la comunidad TI y compartir información sobre sus MCUs (aunque de momento básico, pero me esfuerzo por subirle de nivel), nos hacen llegar un cupón de descuento para envíos gratis (aparece en la imagen), claro esta para los productos adquiridos en https://store.ti.com/, el cupón esta vigente hasta el 31 de diciembre 2017 y puede ser utilizado por cualquier persona (incluso aplica si se lo compartes a otro conocido).

9/26/2017

FT232 Breadboard: Modulo USB a serie

Saludos a todos!!! Este proyecto usa el circuito FT232R y esta basado en el de Sparkfun. Este circuito puede convertir el protocolo USB al protocolo serie asíncrono, en otras palabras se puede utilizar el circuito para convertir por ejemplo USB1 al puerto serial correspondiente, osea que será un puente entre el puerto USB y el proyecto o dispositivo a controlar, por ejemplo la UART de un microcontrolador. El circuito que se utilizo es el siguiente:


Como se puede ver en el circuito se tiene un Jumper (JP1) para seleccionar si se desea trabajar con 5V o 3.3V, se tiene también la tira de 4 pines (J2) para conectar directamente a la aplicación a controlar en ella se encuentran VCCIO (Ya sea a5v o a 3.3V), RXD para la lectura de datos, TXD para la transmisión y GND. Se cuenta con J3 y J4 para acceder al resto de los pines si es que se desean utilizar en otra configuración, tiene también un par de LEDs con sus debidas resistencias, estos encienden al momento de enviar o recibir datos.

Al momento de conectar el circuito a la computadora (En lo personal lo he utilizado en Windows 7 Starter) Windows detecta un dispositivo USB y busca los controladores en Windows 7 se instalan automáticamente. Si esto no ocurre la empresa FTDI ofrece todos los controladores necesarios en la plataforma Windows de forma gratuita solo basta con descargarlos de la página: http://www.ftdichip.com/FTDrivers.htm, además de los Drivers en ella encontraras toda la información para la instalación. Si se conecta el circuito al puerto USB la computadora genera un puerto COM# virtual que corresponde al puerto USB, por ejemplo COM8, ahora todos los datos en formato de byte que se envía a este puerto COM se redirige al puerto USB#.

Toda la transmisión y la recepción de los bytes de datos se manejan por el FT232. Para empezar, lo único que necesitas es un programa que supervise el COM#. Existen varios para este propósito por ejemplo el Hiperterminal, X-CTU o el Serial Port Monitor que bien incluido con el Compilador C CCS–PCWHD en lo personal he utilizado los dos últimos con buenos resultados. El funcionamiento es muy básico lo primero que debe de hacer es la configuración de conexión por ejemplo, velocidad de transmisión, número de puerto, paridad, etc. El ajuste adecuado se entrega en la ficha técnica FT232R. A continuación muestro un ejemplo utilizando el X-CTU:


Como se puede apreciar en la imagen anterior Windows me genero el puerto COM19, la velocidad de transmisión es de 9600 Baudios, etc.

Para ver lo que se envía y recibe por el puerto hacer click en la pestaña “Terminal”, solo vasta escribir lo deseado y el programa lo enviara automáticamente por ejemplo si enviamos el carater “A” se verá lo siguiente:


El dato enviado aparece de color azul, ahora bien para apreciar la recepción tenemos que puentear el pin TXD y RXD, ahora enviamos el caracter “B” y el dato recibido aparece de color rojo, para ver esto tenemos lo siguiente:


Se puede hacer un ejecutable que sustituya al X-CTU por ejemplo en Visual Basic, Java, LabVIEW, etc. Dependiendo de la aplicación deseada, ahora ya puede conectar un microcontrolador y completar su aplicación.

Como era de esperarse para esto yo he realizado mi modulo y lo he probado sin problemas, les comento lo he realizado en SMD a excepción de los pines que son Through-Hole.

Aquí unas fotos para que vean el resultado: La primera una vista superior con los componentes y la segunda una inferior.


Aquí el enlace para DESCARGAR los archivos disponibles desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare lo mas pronto posible responderlas...

Referencias:

9/17/2017

MSP-EXP430F5529 & CCS: 102x64 LCD Basic test


Siguiendo con los ejemplos básicos con el MSP430F5529, tocara el turno de usar la LCD de 102x64 pixeles que viene en nuestra tarjeta, en una publicación anterior vimos como pasar de una imagen a un array  con el Bitmap2LCD y así poder usarlo en este ejemplo (aquí la primera parte).

Ahora bien, nuestro ejemplo primero mostrar un logo, espera unos segundos y mostrar algunos mensajes, segundos después para a mostrar un pequeño contador de 0 a 25 y se repetirá indeterminadamente, se puede ver que se implemento una rutina muy burda para delays en milisegundos, pero que por el momento basta para fines demostrativos.

El código que hace posible esto es el siguiente:
Aquí el vídeo demostrativo:

Aquí el enlace para DESCARGAR los archivos disponibles desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.

Referencias:

MSP-EXP430F5529 & CCS: Generar array de una imagen con Bitmap2LCDv1.9


Siguiendo con los ejemplos básicos y utilizando nuestra tarjeta MSP-EXP430F5529, tocara el turno de usar la LCD de 102x64 pixeles que viene incluida en esta, para ello lo primero que mostraremos sera nuestro logo (como se aprecia en la imagen anterior), así que esto lo dividiremos en dos partes, esta primera parte la dedicaremos a explicar como obtendremos nuestro array usando el programa Bitmap2LCD.

Lo primero que debemos de tener, es nuestra imagen en un formato de mapa de bits, yo hice una exactamente con las dimensiones de mi LCD (como se muestra en la siguiente imagen), podríamos crear una bit a bit desde el software que utilizaremos para crear el array pero eso seria muy tardado.


Lo siguiente seria tener instalado el Bitmap2LCD (yo lo he descargado desde aquí), una vez que lo tengan ejecutamos y nos saldrá algo parecido a esto:


Bueno primero realizaremos unos ajustes para que nos de el resultado que deseamos, entonces nos vamos a LCD matrix >>Define size.


Una vez hecho esto nos aparecerá la siguiente ventana, en la modificaremos ciertos valores.


Podemos modificar varios valores, pero los que ami me interesa los he encerrado en óvalos.

  • Rojo: Ahí colocaremos las medidas de nuestra LCD (102x64 pixeles para nuestro caso)
  • Azul: es para tener 8 constantes por linea, simplemente para estética de nuestro código.
  • Se puede cambiar mas pero recomiendo dejarlos como los valores predeterminados, una vez hecho esto damos en Hide window y listo.
Lo siguiente es ir al la ventalla llamada File explorer, ahí buscaremos la ruta donde tenemos guardada nuestra imagen, seleccionada la imagen que usaremos le damos doble clic (numero 4).


Hecho eso nos abrirá la siguiente pantalla, si es necesario ajutamos hasta obtener una imagen adecuada (numero 1), cuanto este a nuestro gusto damos enter, el icono encerrado en el numero dos es para editar bit a bit la imagen, una vez listo pulsamos el icono numero 3, para exportar la imagen al array.


Una vez hecho clic te pedirá una confirmación para lo que debes seleccionar YES.


Si te muestra la ventana de sobrescribir el archivo, recomiendo darle no, ya que nosotros solo copiaremos el codigo y lo pondremos en muestro proyecto y no usaremos el archivo que te generara el programa.


Hasta aquí todo va bien y creo yo sin problema alguno, lo siguiente sera copiar el contenido dentro de los paréntesis (sera el array de nuestra imagen) y abrir nuestro proyecto en el code composer studio.


Hecho esto creamos nuestra constante en el archivo main del proyecto (static const uint8_t mrchunckueeLogo[] = { }), y dentro de las llaves sera donde peguemos lo que copiamos del Bitmap2LCD.


Notaran que se ha agregado dos valores mas, mrchunckueeLogo[0] = 0x66 y mrchunckueeLogo[1] = 0x08, a que se debe o ¿cual es la razón?, bueno es por que utilizaremos la librería "HAL_Dogs102x6" de TI, concretamente utilizaremos la función Dogs102x6_imageDraw() para mostrar la imagen en pantalla, así que dándole  una checada a dicha función vemos que dice "The first two bytes of the image should contain the width in pixels and the height in rows (height in rows = height in pixels/8)", osea que si nuestra imagen tiene 102px = 0x66 en hexadecimal y para 64px/8 = 0x08 hexadecimal (espero que se comprenda).


Bueno esto sera todo por el momento, en nuestro siguiente post mostraremos esto ya en practica en el code composer studio, esto solo fue para tener lo necesario para la siguiente practica.

Aquí el enlace para DESCARGAR los archivos disponibles sobre las publicaciones de la MSP_EXP430F5529 Experimental Board, desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.


Referencias:

9/07/2017

MSP-EXP430F5529 & CCS: Ejemplo básico del ADC12_A


Siguiendo con algunos ejemplos sobre el MSP430F5529 y CCS, toca el turno de usar el ADC12_A con el que cuenta este MCU, este tiene una resolución de 12 bits y en esta ocasión usaremos el ejemplo llamado "MSP430F55xx_adc_01" incluido en la carpeta MSP430F552x Code Examples.

¿Que hace este ejemplo? Básicamente configura para leer el voltaje por el puerto A0 y atenderlo mediante una interrupción (el sistema se encuentra en LowPowerMode hasta que la interrupción lo saca de ahí), cuando el voltaje en A0 es mayor a 0.5*AVcc (considerando que AVcc  esta conectado a VCC, el valor debería de ser de unos 3.3V aproximadamente, yo lo he medido con mi multimetro y andaba en los 3.5V) encendera LED1, caso contrario permanecerá apagado, bueno esto es lo que hace el código.

Ahora considerando que estoys usando la Experemental Board de TI, notaremos que el pin A0 esta conectado a DB0 (un Touch Pad de los 5 que trae la tarjeta) y no servirá para demostrar este ejemplo, entonces usaremos el potenciometro que trae la tarjeta, este esta conectado a A5 (como se muestra en la siguiente imagen) pero para que funcione correctamente debemos activar P1.8 y dejar puesto el jumper JP2.


Considerando estas modificaciones el código queda de la siguiente forma:
Aquí un pequeño vídeo funcionando:


Aquí el enlace para DESCARGAR los archivos disponibles desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.

Referencias:

9/01/2017

MSP-EXP430F5529 & CCS: Toggle LED1 on pin P1.0


En esta ocasión estoy probando un test que trae el soporte de TI (MSP430F552x Code Examples) de hecho espero poder probar y analizar mas ejemplos que estén disponibles para entrar en confianza y así poder hacer algunos propios mas adelante, en la imagen anterior se muestra el osciloscopio con el pulso a 0,5 segundos aproximadamente.

El código es el siguiente:

Aquí el enlace para DESCARGAR los archivos disponibles desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.


Referencias:

8/21/2017

MSP-EXP430F5529 & CCS: Introducción


Hace tiempo que quería iniciar a experimentar con esta placa, por ciertos detalles no había podido, pero hoy tocara hablar un poco sobre ella, algunas características y algunas cosas de las que tiene. La placa de experimentación MSP-EXP430F5529 es una plataforma de desarrollo para el dispositivo MSP430F5529, de la última generación de dispositivos MSP430 con USB integrado. Es compatible con muchos módulos de evaluación inalámbrica de RF de baja potencia de TI, como el CC2520EMK. Experimenter Board, ayuda a los diseñadores a aprender y desarrollar rápidamente utilizando las nuevas MCU F55xx, que proporcionan el consumo de energía activo más bajo de la industria, USB integrado y más memoria e integración líder para aplicaciones como recolección de energía, detección inalámbrica e infraestructura de medición automática.

Algunas características:
  • La tarjeta de desarrollo usa el  MSP430F5529:
    • 128KB Flash / 8KB SRAM (10kB si se deshabilita el USB)
    • Full-Speed USB 2.0
    • 16-Bit RISC Architecture up to 25-MHz
    • 3x Timer_A Blocks, 1x Timer_B Block
    • 2x USCI (UART/SPI/I2C) Blocks, 16Ch 12-Bit ADC12_A, 12Ch Comp_B, 63 I/Os
  • Plataforma de desarrollo USB
  • 5 Botones touch capacitivos.
  • Ranura para microSD Card con una memoria de 1GB.
  • Una GLCD de 102x64 con backlight,.
  • 4 pulsadores.
  • 3 LEDs de uso general, 5 LEDs para botones táctiles capacitivos y 1 indicador LED de alimentación.
  • Potenciómetro.
  • Varias opciones de fuente de alimentación, incluyendo USB, JTAG, baterías o fuente de alimentación externa.
Esto solo por mencionar algunas de sus características, importante también leerse la guía de usuario y la hoja de datos del microcontrolador, estaré programando esta herramienta con el Code Composer Studio v72.0 (todo esto se puede encontrar en el enlace antes mencionado), la board viene con un demo muy completo usando de todas la funciones que tiene, incluso en la guía de usuario de indica en donde descargar el código fuente de dicho demo, no pude grabar un vídeo pero les dejo algunas fotos.


Bueno echando un ojo al código antes mencionado inicie por hacer un test básico donde ocupo la librería de la pantalla LCD y el resultado es el siguiente (debo decir que se avanza rápido, gracias a las liberas que nos comparte el fabricante), por cierto los invito a visitar y unirse al foro de E2E.


Dejo un vídeo de una primera prueba que he realizado:


Bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.