19 agosto 2016

Arduino: Control de servomotor con un potenciometro

Siguiendo con los ejemplos básicos en arduino toca el turno de mover la posición de un servo utilizando un potenciometro, el circuito usado es muy sencillo, solo se trata de un potenciometro de 5K (Puede ser de 10K, yo use el que tenia a la mano) conectado al pin analógico A2, por otro lado para el pin se control del servo se usara el D2, así que esto queda como se muestra a continuación:

El código que hace posible esto, es muy sencillo, solo leemos el valor del ADC, lo mapeamos para que concuerde con los valores usados para el servo y listo el servo moverá su posición de acuerdo al movimiento del potenciometro, el código es el siguiente:
Dejo todo el materias disponible para DESCARGAR bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare lo mas pronto posible responderlas...

12 agosto 2016

Arduino: Sensor ultrasónico HC-SR04


Saludos a todos!! Siguiendo con los ejemplos de arduino, en esta ocasión toca el turno del sensor ultrasónico HC-SR04 (en la red hay mucho sobre esto, basta con buscar para encontrar algo, ademas de que arduino tiene mucho soporte) con el cual mostraremos la distancia en el monitor serial que tiene arduino. El circuito usado es muy sencillo, solo se requiere hacer las conexiones, como se muestra en el dibujo (disculpar si no muestro el esquemático pero me pareció mas sencillo hacer un dibujo, ademas no hay pierde basta con mirar el código para identificar las conexiones y listo):

El código que hace posible esto, es el siguiente, importante decir que la distancia la muestra con dos decimales:

Dejo todo el materias disponible para DESCARGAR, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare lo mas pronto posible responderlas...

06 agosto 2016

Librerías para Eagle: Matriz de LEDs 8x8

Una librería mas para la colección, hace tiempo que un colega realizo su matriz de LEDs y necesitaba la librería en eagle, me tome la libertad de hacerla y compartirla con ustedes, a el le funciono sin problemas, la matriz es como se muestra en la siguiente imagen:
Aquí una captura de pantalla del componente en el esquemático y en el layout, cabe mencionar que tienen dos versiones, una para ánodo común y otra para cátodo común:
Como agregar la librería a Eagle:
  • Descomprimir el archivo descargado, dentro de este se encuentra la librería con terminación .lbr
  • Copiar y pegarla librería en... C >> Archivos de Programa >> EAGLE >> lbr La ruta puede variar dependiendo de la instalación del programa EAGLE
  • Ejecutar el EAGLE y desplegar la carpeta Librerías
  • Buscar entre la lista la librería agregada y activarla (Debe de tener un punto de color verde)
  • Listo ahora ya se puede utilizar
Aquí el enlace para DESCARGAR las librerias de GitHub, si no sabes como descargar un repositorio puedes checar aquí.

Si tienes dudas, sugerencias, traumas, inquietudes, malestares, observaciones o lo que este relacionado, no dudes en expresarlas y tratare de responder lo mas pronto posible.

29 julio 2016

Arduino: Manejo de servomotor VIGOR VS-2


Saludos!! Hace un par de días un colega me pedía ayuda sobre un proyecto con arduino, y para ello requería hacer ciertas pruebas como mover un servo, aproveche la oportunidad para escribir esto y como el único servo que tenia a la mano era un VIGOR VS-2, puede decidí usarlo. Checando la hoja de datos se puede ver que el servo se mueve de 800 a 2200 microsegundos (no voy a explicar la teoría se los servos, eso es tarea de ustedes), así que en este pequeño ejemplo haremos un barrido para que el servo gire de 0 a 170 grados y de 170 a 0 grados aproximadamente, que es lo que menciona su hoja de datos.

El circuito utilizado es muy sencillo, solo debemos conectar el cable de control del servo al pin D2 de nuestro arduino nano, como se muestra a continuación:

Aquí el código que hace posible esto, debo mencionar que en la red hay mucho de esto, incluso arduino trae un demo para el control de un servo, pero yo decidí usar la instrucción "myservo.writeMicroseconds()" para tener un movimiento mas fino, ademas de facilitar mucho al colocar los rangos del barrido:
Dejo todo el materias disponible para DESCARGAR bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare lo mas pronto posible responderlas...

