Control de dispositivos a través del módulo USB del PIC18F45/2550

Ok , dale yo ahora mismo me pongo a hacer la aplicación para VB.net

Cuando termines con tu aplicación la posteas asi comparamos los resultados.

PD: En VB6.0 eran tan fáciles las cosas.....que tiempos aquellos ajaajjaj
 
¡¡¡POR FIN FUNCIONA!!!

Estoy escribiendo desde el Pentium III y usando puerto COM2 (COM1 también). Lástima que cada vez se usa menos los db9.

Tengo la idea de hacerlo funcionar con los radioButton porque el comboBox puedes escribir sobre él y poner cualquier cosa y da error.

También haré a ver si soy capaz con el tiempo, que desde internet, pueda hacer funcionar el puerto serie desde otro PC y controlar el PIC.

Código:
                int selectedIndex = comboBox1.SelectedIndex;
                Object selectedItem = comboBox1.SelectedItem;
                serialPort1.PortName = selectedItem.ToString(); //Aquí está los COM1 y COM2 del comboBox.

Código completo:
Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace Probando_02
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        // Variables
        string pa = "Puerto abiero.";
        string pc = "Puerto cerrado. Pulse botón 'Conectar'.";
        string des = "Desconectar";
        string con = "Conectar";
     //   int open = 1;
        bool open = true;

        private void button_on_Click(object sender, EventArgs e)
        {
            try
            {
                byte[] mBuffer = new byte[1];
                mBuffer[0] = 0x74; //ASCII letra "t".
                serialPort1.Write(mBuffer, 0, mBuffer.Length);
                button_on.Enabled = false;
                button_off.Enabled = true;
                label_.Text = "ON";
                label_.ForeColor = Color.Green;
            }
            catch (InvalidOperationException)
            {
                label_mensaje.Text = pc;
            }
        }

        private void button_off_Click(object sender, EventArgs e)
        {
            try
            {
                byte[] miBuffer = new byte[1];
                miBuffer[0] = 0x62; //ASCII letra "b".
                serialPort1.Write(miBuffer, 0, miBuffer.Length);
                button_off.Enabled = false;
                button_on.Enabled = true;
                label_.Text = "OFF";
                label_.ForeColor = Color.Red;
            }
            catch (InvalidOperationException)
            {
                label_mensaje.Text = pc;
            }
        }

        private void button_conectar_Click(object sender, EventArgs e)
        {
            if (open == true) //1
            {
                open = false; //2
                serialPort1.Close();
                //if (comboBox1.Items.Count > 0)
                //{
                //    comboBox1.SelectedIndex = 0;
                //}
                int selectedIndex = comboBox1.SelectedIndex;
                Object selectedItem = comboBox1.SelectedItem;
                serialPort1.PortName = selectedItem.ToString();
                serialPort1.Open();
                label_mensaje.Text = pa;
                button_conectar.Text = des;
                
            }
            else
            {
                open = true; //1
                serialPort1.Close();
                label_mensaje.Text = pc;
                button_conectar.Text = con;
                button_on.Enabled = true;
                button_off.Enabled = true;
                label_.Text = " ";
            }
        }

        // Desde que arranque la aplicación, se pone en COM1,
        // el primero de la lista del comboBox.
        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.SelectedIndex = 0;
        }
    }
}

Saludo.
 
No es un proyecto completo, sino una prueba del comboBox. Espero que te funcione el comoBox también a ti.

Ahora estoy con el radiobutton que creo que es mejor si sólo son dos puertos COM.
 
Funcionó !!!!

Meta no eras el único al que le había funcionado... jeejjee después de golpearme la cabeza contra un matafuegos durante una hora pude hacer mi aplicación CDC en VB.net.

Luego de que tenga todo listo , posteo la aplicación.



Gracias meta !


PD: Todos tienen que tener net framework 3.5 para que la aplicación funciones , sinó dará error.
 
¡¡¡Felicidades!!!

Ya vamos progresando. Te doy lo que hice en PDF a ver si eres capaz de hacerlo. Lo intentaré más adelante con VC++ y VB .net.

Saludo.
 

Adjuntos

  • prueba_com_606.pdf
    676.8 KB · Visitas: 613
Bueno acá está la primera aplicación en Visual Basic 2008 . net y todo para que puedan probarlo.

Espero les sirva.


De a poco voy a ir posteando ejemplos y voy a empezar con HID. Todo lo referente a mpusbapi lo voy a dejar para el último ya que me está dando problemas. :rolleyes:
 

Adjuntos

  • ejercicio_n1_100.rar
    256.2 KB · Visitas: 797
Muy buena la continuación de tu manual, luego le podés añadir para que detecte los puertos COM disponibles por software, asi queda completo.

