Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

08/02/2012 #1901


Hola Moyano, muchísimas gracias por el aporte.

¿Finalmente hiciste otro tutorial pata VB.net y PICBASIC?
08/02/2012 #1902

Avatar de Moyano Jonathan

Hola, he visto que han desarrollado barias aplicaciones con USB y micro y parecieron muy interesantes. ya hace un tiempo trabaje con PIC C++ y Delphy Borland e hice un pequeño proyecto.

Ahora necesito hacer este tipo de coneccion (USB) pero utilizando el software Qt creator y np se como hacerlo, es decir las instrucciones para el envío de datos al PIC serian las mismas a Delphy o a las que ustedes sutilizan en visual C++ ? o de que forma se puede hacer con Qt? la verdad es que necesito utilizar este programa ya que pienso hacer un proyecto basado en procesamiento digital de imágenes y bueno Qt es software libre y trabaja bastante bien con las librerías de OpenCv para este tipo de aplicaciones.

Así que si alguien me puede ayudar o darme una luz para empezar a trabajar con este proyecto le agradecería mucho
Yo por mi lado ni idea de como usar esos lenguajes para hacer lo que querés...vas a tener que investigar por tu cuenta.

Hola Moyano, muchísimas gracias por el aporte.

¿Finalmente hiciste otro tutorial pata VB.net y PICBASIC?
Estoy en eso, espero poder terminarlo pronto pero no tengo mucho tiempo para dedicarle.
09/02/2012 #1903


hola moyano me pareces re capo en este soy un noob en esto de pic usb, me descargue tu tutorial de control de dispositivos hago la simulacion en proteus y me anda de una, pero cuando lo monto en mi proto el windows me dice dispositivo no reconocido, no se q es; el condensador de 100n debe ser ceramico o electrolito y el MCLR se puede conectar a una resistencia de 10k a vcc o tiene q ser con el diodo ?? ahh y el condensador q sale de vusb debe ser ceramico o electrolito? muchas gracias por tu interes en estos temas tan grosos
09/02/2012 #1904

Avatar de Moyano Jonathan

Hola como estás. En el manual está el esquema del entrenador que usé para hacer el manual, ahí está como se conecta todo.

Un saludo !
10/02/2012 #1905


mmm oks, ya solucione el problema era mala conexion, mira me puse a hacer el programa de visual c# desde ceros y cuando le doy run y clickeo el boton de conectar dispositivo me aparece el siquiente error en EasyHID.Connect(Handle);---->Unable to load DLL 'mcHID.dll': No se puede encontrar el módulo especificado. (Exception from HRESULT: 0x8007007E), ya intente de todo y nose q es haber si me colaboras o me dices que puede ser...ahhh y otra cosa q pena molestarte tanto quiero hacer una aplicacion wifi con pic la idea es hacer el programa con el modulo rs232 o pic y comprar un modulo conversor de usb o serial a wifi haber si tu tienes informacion sobre eso o algun consejo o una idea, estaria agradecido contigo....exitos en tus actividades

igualmente un saludo!!
10/02/2012 #1906

Avatar de Moyano Jonathan

mmm oks, ya solucione el problema era mala conexion, mira me puse a hacer el programa de visual c# desde ceros y cuando le doy run y clickeo el boton de conectar dispositivo me aparece el siquiente error en EasyHID.Connect(Handle);---->Unable to load DLL 'mcHID.dll': No se puede encontrar el módulo especificado.
Es un error común. Pasa por que el sistema no encuentra la dll, tenes que copiar mcHID.dll en la carpeta de windows system32.
11/02/2012 #1907


Buenas a todos! he visto MUCHA información pero yo tengo un par de dudas todavia sobre USB (gracias a esto he aprendido BASTANTE porque lo he aprendido por mi cuenta).

Yo tengo que hacer un proyecto que me cuente los pulsos de 3 cosas (en 3 terminales y 3 variables) y que los mande a la PC cada minuto.

mis problemas son:
- primera vez que programo en CCS y también en C.
- no se como configurar un temporizador para que me de una señal o puldo o desborde cada minuto para mandar el dato de mis 3 variables cada minuto por eso lo iba a poner con otra cosa que me generar el pulso cada minuto y lo metia a la interrupcion B0 y los pulsos los quiero leer en 3 terminales del puerto B.
- no se como ir sumando a cada variable y lo que mas me detiene:
- NO SE CUAL ES LA INSTRUCCION O COMANDO PARA MANDAR INFO AL PC CON UNA VARIABLE DE palabra (16 bits).

si alguien me guiara o me mandara un simple codigo (que se que no esta dificil porque he programado en otros lenguajes y se como hacerlo en los otros pero no en C y tampoco conozco las instrucciones)

Tengo el siguiente programa que he ido construyendo poco a poco:
---------------------------------------------------------------------------------
#include <18F4550.h> // Usamos el PIC 18F4550, pero puedes declarar cualquiera de los 18Fxx5x

