martes, 29 de mayo de 2012

Primer Tutorial Eagle: Creando un nuevo proyecto

Hola, en esta oportunidad presentamos el primer tutorial de Eagle, este programa fue creado para realizar diseños de PCB (placas electrónicas) de forma fácil, sencilla y con un acabado muy profesional, este programa tiene muchas versiones pero en esta oportunidad trabajaremos con la versión 6, también recomendamos la versión 5.11 que trabaja muy bien, en la página oficial hay una versión de prueba que tiene algunas limitaciones, también pueden adquirir la licencia de manera legal.

Ahora iniciaremos este tutorial creando un nuevo proyecto en Eagle, una vez instalado el programa vamos a abrirlo y lo que veremos será lo siguiente:


que es lo primero que muestra el programa, en esta parte vamos a activar las librerías del programa (en el caso que estén desactivadas), lo hacemos de la siguiente manera.

Vamos a la parte superior izquierda y damos click en LIBRARIES:


y esperamos unos segundos, una vez eso aparecerá lo siguiente:


los nombres de la parte izquierda son las librerías que contiene el programa, estas librerías contienen los diferentes componentes que podemos utilizar en nuestros diseños.

Vemos puntos verdes y puntos grises pequeños, estos indican que librerías están activadas y cuáles no: gris significa desactivado y verde significa activado.

Para activar las librerías faltantes (he tenido experiencias con alumnos que me decían que las librerías estaban todas desactivadas y la manera de activarlas es igual a la que mostramos) solo se le da click en el botón gris para que pase a verde, lo veremos a continuación con la librería "20f001n.lbr": 


Ahora le daremos click al botón gris y pasará a verde:


como vemos la librería ya esta activada, pero hay ocasiones donde todas las librerías están desactivadas, darle click a cada una sería demasiado molesto, para solucionar eso hacemos lo siguiente: vamos click derecho a LIBRARIES y click en USE ALL.


de esta manera se activarán todas las librerías, esta opción de activar y desactivar librerías existe para usar solamente las que nos sean útiles, personalmente prefiero dejar todas activadas aunque sea un poco molesto buscar luego los componentes, todo es cuestión de comodidad.

Ahora pasaremos a crear un nuevo proyecto, para esto cerramos LIBRARIES dando click nuevamente en el icono correspondiente, luego vamos a la parte superior izquierda y damos click en FILE - NEW - SCHEMATIC: 


y en la pantalla aparecerá algo parecido a lo siguiente:


que es donde realizaremos nuestros diseños, antes tenemos que configurar cosas como las unidades que usaremos, la pantalla limpia como ven o podemos seleccionar con puntos o líneas para tener una referencia, para ello hacemos lo siguiente:

Nos dirigimos a la parte superior izquierda y damos click en el icono GRID:


y tendremos algo similar a esto:


y modificaremos la parte donde dice inch por mm, en STYLE podemos hacer que en el espacio de trabajo salgan líneas o puntos para tener una referencia, si prefieren dejarlo tal como esta, ósea limpio, dan la opción de off donde dice DISPLAY de no ser así eligen si quieren puntos o líneas y dan click en on. Personalmente prefiero las líneas así que las selecciono y damos click en OK.

NOTA: Es importante no cambiar el número de SIZE ni de MULTIPLE y tampoco el de ALT, esto puede ocasionar que no podamos colocar componentes en nuestro espacio de trabajo, esto lo explicaré con más detalle en otro tutorial, por ahora no lo cambien.

Una vez configurado a mi gusto tenemos lo siguiente:


la causa por la que el número que contiene SIZE cambió es porque pasamos de pulgadas (inch) a milímetros (mm) y no porque yo lo haya cambiado, no cambien esta opción aun por favor, damos click en OK y tenemos lo siguiente:


una pantalla con cuadros y con unidades de medición en mm, lo podemos ver en la parte superior izquierda:


Respecto a los comandos de la parte izquierda los iremos explicando conforme avancemos con los tutoriales, por ahora pongo una imagen de ellos:


Por último guardamos nuestro proyecto en la carpeta de nuestra preferencia, eso sería todo por ahora, espero que todo sea sencillo para ustedes y nos sigan en los próximos tutoriales.

Atte.
AyM solution

lunes, 28 de mayo de 2012