23 julio 2016

MPLAB X y XC8: Libreria para pantalla Nokia5110

Saludos!!! Anteriormente les había comentado que andaba probando la pantalla Nokia5110, toco el turno de dejarles por así decirle una primera versión de mi librería pensada para el compilador XC8 (Debo comentar que el firmware original lo vi en un repositorio de GitHub, desconozco por que el enlace que tenia guardado esta roto, pero posiblemente fue por alguna actualización, busque todo sus repositorios y encontré esto "ir a enlace"), bueno la librería que encontré esta pensada para arduino pero reutilice su código, modifique y agregue otras partes para poder trabajar con el compilador XC8, y aquí les comparto mi resultado. 

En un principio la librería estaba para usarse en los pines SPI del microcontrolador (Fue el vídeo e información que compartí anteriormente) analizando algo de la comunicación SPI me fue posible realizar una función para emularlo por así decirlo, para poder utilizar cualquier pin del microcontrolador (claro siempre y cuando sirva como entrada o salida), por el momento solo he probado con el PIC18F25K22 que es el único que tengo a la mano que trabaja a 3.3V ya que no me quise meter en líos al acoplar los voltajes (mi intención solo era probar la librería para la pantalla).

El circuito básico para manejar la pantalla es el siguiente:

Para el demo es algo muy sencillo, una imagen de inicio, seguido de un par de textos y por ultimo un contador automático de 4 dígitos, debo comentar que para acceder a toda la información al final he dejado el enlace de descarga, bueno aquí main del demo para la librería:
Aquí un vídeo del circuito en acción: 
Dejo todo el material disponible para DESCARGAR, incluyendo el  LCDAsistant para que puedan probar otras imágenes, este y otros códigos y/o librerias también están disponibles en mi repositorio de GitHub. Bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare lo mas pronto posible responderlas...

16 julio 2016

Stellaris LauchPad y Energia: Uso de entradas y salidas digitales

Saludos!! Aquí una primera prueba que he realizado con la Stellaris LauchPad y Energia, se que esta tarjeta esta descontinuada (Actualmente es la Tiva C) pero yo hace tiempo que la tenia arrumbada así que decidí darle un uso. Inicialmente decidí usar energia por lo fácil que sera armar algunos ejemplos, pero espero llevar a la par ir practicando con el Code Composer Studio. Bueno que hace este ejemplo, lo único que hará es ir encendiendo un color del LED RGB (Incorporado en la placa) cada que se presiona el boton SW1, por el momento solo son 4 colores diferentes, pero bueno se entiende la mecánica de usar entradas y salidas (digamos es mi hola mundo con la stellaris). El firmware utilizado para este sencillo ejemplo es el siguiente:

Bueno para que se aprecie el efecto dejo un vídeo de la stellaris en acción:
Dejo todo el materias disponible para DESCARGAR, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare lo mas pronto posible responderlas...

09 julio 2016

PIC TRAINER: Módulo puente H usando el L298


Saludos!!! Siguiendo con las publicaciones sobre la PIC TRAINER v1.0 toca el turno de un módulo para controlar motores, en este caso se basa en el integrado L298. El circuito utilizado es sencillo y te permite controlar dos motores, si se desea controlar ambos sentidos de giro del motor o cuatro motores si solo se desea controlar en un sentido de giro, también puede usarse para controlar motores a pasos, bueno el circuito propuesto es el siguiente:

Como se ve en el esquemático se cuenta con un regulador 7805 para alimentar las partes del puente H que requieren de esta tensión, el jumper JP1 permite si usar o no este regulador, por ejemplo si VIN tiene un voltaje de 5V no es necesario usar el regulador,  pero si tiene un voltaje superior asegurarse de poner el jumper en la posición adecuada. lo de mas del circuito pues es el integrado principal el L298 conectores, sus diodos para la corriente inversa y algunos LEDs que te indican que salida esta activada. 

