uControl
Mayo 19, 2013, 02:18:36 *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 ... 20   Ir Abajo
  Imprimir  
Autor Tema: Tutorial: JAVA + PIC + USB (Primeros pasos)  (Leído 166272 veces)
0 Usuarios y 1 Visitante están viendo este tema.
umov
PIC10F
*
Desconectado Desconectado

Mensajes: 16


« Respuesta #90 : Abril 27, 2009, 03:18:12 »

Gracias gero, nos pondremos en la tarea inmediatamente.
En línea
ccencho
PIC10F
*
Desconectado Desconectado

Mensajes: 5


WWW
« Respuesta #91 : 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..... Cry

Tengo el netbeams 6.1.... y bueo estoy bajando el 6.5...para recien instalarlo....
En línea

Todos podemos se mejores que todos
geronimox
Moderador
PIC18F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 1176



WWW
« Respuesta #92 : 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:
Código:
        iface.load()
debes escribir:
Código:
        try{
            iface.load();
        }catch(Exception e){
            System.out.println("Error al cargar jpicusb.dll.");
            System.out.println(e.getMessage());
            return;
        }
Luego nos comentas que tal te fue!
Saludos!
En línea

Gero. Divide & Conquer.>----.
^-------------------------------|
-'-------------------------------'
ccencho
PIC10F
*
Desconectado Desconectado

Mensajes: 5


WWW
« Respuesta #93 : 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......
En línea

Todos podemos se mejores que todos
geronimox
Moderador
PIC18F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 1176



WWW
« Respuesta #94 : 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!
En línea

Gero. Divide & Conquer.>----.
^-------------------------------|
-'-------------------------------'
ccencho
PIC10F
*
Desconectado Desconectado

Mensajes: 5


WWW
« Respuesta #95 : 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... Wink Wink Wink e ire publicando mis avanses...
« Última modificación: Abril 30, 2009, 03:39:46 por ccencho » En línea

Todos podemos se mejores que todos
geronimox
Moderador
PIC18F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 1176



WWW
« Respuesta #96 : Abril 30, 2009, 07:12:26 »

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... Wink Wink Wink e ire publicando mis avanses...
Hola ccencho, adelante con lo que sea que estes haciendo jeje Wink
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".
En línea

Gero. Divide & Conquer.>----.
^-------------------------------|
-'-------------------------------'
ccencho
PIC10F
*
Desconectado Desconectado

Mensajes: 5


WWW
« Respuesta #97 : 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....
« Última modificación: Mayo 02, 2009, 02:58:03 por geronimox » En línea

Todos podemos se mejores que todos
geronimox
Moderador
PIC18F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 1176



WWW
« Respuesta #98 : 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!
En línea

Gero. Divide & Conquer.>----.
^-------------------------------|
-'-------------------------------'
ccencho
PIC10F
*
Desconectado Desconectado

Mensajes: 5


WWW
« Respuesta #99 : 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... Wink
En línea

Todos podemos se mejores que todos
umov
PIC10F
*
Desconectado Desconectado

Mensajes: 16


« Respuesta #100 : Mayo 05, 2009, 02:24:04 »

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

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

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

//#define Enciende Output_High
//#define Apaga Output_Low
//#define Conmuta Output_Toggle
#define RecCommand recbuf[0]  //
#define LedParam recbuf[1]
#define COMMAND_TEMPERATURA 99
#define COMMAND_LEDS 88
#byte PORT_E = 0
#define LedState PORT_E,2
////////////////////////////////////////////////////////////////////////////////
// RAM, RAM, RAM
////////////////////////////////////////////////////////////////////////////////
const int8 Lenbuf = 32;          //Longitud del Buffer de lectura en el puerto USB.
int16 conversion;//,min=0,max=1023; //Se declaran Variable enteras a 16Bits.
float temp;                      //Decalracion de una variable flotante.
char ctemp[5];
int8 recbuf[Lenbuf];
//int8 sndbuf[Lenbuf];
BYTE int_count;                  // Número de interrupciones que faltan antes que haya transcurrido un segundo
////////////////////////////////////////////////////////////////////////////////
// M A I N
////////////////////////////////////////////////////////////////////////////////
#int_rtcc
void Led_State()                   //Interrupción utilizada para el manejo del bit de estado.
{
   if(--int_count==0)
   {  output_bit(Pin_E2,!bit_test(LedState)); //Llega aquí cada segundo.
      int_count=INTS_PER_SECOND;
   }
}
/**
#int_ext                               //Interrupcion a aplicar cuando se active el sensor de 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);                            //Inabilita las demas interrupciones
   
   while(true)
   {
      if(usb_enumerated()){                              //¿El sistema operativo de la PC nos ha reconocidos como conectados y ha enumerado la Comunicacion USB?
         if (usb_kbhit(1)){                              //Verifica si se han recibido datos provenientes del PC
             usb_get_packet(1, recbuf, Lenbuf);          //Toma los dos bytes que llegan y los guarda en recbuf,
                                                         //y luego son guardos en RecCommand y LedParam respectivamente
            if(RecCommand==COMMAND_TEMPERATURA){            //Verifica si el byte 0 (RecCommad) que llega es igual a COMMAND_FIRMWARE
               usb_put_packet(1,ctemp,4,USB_DTS_TOGGLE); //Escribe en el Puerto USB el valor de la temperatura
               //printf("Data leida de USB: %u",recbuf);   //Supuestamente envia el dato leido por el puerto RS232
               //printf("Data leida de USB: %s",Lenbuf);
            }
            if(RecCommand==COMMAND_LEDS){                //Verifica si el dato que llega es igual a COMMAND_LEDS
               output_d(LedParam);                       //Escribe por el puerto D los leds que va a encender
               //printf("Data leida de USB: %u",recbuf);
               //printf("Data leida de USB: %s",Lenbuf);
            }
         }
      }
      delay_us(10);
      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);
   
}
En línea
geronimox
Moderador
PIC18F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 1176



WWW
« Respuesta #101 : 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  Huh?
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  Wink
Espero que esto solucione los problemas  laugh Saludos!
En línea

Gero. Divide & Conquer.>----.
^-------------------------------|
-'-------------------------------'
Ankoku
PIC10F
*
Desconectado Desconectado

Mensajes: 3


« Respuesta #102 : Mayo 23, 2009, 08:59:54 »

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

Gracias, saludos!!!
En línea
geronimox
Moderador
PIC18F
*****
Desconectado Desconectado

Sexo: Masculino
Mensajes: 1176



WWW
« Respuesta #103 : Mayo 24, 2009, 01:08:08 »

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

Gero. Divide & Conquer.>----.
^-------------------------------|
-'-------------------------------'
claumack
PIC10F
*
Desconectado Desconectado

Mensajes: 3


« Respuesta #104 : 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.
 Cry
En línea
Páginas: 1 2 3 4 5 6 [7] 8 9 10 11 12 ... 20   Ir Arriba
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.18 | SMF © 2011, Simple Machines
SMFAds for Free Forums
XHTML 1.0 válido! CSS válido!
Página creada en 0.117 segundos con 28 consultas. (Pretty URLs adds 0.014s, 3q)
loggkey