Proyecto de Levitacion Magnetica con PIC por USB
5 participantes
Página 1 de 1.
Proyecto de Levitacion Magnetica con PIC por USB
Hola todos, es un placer inaugurar esta parte del foro. Actualmente en mi universidad estoy enfocado en el proyecto de disenio de un sistema de levitacion magnetica , basicamente es un bobina solenoidal dipuesta verticalmente por donde pasa una corriente, se induce entonces un campo magnetico que al interactuar con un cuerpo de material ferromagnetico lo atrae fuertemente y se opone al peso del mismo... Bueno eso, ya llevo muy adelantado el proyecto, actualmente estoy aprendiendo como usar el 18f2550 por usb para comunicarle con algun software de procesamiento de informacion como Matlab, o Labview, u otro que desarrollo en lenguajes que conozca, como c++.Ya he encontrado mucha informacion sobre como hacerlo en windows , pero quiero hacerlo en Linux, alguien tiene idea de como establecer comunicacion USB entre ese pic y el pc con SO Linux ( tengo kubuntu 9.04) ? Necesito una luz, a partir de ahi me encargo del resto ( ya he buscado bastante en google, y encuentro mucha info, pero demasiado difusa, de todas formas mis avances los estare documentando en este foro para que sirva en proyectos futuros. Saludos.
kainalu- Participante
- Mensajes : 14
Fecha de inscripción : 11/07/2009
Edad : 37
Localización : Medellin, Colombia
Re: Proyecto de Levitacion Magnetica con PIC por USB
Interesante proyecto, me gustaría verlo en funcionamiento .
Para la comunicación por USB en Linux, lo más sencillo es utilizar la clase CDC y manejar el dispositivo a través de un puerto COM "virtual", es más que suficiente y muy adecuado para este tipo de aplicaciones, puedes acceder al dispositivo desde prácticamente cualquier lenguaje o entorno de desarrollo. En este mismo foro puedes encontrar información para realizar una aplicación que envíe y reciba datos a través de un puerto COM con varios lenguajes.
Si estás interesado en utilizar comunicación mediante transferencias del tipo "bulk", busca info sobre la biblioteca libusb, es la adecuada .
Yo he realizado aplicaciones utilizando ambas opciones, mientras que por el lado del PIC lo he programado utilizando CCS. Cualquier comentario, con gusto.
Para la comunicación por USB en Linux, lo más sencillo es utilizar la clase CDC y manejar el dispositivo a través de un puerto COM "virtual", es más que suficiente y muy adecuado para este tipo de aplicaciones, puedes acceder al dispositivo desde prácticamente cualquier lenguaje o entorno de desarrollo. En este mismo foro puedes encontrar información para realizar una aplicación que envíe y reciba datos a través de un puerto COM con varios lenguajes.
Si estás interesado en utilizar comunicación mediante transferencias del tipo "bulk", busca info sobre la biblioteca libusb, es la adecuada .
Yo he realizado aplicaciones utilizando ambas opciones, mientras que por el lado del PIC lo he programado utilizando CCS. Cualquier comentario, con gusto.
Re: Proyecto de Levitacion Magnetica con PIC por USB
Hola Geo, gracias por responder. Ya hice una plataforma de trabajo con el PIC 18F2550 ( con cristal de 20 Mhz y salida USB ), e instale PIKLAB para compilar los codigos fuente con CCS (usando wine) y llevarlos al PIC con un custom programmer dentro de la IDE ( el PK2CMD). Toda la tarde y noche de hoy he estado buscando info sobre como implementar la conexion PIC-PC en Linux por USB, pero me veo algo confundido, de momento lo que deduzco de la informacion leida es:
1) Se necesita un firmware para el microcontrolador donde se establezcan todas las directrices asociadas al USB por parte del PIC, este firmware lo suministra microchip y lo tiene documentado, pero para programar la aplicacion usan codigo en la forma del compilar C18 de microchip, y prefiero CCS porque ya lo se usar.
2) Adicionalmente si se usase windows se requeriria el driver CDC, pero algunos distros Linux ya lo tienen en forma nativa, CDC ACM, por lo que si yo tengo mi pic con el firmware y opcionalmente el codigo de la aplicacion Linux me reconocera el micro como un periferico sin la instalacion previa de ningun driver.
3) Para la comunicacion microcontrolador-PC debo hacer un programa que se encargue de la transferencia-recepcion de informacion ( Matlab, Labview,otros...), aunque iniciamente puede usarse por linea de comandos desde terminal , por ejemplo con cat.
Que tan errado estoy?
En realidad he consultado demasiadas cosas pero las tengo demasiado difusas en mi mente, incluso vi que algun Geo ( creo que eres tu ejejeje) en foros.solocodigo , habla sobre este tipo de aplicacion, y que era posible con matlab y en linux viable. De pronto me podes decir por donde empiezo, o algunas cosas que deberia hacer inicialmente por favor... Mira, lo que quiero es esto,
Programar el PIC18F2550 usando el compilador CCS, para comunicarme por USB con Linux, emplear un sensor optico ( como un fotodiodo o fotoresistencia) para detectar la posicion del cuerpo que voy a levitar y enviar esa senial electrica como el equivalente en posicion del cuerpo por USB hacia el PC. Procesar dicha informacion con matlab/simulink, o labview, enviarla al microcontrolador,y sacarla de nuevo por el pic hacia un transistor que funcione en modo corte/saturacion activando y desactivando la bobina que me genera el campo magnetico, y por tanto controlando la fuerza magnetica sobre el cuerpo...
Estoy entonces en la parte del micro, necesito conectar este PIC por usb con Linux. Algun consejo? Estare atento a la respuesta, y saludos.
1) Se necesita un firmware para el microcontrolador donde se establezcan todas las directrices asociadas al USB por parte del PIC, este firmware lo suministra microchip y lo tiene documentado, pero para programar la aplicacion usan codigo en la forma del compilar C18 de microchip, y prefiero CCS porque ya lo se usar.
2) Adicionalmente si se usase windows se requeriria el driver CDC, pero algunos distros Linux ya lo tienen en forma nativa, CDC ACM, por lo que si yo tengo mi pic con el firmware y opcionalmente el codigo de la aplicacion Linux me reconocera el micro como un periferico sin la instalacion previa de ningun driver.
3) Para la comunicacion microcontrolador-PC debo hacer un programa que se encargue de la transferencia-recepcion de informacion ( Matlab, Labview,otros...), aunque iniciamente puede usarse por linea de comandos desde terminal , por ejemplo con cat.
Que tan errado estoy?
En realidad he consultado demasiadas cosas pero las tengo demasiado difusas en mi mente, incluso vi que algun Geo ( creo que eres tu ejejeje) en foros.solocodigo , habla sobre este tipo de aplicacion, y que era posible con matlab y en linux viable. De pronto me podes decir por donde empiezo, o algunas cosas que deberia hacer inicialmente por favor... Mira, lo que quiero es esto,
Programar el PIC18F2550 usando el compilador CCS, para comunicarme por USB con Linux, emplear un sensor optico ( como un fotodiodo o fotoresistencia) para detectar la posicion del cuerpo que voy a levitar y enviar esa senial electrica como el equivalente en posicion del cuerpo por USB hacia el PC. Procesar dicha informacion con matlab/simulink, o labview, enviarla al microcontrolador,y sacarla de nuevo por el pic hacia un transistor que funcione en modo corte/saturacion activando y desactivando la bobina que me genera el campo magnetico, y por tanto controlando la fuerza magnetica sobre el cuerpo...
Estoy entonces en la parte del micro, necesito conectar este PIC por usb con Linux. Algun consejo? Estare atento a la respuesta, y saludos.
kainalu- Participante
- Mensajes : 14
Fecha de inscripción : 11/07/2009
Edad : 37
Localización : Medellin, Colombia
hola
hola!, yo ayudar ayudar no puedo mucho porque soy muy nuevo, pero tengo una peticion ¿podriamos ver los esquemas de ese levitador?
tension necesaria, maxima masa.....
tension necesaria, maxima masa.....
selver- Nuevo Usuario
- Mensajes : 7
Fecha de inscripción : 05/09/2009
Re: Proyecto de Levitacion Magnetica con PIC por USB
Hola Selver, ahora mismo lo que llevo es el modelo matematico del sistema, y algunas consideraciones iniciales, como los sensores posibles a usar. Pronto estare haciendo los esquemas, y los posteo, a quien le interese y tambien la informacion de como implementar el proyecto en Linux, incluyendo el modelo matematico, la explicacion fisica del fenomeno ( desde la teoria electromagnetica), el posible tipo de control a emplear, y los resultados. Pero estoy de momento en lo del USB, saludos.
kainalu- Participante
- Mensajes : 14
Fecha de inscripción : 11/07/2009
Edad : 37
Localización : Medellin, Colombia
Re: Proyecto de Levitacion Magnetica con PIC por USB
Ummmmmm, ya he consultado mas. El paso de implementar USB con Linux después de ya haberlo logrado con windows (CDC) es minimo, pues si se pone el adecuado VID, y PID, Linux (con un kernel moderno) reconoce el dispositivo sin necesidad de ningun .inf. Ejeje corrijanme los que saben si estoy mal xD. Continuare con mi tarea, saludos!.
kainalu- Participante
- Mensajes : 14
Fecha de inscripción : 11/07/2009
Edad : 37
Localización : Medellin, Colombia
Re: Proyecto de Levitacion Magnetica con PIC por USB
Dentro de los ejemplos de CCS viene uno para utilizar la clase CDC (Communication Device Class), chécalo (también hay para transferencias bulk y para la clase HID).kainalu escribió:
1) Se necesita un firmware para el microcontrolador donde se establezcan todas las directrices asociadas al USB por parte del PIC, este firmware lo suministra microchip y lo tiene documentado, pero para programar la aplicacion usan codigo en la forma del compilar C18 de microchip, y prefiero CCS porque ya lo se usar.
Windows ya tiene implementada la clase CDC, lo que falta es la indicación de algunas propiedades del dispositivo, esto se hace mediante un archivo .inf (no se instala ningún controlador). En linux, esto no es necesario.kainalu escribió:
2) Adicionalmente si se usase windows se requeriria el driver CDC, pero algunos distros Linux ya lo tienen en forma nativa, CDC ACM, por lo que si yo tengo mi pic con el firmware y opcionalmente el codigo de la aplicacion Linux me reconocera el micro como un periferico sin la instalacion previa de ningun driver.
En efecto. La ventaja es, además de no necesitar instalar ningún controlador, al utilizar la clase CDC la aplicación para la PC se comunica a través del puerto USB como si se tratara de un puerto serie, lo cual está implementado para la mayoría de lenguajes y herramientas. En este mismo foro puedes encontrar algunos ejemplos de aplicaciones para acceder al puerto serie en varios lenguajes.kainalu escribió:
3) Para la comunicacion microcontrolador-PC debo hacer un programa que se encargue de la transferencia-recepcion de informacion ( Matlab, Labview,otros...), aunque iniciamente puede usarse por linea de comandos desde terminal , por ejemplo con cat.
kainalu escribió:
Que tan errado estoy?
Nada, vas muy bien .kainalu escribió:
Ummmmmm, ya he consultado mas. El paso de implementar USB con Linux
después de ya haberlo logrado con windows (CDC) es minimo, pues si se
pone el adecuado VID, y PID, Linux (con un kernel moderno) reconoce el
dispositivo sin necesidad de ningun .inf. Ejeje corrijanme los que
saben si estoy mal xD. Continuare con mi tarea, saludos!.
Si, en solocodigo tengo el mismo nick .
Re: Proyecto de Levitacion Magnetica con PIC por USB
Muy interesante, te parece que te eche una manita con el proyecto, la verdad me gustaria participar, y pues de paso recordar un poco sobre teoria de Control.
¿Qué tipo de control quieres implementar? y ¿cuántos?
¿Trabajaras sobre dominio de Frecuencia Compleja? o sobre Variables de Estado.
Dejame revisar algunos datos si es que quieres una manita en este proyecto tuyo.
La verdad no se mucho, pero me gusta aprender
Saludos
¿Qué tipo de control quieres implementar? y ¿cuántos?
¿Trabajaras sobre dominio de Frecuencia Compleja? o sobre Variables de Estado.
Dejame revisar algunos datos si es que quieres una manita en este proyecto tuyo.
La verdad no se mucho, pero me gusta aprender
Saludos
maigke- Asiduo del Foro
- Mensajes : 210
Fecha de inscripción : 12/04/2009
Edad : 47
Localización : Mexico
Re: Proyecto de Levitacion Magnetica con PIC por USB
Hola Geo, muchas gracias por responder, estoy de lleno en CCS para usar CDC, empezare siguiendo el tuto( los ejemplos ) que de por si se facilitan en CCS. A maigke, apenas llegue a casa subo el informe inicial de ese proyecto, para que lo veas si quieres ( cualquier ayuda adicional es bienvenida y serial genial), se plantea el modelo inicial, y las ecuaciones de estado del sistema. Pienso implementar inicialmente un control PID, y las constantes... aun no he aprendido los metodos para hallarlas pues estoy en el curso de control y va en poco mas de la mitad. Saludos.
kainalu- Participante
- Mensajes : 14
Fecha de inscripción : 11/07/2009
Edad : 37
Localización : Medellin, Colombia
Re: Proyecto de Levitacion Magnetica con PIC por USB
Bueno, aqui estan las consideracion iniciales a tener en cuenta para el desarrollo de un sistema de levitacion magnetica. Se explica el modelo matematico a considerar, y las ecuacion de estado. Tambien se muestra la simulacion en simulink mostrando que el sistema es inestable por naturaleza. Le he subido a rapidshare:
http://rapidshare.com/files/281939401/mag.rar.html
Bueno, ahora si a poner andar el usb. Saludos.
http://rapidshare.com/files/281939401/mag.rar.html
Bueno, ahora si a poner andar el usb. Saludos.
kainalu- Participante
- Mensajes : 14
Fecha de inscripción : 11/07/2009
Edad : 37
Localización : Medellin, Colombia
Re: Proyecto de Levitacion Magnetica con PIC por USB
Si quieres trabajar con PIC16F4555 o el usb en linux hay un proyecto que se PINGUINO, trabaja con USB y PUF
Todo el proyecto esta en inglés ( un poco en francés)
- www.hackinglab.org
- http://jpmandon.blogspot.com/
- http://sites.google.com/site/pinguinotutorial/home
- http://groups.google.fr/group/pinguinocard?pli=1
Si te interessa Vasco PUF y OdysseyPIC USB Framework
http://vasco.gforge.enseeiht.fr/index.php?article=PUF.html
Saludos
Per
Todo el proyecto esta en inglés ( un poco en francés)
- www.hackinglab.org
- http://jpmandon.blogspot.com/
- http://sites.google.com/site/pinguinotutorial/home
- http://groups.google.fr/group/pinguinocard?pli=1
Si te interessa Vasco PUF y OdysseyPIC USB Framework
http://vasco.gforge.enseeiht.fr/index.php?article=PUF.html
Saludos
Per
Temas similares
» Pre Alfa Guia didáctica para practicas con PIC18F2550 y SDCC
» iniciar proyecto
» Proyecto con PIC18F4523
» Ayuda con proyecto
» Colaborar en el proyecto.
» iniciar proyecto
» Proyecto con PIC18F4523
» Ayuda con proyecto
» Colaborar en el proyecto.
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.