14 may 2011

MANIPULAR EL DIBUJO PARA QUE LO LEA EL PIC

Esta la primera parte de un tutorial para poder visualizar imagenes en el lcd grafico.

Para este tutorial necesitamos:
  • Bitmap2lcd
  • una imagen cualquiera ya sea en JPG o BMP

Se supoone que ya sabemos como hacer primitivas con el driver que se utiliza para manejar el GLCD, todo hasta aqui perfecto.

Pero no MAMES con esas chingadas primitivas, no se pude hacer nada, ¿ que hago para que mi proyecto se vea chingooon?.

R=

Al menos que seas una nalga manejando el driver, puedes hacer muchas cosas, aunque no maravillas.

pero no jodan manejar el driver para sacar una imagen que se vea chingona en el LCD, es una huevaaada grande, para eso mejor agarramos ya una imagen ya hecha y la transformamos la cargamos al pic, y se visualiza.

pero como jodidos hago esto?

ahhh para esto se utiliza un pequeño programa llamado bitmap2lcd, que lo que hace es transformar la imagen original en una imagen con el pixelaje que pueda soportar el lcd, además de convertirla en hexadecimal.

como consigo el programa?
JODANSE CONSIGUENDOLO. YO NO VOY A PONER EL LINK PARA QUE LO DESCARGUEN.

Una vez conseguido el jodido programa y haberlo registrado para que te den la clave para poder usarlo. Lo abrimos y vemos algo asi.



la jodida ventana que tiene los colores azul, rojo y amarillo. son los directorios en donde tienes tus imagenes (azul), en donde se van a generar tus tablas de constantes(rojo), y en donde se guardan los documentos de los proyectos(amarillo).

Una vez configurada las carpetas, se va al menú de Lcd Matix para agarrar la resolucion de nuestro lcd



agarrada la resolucion nos disponemos a buscar nuestra imagen, para ello se utiliza el botón que esta encerrado en un circulo rojo y aparece la ventana que esta encerrada en un circulo cafe.



en este caso agarre una imagen de un dibujo bastante agradable a la vista, desgraciadamente no pude poner a una chica de 18 añitos desnuda ya que al convertirla en la resolucion para nuestro lcd se perdía la imagen completamente y no se distinguía

ya seleccionada la imagen te parece un recuadro que te dice que si quieres adaptarlo para la resolucion de tu lcd



le dices que si y ya.

ahora ha aparecido otra puta ventana, llamada "file and enconder manager", y es la que genera nuestro archivo para utilizarlo en el micro.



por default te da una cierta niveles de tonalidades de grises en la imagen y aveces dependiendo del tipo de imagen no se adapta al tipo de tonalidades por default y se ve asqueroso, tu la puedes modificar moviendo la barra que se encerrada, adaptandola como mejor te paresca.



una vez hecho hesto le das pegar, por que si empiezas a trabajar sobre la imagen y no has pegado esta desaparece

ahora si la has cagado y despareció la imagen y no aparece nuevamente o no puedes componer la pendejada que has hecho, pues le das a close artwork and table of constant, y pues te la mamas por que tienes que cargar de nuevo la imagen



ya ha quedado la imagen como has querido, ahora vamos a generar los archivos que vamos a cargar al pic, para eso aprietas al botón de configurations and preferences (esa que tiene un martillo y una llave cruzada) y pones todo igualito como esta en la imagen, y le das al botón de hide windows para ocultar la ventana



luego en la ventana de file and enconder manager picas la botón de encode cavas in a table constant ( la que tiene la mano apuntando una hoja) para generar el código y al lado de ese botón se encuentra el botón para salvar el archivo.



y ya esta ya tenemos el cochino codigo de para cargar en el pic.

INTRODUCCION ALA LIBRERIA PARA LCDS GRAFICOS EN PIC C (CCS)

materiales:

  • pic 18f4550
  • lcd generico ( en este caso utulice el LGM12641BS1R)
bien se hace un nuevo proyecto en "ccs c", y se incluye la libreria "glcd.c", tambien otras librerias para lcd graficos que se uso es parecido e incluso el mismo.

como en este tutorial solo vamos a ver que funcione el lcd, no se necesita un gran y complejo programa para ver su uso.

#include "C:\Documents and Settings\Goken\Mis documentos\Picc\grapix.h"
#include "glcd.c"
char voltText[] = "Volts";
void main()
{
glcd_init(on);



glcd_text57(0,0, voltText,1,ON);

en este caso el programa solo escribe en la pantalla la palabra volt, ya que el driver para el lcd tiene un comando que es el glcd _text (luego explico como utilizarlo), y se veria asi:


el driver glcd.c tiene unos comandos en el cual si lo escribes en el programa puedes hacer figuritas.

  • glcd_init(mode)
esta funcion debe estar antes de empieces a utilizar el lcd, ya que es la funcion de llamada o inicio, si no lo pones el programa no llama al driver y no puedes visualizar nada en la pantalla, loque va dentro de los parentesis (), puede ser cambiado por on ò off, on si quieres utilizar la pantalla y off si no quieres que funcione.

  • glcd_pixel(x,y,color)
esta funcion lo que hace solo es pintar un pixel, "x" e "y", son las coordenadas donde se encuentra el pixel que quieres pintar por ejemplo x=1 e y=8, y el color es si quieres que l pixel este se pinte o no, poniendo on u off.

  • glcd_line(x1,y1,x2,y2,color)
esta funcion para dibujar un linea y basicamente es lo mismo que el otro, tiene coordenadas para saber donde va empezar y que coordenas quieres que este el otro extremo de la linea, y color si quieres que se pinte o no

  • glcd_rect(x1,y1,x2,y2,fill,color)
esta funcion es para dibujar un rectangulo, esta coordenada de una punta del rectangulo y la otra punta extrema del rectangulo, fill es para si quieres que el rectangulo este relleno poniendo yes y si relleno es no, color es para dibujarla poninedo on u off.

  • glcd_bar(x1,y1,x2,y2,width,color)
este sirve para dibujar una barra, como simpre coordenadas de inicio y fin, el ancho de la barra (width) ahi se pone un numero, el ancho depende de la resolucion de tu lcd y la posicion de que esta tu barra, color si quieres que se pinte o no

  • glcd_circle(x,y,radius,fill,color)
sirve para pintar un circulo, las coordenadas en donde se encuentra el centro, el tamaño del radio, si se rellena o no y si se pinta.

  • glcd_text57(x,y,textptr,size,color)
con es ta funcion se escribe texto, x e y para saber en donde se va a empezar a escribir, el textptr, el texto a mostrar, size tamaño de la letra, color si quieres que se vea o no.

el textptr es una variable que se puede cambiarse, en el ejemplo de al principio pusimos una variable de tipo char y que es lo que contenia. tambienb se puede escribir usando antes un comando llamado sprintf y usando el comando del glcd_text57.

char voltText[] = "Volts";
glcd_text57(0,0, voltText,1,ON);

  • glcd_fillScreen(color)
esto es para rellenar toda la pantalla de negro o para limpiar la pantalla.