Electrónica y Programación en Personal
«Si no se soluciona con un script en Python entonces no es viable»

por Yeison Cardona el 10 de mayo de 2012 a las 01:22 UTC
Una de las muchas cosas nuevas que Pinguino X.3 trae consigo en la ventana de depurado CDC, y es que en muchas ocasiones es una herramienta muy necesaria, y aunque ya había hecho una aplicación para esto mismo hace algunos post, ahora la podemos usar desde el mismo IDE!!.

Ejemplo:
  • Vamos a usar uno de los ejemplos incluidos, 04.Communication/USB/CDC/Printf.pde lo compilamos y lo ponemos a correr en Pinguino.
u8 n=0;

void setup() {
    }

void loop() {
    CDC.printf("n = %03d \r\n", n++);
    delay(10);
    }
  • Ahora eleccionamos Pinguino>>Depurar>>USB CDC (EMulación Serial) desde el menú de Pinguino IDE x.3
  • E inmediatamente comenzará a verse en tiempo real los datos enviados por CDC.
Problemas:
  • Si no hay ningún dispositivo conectado se verá la siguiente excepción.
  • Es probable que aún después de tener la tarjeta Pinguino conectada y ejecutándose se genere la anterior excepción, ésto se debe a los permisos del puerto serie, entonces:
Conceder permisos a un puerto específico, el cero (0) por ejemplo:
sudo chmod a+rw /dev/ttyACM0
Pero ésto implica conceder permisos cada que conectemos nuestra tarjeta, asi que de una manera mas práctica podemos conceder permisos de acceso a los puertos serie de manera permanente mediante:
sudo usermod -a -G dialout $USER


Ésto es todo, hasta pronto...

También podría interesarte:

Comentarios:
Andy dijo:
10 de mayo de 2012 22:40
Podrias poner el codigo ke viene de ejemplo? eske en mi caso el codigo ke viene ni sikiera incluye un serial,begin

Aunke la compu me lo reconoce como COM10 ninguno de los programas para comunicacion serial me lo reconoce...

Gracias
Responder a Andy
Respuesta de Yeison Cardona:
10 de mayo de 2012 22:53


El código es simplemente
u8 n=0;
void setup()
{
}
void loop()
{
CDC.printf("n = %03d \r\n", n++);
}

Estás en Windows?, tal vez debas intentar poner una pausa después de enviar los datos, algo como:

u8 n=0;
void setup()
{
}
void loop()
{
CDC.printf("n = %03d \r\n", n++);
delay(10);
}

Nota: al usar CDC no se necesitan mas declaraciones que los mismos comandos para enviar datos.
Si estas usando windows asegúrate de tener instalado los drivers correctamente y seleccionar el puerto correcto (si hay mas de un puerto la opción se habilitará)

Hasta Pronto.
Responder a Yeison Cardona
Diego Lao dijo:
13 de agosto de 2012 06:10
Yeison... ¿Dónde se encuentran los drivers de Windows para el cdc? No están por ningún lado.
Responder a Diego Lao
Respuesta de Yeison Cardona:
13 de agosto de 2012 06:29

mmm, cierto, ahora que lo mencionas se incluían con la x.2, en la x.3 se han omitido, pero son los mismos que distribuye microchip, te dejo el link para que los descargues:
http://pinguino32.googlecode.com/svn/tags/x.2/extra/mchpcdc.zip
Responder a Yeison Cardona
Diego Lao dijo:
13 de agosto de 2012 08:57
Ok, muchas gracias :)
Responder a Diego Lao
Diego Lao dijo:
13 de agosto de 2012 09:27
Una cosa más... Se supone que me tendría que dejar cambiar de puerto, ya que lo tengo en el COM5, pero sólo apunta hacia el COM1
Responder a Diego Lao
Respuesta de Yeison Cardona:
13 de agosto de 2012 14:05
En windows a 64 bit no es posible por ahora lograr una comunicación por CDC debido a falencias en PySerial, si no estas usando una arquitectura a 64 bit entonces se trata de un error en el debugger, el que podría corregir con tu ayuda.
Responder a Yeison Cardona
Diego Lao dijo:
13 de agosto de 2012 17:34
Creo que el error no procede del debugger (tengo windows8, estoy probando el IDE en este OS), intento conectar la placa una vez metido todos los drivers (placa y cdc) y me detecta todo... Pero a la hora de conectarme mediante pinguino me dice que no lo detecta (esto en la IDE), desde hyperterminal me dice que no es posible abrir ese puerto...
Responder a Diego Lao
Respuesta de Carlos Espinoza:
jul. 13, 2013, 11:45 a.m.
Hola, yo tengo el mismo problema, en la Hyperterminal también me dice que no puede abrir el puerto... alguien ya lo ha solucionado???
Responder a Carlos Espinoza
Fernando Vergniaud dijo:
12 de noviembre de 2012 21:41
Estoy usando en Linux, todo perfecto pero el menu de depuracion aparece grisado no puedo seleccionar nada.
Sin embardo si en otra terminal hago cat /dev/ttyACM0 todo perfecto.

Que me falta en el IDE para que funcione de ahi.

Saludos
Responder a Fernando Vergniaud
Respuesta de Yeison Cardona:
12 de noviembre de 2012 21:45
De momento se encuentra deshabilitada porque es demasiado inestable, pero la puedes activar ejecutando «./pinguino_start.sh --dev true»
Responder a Yeison Cardona
Ingenieros de El Salvador dijo:
10 de diciembre de 2012 01:20
Hola, Tengo una interface grafica hecha en python, esta sirve para programar graficamente mediante bloques, lo que quiero hacer es usar la IDE X.3 de pinguino para compilar y enviarle el programa al pinguino, pero sin que se muestre en pantalla el IDE de pinguino, quiero hacerlo desde la linea de comandos, como por ejemplo... esto es porque dentro de mi GUI pondre un boton que compilara y enviara el programa al pinguino utilizando el IDE X3.......

Responder a Ingenieros de El Salvador
Jose dijo:
feb. 21, 2013, 4:24 p.m.
a mi me sucede lo mismo que Diego Lao, en xp y en win8!! alguna ayuda?
Responder a Jose
owedonado dijo:
nov. 29, 2013, 8:42 a.m.
part time jobs with health insurance benefits [url=http://www.rgdmape.com/fiere/cytotec.html]comprar cytotec en madrid[/url] ut memphis medical school
Responder a owedonado
Añadir un nuevo comentario:
Si desean una respuesta para su comentario sólo deben agregarme en G+ y hacer una mención a Yeison Cardona, así les podré responder lo antes posible.