159
http://www.ucontrol.com.ar/forosmf/programacion-en-java/tutorial-java-pic- usb-(primeros-pasos)/?action=printpage uControl Articulos, circuitos, tutoriales y Revista uControl => Tutoriales, guias y cursos en uControl => Mensaje iniciado por: geronimox en Enero 29, 2009, 06:04:28 Título: Tutorial: JAVA + PIC + USB (Primeros pasos) Publicado por: geronimox en Enero 29, 2009, 06:04:28 Hola! Para alentar la programacion en Java, y a pedido de Waldillo, escribo este mini tutorial para crear nuestra primera aplicacion en Java y comunicarnos con nuestro PIC via USB usando la interfaz JPICUSB. Pueden ser muchos pasos, pero es porque estan demasiado detallados, asi a quienes no hallan usado antes la IDE Netbeans, entiendan al toque. Empezemos! Creando una aplicacion JAVA + JPICUSB Herramientas: JPICUSB 1.0 http://divideandconquer.com.ar/dyq/2009/01/jpicusb- comunicacion-pic-usb-usando-java/ NetBeans IDE 6.5 http://www.netbeans.org/downloads/start.html? platform=windows&lang=en&option=javase&version=6.5 A tener en cuenta: -Todo archivo Java debe contener una clase cuyo nombre sea identico al nombre del archivo -La clase que contenga el metodo estatico publico "public

Tutorial Pic Usb Java

Embed Size (px)

Citation preview

Page 1: Tutorial Pic Usb Java

http://www.ucontrol.com.ar/forosmf/programacion-en-java/tutorial-java-pic-usb-(primeros-pasos)/?action=printpage

uControl

Articulos, circuitos, tutoriales y Revista uControl => Tutoriales, guias y cursos en uControl => Mensaje iniciado por: geronimox en Enero 29, 2009, 06:04:28

Título: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Enero 29, 2009, 06:04:28

Hola!Para alentar la programacion en Java, y a pedido de Waldillo, escribo este mini tutorial para crear nuestra primera aplicacion en Java y comunicarnos con nuestro PIC via USB usando la interfaz JPICUSB.Pueden ser muchos pasos, pero es porque estan demasiado detallados, asi a quienes no hallan usado antes la IDE Netbeans, entiendan al toque.Empezemos!

Creando una aplicacion JAVA + JPICUSB

Herramientas:

JPICUSB 1.0 http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/

NetBeans IDE 6.5 http://www.netbeans.org/downloads/start.html?platform=windows&lang=en&option=javase&version=6.5

A tener en cuenta:

-Todo archivo Java debe contener una clase cuyo nombre sea identico al nombre del archivo

-La clase que contenga el metodo estatico publico "public static void main(String[] args)", puede ser usada comoMain Class (equivalente al main de C)

-Todos los metodos de la inerfaz jpicusb son estaticos, por lo que no es necesario crear una instancia de la clase para utilizarlos.

Pasos a Seguir:

1_ Creamos una carpeta donde alojaremos nuestra aplicacion, en mi

Page 2: Tutorial Pic Usb Java

caso D:\jPicUSB_Test\ 2_ Instalamos y Ejecutamos NetBeans IDE 6.5 3_ Creamos un nuevo Proyecto

o 3_1_ File -> New Projecto 3_2_ Choose Project

Esto nos presenta una ventana donde la IDE nos presenta que tipo de proyectos puede crear.Despues de Leer la descripcion de los posibles proyectos, nos inclinamos sobre "Java Application" de la categoria "Java"

o 3_2_ Name and LocationAca proporcionamos la ubicacion y nombre de nuestro proyectoProject Name: yo eleji JavaUSBProject Location: D:\jPicUSB_Test\ la carpeta que creamos para alojar nuestro proyecto en el paso 1_Nota: La IDE creara una carpeta D:\jPicUSB_Test\JavaUSB para alojar las fuentes de la aplicacion.

o 3_3_ Presionamos en Finish asi NetBeans crea el esqueleto para nuestro proyecto

4_ Extraemos jpicusb1.0.rar en nuestra carpeta D:\jPicUSB_Test\Asi obtenemos el directorio D:\jPicUSB_Test\jpicusb1.0\ que contiene todas las librerias e interfaz para poder comunicarnos con nuestro PIC

5_ Agregamos la libreria jpicusb a nuestro proyectoo 5_1_ En el arbol de nuestro Proyecto, presionamos con el boton

derecho sobre Libraries y elejimos la opcion Add JAR/Folder.

Page 3: Tutorial Pic Usb Java

o 5_2_ Elejimos el archivo jpicusb.jar ubicado en la carpeta que acabamos de extraer, en mi caso D:\jPicUSB_Test\jpicusb1.0\jpicusb.jar

o 5_3_ Ahora podemos corroborar que la libreria esta ubicada en arbol de nuestro proyecto bajo el nodo LibrariesAhora nuestra aplicacion puede tomar 2 caminos diferentes.Podemos escribir una aplicacion sin interfaz grafica (consola) o

Page 4: Tutorial Pic Usb Java

con interfaz grafica.Si quisieramos hacer una aplicacion sin interfaz, hubieramos usado C, asi que nos decantamos en la 2da.

6_ Borramos el archivo Main.java porque no nos sirve.o 6_1_ Boton derecho sobre Main.java -> Delete

7_ Creamos una interfaz con la JFC Swingo 7_1_ Boton derecho sobre el paquete javausb que esta en "Source

Packages" y nos dirijimos a New -> Other...

o 7_2_ Nos dirijimos a la categoria "Swing GUI Forms"o 7_3_ Y despues de leer las  descripciones nos inclinamos sobre

"JFrame Form"

Page 5: Tutorial Pic Usb Java

o 7_4_ Rellenamos la informacion sobre el JFrameClass Name: Principal

o 7_5_ Y listo, le damos en finish, y vemos como nos creo un nuevo archivo Principal.java

8_ Importamos la clase de la interfaz jpicusb. Esto lo hacemos en cada clase en la que vallamos a utilizar la interfaz jpicusb.

o 8_1_ Editamos el archivo Principal.java dirijiendonos a la pestaña "Source"

o 8_2_ Debajo del texto "package javausb;" agregamos nuestro import (como un include de C) "import jPicUsb.*;"

Page 6: Tutorial Pic Usb Java

o 8_3_ Cambiamos la carpeta donde nuestro proyecto se ejecutara cuando probemos nuestra aplicacion usando el IDE. Esto lo hacemos asi nuestra aplicacion encuentre el archivo jpicusb.dll

8_3_1_ Boton derecho sobre la raiz de nuestro proyecto "JavaUSB" y elejimos la opcion Properties.

8_3_2_ Nos vamos a la seccion "Run" y en "Working Directory" elejimos la carpeta jpicusb1.0, en mi caso D:\jPicUSB_Test\jpicusb1.0\

Page 7: Tutorial Pic Usb Java

9_ Iniciamos el vinculo con la interfaz llamando su metodo load(), lo que nos habilitara llamar a cualquier otro metodo. La llamada al metodo debe ser realizada solo una vez. Y puede ser llamada en cualquier lugar del codigo.

o 9_1_ Buscamos el constructor de nuestra clase "public Principal()" y agregamos la linea "iface.load();"En versiones de jpicusb mayores a 1.0, se debe capturar la excepcion lanzada por load, es decir que en vez de la linea "iface.load();" se deben agregar las siguientes lineas:        try{            iface.load();        }catch(Exception e){            System.out.println("Error al cargar jpicusb.dll.");            System.out.println(e.getMessage());            return;        }

Page 8: Tutorial Pic Usb Java

10_ Agregamos un Boton y un TextBox (por fin esto da frutos)o 10_1_ Nos dirijimos a la pestaña Design de Principal.java y en la

paleta de componentes, elejimos "Button" de la categoria "Swing Controls" y lo agregamos a nuestro JFrame

o 10_2_ Repetimos el paso anterior solo que ahora agregamos un Text Area. Luego de agregarlo, podemos cambiarle el tamaño.

o 10_3_ Cambiamos el texto de los componentes y la variable que los identifica.Texto del Boton: Elejimos el boton, presionamos F2 y escribimos su Label, yo puse "Comando FirmWare Version" a pesar de lo que se vea en la imagen (Boton) =P.Variable: Apretamos con el boton derecho sobre el boton y elejimos "Change Variable Name"

Page 9: Tutorial Pic Usb Java

Hacemos lo mismo para cambiar el nombre de la variable del "jTextArea1" a "texto".No le cambiamos el texto que contiene porque es al vicio.

11_ Agregamos codigo el codigo que se ejecutara al presionar el boton.Lo que haremos sera enviar el comando 99 al pic y el nos respondera con una adena de 6 bytes indicando la version de su firmware.

o 11_1_ Hacemos doble click sobre el boton para que nos lleve a la porcion de codigo que se ejecutara al hacerle click

o 11_2_ Agregamos el codigo necesario para que la respuesta del pic se escriba en el Cuadro de Texto llamado "texto"

    private void botonActionPerformed(java.awt.event.ActionEvent evt) {        //Creamos un arreglo de bytes de tamaño 64        byte[] out = new byte[64];        //agregamos el comando 99 en el primer byte del arreglo        out[0] = 99;        //configuramos el vid_pid del dispositivo asi podemos usar las funciones "rapidas" de la interfaz        iface.set_vidpid("vid_04d8&pid_000b");

Page 10: Tutorial Pic Usb Java

        //configuramos la instancia del dispositivo asi podemos usar las funciones "rapidas" de la interfaz        iface.set_instance(0);        try {            //iface.WriteRead(byte[] salida, int writeout, int readin, long timeoutmsec)            //Parametro 1: arreglo de bytes con los datos a enviar (out)            //Parametro 2: cantidad de bytes del arreglo que se enviaran via usb (1)            //Parametro 3: cantidad de bytes que se esperan de respuesta via usb (6)            //Parametro 4: tiempo maximo que se esperara al dispositivo en el envio y la recepcion (1 segundo)            //Retorna: arreglo de bytes con la respuesta del dispositivo usb            byte[] respuesta = iface.QWriteRead(out, 1, 6, 1000);            //convertimos el arreglo de bytes recibido en una cadena con codificacion utf-8            String data_in = new String(respuesta, "utf-8");            //verificamos que se hallan recibido datos            if (data_in.length() == 0) {                texto.setText(texto.getText() + "No se recibieron datos\n");            } else {                texto.setText(texto.getText() + "Datos recibidos:" + data_in + "\n");            }        } catch (Exception ex) {            System.out.println("ERROR:" + ex.getMessage());        }    }

12_ Ejecutamos y probamos el codigo.o 12_1_ Presionamos en el boton que tiene un Martillo, o

presionamos F11 para compilar nuestro codigo.o 12_2_ presionamos en el boton de Play, o presionamos F6 para

ejecutar nuestro codigo recien compilado.Pero ahora, NetBeans nos avisa que no puede encontrar la Main Class que nuestro proyecto tenia, pues en el paso 6 borramos el archivo Main.java que contienia el metodo estatico "public static void main()", pero que no cunda el panico, porque NetBeans nos avisa que encontro otra clase que tiene dicho metodo, y que puede ser usada como Main Class de la aplicacion, asi que le damos a OK para que la configure como Main Class y listo.

Page 11: Tutorial Pic Usb Java

13_ Tenemos nuestro proyecto corriendo...Y vemos algunas screens.

o 13_1_ Si presionamos el boton cuando el usb no esta conectado:

Page 12: Tutorial Pic Usb Java

o 13_2_ Si presionamos el boton luego de conectar el usb:

Bueno. Eso es todo.Este es el primer tutorial extenso que escribo, asi que espero que se entienda y alguien se anime a seguirlo jeje.Si tienen alguna duda las preguntas son bienvenidas.Si les intereso el tema de programar en Java con las JFC Swing, en internet hay mucha pero mucha informacion al respecto.Y les recomiendo que intenten porque es realmente facil.Si tienen conocimientos previos sobre programacion orientada a objetos, les sera mas facil todavia.

Saludos! Y bienvenidos al mundo Java =D

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Ariel en Enero 29, 2009, 06:06:29

 :o TREMENDO TRABAJO  :o

Felicitaciones! Agendado para darle una leida a fondo.  ;D

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Waldillo en Enero 31, 2009, 09:46:55

Page 13: Tutorial Pic Usb Java

Hola geronimo, lo primero quisiera felicitarte esta enorme aportacion y de paso dar cuerda al hilo. He descargado la aplicacion que me parece muy buena, del estilo de eclipse, y bueno me he hecho la primera y obligada aplicacion HelloWorld de siempre. Ha sido mi primera experiencia con la programación orienta a objetos pura, aunque en este primer ejemplo poco de eso hay pero bueno. El caso es que me he cogido un libro en la biblioteca, concretamente "Introduccion a la programacion orientada a objetos con Java" Ed. McGrawHill que tenia un CD. Ese CD parece segun lo poco que me ha dado tiempo a leer que tiene una especie de paquete que lo llama javabook en el cual tiene una coleccion de clases utilizada en los ejemplos del libro.He intentado incluir ese paquete en mi proyecto y no lo hago bien. A continuacion te muestro mi codigo haber si hay algo mal.

Código:import javabook.*;

class MiPrimeraAplicacion{

     public static void main(String[] args)     {      VentanaPrincipal ventanaPrincipal      ventanaPrincipal=new VentanaPrincipal();      VentanaPrincipal.show();      }

}

Supongo que será algo de paths en el directorio del proyecto, add class o algo no?

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Enero 31, 2009, 01:54:29

Cita de: Waldillo en Enero 31, 2009, 09:46:55He intentado incluir ese paquete en mi proyecto y no lo hago bien. A continuacion te muestro mi codigo haber si hay algo mal.

Código:import javabook.*;

class MiPrimeraAplicacion{

     public static void main(String[] args)     {

Page 14: Tutorial Pic Usb Java

      VentanaPrincipal ventanaPrincipal      ventanaPrincipal=new VentanaPrincipal();      VentanaPrincipal.show();      }

}

Supongo que será algo de paths en el directorio del proyecto, add class o algo no?

Hola waldillo. Muchas gracias!Que bueno que hayas decidido por probar java!Precisamente, NetBeans es una de las competencias de Eclipse, hace un año probe Eclipse, pero al final me decante en Netbeans.Sobre tu problema:Antes de hacer un import, el paquete "javabook", tiene que estar en la lista de librerias vinculadas al proyecto.

Para vincularlas debes hacer exactamente lo mismo que el paso 5 del tutorial solo que debes elejir el archivo javabook.jar.Si en el cd no hubiera un archivo con ese nombre, fijate si no hay una carpeta de nombre "javabook", si a encuentras agregala como si fuera un .jar y como si estuvieras siguiendo el paso 5 del tutorial.

De esta forma, cuando compiles tu codigo, el paquete se vinculara a el, de esta forma al realizar un import javabook.*, la aplicacion java, buscara cualquier libreria o paquete de nombre "javabook" vinculada al proyecto, y agregara referencias en tu codigo a todas las clases de dicho paquete "javabook".Y bueno, de ahi en mas, las podes usar tranquilo.

Espero se entienda.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Waldillo en Enero 31, 2009, 03:30:22

Mi archivo javabook no es un .jar es simplemente una carpeta con los archivos de clase.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Waldillo en Enero 31, 2009, 03:43:05

Te muestro una captura de pantalla haber si me puedes echar una mano. Te lo

Page 15: Tutorial Pic Usb Java

agradecería mucho

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Enero 31, 2009, 04:06:19

Mmmm ya veo..Prueba en vez de agregar a tus librerias la carpeta C:\Users\Waldillo\Desktop\javabook, agregar la carpeta C:\Users\Waldillo\DesktopYa que Java esta buscando una carpeta llamada javabook y no la encuentra, solo encuentra un monton de archivos sueltos.Ojo, antes elimina lo que agregaste :PAsi deberia andar.Un detalle mas, para usar la funcion System.out.println() no necesitas de las clases que hay en javabook, pero seguramente para seguir los ejemplos dle libro si :PAh fijate en el otro post de jpicusb, estoy agregando un video de ejemplo.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Waldillo en Enero 31, 2009, 05:40:49

Ya ya la clase system es estatica. No he podido resolver el problema. Yo tengo por ejemplo un folder con un archivo nombre.class y otro con nombre.java, que es lo que debo insertar. Que hay que hacer para enlazar esa clase creada por mi? Seria bueno que si sabes que expliques como crear clases, guardarlas en carpetas y enlazarlas con el proyecto. Es lo que estoy intentando hacer y no me sale.Siento ser tan pesaico.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Enero 31, 2009, 09:48:35

Hola waldillo. Las preguntas no molestan, asi aprendmos todos =DTenemos varias formas de agregar paquetes y librerias a nuestros proyectos.

***Podemos agregar un jar (que no es mas que un zip), con las carpetas (representan los paquetes), y las clases dentro de las carpetas que representan las Clases :PEjemplo de el paquete javabook agregado en las librerias...(http://i44.tinypic.com/2vhvjh5.jpg)Como veras, el archivo javabookEd3.zip, tiene dentro la carpeta javabook, que Java la interpreta como un paquete.La carpeta javabook dentro tiene varias clases, que Java las interpreta como clases pertenecientes al paquete javabook.

***Podemos agregar un archivo .jar, que si intentas descomprimirlo con

Page 16: Tutorial Pic Usb Java

winzip o winrar, veras que es el mismo caso que el anterior.(http://i40.tinypic.com/rhtmqc.jpg)

***Podemos agregar una carpeta.Si agregamos una carpeta, java buscara carpetas dentro de ella, que representaran paquetes.Si agregamos la carpeta javabook, esta no tiene carpetas dentro, y menos una carpeta llamada javabook, por lo que la orden import javabook.*; (importar todas las clases del paquete javabook), nos da un error.Es por eso que si queremos que javabook aparezca como un paquete, tenemos que agregar la carpeta que contiene a la carpeta javabook. por ejemplo si tengo una estructura de directorios asi:(http://i41.tinypic.com/1zd3qzr.jpg)atencion a la carpeta que agrego a la lista de librerias. nota que agrego la carpeta padre de la carpeta javabook, asi java reconozca a javabook como un paquete.(http://i42.tinypic.com/2czub9h.jpg)

Jeje espero se haya entendido y puedas empezar con los ejemplos del libro por fin jajajacualquier duda, pregunta que no molesta!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Waldillo en Febrero 01, 2009, 06:08:21

Gero simplemente gracias. ;D Eres muy grande

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Febrero 01, 2009, 02:07:32

me alegro que te funcione =)Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: carmen en Febrero 12, 2009, 12:38:57

BUENAS A TODOS.hE SEGUIDO TODOS LOS PASOS PARA INTERTAR COMUNICARUN PIC VIA USB Y AL EJECITAR LA APLICACION EN JAVA ME SALE EL SIGUIENTE ERROR.Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: C:\Users\USUARIO\jPicUsb_Test\jpicusb1.0\jpicusb.dll: Error al iniciar la aplicación; la configuración en paralelo no es correcta. Consulte el registro de eventos de la

Page 17: Tutorial Pic Usb Java

aplicación para obtener más detalles        at java.lang.ClassLoader$NativeLibrary.load(Native Method)        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1778)        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1674)        at java.lang.Runtime.load0(Runtime.java:770)        at java.lang.System.load(System.java:1005)        at jPicUsb.iface.load(iface.java:164)        at javausb1.Principal.<init>(Principal.java:20)        at javausb1.Principal$2.run(Principal.java:116)        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

TE AGRADECERIA MUCHO SI PUEDERAS AYUDARME.

MUCHAS GRACIAS DE ANTEMANO.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Febrero 12, 2009, 07:58:30

Hola carmen.Te comento que no probe la libreria en Windows Vista, asumo que deberia de andar.

Hoy actualize la libreria a la version 1.1, te recomiendo descargar la nueva version.  ::)La nueva version y futuras actualizaciones las podras encontrar aca, tambien podes encontrar un ejemplo:http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/ (http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/)

Page 18: Tutorial Pic Usb Java

Si actualizando la version sigue sin andar, proba copiando el archivo jpicusb.dll al contexto donde se ejecuta tu aplicacion.Por ej: si tu aplicacion se llama jPicUsb_Test.jar, copia la DLL a la misma carpeta que el jar.

Cualquier cosa, ya sabes, aca estamos para ayudar.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: carmen en Febrero 13, 2009, 09:18:14

Muchas Gracias por tu respuesta.

Pero llevo toda la mañana dandole vueltas a la aplicacion y el error que me da ahora es: Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: jPicUsb.iface.WriteRead(Ljava/lang/String;I[BIIJ)[B        at jPicUsb.iface.WriteRead(Native Method)        at jPicUsb.iface.QWriteRead(iface.java:159)        at javausb1.Principal.botonActionPerformed(Principal.java:99)        at javausb1.Principal.access$000(Principal.java:14)        at javausb1.Principal$1.actionPerformed(Principal.java:46)        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)        at java.awt.Component.processMouseEvent(Component.java:6134)        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)        at java.awt.Component.processEvent(Component.java:5899)        at java.awt.Container.processEvent(Container.java:2023)        at java.awt.Component.dispatchEventImpl(Component.java:4501)        at java.awt.Container.dispatchEventImpl(Container.java:2081)        at java.awt.Component.dispatchEvent(Component.java:4331)        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)        at java.awt.Container.dispatchEventImpl(Container.java:2067)        at java.awt.Window.dispatchEventImpl(Window.java:2458)        at java.awt.Component.dispatchEvent(Component.java:4331)

Page 19: Tutorial Pic Usb Java

        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

no se que mas hacerle y ademas como es viernes la cabeza no me da para mucho más.

Muchas gracias por la ayuda.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Febrero 13, 2009, 09:32:18