Tercer Tutorial C18: Compilado

Ahora aprenderemos como compilar un proyecto para que nos brinde sus respectivos archivos con los cuales podremos programar un microcontrolador, podremos simular y otras cosas mas.

En el tutorial número 2 nos quedamos en crear el proyecto y añadimos el 18f4550.lkr, el p18f4550.h y creamos un archivo fuente FIEE.c y lo adherimos al proyecto en la carpeta "source files", si hicimos todo eso entonces esta bien.

Ahora seguramente hemos creado el proyecto y lo cerramos, para abrirlo vamos a la carpeta contenedora del proyecto, en mi caso es FIEE:


le damos doble click y accedemos a ella, entonces veremos algo parecido a esto:


vamos a la parte superior y agrandamos la sección donde dice "tipo" para ver completo el tipo de archivos que tenemos y le damos doble click a "Microchip MPLAB.Project":



y ya tenemos de regreso nuestro proyecto, ahora vamos al archivo FIEE.c, si esta cerrado lo abrimos dando doble click en FIEE.c que esta incluido en la carpeta "source files", y ponemos lo siguiente:


el "#include" es una directiva del preprocesador, normalmente empiezan con el # adelante, esta directiva se utiliza para añadir archivos a otros archivos para que también sean compilados y utilizados.

Hay dos maneras de adherir un archivo:

#include "archivo", las comillas se usan cuando es un código creado por nosotros e incluido en la carpeta donde se guarda el archivo.

#include <archivo>, los (< >) se usan cuando es un código del sistema (no creado por nosotros).

Usualmente estos archivos que añadimos contienen protitipos de las funciones por eso son llamadas archivos de cabecera (header files).

La línea de código "void main" indica que ella es una funcion principal y definimos dos partes:

void: hace referencia a una función que no retorna dato alguno.

main: indica que es una función principal, en un código solo podemos tener una función principal y debe ser de este tipo.

Lo que encierran los "{}" es el código que se añade a cada función, una función solo obedecerá a lo que está contenido en ella, estos corchetes nos permiten separar el código, hacerlo mas ordenado y así poder ubicar de manera mas sencilla algún fallo en la programación.

Ahora solo faltaría compilar el programa, para ello damos click en el siguiente icono:


y en OUTPUT que esta usualmente en la parte inferior, si no aparece podemos dar click en view - output y aparecerá, vemos lo siguiente:


el BUILD SUCCEEDED indica que el programa ha sido compilado de manera exitosa, un mensaje distinto a este indica que algo ha fallado.

Se debe tener en cuenta que el programa nos indica que solamente que hubo un error de escritura de cogido, de sintaxis o de error de direccionamiento mas no errores lógicos que se puedan ocasionar por algún mal calculo, es por esta razón que hay que tener cuidado al programar y revisar bien el código.

Eso sería todo por ahora, espero les haya gustado y si tienen algún problema no duden en escribirnos al blog en la caja de comentarios de este tutorial y si tienen dudas trataremos de atenderlas.

Atte.
AyM solution

domingo, 27 de mayo de 2012

Segundo Tutorial C18: Creación de un proyecto en MPLAB


Presentamos el segundo tutorial sobre el lenguaje de programación C18, en esta oportunidad les mostramos como crear un proyecto en MPLAB luego de su instalación.

Primero creamos una carpeta en nuestro escritorio o en otro lugar, en esta carpeta estará guardado todo el proyecto que vamos a crear, en mi caso yo he creado la carpeta FIEE:


luego abrimos el MPLAB que ya debe estar instalado en nuestra PC, la imagen que verán es parecida a la siguiente:


en la parte superior hay un icono verde llamado NEW PROJECT, damos click ahí:


y aparecerá la siguiente ventana:


llenamos los espacios en blanco, en PROJECT NAME ponemos un nombre sencillo como FIEE (personalmente prefiero ponerle el mismo nombre de la carpeta que contiene el programa) y en PROJECT DIRECTORY  vamos a poner la dirección de la carpeta donde estará almacenado el projecto, para ello damos click el BROWSE y buscamos la carpeta FIEE:


y damos click en ACEPTAR y debe aparecer algo similar a lo siguiente:


damos click en OK  y estará listo, el siguiente paso es dar click en el icono superior CONFIGURE - SELECT DEVICE:


