Você está na página 1de 139

uControl

Articulos, circuitos, tutoriales y Revista uControl => Tutoriales,


guias y cursos en uControl => Mensaje iniciado por: geronimox
en Enero 29, 2009, 06:04:28

Ttulo: 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/jpicusbcomunicacion-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 como
Main 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 caso D:\jPicUSB_Test\

2_ Instalamos y Ejecutamos NetBeans IDE 6.5

3_ Creamos un nuevo Proyecto


o 3_1_ File -> New Project
o 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 Location
Aca proporcionamos la ubicacion y nombre de nuestro
proyecto
Project Name: yo eleji JavaUSB
Project 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 proyecto

o 5_1_ En el arbol de nuestro Proyecto, presionamos con


el boton derecho sobre Libraries y elejimos la opcion
Add JAR/Folder.
(http://i41.tinypic.com/6xzvgm.jpg)
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
(http://i44.tinypic.com/2h64j8m.jpg)
o 5_3_ Ahora podemos corroborar que la libreria esta
ubicada en arbol de nuestro proyecto bajo el nodo
Libraries
Ahora nuestra aplicacion puede tomar 2 caminos
diferentes.
Podemos escribir una aplicacion sin interfaz grafica
(consola) o 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 Swing


o 7_1_ Boton derecho sobre el paquete javausb que esta
en "Source Packages" y nos dirijimos a New -> Other...
(http://i39.tinypic.com/30m4l0z.jpg)
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"
(http://i44.tinypic.com/nnpsuv.jpg)
o 7_4_ Rellenamos la informacion sobre el JFrame

Class 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 pestaa "Source"
o 8_2_ Debajo del texto "package javausb;" agregamos
nuestro import (como un include de C) "import
jPicUsb.*;"
(http://i41.tinypic.com/aym6qg.jpg)
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\
(http://i39.tinypic.com/33kep80.jpg)

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;
}
(http://i41.tinypic.com/123br77.jpg)

10_ Agregamos un Boton y un TextBox (por fin esto da


frutos)
o 10_1_ Nos dirijimos a la pestaa 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 tamao.
(http://i39.tinypic.com/24eqa6a.jpg)
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"
(http://i39.tinypic.com/10p3xxg.jpg)
(http://i40.tinypic.com/dos8t4.jpg)
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 tamao 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");
//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, "utf8");
//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.
(http://i41.tinypic.com/209oa9x.jpg)

13_ Tenemos nuestro proyecto corriendo...


Y vemos algunas screens.
o 13_1_ Si presionamos el boton cuando el usb no esta

conectado:
(http://i43.tinypic.com/mhqefa.jpg)
o 13_2_ Si presionamos el boton luego de conectar el
usb:
(http://i44.tinypic.com/ws3hb5.jpg)
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

Ttulo: 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
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: Waldillo en Enero 31, 2009, 09:46:55
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 programacin 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.
Cdigo:
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?
Ttulo: 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:55
He intentado incluir ese paquete en mi proyecto y no lo hago bien. A continuacion te
muestro mi codigo haber si hay algo mal.
Cdigo:
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?

Hola waldillo. Muchas gracias!


Que bueno que hayas decidido por probar java!
Precisamente, NetBeans es una de las competencias de Eclipse, hace un
ao 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 ;D, 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!
Ttulo: 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.
Ttulo: 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 agradecera mucho
Ttulo: 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\Desktop
Ya 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 :P
Asi 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 :P
Ah fijate en el otro post de jpicusb, estoy agregando un video de
ejemplo.
Saludos!
Ttulo: 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.
Ttulo: 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 =D
Tenemos 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 :P
Ejemplo 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 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 jajaja
cualquier duda, pregunta que no molesta!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: Waldillo en Febrero 01, 2009, 06:08:21
Gero simplemente gracias. ;D Eres muy grande
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: geronimox en Febrero 01, 2009, 02:07:32
me alegro que te funcione =)
Saludos!
Ttulo: 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
aplicacin; la configuracin en paralelo no es correcta. Consulte el
registro de eventos de la aplicacin para obtener ms 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(EventDispatchT
hread.java:269)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThrea
d.java:184)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchT
hread.java:174)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:1
69)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:1
61)
at
java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
TE AGRADECERIA MUCHO SI PUEDERAS AYUDARME.
MUCHAS GRACIAS DE ANTEMANO.

Ttulo: 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-picusb-usando-java/
(http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacionpic-usb-usando-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!
Ttulo: 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 maana 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:19
95)
at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav

a:2318)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonMode
l.java:387)
at
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:24
2)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonLi
stener.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)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchT
hread.java:269)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThrea
d.java:184)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchT
hread.java:174)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:1
69)
at

java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:1
61)
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 ms.
Muchas gracias por la ayuda.
Ttulo: 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:
Cdigo:
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!
Ttulo: 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
Ttulo: 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
Ttulo: 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!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: carmen en Febrero 16, 2009, 06:42:12
Lo estas probando en windows vista?
Ttulo: 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 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
Ttulo: 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.

Ttulo: 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 seccin de "boot", "advanced options",
selecciona 1 solo procesador y reinicia. Si el problema ya no existe,
estamos mas cerca :P
Saludos!
EDITO2: Nuevamente con otra consulta, podrias realizar un screenshot
del 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-935f4116-ba5f-33d8800ef9da3082.mspx
(http://windowshelp.microsoft.com/Windows/es-ES/help/a99f69c1935f-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!
Ttulo: 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 seccin 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 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 activacin para
"C:\Users\USUARIO\jPicUsb_Test\JavaUSB1\dist\jpicusb.dll". No se
encontr el ensamblado dependiente
Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b
3b9a1e18e3b",type="win32",version="9.0.21022.8". Use sxstrace.exe
para obtener un diagnstico detallado.
Espero que te sea de ayuda toda esta informacion y estamos en
contacto.
Muchas gracias

Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)


Publicado por: geronimox en Febrero 17, 2009, 10:20:26
Hola carmen!
Ya casi ya casi jeje
Ahora 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=A5C842753B97-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!
Ttulo: 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.


Ttulo: 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 vista 32. ::)
Saludos!
Ttulo: 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.
Ttulo: 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 printf
printf("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.
Ttulo: 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.
Ttulo: 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.
Ttulo: 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 leds).
El plano y el mensaje que genera el registro de simulacion son:
Ttulo: 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!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: umov en Febrero 26, 2009, 04:03:13
Gracias nuevamente hermano.