Hola carmen.Podrias poner el codigo de tu aplicacion?Asi puedo ayudarte mejor a solucionar el problema.Por lo visto, la libreria sigue sin poder ser cargada por java.En la nueva version, cuando ejecuutes el metodo iload(), debes capturar la excepcion, de esa forma sabras si se cargo o no la libreria.algo asi:Código:try{    iface.iload();}catch(Exception e){    System.out.println(e.getMessage()); //Hubo una excepcion al cargar dll. La libreria no funcionara}

De todas formas si nos facilitas el codigo y me contas que ide usas, capaz que lo solucionamos mas rapido.Y mucho mejor seria que pongas en un zip toda la carpeta de tu proyecto, asi vemos si la dll esta bien ubicada.Saludos!

Page 20: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: carmen en Febrero 13, 2009, 12:42:05

la exception ya me habia dando cuenta y esta ya capturada. Ahora te mando todo los que me pides.

Muchas gracias de antemano

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: carmen en Febrero 13, 2009, 12:48:53

la version que estamos usando es netbeans 6.1

El proyecto se llama JavaUSB1 y el proyecto esta en c:\Users\USUARIO\jPicUsb_Test y dentro esta todo lo que te mando en un punto rar

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Febrero 13, 2009, 01:42:17

Hola carmen.Probe con los fuentes que me enviaste, y la aplicacion funciona correctamente.Intenta copiar el archivo jpicusb.dll a la carpeta JavaUSB1, y cambia el contexto de ejecucion, pero esta vez dejalo vacio.Ve con el bot derecho en tu proyecto a: Properties -> Run  y borra lo que dice el campo Working Directory. Asi netbeans usa como contexto la misma carpeta que la del proyecto, (JavaUSB1) que es donde copiaste la dll.Cualquier cosa, aca estoy.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: carmen en Febrero 16, 2009, 06:42:12

Lo estas probando en windows vista?

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Febrero 16, 2009, 12:30:09

Hola carmen.Te tengo malas noticias.  :-\Estuve leyendo en el foro de microchip (http://forum.microchip.com/printable.aspx?m=274848 (http://forum.microchip.com/printable.aspx?m=274848)), que los drivers de

Page 21: Tutorial Pic Usb Java

Microchip para clases genericas de USB (el caso de jpicusb), funciona muy mal en vista. Y en la mayoria de los casos, no funciona. Hay una serie de vueltas que le dan al driver para que ande, pero desconozco del metodo  ???.Esto no se si seguira asi en la ultima version del driver, que es la que use para la libreria jpicusb. Pero segun lo que me decis, es asi.Pero bueno, gracias por hacerme abrir los ojos sobre los drivers de microchip.En unas semanas me pongo a trabajar en la migracion del proyecto a la libreria libusb, que es portable entre varios OS.http://libusb.wiki.sourceforge.net/ (http://libusb.wiki.sourceforge.net/)PD: Espero que no estes probando con una edicion de 64 bits de vista, pues la libreria esta compilada en un entorno 32bits

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: carmen en Febrero 16, 2009, 01:12:15

Muchas gracias, por todo. 

Pero justamente lo estamos probando con todo lo que indicas que no funciona. Si conseguimos solucionarlo por algun medio te lo indico.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Febrero 16, 2009, 01:42:18

Hola carmen, todavia estoy intentando leer mas sobre el tema vista + drivers de microchip.Asi quizas encuentre una solucion al problema.Te hago otra pregunta. Sigues obteniendo una excepcion al llamar el metodo iload()? Ya que en los fuentes que me pasaste, no haces nada con la excepcion capturada, lo que se traduce en no saber si hubo excepcion o no.Necesito saber si hubo excepcion o no al llamar iload(), asi puedo saber si la dll se esta cargando o no.Gracias por ayudarme con los problemas de la libreria.Saludos!

EDITO1: Disculpa que sea tan molesto pidiendote que intentes cosas, es que es la unica manera que tengo para encontrar el bug de vista. Posiblemente el bug se deba a sistemas multinucleo, si tu pc tiene un procesador con mas de 1 nucleo, por favor intenta dirijiendote a inicio->ejecutar:"msconfig"  y en la sección de "boot", "advanced options", selecciona 1 solo procesador y reinicia. Si el problema ya no existe, estamos mas cerca :PSaludos!

EDITO2: Nuevamente con otra consulta, podrias realizar un screenshot del

Page 22: Tutorial Pic Usb Java

mensaje de error que logeo vista en el Visor de Eventos? Quiza nos de mas informacion. Asi puedes encontrar el visor de eventos. http://windowshelp.microsoft.com/Windows/es-ES/help/a99f69c1-935f-4116-ba5f-33d8800ef9da3082.mspx (http://windowshelp.microsoft.com/Windows/es-ES/help/a99f69c1-935f-4116-ba5f-33d8800ef9da3082.mspx)Saludos de nuevo! Jeje

EDITO3: Buenas noticias. Por fin encontre algo sobre el error rarisimo que te da Vista. En este link:http://www.estupendamente.com/PlanetStratofftopic/2007/07/ (http://www.estupendamente.com/PlanetStratofftopic/2007/07/) bajo el titulo "MSVCP80D.dll error en Visual c++ 2005"asi que en unos dias procedo a recompilar la libreria pero desde un proyecto en visual studio, en modo release.El problema parece venir del modo en que el IDE que use (CodeBlocks), compila la libreria dinamica. Al parecer, me dice que lo hace en modo release, pero l hace realmente en modo debug. Lo cual verificare migrando el proyecto a visual studio.De todas formas, te agredeceria que me ayudes con las preguntas que te hice mas arriba, como para descartar.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: carmen en Febrero 17, 2009, 06:14:11

Vamos por partes:Necesito saber si hubo excepcion o no al llamar iload(), asi puedo saber si la dll se esta cargando o no.

Al capturar la excepcion me da el mensaje que no encuantra la libreria jpicusb.dll. Pero eso ya lo suponiamos pues el resto de errores que da se refieren a metodos de esa libreria. 

Disculpa que sea tan molesto pidiendote que intentes cosas, es que es la unica manera que tengo para encontrar el bug de vista. Posiblemente el bug se deba a sistemas multinucleo, si tu pc tiene un procesador con mas de 1 nucleo, por favor intenta dirijiendote a inicio->ejecutar:"msconfig"  y en la sección de "boot", "advanced options", selecciona 1 solo procesador y reinicia. Si el problema ya no existe, estamos mas cerca 

La aplicacion se estaba ejecutando con dos nucleos, pero al cambiarlo a uno nos sigue dando el mismo problema

Nuevamente con otra consulta, podrias realizar un screenshot del mensaje de

Page 23: Tutorial Pic Usb Java

error que logeo vista en el Visor de Eventos? Quiza nos de mas informacion

Al capturar el error del windows vista nos sale el siguiente mensaje en el visor de eventos:Error origen SideBySide  Id evento 33 :Error al generar el contexto de activación para "C:\Users\USUARIO\jPicUsb_Test\JavaUSB1\dist\jpicusb.dll". No se encontró el ensamblado dependiente Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8". Use sxstrace.exe para obtener un diagnóstico detallado.

Espero que te sea de ayuda toda esta informacion y estamos en contacto.

Muchas gracias

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Febrero 17, 2009, 10:20:26

Hola carmen!Ya casi ya casi jejeAhora si casi 90% seguro de que si instalas este paquete redistribuible de microsoft, todo se soluciona. Luego de instalar, reinicia por si las moscas...http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en (http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en)Y bueno, si esto no anda, solo queda migrar el proyecto a la ide de visual studio, asi el se encargue de las mejores opciones del compilador.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: carmen en Febrero 17, 2009, 12:43:04

Menos mal que no estaba entre el 10% que fallaba. Ya funciona al bajar el parche, muchas gracias.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Febrero 17, 2009, 12:50:31

Gracias a vos!Ya incluyo que es necesario instalar ese paquete de microsoft y que carga bien en

Page 24: Tutorial Pic Usb Java

vista 32.  ::)Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Febrero 25, 2009, 01:45:23

Hola Gero, muy bueno tu aporte, gracias, en este momente estamos manejando tu API, lo estamos simulando en proteus sin embargo no sabemos como escribirle un dato atraves del conector usb para que no los muestre en el virtual terminal, ya que segun un post tuyo en un foro, parece que lo hubieras hecho.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Febrero 25, 2009, 02:27:26

Hola umov.Para mostrar informacion en el virtual terminal, ademas de usar el usb, debes inicializar el rs232 usando la directiva:#USE rs232 (BAUD=9600,XMIT=PIN_C6,RCV=PIN_C7,BITS=8);luego conectas el virtual terminal de proteus a los pines C6 y C7.

Para enviar datos al virtual terminal, podes usar la funcion printfprintf("Data leida de USB: %s",usb_buffer);donde usb_buffer es lo que recibiste de la pc via USB.

Ni bien me haga un tiempito de los examenes de la U, voy a crear varias aplicaciones de ejemplo de uso de la libreria jpicusb.Ademas te adelando, que con Waldillo estamos por escribir un informe sobre la clase generica de usb, y su utilizacion en conjunto con java.Espero haberte aclarado alguna duda.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Febrero 25, 2009, 10:11:10

Hermnao mio te agradezco la orientacion, me voy a seguir tu concejo ya.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Febrero 25, 2009, 10:18:06

Ademas si puedo colaborar en lo del informe de la clase generica del usb en java, me avisan.

Page 25: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Febrero 26, 2009, 12:27:37

hola gero,

hicimos lo que nos pediste en cuanto el rs232, pero aun asi sigue sin funcionar, aunque debe funcionar eso para escribir en la virtual terminal, sin embargo no sabemos como escribir desde proteus en el usbconn para que el PIC arroje una de las dos respuesta posibles (version de firmware ó secuencia de los led´s).

El plano  y el mensaje que genera el registro de simulacion son:

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Febrero 26, 2009, 12:36:16

Hola umov!Antes de poder simular USB en proteus, debes instalar los drivers de usb de proteus.Los podes encontrar por ahi tirados en la carpeta del proteus.Luego de instalar esos drivers, una vez que quieras simular, vas a notar que te salta el cartelito de windows de nuevo hardware encontrado, y en esa instancia debes instalar los drivers de microchip para el pic 18f4550 ( creo que los incluyo en el rar de jpicusb 1.1)Si no estan los drivers de microchip juntoa  jpicusb 1.1, me avisas asi los agrego.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Febrero 26, 2009, 04:03:13

Gracias nuevamente hermano.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: alfapts en Febrero 27, 2009, 01:38:05

Hola Gero.

Podiras subir el driver, que pide windows cuando se conecta el pic a la PC porfavor.Gracias

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: alfapts en Febrero 27, 2009, 02:54:44

Page 26: Tutorial Pic Usb Java

Hola carmen

Porfavor me podrias decir como solucionaste el error de que no te cargaba la libreria jpicusb.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: alfapts en Febrero 27, 2009, 03:27:14

muchas gracias gero por tu aporte, exelente proyecto, ya solucione el driver y ya pude cargar la libreria gracias

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Febrero 27, 2009, 03:36:24

Jeje me alegro xD

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Febrero 27, 2009, 11:57:01

Hola gero,

nuevamente con otra inquietud, ya desarrollamos los pasos que nos indicaste ayer, y la aplicación demo que trae el proteus corre normal con el PDFSUSB.EXE en modo demo, sin embargo ahora cuando corremos la nuestra que esta basada en el montaje (el plano que te mandamos anteriormente) para que corriera con tu programa, hacemos los siguientes pasos:

1. damos play en la simulacion en proteus2. conectamos la terminal usbconn en la misma simulacion3. abrimos la aplicacion PDFSUSB.EXE, luego seleccionamos en la pestaña Bootload y en el combo Box seleccionamos PICDEM FS USB 0 (Boot).4. Quedan habilitados los otros botones en la aplicacion y luego seleccionamos Execute, luego de esto la aplicación PDFSUSB.EXE se bloquea (interpretamos esto ya que no nos responde por un largo tiempo) siendo la unica manera de desbloquearla dandole stop a la simulacion de proteus.

No sabemos si es que debe existir la manera de conectar exactamente PDFSUSB.EXE con tu aplicación y así ver el funcionamiento total.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Febrero 27, 2009, 03:11:00

Page 27: Tutorial Pic Usb Java

Hola umov.Creo que estamos un poco desviados xPLos drivers que provee proteus, son para que el programa pueda crear un puerto usb virtual al conectar el terminal usbconn en las simulaciones.Luego, cuando el pic tiene el firmware cargado y corriendo, y mediante el usbconn (y el puerto usb virtual creado), requiere una enumeracion en el sistema, windows detecta que no tiene los drivers necesarios para el dispositivo que se esta enumerando.Alli es cuando entran en juego los drivers de microchip.Yo no desarrolle la aplicacion PDFSUSB que trae consigo proteus, es mas, ni se como funciona. Solo se que solo funciona con el hard y firmware que la acompaña. Es por eso que si realizas tu propio diseño de hard, no va a funcionar.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: alfapts en Marzo 02, 2009, 01:51:50

hola Gero.Porfavor me podrias orientar como hago una dll, no se si nos conectamos por msn o gmail, gracias

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 02, 2009, 01:28:12

Hola alfapts.Yo me guié de esta web para crear la DLLhttp://www.inonit.com/cygwin/jni/helloWorld/Si necesitas mas ayuda, chiflá

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: alfapts en Marzo 03, 2009, 12:12:00

gracias Gero, estaremos en contacto, voy a tratar de hacer para Java y Labview.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: kal_el en Marzo 03, 2009, 06:07:13

Hola que tal, tengo un problemilla y espero que me puedas ayudar y no causarte muchas molestias, estaba probando tu aplicacion y hice el diseño en proteus lo ejecute pero luego me apararece en windows el mensaje de "nuevo hardware encontrado", necesito instalar un driver adicional? (Estoy trabajando en vista)

Page 28: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 03, 2009, 06:14:18

Hola kal_el.No es molestia  ;)Los drivers de microchip los podes bajar de aca.http://rapidshare.com/files/204724158/Driver_Microchip.rarDescomprime el rar y cuando vallas a instalar, decile a win que busque los drivers ahi.Al parecer, a otro usuario, la libreria si le funciono en vista. Asi que, deberia andarte.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: kal_el en Marzo 03, 2009, 10:03:32

Hola de nuevo, ya baje los drivers, y cuando me los pedia le di la direcion de estos pero tuve un pantallazo azul, alguna idea de que pueda hacer. Saludos y gracias

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 04, 2009, 04:44:15

Hola kal_el.Lo siento pero con ese problema no puedo ayudarte.Los drivers que te pase, son los originales de microchip.Asi que no tengo la mas palida :ghost: idea del porque de la pantalla azul.Lo unico que te puedo recomendar es que actualizes windows, muchas veces eso soluciona estos problemas.Si tienes novedades, nos cuentas.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: kal_el en Marzo 04, 2009, 04:54:14

Listo ya funciona, lo que pasa que tenia mal instalado un driver de mi lap, pero con una pero con una reinstalacion del driver ya funciono, mil gracias por todo.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 04, 2009, 05:16:52

Jeje es impresionante como esas cosas pueden trare grnades conflictos y uno

Page 29: Tutorial Pic Usb Java

nunca llegar a darse cuenta porque no anda :PMe alegro q hayas solucionado el problema de la bsod :smiley:Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Marzo 08, 2009, 08:20:41

Hola!!

Estoy intentado seguir tu tutorial con el NetBeans, que por cierto, permiteme decirte que lo tuyo no tiene ni nombre, increible trabajo, dedicación y ganas de ayudar a los demás, tanto por el pedazo de tutorial que te has marcado, como por toda la ayuda y soporte desinteresado, que estás prestando en este foro. Como decimos por aqui: "mas dejao flipao".Te comento mi problema a ver si sabes cual puede ser la solución, estoy usando el NetBeans 6.5, junto con jPicUSB1.1, mi problema está que al lanzar la aplicación me dice que no encuentra las librerias dll, todavía no he conectado el PIC, lo he ejecutado sólo para comprobar que me ejecutaba bien, he probado a poner el working directory en Run, cogiendo el rar descomprimido, tambíen he probado a ponerlo en la carpeta principal del proyecto, pero en ningún sitio lo encuentra.Por si te sirve de ayuda...uso Windows XP.

Muchas gracias

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 08, 2009, 04:59:37

Hola Dididito.Bienvenido al foro!Muchas gracias por el aliento.Hay un usuario, wirry,  :laugh: que tiene tu mismo avatar ???Puedes ejecutar tranquilamente la aplicacion sin conectar el pic, pues la aplicacion lo unico que hace es cargar la interfaz con la DLL, que luego se comunicara con el pic cuando se lo ordenes.Descarga la nueva version de la interfaz y de la libreria.Te cuento que hice unas modificaciones a la interfaz, y ahora, ademas de avisarte que no encontro la dll, la interfaz te avisa donde la esta buscando.Asi de esta forma te aseguras que el archivo jpicusb.dll esta donde debe ir.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Marzo 08, 2009, 05:17:33

Page 30: Tutorial Pic Usb Java

No tengo muy claro de la interfaz de la que me estas hablando. Es la del ejemplo que hay en este post?La libreria la descargo de tu web no?

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 08, 2009, 05:34:29

Si, la libreria la descargas de mi web. Y sigues el ejemplo de este post, solo que al agregar la libreria a netbeans, agregas la nueva version 1.1.1Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Marzo 08, 2009, 06:09:54

Ya he puesto la nueva libreria y sigue sin funcionar....  :(Me dice la ruta en la que esta buscando (buen detalle que has añadido), y en dicha ruta el archivo está, pero no lo encuentra.Voy a probar a poner una ruta más sencilla, porque la ruta es muy larga, y en algún que otro programa me he encontrado con el problema que al ser la ruta muy larga me daba algunos errores.Si se te ocurre otra posibilidad de cual puede ser el error.Muchas gracias de nuevo

Un saludo

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Marzo 08, 2009, 06:12:47

Nada, he cambiado la ruta y sigue sin funcionar, este mensaje es el que me ha aparece:

Interfase jPicUSB 1.1.1 Cargada08-mar-2009 22:11:08 picUsb.interfaces.mainProgram <init>GRAVE: nulljava.lang.Exception: No se encontro la libreria jpicusb.dll en C:\NetBeansProjects\JavaUSB\

Y el archivo te puedo asegurar que lo he copiado en esa carpeta, no entiendo porque no lo encuentra... :'(

Page 31: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 08, 2009, 09:42:48

Hola Dididito.Raro que no encuentre la libreria :SSi puedes, comprime la carpeta JavaUSB y subela a rapidshare, y pasa el vinvulo, asi puedo ver el proyecto, aver si encuentro algo mal.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Marzo 09, 2009, 04:37:58

Muchisimas gracias tio, esta tarde (hora española, ahora mismo son las 9:00am) a las 16:00 lo haré. Pero lo subire a megaupload que en rapidshare no tengo cuenta.De verdad que te agradezco muchisimo la ayuda.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Marzo 09, 2009, 12:21:39

Hola Gero,

Compañero ya pudimos correr la simulación de tu aplicación en proteus satisfactoriamente, sin embargo nos abarca otra inquietud, ya que, en el entorno en netbeans, nos dirigimos al icono del martillo (Clean and Building Project) con el objetivo de crear el archivo .jar de la aplicación, que luego de eso se encuentra alojada en la carpeta "dist" del directorio de trabajo (package). Ahora en ese momento:

1-) si netbeans este abierto la aplicación corre sin inconvenientes desde allí mismo,2-) por otro lado, cuando netbeans esta abierto o cerrado, este .jar también abre pero no corre (no responde a ningún evento programado),3-) por otro lado, si el mismo archivo .jar lo copiamos llevándolo a cualquier otra localización de la PC, este ni si quiera abre.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Marzo 09, 2009, 12:56:48

Hola Gero,

Aqui tienes el archivo: http://www.megaupload.com/?d=3YD6UF5I

Espero que tu o alguien pueda ayudarme.

Page 32: Tutorial Pic Usb Java

Muy agradecido

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 09, 2009, 02:42:28

Buenas!!! Respondo:

Dididito: Malas noticias, descargue el proyecto, y corre sin problemas en mi pc. La verdad que no se porque no carga la libreria en tu PC.Prueba cargar la libreria con este codigo.. reemplazando el anteriorCódigo:        try {            // Function to be able to call the methods from jPicUsb library,            // defined as jpicusb.dll            iface.load();        } catch (Exception ex) {            Logger.getLogger(mainProgram.class.getName()).log(Level.SEVERE, null, ex);            try {                System.load((new File(".")).getCanonicalPath() + System.getProperty("file.separator") + System.mapLibraryName("jpicusb"));            } catch (IOException e) {                Logger.getLogger(mainProgram.class.getName()).log(Level.SEVERE, null, e);            }        }

Te advierto que esto no es como deberia cargarse la libreria, sino que es un tipico manotazo de ahogado.

umov: Me alegro que hayan podido correr la aplicacion  :laugh:Vamos por partes, con los items que preguntaste1) Si netbeans esta abierto, y el proyecto es ejecutado desde netbeans, netbeans establece como Run Path el directorio del proyecto. Y como asumo (ya que segun nos comentas, funciona bien) que la libreria jpicusb.dll esta en el path del proyecto, funciona debidamente.2)Si ejecutamos el jar desde el explorador de windows, ya no esta netbeans para que cambie el Run Path, asi que ahora el Run Path es igual al path en el que se encuentra nuestro jar, asi que la libreria va a ser buscada en el mismo path que el archivo jar.Es decir, que lo solucionamos copiando el archivo jpicusb.dll a la carpeta en que se encuentra el archivo jar de nuestro proyecto.Nota: Que netbeans este abierto o no al momento de ejecutar el jar desde el explorador de windows, no afecta en nada.3)Si copiamos nuestro jar a otra carpeta, y lo ejecutamos en la nueva ubicacion desde el explorador de windows, este no abre debido a que no encontro el paquete jpicusb.jar, que esta ubicado en la carpeta lib.Es decir que tambien hay que trasladar junto con el jar, la carpeta lib a la nueva

Page 33: Tutorial Pic Usb Java

ubicacion.Luego de hacer esto, el programa abrira, pero no funcionaran los comandos, debido a lo tratado en el punto 2)  ;)

Asi que repasando de nuevo, si queremos distribuir nuestra aplicacion, debemos copiar el archivo jpicusb.dll a la carpeta dist, y luego copiar la carpeta distnueva ubicacion, y ponerle el nombre que uno quiera.Luego al ejecutar el jar dentro de esta carpeta, todo deberia funcionar bien  :bang:

Espero haber aclarado las dudas, y que se haya entendido algo  ???Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Marzo 09, 2009, 03:06:13

Joder, pues si a ti te funciona sin problemas si que son malas noticias.He probado lo que me has pasado, y sigue sin funcionar.Puede ser porque me falten por ejemplo los drivers del PIC para windows?? O porque me falle algo en el netbeans, la versión de la JDK o la JRE es importante??, porque yo estoy usando las últimas.Please help me... :(Alguna otra sugerencia??

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 09, 2009, 03:31:57

Mmm nopUso XP 32bits y netbeans en su ultima versionY tambien las JDK y JRE al dia.Ademas, los drivers de microchip no son necesarios para cargar la dll.Es un problema de la JVM misma me parece.Si se me cruza alguna idea, te chifloSaludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Marzo 09, 2009, 03:51:39

Muchas gracias.

Realmente no sé cual puede ser el error, he probado a ejecutar en el ordenador de un amigo, y también le funciona.

Si ves la luz dimelo please, mandame un mail o escribeme aqui o lo que sea!!!

Page 34: Tutorial Pic Usb Java

Muchas gracias en serio.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 11, 2009, 03:16:44

Hola Dididito.Te tengo una preguntita.Por casualidad leiste detenidamente el post en mi blog de donde se descarga la libreria??Porque quiza te salteaste la linea donde explica que en algunos casos, es necesario instalar las Runtimes de Visual C++.Si no las instalaste proba la liberia despues de instalar las runtimes que bajas de aqui:http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=enSi ya las habias instalado, seguimos en la nada, y sin saber el porque no la puedes cargar.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Marzo 12, 2009, 05:31:48

Hola Gero,

Pues no, no los instale, pensaba que sólo tenían utilidad en el ejemplo de tu blog.En cualquier caso, como estaba muy desesperado, y como tarde o temprano lo tenia que hacer, he formateado mi laptop, lo cual ha sido rapido, tenia demasiada mierda en el ordenador.He reinstalado todo (no he instalado las runtime de C++) y ahora todo funciona.No entiendo porque, el caso es que funciona. Ahora empezaré a sacarle todo el jugo a esas pedazo de librerias que has hecho.

Otra pregunta aparte, ahora si yo programo mi PIC (uso el 18F4550), tengo que meter dentro del PIC alguna libreria en particular, o tengo que instalar algún driver en mi PC).

Muchas gracias

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 12, 2009, 05:43:21

 :laugh: Me alegro que te funcione!

Page 35: Tutorial Pic Usb Java

Y tambine me alegro que la libreria haya sido el detonante para na buena limpieza de pc que nunca viene mal jeje.Quiza instalaste una version de windows que ya traia las runtimes :S jeje, lo bueno, es que anda!Ahora en el 18F4550 debes utilizar funciones que te den acceso a su capacidad USB.Podes usar el compilador C18 de microchip, que trae todas estas funciones en un paquete llamado stack usb.O tambien podes usar el compilador CCS que es el que yo uso, que tambien trae su propia version del stack usb.Cuando conectes el PIC a la PC via USB, y el pic trate de enunmerarse, windows te pedira los drivers, y alli le metes los drivers de microchip (los colgue en uno de los comentarios de mi blog), y listo!Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Marzo 19, 2009, 07:27:22

Hola Gero,

Te escribo para preguntarte a ti o si alguien lo ha hecho, que exponga un minitutorial de como conectarse con el PIC y el PC (Java) mediante USB pero esta vez en vez desde el lado del PC desde lado del PIC.Lo que me comentaste que habias que hacer del stack de USB de CCS.

De la misma forma, aquel que lo haya hecho, que ponga otro pequeño tutorial, de como usar tu libreria jpicusb mediante proteus y su usb virtual, porque lo he intentado, pero no me sale.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 19, 2009, 02:19:49

Hola DididitoAqui hay un codigo en ccs para pic18f4550 que deberia correr bien en proteus.http://rapidshare.com/files/206913119/jPicUsb_1.1.1_Led_Show_Demo.rarCuando me aga un tiempo quiza escriba un minitutorialSaludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: carmen en Marzo 20, 2009, 08:33:54

Hola Geromix, ha vuelto tu peor pesadilla... je je 

Page 36: Tutorial Pic Usb Java

Despues de pelearnos mucho con java no somos capaces a hacer que nuestro programa se entienda con el pic. Nuestro pic está continuamente enviando información al puerto usb (con un escaner de puerto usb vemos que esta llegando la cadena) pero no sabemos como hacer que la aplicacion java reciba esos datos.

el VID de nuestro pic es 1234 y el PID 0001, por lo que utilizamos iface.set_vidpid("vid_1234&pid_0001"). No hemos cambiado nada en set_instance (porque no sabemos lo que hace realmente) pero no obtenemos la información que manda el pic y tampoco salta ninguna excepción.

Puedes ayudarnos? mil gracias.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 20, 2009, 02:31:00

jejeje Hola carmen.Quiza debas instalar los drivers para el nuevo dispositivo que definiste con esos vid_pid.En el archivo mchpusb.inf debes tuniar las lineas:Código:[DeviceList]%DESCRIPTION%=DriverInstall, USB\VID_04D8&PID_000B [DeviceList.ntamd64]%DESCRIPTION%=DriverInstall64, USB\VID_04D8&PID_000B

De todas maneras te recomiendo que cambies tu codigo en ccs, y uses los vid y pid del pic que usas.En el 18f4550 son esos de arriba.

Si me pasas un rar con tu proyecto java, y un esquema del circuito, puedo emular con isis aver que esta saliendo mal.Si no quieres hacerlos publico, puedes enviarlos a mi mail (g)[e]{r}(o)[n]{i}(m)

o {x} ARROBA gmail.com sin los ()[]{} obvo. Lo escrbo asi porque ya estoy hasta el cuello de spam  >:(

Ahora si no les molesta la pregunta, me da intriga... Que proyecto estan haciendo?Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Marzo 24, 2009, 01:56:09

hola Gero hermano como estas?

Page 37: Tutorial Pic Usb Java

Imaginate?...anteriormente estuvimos trabajando la aplicacion bajo XP y todo iba funcionando bien, sin embargo ahora se nos dio por cambiar a Windows 7 Beta y el netbeans 6.5 corre normal, el PIC C compiler 8.5 corre normal, el proteus 7.4 sp3 (ya estan instalados los drivers del Virtual USB) nos corre normal, pero al momento de ejecutar la aplicacion en netbeans, ejecutar la simulacion en proteus y simular alli mismo la conexion por medio del USBCONN, no nos aparece la ventana de nuevo hardware encontrado.........como concecuencia no interactua la aplicacion en java con la simulacion. ya estuvimos por los lados del panel de control y nos aparece el icono del dispositivo GERO USB, sin embargo esta con un triangulo amarrillo que dentro tiene un signo de admiracion.

te agradecemos.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 24, 2009, 04:33:19

Hola umov.Que coraje probar los pics en Windows 7  :laugh:Por lo visto. Los drivers que crean la conexion "USB Virtual" de proteus, funcionan de lujo.Pero el problema a simple vista, son los drivers de microchip, probablemente no sean compatibles con Windows 7.Si no te aparece la ventanita de "Nuevo Hardawe encontrado", podes forzar la instalacion de los drivers de microchip, dirijiendote al dispositivo con el triangulo amarillo (en administrador de dispositivos), y dentro de el, presionar en el boton "Actualizar controlador", todo esto asumiendo que Windows 7 tenga los mismos controles en las ventanas de los dispositivos. Luego, elijes los drivers de microchip para que los instale.Espero que te sirva.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Marzo 25, 2009, 02:57:21

HOLA GERO,

DE ANTEMANO GRACIAS POR SIEMPRE ESTAR TAN PENDIENTE.

ANTERIORMENTE NUNCA TE DIJE QUE EL ICONO "GERO USB" CON EL SIGNO DE ADMIRACION AMARILLO ESTABA EN EL ADMINISTRADOR DE DISPOSITIVOS,  Y ESOFUE ALGO QUE FALTO POR ACLARAR,....PUES ESE ICONO ESTA EN:

Page 38: Tutorial Pic Usb Java

PANEL DE CONTROL/HARDWARE Y SONIDO/DISPOSITIVOS E IMPRESORAS

CLARO QUE AHORA A DFIFERENCIA DE ANTES SI ESTA EN PANEL DE CONTROL MAGICAMENTE Y LO PUDIMOS FORZAR LA ACTUALIZACIO DE LOS DRIVRES.

GRACIAS.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: juanitoD en Marzo 26, 2009, 12:48:02

HEY , ESTA MUY BUENO ESTE TRABAJO, FELICITACIONES AHORA MISMO ME VOY A LA TAREA DE PROBARUN PROTECTICO QUE TENGO HACE UN TIEMPO

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: juanitoD en Marzo 26, 2009, 01:59:35

hey,Gero, una duda para manejar el usb de forma hid, este ejemplo del que se ha hablado un poco tambien funciona o solo sirve para bulk

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Marzo 26, 2009, 05:42:54

Hola juanitoD.Este ejemplo es para utilizar el PIC bajo una clase generica, pues instalamos los drivers de microchip.Las transferencias en modo bulk necesitan si o si de una driver, es decir que funcionan bajo una clase generica, a excepcion de la clase mass storage device o MSD, que puede utilizar transferencias bulk.Asi que si quieres usar la clase HID, no necesitas de drivers  ;) ni es el tema de este ejemplo  :azn:Nunca use la clase HID, a decir verdad, solo experimente con la clase generica usando los drivers de microchip  ???Cualquier cosa, no dudes en preguntar.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Abril 16, 2009, 01:40:51