El circuito esta hecho en dos capas, a continuación un par de capturas del layout, tanto de la cara TOP, como la del BOTTOM:


Aquí la lista de materias usados para el circuito:
  • 1 Circuito integrado L298
  • 1 Regulador de voltaje de 5 volts 7805
  • 4 LEDs de 3mm color que gusten
  • 2 Resistores de 1KΩ a 1/2W
  • 2 Condensador cerámico de 0.1uF
  • 9 Diodo 1N4007 o 1N4148
  • 2 Conectores macho para cable plano de 10 pines
  • 3 Bornera atornillable de 2 pines
  • 1 Jumpers
  • 1 Tira de pines lineal tipo macho (Cortar 3 pines para saldar y después colocar los jumpers)
  • Otros materiales: Brocas, PCB virgen, soldadura, cautín, taladro en fin lo necesario para realizas un PCB
El circuito trabaja bien, realice un pequeño demo con un PIC18F25K22 y responde sin problema alguno, aquí el vídeo:
Dejo todo el material disponible para DESCARGAR, el método usado para realizar el PCB, es el de la plancha así que el material que se comparte esta pensado este método. Esto sera todo en esta ocasión, en cuanto pueda comparto mas detalles. Dudas, comentarios, sugerencias, inquietudes, traumas, etc. Dejarlas y tratare lo mas pronto posible responderlas..

02 julio 2016

Energia: Error "Lauch4j" al ejecutar el IDE

Saludos!! Hace unos días que pensaba probar algunos ejemplos en Energía (el IDE similar a arduino pero para los microcontroladores de TI, para los que no lo conocen), anteriormente ya había platicado sobre otra experiencia que había tenido con este IDE, bueno por cierto motivos lo había desinstalado de mi computadora, bueno retirado ya que es ejecutable, así que en esta ocasión me decidí a descargar la ultima versión del software, realice todo lo de rutina, pero me dio una gran sorpresa cuanto intente ejecutarlo. Inicialmente parecía ejecutarse y me mostraba la siguiente pantalla: 

Pero después de un tiempo, este no cargaba del todo y luego me botaba un cuadro con un error, el cual le diera aceptar o cerrar tenia el mismo efecto, el IDE terminaba por no ejecutarse, el mensaje era el siguiente: 

Busque alguna solución en la red, recurrí al foro "43oh.com" para ver si me auxiliaban con el error, como ya lo habían hecho antes, ademas de revisar otras publicaciones aparentemente con problemas similares, pero nada sin éxito, incluso pregunte a otros usuarios del grupo en FB, y fue gracias al colega Pablo Lopez de ElectronAplica en colaborarme con un link (Aquí el link) en donde comentaban exactamente el mismo tema (esto dejo claro que no busque correctamente). 

Bueno uno de los comentarios mencionaba sobre borrar la carpeta "libraries" ubicada en "...Documentos>>Energia" (cosa que me pareció raro ya que supuestamente yo había borrado todo lo de energia, lo se suena tan absurdo todo lo que escribo, pero bueno como he dicho antes este blog es un historial de todo lo que voy experimentando o me ha ocurrido a lo largo de mi trayectoria), bueno el hecho de borrar esta carpeta ha solucionado mi problema y me ha permitido ejecutar el IDE sin problema alguno, ahora solo falta correr algunos demos y listo, por cierto estaré usando la Stellaris LauchPad que tengo desde hace tiempo.   

25 junio 2016

EAGLE: Panelizar PCBs

Como yo se habrán dado cuenta utilizo Eagle (Actualmente la versión 6.4.0) para realizar mis PCBs, las razones pues es simplemente mi gusto por el entorno que tiene. Les cuento resulta que hace unos cuantos días me vi en la necesidad de hacer varios PCBs iguales y tenían un tamaño pues digamos pequeños aproximadamente de 6x5cm, para fines demostrativos de esta publicación del blog usare el circuito del modulo FT232 ya publicado anteriormente acá en el blog. 