Ahora lei algo en tu manual , que es específicamente "Radiobutton?"
 
Buenas:

El radio button es esto:
HandlerMoreThanOneRadioButtonEventWithOneMethod.PNG


Sólo que yo voy a usar 2 que es el COM1 y COM2.

A tu pregunta.
¿Te refieres detectar los puertos COM que hay o los que están en uso en ese momento?


Vi tu programa, está bueno el diseño, me da la sensación que has aprendido mucho a usarlo con el Manual de Visual C#...
...Me da error en una cosa. Este error significa que te falta poner en algún lado el try y cacth.

Ya que tengo el PIC18F2550 y 18F4550 lo probaré ejejeje a ver que tal funciona. Cuando acabes con todas las pruenas y te sientas listos, hacemos el mega manual como los que hago yo.

PD: ...y buen paisaje pusiste en Acerca de.
 

Adjuntos

  • error_388.png
    error_388.png
    10.6 KB · Visitas: 375
Jony/Meta si no es mucha molestia lo podrían subir al .hex configurado para 20mhz y con el fuse MCLR en ON?, estoy probando sus avances pero no tengo el ccs para cambiar el código fuente.

muchas gracias y felicitaciones!
 
como estan colegas , les comento que ya descargue visual basic , y el manual de meta para ayudarlos mas en la causa , ya que como ya habia comentado todo lo que yo eh realizado lo he hecho en labview , bueno espero colaborarles pero queda mucho trabajo ya que visual lo vi hace demasiado tiempo " ya se me olvidaron unas cosas"

en cuanto al compañero dalr123 te podria colaborar con lo de labview y la comunicacion usb y en sus distintos modos de trabajo ( me falta hid y msd ) y en ...................................cuanto a los de los profesores si hay unos que son tapados y no colaboran , .pero saben lo mas vacano es cuando sacas algo monstruoso y hay si estan detras de uno para ver como lo hicimos je .

saludos y estamos en comunicacion ..................
 
Jony/Meta, estuve probando y aviso que no funciona.

Cuando conecto el usb detecta el pic, luego instalo el driver, pero el pic no puede comunicarse por el puerto com virtual.

Alguna idea?
 
de que me perdi?

jokelnice, uy si le agradeceria con lo de labview que lo que ud dice es precisamente lo que quiero hacer, realizarlo en labview, aparte de aprender decirle al profesor que ya lo logre y darle las gracias por la "ayuda" que medio. no he podido leer en labview la información que me envia el pic, aunque no he vuelto a hacer pruebas pues desde que lei el manual de Meta estoy haciendo y desaciendo con V2005 , pero me interesa muchisimo lo de labview, esa ayuda se la agradeceria.

Meta y Moyano Jonathan, uds si que avanzan rapido, me toco dejar el pc por que tenia un compromiso que habia olvidado por complero por estar bien entretenido aca jajaja y cuando llego veo que avanzaron bastante y ya resolvieron lo de comboBox, ya experimente y me funciona perfectamente. Lo de RadioButton no le he leido todavia, pero sabe que haciendo las pruebas a ratos se me olvida configurar el puerto COM donde esta conectado el pic y se bloquea el programa nose si a uds les pasa y pues eso seria algo a mejorar puesto que no creo ser el unico que olvida que primero toca configurar el puerto a usar, estoy hechando cabeza como seria una solución pero nose como seria en visual detectar cuando no se a configurado un puerto, seguire en eso pues para mi es muy molesto por que siempre se me olvida ops:.

felixls, lo de que no funciona, a mi me funciona sin ningun problema, algo debe estar faltando.
dice que el pc detecta el pic luego que instala el driver, ahora verifique en administrador de dispositivos que el pic realmente se a conectado, mira en que puerto COM# se encuentra el pic, si todo eso que dije anteriormente esta bien el problema debe estar en el software de visual, y podria ser lo de COM#, verifique eso para que configure que numero de puerto necesita usar.
 
Necesito un descanso que dentro de un rato ir a clase de desempleados.

Lo del USB es cosa de Jony, lo mio se centra por ahora en el puerto serie. Y si, intentaremos resolver los problemas poco a poco.

Por ahora les dejo el avance del comboBox, si siguen la línea del libro www.pic16f84a.org les funcionará el programa a la primera.

Ahora voy a empezar con el radiobutton, porque hay gente que le gusta más.
 

Adjuntos

  • picrs232_combobox_427.zip
    334 KB · Visitas: 364
Hola a todos , respondiendo las preguntas a cada uno queda mas o menos así:

1° - Meta:

- Detectar los puertos COM, significa que detetecta cada uno de los puertos series fisicos o virtuales que hay en la máquina.
esta es una mejora a tu resultado del combobox , ya que no se limita solamente a 2 puertos.
(Esta detección solamente me ha funcionado en visual basic.net)