Hola Gero, en estos momentos estamos intentando algo nuevo, esta ves nos disponemos a desarrollar una aplicacion derivada de la tuya, donde desde el momento de ejecutar el JFrame, haga la lectura automatica (sin depender de

Page 39: Tutorial Pic Usb Java

presionar un boton) y continuamente del dato que recibe del PIC para mostrarlo en el Text Field.

Hasta ahora el codigo que hemos desarrollado es este:////////////////////////////////////////////////////////////

package javaformulario;

import jPicUsb.*;

public class AccionesAula extends javax.swing.JFrame {

    public byte cmd_FW = 99;    public byte cmd_LED = 88;        /** Creates new form AccionesAula */    public AccionesAula() {

         initComponents();

        try {            iface.load(); //carga la libreria jPicUsb.dll                    } catch (Exception e) {            setTitle(e.getMessage());        }          iface.set_vidpid("vid_04d8&pid_000b");        iface.set_instance(0);

        //Creamos un arreglo de bytes de tamaño 64        byte[] out = new byte[64];        out[0] = 99;

        //do {            try {                        send_command(cmd_FW);   // ENVIA DATOS AL PIC PARA QUE LE ESCRIBA LA VERISON DEL FIRMWARE

            //iface.WriteRead(byte[] salida, int writeout, int readin, long timeoutmsec)            //Parametro 1: arreglo de bytes con los datos a enviar (out)            //Parametro 2: cantidad de bytes del arreglo que se enviaran via usb (1)            //Parametro 3: cantidad de bytes que se esperan de respuesta via usb (6)            //Parametro 4: tiempo maximo que se esperara al dispositivo en el envio y la recepcion (1 segundo)

Page 40: Tutorial Pic Usb Java

            //Retorna: arreglo de bytes con la respuesta del dispositivo usb            byte[] respuesta = iface.QWriteRead(out, 1, 6, 1000);            //convertimos el arreglo de bytes recibido en una cadena con codificacion utf-8            String data_in = new String(respuesta, "utf-8");            //verificamos que se hallan recibido datos            if (data_in.length() == 0) {                texto.setText(texto.getText() + "No se recibieron datos\n");            } else {                texto.setText(texto.getText() + "Datos recibidos:" + data_in + "\n");            }        } catch (Exception ex) {            System.out.println("ERROR:" + ex.getMessage());            }        //} while(true);    }

    public void send_command(byte command) {        byte[] out = {command};     // DECLARACION DE VECTOR TIPO BYTE        iface.QWrite(out, 1, 1000); // METODO QUE REALIZA UN ESCRITURA RAPIDA EN EL PUERTO USB DE UN BYTE,                                    // DE LOS VALORES DE OUT, SOLO EL BYTE 1 SE ESCRIBIRA DURANTE 1 SEG (1000 MILISEGUNDOS)    }

    private void SalirActionPerformed(java.awt.event.ActionEvent evt) {           

        dispose();        // TODO add your handling code here:    }

////////////////////////////////////////////////////////////////////////////////////////////////

Como veras, incluimos el codigo correspondiente al que estaba el boton, en el constructor principal dentro de la clase principal.

Asi como lo ves, el formulario se ejecuta y se muestra, pero solo lo hace una sola vez (envia datos y lee el puerto USB), ............para que estubiera continuamente ejecutandose, incorporamos este codigo dentro de un do-while, sin embargo cuando este se ejecuta el JFrame no aparece para nada.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Abril 16, 2009, 06:28:20

Hola umov,lo que esta pasando es que por culpa del ciclo do while, el proceso de tu aplicacion

Page 41: Tutorial Pic Usb Java

nunca sale del contructor  ??? jejelo que podes hacer es esto:Crear una inner class que extienda la clase TimerTask, en tu clase AccionesAula.Luego, en el constructor de AccionesAula, instanciar un timer que ejecute tu TimerTask  :laugh:algo asi:Código:package javaformulario;

import jPicUsb.*;import java.util.Timer;import java.util.TimerTask;

public class AccionesAula extends javax.swing.JFrame {

    public byte cmd_FW = 99;    public byte cmd_LED = 88;    Timer t;    miTickTask tarea;

    class miTickTask extends TimerTask {

        @Override        public void run() {            //Creamos un arreglo de bytes de tamaño 64            byte[] out = new byte[64];            out[0] = 99;            //Este metodo de ejecutara con la frecuencia especficada en el timer instanciado en el contructor de AccionesAula            try {

                send_command(cmd_FW);   // ENVIA DATOS AL PIC PARA QUE LE ESCRIBA LA VERISON DEL FIRMWARE

                //iface.WriteRead(byte[] salida, int writeout, int readin, long timeoutmsec)                //Parametro 1: arreglo de bytes con los datos a enviar (out)                //Parametro 2: cantidad de bytes del arreglo que se enviaran via usb (1)                //Parametro 3: cantidad de bytes que se esperan de respuesta via usb (6)                //Parametro 4: tiempo maximo que se esperara al dispositivo en el envio y la recepcion (1 segundo)                //Retorna: arreglo de bytes con la respuesta del dispositivo usb                byte[] respuesta = iface.QWriteRead(out, 1, 6, 1000);                //convertimos el arreglo de bytes recibido en una cadena con codificacion utf-8                String data_in = new String(respuesta, "utf-8");                //verificamos que se hallan recibido datos                if (data_in.length() == 0) {                    texto.setText(texto.getText() + "No se recibieron datos\n");                } else {                    texto.setText(texto.getText() + "Datos recibidos:" + data_in + "\n");                }

Page 42: Tutorial Pic Usb Java

            } catch (Exception ex) {                System.out.println("ERROR:" + ex.getMessage());            }        }    }

    /** Creates new form AccionesAula */    public AccionesAula() {

        initComponents();

        try {            iface.load(); //carga la libreria jPicUsb.dll        } catch (Exception e) {            setTitle(e.getMessage());        }

        iface.set_vidpid("vid_04d8&pid_000b");        iface.set_instance(0);

        tarea = new miTickTask();        t = new Timer();        t.schedule(tarea, 0, 1000); //Comenzar la ejecucion YA y repetir cada 1000 milisegundos

    }

    public void send_command(byte command) {        byte[] out = {command};     // DECLARACION DE VECTOR TIPO BYTE        iface.QWrite(out, 1, 1000); // METODO QUE REALIZA UN ESCRITURA RAPIDA EN EL PUERTO USB DE UN BYTE,    // DE LOS VALORES DE OUT, SOLO EL BYTE 1 SE ESCRIBIRA DURANTE 1 SEG (1000 MILISEGUNDOS)    }

    private void SalirActionPerformed(java.awt.event.ActionEvent evt) {        dispose();        // TODO add your handling code here:    }}

Bueno, capaz que halla algun error de tipeo, nada q no se pueda arreglar..Y espero que se entienda.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Abril 17, 2009, 02:02:04

Hola Gero, nuevamente te agradecemos por tu incondicional colaboración, te comentamos que confiamos que nada en la vida nos quedará grande, sin embargo tenemos que reconocer que somos aun novatos en cuanto a programación en JAVA se refiere, ya que la ultima explicacion que nos referiste no la entendimos.

Page 43: Tutorial Pic Usb Java

Es por eso que acudimos a "san google" y sus muy habilidosas capacidades para la busqueda, y encontramos una explicación aun más didactica y gracias conseguimos lo que buscabamos. A continuacion te copio el codigo que nos funcionó:

////////////////////////////////////////////////////////////////////////////////package javaformulario;

import jPicUsb.*;import java.util.Timer;import java.util.TimerTask;

public class AccionesAula extends javax.swing.JFrame {

    public byte cmd_FW = 99;    public byte cmd_LED = 88;        /** Creates new form AccionesAula */    public AccionesAula() {         initComponents();        try {            iface.load(); //carga la libreria jPicUsb.dll                    } catch (Exception e) {            setTitle(e.getMessage());        }        //configuramos el vid_pid del dispositivo asi podemos usar las funciones "rapidas" de la interfaz        iface.set_vidpid("vid_04d8&pid_000b");        //configuramos la instancia del dispositivo asi podemos usar las funciones "rapidas" de la interfaz        iface.set_instance(0);

        //Creamos un arreglo de bytes de tamaño 64        final byte[] out = new byte[64];        //agregamos el comando 99 en el primer byte del arreglo        out[0] = 99;

     TimerTask timerTask = new TimerTask()     {         public void run()         {            try {

Page 44: Tutorial Pic Usb Java

            send_command(cmd_FW);   // ENVIA DATOS AL PIC PARA QUE LE ESCRIBA LA VERISON DEL FIRMWARE

            //iface.WriteRead(byte[] salida, int writeout, int readin, long timeoutmsec)            //Parametro 1: arreglo de bytes con los datos a enviar (out)            //Parametro 2: cantidad de bytes del arreglo que se enviaran via usb (1)            //Parametro 3: cantidad de bytes que se esperan de respuesta via usb (6)            //Parametro 4: tiempo maximo que se esperara al dispositivo en el envio y la recepcion (1 segundo)            //Retorna: arreglo de bytes con la respuesta del dispositivo usb            byte[] respuesta = iface.QWriteRead(out, 1, 6, 1000);            //convertimos el arreglo de bytes recibido en una cadena con codificacion utf-8            String data_in = new String(respuesta, "utf-8");            //verificamos que se hallan recibido datos            if (data_in.length() == 0) {                texto.setText("");                texto.setText(texto.getText() + "No se recibieron datos\n");            } else {                texto.setText("");                texto.setText(texto.getText() + "Datos recibidos:" + data_in + "\n");                texto1.setText("");                texto1.setText(texto1.getText() +  data_in + "\n");            }                } catch (Exception ex) {                    System.out.println("ERROR:" + ex.getMessage());            }         }     };

      // Aquí se pone en marcha el timer cada segundo.     Timer timer = new Timer();     // Dentro de 0 milisegundos avísame cada 1000 milisegundos     timer.scheduleAtFixedRate(timerTask, 0, 1000);

    }

public void send_command(byte command) {        byte[] out = {command};     // DECLARACION DE VECTOR TIPO BYTE        iface.QWrite(out, 1, 1000); // METODO QUE REALIZA UN ESCRITURA RAPIDA EN EL PUERTO USB DE UN BYTE,                                    // DE LOS VALORES DE OUT, SOLO EL BYTE 1 SE ESCRIBIRA DURANTE 1 SEG (1000 MILISEGUNDOS)    }

    public void send_command(byte command, byte param1) {

Page 45: Tutorial Pic Usb Java

        byte[] out = {command, param1}; // DECLARACION DE VECTOR TIPO BYTE        iface.QWrite(out, 2, 1000);     // METODO QUE REALIZA UN ESCRITURA RAPIDA                                        // EN EL PUERTO USB DE DOS BYTE, DE LOS                                        // VALORES DE OUT, SOLO EL BYTE 2 SE ESCRIBIRA                                        // DURANTE 1 SEG (1000 MILISEGUNDOS)    }

    private void encender_led() {        byte LED = 0x00;        if (jCheckBox1.isSelected()) {            LED |= 0x01;        }        send_command(cmd_LED, LED); // ENVIA DATOS AL PIC PARA QUE ENCIENDA LOS LED´S    }

    private void SalirActionPerformed(java.awt.event.ActionEvent evt) {           

        dispose();        // TODO add your handling code here:    }                                     

    private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {

        encender_led();    }                                          

    private void texto1ActionPerformed(java.awt.event.ActionEvent evt) {        // TODO add your handling code here:    }

    /**    * @param args the command line arguments    */

    public static void main(String args[]) {        java.awt.EventQueue.invokeLater(new Runnable() {            public void run() {                new AccionesAula().setVisible(true);            }        });    }///////////////////////////////////////////////////////////////////////////////////////////

Como veras utilizamos las habilidades de las clases Timer y TimerTask que tu nos habias sugerido, pero a nuestro parecer, se utilizan de una manera distinta y funciona de verdad.

Page 46: Tutorial Pic Usb Java

Te adjunto una imagen de la inerfaz.

Sin embargo ahora como veras en la interfaz colocamos un CheckBox el cual le ordenara al PIC, que encienda o apague un led por el puerto D0, pero al momento de ejecutar la aplicación corre normal para el ciclo continuo de la temperatura que se visualiza en el TextField, pero mientras vallamos al CheckBox y lo checkeamos no responde si no de vez en cuando y otras veces no responde para nada (osea no enciende ni apaga el led).

No sabemos por que sera. Otra vez nos encontramos a punto de aprender algo nuevo y eso nos motiva.

Te agradecemos de antemano mi hermano.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Abril 17, 2009, 02:09:31

Hey hermano, no se si podra pero por que no nos incluyes en tu correo electronico, para estar más en contacto. Nos agrada que personas brinden ayuda sin animo de lucro alguno. Eso habla bien de una persona. Ademas nosotros estamos bastante animados con JAVA y nos disponemos a seguir desarrollando mas proyectos en este lenguaje.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Abril 17, 2009, 02:10:05

Aahhhh mi correo es [email protected]

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Waldo en Abril 21, 2009, 02:40:44

Hola geronimo la verdad kiero felicitarte por este gran aporte ya he estado buscando sobre esto y aki es donde me dan la libreria y aparte me dan un ejemplo. la verdad soy nuevo en este tipo de porgramacion de usb y kisiera saber si puedo utilizar con cualquier micro, y si no puedo con ke pics los puedo utilizar,tambien me gustaria saber si el archivo .dll ke esta en tu proyecto lo puedo utilizar para una aplicacion que consiste en enviar datos del micro al puerto usb y de alli a la aplicacion o para ke me sirve ese archivo la verdad estoy un poco confundido o si io tengo ke crear uno aparte para mi proyecto.y no se, si no te molesta que te agregue a mi correo.Saludos y gracias de antemano. :bang:

Page 47: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Waldo en Abril 21, 2009, 03:00:05

A y otra cosa se me paso^^ ke es lo ke esta en la carpeta Codigo C Picpara que sirven los archivos de esa carpeta. ;)

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Abril 21, 2009, 02:08:15

Hola umov.Me alegro que hallan encontrado la solucion en los Timers =D siempre son una buena opcion para tareas de pollingSobre el problema que tuvieron, no tengo la mas palida idea de porque no anda recibe los datos el pic :S, si averiguo algo no dudes q te comento al toque.Saludos!

Waldo: para usar el driver de microchip, necesitas si o si un chip que sea microchip, y que ademas implemente en su hardware el sub mismo. Es decir que cualquier chip usb de microchip te va bien. Por ej el que yo uso es el 18F4550.La dll de mi proyecto es para poder usar las apis del driver de microchip en una aplicacion java, pues java tiene graves problemas para cargar librerias dinamicas. Esta dll te permite comunicarte en las 2 direcciones, pc a chip y chip a pc.Empezar con usb de prepo me parece muy exagerado. Te recomiendo que realizes proyectos simples antes de adentrarte en usb. Por ejemplo, te recomiendo que aprendas bien el lenguaje C utilizado en CCS (ide y compilador usados en el proyecto de la carpeta Codigo C Pic).Podiras realizar proyectos con comunicacion serie antes de usb.Y desde luego, cuando ya te sientas confiado con CCS y PICs, deberias aprender leguaje Java para estar mas cerca de realizar el enlace usb con el Pic.Y por supuesto, si navegas el foro, veras que puedes sacarte varias dudas sobre Pics y CCS, pues hay varios manuales dando vueltas.1 Saludo!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Waldo en Abril 22, 2009, 02:35:02

Gracias gero.java lo se manejar el tu codigo ke subiste lo entendi muy bien bueno algunas cositas no como porke inicializas estos dos(cmd_FW, cmd_LED)  en 99 y 88 respectivamente y el set_vidpid y el set_instance no entendi porke llevan esos parametros, pero dije ke era nuevo en usb no en java^^ java lo se manejar, lo ke me ayudaria es entender utilizar la libreria jpicusb ke es lo ke puedo hacer con ella, aparte de leer datos y mandar datos, lo ke si no estoy familiarizado es con

Page 48: Tutorial Pic Usb Java

c^^ pero una amiga si, pero este es un proyecto ke estamos haciendo con un maestro ke no sabe java y nos pidio ayuda en hacer una aplicacion y el se encargaria de la programacion del micro en este caso del pic. y tengo una duda espero no molestarte y no suene tonta bueno es del maestro jeje, en donde le decimos a cual puerto va ir conectado el circuito o ke puerto utilizar, por lo ke he entendido de eso se encarga los driver de microchip y la libreria si no me ekivoco.gracias gero de antemano saludos.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: joana en Abril 22, 2009, 03:10:38

Hola Geronimo.....En verdad agradesco que compartas nos compartas tus conocimientos respecto a este tema, es la primera vez que trabajo con un pic conectado a una pc a traves de un puerto....podrias subir el diagrama del circuito q utilizaste en tu proyecto,,,porfavor solo para ver su estructura...De antemano gracias...Saludos ;)

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Abril 22, 2009, 11:39:39

Cita de: Waldo en Abril 22, 2009, 02:35:02Gracias gero.java lo se manejar el tu codigo ke subiste lo entendi muy bien bueno algunas cositas no como porke inicializas estos dos(cmd_FW, cmd_LED)  en 99 y 88 respectivamente y el set_vidpid y el set_instance no entendi porke llevan esos parametros, pero dije ke era nuevo en usb no en java^^ java lo se manejar, lo ke me ayudaria es entender utilizar la libreria jpicusb ke es lo ke puedo hacer con ella, aparte de leer datos y mandar datos, lo ke si no estoy familiarizado es con c^^ pero una amiga si, pero este es un proyecto ke estamos haciendo con un maestro ke no sabe java y nos pidio ayuda en hacer una aplicacion y el se encargaria de la programacion del micro en este caso del pic. y tengo una duda espero no molestarte y no suene tonta bueno es del maestro jeje, en donde le decimos a cual puerto va ir conectado el circuito o ke puerto utilizar, por lo ke he entendido de eso se encarga los driver de microchip y la libreria si no me ekivoco.gracias gero de antemano saludos.

Hola Waldo!Si ya sabes Java, es un gran paso, y tenes la mitad del camino allanado.Sobre la interface jpicusb, la documentacion de cada metodo esta en divideandconquer.com.ar. Dentro del Rar de la libreria.Alli explica la funcion de cada metodo de la libreria.Si no conoces la Base del funcionamiento de ennumeracion de un dispositivo usb en la pc, te va a costar entender la funcion de cada metodo de la libreria. Yo no tengo el conocimiento como para desarrollar una explicacion, por lo que te recomiendo que, antes de largarte en la programacion java, o pic, leas sobre USB y sigas los pasos basicos para el desarrollo de una comunicacion punto a punto.Por ej: Establecer una estructura de datos para la comunicacion entre tu profesor (codigo C del pic) y vos (Java + interfaz mcirochip), que comandos existiran, la

Page 49: Tutorial Pic Usb Java

frecuencia con la que se haran transferencias, etc.Te recomiendo que investigues sobre usb y los terminos mas usados en su entorno , por ej vid, pid, clases de dispositivos, etc. Tambien sobre la libreria USB de microchip. Y luego de todo esto, la documentacion de JpicUSB.1 Saludo!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Abril 22, 2009, 11:40:28

Cita de: joana en Abril 22, 2009, 03:10:38Hola Geronimo.....En verdad agradesco que compartas nos compartas tus conocimientos respecto a este tema, es la primera vez que trabajo con un pic conectado a una pc a traves de un puerto....podrias subir el diagrama del circuito q utilizaste en tu proyecto,,,porfavor solo para ver su estructura...De antemano gracias...Saludos ;)

Hola joana,aguantame un tiempito y publico un esquema.agrego una imagen del esquema de la simulacion, ojo que porque funcione en el simulador no significa que valla a funcionar en la vida real. Faltan resistencias en los leds, y esas cosas que en una simulacion digital pueden obviarse.En un rato publico en divideandconquer.com.ar el archivo de la simulacion asi simules vos misma.En divideanconquer.com.ar podes descargar nuevamente el proyecto de demostracion de los leds. Ahora incluye una simulacion en Isis ProteusSaludos!

(http://i39.tinypic.com/2i9l36e.gif)

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Abril 27, 2009, 02:25:07

Hola gero,

hermano, ahora ya decidimos pasar de simulacion a la realidad, por eso hicimos el montaje tal y cual esta en proteus, pero ahora en protoboard y al momento de conectar el circuito nos aparece un cuadro en amarillo que nos indica que "No se reconoce el dispositivo USB", al dar click sobre este cuadro nos aparece una ventana indicandonos lo mismo, para muestra de ello te adjuntamos dos imagenes, una antes y otra despues de dar click.

Nosotros estamos creidos que la respuesta se debe al cristal que estamos utilizando (que es de 4 MHz), ya que en tu programa en C compiler notamos que utilizas uno de 48 MHz.

Page 50: Tutorial Pic Usb Java

Estuvimos nuevamente consultando el Datasheet del PIC18f4550 y alli encontramos que los cristales que utilizan se clasifican así como encontraras en la tabla que tambien te adjuntamos.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Suky en Abril 27, 2009, 02:32:39

Lo que necesitan que el micro trabaje a 48MHz por el puerto usb. Pueden conectar otro de menor valor y usar la configuración de oscilador del pic para lograr internamente los 48MHz.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Abril 27, 2009, 02:39:44

Buenas umov, como te dijo Suky, la norma USB especifica que la frecuencia de trabajo debe ser de 48Mhz, lo que se logra usando un cristal externo de 20Mhz y activando el PLL del hardware internoo con la directiva #fuses HSPLL,PLL5.En el programa se lee #use delay(clock=48000000) debido a que el pic va a funcionar a 48Mhz, entonces el compilador debe generar todo el codigo de los retardos en base a dicha frecuencia.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Abril 27, 2009, 03:18:12

Gracias gero, nos pondremos en la tarea inmediatamente.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: ccencho en Abril 28, 2009, 03:25:10

Hola amigo...sabes...segui al pie el tuto..pero me sale este error

init:deps-jar:Compiling 1 source file to D:\Electronica\Programas\NetBeans 6.1\proyect_netbeans\Usb_Java\build\classesD:\Electronica\Programas\NetBeans 6.1\proyect_netbeans\Usb_Java\src\usb_java\Principal.java:24: unreported exception java.lang.Exception; must be caught or declared to be thrown        iface.load();Note: D:\Electronica\Programas\NetBeans 6.1\proyect_netbeans\Usb_Java\src\usb_java\Principal.java uses or overrides a deprecated API.

Page 51: Tutorial Pic Usb Java

Note: Recompile with -Xlint:deprecation for details.1 errorBUILD FAILED (total time: 0 seconds)

uhmmm...bueno ...he tratado de solucionarlo pero no logro...haber si un favorsoteme das una mano..... :'(

Tengo el netbeams 6.1.... y bueo estoy bajando el 6.5...para recien instalarlo....

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Abril 28, 2009, 03:43:35

Hola ccencho, bienvenido al foro!Me parece que no estas capturando la excepcion que puede tirar el metodo load de la libreria jpicusben vez de escribir:Código:        iface.load()

debes escribir:Código:        try{            iface.load();        }catch(Exception e){            System.out.println("Error al cargar jpicusb.dll.");            System.out.println(e.getMessage());            return;        }

Luego nos comentas que tal te fue!Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: ccencho en Abril 29, 2009, 03:50:26

Gracias..geronimox....lo habia visto y loprobe y si funciona ahora si compila y sale la ventanta....chevre... :rolleyes:, ahora..antes de seguir haciendo la aplicacion q publicastes y despues querer hacer una nueva...me decidi a probar el demo...de los leds...pero uff... no se conecta el proteus con el usb..ni me sale la ventanita de instalr driver....??...bueno vere como le hago..pero haber si me dan una mano...antes de seguir...y gracias hee cierto muy buen post....me gusta mucho la idea de trabajar en java....un saludo y bytes......

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Abril 29, 2009, 09:47:08

Page 52: Tutorial Pic Usb Java

Hola ccencho, antes de simular el USB con proteus, debes instalar los drivers de "Virtual usb" de proteus, creo que los podes encontrar alli por la carpeta donde esta instalado Proteus.En mi pc estan en:C:\Archivos de programa\Labcenter Electronics\Proteus 7 Professional\USB DriversSaludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: ccencho en Abril 30, 2009, 03:34:41

Hola amigo otra vez ..sabes si logre simular todo a la perfeccion...ya habia instalado los drivers...pero no corria y era porq estaba usando una version reciente de proteus..asiq instale la version 7.4 sp3 y corrio de lujo..., pude darme cuenta instalando en mi mqaquina virtual...bueno....asiq pude solucionar el probelmilla...bueno muchas gracias man...por la ayuda..ahora si....puedo seguir dandole a la aplicaciones que pretendo hacer... ;) ;) ;) e ire publicando mis avanses...

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Abril 30, 2009, 07:12:26

Cita de: ccencho en Abril 30, 2009, 03:34:41Hola amigo otra vez ..sabes si logre simular todo a la perfeccion...ya habia instalado los drivers...pero no corria y era porq estaba usando una version reciente de proteus..asiq instale la version 7.4 sp3 y corrio de lujo..., pude darme cuenta instalando en mi mqaquina virtual...bueno....asiq pude solucionar el probelmilla...bueno muchas gracias man...por la ayuda..ahora si....puedo seguir dandole a la aplicaciones que pretendo hacer... ;) ;) ;) e ire publicando mis avanses...Hola ccencho, adelante con lo que sea que estes haciendo jeje ;)Ahora si respondeme una cosa... Que version de proteus disponias :shocked: yo tengo la 7.4SP3, crei que no habia ninguna mas nueva disponible al "publico".

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: ccencho en Mayo 02, 2009, 01:58:47

Hola amigo si hay una version disponible es la 7.5 sp3....pero funciona bien el usb q trae con los demos, pero cuando pruebo con el demo de leds de java...y le doy play no me pide driver, por mas q instale el usb dirver....ese es el detalle...por eso lo desistale...y use el 7.4 sp3...bueno...amigo pq lo pruebes y veas aca te paso el links , bueno dejame decirte q tengo blogs como una web con mis amigos es www.icabots.com asi como un foro www.icabots.com/foro , dedicado a la electronica y robotica, es nuevo el foro y la web asiq estamos en mejoras, bueno si veras el enlace es de ahi.

Page 53: Tutorial Pic Usb Java

Bueno amigo haber si lo pruebas y me dices si te funciona en esta version.....de proteus....

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Mayo 02, 2009, 03:00:10

Hola ccencho,lo estoy bajando asi cuando encuentre un tiemppito libre, lo pruebo para ver si puedo hacer andar el ejemplo de jpicusb.De paso me doy un paseo por su web que esta interesante.PD: Espero no te moleste, edite tu thread para eliminar el enlace a proteus, ya que viola las reglas  :azn:Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: ccencho en Mayo 04, 2009, 03:25:05

Bueno amigo la verdad q no lei las reglas almenos esa..pero no hay problema , bueno espero te des tu time..como asi tuve q parar mis avances de el proyecto q estab haciendo por motivos de casa..pero ya en unos dias retomo... ;)

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: umov en Mayo 05, 2009, 02:24:04

Hermano Gero,creo que ahora te encuentras un poco mas ilustrado de nuestro proyecto , sin embargo en esta ocasion aparece otro inconveniente, es relacionado a la orden que se envia desde la casilla de verificacion ( checkbox ) para encender un led atravez del micro, ya que cada vez que intentamos encender este led en un principio no lo hacia, luego lo hacia pero cuando le dabamos lentamente la orden, no sabemos por que se comporta asi.

En nuestro caso, estamos ademas utilizando el conversor analogo/digital, un led de estado ( que esta implementado utilizando una interrupcion por timer 0, este led nos indica el estado de funcionamiento del PIC para que nos indique si en algun momento se nos bloquea o no )

#include <18F4550.h>        #DEVICE ADC=16 #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN Configuracion del #use delay(clock=48000000)                                              //

Page 54: Tutorial Pic Usb Java

Configuracion del relog a utilizar///////////////////////////////////////////////////////////////////////////////////////////////////#define INTS_PER_SECOND 183                                              // (4000000/(4*256*256))#define USB_HID_DEVICE FALSE              // deshabilitamos el uso de las directivas HID#define USB_EP1_TX_ENABLE USB_ENABLE_BULK // turn on EP1(EndPoint1) for IN bulk/interrupt transfers (activacion de traferencia masiva en USB configurando el EndPoint 1 de transmision)#define USB_EP1_RX_ENABLE USB_ENABLE_BULK // turn on EP1(EndPoint1) for OUT bulk/interrupt transfers (activacion de traferencia masiva en USB configurando el EndPoint 1 de recepcion)#define USB_EP1_TX_SIZE 32                // size to allocate for the tx endpoint 1 buffer (tamaño del buffer de transferencia en la transmision entre 1 y 32 bytes para USB 2.0)#define USB_EP1_RX_SIZE 32                // size to allocate for the rx endpoint 1 buffer (tamaño del buffer de transferencia en la recepcion entre 1 y 32 bytes para USB 2.0)///////////////////////////////////////////////////////////////////////////////////////////////////// Include the CCS USB Libraries. See the comments at the top of these// files for more information////////////////////////////////////////////////////////////////////////////////#include <pic18_usb.h>  // Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver#include <header.h>     // Configuración del USB y los descriptores para este dispositivo#include <usb.c>        // Handles usb setup tokens and get descriptor reports#include <stdio.h>      /////////////////////////////////////////////////////////////////////////////////

//#define Enciende Output_High//#define Apaga Output_Low//#define Conmuta Output_Toggle#define RecCommand recbuf[0]  //#define LedParam recbuf[1]#define COMMAND_TEMPERATURA 99#define COMMAND_LEDS 88#byte PORT_E = 0#define LedState PORT_E,2////////////////////////////////////////////////////////////////////////////////// RAM, RAM, RAM////////////////////////////////////////////////////////////////////////////////const int8 Lenbuf = 32;          //Longitud del Buffer de lectura en el puerto USB.int16 conversion;//,min=0,max=1023; //Se declaran Variable enteras a 16Bits.float temp;                      //Decalracion de una variable flotante.char ctemp[5];

Page 55: Tutorial Pic Usb Java

int8 recbuf[Lenbuf];//int8 sndbuf[Lenbuf];BYTE int_count;                  // Número de interrupciones que faltan antes que haya transcurrido un segundo////////////////////////////////////////////////////////////////////////////////// M A I N////////////////////////////////////////////////////////////////////////////////#int_rtccvoid Led_State()                   //Interrupción utilizada para el manejo del bit de estado.{   if(--int_count==0)   {  output_bit(Pin_E2,!bit_test(LedState)); //Llega aquí cada segundo.      int_count=INTS_PER_SECOND;   }}/**#int_ext                               //Interrupcion a aplicar cuando se active el sensor de movimientovoid sensor_movimiento_isr(){   output_d(0xf0);   delay_ms(1000);   output_d(0x0F);}#int_ext1                              //Interrupcion a aplicar cuando se active el sensor de humovoid sensor_humo_isr(){   output_d(LedParam);   delay_ms(1000);   output_d(LedParam);}*///******************************************************************************ConvenVoltio(){   temp=((0.0078125*conversion)-0.5);  //Calculo de la temperatura   sprintf(ctemp, "%f", temp);         //Convierte un numero de tipo coma flotante a tipo cadena   return ctemp;}//******************************************************************************void main(void){     delay_ms(500);                                        //Retardo de 0.5 seg   usb_init();                                           //Inicializa el Modulo de Comunicacion USB   usb_task();                                           //

Page 56: Tutorial Pic Usb Java

   usb_wait_for_enumeration();                           //Se situa en un bucle infinito mientras la comunicacion USB es enumerada

   setup_adc_ports(All_ANALOG);     //Configuracion del puerto como entrada Analoga   setup_adc(ADC_CLOCK_DIV_4);      //   set_adc_channel(0);              //Seleccion del canal de conversion en este caso el cero    int_count=INTS_PER_SECOND;   set_timer0(0);   setup_counters(RTCC_INTERNAL, RTCC_DIV_256 | RTCC_8_BIT);

   enable_interrupts(int_rtcc);                          //   //enable_interrupts(int_ext);                           //   //enable_interrupts(int_ext1);                          //   enable_interrupts(global);                            //Inabilita las demas interrupciones      while(true)   {      if(usb_enumerated()){                              //¿El sistema operativo de la PC nos ha reconocidos como conectados y ha enumerado la Comunicacion USB?         if (usb_kbhit(1)){                              //Verifica si se han recibido datos provenientes del PC             usb_get_packet(1, recbuf, Lenbuf);          //Toma los dos bytes que llegan y los guarda en recbuf,                                                         //y luego son guardos en RecCommand y LedParam respectivamente            if(RecCommand==COMMAND_TEMPERATURA){            //Verifica si el byte 0 (RecCommad) que llega es igual a COMMAND_FIRMWARE               usb_put_packet(1,ctemp,4,USB_DTS_TOGGLE); //Escribe en el Puerto USB el valor de la temperatura               //printf("Data leida de USB: %u",recbuf);   //Supuestamente envia el dato leido por el puerto RS232               //printf("Data leida de USB: %s",Lenbuf);            }            if(RecCommand==COMMAND_LEDS){                //Verifica si el dato que llega es igual a COMMAND_LEDS               output_d(LedParam);                       //Escribe por el puerto D los leds que va a encender               //printf("Data leida de USB: %u",recbuf);               //printf("Data leida de USB: %s",Lenbuf);            }         }      }      delay_us(10);

Page 57: Tutorial Pic Usb Java

      conversion = read_adc();                                          //Lectura del conversor del ADC      //printf("%Lu",conversion);                                         //Formato de envio del valor de la temperatura por RS232      //setup_adc( ADC_OFF );      ConvenVoltio();      //usb_put_packet(1,temp,5,USB_DTS_TOGGLE);                        //Escribe en el Puerto USB la version del firmware      //printf(" %1.1f ",temp);                                         //Formato de envio del valor de la temperatura por RS232      //printf(lcd_putc,"\f  Temperatura:  \n     %1.1f oC    ",temp);  //Impresion del dato en la LCD      delay_ms(100);                                                    //Retardo de 1 usegundo   }//while(true);    }

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Mayo 05, 2009, 03:08:25

Hola umov,leyendo tu codigo, hay un par de cosas que a mi parecer se prestan a problemas.Te las detallo.

[***]No encontre la directiva #use delay(clock=48000000), sin esta directiva, el compilador no conocera a que frecuencia esta funcionando el micro, y podria generar mal el codigo para las funciones de retardos como delay_ms y delay_usTe recomiendo que la agregues.

[***]Cuando configuras el ADC, escribes  setup_adc_ports(All_ANALOG).Y si te fijas en el archivo de cabecera 18F4550.h podes notar que ALL_ANALOGS significa mucho =)#define ALL_ANALOG   0x00   // A0 A1 A2 A3 A5 E0 E1 E2 B2 B3 B1 B4 B0Es decir que en la lista de pines configurados como entrada analogica son todos esos, y el pin E2 esta en dicha lista, lo que podria crear conflictos con el hecho de que en la interrupcion #int_rtcc lo usas como salida  ???Ademas, solo usas el canal 0 como entrada analogica, set_adc_channel (0), es decir el pin RA0/AN0, por lo que te recomiendo que cambies la configuracion del ADC de esto:setup_adc_ports(All_ANALOG);a esto:setup_adc_ports(AN0);y eso resolveria el conflicto de si el pin E2 es entrada analogica o salida digitaln:

Page 58: Tutorial Pic Usb Java

[***]Al final del bucle principal agregas un retardo de 100ms, delay_ms(100), quiza se te escapo, pero no te recomiendo que lo pongas ya que no tiene sentido, pues lo unico que produce es una demora en la respuesta del pic los posibles comandos provenientes del USB

Otra cosa que podria traerte problemas es la tasa con la que le solicitas al pic que te envie la temperatura medida.Tene en cuenta que si pides mas rapido de lo que el pic obtiene y procesa, lo unico que logras es saturar el canal, y por lo consiguiente, todo paquete que le envies al pic se va a descartar debido a que este no puede procesarlo =)Te recomiendo una tasa mayor a 200ms ( el timer que usaste en java, que haga un scheduleAtFixedRate(Tarea,0,200) )

Bueno, no encontre mas que eso. Una simulacion para probar me vendria al pelo jeje  ;)Espero que esto solucione los problemas  :laugh: Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Ankoku en Mayo 23, 2009, 08:59:54

Hola Emmm.....estamos intentando hacer el circuito en forma física, con el Pic y todo (somos principiantes ¬¬u)Con el programa en Netbeans, sin problemas, hicimos el circuito en una proto, pero solo enciende el led, mas el programa no reconoce que tiene algo conectado, lógicamente el led prende porque recibe corriente de la compu, necesitamos programar el pic? , en el pic utilizamos el 18f2550 ya que por aki no había otro, buscamos la configuración de este y la conectamos de manera similar, el programa solo funciona para el 4550??

Gracias, saludos!!!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Mayo 24, 2009, 01:08:08

Hola Ankoku,El programa es el mismo para el 18F2550, salvo que tenes que cambiar la linea #include <18F4550.h> por #include <18F2550.h> y recompilar.Tambien debes tener en cuenta que los 8 leds deben conectarse en el puerto B del micro, pues alli se envian las señales provenientes de la pc, output_b(LedParam);, y tambien debes instalar los drivers cuando te los pida.El esquema que publique, no utiliza la alimentacion del puerto usb, sino una

Page 59: Tutorial Pic Usb Java

alimentacion externa regulada de 5V, por eso el pin 1 del conector usb, queda al aire.Que led enciende? En que pin esta conectado? Ya que no deberia encender ninguno si es que no hay comunicacion con la PC.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: claumack en Mayo 24, 2009, 06:39:18

hola.como lo dijo onkoku...estamos siguiendo tu tutorial pero no hemos obtenido resultado.el led k enciende esta conectado al pin RB1 y solo utilizamos ese led dos resistencias de 100k y un capacitor de 47 y el pic 18f2550y claro el usb conectado a D+ y D-.pero la pc no nos logra reconocer el circuito...nuestra pregunta es k si el pic esta programado y en k? o como podemos programarlo. :'(

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Mayo 24, 2009, 08:39:30

Hola claumack, el pic debe tener cargado el programa para funcionar :rolleyes2:, es decir que debe estar programado.Hay varios programadores para cargarles el programa, tenes versiones comerciales, versiones libres, y cada una con distintas interfaces que van desde serie, paralelo hasta usb.Yo uso una version comercial de un programador llamado GTP-USB.Pero puedes armarte versiones libres como JDM, TE20 y otros.Si buscas en el foro, vas a encontrar un par, y por la red mas.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: claumack en Mayo 24, 2009, 11:17:37

muchas gracias!pues si tenemos ya varios programasel problema va ser cargarlos... tenemos en winpic en c en picbasic bueno.. varios..despues de todos los intentos...lo estamos haciendo simulado y parece k ya mas o menos..el problema sera fisicamente para poder cargarle el programa al pic

Page 60: Tutorial Pic Usb Java

ya k no contamos por ahora con el.por cierto el codigo k dices k usas no lo subiste por aca? tal vez nos pueda ser util...iremos posteando nuestros progresos... ya k nos tiene k funcionar pk nos tiene k funcionar! XD

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Ankoku en Mayo 25, 2009, 03:37:28

Hi ^^Perdona tanta lata, pues ya nos salio :bang: , ya detecta el puerto y todo, muchas gracias por el tuto, muyyy bueno, pero ahora tenemos otro problema  :'(, la librería no la acepta para aplicaciones móviles u_u en el mismo Netbeans, porque queremos implementarlo en un celular, se puede modificar la librería para aplicaciones móviles? o no conoces de otra para aplicaciones móviles??? o de plano no se puede T-TMuchas gracias.Saludos!!!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Mayo 25, 2009, 08:15:59

Hola claumack, el codigo que uso para la demo de la libreria esta en http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/ alli tambien vas a encontrar la simulacion del codigo del demo. Saludos!

Ankoku, desconozco de celulares que tengan puerto USB que pueda hacer el rol de HOST USB, por lo que hasta el dia de hoy, no es posible comunicar por usb un celular con un PIC. Ademas, esta el hecho de que la interfaz jpicusb.jar, fue desarrollada para conectarse a la libreria jpicusb.dll, y tambien desconozco de celulares cuyo sistema operativo sea capaz de cargar librerias dinamicas dll como lo hace windows.Es decir que necesitaras un celular con so windows, runtimes de java y puerto usb que pueda hacer el rol de host. Jeje  :shocked:Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Ankoku en Mayo 25, 2009, 11:51:22

Hi ^^Gracias por contestar, mmmm...que lastima, tendremos que buscar otra forma para hacer eso  :(, de todas formas ya aprendimos algo nuevo, para algo nos ha de

Page 61: Tutorial Pic Usb Java

servir algún día xDGracias por tu tiempo ^-^Saludos!!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: claumack en Mayo 26, 2009, 01:12:27

si muchas gracias...seguiremos en el intento. ya te daremos noticias si nos salio o no. detodos modos todo lo k publicaste nos sirvio de mucha ayuda. gracias!!!. :laugh:

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: fabianoca55 en Mayo 27, 2009, 05:14:46

Saludos, favor si me ayudas ... al compilar el progrma que esta en la para manejo de usb sale el siguiente mensajeNo se encontro la libreria jpicusb.dll en E:\usbpppppppppppppppp\jPicUsb_1[1].1.1_Led_Show_Demo\usbPicCodeTest\Java App\

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Mayo 27, 2009, 10:35:13

Cita de: fabianoca55 en Mayo 27, 2009, 05:14:46Saludos, favor si me ayudas ... al compilar el progrma que esta en la para manejo de usb sale el siguiente mensajeNo se encontro la libreria jpicusb.dll en E:\usbpppppppppppppppp\jPicUsb_1[1].1.1_Led_Show_Demo\usbPicCodeTest\Java App\

Hola fabianoca55, bienvenido al foro!que programa estas compilando? Creo que te refieres al ejecutar el programa en java, la interfaz no encuentra la libreria, deberias copiarla a la direccion que te especifica ahi mismo  :azn:

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: fabianoca55 en Mayo 28, 2009, 12:15:47

Buenos dias 

Prime gracis por contestarme ta rapido.. tu proyecto de manejo del puerto USB es super interesante, te comento ya lo tengo simulado en ptoteus 7.4 SP3. No se puede simular en proteus 7.5 SP3.   En este momento estoy corriendo el programa de java que se encuentra en el

Page 62: Tutorial Pic Usb Java

archivo con extension . rar  jpicusb_1[1].1.1 he seguido los pasos que indicas en tu tutorial,  ademas el archivo jpicusb.dll se encuentra en el mismo directorio pero, al ejecutar el programa me devuelve el mensaje No se encontro la libreria jpicusb.dll.Este mismo problema lo tuvieron otros usuarios de tu foro, pero no esta comentado como lo solucionaron.  De antema gracias.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Mayo 28, 2009, 02:36:17

Hola fabianoca55, debes descomprimir el rar jpicusbledshowdemo, y luego abrir el proyecto con netbeans =)quiza sea necesario que instales esto antes para que funcione la libreria http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=enSaludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: fabianoca55 en Mayo 28, 2009, 04:57:27

Saludos nuevamenteMil disculpas si te molesto continuamente, en el foro existe una sugerencia para resolver el problema de no deteccion de kla dll  jpicusb, en la cual indicas q se relice las pruebas con el siguiente codigo: 

public class Principal extends javax.swing.JFrame {

    /** Creates new form Principal */    public Principal() {        initComponents();        // this.setTitle("jPicUsb Led Show");         try {            // Function to be able to call the methods from jPicUsb library,            // defined as jpicusb.dll            iface.load();        } catch (Exception ex) {            Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);            try {                System.load((new File(".")).getCanonicalPath() + System.getProperty("file.separator") + System.mapLibraryName("jpicusb.dll"));            } catch (IOException e) {                Logger.getLogger(Principal.class.getName()).log(Level.SEVERE,

Page 63: Tutorial Pic Usb Java

null, e);            }        }    }

al correr el programa sale el siguiente mensaje 

run:Interfase jPicUSB 1.1.1 Cargada28-may-2009 19:55:03 javausb.Principal <init>GRAVE: nulljava.lang.Exception: No se encontro la libreria jpicusb.dll en C:\usb11\jpicusb_1[1].1.1\jpicusb 1.1.1\        at jPicUsb.iface.<clinit>(iface.java:12)        at javausb.Principal.<init>(Principal.java:32)        at javausb.Principal$1.run(Principal.java:76)        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: Can't load library: C:\usb11\jpicusb_1[1].1.1\jpicusb 1.1.1\jpicusb.dll.dll        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1677)        at java.lang.Runtime.load0(Runtime.java:770)        at java.lang.System.load(System.java:1005)        at javausb.Principal.<init>(Principal.java:36)        at javausb.Principal$1.run(Principal.java:76)        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184

Page 64: Tutorial Pic Usb Java

)        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Favor si me puedes ayudar, no se si el dll  tiene al gun problema o q estoy haciendo mal.

Att. Fabian

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: fabianoca55 en Mayo 28, 2009, 05:09:30

Gracias amigo, se soluciono el problema, ahora el programa ya reconoce a jpicusb.dll, luego de instalar el parche q me indicaste:

SP1 Redistributable Package (x86)Brief DescriptionThe Microsoft Visual C++ 2008 SP1 Redistributable Package (x86) installs runtime components of Visual C++ Libraries required to run applications developed with Visual C++ SP1 on a computer that does not have Visual C++ 2008 SP1 installed.

Muchas gracias

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: KARITOU en Mayo 30, 2009, 09:41:11

hola a todos, espero esten bien y de antemano muchas felicitaciones por el tutorial, pero igual no todo es tan bueno para mi, estoy tratando de implementarlo pero al compilarlo me salen los siguientes errores:

init:deps-clean:Deleting directory C:\JAVAUSB\javaUSB\buildclean:init:

Page 65: Tutorial Pic Usb Java

deps-jar:Created dir: C:\JAVAUSB\javaUSB\build\classesCompiling 2 source files to C:\JAVAUSB\javaUSB\build\classesC:\JAVAUSB\javaUSB\src\javausb\principal.java:99: cannot find symbolsymbol  : method getText()location: class javausb.texto                texto.setText(texto.getText() + "No se recibieron datos\n");C:\JAVAUSB\javaUSB\src\javausb\principal.java:99: cannot find symbolsymbol  : method setText(java.lang.String)location: class javausb.texto                texto.setText(texto.getText() + "No se recibieron datos\n");C:\JAVAUSB\javaUSB\src\javausb\principal.java:101: cannot find symbolsymbol  : method getText()location: class javausb.texto                texto.setText(texto.getText() + "Datos recibidos:" + data_in + "\n");C:\JAVAUSB\javaUSB\src\javausb\principal.java:101: cannot find symbolsymbol  : method setText(java.lang.String)location: class javausb.texto                texto.setText(texto.getText() + "Datos recibidos:" + data_in + "\n");4 errorsBUILD FAILED (total time: 0 seconds)

he seguido paso a paso el tutorial no se que pueda estar mal ojala puedan ayudarme.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Mayo 31, 2009, 01:11:34

Hola karitou, bienvenido al foro!Me parece que fallaste en algun paso del tutorial, pues segun los errores que netbeans te dio, especificamente estas lineas:symbol  : method getText()location: class javausb.textodicen que estas llamando a un metodo getText desde una clase llamada textoel paquete llamado javausby tambien es muy extraño que tu fichero se llame principal.java y dentro de el, halla una clase llamada texto.Tu clase se deberia llamar principal, es decir, obligatoriamente debe tener el nombre del archivo java, y ademas, NO puede tener el nombre del objeto que implementa al TextArea  ???

Te recomiendo que sigas todos los pasos nuevamente, y tengas especial cuidado al crear el JFrame en el paso 7, y al cambiar los nombres de los botones y textarea en el paso 10.

Page 66: Tutorial Pic Usb Java

Ya sabes, cualquier cosa, chifla.Saludos!!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: KARITOU en Mayo 31, 2009, 11:40:52

hola gero, mira tuve mas precaucion en lo pasos y ahora solo me genera un error, no se que pasa pero no logra cargar iface aki te lo pego.

init:deps-jar:Compiling 1 source file to C:\JAVAUSB\javaUSB\build\classesC:\JAVAUSB\javaUSB\src\javausb\usb.java:24: unreported exception java.lang.Exception; must be caught or declared to be thrown        iface.load();1 errorBUILD FAILED (total time: 0 seconds)

espero puedas ayudarme

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Mayo 31, 2009, 03:52:30

Hola KARITOU, jpicusb cambio un poco desde que escribi el tutorial, ahora, el metodo load() que carga la dll, puede lanzar excepciones para informar si encontro o no la dll u otros detalles sobre seguridad.Reemplaza la linea:        iface.load();por estas lineas:        try{            iface.load();        }catch(Exception e){            System.out.println("Error al cargar jpicusb.dll.");            System.out.println(e.getMessage());            return;        }Gracias por avisar, ya edite un poco el paso 9 del tutorial avisando que con versiones mayores a 1.0 de jpicusb, se debe capturar la excepcion.Saludos!!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: KARITOU en Mayo 31, 2009, 06:12:14

Page 67: Tutorial Pic Usb Java

gero muchisimas gracias eres un divino funciona de maravilla. gracias por tu ayuda

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: KARITOU en Mayo 31, 2009, 07:30:15

hola gero: revizando tu tutorial de los leds tambien tengo problemas jejejejeje ;) cuando compilo me salen los siguientes y por cierto muchos errore q te adjunto.

como siempre ojala puedas ayudarme

 

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Mayo 31, 2009, 08:14:20

Cita de: KARITOU en Mayo 31, 2009, 07:30:15hola gero: revizando tu tutorial de los leds tambien tengo problemas jejejejeje ;) cuando compilo me salen los siguientes y por cierto muchos errore q te adjunto.