Ttulo: 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
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: alfapts en Febrero 27, 2009, 02:54:44
Hola carmen
Porfavor me podrias decir como solucionaste el error de que no te
cargaba la libreria jpicusb.
Ttulo: 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
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: geronimox en Febrero 27, 2009, 03:36:24
Jeje me alegro xD
Ttulo: 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 aplicacin 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 proteus


2. conectamos la terminal usbconn en la misma simulacion
3. abrimos la aplicacion PDFSUSB.EXE, luego seleccionamos en la
pestaa 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 aplicacin 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 aplicacin y as ver el funcionamiento total.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: geronimox en Febrero 27, 2009, 03:11:00
Hola umov.
Creo que estamos un poco desviados xP
Los 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 acompaa. Es por eso que si realizas tu propio diseo
de hard, no va a funcionar.
Saludos!
Ttulo: 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
Ttulo: 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 DLL
http://www.inonit.com/cygwin/jni/helloWorld/
Si necesitas mas ayuda, chifl
Ttulo: 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.
Ttulo: 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
diseo 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)
Ttulo: 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.rar
Descomprime 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!
Ttulo: 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

Ttulo: 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!
Ttulo: 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.
Ttulo: 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 nunca llegar a darse cuenta porque no anda :P
Me alegro q hayas solucionado el problema de la bsod :smiley:
Saludos!
Ttulo: 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,
dedicacin y ganas de ayudar a los dems, tanto por el pedazo de
tutorial que te has marcado, como por toda la ayuda y soporte
desinteresado, que ests prestando en este foro. Como decimos por
aqui: "mas dejao flipao".
Te comento mi problema a ver si sabes cual puede ser la solucin, estoy

usando el NetBeans 6.5, junto con jPicUSB1.1, mi problema est que al


lanzar la aplicacin me dice que no encuentra las librerias dll, todava no
he conectado el PIC, lo he ejecutado slo para comprobar que me
ejecutaba bien, he probado a poner el working directory en Run,
cogiendo el rar descomprimido, tamben he probado a ponerlo en la
carpeta principal del proyecto, pero en ningn sitio lo encuentra.
Por si te sirve de ayuda...uso Windows XP.
Muchas gracias
Ttulo: 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!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: Dididito en Marzo 08, 2009, 05:17:33
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?
Ttulo: 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.1
Saludos!

Ttulo: 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 aadido),
y en dicha ruta el archivo est, pero no lo encuentra.
Voy a probar a poner una ruta ms sencilla, porque la ruta es muy
larga, y en algn 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
Ttulo: 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 Cargada
08-mar-2009 22:11:08 picUsb.interfaces.mainProgram <init>
GRAVE: null
java.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... :'(
Ttulo: 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 :S
Si puedes, comprime la carpeta JavaUSB y subela a rapidshare, y pasa
el vinvulo, asi puedo ver el proyecto, aver si encuentro algo mal.
Saludos!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)

Publicado por: Dididito en Marzo 09, 2009, 04:37:58


Muchisimas gracias tio, esta tarde (hora espaola, 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.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: umov en Marzo 09, 2009, 12:21:39
Hola Gero,
Compaero ya pudimos correr la simulacin de tu aplicacin 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 aplicacin,
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 aplicacin corre sin inconvenientes desde
all mismo,
2-) por otro lado, cuando netbeans esta abierto o cerrado, este .jar
tambin abre pero no corre (no responde a ningn evento programado),
3-) por otro lado, si el mismo archivo .jar lo copiamos llevndolo a
cualquier otra localizacin de la PC, este ni si quiera abre.
Ttulo: 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.
Muy agradecido
Ttulo: 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 anterior
Cdigo:
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 preguntaste
1) 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 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 dist a su nueva 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!
Ttulo: 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 versin de la JDK o
la JRE es importante??, porque yo estoy usando las ltimas.
Please help me... :(
Alguna otra sugerencia??
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: geronimox en Marzo 09, 2009, 03:31:57
Mmm nop
Uso XP 32bits y netbeans en su ultima version
Y 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 chiflo
Saludos!
Ttulo: 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 tambin le funciona.
Si ves la luz dimelo please, mandame un mail o escribeme aqui o lo que
sea!!! ;)
Muchas gracias en serio.

Ttulo: 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=A5C842753B97-4AB7-A40D-3802B2AF5FC2&displaylang=en
Si ya las habias instalado, seguimos en la nada, y sin saber el porque no
la puedes cargar.
Saludos!
Ttulo: 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 slo tenan 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 (censurado) 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 algn driver en mi PC).
Muchas gracias
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: geronimox en Marzo 12, 2009, 05:43:21

:laugh: Me alegro que te funcione!


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!
Ttulo: 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 pequeo
tutorial, de como usar tu libreria jpicusb mediante proteus y su usb
virtual, porque lo he intentado, pero no me sale.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: geronimox en Marzo 19, 2009, 02:19:49
Hola Dididito
Aqui 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
.rar
Cuando me aga un tiempo quiza escriba un minitutorial
Saludos!
Ttulo: 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
Despues de pelearnos mucho con java no somos capaces a hacer que
nuestro programa se entienda con el pic. Nuestro pic est
continuamente enviando informacin 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 informacin que manda el pic y tampoco salta ninguna
excepcin.
Puedes ayudarnos? mil gracias.
Ttulo: 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:
Cdigo:
[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!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: umov en Marzo 24, 2009, 01:56:09
hola Gero hermano como estas?
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.
Ttulo: 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!

Ttulo: 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 ESO FUE ALGO QUE FALTO POR ACLARAR,....PUES
ESE ICONO ESTA EN:
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.
Ttulo: 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 PROBAR
UN PROTECTICO QUE TENGO HACE UN TIEMPO
Ttulo: 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
Ttulo: 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!
Ttulo: 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 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 tamao 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)
//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.
Ttulo: 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 nunca sale del contructor ??? jeje
lo 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:
Cdigo:
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 tamao 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);
ESCRIBA LA VERISON DEL FIRMWARE

// ENVIA DATOS AL PIC PARA QUE LE