y tendremos los siguiente:


esta ventana es muy importante ya que en ella indicaremos el microcontrolador PIC en el que trabajaremos, en DEVICE escogemos el microcontrolador, como pueden ver en esta ventana ya está seleccionado.

En PROGRAMMERS vemos cuales son los programadores compatibles con este dispositivo (PIC18F4550), esto es muy importante ya que vemos que el Pickit2 es compatible, entonces podemos seguir con el proyecto.

Una vez escogido el dispositivo damos click en OK y será todo, ahora le damos click en PROGRAMMER - SELECT PROGRAMMER - PICKIT2:


Ahora damos click en PROJECT - SELECT LANGUAGE TOOLSUITE:


y aparecerá una ventana donde se escogerá el compilador que usaremos, en este caso ya esta seleccionado el "Microchip C18 Toolsuite":


en el caso de no estar seleccionado C18 o sea el caso que lo seleccionan en "ACTIVE TOOLSUITE" pero les aparece con una aspa roja quiere decir que no está direccionado, dan click en BROWSE y van a la carpeta donde fue instalado el "MICROCHIP C18", luego a BIN y seleccionan MMC18.

Una vez hecho lo anterior le dan click en OK y será todo, ahora dan click en VIEW - PROJECT y en VIEW OUTPUT y aparecerá lo siguiente:


el mensaje de error que aparece en OUTPUT se debe a que hemos puesto que el programador sera el PICkit2 pero no lo hemos conectado, cuando lo conectemos y compilemos este error no aparecerá, este error no impide que simulemos en PROTEUS así que no hay de qué preocuparse.

si el orden no es exactamente igual no hay que preocuparse, eso es del gusto de cada uno, ahora creamos el archivo con extensión .c de la siguiente manera: click en FILE - NEW y aparecerá lo siguiente:


por ahora escribimos cualquier cosa dentro de ese archivo y lo guardamos EN LA CARPETA QUE HEMOS CREADO AL PRINCIPIO, EN ESTE CASO ES "FIEE", USTEDES LA GUARDAN DONDE LES CORRESPONDE.

Notar que lo estoy guardando con el mismo nombre que he creado la carpeta y la extensión que le estoy poniendo es .c porque será un archivo fuente, eso es muy importante así que no olviden ponerle el ".c"


Una vez escrito correctamente el nombre del archivo le damos click en GUARDAR.

Ahora añadimos el archivo al proyecto de la siguiente manera: damos clic derecho en SOURCE FILES y click izquierdo en ADD FILES:


buscamos la carpeta donde guardamos el proyecto, en mi caso es FIEE y seleccionamos FIEE.C y de damos click en abrir:


con esto debemos tener lo siguiente:


Ahora le damos click derecho a LINKER SCRIPT y click izquierdo en ADD FILES y vamos a la carpeta donde se instalo el compilador "Microchip C18" (en mi caso es C:MCC18) y entramos a la carpeta LKR y buscamos "18f4550.lkr" y le damos click en abrir:


y debemos tener algo parecido a esto:


Ahora le damos click derecho a Header Files y click izquierdo en ADD FILES


vamos a la carpeta donde se instalo el compilador "Microchip C18" (en mi caso es C:MCC18) y entramos a la carpeta "h" y buscamos "p18f4550.h" y le damos click en abrir:


deberíamos tener algo parecido a esto:


Por ahora esto es todo, ya tenemos lo necesario para empezar a poner algunas líneas de cógido, este tutorial se hizo muy largo debido a que no quise omitir ningún paso y asi no queden huecos que despues ocasionen problemas, espero puedan hacer todo y si tienen problemas o dudas coméntenlo en el blog.

Atte
AyM solution

sábado, 26 de mayo de 2012

Primer Tutorial C18: Herramientas necesarias

Presentamos el primer tutorial sobre el lenguaje de programación C18, en este tutorial trataremos paso a paso como programar microcontroladores de la empresa Microchip de la familia PIC18F, en este caso utilizaremos el PIC18F4550 disponible en las tiendas de electrónica de Lima Perú.


Figura 1: MPLAB IDE