como siempre ojala puedas ayudarme

Hola KARITOU, que version de Java tienes instalada?GroupLayout existe a partir de Java 1.6, intenta actualizando la version que usas de Java.Salutes!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: KARITOU en Junio 02, 2009, 05:41:56

hola gero, creo que es un poco salidod el tema pero quisiera saber como implementar threads estoy tratando de crearlos pero ni siquiera eso lo que quiero es esta leyendo simpre el puerto usb sin que este ligado a ningun evento o accion de boton.

ojala puedas ayudarme

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Junio 02, 2009, 09:42:15

Cita de: KARITOU en Junio 02, 2009, 05:41:56

Page 68: Tutorial Pic Usb Java

hola gero, creo que es un poco salidod el tema pero quisiera saber como implementar threads estoy tratando de crearlos pero ni siquiera eso lo que quiero es esta leyendo simpre el puerto usb sin que este ligado a ningun evento o accion de boton.

ojala puedas ayudarme

Hola KARITOU, fijate unas paginas atras, ya se trato el mismo tema. Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: KARITOU en Junio 03, 2009, 10:58:33

hola gero que pena molestarte tanto con preguntas pero eres el unico que me a ayudado, mira ya tengo corriendo todo lo que necesito en simulacion pero cuando lo pruebo fisicamente y conecto me dice que no se reconoce el dispositivo o dispositivo desconocido, para esto se necesita otro intalador o con el mismo q nos pasaste????