#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CP UDIV1,VREGEN // Cristal a 20MHz.
// * Haz clic aquí para ver otras configuraciones del cristal.
#use delay(clock=48000000) // El PLL interno siempre ha de ser de 48MHz. (No es el cuarzo)

#include "usb_cdc.h" // Descripción de funciones del USB.
#include "usb_desc_cdc.h" // Descriptores del dispositivo USB.

#Byte PortA = 0xF80 // Dirección del puerto A para la familia 18Fxx5x.
#Byte PortB = 0xF81 // Dirección del puerto B para la familia 18Fxx5x.
#Byte PortC = 0xF82 // Dirección del puerto C para la familia 18Fxx5x.
#Byte PortD = 0xF83 // Dirección del puerto D para la familia 18Fxx5x (Sólo 40/44 pines).
#Byte PortE = 0xF84 // Dirección del puerto E para la familia 18Fxx5x.

// ------ Variable Global ------
Int16 contador_1 = 0; // Declaramos el valor de X como Word (16 bits). Esta variable
Int16 contador_2 = 0; // ha de ser global porque su valor lo usaremos en la interrupción y
Int16 contador_3 = 0; // en el programa principal. Por tanto declaramos esta variable antes
// de la interrupción y de "void main".

// ------- Interrupción --------
#INT_EXT // Interrupción Externa por RB0: Decodificación de Encoder.
Void IntRB0()
{
// CCS se encarga de desactiva automáticamente cualquier interrupción.
// No hace falta guardar contextos de registros.

If (Bit_Test(PortB, 0)) // Si RB0 se ha puesto a 1 (flanco de subida),
{
Ext_Int_Edge(H_TO_L); // entonces activar la siguiente interrupción para flanco de bajada.

//mandar mis datos de las 3 variables a la PC.
//y resetear mis variables.

}

// Al finalizar la interrupción CCS se encarga de volver a poner automáticamente
// la badera INTF = 0 ---> borra la interrupción para poder permitir la siguiente;
// no hemos de hacer nada por nuestra parte.
}