- El error en portname , a mi me lo da siempre y cuando el puerto este ocupado por otra aplicación, fijate si es eso.

- Ya entendí lo del radiobutton, me parece una buena opción tambien.

- Lo del try catch, no lo puse porque no me parecio necesario.. ahora la pregunta mia: Que función cumplen esos comandos?

- Me base en un 100% del manual de visual C#, ya que te explica todo. Pero como dije hice mi programa en VB.net

2° - Felixls:

- Te dejo el link abajo para que te descargues el firmware con las especificaciones que vos necesitabas:

Cristal: 20 Mhz y MCLR en ON.

- Felixls, en caso de tengas problemas con el programa:

- Si tenés notebook, primero conectá el PIC y instalá los drivers que te pida.
- Andá al administrador y fijate que que haya un puerto COM disponible. Sin salirte del administrador desconecta el PIC, ahora tiene que desaparecer el icono del puerto com que marcaba antes.
Luego conecta de vuelta y fijate que numero de puerto COM es por ejemplo COM9....

- Abri el programa, en la pestañita del Combobox, te tiene que aparecer el COM9, dale click y luego dale click tambien a conectar. Hasta ahi no te tendría que mandar ningun error.

- pulsa sobre la X o la Y , tendrias que estar recibiendo respuestas desde el PIC..

- Si te sigue dando error decime..

3° - dalr123:

- Tenés que configurar si o si el puerto COM a utilizar antes de usar el programa, ya que si no siempre te va a dar error.
- Luego apreta el boton conectar y con los botones x e y fijate que vas a recibir las respuestas del PIC en el textbox.

PD: No seas tan olvidadizo jaja


Bueno he tratado de responder todas las preguntas, si tienen mas pongalas nomas y veo si las puedo responder.
 

Adjuntos

  • firmware_pic18f2550_187.rar
    13.8 KB · Visitas: 444
Moyano Jonathan dijo:
Hola a todos , respondiendo las preguntas a cada uno queda mas o menos así:

1° - Meta:

- Detectar los puertos COM, significa que detetecta cada uno de los puertos series fisicos o virtuales que hay en la máquina.

Entendido.

esta es una mejora a tu resultado del combobox , ya que no se limita solamente a 2 puertos.
(Esta detección solamente me ha funcionado en visual basic.net)

Intentaré haber si me sale, puse el COM3 y COM4 y dice que no existe. Para ellos tengo entendido que es mejor entrar y descargar los driver necesario para detectar puertos serie aquí: http://www.ftdichip.com/Drivers/VCP.htm

- El error en portname , a mi me lo da siempre y cuando el puerto este ocupado por otra aplicación, fijate si es eso.

Pon:

serialPort1.Close(); //Cerrar puerto
...
serialPort.Open(); //Abrir puerto.


- Ya entendí lo del radiobutton, me parece una buena opción tambien.

Ya sabré que opinan la gente en la versión final. Es más fácil.

- Lo del try catch, no lo puse porque no me parecio necesario.. ahora la pregunta mia: Que función cumplen esos comandos?

Lee aquí: http://msdn.microsoft.com/es-es/library/0yd65esw.aspx

- Me base en un 100% del manual de visual C#, ya que te explica todo. Pero como dije hice mi programa en VB.net

Veo que te defiende ya hasta con el VB .net que antes eras reacio. Contigo aprenderé algo de VB, ya notarás que el vb .net está mejor.
 
Algo que no encuentro son cosas del VB 6.0, como por ejemplo: shape e image esos controles no los vi en vb.net.

Con Vb.net estoy en pañales todavía pero aprendiendo a la fuerza todo se puede ajaja.

Ahora esa referncia de C# , es solamente para C# o tambien se cumple para otros lenguajes ?
 
:cool: Hola a todos de nuevo como para empezar con HID les dejo estos programas de ejemplo que hice la otra vez.

Mejoras con respecto a programas que hice anteriormente para HID:

- Uso el easyHID para crear la aplicación en VB 6.0
- Código más entendible.
- Librería de de C de CCS hecha para trabajar con easyHID.
- Comunicación a alta velocidad.

PD: Estoy haciendo experimentos con Visual C++ , pero es bastante complicado (también con easyHID).
 

Adjuntos

  • ejercicio_n1_107.rar
    422.5 KB · Visitas: 695
  • ejercicio_n2_426.rar
    322.1 KB · Visitas: 682
  • ejercicio_n3_102.rar
    182 KB · Visitas: 659
  • ejercicio_n4_151.rar
    165 KB · Visitas: 676
  • ejercicio_n5_172.rar
    166.1 KB · Visitas: 780
Atrás
Arriba