La herramientas a usar son un entorno de programación (IDE) y un compilador, el IDE a utilizar es el " MPLAB IDE " y para la compilación utilizaremos el " microchip C18 " , ambos programas son distribuidos por la microchip en su página, el "MPLAB IDE" está en versión gratuita y el C18 hay una versión de prueba.
Siempre es bueno utilizar un simulador para poder probar nuestras programaciones, hacer pruebas y ultimar proyectos, en este caso se utilizara en ocasiones el " SIMULADOR PROTEUS ".


Figura 2: Simulador Proteus


Espero sigan este blog con los tutoriales, dentro de nuestro alcance esperamos poder contribuir con su desarrollo y crear interés por estos temas que son tan necesarios para un profesional en electrónica y ramas afines.

Atte.
AyM solution

Nunca he programado, por donde empiezo?


Uno de los problemas de muchos estudiantes universitarios es que desean aprender a programar pero no saben por donde empezar, hay tantas marcas de microcontroladores, muchos lugares donde enseñan, muchos lenguajes de programación y no saber por cual empezar, AyM solution de esfuerza por llegar a aquellos que saben programar y quieren aprender algo mas pero sin dejar de lado a aquellos que tienen las ganas de empezar en el mundo de los microcontroladores.

Para empezar a programar nosotros proponemos empezar con un microcontrolador PIC ya que en nuestro país (Perú) y en muchos otros países se encuentra muy difundido, no habrá problemas al momento de comprar uno, se puede programar en multiples lenguajes con assembler, CCS, C18, C30, etc. y la información que encontramos en Internet al respecto es muy variada.

Figura1: Microcontrolador PIC

Hay muchos microcontroladores PIC en el mercado de las gamas 16F y 18F, nosotros recomendamos el uso del PIC18F4550 ya que se pueden hacer múltiples proyectos, al ser de la gama 18 tiene muchas prestaciones (SPI, I2C, USART, USB, ADC, TIMER, PWM, COMPARADORES, etc).


Para poder programar el PIC hay que tener un quemador, para los PIC usamos el Pickit2 que tambien se encuentra en las tiendas de electrónica de Perú, este dispositivo es necesario para programar el microcontrolador cuando queramos probar ciertos códigos.

Figura 2: Pickit2 clone
Para complementar el PIC y permitir su funcionamiento de necesita una fuente de alimentación de 5v, un cristal oscilador de 20MHz (puede ser de menos frecuencia pero usaremos este en los tutoriales), capacitores, protoboard, resistencias, leds y algunos componentes que seran necesarios para aprender a programar.

Sabemos que hay placas entrenadores donde se puede programar directamente usando un bootloader para poder quemar el PIC, pero creemos que es ideal empezar desde cero, saber en que consiste cada cosa paso a paso, luego también empezaremos con diseños de PCB y explicación de bootloaders.

Esperamos que puedan adquirir los materiales para poder empezar con los tutoriales, cualquier consulta pueden hacerla en la caja de comentarios y gustosos los ayudaremos y responderemos.

Atte.
AyM solution

lunes, 21 de mayo de 2012

Diseño básico de estructura para sistema independiente de encoders

Muchas veces en el diseño de robots o de proyectos con microcontroladores se debe hacer uso de una estructura cuyo diseño debe ser realizado con precisión ya que de lo contrario la programación realizada en el microcontrolador recibirá datos no coherentes.

Este es el caso del proyecto principal de AyM solution: Robot para el transporte de productos con control de trayectoria mediante principios odométricos. Dicho proyecto es un robot que en su programación se implementa un PID para realizar las correcciones del camino realizado por el robot, para tal fin tiene un lazo de retroalimentación gobernado por dos sensores encoder que se muestra en el siguiente gráfico:

Figura 1: Sensor Encoder HEDS 5700
Dicho sensor es un encoder incremental optico de 500 tics por revolucion (en una vuelta completa da 500 pulsos) . Para su uso tiene 4 entradas: 2 canales de alimentación VCC y GND y dos canales de datos (dos tren de pulsos desfasados en 90 grados).

Este sensor va enlazado con el desplazamiento, hay dos maneras de conectarlo a la estructura:
      1. En el eje del motor.
      2. En un sistema independiente.