void main()
{
Port_B_Pullups(FALSE); // Configuración para el PIC 18F4550.
Setup_ADC_Ports(NO_ANALOGS); // Sin comparadores ni ADCs, todo digital, etc...
Setup_adc(ADC_CLOCK_DIV_2);
Setup_spi(SPI_SS_DISABLED);
Setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
Setup_timer_1(T1_DISABLED);
Setup_timer_2(T2_DISABLED,0,1);
Setup_comparator(NC_NC_NC_NC);
Setup_vref(FALSE);

Ext_Int_Edge(L_TO_H); // Inicialmente detectar interrupción por flanco de subida.
Enable_Interrupts(Int_Ext); // Activar Interrupción Externa a través de RB0.
Enable_Interrupts(GLOBAL); // Interrupciones Generales Activadas.

Set_Tris_A(0b11111111); // Puerto A todo entradas (en este caso no usamos el Puerto A).
Set_Tris_B(0b11111111); // Puerto B todo entradas (sólo usamos las entradas RB0 y RB1).
Set_Tris_C(0b11111111); // Puerto C todo entradas (en este caso no usamos el Puerto C).
Set_Tris_D(0b11111111); // Puerto D todo entradas (en este caso no usamos el Puerto D).
Set_Tris_E(0b11111111); // Puerto E todo entradas (en este caso no usamos el Puerto E).

usb_cdc_init(); // Carga el modo CDC (Puerto virtual de comunicaciones).
usb_init(); // Carga el manejo del USB.

char Buffer[20]; // Declaramos (sobradamente) un buffer de 20 bytes.

while(!usb_cdc_connected()) // El PIC espera hasta enlazar con el PC a través del USB.
{
//QUISIERA ENCENDER UN LED CUANDO YA CONECTO EN ALGUN PIN DEL PUERTO B
}

while (TRUE)
{
usb_task();

if (usb_enumerated())
{
If (Bit_Test(PortB, 1)) // Pulso del contador_1,
{
contador_1++ //aumenta en 1 por cada pulso que recibe.
}
If (Bit_Test(PortB, 2)) // Pulso del contador_2,
{
contador_2++ //aumenta en 1 por cada pulso que recibe.
}
If (Bit_Test(PortB, 3)) // Pulso del contador_3,
{
contador_3++ //aumenta en 1 por cada pulso que recibe.
}
// al PC a través del USB.
}
}

No tienen idea cuanto les agradeceria su ayuda (Y ESTOY SEGURO QUE SE PUEDE SIMPLIFICAR EL CODIGO )
GRACIAS
15/02/2012 #1908


oye ven moyano tu no tienes informacion acerca de conectar un pic a una red wifi, serias muy cordial y te lo agradeceria muchisimo sobre ese tipo de informacion, y bueno men gracias por todo y sos muy grosso
15/02/2012 #1909

Avatar de Moyano Jonathan

oye ven moyano tu no tienes informacion acerca de conectar un pic a una red wifi, serias muy cordial y te lo agradeceria muchisimo sobre ese tipo de informacion, y bueno men gracias por todo y sos muy grosso
Hola no tengo dicha información. No es el hilo adecuando tampoco.
15/02/2012 #1910


oks muchas gracias igualmente me sirvio mucho tu tuto te cuidas exitos
15/02/2012 #1911


buenas, que pena soy nuevo en este foro, mi pregunta es la siguiente, he descargado un programa de coneccion PIC + USB para principiantes (lo pueden buscar de esta manera en google), instalo el driver programo el pic con el programa que se encuentra en la careta de desacrga y hasta hay todo bien, pero al correr el programa de C# me dice que "No se puede cargar el archivo DLL 'mpusbapi.dll': No se puede encontrar el módulo especificado. (Excepción de HRESULT: 0x8007007E)", me he leido la mayor parte de tutoriales en internet sobre el tema de USB PIC y C# y no encuentro uno que me colabore con este tema, entre las soluciones que han dado se encuentra copiar la libreria en la system32 al hacerlo el programa corre pero no recibe datos es como si no se conectara el dispocitivio, le agradeceria al que me diera la solucion.
16/02/2012 #1912

Avatar de Meta

Hola:

Si no recuerdo mal, tienes que indicar el archivo mpusbapi.dll en referencias de C#, a parte de dejar esa dll en alguna ubicación en concreto.

Saludo.
16/02/2012 #1913


hola Meta, realice lo que me dijiste y no me dejo me decia que la ubicacion no era valida o que el archivo no era valido, preguntando en otro foro me dijeron que tenia que agregarla el dll en la carpeta debug que se encuantra dentro bin de la carpeta del proyecto, realice esto y listo me copilo el archivo a la perfecion, muchas gracias por tu ayuda.
16/02/2012 #1914

Avatar de Meta

loquillo3600 dijo: Ver Mensaje
hola Meta, realice lo que me dijiste y no me dejo me decia que la ubicacion no era valida o que el archivo no era valido, preguntando en otro foro me dijeron que tenia que agregarla el dll en la carpeta debug que se encuantra dentro bin de la carpeta del proyecto, realice esto y listo me copilo el archivo a la perfecion, muchas gracias por tu ayuda.
lo que te dijeron es lo que me refería, ejeje.
17/02/2012 #1915


Alguien sabe de por que no me detecta el pic18f2550 con el hid, tome el primer ejemplo del hid y lo monte en proteus y hay si anda de maravilla pero el problema ya es al momento de conectar el pic a la pc me dice que no se reconoce el dispositivo USB alguien me podria ayudar T_T
19/02/2012 #1916

Avatar de Meta

Hola Moyano:

Hace tiempo se propuso hacer un mini manual como el esquema de arriba con C#, USB y PIC16Fx550. A lo mejor lo tienes hecho y no lo se.



http://www.circuitvalley.com/2011/09...th-analog.html

- 8Entradas digitales
- 8 Salidas Digitales
- Entradas analógicas
- LCD 20x4
- USB

No te digo ahora, si cuando estés preparado. ¿Hacemos una Interfaz de C# con esas características?

Cada vez veo a mucha gente con el USB por todas partes, jejeje. Espero que a estas altura tengas ya soltura con el USB y los PIC para controlar dicha salidas y entradas. Cuando estés y estén dispuestos avisa, soy todo oídos y te ayudaré en la parte de la Interfas. Los demás pueden aportar.

Un cordial saludo.
Archivos Adjuntos
Tipo de Archivo: rar USBioboardSourcecodefile.rar (488,9 KB (Kilobytes), 248 visitas)
24/02/2012 #1917

Avatar de dinoelectro

hola meta, segun veo la figura se trata de una tarjeta DAQ.. yo construi una y la postee en este foro puedes revizarla en en el siguiente link

DAQ USB con pic 18f4550

aunque de antemano te digo que no me gusta mucho su rendimiento; ya que la velocidad de adquisicion es lenta y ademas la comunicacion CDC se pierde.. seria bueno pensar en construir una parecida utilizando HID... yo me apunto para lo que pueda colabolarles.. saludos!!
24/02/2012 #1918

Avatar de Meta

dinoelectro dijo: Ver Mensaje
DAQ USB con pic 18f4550
Muy bueno.

Claro que este PIC para lo que quiero le faltan un puerto más para el manejo del LCD. Habrá que usar un PIC de 60 pines o un PCF8574 o el PCF8574A para tener más pines con el mismo PIC.

24/02/2012 #1919

Avatar de dinoelectro

haz considerado el controlador de LCD con un solo pin que publico unas dias atras arrivaelobo?.. talves ahi te ahorras ese microcontrolador
24/02/2012 #1920

Avatar de Meta

Si lo tuviera a mano y fácil de conseguirlo si. ejjejeje.Los que consigo son del típico de siempre. 4 bits config y 3 máspara control del LCD. El del PIN es con el RS232 tengo entendido y funciona de maravila.
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.