Bueno regularmente mis impresos los hago en papel couche y con una impresora laser (Dejare el proceso de cómo hacerlo para otra publicación), la primera idea que se vino a mi mente fue imprimo una vez, vuelvo meter la hoja y vuelvo a imprimir, pero debo decir que esto no es buena idea jejeje lastimosamente aprendí a la mala porque a la tercera impresión la hoja se atasco en la impresora y pues obviamente se perdió, ya que quedo toda sucia e inservible por el tóner. 

Lo segundo que vino a mi mente fue abrir mi archivo y hacer uso de la herramienta Copy y luego Group para seleccionar y copiar todo el circuito y así colocar varios en una sola hoja y mandar a imprimir todo junto, para iniciar no me dejaba hacer una copia en el mismo archivo ya que me mostraba el siguiente error. 


Bueno como vemos en el mensaje dice que no podemos hacer esto y que forzosamente debemos hacer la copia en el esquemático pero eso no nos sirve ya que de hacerlo así se tendría que hacer el ruteado para el segundo circuito, en fin para solucionar lo del error fue fácil ya que eso si lo sabía, lo único que debemos hacer es una copia del archivo BRD que te crea el Eagle (ese archivo es el que tenemos del ruteado del PCB) y renombrarlo para tenerlo identificado. Mi archivo se llama FT232 así que la copia lo he llamado FT232 - PANELIZAR así como se muestra a continuación: 


Ahora ya podemos trabajar con esa copia sin problemas de que nos muestre ese error, de principio esta idea parecía ir bien y resultaba útil pero no eficiente al 100%, ¿¿porque?? Pues resulta que también se deseaba imprimir los dibujos (capa tPlace o bPlace en Eagle) y las etiquetas de cada componente (capa tNames o bNames) pero al momento de hacer las copias las etiquetas se fueron seriando ¿¿cómo es esto?? Pues pongamos un ejemplo en la segunda copia el capacitor que tenia la etiqueta C1 ya me aparecía como C3, el resistor R1 aparecía como R3 y así sucesivamente pasaba lo mismo con los demás componentes, esto no funciona si en algún futuro se piensa mandar a fabricar el diseño de forma profesional, porque lo que uno desea es que todas las tablillas queden iguales, para que se den una idea quedaba algo así como se muestra en la siguiente imagen. 