de antemano gracias por tu ayuda.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Junio 04, 2009, 01:20:01

Hola KARITOU, esto puede deberse a muuuuchas cosas,lo primero que te recomiendo, es que verifiques que efectivamente el PIC esta funcionando como debe, es decir, conectale algun led en alguna otra pata, y agrega algun codigo que lo haga prender y apagar para verificar q el codigo se grabo en el pic correctamente.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: KARITOU en Junio 04, 2009, 11:51:36

gero ya probe y el micro esta funcionando bien, pero aun no reconoce el dispositivo igial, el driver que esta en el tutorial tendria que servir fisicamente????

ayudame porfis

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Junio 05, 2009, 11:44:43

Hola KARITOU, la verdad q no se me ocurren muchas cosas que podrian causarte el problema.Nos seria mas facil diagnosticar conociendo tu codigo, esquema de hardware y driver que utilizas.

Page 69: Tutorial Pic Usb Java

Tenes que usar el driver que se encuentra dentro del ledshowdemo.rarSalutes!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: juanitoD en Junio 05, 2009, 06:48:21

hola hero, cuando compilo tu aplicacion me salen, dos mensajesjPicUSB.dll V1.1 cargada. Gero Oñativia (2009)jPicUSB.dll V1.1 liberadame podrias indicar en donde los puedo cambiar, gracias, es muy buena tu aplicacion

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Junio 05, 2009, 09:11:27

Hola juanitoD, ese es un mensaje de copiright y lamento informarte que no es posible eliminarlo.De todas maneras, no creo que el mensaje sea una molestia, ya que en interfaces graficas el mensaje de copiright no es perceptible por el usuario final  :azn:.Salutes!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: VelazquezBio en Julio 08, 2009, 04:52:02

 :rolleyes2: EDITO!!!! :rolleyes2: Son las 5:42 Am. ESTOY RE CONTENTO!!!! Estudie tu programa de los led... agregue un boton y en menos de 5 instrucciones...PUDE ESCRIBIR EN EL LCD en Proteus!!!!!!!!   :bang: :bang: :bang: :bang: :bang:Perdon si esto no se tiene que hacer!!!! pero Esto es muy Groso!!!! GRACIAS!!!!!!

Hola Gero! bueno, di un salto de la ruleta y el simon en el pic 16f84, al USB. Mi idea al acercarme a los pics era la de realizar una interfaz via USB...2 meses mas tarde... aca estoy, salteando todo y empezando con USB...     Es que es grande la tentacion!!! de 16f84a a el 16f877A y por fin al 18f4550 :bang:...En esta ultima semana me lei.... la vida.... sobre que lenguaje usar para programar como funcionan las cosas... etc...etc...etc, entre Visual Basic 2008 express y Visual C++ 2008 express, me estaba volviendo loco, hasta que luego de muuuuuucho leer, cai en la cuenta que para manejar el USB necesitaba si o si un dll.

     Si  bien está el de microchip... no habia encontrado mucha informacion sobre que instrucciones se debian usar en C++ y VB, cuando por fin baje infinidad de PDFs y mis ojos no podian leer nada mas... me encuentro con esta JOYITA, si

Page 70: Tutorial Pic Usb Java

señor... JOYITA!!! :rolleyes2: el dll para utilizar en JAVA, a mi YA ME CONVENCISTE!!!para empezar... le doy con todo a esto... mi hermano que es ING de Sist. me lo recomendo... me dijo dale bola al JAVA!! y yo nahhh!!! :pared pero ahora si! Donde Firmo Dr.? yo me caso con JAVA!!! :rolleyes:     Una Pregunta, antes de poner la casa a tu nombre...jeje Puedo porgramar lo que sea para el PIC 18F4550 usando este dll... 

un pedido... algun buen manual que me recomiendes... si tenes algun link de interes y tenes la amabilidad de mandarlo por PM. estaria agradecido...Un Abrazo, Cristian.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Julio 08, 2009, 06:00:23

Hola! llego tarde para darte una mano jeje.Felicitacionesss!! ;DY ya sabes cualquier cosa chiflá jeje.Ahh y si no te molesta, podrias hacer un post compartiendo lo que lograste =) asi le podria servir a alguien mas que quiera manejar el lcd por usb con java  :PSalutes!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Julio 08, 2009, 02:41:36

Me parece que se te rompio el disco  :embarrassed:. Formatear es lo mejor, asi se marquen los sectores defectuosos. Igual te iba a pasar tarde o temprano cuando se escriba informacion sensible en esos sectores.Jajaja mortal lo del windows de 144MB, estuve en esa situacion de "manotazo de ahogado" jeje.Suerte con el proceso!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Julio 08, 2009, 07:49:02

Si, no te preocupes, despues quitamos estos posts  ;)Pasale el checkdisk a todas las particiones de todos los discos para sacar cualquier duda  :azn:

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: VelazquezBio en Julio 08, 2009, 11:48:14

Page 71: Tutorial Pic Usb Java

Instalen tranquilos... la version en español... mi disco esta de ultimas... 

sAludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: VelazquezBio en Julio 10, 2009, 04:47:03

Hola Geronimox, queria preguntarte algo sobre la libreria jpicusb....estoy tratando de enviar palabras por desde la pc al pic para que se escriban en el display... para hacerlo de una manera comoda quiero usar alguna de las funciones de tu libreria... mas precisamente estoy tratando de usar Qwrite... pero por lo que veo solo puedo enviar bytes y no char... estoy en lo correcto?

como puedo enviar palabras usando alguna de tus instrucciones al pic?gracias!Cristian...

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Julio 10, 2009, 05:21:00

Cita de: velazquezbio en Julio 10, 2009, 04:47:03Hola Geronimox, queria preguntarte algo sobre la libreria jpicusb....estoy tratando de enviar palabras por desde la pc al pic para que se escriban en el display... para hacerlo de una manera comoda quiero usar alguna de las funciones de tu libreria... mas precisamente estoy tratando de usar Qwrite... pero por lo que veo solo puedo enviar bytes y no char... estoy en lo correcto?

como puedo enviar palabras usando alguna de tus instrucciones al pic?gracias!Cristian...

Hola, primero vamos a la documentacion  :PCódigo:public static long QWrite(byte[] pData, int dwLen, long dwMilliseconds)        Quick Write Open a connection with DEFAULT VID & PID, writes data, and closes the opened endpoint pipe.Parameters:        pData - Byte array containing the data to be sent.        dwLen - Amount of bytes to be sent.        dwMilliseconds - Timeout in milliseconds.Returns:        Return the number of bytes written by this function call.

Hay que pasarle entonces un arreglo de bytes con los datos, y la longitud de dicho arreglo que se desea enviar, tambien el timeout.Asi que lo unico que tienes que haces es convertir tu cadena a un arreglo de bytes:smiley:

Page 72: Tutorial Pic Usb Java

La clase String de Java, dispone de un metodo para lograr esto, y seria algo asi:

Código:        String texto=new String("Hola LCD.");        byte[] textoBytes = texto.getBytes();        iface.QWrite(textoBytes, textoBytes.length, 1000);

Tambien recuerda que luego de inicializar la libreria, si deseas usar en tu codigo los metodos "Q", QWrite y Qread, debes configurar el vid y pid por defecto de la libreria. Seria algo asi:

Código:        //configuramos el vid_pid del dispositivo asi podemos usar las funciones "rapidas" de la interfaz        iface.set_vidpid("vid_04d8&pid_000b");        //configuramos la instancia del dispositivo asi podemos usar las funciones "rapidas" de la interfaz        iface.set_instance(0);

Saludos!!!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: londoño en Julio 15, 2009, 01:40:17

hola GeroMe gustaria saber si JpicUSB sirve también para recibir datod del micro para visualizalos en el pc, gracias.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Julio 15, 2009, 03:39:32

Cita de: londoño en Julio 15, 2009, 01:40:17hola GeroMe gustaria saber si JpicUSB sirve también para recibir datod del micro para visualizalos en el pc, gracias.

Hola londoño, bienvenido al foro!Puedes hacer transeferencias en las 2 direcciones, de micro a PC y de pc a micro.Saludos!

Título: ayudaPublicado por: blacksnake84 en Julio 20, 2009, 06:45:01

Saludos:

Page 73: Tutorial Pic Usb Java

Alguien puede decirme si mi diagrama esta bien, lo que pasa es que en mi ciudad es dificil encontrar el pic y no quiero quemarlo al conectarlo jejeje :rolleyes2:

(http://img32.imageshack.us/img32/1092/usb.png)

gracias

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Julio 20, 2009, 11:13:59

Hola blacksnake, me parece que esta bien el esquema que tenes.Lo unico que no pongo la mano en el fuego, es el conector usb, parece estar bien.Salutes!

Título: Re: ayudaPublicado por: Bruno10 en Julio 20, 2009, 11:29:43

Cita de: blacksnake84 en Julio 20, 2009, 06:45:01Saludos:

Alguien puede decirme si mi diagrama esta bien, lo que pasa es que en mi ciudad es dificil encontrar el pic y no quiero quemarlo al conectarlo jejeje :rolleyes2:

(http://img32.imageshack.us/img32/1092/usb.png)

gracias

Un consejo nada mas, yo lo que le haria seria subir el conector que esta abajo y bajar un poco los leds asi dejas espacio en las esquinas por si le queres poner algun separador o algo para atornillarno en una base.Un 7805 y un diodo en la entrada nunca esta de mas tampoco, pero eso depende de la fuente que uses.

Saludos

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: JLondoño en Agosto 05, 2009, 11:45:37

hOla, soy nuevo en esto de Java y quisiera saber como puedo hacer para que el byte out en el programa Java+Pic+USB sea una variable asociada a un TextField, si alguien me puede ayudar lo agradeceria mucho.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Agosto 05, 2009, 03:20:39

Page 74: Tutorial Pic Usb Java

Cita de: JLondoño en Agosto 05, 2009, 11:45:37hOla, soy nuevo en esto de Java y quisiera saber como puedo hacer para que el byte out en el programa Java+Pic+USB sea una variable asociada a un TextField, si alguien me puede ayudar lo agradeceria mucho. 

Hola JLondoño, bienvenido al foro!Suponiendo que tu TextField se llama mitexto, entonces, el codigo quedaria asi:Código:        byte[] bytes_out=mitexto.getText().getBytes();  //Convierte la cadena en arreglo de Bytes con la codificacion por defecto del sistema        int bytes_out_count=bytes_out.length;  //Obtiene la longitud del arreglo de bytes        iface.QWrite(bytes_out, bytes_out_count, 1000);   //Envia todos los elementos de arreglo de bytes

Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: kraneak en Agosto 08, 2009, 12:28:53

hola ke onda como estan oigan una pregunta, hize un programa ke suma un numero pero cuando me regresa la resuesta no lo hace como un numero sino como una letra no se si se daba al String y si es asi como le hago para ke me muestre el numero

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Agosto 08, 2009, 12:54:50

Cita de: kraneak en Agosto 08, 2009, 12:28:53hola ke onda como estan oigan una pregunta, hize un programa ke suma un numero pero cuando me regresa la resuesta no lo hace como un numero sino como una letra no se si se daba al String y si es asi como le hago para ke me muestre el numero

Hola kraneak, bievenido al foro! Para pasar una cadena a un numero entero, puedes usar el metodo parseInt de la clase Integer.Código:int entero = Integer.parseInt(miTextField.getText());

Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: kraneak en Agosto 08, 2009, 03:04:12

hola!! gracias por responder creo ke no hize la pregunta muy bien, bueno ahora tratare de explicarla mejor.

Page 75: Tutorial Pic Usb Java

al resivir la informacion del pic segun con los ejemplos ke encontre en este foro hize lo siguiente:

 String respuesta = new String(read_comando(64),"utf-8");

 pero al mandarlo al JTextArea me aparece una letra o un espacio en blanco lo ke kiero saber es como manejar el "read_comando" para ke si se muestre el resultado de la suma.

desde ya muchas gracias!

 

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Agosto 08, 2009, 08:23:22

hola! no se cual es el metodo read_comando, no lo encontre en este thread...podrias ponerlo aqui?

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: kraneak en Agosto 09, 2009, 12:20:54

a pk el read_comand es donde resivo el dato del pic

 public byte[] read_comando(int bytes){     return iface.QRead(bytes,500); } despues lo paso a: String respuesta = new String(read_comando(64),"utf-8");

y despues de aki lo kiero pasar al jTextArea para ver el resulrado de la suma de dos numeros enteros ke se envian al pic y el pic regresa el resulrado, osea estoy mandando por ahora solo un numero y le estoy sumando un 1 resultado = variable+1  

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Agosto 13, 2009, 11:10:23

Cita de: kraneak en Agosto 09, 2009, 12:20:54a pk el read_comand es donde resivo el dato del pic

 public byte[] read_comando(int bytes){     return iface.QRead(bytes,500);

Page 76: Tutorial Pic Usb Java

 } despues lo paso a: String respuesta = new String(read_comando(64),"utf-8");

y despues de aki lo kiero pasar al jTextArea para ver el resulrado de la suma de dos numeros enteros ke se envian al pic y el pic regresa el resulrado, osea estoy mandando por ahora solo un numero y le estoy sumando un 1 resultado = variable+1  

Para poner un texto en un TextArea debes llamar al metodo setText.Algo asi:

Código:jTextArea.setText(respuesta);

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: wombat en Agosto 22, 2009, 10:30:51

Hola como están, está muy interesante esto y le agradezco al que se ha tomado la molestia de postear toda esta información. Yo tengo ya algo de experiencia en estos temas e intente probar todo haci a la rápida, hasta conseguí el PIC18F4550. El problema es que el programa que se grava en el pic que dan en la página creo que está mal. Al momento de grabar el hexadecimal  me dice que hay un error en la dirección 4, y contiene un FFFF y eso no puede ser posible, según entiendo no debería aparecer nunca FFFF por que indicarían un fin de archivo. 

En fin agradecería mucho si alguien pudiera decirme si ya le jalo o alguna opinión acerca de eso.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Agosto 23, 2009, 04:47:54

wombat, el problema que tenes suena a error de grabacion...que grabador de pic usas?por casualidad es uno basado en jdm?

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: wombat en Agosto 23, 2009, 05:49:31

si exacto estoy usando eso con el COM1, e intentado con el grabador ICPROG y con el WinPic800 en resientes versiones.algo tiene que ver?

Page 77: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Agosto 24, 2009, 01:35:28

wombat, el codigo no tiene ningun problema, es mas, podria tener miles de problemas, y de todas formas grabarse bien en el pic, te recomiendo que leas estos topics:http://www.ucontrol.com.ar/forosmf/problemas-con-mis-proyectos/problemas-con-programador-jdm/http://www.ucontrol.com.ar/forosmf/problemas-con-mis-proyectos/problema-con-programador-de-pics/y si no encuentras la solucion allí, podrias intentar fabricarte otro programador.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: xesc0 en Agosto 24, 2009, 05:19:20

Gero increible aporte :) felicidades!

Un saludo!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Agosto 24, 2009, 12:11:14

Gracias xesc0  ;DSi lo implementas nos cuentas que tal te fue  ;)

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: wombat en Septiembre 05, 2009, 08:49:49

hola geronimox, esta exelente tu aporte y tu ayuda va mas alla del dever jajaja. En fin, todavia no e podido echarlo a jalar. Te explico:tengo el PIC18f4550 cargado con el respectivo programa y con un cristal de 4MHz, su reset y alambrado como dise el esquema y un led en bit RB0.hice el programa que reconose la usb y tambien lo probe con el programa que se descarga. 

Pero no e tenido exito, detecta la usb pero el programa en java no obtiene la version FW (no lo reconose).

gracias.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)

Page 78: Tutorial Pic Usb Java

Publicado por: wombat en Septiembre 05, 2009, 08:56:19

Se me olvidaba, tengo el sistema operativo Windows Vista de 32 bits.

De antemano gracias por cualquier aporte.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Septiembre 05, 2009, 09:22:31

Buenas!Proba con un cristal de 20Mhz aver si va..

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: xesc0 en Septiembre 07, 2009, 02:18:41

Wenas Gero,

Hoy me puse con tu tutorial, el java funciona perfecto, falta verificar con la simulación del isis con la que tengo problemas. Que version de Isis tienes tu? no me dejo abrir la simulación que colgaste en el archivo del test por que tengo una versión más antigua. Igualmente hice el circuito y no salió, creo que el problema lo tengo al cargar el .hex dentro del pic.

Me salen varios errores segun el archivo que subo:

http://i68.photobucket.com/albums/i29/Lin_Xesco/snap0010.png

http://i68.photobucket.com/albums/i29/Lin_Xesco/snap0011.png

Te he puesto un rar con mi simulación del isis, por si tienes tiempo de mirarlo.

Graciassssssssss ^^

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Septiembre 07, 2009, 03:23:09

Hola xesc0!Tengo la version 7.4 SP3. Y es la unica que me dio buenos resultados con el USB Virutal Host.Segun leo en los errores de la primera snapshot, tenias que recompilar el codigo, o bien, usar el hex en lugar del coff.Pero parece que para la segunda, ya solucionaste eso cargando directamente el

Page 79: Tutorial Pic Usb Java

hex  ;)Acordate que tenes que instalar los drivers de "virtual usb host" de proteus.Los podes encontrar en la carpeta "C:\Archivos de programa\Labcenter Electronics\Proteus 7 Professional\USB Drivers"  ;DSi sigue sin funcionar, proba instalando la version 7.4.. Saludos!!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: xesc0 en Septiembre 07, 2009, 05:46:48

Tienes razón el primero no esta compilado y el segundo es el Hex (como no funcionó puse los dos a ver) Tengo los drivers instalados, así que voy a intentarlo con tu version de proteus ^^ Gracias Geronimox

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: xesc0 en Septiembre 07, 2009, 06:42:54

Acabo de ponerme tu versión y efectivamente ese era el problema ^^ ahora ya funciona todo

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Septiembre 07, 2009, 07:58:25

Me alegro  ;D.Ahora a darle duro a java  :P

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: morgan en Septiembre 15, 2009, 07:45:36

Estimado gero me parece  genial tu aporte me a funcionado las mil maravillas pero seria  mucho mas interesante saber  como lograste crear  la dll  que  maneja en al puerto usb  si podrias asesorarme respecto a ese tema seria  genial ya que sos un maestro   ademas no me queda muy claro eso del ("vid_04d8&pid_000b") de que trata al parecer es como una identificacion y como seria para comunicarmecon una  camara web  hay me parece que   abria que  hacer algunas  modificasiones no?? espero puedasaclararme mis dudas y me ayudes con  crear mi dll para  cvontrolar el puerto usbmuchas gracias  y de verdad sos  un maestro aa mi correo es  [email protected] 

Page 80: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Lectra en Septiembre 16, 2009, 01:34:35

Felicitaciones por este gran foro ha sido de gran ayuda sin embargo he estado tratando de hacer algo básico y es enviar un solo bit al programa del ejemplo 1 de este foro pero me ha sido imposible?  Este es el código en  C de he tomado prestado de la primera aplicación, la idea es almacenar en  una variable un numero por ejemplo result1=8;,result0=8; y visualizarlo tal cual pero  he fallado, veo letras que no cambian a pesar de que cambie el valor de los números Les agradezco cualquier ayuda :'( :'(

Código:////////////////////////////////////////////////////  jPicUSB Led Show.c//  divideandconquer.com.ar//  Gero Oñativia 2009//////////////////////////////////////////////////#include <18F4550.h>#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN#use delay(clock=48000000)

/////////////////////////////////////////////////////////////////////////////////////////////////////// CCS Library dynamic defines. For dynamic configuration of the CCS Library// for your application several defines need to be made. See the comments// at usb.h for more information/////////////////////////////////////////////////////////////////////////////////////////////////////#define USB_HID_DEVICE FALSE // deshabilitamos el uso de las directivas HID#define USB_EP1_TX_ENABLE USB_ENABLE_BULK // turn on EP1(EndPoint1) for IN bulk/interrupt transfers#define USB_EP1_RX_ENABLE USB_ENABLE_BULK // turn on EP1(EndPoint1) for OUT bulk/interrupt transfers#define USB_EP1_TX_SIZE 32 // size to allocate for the tx endpoint 1 buffer#define USB_EP1_RX_SIZE 32 // size to allocate for the rx endpoint 1 buffer

/////////////////////////////////////////////////////////////////////////////////////////////////////// Include the CCS USB Libraries. See the comments at the top of these// files for more information/////////////////////////////////////////////////////////////////////////////////////////////////////#include <pic18_usb.h> // Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver#include "header.h" // Configuración del USB y los descriptores para este dispositivo#include <usb.c> // handles usb setup tokens and get descriptor reports

#define Enciende Output_High

Page 81: Tutorial Pic Usb Java

#define Apaga Output_Low#define Conmuta Output_Toggle#define RecCommand recbuf[0]#define LedParam recbuf[1]#define COMMAND_FIRMWARE 99#define COMMAND_LEDS 88

const int8 Lenbuf = 32;

/////////////////////////////////////////////////////////////////////////////////////////////////////// RAM, RAM, RAM/////////////////////////////////////////////////////////////////////////////////////////////////////char Version[] = "v.1.0";int8 recbuf[Lenbuf];int8 sndbuf[Lenbuf];

////////////////////////////////////VARIABLES DE ALMACENAJE////////////////////////////////#define comando  recibe[0]#define param1     recibe[1]#define param2     recibe[2]#define param3     recibe[3]#define param4     recibe[4]#define result0     envia[0]/#define result1     envia[1]#define result2     envia[2]#define result3     envia[3]#define result4     envia[4]

/////////////////////////////////////////////////////Declaro los puertos para trabajarlos posteriormente#byte CMCON = 0x19 #byte ADCON1 =0xFC1 #byte PORTA = 0xF80#byte PORTB = 0xF81#byte PORTC = 0xF82#byte PORTD = 0xF83

/////////////////////////////////////////////////////////////////////////////////////////////////////// M A I N/////////////////////////////////////////////////////////////////////////////////////////////////////void main(void) {   int8 recibe[5]; //declaramos variables   int8 envia[2];

  //CONFIGURACION PTOA  setup_adc_ports(NO_ANALOGS|VSS_VDD);

Page 82: Tutorial Pic Usb Java

  setup_adc(ADC_OFF);    set_tris_a(0x0); // configura los puertos como salidas  set_tris_b(0x0);   

  delay_ms(500);  usb_init();  usb_task();  usb_wait_for_enumeration();  enable_interrupts(global);  while (TRUE)  {    if(usb_enumerated()){      if (usb_kbhit(1))      {              usb_get_packet(1, recibe, 5); //cojemos el paquete de tamaño 5 bytes del EP1 y almacenamos en recibe       PORTA=param1;       result1=8; Estos serian los datos que desearia que visualizara :'( pero nada ni cambia       result0=8;       usb_put_packet(1, envia, 5, USB_DTS_TOGGLE); //enviamos el paquetedetamaño 5 bytes del EP1 al PC

      }    }  }}

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Septiembre 17, 2009, 12:25:39

Cita de: morgan en Septiembre 15, 2009, 07:45:36Estimado gero me parece  genial tu aporte me a funcionado las mil maravillas pero seria  mucho mas interesante saber  como lograste crear  la dll  que  maneja en al puerto usb  si podrias asesorarme respecto a ese tema seria  genial ya que sos un maestro   ademas no me queda muy claro eso del ("vid_04d8&pid_000b") de que trata al parecer es como una identificacion y como seria para comunicarmecon una  camara web  hay me parece que   abria que  hacer algunas  modificasiones no?? espero puedasaclararme mis dudas y me ayudes con  crear mi dll para  cvontrolar el puerto usb  muchas graciasy de verdad sos  un maestro aa mi correo es  [email protected] 

Hola morgan, la dll no es mas que la misma dll de microchip, solo que le agregue varias funciones que pueden ser llamadas desde java usando JNI.No publico los fuentes porque no quiero publicar codigo desordenado y sin depurar y arreglar. Quiza cuando tenga un tiempo libre, mejore el codigo fuente y lo publique.Los vid y pid significan "Vendor Identification" y "Product Identification" respectivamente. Y son con los que un dispositivo usb se identifica ante un Host usb (PC). Al usar jpicusb, es necesario que proporciones los mismos vid y pid que el microcontrolador pic con el que quieres comunicarte.

Page 83: Tutorial Pic Usb Java