Las ventajas del primer montaje es menor tamaño de estructura, menor hardware y un montaje mas preciso y las desventajas es el riesgo de lecturas erróneas ya que al momento de que las llantas del robot patinen (giren pero aun así el robot no se mueve) a causa de pisos resbaladizos u otras causas el encoder también girará mas no el robot (este no se desplazará) y el encoder dará una información equivocada (dirá que el robot si se mueve pero esto no es correcto).

Las desventajas del segundo montaje es que requiere de un mayor tamaño de estructura, mas hardware (ya que hay que implementar el encoder con sus respectivas llantas) y mayor cuidado en el diseño de las piezas que acompañaran al encoder (requiere que las piezas no se doblen y que sean del mismo tamaño) y las ventajas son que al ser un sistema independiente de los motores los sensores toman el movimiento real del robot (su desplazamiento) ya que al patinar como el ejemplo anterior los sensores no se moverán ya que no están conectados directamente al motor por lo tanto dará información mas precisa (el robot no se mueve, pero los motores si, al estar en un sistema independiente detecta el movimiento del robot mas no de los motores).

Por esto se selecciona el montaje 2, ahora se presentan las piezas realizadas para este sensor y su montaje:

Figura 2: Sistema Independiente de Encoders realizado en SolidWorks

Atte.
AyM solution

domingo, 20 de mayo de 2012

Tutorial Robot sumo 1 - Movimiento (PWM)


El primer paso para programar un robot sumo es controlar su movimiento. En este primer tutorial se explica como hacerlo paso a paso, desde como configurar el PWM hasta hacer la lógica de movimiento de los motores del robot.


Comunicacion serial dsPIC con PC (Labwindows)


Dentro de la gama alta de los microcontroladores de microchip encontramos a los dsPIC. Los dsPIC tienen la denominación de DSC (controlador digital de señales), lo que vendría a ser una combinación entre un microcontrolador (MCU) y un DSP (procesador digital de señales). La gran ventaja de este microcontrolador es su velocidad de procesamiento gracias a que posee dentro de arquitectura la poderosa MAC (Multiply and accumulate) la cual permite hacer multiplicaciones en una sola instrucción. Además eldspic posee una gran cantidad de módulos (adc, pwm , uart, i2c, spi, timer, can, etc) con los cuales se puede implementar muchas aplicaciones, especialmente en el área de procesamiento de señales y control.   

En esta oportunidad les dejo el link de un paper sobre comunicación serial entre un dspic y la pc mediante Labwindows junto con el código fuente de ambos. 

Labwindows es un entorno de desarrollo de aplicaciones de monitoreo, control, adquisición de datos, etc desarrollado en lenguaje ANSI C, el cual permite realizar interfaz usuarios. Labwindows tiene un gran similitud a Labview ya que ambos pertenecen a National Instruments, tienen las mismas funciones, solo se diferencian en el lenguaje ( C vs G). 

Diseño de PCB para robot con control de trayectoria

Hola muchachos, en esta oportunidad les traemos el diseño de PCB para proyecto "Robot para el transporte de productos con control de trayectoria mediante principios odométricos".

La PCB esta diseñada en el programa EAGLE, la selección de este programa fue debido a que permite el diseño de PCB de una manera sencilla y rápida, posee una gran variedad de librerías, si falta una librería la pagina de dicho programa permite descargar librerías nuevas, permite el diseño de librerías personalizadas de cualquier componente y es multicapas.

Para este proyecto se utilizo una PCB de 8cm x 8cm en doble capa, la placa de control posee un dsPIC30F4011 como core y una parte de potencia gobernada por los puentes H L6203 (uno para cada motor), estos puentes H soportan un máximo de 5amp para unos motores de 2.6amp.

La selección del DSC es debido al procesamiento de señales digitales realizadas en el debido a las operaciones matemáticas en el desarrollo de odometría y control PID.

La fuente de alimentación tiene un L5973D regulado a 7v de salida, estos son la entrada de un LM1117 de 5v de salida, esto se hace para obtener una señal de 5v lo mas lineal posible, estos 5v son la entrada de otro LM1117de 3.3v de salida para alimentar la tarjeta microSD.

Eso es todo por ahora, luego colocaremos mas detalles sobre este diseño de PCB, ahora los dejo con el esquemático y el board.

Parte 1

Parte 2

Parte 3

Parte 4
Parte 5


Parte 6

Parte 7


Atte.
AyM solution.