//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());
}
}
}
/** 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!
Ttulo: 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 colaboracin, te
comentamos que confiamos que nada en la vida nos quedar grande,
sin embargo tenemos que reconocer que somos aun novatos en cuanto
a programacin en JAVA se refiere, ya que la ultima explicacion que nos
referiste no la entendimos.
Es por eso que acudimos a "san google" y sus muy habilidosas
capacidades para la busqueda, y encontramos una explicacin aun ms
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 tamao 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 {
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 avsame 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) {
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 LEDS
}
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.
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 aplicacin 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.
Ttulo: 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 ms 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.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: umov en Abril 17, 2009, 02:10:05
Aahhhh mi correo es umov@hotmail.com
Ttulo: 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:
Ttulo: 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 Pic
para que sirven los archivos de esa carpeta. ;)
Ttulo: 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 polling
Sobre 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!

Ttulo: 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 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.
Ttulo: 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 ;)
Ttulo: 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: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 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 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!
Ttulo: 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: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 ;)

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 Proteus
Saludos!
(http://i39.tinypic.com/2i9l36e.gif)
Ttulo: 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.
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.
Ttulo: 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 configuracin de oscilador
del pic para lograr internamente los 48MHz.
Ttulo: 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!
Ttulo: 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.
Ttulo: 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\classes
D:\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.
Note: Recompile with -Xlint:deprecation for details.
1 error
BUILD FAILED (total time: 0 seconds)
uhmmm...bueno ...he tratado de solucionarlo pero no logro...haber si un
favorsote me das una mano..... :'(
Tengo el netbeams 6.1.... y bueo estoy bajando el 6.5...para recien
instalarlo....
Ttulo: 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 jpicusb
en vez de escribir:
Cdigo:
iface.load()

debes escribir:
Cdigo:

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!
Ttulo: 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......
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: geronimox en Abril 29, 2009, 09:47:08
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 Drivers
Saludos!
Ttulo: 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...
Ttulo: 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: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...

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".
Ttulo: 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.
Bueno amigo haber si lo pruebas y me dices si te funciona en esta
version.....de proteus....
Ttulo: 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!
Ttulo: 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... ;)
Ttulo: 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,VR
EGEN // Configuracion del #use delay(clock=48000000)
// 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 (tamao 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 (tamao 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>
// Configuracin 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];
int8 recbuf[Lenbuf];
//int8 sndbuf[Lenbuf];
BYTE int_count;
// Nmero de interrupciones que faltan
antes que haya transcurrido un segundo
////////////////////////////////////////////////////////////////////////////////
// M A I N
////////////////////////////////////////////////////////////////////////////////
#int_rtcc
void Led_State()
//Interrupcin 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 movimiento
void sensor_movimiento_isr(){
output_d(0xf0);
delay_ms(1000);
output_d(0x0F);
}
#int_ext1
//Interrupcion a aplicar cuando se active
el sensor de humo
void 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();
//
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);
interrupciones

//
//
//
//Inabilita las demas

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);
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);
}
Ttulo: 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_us

Te 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
B0
Es 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
digital :azn:
[***]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!
Ttulo: 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 fsica, 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, lgicamente el led prende porque recibe corriente de la
compu, necesitamos programar el pic? , en el pic utilizamos el 18f2550
ya que por aki no haba otro, buscamos la configuracin de este y la
conectamos de manera similar, el programa solo funciona para el 4550??
Gracias, saludos!!!
Ttulo: 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 seales 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 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!
Ttulo: 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 18f2550
y 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.
:'(
Ttulo: 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!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: claumack en Mayo 24, 2009, 11:17:37
muchas gracias!
pues si tenemos ya varios programas
el 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
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
Ttulo: 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 librera no la acepta para aplicaciones mviles u_u
en el mismo Netbeans, porque queremos implementarlo en un celular,
se puede modificar la librera para aplicaciones mviles? o no conoces de

otra para aplicaciones mviles??? o de plano no se puede T-T


Muchas gracias.
Saludos!!!
Ttulo: 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-picusb-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!
Ttulo: 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 servir algn da xD
Gracias por tu tiempo ^-^
Saludos!!
Ttulo: 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:

Ttulo: 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 mensaje
No se encontro la libreria jpicusb.dll en
E:\usbpppppppppppppppp\jPicUsb_1[1].1.1_Led_Show_Demo\usbPicCo
deTest\Java App\

Ttulo: 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:46
Saludos, favor si me ayudas ... al compilar el progrma que esta en la para manejo de
usb sale el siguiente mensaje
No 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:
Ttulo: 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 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.
Ttulo: 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=A5C842753B97-4AB7-A40D-3802B2AF5FC2&displaylang=en
Saludos!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: fabianoca55 en Mayo 28, 2009, 04:57:27
Saludos nuevamente
Mil 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,
null, e);
}
}
}

al correr el programa sale el siguiente mensaje


run:
Interfase jPicUSB 1.1.1 Cargada
28-may-2009 19:55:03 javausb.Principal <init>
GRAVE: null
java.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(EventDispatchT
hread.java:269)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThrea
d.java:184)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchT
hread.java:174)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:1
69)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:1
61)
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(EventDispatchT

hread.java:269)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThrea
d.java:184)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchT
hread.java:174)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:1
69)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:1
61)
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
Ttulo: 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 Description
The 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
Ttulo: 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\build
clean:
init:
deps-jar:
Created dir: C:\JAVAUSB\javaUSB\build\classes
Compiling 2 source files to C:\JAVAUSB\javaUSB\build\classes
C:\JAVAUSB\javaUSB\src\javausb\principal.java:99: cannot find symbol
symbol : 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 symbol
symbol : 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
symbol
symbol : 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
symbol
symbol : method setText(java.lang.String)
location: class javausb.texto
texto.setText(texto.getText() + "Datos recibidos:" + data_in
+ "\n");
4 errors
BUILD FAILED (total time: 0 seconds)
he seguido paso a paso el tutorial no se que pueda estar mal ojala
puedan ayudarme.
Ttulo: 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.texto
dicen que estas llamando a un metodo getText desde una clase
llamada texto en el paquete llamado javausb
y tambien es muy extrao 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.
Ya sabes, cualquier cosa, chifla.
Saludos!!
Ttulo: 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\classes
C:\JAVAUSB\javaUSB\src\javausb\usb.java:24: unreported exception
java.lang.Exception; must be caught or declared to be thrown
iface.load();
1 error
BUILD FAILED (total time: 0 seconds)
espero puedas ayudarme
Ttulo: 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!!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: KARITOU en Mayo 31, 2009, 06:12:14
gero muchisimas gracias eres un divino funciona de maravilla.
gracias por tu ayuda
Ttulo: 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

Ttulo: 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: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

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!

Ttulo: 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
Ttulo: 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
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!
Ttulo: 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.
Ttulo: 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.

Ttulo: 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
Ttulo: 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.
Tenes que usar el driver que se encuentra dentro del ledshowdemo.rar
Salutes!
Ttulo: 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 mensajes
jPicUSB.dll V1.1 cargada. Gero Oativia (2009)
jPicUSB.dll V1.1 liberada
me podrias indicar en donde los puedo cambiar,
gracias, es muy buena tu aplicacion
Ttulo: 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!

Ttulo: 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 seor... 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.
Ttulo: 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!! ;D
Y 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 :P
Salutes!
Ttulo: 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!
Ttulo: 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:
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: VelazquezBio en Julio 08, 2009, 11:48:14
Instalen tranquilos... la version en espaol... mi disco esta de ultimas...
sAludos!
Ttulo: 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...
Ttulo: 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: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...

Hola, primero vamos a la documentacion :P


Cdigo:
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:
La clase String de Java, dispone de un metodo para lograr esto, y seria
algo asi:
Cdigo:
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:

Cdigo:
//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!!!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: londoo en Julio 15, 2009, 01:40:17
hola Gero
Me gustaria saber si JpicUSB sirve tambin para recibir datod del micro
para visualizalos en el pc, gracias.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: geronimox en Julio 15, 2009, 03:39:32
Cita de: londoo en Julio 15, 2009, 01:40:17
hola Gero
Me gustaria saber si JpicUSB sirve tambin para recibir datod del micro para
visualizalos en el pc, gracias.

Hola londoo, bienvenido al foro!


Puedes hacer transeferencias en las 2 direcciones, de micro a PC y de pc
a micro.
Saludos!
Ttulo: ayuda
Publicado por: blacksnake84 en Julio 20, 2009, 06:45:01
Saludos:
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

Ttulo: 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!
Ttulo: Re: ayuda
Publicado por: Bruno10 en Julio 20, 2009, 11:29:43
Cita de: blacksnake84 en Julio 20, 2009, 06:45:01
Saludos:
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
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: JLondoo 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.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: geronimox en Agosto 05, 2009, 03:20:39
Cita de: JLondoo 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.

Hola JLondoo, bienvenido al foro!


Suponiendo que tu TextField se llama mitexto, entonces, el codigo
quedaria asi:
Cdigo:
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!
Ttulo: 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
Ttulo: 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: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

Hola kraneak, bievenido al foro!


Para pasar una cadena a un numero entero, puedes usar el metodo
parseInt de la clase Integer.
Cdigo:
int entero = Integer.parseInt(miTextField.getText());

Saludos!
Ttulo: 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.

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!

Ttulo: 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?
Ttulo: 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
Ttulo: 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: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

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


Algo asi:
Cdigo:
jTextArea.setText(respuesta);

Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)


Publicado por: wombat en Agosto 22, 2009, 10:30:51
Hola como estn, est muy interesante esto y le agradezco al que se ha
tomado la molestia de postear toda esta informacin. Yo tengo ya algo
de experiencia en estos temas e intente probar todo haci a la rpida,
hasta consegu el PIC18F4550. El problema es que el programa que se
grava en el pic que dan en la pgina creo que est mal. Al momento de
grabar el hexadecimal me dice que hay un error en la direccin 4, y
contiene un FFFF y eso no puede ser posible, segn entiendo no debera
aparecer nunca FFFF por que indicaran un fin de archivo.
En fin agradecera mucho si alguien pudiera decirme si ya le jalo o
alguna opinin acerca de eso.
Ttulo: 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?
Ttulo: 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?
Ttulo: 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-misproyectos/problemas-con-programador-jdm/
http://www.ucontrol.com.ar/forosmf/problemas-con-misproyectos/problema-con-programador-de-pics/
y si no encuentras la solucion all, podrias intentar fabricarte otro
programador.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: xesc0 en Agosto 24, 2009, 05:19:20
Gero increible aporte :) felicidades!
Un saludo!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: geronimox en Agosto 24, 2009, 12:11:14
Gracias xesc0 ;D
Si lo implementas nos cuentas que tal te fue ;)
Ttulo: 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.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
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.
Ttulo: 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..
Ttulo: 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 simulacin del isis con la que tengo problemas. Que version de Isis
tienes tu? no me dejo abrir la simulacin que colgaste en el archivo del
test por que tengo una versin ms 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 simulacin del isis, por si tienes tiempo de
mirarlo.
Graciassssssssss ^^

Ttulo: 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 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" ;D
Si sigue sin funcionar, proba instalando la version 7.4..
Saludos!!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: xesc0 en Septiembre 07, 2009, 05:46:48
Tienes razn 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
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: xesc0 en Septiembre 07, 2009, 06:42:54
Acabo de ponerme tu versin y efectivamente ese era el problema ^^
ahora ya funciona todo
Ttulo: 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
Ttulo: 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 comunicarme
con una camara web hay me parece que abria que hacer algunas
modificasiones no?? espero puedas
aclararme mis dudas y me ayudes con crear mi dll para cvontrolar el
puerto usb muchas gracias y de verdad sos un maestro aa mi correo
es carlosedu_rg03@hotmail.com
Ttulo: 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 bsico y es enviar un solo bit al programa
del ejemplo 1 de este foro pero me ha sido imposible? Este es el cdigo
en C de he tomado prestado de la primera aplicacin, 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 nmeros Les
agradezco cualquier ayuda :'( :'(
Cdigo:
//////////////////////////////////////////////////
// jPicUSB Led Show.c
// divideandconquer.com.ar
// Gero Oativia 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" // Configuracin del USB y los descriptores para este
dispositivo
#include <usb.c> // handles usb setup tokens and get descriptor reports
#define
#define
#define
#define
#define
#define
#define

Enciende Output_High
Apaga Output_Low
Conmuta Output_Toggle
RecCommand recbuf[0]
LedParam recbuf[1]
COMMAND_FIRMWARE 99
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);
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
tamao 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
paquetedetamao 5 bytes del EP1 al PC
}
}

Ttulo: 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: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 comunicarme
con una camara web hay me parece que abria que hacer algunas modificasiones
no?? espero puedas
aclararme mis dudas y me ayudes con crear mi dll para cvontrolar el puerto usb
muchas gracias y de verdad sos un maestro aa mi correo es
carlosedu_rg03@hotmail.com

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.
Respecto a comunicarte con una camara web, no puedo ayudarte :( y
tampoco puedes utilizar jpicusb para dicho proposito, ya que fue
diseada por microchip para comunicarse con dispositivos pic microchip.
Saludos!
Ttulo: 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:35
Felicitaciones por este gran foro ha sido de gran ayuda sin embargo he estado tratando
de hacer algo bsico y es enviar un solo bit al programa del ejemplo 1 de este foro
pero me ha sido imposible? Este es el cdigo en C de he tomado prestado de la
primera aplicacin, 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 nmeros 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
paquetedetamao 5 bytes del EP1 al PC
Ahi estas enviando 5 bytes del arreglo envia, pero ste esta definido
con un tamao de 2.

int8 envia[2];
Debierias cambiar el tamao 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 contina, seria mejor que publiques el codigo del
lado de la pc asi pueda ayudarte.
Saludos!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: payatronico en Septiembre 21, 2009, 10:24:44
Ok, perdn la intromisin en este tema, busqu cuanto pude y no
encontr exactamente lo que quera 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 versin profesional. Intento ser lo ms
honesto posible e intento igualmente ensear 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
milln de restricciones al momento de trabajar ms profesionalmente,
as que segu por el camino del bien y de lo simple (o lo ms simple
posible)
Bueno, hasta ahora lo ms 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 ensear estoy tratando de
aprender esto del boostC y de la comunicacin 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
ms simple y me di cuenta que es muy similar a C pero y el programa
del PIC? :( alguien sabe dnde encuentro o cmo hago el programa
para que pueda trabajarlo en boostC, de esta manera podra ensear
todo esto en prcticamente un solo lenguaje o lo ms similar posible a
uno solo.
Disculparn por intentar ser un profesor simplista pero me gusta

fomentar la legalidad antes que nada.


Muchas gracias.
Ttulo: 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.
Adems, 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 vers, 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!
Ttulo: 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);
} //
Ttulo: 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.
Espero que te sirva.
Saludos!
Ttulo: 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 bsico :'( : les publico el
cdigo como me lo recomendaron, bueno la dificultad que se presenta
es la siguiente cuando en el programa del PIC dejo las lneas
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
Cdigo:
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);
}
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());
}

Ttulo: 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:
Cdigo:
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!
Ttulo: 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 conversin 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 corregir
package 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());
}
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;
}
}
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: locowarcraft en Octubre 07, 2009, 12:12:24
Hola amigo, vers, tengo un problema. Instal el Proteus 7.4 y abri tu
aplicacin 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 aplicacin en java
puesto que el driver del dispositivo no fu correctamente instalado. No
s si me podrs ayudar en ese detalle. ^^ :'(
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: xesc0 en Octubre 07, 2009, 06:25:04
Este tipo de fallos son difciles de arreglar para alguien externo al pc. Si
me pasara a mi reinstalara el proteus y el driver o probara con otra

versin. Si te sale otro fallo as es posible que pueda ser alguna carencia
en tu pc. :)
Ttulo: 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 librera, Java es mi lenguaje
preferido y disponer de todos estos ejemplos para la comunicacin USB
con los PIC me ayud muchisimo. :rolleyes2:
@Lectra
Espero que las siguientes lneas ayuden a resolver tu problema:
Primero lo bsico...
1 byte = 8 bits, con 8 bits el valor mximo 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 mximo 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 ints
Cdigo:
//Codigo Java
byte res[] = iface.QRead(32, 500);
//llenamos res[] con los datos
que nos envia el PIC
if(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 lgico & 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
Ttulo: 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 pgina:
http://www.petefreitag.com/item/183.cfm
Ejemplo:
Cdigo:
//Codigo CCS C
void 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:
Cdigo:
//Codigo Java
//Si los parametros son correctos retorna un positivo, de otra forma
retorna -1
private 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 funcin:
Cdigo:
//Codigo Java
int val;
byte res[] = iface.QRead(32, 500);
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.


Ttulo: 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.
Ttulo: 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 :P
Saludos! Y bienvenido al foro ;)
Ttulo: 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.

Ttulo: 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: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.
Adems, 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 vers, 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 podra servir para hacer lo que necesita


payatronico?
http://vasco.gforge.enseeiht.fr/
Ttulo: 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 eso
un laburo de la mie* se tomo el autor
muy muy increible

Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)


Publicado por: Felixls en Noviembre 03, 2009, 09:08:56
Viste?, jeje, y adems usa mi compilador favorito y gratuito, SDCC
:bang: :bang:
Ttulo: 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?
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: Felixls en Noviembre 06, 2009, 06:55:27
Cita de: geronimox en Noviembre 03, 2009, 09:11:42
estaba casi 100% seguro que no existia nada parecido para linux..
probaste el framework PUF?

No pude probarlo todava geronimox, estoy haciendo tantas cosas a la


vez!, que ya deseo que el da tenga 90 horas as pruebo todo lo que
quiero probar ;D
Por lo poco que vi estaba implementado un bootloader, el cdigo me
gust, pero no hice pruebas, ni nada...
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: Fire en Noviembre 12, 2009, 01:43:49
hOLA
ME 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
Ttulo: 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....

Ttulo: 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:49
hOLA
ME 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

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


Ttulo: 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: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....

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.
Ttulo: 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
Ttulo: 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/jpicusbcomunicacion-pic-usb-usando-java/) podes encontrar la documentacion
y un ejemplo ;D
Saludos!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: sergio64 en Noviembre 16, 2009, 10:59:25
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 capturar
un Archivo .txt que contiene las coordenadas de todas las perforaciones
de las baquelas, este archivo lo genere en En el software
CAD 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
Ttulo: 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
Ttulo: 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
(http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacionpic-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/tutorialjava-pic-usb-%28primeros-pasos%29/75/)
Saludos!
Ttulo: 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,
bsicamente 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 transmisin por (micro)frame,

etc., el problema es que tambin 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 opcin?, 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 configuracin llenos para que lo pueda detectar.
De antemano muchas gracias
Ttulo: 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-comunicacionpic-usb-usando-java/)
Saludos! Y Bienvenido al foro!
Ttulo: 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
Ttulo: 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
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: marturetjulio en Diciembre 25, 2009, 05:45:28
hola geronimox queria saber si me podas 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 haba
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
librera que creaste, corri el programar en net beans y funciona a la
perfeccin y luego lo simule en el proteus pero como ya haba ledo que
deba instalare los drivers, se los instale antes de arrancar la
simulacin..luego arranque la simulacin 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
simulacin...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 simulacin y volv a instalar
los driver usb de proteus y volv a arrancar la simulacin 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
Ttulo: 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
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: marturetjulio en Diciembre 25, 2009, 08:20:24
aqui les adjunto una imagen del error como se ve en net beans
Ttulo: 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 extrao 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 sealar la bolita roja a la
izquierda del renglon subrayado de rojo.
Saludos!
Ttulo: 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 imgenes 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 tambin 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
Ttulo: 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********
//////////////////////////////////////////////////
#include <18F4550.h>
#fuses
HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VR
EGEN

#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> // Configuracin del USB y los descriptores para
este dispositivo
#include <usb.c> // handles usb setup tokens and get descriptor
reports
#define
#define
#define
#define
#define

Enciende Output_High
Apaga Output_Low
Conmuta Output_Toggle
RecCommand recbuf[0]
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];
/////////////////////////////////////////////////////////////////////////////////
//////////////////
//
// 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);
}
}
}

}
}
Ttulo: 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 modificacin 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
Ttulo: 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!
Ttulo: 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 compaeros..bueno aqui voy a
postear una forma de hacer lo mismo pero con 4 variables ya que lo
mas comn es eso enviar varias variables...lo que hace este proyecto es
enviar 4 valores adc del pic (que bien podran ser sensores) y el
programa en java los recibe cada vez que se presiona el botn 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 podan 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

informacin 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 agradecera su ayuda...gracias de antemano...
porque por mas que trate no encontre la forma...es que estoy
aprendiendo java..
salu2....les deseo un feliz ao nuevo
Ttulo: 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.
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 ledo todas la paginas y no he econtrado nada al respecto :(

Ttulo: 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,VR
EGEN
y si el cristal es de 20Mhz seria asi
#fuses
HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,VR
EGEN
la pagina donde esta muy bien explicado esto es la siguiente:
http://picmania.garcia-cuervo.net/conceptos.php#USB4Mhz
espero eso te ayude
Ttulo: 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
Ttulo: 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,VR
EGEN,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?
Ttulo: 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
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: morgan en Enero 29, 2010, 01:48:01
Muy buen cdigo 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 que para 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 cdigo en java
que necesitas si deseas proporcionarme tu mail seria genial para as
envirtelo.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: marturetjulio en Febrero 06, 2010, 06:49:06
hola amigo no te haba respondido porque estaba metido en lo de los
captulos de la tesis...y bueno muchas gracias por querer ayudarme para
eso estamos todos para ayudarnos entre nosotros mismos...mi correo es
marturetjulio@hotmail.com...y si eso es lo que quiero hacer
amigo...muchas gracias de antemano...
Ttulo: 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!!!
Ttulo: 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
Ttulo: 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
Ttulo: 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 QUERA 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 TAMBIN Y A GERO POR HABER INICIADO EL TEMA...BUENO
AQU LES ADJUNTO EL CDIGO DE UN MICRO QUE LEE LA
INFORMACIN DE 4 VARIABLES Y LAS TRANSMITE VA 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 CDIGO NO DUDEN DE PREGUNTAR. TAMBIN INCLUYO
LA SIMULACIN. 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
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: JLondoo 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.
Ttulo: 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 SEALES 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..
MUCHAS GRACIAS .......
Ttulo: 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
Citar
Interfase jPicUSB 1.1.1 Cargada
Error 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? :'(
Ttulo: 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!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: Jaromi en Julio 27, 2010, 12:31:24
Ya he intentado ponerlo en el directorio raz, pero aun as no parece
encontrar el dll :titanic
Ttulo: 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 mejorado, bueno todo
ese chorrero que nos dicen cuando nos ensean desarrollo.
Te agradezco que me puedas colaborar ya quiero habia pensado en
hacer un proyecto usando esto y quiero partir de esa idea inicial.

Ttulo: 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?.

Ttulo: 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...
Cdigo:
[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...
Cdigo:
FOR (a = 1; a <= (Ciclos_Completos); a++)
{
c++;
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.
***************************************************
*********************
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: VelazquezBio en Octubre 30, 2010, 01:33:08

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.
Ttulo: 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-6u22windows-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....
Ttulo: 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 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 Elvysr44@hotmail.com
Ttulo: 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:
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: albermillan69 en Noviembre 14, 2010, 04:21:23
Hola ELVYSR44
Para programar los pics 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.
De q parte de venezuela eres??? Espero haberte ayudado!!
Ttulo: 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-enucontrol/tutorial-java-pic-usb-(primeros-pasos)/?
action=dlattach;attach=7115)
Ttulo: 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: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/tutorialjava-pic-usb-(primeros-pasos)/?action=dlattach;attach=7115)

Si se utiliza las ayudas de Java se puede hacer GUI rpido y fcil, 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
Ttulo: En matriz
Publicado 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.
Gracias :titanic
Ttulo: 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.
Citar
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.

JAVA al igual que C# son lenguajes que al compilarlos generan un


cdigo intermedio comnmente llamado bytecoded ( cdigo
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 cdigo intermedio necesitas una maquina virtual que
normalmente es provista por el fabricante, desarrollar esa maquina
virtual no es una tarea trivial, adems la plataforma necesita muchsima
RAM y ROM ( Flash ) para poder implementarla. Ni para PICs ni para
ningn micro de 8 bits existe una maquina virtual JAVA.
Citar
2-. Necesito librerias para cada uno de los diferentes pic que utilice?

No existen
Citar
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.

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 !
Ttulo: 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/Main
Caused by: java.lang.ClassNotFoundException: javausb.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
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: 1
BUILD SUCCESSFUL (total time: 0 seconds)

Ttulo: 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.
Ttulo: 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
Ttulo: 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
Ttulo: 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?????
Ttulo: Archivo .bat generado por Netbeans
Publicado 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 buscando cmo 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 lneas 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 aplicacin en una consola de msdos
Hasta 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 an asi no

consigo poder ejecutarla.


Gracias y espero me puedan ayudar
Ttulo: 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:
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: Leon Pic en Julio 23, 2011, 06:13:38
Felicitaciones :rolleyes2: :rolleyes2:
Hay fotos? video?
Ttulo: 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
Ttulo: 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-enucontrol/tutorial-java-pic-usb-(primeros-pasos)/?
action=dlattach;attach=9833)
(http://www.ucontrol.com.ar/forosmf/tutoriales-guias-y-cursos-enucontrol/tutorial-java-pic-usb-(primeros-pasos)/?
action=dlattach;attach=9835)
Editado para ver las imgenes directamente en la respuesta.

Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)


Publicado por: Leon Pic en Julio 24, 2011, 09:44:45
Nuevamente, felicitaciones
Ttulo: 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
Ttulo: 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 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 ?
Ttulo: 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

Ttulo: 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.
Ttulo: 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!
Ttulo: 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.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: gargolan en Septiembre 27, 2011, 06:49:33

Con esta info podras arrancar sin problemas.


http://fanaticodeelectronica.blogspot.com/2009/01/y-ademscomunicacin-aplicada-pic-pc-por.html
Ttulo: 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.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: MrChunckuee en Octubre 02, 2011, 02:30:35
saludos he revisado la publicacin 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
estn 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 ledo algo asi je je je
hasta pronto.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: VelazquezBio en Octubre 02, 2011, 06:45:43
Si te aparece que no lo reconoce, mostrndote un globo con un
triangulo amarillo con una signo de admiracin 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

Ttulo: 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 aos 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
Ttulo: 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.
Ttulo: 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 contestars ya estaba preparandolo para probarlo.
Maana lo probar.
Gracias.
Ttulo: 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?

Ttulo: 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
aplicacin y la ejecuto, que me da un error porque no encuentra la dll.
No s si es por tema del PATH
Ttulo: 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!
Ttulo: 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!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: Dididito en Noviembre 04, 2011, 04:52:25
Hola Gero,
Una vez ms gracias por responder ante todo.

En esta pgina (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 perdn si la pregunta es muy estupida...como puedo
recompilar el dll?? Cual es la direccin exacta de la fuente? En cuanto
sepa como hacerlo, me pongo manos a la obra y os lo aviso.
Tambin me gustara saber, en caso de que recompilando el dll no
funcionase. Habra alguna posibilidad de cambiar yo algo la dll de cara a
hacerlo funcionar? O esto ya tambin 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 tambin por contestar VelazquezBio, ya prob ayer a
poner el dll en todos los sitios posibles, y no funcion :(
Un saludo!!

Ttulo: 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
Ttulo: 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 sourceforge
Descargar la ultima version de los fuentes de mpusbapi.dll de microchip
Los fuentes de microchip estan en la carpeta
CHPFSUSB\Pc\Mpusbapi\Dll\Borland_C\Source
Luego tenes que reemplazar el codigo fuente de microchip en el fuente
de jpicusb
Y listo... con suerte no vas a tener que escribir nada de codigo nuevo al
recompilar jpicusb.dll
Ttulo: 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.
Slo 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??? Podra hacerlo con cualquier compilador?? :S
Perdona por tanta pregunta.

Ttulo: 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:

http://sourceforge.net/projects/jpicusb/files/Sources/
Un saludo!
Ttulo: 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.
Ttulo: 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 sources
a vos se te esta descargando el release.. (me parece que estas
apretando en el boton verde) ;D
de todas formas este es un enlace directo
http://sourceforge.net/projects/jpicusb/files/Sources/jPicUSB
%20Sources%201.1.1.rar/download
saludos!
Ttulo: 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!!!

Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)


Publicado por: mariorockstar en Noviembre 23, 2011, 03:30:08
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 seal 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
Ttulo: 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 recompilacin de tu librera 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:
Citar
Descargar las funtes de jpicusb de sourceforge
Descargar la ultima version de los fuentes de mpusbapi.dll de microchip
Los fuentes de microchip estan en la carpeta
CHPFSUSB\Pc\Mpusbapi\Dll\Borland_C\Source
Luego tenes que reemplazar el codigo fuente de microchip en el fuente de jpicusb
Y listo... con suerte no vas a tener que escribir nada de codigo nuevo al recompilar
jpicusb.dll

Vale, 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 habra que aadir
algo.
La fuente de jpicusb que hay que podificar cual es? main.cpp?? En ese
caso el cdigo que debera reemplazar es el que hay en mpusbapi.h???
Muchas gracias. Espero tus respuestas.
Ttulo: 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.

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 librera estn 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. Adems 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 ms modernos de XP (Eso
espero).
Ttulo: 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.

Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)


Publicado por: Dididito en Diciembre 13, 2011, 09:12:51
Estas ms que disculpado...faltara ms.Valoro y agradezco muchisimo
que estes tomandote el tiempo y la molestia de echarme una mano con
esto. Yo tambin estoy ahora bastante liado y no puedo dedicarle a la
compilacin de la librera tanto tiempo como me gustara.
En cuanto otra vez el trabajo me lo permita me pongo con los pasos y
consejos que me has dado.
Muchas gracias.
Ttulo: 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 compilacin de la librera 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!!!
Ttulo: 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
Microsoft
Microsoft
Microsoft

visual
visual
visual
visual

C++
C++
C++
C++

Runtime
Runtime
Runtime
Runtime

Redistributable
Redistributable
Redistributable
Redistributable

2008
2008
2010
2008

x86
x64
x86
x64

Yo pienso que es por la version del JDK. Nose que otro problema puede
ser.
Te agradeceria cualquier ayuda.
gracias

Ttulo: 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.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: pedroramos en Febrero 16, 2012, 04:34:16
Personal, me gustara saber si alguien tiene un cdigo para leer el usb
en Java y C, porque quera pasar un valor entero para usb y java que
puedo mostrar. :'(
Ttulo: 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
Ttulo: 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 configuracion
que 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 !!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
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.garciacuervo.net/conceptos.php#USB4Mhz)
Creo que te estas confundiendo, en algunos conceptos.
La configuracin 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!
Ttulo: 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
Ttulo: 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 codigo, pero veo que slo
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.
Cdigo:
//Codigo Java
void 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 PIC
dato[0]=8;
dato[1]=9;
usb_put_packet(1,dato,2,USB_DTS_TOGGLE);

Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)


Publicado por: samah88 en Mayo 19, 2012, 06:00:25
cmo se muestra en una interfaz de Java "USB conectado" cuando el
USB est conectado
Aydame
gracias de antemano
Ttulo: 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

Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)


Publicado por: pablopaolus en Julio 27, 2012, 11:40:31
Hola a todos!
En primer lugar, quera dar las gracias a geronimox por su trabajo y por
ponerlo a disposicin de todos. Dicho esto, me gustara que si alguien
puede me resuelva una duda... he conseguido hacer una aplicacin en
Java muy "tonta" para encender y apagar un par de leds en una placa
que me he fabricado. Sin embargo, ahora necesitara poder conectar
ms 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 aplicacin de
java que enciende y apaga stos solo acta sobre una de las placas, no
sobre las dos.
Agradecera cualquier ayuda al respecto, muchas gracias!
Un saludo!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: jaime_ricardo en Agosto 07, 2012, 02:37:15
Saludos por favor me podran decir como compilar el archivo .c que
implementa los mtodos nativos de java, pero en windows 7 de 64 bits
en ubuntu solo tenia que usar el compilador gcc. De antemano muchas
gracias.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: ramirock2103 en Marzo 27, 2013, 05:05:07
Buen aporte!!!!
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: dtsdav186 en Enero 07, 2014, 02:44:44
Hola Gernimo, me ultra gust tu post a cerca de primeros pasos
PIC+USB+JAVA, felicidades me gustara poder potenciarlo an ms...
con otra tecnologa como JSF y quizs ponerle algo de Java FX a modo
de animacin...

Jeje, la verdad me emociona bastante esto... sin embargo


lastimsamente no logro hacerlo funcionar en fsico. (con pic real)
Bueno el punto es que la verdad me he pasado bastante tiempo
buscando y tratando de encontrar un error o un mal funcionamiento con
esto del programa... quizs est mal mi entender...
Hice pruebas en Proteus ISIS y la simulacin corre de a 10.
El lo es en fsico...
No hay problemas en reconocer el pic, no hay problemas con drivers
pero...
Desde Java solamente obedece una instruccin y no vuelve a hacer otra
(ya sea QREAD/QWRITE/QWRITEREAD) y no vuelve a entrar o detectar
el usb_kbhit()...
Por ejemplo: un programa que apague y encienda un LED... ya sea que
lo encienda o lo apague solamente obedece una vez una instruccin
(WRITE)
Debo desconectarlo fsicamente y recin vuelve a aceptar una nueva
orden
Adems al compilar el programa en C para el PIC, me salen Warnings
>>>Warning 216 "XXX.c" Line 43(0,1): Interrupts disabled during call
to prevent re-entrancy: (usb_token_reset)
>>>Warning 216 "XXX.c" Line 43(0,1): Interrupts disabled during call
to prevent re-entrancy: (usb_flush_out)
Sistema Operativo: Win 7 32bits
CCS Compiler: 4.084
Netbeans: 7.3
JDK actualizado:
Cdigo:
#include <18F4550.h>
#fuses HSPLL, NOWDT, NOPROTECT, NOLVP, USBDIV, PLL5, CPUDIV1, VREGEN,
NOMCLR
#use delay(clock=48000000)
#define
#define
#define
#define

USB_HID_DEVICE FALSE
USB_EP1_TX_ENABLE USB_ENABLE_BULK
USB_EP1_RX_ENABLE USB_ENABLE_BULK
USB_EP1_TX_SIZE 1

#define USB_EP1_RX_SIZE 1
#include <pic18_usb.h>
#include "header.h"
#include <usb.c>
const int8 Lenbuf = 1;
int8 recbuf[Lenbuf];
void main(void){
delay_ms(500);
output_high(PIN_C0);
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(recbuf[0]==127)
{output_high(PIN_C1);}
if(recbuf[0]==126)
{output_low(PIN_C1);}
}
}
}
}

Saludos y un gran abrazo y muchas felicitaciones por tus trabajos...


desde Cusco-Per
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: HarperXRS en Enero 21, 2014, 06:56:31
ola dtsdav186, desculpa por postar em portugus, mas estou com o
mesmo problema. S envia um comando e no funciona mais, ai tenho
que desconectar e conectar novamente. Voc achou uma soluo?
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: ixmagoxi en Abril 12, 2014, 10:33:13
Hola buen da a todos, como andan ?, soy nuevo en el tema de pic-usb,
segui unos cuantos tutoriales y aun no logro hacer funcionar el pic
"simulandolo proteus 8.1", estoy programando el pic por usb-hid,
cuando ejecuto en proteus reconoce el usb, lo instala como dispositivo
HID, pero al ver en las propiedades el vid y pid me aparece
"vid_0000&pid_0000", como que no registra los que puse en la libreria
hid "vid_04D8&pid_00E8". cuando ejecuto en el programa de java

GetDeviceCount(vid&pid) me devuelve 0, pero tambien probe el vid&pid


del mouse y tampoco me lo reconoce, asi que tengo problemas en java
con eso y problemas en la simulacin con la configuracin de vid&pid.
Espero que alguien me pueda ayudar con esto, desde ya muchas
gracias, Saludos.
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: cesar quijada en Julio 12, 2014, 05:30:54
hola hermano que bueno es tu programa quisiera por favor que me
echaras la mano con una duda, quisiera saber como mandar la seal de
un push button a un porgrama en java mediante un pic utilizando tus
tecnicas de programacion un cordial saludo
Ttulo: Re: Tutorial: JAVA + PIC + USB (Primeros pasos)
Publicado por: beto1234 en Junio 23, 2015, 01:38:13
Hola necesito saber si ademas de esta librera que solo funciona en
windows 32, pudieron utilizar otras como:
http://usb4java.org/
http://jusb.sourceforge.net/
https://code.google.com/p/javahidapi/
http://sourceforge.net/projects/javax-usb/
http://sourceforge.net/projects/openusb/
http://www.microchip.com/forums/m278617.aspx
Estoy haciendo un proyecto para conectar dispositivos HID USB en
multiples SO.

Você também pode gostar