Respecto a comunicarte con una camara web, no puedo ayudarte :( y tampoco puedes utilizar jpicusb para dicho proposito, ya que fue diseñada por microchip para comunicarse con dispositivos pic microchip.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Septiembre 17, 2009, 12:33:30

Cita de: Lectra en Septiembre 16, 2009, 01:34:35Felicitaciones por este gran foro ha sido de gran ayuda sin embargo he estado tratando de hacer algo básico y es enviar un solo bit al programa del ejemplo 1 de este foro pero me ha sido imposible?  Este es el código en  C de he tomado prestado de la primera aplicación, la idea es almacenar en  una variable un numero por ejemplo result1=8;,result0=8; y visualizarlo tal cual pero  he fallado, veo letras que no cambian a pesar de que cambie el valor de los números Les agradezco cualquier ayuda :'( :'(

Hola Lectra, no encontre ningun error en tu codigo.La unica linea dudosa, pero no creo que cause ningun problema es:usb_put_packet(1, envia, 5, USB_DTS_TOGGLE); //enviamos el paquetedetamaño 5 bytes del EP1 al PCAhi estas enviando 5 bytes del arreglo envia, pero éste esta definido con un tamaño de 2.int8 envia[2];Debierias cambiar el tamaño del arreglo asi: int8 envia[5]; o enviar solo 2 bytes asi: usb_put_packet(1, envia, 2, USB_DTS_TOGGLE);

Si el problema todavia continúa, seria mejor que publiques el codigo del lado de la pc asi pueda ayudarte.

Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: payatronico en Septiembre 21, 2009, 10:24:44

Ok, perdón la intromisión en este tema, busqué cuanto pude y no encontré exactamente lo que quería así que sí estoy preguntando en el lugar incorrecto solo digan y me iré a buscar en otro lado sin problema.

Yo programo pics en entorno Windows usando un programador picstar+ con MPLAB y uso basic.net en su versión profesional. Intento ser lo más honesto posible e intento igualmente enseñar esto, lo que me sucede es que no puedo pedirle a todo mundo que tenga dinero para tener Windows legal, MPLAB legal, Basic legal o sus versiones gratuitas con millón de restricciones al momento de trabajar más profesionalmente, así que seguí por el camino del bien y de lo simple (o lo más simple posible)

Page 84: Tutorial Pic Usb Java

Bueno, hasta ahora lo más barato y legal que he encontrado fue: Ubuntu, PikLab, BoostC, Picstar+ (o que fabriquen un programador propio), pic18f4550, netbeans.

El problema es que primero antes que enseñar estoy tratando de aprender esto del boostC y de la comunicación en Java por USB y encontré este tutorial en donde casi todos usa Proteus (que para mi es caro como para exigir que lo compren y no voy a instalar nada pirata ni a fomentar a que lo haga nadie), y windows.

Al grano: En este tutorial veo el programa para java que me pareció lo más simple y me di cuenta que es muy similar a C pero ¿y el programa del PIC?  :( alguien sabe dónde encuentro o cómo hago el programa para que pueda trabajarlo en boostC, de esta manera podría enseñar todo esto en prácticamente un solo lenguaje o lo más similar posible a uno solo.

Disculparán por intentar ser un profesor simplista pero me gusta fomentar la legalidad antes que nada.

Muchas gracias.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Septiembre 21, 2009, 03:14:34

Hola payatronico, bienvenido al foro! No me parece que tu post este fuera de lugar.

Respecto a fomentar el uso de herramientes gratuitas y sobre plataformas libres me parece una muy buena iniciativa, y mas aun sabiendo que es un trabajo muy pesado el investigar las herramientas libres y sortear los bugs y problemas que tienen la mayoria de estas.

Sobre el tema de Java y USB, te comento que la interfaz hace uso de la libreria dinamica de microchip (mchpusb.dll), la cual todavia no fue portada a linux por el equipo de microchip, por lo que desconozco si alguien logro hacer uso de una comunicacion via clase generia usb en linux.Además, el firmware del pic (podes encontrarlo en divideandconquer.com.ar), esta desarrollado en C de CCS y usando las librerias USB que proporciona CCS.Asi que como verás, el panorama de "usb con clase generica" esta bastante nublado para os desarrolladores en plataformas libres.

Lo que te recomiendo, y creo que varios estarian de acuerdo, es optar por usar la "clase usb cdc" que emula un puerto serie virtual en el ordenador en el que es conectado.Esta "clase CDC" no necesita de drivers, pues es una especificacion normalizada en todos los sistemas operativos, y estos suelen incluirla en la instalacion por

Page 85: Tutorial Pic Usb Java

defecto del mismo.Luego, una vez conectado el dispositivo, solo resta utilizar el lenguaje que uno mas guste para comunicarse con los puertos "/dev/ttyS".En Java por ejemplo, puedes usar la clase rxtx, la estuve probando estos dias, junto con otro usuario del foro y no nos dio ningun problema.

Usando CDC, solucionarias el problema de la falta de los drivers de microchip para linux, pero todavia tendrias el problema de el firmware en el pic, ya que tendrias que encontrar algun compilador gratuito que incluya las rutinas usb y que sea capaz de implementar un dispositivo cdc en el pic.

Bueno, espero haberte ayudado en algo. De paso te felicito por la iniciativa.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Daniel_E en Septiembre 22, 2009, 01:14:12

Como te va gero muy buen foro Lo he puesto en practica y a funcionado a la perfeccion, he creado mi propio programa para graficar en tiempo real pero la velocidad que deasrrallo es muy baja en un comentario dice que la velocidad es en milisegundos, pero mi proyecto necesita una velocidad mayor por este motivo me cambie a la cominicacion USB si me pudiera ayudar a mejorar el programa le quedo en deuda.las lineas que utilizo son :            send_command(Canalx);            nivel = new String(read_response(3), "utf-8");            h=Integer.parseInt(nivel);  //para capturar el dato 

 public byte[] read_response(int maxbytes) {        return iface.QRead(maxbytes, 80); } //

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Septiembre 22, 2009, 02:40:01

Hola Daniel, bienvenido al Foro!Lo que puedes hacer para obtener buenas velocidades es hacer transferencias en rafagas.Esto consiste en crear un buffer en el PIC y luego, cuando llega a llenarse a un nivel que tu consideras apropiado, lo mandas.De esta manera, llevas al minimo el overhead ocasionado por el echo mismo de enviar un dato.Recuerda que en la PC debes levantar tantos bytes como fueron enviados por el PIC.

Page 86: Tutorial Pic Usb Java

Espero que te sirva.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Lectra en Septiembre 28, 2009, 12:00:33

Hola de nuevo sigo con lo del problema básico  :'(  : les publico el código como me lo recomendaron, bueno la dificultad que se presenta es la siguiente cuando en el programa del PIC dejo las líneas  result1=8;,result0=8 visualizo en la pc 00 y cuando lo coloco result1=”8”;,result0=”8”  me aparece las letras “RX”  yo solo necesito que me visualice el 8 sin colocarlo entre comillas solo ese numero sin mas ni mas, les agradezco que me colaboren 

Código:package primer_usb;import jPicUsb.*;

/** * * */public class Main{

    /**     * @param args the command line arguments     */    public static void main(String[] args)    {        try        {             iface.load();//++++++++++++            //System.out.println("Presione una tecla cuando desee conectarse con el dispositivo.");            //System.in.read();        }        catch(Exception e)        {            System.out.println("Error al cargar jpicusb.dll.");            System.out.println(e.getMessage());            return;        }        try        {            System.out.println("Presione una tecla cuando desee conectarse con el dispositivo.");            System.in.read();         //   iface.load();         //   iface.set_vidpid("vid_04d8&pid_000b");         //   iface.set_instance(0);        }

Page 87: Tutorial Pic Usb Java

        catch(Exception ex)        {          System.out.println(ex.getMessage());           // System.out.println("Error al cargar jpicusb.dll.");           // System.out.println(e.getMessage());           // return;        }

        //byte[] QWriteRead(byte[] salida, int writeout, int readin, long timeoutmsec)        byte[] out = new byte[10];        out[0]=99;        /*out[1] = 1;        out[2] =1;        */       // iface.set_vidpid("vid_04d8&pid_000b");       // iface.set_instance(0);        try        {            String data_in = new String(iface.QWriteRead(out, 1, 2,1000) );                       if(data_in.length() == 0)            {                System.out.println("No se recibieron datos");            }            else            {                System.out.println("Datos recibidos:" + data_in);            }        }        catch(Exception ex)        {            System.out.println("ERROR:" + ex.getMessage());        }    }

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Septiembre 29, 2009, 11:17:43

Hola Lectra,si quieres visualizar la respuesta como caracteres, debes hacer en el pic:Código:result1='8';result0='8';

De esta forma, envias el byte que representa el caracter 8.Sin colocar las comillas, estas enviando el byte cuyo valor es 8 decimal, que representa un backspace, o quien sabe qué jeje. Ver tabla (http://www.asciitable.com/)Salutes!

Page 88: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Lectra en Octubre 04, 2009, 12:52:05

Muchas gracias por haber  colaborado con las dudas al respecto de manejo del puerto, :rolleyes2:  por tomarse el  tiempo  para responder a las inquietudes muchas gracias Gero,   :rolleyes2: por ahora solo  me queda un interrogante, en cuando realizo la conversión de byte a int en java utilizando el metodo  “getBytes” , trabajo bien mientras no envie datos mayores a 125 desde el Pic apartir de este numero el codigo me genera Error 2 y  me visualiza numeros  negativos incongruentes con los valores enviados, buscando solucionar este problema he tratado de cargar en un arreglo tipo byte los datos almacenados en en el buffer de  entrada utilizando la siguiente forma

                for(int i=0; i<= data_in.length;i++ )                {                byte [] pepe = new byte[data_in.length];                pepe=data_in.toString().getBytes();                System.out.println("Datos recibidos:" +  data_in);                }pero para este caso en particular en el momento de imprimir me imprime espacio vacio,  :idiot: bueno por la ayuda de antemano gracias

// proyecto que realiza comunicacion por puerto usb pero solo convierte bytes//hasta 125 falla pendiente por corregirpackage primer_Usb;import jPicUsb.*;public class Main{    public static void main(String [ ] args){        try{            iface.load();            //configuramos el vid_pid del dispositivo asi podemos usar las funciones "rapidas" de la interfaz         // iface.set_vidpid("vid_04d8&pid_000b");

        }catch(Exception e){            System.out.println("Error al cargar jpicusb.dll.");            System.out.println(e.getMessage());            return;        }        try {            System.out.println("Presione una tecla cuando desee conectarse con el dispositivo.");            System.in.read();        } catch (Exception ex) {            System.out.println(ex.getMessage());        }

Page 89: Tutorial Pic Usb Java

        byte[] out = new byte[2]; //Creacion del Buffer de Salida        out[0] = 99; //Comando 99 en el primer byte del buffer

                    /////////////////////////////////////////////////////////////////////////////        try{             String data = new String(iface.QWriteRead(out, 1, 6, 1000)); //Enviar 1 byte del buffer y leer 6 bytes de respuesta             if (data.length() == 0)               {               System.out.println("No se recibieron datos");               } else                 {                 byte texto []= data.getBytes();                System.out.println("Datos recibidos:" + texto[0]);// cuando entra un dato mayor de 125 entrega valores                 }                                                               //negativos en la conversion de byte a int             }catch(Exception ex)             {            System.out.println("ERROR:" + ex.getMessage());             }        return;

    }}

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: locowarcraft en Octubre 07, 2009, 12:12:24

Hola amigo, verás, tengo un problema. Instalé el Proteus 7.4 y abrió tu aplicación correctamente, detectó el dispositivo y me pidió que instale el driver. En una oportunidad me salió un pantallazo azul y en el resto de veces me sale (error codigo 10). Y no funciona la aplicación en java puesto que el driver del dispositivo no fué correctamente instalado. No sé si me podrás ayudar en ese detalle. ^^ :'(

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: xesc0 en Octubre 07, 2009, 06:25:04

Este tipo de fallos son difíciles de arreglar para alguien externo al pc. Si me pasara a mi reinstalaría el proteus y el driver o probaría con otra versión. Si te sale otro fallo así es posible que pueda ser alguna carencia en tu pc. :)

Page 90: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Nevermore en Octubre 10, 2009, 06:47:40

Hola a todos, primero que nada quiero agradecer enormemente a Geronimox por todo su trabajo en esta librería, Java es mi lenguaje preferido y disponer de todos estos ejemplos para la comunicación USB con los PIC me ayudó muchisimo.  :rolleyes2:

@LectraEspero que las siguientes líneas ayuden a resolver tu problema:

Primero lo básico...1 byte = 8 bits, con 8 bits el valor máximo que podemos almacenar es 256 (0-255) unsigned, es decir todos positivos.En Java 1 byte sigue siendo 8 bits por lo cual tambien puede almacenar un valor máximo de 256 pero lo hace a partir de -128 a 127

Si quieres "positivizar" un byte en Java tienes que transformar ese byte al siguiente tipo de dato que permita almacenar por lo menos el valor 255 positivo, para el caso podemos usar un short (16 bits, -32768 a 32767), un int (32 bits, -2147483648 a 2147483647) o un long (64 bits, enooorrrrme).

Ejemplo:Recibimos un array de bytes desde el PIC (PIC --> Java), hoy dia me desperte con ganas de desperdiciar memoria asi que vamos a usar intsCódigo://Codigo Javabyte res[] = iface.QRead(32, 500);         //llenamos res[] con los datos que nos envia el PICif(res.length > 0) {                              //verificamos si obtuvimos respuesta    int positivos[] = new int[res.length];  //creamos un array de enteros con la misma dimension de res[]    for(int i = 0; i < res.length; i++) {        positivos[i] = res[i] & 0xFF;          //aca esta el "truco", al hacer uso del operador lógico & con el hexadecimal 0xFF                                                      //positivizamos el valor y lo almacenamos en una variable capaz de contenerlo    }    //aca puedes hacer lo que quieras con los datos de positivos[]}

Espero te sirva  :smiley:

Segunda parte... leer valores mayores a 1 byte desde un array de bytes, en unos momentos que me dio hambre  :P

Page 91: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Nevermore en Octubre 10, 2009, 07:56:50

Esto me paso hace un par de dias, resulta que estuve aprendiendo a usar el ADC en 10 bits (valores desde 0 a 1023) y no sabia como transmitir o leer esos datos al PIC ya que se transmite un array de bytes (int8, char).

Finalmente encontre la solucion en los foros de CCS y en esta página: http://www.petefreitag.com/item/183.cfm

Ejemplo:Código://Codigo CCS Cvoid LeerADC(void) {    int16 val;    byte to_send[3];    delay_ms(100);    val = read_adc();    if(usb_enumerated) {        to_send[0] = 3;                   //3 es el valor que uso para identificar que es una lectura ADC        to_send[1] = make8(val, 1);        to_send[2] = make8(val, 0);        //make8(value, MSB) nos permite dividir una variable mayor a 1 byte en bytes        //MSB significa most significant byte y puede ser 0,1,2 ó 3        usb_put_packet(1, to_send, 3, USB_DTS_TOGGLE);    }}

Funcion en JAVA que nos permite leer int16 desde un array de bytes:Código://Codigo Java//Si los parametros son correctos retorna un positivo, de otra forma retorna -1private int unsignedShortToInt(byte[] b, int offset){    int i = -1;    if(b.length >= 2){        if(offset <= (b.length - 2)){            i = 0;            i |= b[offset] & 0xFF;            i <<= 8;            i |= b[offset + 1] & 0xFF;        }    }    return i;}

Usando la función:Código://Codigo Javaint val;byte res[] = iface.QRead(32, 500);

Page 92: Tutorial Pic Usb Java

if(res.length > 0) {    if(res[0] == 3) {         //3 es el codigo que uso para identificar ADC        val = unsignedShortToInt(res, 1);    }}

Espero que a alguien le sirva de ayuda, saludos.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: wombat en Octubre 12, 2009, 03:26:33

Ya me salio jajaja, que patetico... despues de un chorro de tiempo. Gracias por los esquemas y todo geronimox jajaja. Bueno contare cual era mi error. Lo que pasa es que conectaba el Vcc de la usb al Vusb del pic, cuando deveria de aver ido a la Vcc del proto. Ya se que era algo que aparecia claramente en el esquema pero luego uno supone mucho jajaja. si hubiera sido alguien totalmente inexperto del tema me hubiera jalado en ese mismo rato.  jajajaja. bueno, como dato por si alguien empieza a construir castillos en el aire jajaja.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Octubre 19, 2009, 10:31:46

 ;D que bien wombat  ;D me alegro que hallas solucionado el problema!Nevermore gracias por la mano! no podia responder esas preguntas por que estoy en el horno con la facu  :PSaludos! Y bienvenido al foro  ;)

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: VelazquezBio en Octubre 21, 2009, 07:58:08

Estoy leyendo el manual de primeros pasos. muy bueno.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Felixls en Noviembre 03, 2009, 05:05:02

Cita de: geronimox en Septiembre 21, 2009, 03:14:34Hola payatronico, bienvenido al foro! No me parece que tu post este fuera de lugar.

Respecto a fomentar el uso de herramientes gratuitas y sobre plataformas libres me parece una muy buena iniciativa, y mas aun sabiendo que es un trabajo muy pesado el investigar las herramientas libres y sortear los bugs y problemas que tienen la mayoria de estas.

Sobre el tema de Java y USB, te comento que la interfaz hace uso de la libreria dinamica de microchip (mchpusb.dll), la cual todavia no fue portada a linux por el equipo de microchip, por lo

Page 93: Tutorial Pic Usb Java

que desconozco si alguien logro hacer uso de una comunicacion via clase generia usb en linux.Además, el firmware del pic (podes encontrarlo en divideandconquer.com.ar), esta desarrollado en C de CCS y usando las librerias USB que proporciona CCS.Asi que como verás, el panorama de "usb con clase generica" esta bastante nublado para os desarrolladores en plataformas libres.

Lo que te recomiendo, y creo que varios estarian de acuerdo, es optar por usar la "clase usb cdc" que emula un puerto serie virtual en el ordenador en el que es conectado.Esta "clase CDC" no necesita de drivers, pues es una especificacion normalizada en todos los sistemas operativos, y estos suelen incluirla en la instalacion por defecto del mismo.Luego, una vez conectado el dispositivo, solo resta utilizar el lenguaje que uno mas guste para comunicarse con los puertos "/dev/ttyS".En Java por ejemplo, puedes usar la clase rxtx, la estuve probando estos dias, junto con otro usuario del foro y no nos dio ningun problema.

Usando CDC, solucionarias el problema de la falta de los drivers de microchip para linux, pero todavia tendrias el problema de el firmware en el pic, ya que tendrias que encontrar algun compilador gratuito que incluya las rutinas usb y que sea capaz de implementar un dispositivo cdc en el pic.

Bueno, espero haberte ayudado en algo. De paso te felicito por la iniciativa.Saludos!Geronimox, y este desarrollo no podría servir para hacer lo que necesita payatronico?http://vasco.gforge.enseeiht.fr/

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Noviembre 03, 2009, 08:53:32

 :shocked:me parece que si... por lo que estuve leyendo es exactamente esoun laburo de la mie* se tomo el autormuy muy increible

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Felixls en Noviembre 03, 2009, 09:08:56

Viste?, jeje, y además usa mi compilador favorito y gratuito, SDCC  :bang: :bang:

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Noviembre 03, 2009, 09:11:42

estaba casi 100% seguro que no existia nada parecido para linux..probaste el framework PUF?

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)

Page 94: Tutorial Pic Usb Java

Publicado por: Felixls en Noviembre 06, 2009, 06:55:27

Cita de: geronimox en Noviembre 03, 2009, 09:11:42estaba casi 100% seguro que no existia nada parecido para linux..probaste el framework PUF?No pude probarlo todavía geronimox, estoy haciendo tantas cosas a la vez!, que ya deseo que el día tenga 90 horas así pruebo todo lo que quiero probar  ;D

Por lo poco que vi estaba implementado un bootloader, el código me gustó, pero no hice pruebas, ni nada...

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Fire en Noviembre 12, 2009, 01:43:49

hOLAME GUSTARIA Q ME INDICARAS COMO REALIZAR ESTA APLICACION PERO EN ECLIPSE,  YA Q CUANDO REALIZAO LOS PASO, BASANDOME EN EL CAMBIO DE IDE, ME SALEN MUCHSO ERRORES.....PORFA TU AYUDA ES MUY IMPORTANTE.....pd: soy nueva en este campo... :'( : y no quiero  :titanic con este proyecto 

gracias

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: sergio64 en Noviembre 12, 2009, 10:59:48

geronimox :Que mas tengo una sencilla duda, en la parte de la captura de datos provenientes del PIC, como sabes que llego un dato, sin la necesidad de hacer un "poli", es decir que si lo tienes por interrupciones la llegada de los datos.Como hacer para saber que hay un dato en el buffer del úerto USB.... Agradeceria tu mas pronta respuesta.... 

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Noviembre 12, 2009, 02:24:50

Cita de: Fire en Noviembre 12, 2009, 01:43:49hOLAME GUSTARIA Q ME INDICARAS COMO REALIZAR ESTA APLICACION PERO EN ECLIPSE,  YA Q CUANDO REALIZAO LOS PASO, BASANDOME EN EL CAMBIO DE IDE, ME SALEN MUCHSO ERRORES.....PORFA TU AYUDA ES MUY IMPORTANTE.....pd: soy nueva en este campo... :'( : y no quiero  :titanic con este proyecto 

gracias

Page 95: Tutorial Pic Usb Java

Comentame que errores te da Eclipse aver si te puedo ayudar...

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Noviembre 12, 2009, 02:29:15

Cita de: sergio64 en Noviembre 12, 2009, 10:59:48geronimox :Que mas tengo una sencilla duda, en la parte de la captura de datos provenientes del PIC, como sabes que llego un dato, sin la necesidad de hacer un "poli", es decir que si lo tienes por interrupciones la llegada de los datos.Como hacer para saber que hay un dato en el buffer del úerto USB.... Agradeceria tu mas pronta respuesta.... 

Hola Sergio, la verdad desconozco... Esos son temas que todavia tengo pendientes... Espero que si te sacas la duda, despues me cuentes por aca la forma de lograrlo..Saludos.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Fire en Noviembre 13, 2009, 10:14:07

geronimox :

Hola, pues te cuento q ya puede hacer la conexion por ECLIPSE (hay q hacer mas vueltas ademas de las q mencionas en el tutor), ahora quisiera q me colaboraras si no es mucha molestia, de cuales son las funciones q me permitirian a mi programa, enviar instrucciones por el puerto USB .....

PD: si tienes un ejemplo mucho mejor...... :laugh: :rolleyes2:

Gracias

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Noviembre 14, 2009, 01:50:47

Hola Fire.. AQUI (http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/) podes encontrar la documentacion y un ejemplo  ;DSaludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: sergio64 en Noviembre 16, 2009, 10:59:25

Page 96: Tutorial Pic Usb Java

Hola Geronimox:Graciass. te comento estoy realizando mi proyecto de grado el cual esta basado en un prototipo de una maquina CNC "Control NUmerico Computacional", la cual esta basada en una Intefaz en java que me permite capturarun Archivo .txt que contiene las coordenadas de todas las  perforaciones de las baquelas, este archivo lo genere en En el softwareCAD Eagle por medio de los archivos Excellon, estos datos los guardos en dos vectores uno contiene las coordenadas del eje X y el otro las coordenadas del eje Y.Despues de tener estos datos ya guardados en dichos vectores le indico al PIC que ya estoy listo para enviarle los datos y el me responde que los puedo enviar. primero le envio por USB una coordenada, "(X,Y) donde X,Y es un valor numerico dado en milimetros",de un punto entonces la maquina hace lo suyo, jejej, es decir se ubica en dicha coordenada y perfora la baquela, despues de haber hecho esto le indico a la interfaz que me envie otra coordenada.  aaaaqui es lo que yo me refiero despues de que yo le envio desde java una coordenada y el PIC hace lo suyo no quiero dejar a java en un poli o en un while esperando a que llege la indicacion proveniente del PIc a que le envie el otra coordenada, yo lo tengo funcionando asi pero quisiera saber cambiarlo por eso te pregunto a ver si lo tenes por interuciones de todas maneras por ahy estoy viendo algo referente a usb por interrupciones si me funciona te aviso okaaaaaaaaaaaaa

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: sergio64 en Noviembre 17, 2009, 11:55:59

Hola Geronimox:Otra pegunta que tenia pendiente como le indicas a QWriteRead por que puerto USB transmitira los datos..bueno mi driver del pic se instalo en el COM16, como le digo a java que trasmita por ese puerto............... ejjejeje

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Noviembre 17, 2009, 09:54:23

Hola Sergio!Por lo que comentas, estas usando la clase CDC, la cual emula un puerto serie sobre USB.Para este caso, no necesitas usar jpicusb en java. Directamente podes acceder a los puertos COMM en java usando las "Java Communication API"Si deseas usar jpicusb, debes cambiar el codigo en el PIC asi no use la clase cdc, sino una clase "custom driver". Asi como se muestra en estos

Page 97: Tutorial Pic Usb Java

(http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/) ejemplos.

Sobre tu pregunta de hacer un polling sin quedarte colgado en un lazo infinito, podes crear un Timer como se discutio aqui (http://www.ucontrol.com.ar/forosmf/programacion-en-java/tutorial-java-pic-usb-%28primeros-pasos%29/75/)

Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dolphinr2d2 en Noviembre 18, 2009, 05:16:18

Soy nuevo en esto, tengo que trabajar con un PIC18F14K50, básicamente lo único que tengo que hacer es mandar un mensaje del PIC al PC y viceversa. Pero pues para lograr esto hay que configurar el PIC primeramente, del modo en que va a trabajar, y saben, los pipes, endpoints, velocidad, carga de datos de transmisión por (micro)frame, etc., el problema es que también se tiene que configurar el host (PC) supongo de acuerdo a como va a trabajar el microcontrolador, como logro hacer esta interfaz con JAVA, no se nada de Java, o hay alguna otra opción?, alguien que me pueda ayudar de favor, como lograr que la PC detecte el microcontrolador, y si es necesario que el micro tenga todos los datos de configuración llenos para que lo pueda detectar.De antemano muchas gracias

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Noviembre 18, 2009, 11:37:32

Hola Dolphinr2d2, las 14 paginas de este thread, tratan exactamente de eso  ;)Si queres bajarte ejemplos, podes hacerlo aqui (http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/)Saludos! Y Bienvenido al foro!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: javierdpp en Diciembre 10, 2009, 11:26:34

tengo el siguiete problema corrO el proyecto en netbeans pero no me reconoce el dispositivo es decir en la etiqueta me indica “dispositivo no conectado” realmente es mi primera experiencia con proteus y no se que estoy haciendo mal corro la simulacion (nuevo hardware encontrado pero me dice ocurrio un problema con la instalacion del hardware) si pudieras ayudarme te lo agradeceria

Page 98: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: javierdpp en Diciembre 11, 2009, 01:10:14

 :idiot: :idiot: jejejejeje no le habia instalado los drivers la verdad soy muy nuevo en esto

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: marturetjulio en Diciembre 25, 2009, 05:45:28

hola geronimox queria saber si me podías ayudar con un problema..fijate yo vi tu post que me parece super excelente para programadores que estamos empezando en java...yo ya he trabajado en java y con el compilador net beans y entiendo eso mas o menos,pero me falta es practicar mas...lo que quiero es empezar a hacer programas que se comuniquen con el pic..ya se programar en picc...pero no había manejado el puerto usb solo el serial...por eso quiero avanzar y aprender a manejar este puerto...y todas las instrucciones que esto implica...yo descargue el demo que tu colocaste en tu pagina con la librería que creaste, corri el programar en net beans y funciona a la perfección y luego lo simule en el proteus pero como ya había leído que debía instalare los drivers, se los instale antes de arrancar la simulación..luego arranque la simulación y me salio el mensaje de instalar el driver de microchip busque lo que descargue del demo que hiciste y los instalo y funciono, se comunico el programa en java con la simulación...pero aquí viene el problema prendi los bombillos y se prendian en la simulacion pero cuando active las otras opciones por ejemplo la del deslizador pareciera que se colgara la simulacion pues no hiso mas nada y le di conectar de nuevo al programa en java y decia dispositivo no conectado...asi que cerré la simulación y volví a instalar los driver usb de proteus y volví a arrancar la simulación y me volvió a pedir el driver le instale de nuevo el driver de microchip y funciono otra vez pero hace lo mismo se cuelga si toco alguno de los otros controles que no sean los bombillos. NO SABES PORQUE PUEDE PASAR ESTO...y porque debo instalar los drivers de nuevo cada vez que le doy simular... es así o es mi pc que me quita los driver

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: marturetjulio en Diciembre 25, 2009, 08:13:49

hola amigos intente hacer el codigo que hiso gero en su tutorial pero no me da me genera un error aqui lo posteo para ver si me pueden ayudar...la libreria la lee bien pero al darle al martillito para compilar me genera un error relacionado con el area de texto ..al parecer no la reconoce..espero me pueden ayudar a detectar este error o mejor dicho como solucionarlo

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)

Page 99: Tutorial Pic Usb Java

Publicado por: marturetjulio en Diciembre 25, 2009, 08:20:24

aqui les adjunto una imagen del error como se ve en net beans

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Diciembre 25, 2009, 09:48:22

Buenas!Creo que el problema de desinstalacion de los drivers se debe a que cuando uno exige demasiado a la simulacion, el proteus no puede simular en tiempo real, y al menos a mi, me trajo varios problemas. Si mal no recuero uno de los problemas que tenia al hacer llegar al 100% a la simulacion usb, era que me lanzaba pantallazos azules, asi que no me pareceria extraño que se corrompiera el puerto usb virtual.

Sobre el error que obtienes en netbeans, estaria bueno que nos mostraras que dice el cartel que aparece al señalar la bolita roja a la izquierda del renglon subrayado de rojo.

Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: marturetjulio en Diciembre 26, 2009, 12:46:14

hola amigo gracias por responder aquí te mando las imágenes la primera es cuando posiciono el mouse sobre le bolita roja y el segundo es el mensaje de salida que sale al compilar...en cuanto a lo de proteus si yo pienso que es eso también pero no habrá una forma de solucionar eso.ahora me encuentro tratando de entender el programa en picc...es decir entendiendo las instrucciones de usb que son nuevas para mi...salu2

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: marturetjulio en Diciembre 26, 2009, 05:01:20

hola queria saber si me podian orientar con este programa para el pic...lo que hice fue modificar el programa demo de gero para adaptarlo  que transmitiera el valor del adc...entonces decidi postearlo aqui para que me digan si esta bien...y como podria hacer una programa en java para recibirlo y mostrar ese dato en una area de texto espero  me puedan ayudar y gracias de antemano 

////////////////////////////////////////////////////////////***** ENVIAR EL VALOR DEL ADC POR EL PUERTO USB********

Page 100: Tutorial Pic Usb Java

//////////////////////////////////////////////////#include <18F4550.h>#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN#use delay(clock=48000000)

/////////////////////////////////////////////////////////////////////////////////////////////////////// CCS Library dynamic defines. For dynamic configuration of the CCS Library// for your application several defines need to be made. See the comments// at usb.h for more information/////////////////////////////////////////////////////////////////////////////////////////////////////#define USB_HID_DEVICE FALSE // deshabilitamos el uso de las directivas HID#define USB_EP1_TX_ENABLE USB_ENABLE_BULK // turn on EP1(EndPoint1) for IN bulk/interrupt transfers#define USB_EP1_RX_ENABLE USB_ENABLE_BULK // turn on EP1(EndPoint1) for OUT bulk/interrupt transfers#define USB_EP1_TX_SIZE 32 // size to allocate for the tx endpoint 1 buffer#define USB_EP1_RX_SIZE 32 // size to allocate for the rx endpoint 1 buffer

/////////////////////////////////////////////////////////////////////////////////////////////////////// Include the CCS USB Libraries. See the comments at the top of these// files for more information/////////////////////////////////////////////////////////////////////////////////////////////////////#include <pic18_usb.h> // Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver#include <header.h> // Configuración del USB y los descriptores para este dispositivo#include <usb.c> // handles usb setup tokens and get descriptor reports

#define Enciende Output_High#define Apaga Output_Low#define Conmuta Output_Toggle#define RecCommand recbuf[0]#define LedParam recbuf[1]#define COMMAND_FIRMWARE 99#define COMMAND_LEDS 88

const int8 Lenbuf = 32;

/////////////////////////////////////////////////////////////////////////////////////////////////////// RAM, RAM, RAM

Page 101: Tutorial Pic Usb Java

/////////////////////////////////////////////////////////////////////////////////////////////////////char Version[] = "v.1.0";int8 recbuf[Lenbuf];int8 sndbuf[Lenbuf];

/////////////////////////////////////////////////////////////////////////////////////////////////////// M A I N/////////////////////////////////////////////////////////////////////////////////////////////////////void main(void) {int adc0;setup_adc_ports(AN0|VSS_VDD);SETUP_ADC(ADC_CLOCK_INTERNAL);SET_ADC_CHANNEL(0);  delay_ms(500);  usb_init();  usb_task();  usb_wait_for_enumeration();  enable_interrupts(global);  while (TRUE){    if(usb_enumerated()){      if (usb_kbhit(1)){        usb_get_packet(1, recbuf, Lenbuf);        if(RecCommand==COMMAND_FIRMWARE){          adc0 = read_adc();          usb_put_packet(1,adc0,1,USB_DTS_TOGGLE);        }      }    }  }}

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: marturetjulio en Diciembre 29, 2009, 03:17:28

hola amigos del foro ya logre transmitir el valor del adc con el pic a la pc y recibirlo y mostrarlo en un area de txto igual que como hiso nuestro amigo gero aqui les adjunto el programa del pic que esta bien comentado y el cual es una modificación del programa que gero hiso al principio del tutorial...tambien adjunto el programa en java para la pc y la simulacion del programa en proteus...coloco esto porque asi como gero me ayudo al colocar este post yo quiero ayudar a los que necesiten enviar este tipo de dato a la pc...bueno salu2 a todos espero les sirva de utilidad

Page 102: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Diciembre 29, 2009, 04:46:35

Hola marturetjulio.Me alegro que hallas solucionado tu problema!Y que compartas la solucion, ya que es algo que se pregunto varias veces en este post, y va a servirle a mucha gente.Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: marturetjulio en Diciembre 30, 2009, 02:53:00

hola gero 

si espero que le sea de utilidad a algunos compañeros..bueno aqui voy a postear una forma de hacer lo mismo pero con 4 variables ya que lo mas común es eso enviar varias variables...lo que hace este proyecto es enviar 4 valores adc del pic (que bien podrían ser sensores) y el programa en java los recibe cada vez que se presiona el botón indicado para esto...

pero bueno de tanto hacer pruebas recorde que ya que una de esas variables que voy a enviar es un sensor de temperatura,  quisiera saber si me podían ayudar en algo, y es que yo quisiera que el valor adc que llega desde el pic, graficarlo en una "barra de progreso" como las que salen en la paleta de contenedores de swing....como saben la información procedente del pic se guarda en principio en arrays de bytes que se llama respuesta...y luego yo lo convierto a string para poder visualizarlo en el textfiled o textarea...pero aparte de colocarlo en el textarea quisiera que la barra de progreso se llene  o se vacie con respecto al valor que llega del pic...si alguno a trabajado con estas barras de progreso le agradecería su ayuda...gracias de antemano... porque por mas que trate no encontre la forma...es que estoy aprendiendo java..

salu2....les deseo un feliz año nuevo

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: npoblet en Enero 07, 2010, 11:26:55

Hola!

Estoy empezando con el proyecto pic+usb. Ya tengo el circuito montado con la placa, he cargado el firmarware y no funciona, ni tampoco lo detecta el pc. Para probar, he incluido en el codigo que se encienda un led solo empezar pero solo lo he conseguido configurandolo con clock interno.

Page 103: Tutorial Pic Usb Java

Para el proyecto usb tengo una pregunta concreta: si no me funciona el pic con un oscilador externo de 20 MHz, es posible correr el codigo con un cristal de 4MHZ y clock interno?

He configurado las opciones con el winpic pero no hay manera, ni con el de 4MHz externo lo he conseguido.

Alguna idea? 

Me he leído todas la paginas y no he econtrado nada al respecto :(

 

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: marturetjulio en Enero 08, 2010, 12:24:46

si amigo si se puede correr el pic con un oscilador de 4MHZ cambiale esta linea de programa a tu programa...se debe a la configuracion interna del pic 

#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,VREGEN

y si el cristal es de 20Mhz seria asi

#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,VREGEN

la pagina donde esta muy bien explicado esto es la siguiente:http://picmania.garcia-cuervo.net/conceptos.php#USB4Mhz

espero eso te ayude

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: marturetjulio en Enero 08, 2010, 12:27:03

me equivoque en pll1 cambiale  a PLL5 en el de 20 Mhz y en esa pagina busca un tema  con este nombre "Consiguiendo 4 Mhz para los 48 Mhz necesarios en los PIC's con USB 2.0"...

salu2

Page 104: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: npoblet en Enero 08, 2010, 01:13:54

Gracias!

Al final eran los condensadores tenia puestos unos de 33pF y los he cambiado por 15pF, ya funciona con:#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOMCLR ( en mi caso no uso MCLR)

Siguiente paso: conecto al pc y aparece nuevo hardware encontrado, le indico la carpeta del driver pero me dice que no lo encuentra. Me dice no hay info sobre driver en la carpeta...

En el panel de control me aparece dispositivo desconocido.

Lo he probado con el XP.

Alguna idea?

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: npoblet en Enero 09, 2010, 02:40:34

Ya me detecta el dispositivo!!

Por si interesa:he desactivado los pull up del usb y he puesto un pull up externo a D+ de 1.5K

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: morgan en Enero 29, 2010, 01:48:01

Muy buen código el que has  aportado mi estimado amigo, sobre tu problema creo haber entendido que quieres ver como varia  el nivel de agua por decir  así quepara lograr eso en un progresbar  tienes que usar hilos en java para así lograr que varié el porcentaje  voy hacerme un tiempo este fin de semana haber si te logro sacar el código en java que necesitas si deseas proporcionarme tu mail seria genial para así enviártelo.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: marturetjulio en Febrero 06, 2010, 06:49:06

Page 105: Tutorial Pic Usb Java

hola amigo no te había respondido porque estaba metido en lo de los capítulos de la tesis...y bueno muchas gracias por querer ayudarme para eso estamos todos para ayudarnos entre nosotros mismos...mi correo es [email protected] si eso es lo que quiero hacer amigo...muchas gracias de antemano...

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: alexandernitro en Marzo 07, 2010, 05:00:13

hola muchachos..... tengo una inquietud.... tengo funcionando una plicacion del 18f4550 con una interfaz en java en mi computador de escritorio, pero en el momento qeu hago lo mismo en el portatil, al momento de conectar el usb, o no lo reconoce, o aparece un pantallazo azul, y luego reinicia el computador, quiciera saber si hace falta algun controlador o algo esto hacindo mal!!!! 

de antemano muchas gracias por su respuesta!!!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: marturetjulio en Marzo 09, 2010, 04:12:09

hermano creo que estas conectando el cable usb mal pero con el pic... y revisa que esten instalados los drivers de los puertos usb...haslo y nos comentas

salu2

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: npoblet en Abril 02, 2010, 09:49:01

Con VISTA hace lo de los pantallazos azules.. a mi tambien me pasaba con el usb del pic y con el propio grabador GTP-USB.

Debe tener problemas con el driver. 

Es un xxxxxx. 

Cambia al XP.

Saludos

NOTA: Editado por el vocabulario empleado

Page 106: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: marturetjulio en Abril 11, 2010, 10:37:47

SALUDOS A TODOS LOS AMIGOS DE ESTE FORO QUERÍA POSTEAR UN AVANCE QUE HE LOGRADO GRACIAS A LA AYUDA DE OTRO GRAN AMIGO DEL FORO CONOCIDO COMO MORGAN A QUIEN LE ENVIÓ MIS SALUDOS TAMBIÉN Y A GERO POR HABER INICIADO EL TEMA...BUENO AQUÍ LES ADJUNTO EL CÓDIGO DE UN MICRO QUE LEE LA INFORMACIÓN DE 4 VARIABLES Y LAS TRANSMITE VÍA USB EN DONDE EL SOFTWARE EN JAVA SE ENCARGA DE RECIBIR EL DATO Y LLENAR 4 TANQUES DEPENDIENDO DEL VALOR DE ENTRADA, SI TIENEN ALGUNA DUDA CON EL CÓDIGO NO DUDEN DE PREGUNTAR. TAMBIÉN INCLUYO LA SIMULACIÓN. SOLO DEBEN COMPILAR EL ARCHIVO "ADC CON 4 VARIABLES.C" Y LUEGO CARGARSELO A LA SIMULACION Y POR SUPUESTO COPIAR LA CARPETA DE JAVA Y PEGARLA EN LA CARPETA DE NETBEANSPROJECTS QUE USUALMENTE SE UBICA EN MIS DOCUMENTOS.

BUENO ESPERO LES SIRVA DE AYUDA!...

SALU2

MARTURET JULIO

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: JLondoño en Abril 15, 2010, 10:39:36

Estoy tratando de graficar los datos que recibo del PIC, pero mi problema es que la variable en la data_in es una variable local de un metodo privado, alguien sabe como puedo  guardar varios datos en un arreglo  para luego utilizarlos en una clase que utiliza la libreria de Jfreechart.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: servando en Abril 26, 2010, 10:11:13

HOLA GERO ANTES QUIERO DARTE LAS GRACIAS POR EL TUTORIAL DE PIC-USB MUY BUENO, DE HECHO SEGUI EL TUTORIAL Y YA TENGO EL ARRANQUE  SOLO QUE TENGO UNA DUDA SI DESEO UTILIZAR LOS PUERTOS DEL PIC CON ALGUNOS SENSORE. Y ME GUSTARIA SABER QUE CODIGOS SE UTILIZA EN JAVA  PARA QUE ME DETECTE LAS SEÑALES QUE MANDE EL SENSOR(DE PRECENSIA) AL PIC Y DEL PIC A JAVA

LA VERDAD ME INTERESA MUCHO SABER ESTOS CODIGOS QUE SE RELACIONAN CON LAS SALIDAS DIGITALES DEL PIC A JAVA..

Page 107: Tutorial Pic Usb Java

MUCHAS GRACIAS .......

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Jaromi en Julio 27, 2010, 11:16:34

Hola:He visto el tutorial y esta genial. Lo malo es que no logro hacerlo funcionar. Me marca que no logra encontrar el archivo .dll aunque he comprobado que esta en el lugar donde busca

CitarInterfase jPicUSB 1.1.1 CargadaError al cargar jpicusb.dll.No se encontro la libreria jpicusb.dll en C:\Users\user\Desktop\loon\JavaUSB\BUILD SUCCESSFUL (total time: 3 seconds)He seguido paso a paso el tutorial, aunque me temo que afecte el que utilizo Windows7 de 64 bits  :-X¿Alguna idea de que puedo hacer? :'(

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Suky en Julio 27, 2010, 12:12:49

WIN7 y sus permisos de acceso pueden ser el problema, colocalo en C:/ y prueba.

Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Jaromi en Julio 27, 2010, 12:31:24

Ya he intentado ponerlo en el directorio raíz, pero aun así no parece encontrar el dll  :titanic

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: vanhalen9 en Agosto 03, 2010, 04:40:47

Amigo super bueno este tutorial, justo lo que estaba buscando. Solo tengo una pregunta: Esta libreria, pienso yo, que solo funcionaria con pic, pero mi inquietud es acerca de que pasara si en algun momento yo elijo usar otro micro como freescale e incluso arduino? ¿Que tan dependiente es el codigo java de la programacion del micro? Esto para poder hacer todo un poco mas independeiente, el software del hardware y que en su momento pueda ser mas extensible o

Page 108: Tutorial Pic Usb Java

mejorado, bueno todo ese chorrero que nos dicen cuando nos enseñan desarrollo.

Te agradezco que me puedas colaborar ya quiero habia pensado en hacer un proyecto usando esto y quiero partir de esa idea inicial.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: J a v o en Octubre 11, 2010, 10:28:30

Hola soy nuevo en esto de los pic, ya instale el NetBeans IDE 6.5, pero ahora no lo puedo ejecutar. ya que no me muestra ningun acceso al programa ni nada de eso, que puedo hacer?.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: VelazquezBio en Octubre 29, 2010, 04:51:01

buenas... como va todo... estoy teniendo un raro problema...

pongo parte de mi codigo...Código:[tt]send_command(cmd_ADQUIRIR);            System.out.println("***  RECIBIENDO DATOS   ***");            byte datos[] = iface.QRead(32,150000);            while ((datos.length >0) && (datos[0]==1)){            System.out.println("***BUCLE 1***");                for(i=1; i<=29; i=i+2){                cont++;                System.out.println("::"+cont);                }            datos= iface.QRead(32,150000);            while (datos.length != 32){}

            }

            while ((datos.length >0) && (datos[0]==5)){            System.out.println("***BUCLE 2***");                for(i=1; i<=29; i=i+2){                cont++;                System.out.println("::"+cont);                }            datos[0]=7;            }            System.out.println("*** DATOS RECIBIDOS  ***");[/tt]

En el Pic...Código:FOR (a = 1; a <= (Ciclos_Completos); a++)      {         c++;

Page 109: Tutorial Pic Usb Java

         if (c == 10){ conmuta(work);c=0;}                  FOR (b = 1; b <= 30; b++)         {            dato = READ_EXT_EEPROM (registrol);            sndbuf[b] = dato;            delay_us(100);            registrol++;         }         if (a== ciclos_completos){         sndbuf[0]=5;         sndbuf[31]=29;         Termino_envio();         }else{         sndbuf[0]=1;         sndbuf[31]=29;         Termino_envio();}               }

Los datos los envio en paquetes de 32 datos en la poscion 0 el numero 1 o el 5.Desde la 1 posicion hasta la 30 envio datos.en la posicion 31 un numero que me sirve de referencia.

El problema que tengo que en otras ocaciones y realizando lo mismo, adquiriendo datos.... no me pasaba, es que en algun momento variable no siempre pasa igual... el  java deja de adquirir datos y sale de los while....

El pic sin embargo sigue mandando datos...Luego de muchos analisis, llegue a la conclusion de que siempre se sale del BUCLE 1 y creo que es porque no recibe datos en la linea Qread.

Pero... puede pasar esto? Ocurrira que el pic envia los datos despues de que el java quizo recibirlos?

Si fuese asi... como lo podria solucionar...Gracias Saludos

*********************************************************************EDIT

Aparece este error en la consola Error: 31Error: 31Error: 31jPicUSB.dll V1.1 liberada.************************************************************************

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: VelazquezBio en Octubre 30, 2010, 01:33:08

Page 110: Tutorial Pic Usb Java

Independientemente de que todavia no se que es el error 31. una solucion para que los datos se reciban correctamente y que el programa espere a que estos lleguen... seria....

            byte datos[]= null;             while((datos==null)||(datos.length !=32)){datos= iface.QRead(32,10000);}

El array esta vacio, hasta que no lleguen 32 datos, el programa no continua. Saludos.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: albermillan69 en Noviembre 14, 2010, 11:01:17

Buenos dias! Soy nuevo en el foro!Tengo un problemilla!!Resulta ser q yo hice un programa parecido al del primer post! funciona perfectamente (estoy usando netbeans 6.9.1) e instale el jdk-6u22-windows-i586.exe

El problema es el siguente: cuando genero el .jar (con F11 o con shift+F11) y se genera sin problemas!! el problema esta cuando lo ejecuto, al darle doble click al .jar se abre, pero al presionar los botones de encender y apagar el led la simulacion no responde!

Aparentemente el problema es q cuando se genera el .jar no se carga la .dll (se supone q debe estar dentro del .jar principal, en la carpeta lib solo esta el jpicusb.jar y fuera de esta esta el .jar de mi proyecto!!

Como se q es el .dll?? porq si lo copio (yo mismo) en la carpeta dist todo funciona bien!!

Mi pregunta es: por que sucede esto y como lo soluciono (sin copiar yo mismo el .dll????

Gracias....

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: ELVYSR44 en Noviembre 14, 2010, 01:33:36

Saludos a todos los amigos del foro.Anteriormente he desarrollado proyectos con pic en lenguaje c++, actualmente me veo en la nececidad de desarrollarlos en java y html, conozco muy poco de estos lenguajes y unas de las principales cosas que me gustaria conocer son las

Page 111: Tutorial Pic Usb Java

que describo a continuacion.

1-. Necesito un compilador JAVA en especial para desarrollar las aplicaciones para los pic ? Como es el caso en c++ no se puede usar el borland c++, sino una IDE exclusiva para los pic como CCS.

2-. Necesito  librerias para cada uno de los diferentes pic que utilice?

3-. cual es la instruccion o grupo de instrucciones que me permiten: configurar el puerto serial del pic, enviar y recibir datos atraves del puerto serial del pic.

mayormente realizo mis practicas con el 16f877  y el 16f84a.

Les Agradezco toda la informacion que me puedan brindar, principalmente  links de documentos descargables.

De igualmanera me pongo a su disposicion para intentar sanar alguna duda mientras no estemos hablando de java, espero alcanzar un buen nivel en poco tiempo.

Desde Venezuela  [email protected]

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Suky en Noviembre 14, 2010, 02:21:09

No conozco compilador C++ para PICs, y menos aun Java  :rolleyes: Creo que estas un poco confundido  :rolleyes:

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: albermillan69 en Noviembre 14, 2010, 04:21:23

Hola ELVYSR44

Para programar los pic´s puedes usar tranquilamente CCS (en el primer post hay un enlace de donde puedes descargar la libreria USB q necesitas (en CCS) para comunitar tu pic y la pc) asi como tambien te explican como hacer esa comunicacion mediante un ejemplo!

Para hacer el entorno grafico usando java, yo en lo personal ayer instala netbeans 6.9.1 y el jdk mas actual!

Pero para el pic si puedes usar tranquilamente CCS, que crees un entorno grafico programmando en java eso no tiene q ver nada con el pic.

Page 112: Tutorial Pic Usb Java

De q parte de venezuela eres??? Espero haberte ayudado!!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: albermillan69 en Noviembre 14, 2010, 04:29:03

Solo llevo un dia con java y ve lo q hice!! :D

(http://www.ucontrol.com.ar/forosmf/tutoriales-guias-y-cursos-en-ucontrol/tutorial-java-pic-usb-(primeros-pasos)/?action=dlattach;attach=7115)

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: fidodido18 en Noviembre 24, 2010, 10:18:27

Cita de: albermillan69 en Noviembre 14, 2010, 04:29:03Solo llevo un dia con java y ve lo q hice!! :D

(http://www.ucontrol.com.ar/forosmf/tutoriales-guias-y-cursos-en-ucontrol/tutorial-java-pic-usb-(primeros-pasos)/?action=dlattach;attach=7115)

Si se utiliza las ayudas de Java se puede hacer GUI rápido y fácil, al igual que c#! aunque son muy pocos los valientes que se atreven a programar (si se dieran cuenta lo facil que es!  >:D)

los .dll colocalos en c:/windows/system32

Título: En matrizPublicado por: redk292 en Enero 07, 2011, 06:14:10

Hola Gero,Hace unos dias encontre este foro y me parece espectacular, cuando encuentre un espacio de tiempo intentare desarrollarlo y por lo que he leido de otros foristas es facil.Estoy desarrollando un letrero de leds con matrices bicolor RG de 8x8 (6 cm por lado), y me gustaria cargar unas animaciones. Por un foro que leí decia que se deberia programar la matriz o letrero para que trabaje la parte de unos y ceros, y para los mensajes a publicar se desarrollaran en Java. Mi pregunta es, puedo cargar los mensajes y animaciones en una EEPROM 256 y que el PIC 877 las digitalice para mostrar en mi publik? y para manejar las filas de 24 leds bicolor se puede con 3  74HC595 o debo adicionar ULN2803A, y tambien estaba pensando dividir en 2 el publik para que sean de 12 filas.Me gustaria me puedas u otro forista me pueda guiar para este trabajo.

Page 113: Tutorial Pic Usb Java

Gracias :titanic

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Diogenes en Enero 07, 2011, 07:57:46

Hola, disculpa por la demora de la respuesta. 

Citar1-. Necesito un compilador JAVA en especial para desarrollar las aplicaciones para los pic ? Como es el caso en c++ no se puede usar el borland c++, sino una IDE exclusiva para los pic como CCS.

JAVA al igual que C# son lenguajes que al compilarlos generan un código intermedio comúnmente llamado bytecoded ( código independiente de la plataforma ), entonces lo unico que tienes que hacer es ir al sitio oficial de JAVA y bajarte el compilador. Para poder correr ese código intermedio necesitas una maquina virtual que normalmente es provista por el fabricante, desarrollar esa maquina virtual no es una tarea trivial, además la plataforma necesita muchísima RAM y ROM ( Flash ) para poder implementarla. Ni para PICs ni para ningún micro de 8 bits existe una maquina virtual JAVA. 

Citar2-. Necesito  librerias para cada uno de los diferentes pic que utilice?

No existen

Citar3-. cual es la instruccion o grupo de instrucciones que me permiten: configurar el puerto serial del pic, enviar y recibir datos atraves del puerto serial del pic.

No existen

Espero haber sido claro, si queres usar JAVA entonces PC, PDA o celus, los micros de 8 bits se programan en C, Pascal, Basic, Forth o Assembler plano.

Saludos !

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: carlosandres03cp en Marzo 02, 2011, 12:11:09

Hola mira he tratado de seguir los pasos de tu tutorial pero me encuentro con el siguiente error no se si puedas ayudarme...de antemano muchas gracias..

java.lang.NoClassDefFoundError: javausb/MainCaused by: java.lang.ClassNotFoundException: javausb.Main        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)        at java.security.AccessController.doPrivileged(Native Method)

Page 114: Tutorial Pic Usb Java

        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)Could not find the main class: javausb.Main.  Program will exit.Exception in thread "main" Java Result: 1BUILD SUCCESSFUL (total time: 0 seconds)

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: c@lic_0 en Junio 11, 2011, 02:37:41

tengo una dudilla al usar esta libreria para java que tipo de clases puedo utilizar hid, mas storage o si estas se pueden configurar o si abarca todas :rolleyes2: :rolleyes2:Saludois.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: hayn en Junio 18, 2011, 08:42:10

bueno que dios me proteja...... acabo de descargar netbeans 7.0 y no se nada de nada pero estoy mas que dispuesto a meterle los pies al barro ;D ;D ;D ;D ;D

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: palitroquez en Junio 18, 2011, 10:53:39

hola hayn

con voluntad y un poco de tiempo lo puedes lograr  ;D

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: hayn en Junio 18, 2011, 11:39:14

hola palitroquez de que parte de venezuela eres?????

Título: Archivo .bat generado por NetbeansPublicado por: zaratustra_x en Junio 26, 2011, 04:02:54

Saludos.

Antes que nada quiero felicitarlos por este foro ya que por varios dias estuve

Page 115: Tutorial Pic Usb Java

buscando cómo desarrollar una aplicacion Desktop para interfazar PICs hasta que encontré este foro. Y ya que he estudiado OOP por algun tiempo no se me dificulto. ;D

Ahora si, al problema. He creado un archivo por lotes .bat desde netbeans modificando el xml que viene el la carpeta dist/ del proyecto.Las líneas que hay que agregar son estas:<target name="-post-jar">               <echo file="${dist.dir}/run.bat">java -jar ${application.title}.jar</echo>    </target> 

Ojo: éstas deben de colocarse antes de la etiqueta </project>

Bueno, dentro de la carpeta dist/ genera un archivo run.bat que no es mas que un enlace ara ejecutar la aplicación en una consola de msdosHasta aqui bien, pero cuando ejecuto este archivo en consola me aparece el mensaje:

 "Error al cargar jpicusb.dll""No se encontro la libreria jpicus.dll en C:/mi_ruta_del_proyecto/dist/"

En Netbeans compila y ejecuta sin problemas, estoy trabajando en Windows 7 - 64bits

Mmmm no se si deba modificar algunas dependencias de directorios, puesto que manualmente copié el dll en la carpeta dist/ pero aún asi no consigo poder ejecutarla.

Gracias y espero me puedan ayudar

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: hayn en Julio 23, 2011, 03:09:56

Bueno despues de un par de semanas intensas en el tabajo, pude relajarme y hacer mi primer "hola mundo" :bang: :bang: :bang: :bang:

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Leon Pic en Julio 23, 2011, 06:13:38

Felicitaciones :rolleyes2: :rolleyes2:

¿Hay fotos? ¿video?

Page 116: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: hayn en Julio 23, 2011, 10:20:04

Bueno amigo leon pic lo que tengo son solo los archivos de los 2 "hola mundo" que hice uno por consola y el otro por cuadro de dialogo, los hice fue siguiendo unos videos en youtube ojo todavia sigo con un monton de dudas y cosas que no entiendo pero se que poco se aclarara el panorama

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: hayn en Julio 24, 2011, 08:07:22

Bueno leon pic ya tengo las dos fotos 

(http://www.ucontrol.com.ar/forosmf/tutoriales-guias-y-cursos-en-ucontrol/tutorial-java-pic-usb-(primeros-pasos)/?action=dlattach;attach=9833)

(http://www.ucontrol.com.ar/forosmf/tutoriales-guias-y-cursos-en-ucontrol/tutorial-java-pic-usb-(primeros-pasos)/?action=dlattach;attach=9835)

Editado para ver las imágenes directamente en la respuesta.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Leon Pic en Julio 24, 2011, 09:44:45

Nuevamente, felicitaciones

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: HJ en Julio 24, 2011, 10:02:37

Felicitaciones por el logro hayn. Y dale para adelante que esto es apasionante, una vez que le agarras el gusto...  :baba

Saludos

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: vini0712 en Julio 28, 2011, 11:37:07

Un saludo al foro si me pueden ayudar, tengo hecho un programa de encendido y apagado de leds con el 18f4550, lo programe en mikrobasic, este tambien me genera la libreria usb para comunicarme con el computador y funciona bien, ahora debo de hacer lo mismo desde una interfaz en java, ya hay comunicacion con el computador y me lo detecta como un dispositivo HID y se instala

Page 117: Tutorial Pic Usb Java

automaticamente, mikrobasic tiene una terminal hid y al enviar datos desde hay si los reconoce el pic, lo que no se es como hacerlo en java, ya intente con el codigo de este foro, no se si estoy escribiendo algo mal o tiene algo que ver el driver de microchip para usb ?

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: hayn en Agosto 14, 2011, 11:35:56

bueno poco a poco voy entendiendo la mecanica de java ;D ;D ;D ya comprendo que es una interface y anuque me falta hacer las lineas de codigo y el hardware para que funcione creo que estoy en el camino. gracias a este maravilloso foro. aqui les dejo una foto de la interface.

al moderador si cree que este comentario no debe ir aqui le agradeceria que lo reuicara en el sitio que crea mas conveniente ;D ;D

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Septiembre 17, 2011, 06:23:27

Hola!!!Hace tiempo que utilice esta pedazo de libreria de geronimox y la verdad es que funcionó perfectamente. Sin ningun problema.

Mi pregunta ahora es la compatibilidad que tiene la libreria y los dll con las versiones posteriores de windows (concretamente Windows 7 de 32 y 64 bits) (en su momento yo lo utilice con Windows XP).

Muchas gracias.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Septiembre 19, 2011, 04:37:52

Los drivers de microchip creo que no existen para 64bits... al menos no existian en el momento que publique esto...Podrias fijarte si ya los crearon... si los encontras vas a tener que recompilar el fuente de la dll jpicusb.dll que esta en sourceforge...Sobre windows 7, no pobe, quiza funciona... si pruebas nos comentas ok?Saludos!

Page 118: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: nando801 en Septiembre 27, 2011, 04:05:05

Hola amigo he revisado todos los mensajes del foro con la esperanza de encontrar la respuesta a mi pregunta pero no la e visto asi que alli va.quiero comunicar mi pic (16f84a o 16f877a) con la pc? para mover unos servos desde la pc atraves del pic.Ya lei el manual pero como no tengo ningun circuito para mi 16f84a no se que hacer.me pueden ayudar con un circuito para el pic-usb?

Muchas gracias de antemano.

Saludos.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: gargolan en Septiembre 27, 2011, 06:49:33

Con esta info podrías arrancar sin problemas.http://fanaticodeelectronica.blogspot.com/2009/01/y-adems-comunicacin-aplicada-pic-pc-por.html

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: nando801 en Septiembre 28, 2011, 05:11:05

Muchas Gracias por la ayuda. Pero ya cambie de proyecto, proximamente el tocled.

Saludos.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: MrChunckuee en Octubre 02, 2011, 02:30:35

saludos he revisado la publicación y he realizado pruebas, resulta simulado en el proteus no hay problema todo marcha bien, el problema surge cuando conecto mi pic al puerto usb, me manda un mensaje en el que dice que no se puede reconocer el dispositivo mmm los puertos usb están en buen estado y ya he dado la ruta para el driver pero nada sique teniendo el mismo problema. de antemano saludos y gracias, he revisado las preguntas del foro y no creo haber leído algo asi je je je hasta pronto.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)

Page 119: Tutorial Pic Usb Java

Publicado por: VelazquezBio en Octubre 02, 2011, 06:45:43

Si te aparece que no lo reconoce, mostrándote un globo con un triangulo amarillo con una signo de admiración dentro y el mensaje...Quizas tenes invertido los cables d+ d- o no tenes bien configurados los fuses para trabajar con 48Mhz para el USB.

Te pido me aclares, si te reconoce el dispositivo y te pide el driver, o si te aparece el globo que dice que no se reconoce el Hardware.

Saludos!

VelazquezBio

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Octubre 17, 2011, 04:24:32

Hola a todos!!!

Hace como cosa de dos años utilicel JPICusb de Gero y la verdad es que funcionó a las mil maravillas. Ahora quiero llevar a cabo otro proyecto con él.

El problema está en que la primera vez que lo utilice, lo hice con Windows XP, y ahora el PC que tengo tiene Windows 7 de 64 bits? Funcionará?? 

Muchas gracias a todos

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Leon Pic en Octubre 17, 2011, 02:16:34

No te ofendas, pero si lo probas, te vas a dar cuenta.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Octubre 17, 2011, 02:27:23

No me ofendo, para nada. Se lo que lo dices a modo de consejo.

Antes de que me contestarás ya estaba preparandolo para probarlo. Mañana lo probaré.

Gracias.

Page 120: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: tregosa en Octubre 18, 2011, 04:33:50

Hola!!!Estoy probando PIC+USB+JAVA.Tengo el Win7 HP a 64 bits. Como las drivers de usb de Proteus no va a 64 bits, hay instalado el VMWare Player para hacer las pruebas.Hay hecho algunos testes con las demos de microchip Picdemo fs usb y el sw PDFUSB y todo va bien.

Intente probar con Java e tengo el problema de no reconocer correctamente el driver de usb, y como tal no puedo probar el PIC+USB+JAVA.Hay utilizado el HW y el SW que hay no inicio del forum e el problema se mantiene.

Quien me puede ayudar, por favor?

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Noviembre 03, 2011, 03:43:53

Al fin encontré un poco de tiempo para probar la libreria en Windows 7 Ultimate de 64 bits.

El driver del PIC parece funcionar. Pero el problema lo da cuando hago la aplicación y la ejecuto, que me da un error porque no encuentra la dll.

No sé si es por tema del PATH

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: VelazquezBio en Noviembre 03, 2011, 04:11:23

Que el programa y el dll esten en la misma carpeta. Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Noviembre 03, 2011, 04:34:08

Ojo que probablemente te quedes en el "parece", porque no se como tratara el modulo de JNI de la JVM(x64) a las librerias compiladas para x86...Me parece que la prueba definitiva deberia hacerse recompilando la dll usando los fuentes de MCHPUSB de 64bits... si es que ya fueron lanzados por microchip..Un saludo!

Page 121: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Noviembre 04, 2011, 04:52:25

Hola Gero,

Una vez más gracias por responder ante todo.

En esta página (de Enero del 2008), pone que se hay soporte para windows vista de 32 bits y para windows de 64 bits (supongo que incluirá el windows 7):http://ww1.microchip.com/downloads/en/DeviceDoc/Release%20Notes%20for%20MCHPFSUSB%20v1.3.htm (http://ww1.microchip.com/downloads/en/DeviceDoc/Release%20Notes%20for%20MCHPFSUSB%20v1.3.htm)

El caso es...y perdón si la pregunta es muy estupida...como puedo recompilar el dll?? Cual es la dirección exacta de la fuente? En cuanto sepa como hacerlo, me pongo manos a la obra y os lo aviso.

También me gustaría saber, en caso de que recompilando el dll no funcionase. Habría alguna posibilidad de cambiar yo algo la dll de cara a hacerlo funcionar? O esto ya también depende de que microchip saque sus drivers?? Lo digo por contribuir un poco a este foro. Ya que siempre que escribo recibo mucha ayuda.

EDITO: Gracias a ti también por contestar VelazquezBio, ya probé ayer a poner el dll en todos los sitios posibles, y no funcionó :(

Un saludo!!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Noviembre 05, 2011, 06:13:28

A ver, he estado buscando por internet pero no me aclaro, para compilar la DLL simplemente me tengo que descargar un compilador de C++ y entonces compilarla así a pelo desde mi Windows 7 de 64 bits no??

Y si todo va bien...pues se supone que debe de funcionar y mi proyecto java podrá usar la libreria perfectamente. No hay que hacer nada con el .Jar entiendo entonces no?

Muchas gracias y perdonad que sea tan cansino con este tema. Pero en mi trabajo soy el único que defiende el JPICusb de Gero, todos quieren usar Java como un puerto COM virtual o utilizar directamente Visual Basic con USB... :D

Page 122: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Noviembre 05, 2011, 09:26:07

La MPUSBAPI.DLL originalmente esta compilada con Borland 6 , pero cuando yo la recompile agregandole las funciones compatibles con JNI, lo hize con el compilador de Visual C...El proceso a grandes rasgos seria:Descargar las funtes de jpicusb de sourceforgeDescargar la ultima version de los fuentes de mpusbapi.dll de microchipLos fuentes de microchip estan en la carpeta CHPFSUSB\Pc\Mpusbapi\Dll\Borland_C\SourceLuego tenes que reemplazar el codigo fuente de microchip en el fuente de jpicusbY listo... con suerte no vas a tener que escribir nada de codigo nuevo al recompilar jpicusb.dll

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Noviembre 07, 2011, 05:25:54

Muchas gracias Gero! Estoy ahora mismo en ello.

Sólo me surgen dos cuestiones. 

A que te refieres con las fuentes de jpicusb? A los archivos .jar? Es que los .java no los encuentro en el sourceforge. :S

Por otro lado, con Visual C, te refieres al Visual C++, o al Visual C Studio??? Podría hacerlo con cualquier compilador?? :S

Perdona por tanta pregunta.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Noviembre 07, 2011, 06:01:37

Hola Dididito, no hay problema! las preguntas son bienvenidas  ;)Te las respondo siempre que me acuerde   :embarrassed: porque este proyecto es del 2009 y no volvi a usar JNI desde entonces.. asi que me cuesta recordar exactamente el entorno en el cual compile...La IDE que use creo que fue Dev-C++, pero el compilador estoy seguro que use el de Visual C++, de ahi que para poder usar la dll en algunas pcs es necesario antes intalar los Visual C++ Redistributable Package.Se supone que con cualquier compilador de c++ no deberia haber problemas Las fuentes del JAR y la DLL estan aqui:

Page 123: Tutorial Pic Usb Java

http://sourceforge.net/projects/jpicusb/files/Sources/Un saludo!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Noviembre 07, 2011, 06:30:58

Ok.

Ya me he aclarado entonces de lo que tengo que hacer. Lo que me da un poco de verguenza volver a preguntartelo es que...no encuentro el fuente.

Yo por el fuente entiendo un archivo .java, y en la ruta que tu me has dado, cuando descomprimo veo lo que te mando en la imagen adjunta.

Muchisimas gracias por la ayuda.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Noviembre 07, 2011, 06:36:44

que raro...  ??? yo apreto en jPicUSB Sources 1.1.1.rar y se me baja el rar de los sourcesa vos se te esta descargando el release.. (me parece que estas apretando en el boton verde) ;Dde todas formas este es un enlace directo http://sourceforge.net/projects/jpicusb/files/Sources/jPicUSB%20Sources%201.1.1.rar/downloadsaludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Noviembre 07, 2011, 07:20:46

Exactamente...estaba pulsando el boton verde.

Perdona las molestias. Esta tarde me pongo a ello y en cuanto tenga lo que sea aviso.

Aunque tu proyecto sea del 2009, debe de perdurar en la memoria!!!! Hiciste un gran trabajo!!!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: mariorockstar en Noviembre 23, 2011, 03:30:08

Page 124: Tutorial Pic Usb Java

Hola a todos!!!!!! espero que me puedan ayudar, pues yo quiero recibir datos en Java desde un pic. Por ejemplo quiero que cuando se active un sensor este le mande una señal al pic y el pic al programa desarrollado en Java que consistiria: en cambiar una luz verde pasarla a roja.

Si alguien save como podria hacerlo o en donde puedo encontrar informacion se los agradeceria

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Diciembre 05, 2011, 09:49:15

mariorockstar...en la primera hoja de este post tienes todo lo necesario para hacer lo que quieres, o al menos para comenzar a hacerlo.

Gero!!!!

Va a parecer esto un parto, pero por motivos laborales tuve que dejar a un lado la recompilación de tu librería para Windows 7 Ultimate 64 Bits justo cuando iba a empezar. Ahora voy a retomarlo. Como yo nunca he hecho esto, me surgen muchas dudas.Tu me dijiste que siguiera estos pasos:CitarDescargar las funtes de jpicusb de sourceforgeDescargar la ultima version de los fuentes de mpusbapi.dll de microchipLos fuentes de microchip estan en la carpeta CHPFSUSB\Pc\Mpusbapi\Dll\Borland_C\SourceLuego tenes que reemplazar el codigo fuente de microchip en el fuente de jpicusbY listo... con suerte no vas a tener que escribir nada de codigo nuevo al recompilar jpicusb.dllVale, pues creo que he descargado los fuentes de mpusbapi.dll, pero comparando el que he descargado con el que hay en los fuentes de tu proyecto, pues resulta que son el mismo. Así que no si habría que añadir algo.La fuente de jpicusb que hay que podificar cual es? main.cpp?? En ese caso el código que debería reemplazar es el que hay en mpusbapi.h???

Muchas gracias. Espero tus respuestas.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Diciembre 07, 2011, 02:53:16

Bueno,

Voy a resumir los problemas actuales que tengo para generar la nueva DLL para permitir usar jPicUSB en Windows 7 Ultimate de 64 Bits, lo que intuyo que permitirá usarlo en cualquier windows de 64 bits.

Page 125: Tutorial Pic Usb Java

He descargado las fuentes de Microchip para USB (mpusbapi.dll), pero una de dos, o no se de donde descargarme los ultimos, o en tu librería están los últimos

Yo nunca he programado en C++, pero he visto que no difiere mucho de Java. Me he descargado el wxDev- C++, que permite importar proyectos de MS Visual C++, pero no encuentro el fichero de proyecto. Además de que no tengo muy claro QUE tengo que cambiar y DONDE lo tengo que cambiar.

Hay algunas dependencias de includes que existe en el fuente (main.cpp) que no puedo resolver, porque no se de donde conseguirlos.

Siento muchisimo preguntar tanto, pero si consigo hacer andar la libreria la podrá usar toda la comunidad de uControl (al menos aquellos interados) con sistemas operativos Windows más modernos de XP (Eso espero).

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: geronimox en Diciembre 07, 2011, 06:47:57

Hola Dididito, me vas a disculpar que tarde tanto en responder..La facultad y el trabajo me consumen, por eso no me puedo hacer tiempo a seguir los pasos que yo publique, ya que si lo hago seria lo mismo que recompilar todo yo mismo...

Sobre las fuentes que son identicas, no tengo idea. En algun lugar lei hace mucho que se habian actualizado para soportar arquitecturas de 64bits. Si las fuentes son identicas y no hay en todo internet fuentes actualizadas por microchip, quizas sea suficiente compilar las que sibi en un entorno 64bits para producir un dll listo para plataformas 64bits.

Las fuentes que subi no estan como un proyecto MSVC, si hay algun proyecto ahi, seria un proyecto que la ide de wxDevCpp abriria sin problemas. Si no, solamente deberias crear un proyecto c++ nuevo y agregar todos los C y compilar como dll. (No puedo explicarte los pasos, vas a tener que buscarlos en google como "jni dll compile")

Las unicas dependencias que se me ocurren que no se podrian resolver son las jni.h y las demas relacionadas con java... Deberias agregar al include path de la ide, la carpeta donde instalaste java y se encuentran estos archivos H.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Diciembre 13, 2011, 09:12:51

Page 126: Tutorial Pic Usb Java

Estas más que disculpado...faltaría más.Valoro y agradezco muchisimo que estes tomandote el tiempo y la molestia de echarme una mano con esto. Yo también estoy ahora bastante liado y no puedo dedicarle a la compilación de la librería tanto tiempo como me gustaría. En cuanto otra vez el trabajo me lo permita me pongo con los pasos y consejos que me has dado.

Muchas gracias.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: Dididito en Diciembre 19, 2011, 10:13:01

Bueno, he estado trabajando en el intento de compilación de la librería y no consigo compilarla. Debo de ser demasiado inutil.

Lo siento por si alguien esperaba poder utilizarla en algun sistema Windows 7 de 64 bits, pero yo no soy capaz de hacerlo con el poco tiempo que tengo hoy por hoy.

Supongo que tendré que optar por utilizar el USB como puerto COM virtual.

Muchas gracias Gero de todas formas!!!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: silviox en Febrero 01, 2012, 06:53:13

Hola Geronimo, estuve viendo tu proyecto... esta muy interesante.

Pero tengo el tipico problema de que no encuentra la libreria jpicusb.dll He hecho asi como mensionaste en el post. Fui a propiedades del proyecto y ajunte el .jar y tambien fui a libreria y adjunte la carpeta donde esta el dll.

Estoy utilizando Netbeans 7.0.1 con el JDK 1.7 (64bits) Tengo todos los plugins necesarios instalados

Microsoft visual C++ Runtime Redistributable 2008 x86Microsoft visual C++ Runtime Redistributable 2008 x64Microsoft visual C++ Runtime Redistributable 2010 x86Microsoft visual C++ Runtime Redistributable 2008 x64

Yo pienso que es por la version del JDK. Nose que otro problema puede ser. Te agradeceria cualquier ayuda.gracias

Page 127: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: VelazquezBio en Febrero 01, 2012, 07:01:42

Hola silviox bienvenido al Foro. Copia manualmente la libreria jpicusb.dll en la carpeta del proyecto, donde se encuentre el ejecutable, o el .jar.

Saludos.

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: pedroramos en Febrero 16, 2012, 04:34:16

Personal, me gustaría saber si alguien tiene un código para leer el usb en Java y C, porque quería pasar un valor entero para usb y java que puedo mostrar. :'(

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: MAYKOLDC en Abril 11, 2012, 08:15:52

Hola Geronimo, estuve viendo tu proyecto...... :bang:ME PREGUNTABA SI JPICUSB PODRIA SER IMPLEMENTADO USANDO EL PIC 32  ,UTILIZANDO JAVA

GRACIAS

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: tonyfolk en Abril 13, 2012, 04:10:30

Hola que tal !!! me parece excelente tu tutorial, soy nuevo en esto y estoy empezando !!

quisiera que me resolvieras una duda si quiero trabajar con un cristal externo XT, cual es la configuracionque debo empliar para poder utilizar ese cristal con el puerto USB, es decir que tengo que usar XT,XTPLL,PLL1,CPUDIV2 te agradeceria la respuesta, si existe la forma de que con este reloj puedas utlilzar el highspeed usb o solo el lowspeed.. gracias !!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)

Page 128: Tutorial Pic Usb Java

Publicado por: VelazquezBio en Abril 13, 2012, 01:55:18

Hola tonyfolk bienvenido al foro de uControl.

La pagina donde esta muy bien explicado esto es la siguiente:

Cristales y USB (http://picmania.garcia-cuervo.net/conceptos.php#USB4Mhz)

Creo que te estas confundiendo, en algunos conceptos. La configuración que debas darle, depende de tu microcontrolador. Tambien es importante saber con que compilador estas trabajando, ya que cada uno tiene una manera de definir los FUSES.

Mientras le das una leida al link que esta mas arriba, dime en que compilador trabajas y con que microcontrolador?

Saludos!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: jdrblack9 en Abril 27, 2012, 02:08:51

necesito ayuda, apenas acabo de encontrar la funcionalidad de pic usb... necesito de un programa en java que compruebe si se mando a imprimir algo y si si me avise, no se por donde empesar si me pudieran orientar me seria de mucha ayuda

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: styvarrow en Mayo 03, 2012, 10:25:41

Hola a todos, soy nuevo y estoy tratando de programar un pic18f4550 para mi trabajo de grado usando java, lo que pasa es que estoy tratando de leer 2 bits desde el pic segun el siguiente coódigo, pero veo que sólo lee el primer byte y en el segundo me muestra un cero, es decir positivos[0]=primer numero enviado(8 ), positivos[1]=0 cuando deberia ser 9. positivos lo estoy tomando como una variable global.

Código://Codigo Javavoid leer(){byte res[] = iface.QRead(2, 500);         if(res.length > 0) {                                  int positivos[] = new int[res.length];     for(int i = 0; i < res.length; i++) {        positivos[i] = res[i] & 0xFF;    }}             }                                               en el PICdato[0]=8;

Page 129: Tutorial Pic Usb Java

dato[1]=9;usb_put_packet(1,dato,2,USB_DTS_TOGGLE); 

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: samah88 en Mayo 19, 2012, 06:00:25

cómo se muestra en una interfaz de Java "USB conectado" cuando el USB está conectadoAyúdame  gracias de antemano

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: esperanza en Julio 19, 2012, 07:12:16

Hola tengo una duda, esa librereria jpicusb, usted la creo? o donde la encontraste

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: pablopaolus en Julio 27, 2012, 11:40:31

¡Hola a todos!

En primer lugar, quería dar las gracias a geronimox por su trabajo y por ponerlo a disposición de todos. Dicho esto, me gustaría que si alguien puede me resuelva una duda... he conseguido hacer una aplicación en Java muy "tonta" para encender y apagar un par de leds en una placa que me he fabricado. Sin embargo, ahora necesitaría poder conectar más de un PIC a la vez (con dos me basta, en principio). Tengo entendido q se pueden conectar al usb hasta 127 dispositivos con el mismo vid y pid, y q ya se le asignan direcciones diferentes o algo así (corregidme si me equivoco). El tema está en que cuando conecto las dos plaquitas a la vez, cada una con su pic y sus leds, la aplicación de java que enciende y apaga éstos solo actúa sobre una de las placas, no sobre las dos.Agradecería cualquier ayuda al respecto, muchas gracias!

Un saludo!

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: jaime_ricardo en Agosto 07, 2012, 02:37:15

Saludos por favor me podrían decir como compilar el archivo .c que implementa los métodos nativos de java, pero en windows 7 de 64 bits en ubuntu solo tenia que usar el compilador gcc. De antemano muchas gracias.

Page 130: Tutorial Pic Usb Java

Título: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)Publicado por: ramirock2103 en Marzo 27, 2013, 05:05:07

Buen aporte!!!!

Powered by SMF 1.1.18 | SMF © 2011, Simple Machines