Bueno la segunda idea quedo descartada y las cosas parecían ponerse serias, pero se me olvidaba algo resulta que Eagle tiene unas herramientas llamadas ULP’s que alguien más se ha tomado la molestia de hacerlos para que nosotros no tengamos la necesidad de sufrir jejeje yo ya había utilizado estas herramientas en el pasado y pensé pues esto es un problema común para varias personas así que debe de haber algo ya hecho, así lo único que se debía hacer era buscar algo de información en San Google y para mi sorpresa al teclear “panelizar en Eagle” encontré un blog en ingles donde explicaban y daban solución al mismo problema que yo tenía en ese momento (Aquí el blog llamado Viktor’s DIY http://diy.viktak.com/2013/02/tutorial-panelizing-pcbs-in-eagle.html). Resulta que si existe un ULP que viene por defecto en el Eagle y se llama “panelize.ulp” lo único que debemos hacer es ejecutarlo y listo. 

Decidí hacer la publicación de cómo utilizar este ULP en español para algunas personas que se les complica entender el ingles (No es que yo sea un máster pero algo entiendo jejeje o en su defecto usen el traductor). Bueno el proceso requiere algunos pasos así que empecemos a explicar. 

Vamos a trabar sobre el archivo FT232 – PANELIZAR que hemos creado antes así que les recomiendo iniciar con eso hacer la copia como se menciono anteriormente, después abrimos el archivo y estamos listos para iniciar. 

Hacemos click sobre el icono Run ULP y tecleamos o buscamos y seleccionamos panelize.ulp después damos click en Abrir. 


Nos abrirá la siguiente ventana, donde nos dice el nombre con el que aparecerá la capa (125_tNames) y el color que se verá (Yellow) y una larga lista de etiquetas y coordenadas que copiara, en fin solo tenemos que dar click en Execute. 


Inmediatamente notamos el cambio que se ha hecho en nuestro diseño, ya que todas las etiquetas quedaron de color amarillo, con esto ahora si ya podemos hacer mas copias del mismo circuito. 


Ahora solo hacemos click en Layer Settings… y tenemos que desactivar las capas 25 tNames y 26 bNames y también observamos que aparece la capa 125 _tNames que nos debemos de asegurar que este activada. 


Ahora procedemos otra vez a dar click Copy y luego Group, seleccionamos el circuito notaremos que se resalta y luego damos click derecho y seleccionamos Copy: Group y colocamos la réplica en el lugar deseado y claro cómo podemos ver en la siguiente imagen ambos quedan iguales. Repetimos este paso la cantidad de veces deseadas. 


Ya solo queda seleccionar las capas adecuadas y hacer las impresiones encontré una foto que por cierto no corresponde al circuito del ejemplo pero se aprecia el efecto que deseamos tener. 


Espero que esto les haya gustado y ayude en su diseño, si tienen dudas pues exprésenlas y tratare de responder lo más pronto posible.

18 junio 2016

Vúmetro RGB (Parte 9) - Algunas consideraciones

Saludos a todos!! En esta ocasión explicare o responderé algunas dudas que me han hecho llegar, ya sea en comentarios o a mi correo (en su momento he respondido a todos), bueno primero deben de saber que los avances los hago en mis ratos libres (lo mismo pasa con las publicaciones) así que tardan un poco en aparecer en el blog espero y se entienda.

Una cosa importante que preguntan es ¿Como estoy alimentando el circuito? Aunque ya lo comente en varias ocasiones voy a tratar de explicar un poco mas sobre esto, en su tiempo dije que que estoy usando el regulador de 12 volts a 2A que venia con la tira de LEDs, bueno a continuación un dibujo de como esta conectado.

Explicare brevemente que hice, el regulador alimenta directamente el controlador RGB, originalmente este viene con un cable de 4 hilos, 3 de estos son para los colores Red, Green y Blue, el ultimo es VCC o +12V , positivo o como gusten llamarlo, bueno yo abrí la controladora y le soldé un cable mas que sera el GND, tierra o negativo (elección de ustedes como llamarlo) esto es importante ya que lo requiere la circuiteria del vumetro, ejemplo es el LM3916, los transistores, etc. Lo realice así ya que tanto la controladora como el circuito de control estarán oculto dentro de la base del vumetro, así que lo único que saldrá sera un conector para el eliminador, llamenlo estética o presentación, solo les comento como lo he realizado, A continuación una foto de la controladora, el cable negro es el que le he soldado.

Espero que con eso se comprenda lo del voltaje, otra de las preguntas es ¿Como esta conectado las tiras al circuito? Bueno creo que para responder esto hace falta checar la teoría sobre tiras de LEDs RGB (de eso no hable en ningún avance), aquí les delo un enlace a una pagina amiga "Inventable" donde se da una explicación sobre esto. Como dije en otra publicación, cada barra de acrílico tiene un tramo de tira de 3 LEDs y como vamos a usar la misma controladora para todas las barras, es necesario que la conexión de estas se hagan en paralelo, por lo tanto lo que se interrumpirá en cada barra serán los 12V, es ahí donde entra el acoplo a transistores mostrada anteriormente. En la siguiente imagen se muestra lo que les comento:


Esto es todo por el momento, son las 2 preguntas que me hicieron con mas frecuencia y creí conveniente explicarlo, hubo otras como ¿Vas a compartir los archivos para crear PCBs?¿Porque mi circuito no funciona? ¿Cuando sera que lo vas a terminar? Bueno como dije antes avanzo poco a poco pero todo el material disponible va a aparecer en el blog. Dudas, comentarios, sugerencias, inquietudes, traumas, etc. Dejarlas y tratare lo mas pronto posible responderlas...

< Ver Parte 8 > < Ver Menu > < Ver Parte 10 >