Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Eviar Comandos USB A Un PIC18F4550 Adquisicion De Datos
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Eviar Comandos USB A Un PIC18F4550 Adquisicion De Datos 
 
Hola amigos!

Estoy intentando enviar un comando a un PIC18F4550 de microchip con gambas3 en un ubuntu 10.04.

Tengo que enviar un comando que por ejemplo puede se "OUT 1 ON" (enciende un relé de la tarjeta de la placa).

He probado con el programa de ejemplo que viene pero el micro siempre me devuelve "FAIL" que es lo que devuelve si el comando que le llega al micro no es correcto.

Con gtkterm va bien (devuelve OK) pero con gambas no hay manera, he puesto la misma configuración:

port    = /dev/ttyACM0
speed    = 9600
bits    = 8
stopbits    = 1
parity    = none
flow    = none

Pero de nuevo "FAIL"

He visto que en el ejemplo lo que escribe en el puerto es

Citar:
   Print #Sport, txtSend.Text; Chr$(13); Chr$(10);


y he probado con la linea comentada que hay encima:

Citar:
   Write #Sport, TxtSend.Text & Chr(13) & Chr(10), txtSend.Length + 2


Sin éxito.

Con C# tengo un código que si que funciona, pero lo quería hacer con gambas que es mucho mas amigable con los formularios.

El codigo monodevelop es:

public string sendCommand(string command, int msTimeout)
                {                      
                        discardStaleData(); //Ya llama al openPort
                        //openPort();
                        
                        command += "\r"; //CR has to be added for the command to be executed
                        
                        //Command is send with a short delay between each byte
                        foreach (byte bt in strToByteArray(command))
                        {
                                byte[] btArr = new byte[1];
                                btArr[0] = bt;                          
                                
                                mySerial.Write(btArr, 0, btArr.Length);
                                System.Threading.Thread.Sleep(2);
                        }
                        
                        System.Threading.Thread.Sleep(2); //Short delay before reading
                        return readLine(msTimeout);
                }      

                
                public void discardStaleData()
                {                      
                        openPort();
                        //Clear buffer just in case there is stale data
                        try
                        {
                                mySerial.ReadTimeout = 10;
                                mySerial.ReadExisting();
                        }
                        catch (System.TimeoutException)
                        {
                                //Nothing to do since we are cleaning buffer
                        }
                }


Hos habeis encontrado con algo así? Si alguien me puede socorrer un poco se lo agradeceré eternamente.

No se si he buscado correctamente, pero no encuentro información y hace días que que busco y nada.Como podeis ver no soy ningún fiera de la programación.

Gracias!
 



 
electrosmog - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Eviar Comandos USB A Un PIC18F4550 Adquisicion De Datos 
 
electrosmog:

Hay una aplicacion que se llama Domotica ( Enlace ), que el adminitrador Jesus Guardon, siempre recomienda echarle un vistazo, por el tema de conexiones con usb.

Yo he usado conexión por usb con Arduino, pero como se simula como un puerto serie... no se si te servirá, puedes ver en el foro los ejemplos que he hecho... por si te da alguna idea..


Citar:
Con C# tengo un código que si que funciona, pero lo quería hacer con gambas que es mucho mas amigable con los formularios.

Tambien puedes hacer varios programas en C (para enviar y/o recibir información del chip) , y llamarlos con Shell o Exec desde los formularios de gambas.. asi aprovechas lo mejor de ambos lenguajes... (se me ocurre    )

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Miercoles, 05 Diciembre 2012, 18:25; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Eviar Comandos USB A Un PIC18F4550 Adquisicion De Datos 
 
Intenta con la línea:

Print #Sport, txtSend.Text & "\n";

Saludos.
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Eviar Comandos USB A Un PIC18F4550 Adquisicion De Datos 
 
Gracias por vuestras respuestas, al final no lo he conseguido con gambas, lo haré con un programilla de C. Prove de todo pero en fin... al menos tengo escapatoria con C.
 



 
electrosmog - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Eviar Comandos USB A Un PIC18F4550 Adquisicion De Datos 
 
No deberías tener problema con esto para realizarlo en gambas. Si el micro te devuelve un error, deberías monitorizar lo que se está enviando exactamente a través del puerto serie, porque puede que no estés enviando los caracteres correctos:

http://unix.stackexchange.com/quest...al-port-traffic

En concreto, el comando strace:

strace -s9999 -o tuaplicacion.strace -eread,write,ioctl ./tuaplicacion.gambas


debería desvelarte lo que realmente se está enviando y recibiendo a través del ttyS0 (además de todas las escrituras y lecturas a disco) y así poder depurar el error. El fichero resultante en tu home/usuario se llama tuaplicación.strace y te sorprenderá ver su contenido.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Eviar Comandos USB A Un PIC18F4550 Adquisicion De Datos 
 
GENIAL!!!!

Con strace pude ver que el fallo, el asunto es que hay que enviar los caracteres uno a uno:

Esto no funciona :

echo -e "OUT1 ON" > /dev/ttyACM0


Pero esto si:

#!/bin/sh

echo -n "O" >/dev/ttyACM0
echo -n "U" >/dev/ttyACM0
echo -n "T" >/dev/ttyACM0
echo -n "1" >/dev/ttyACM0

echo -n " " >/dev/ttyACM0

echo -n "O" >/dev/ttyACM0
echo -n "N" >/dev/ttyACM0

echo -n -e "\\r" >/dev/ttyACM0

exit 0

 
Así pues con un script sencillito me apañaré.

#!/bin/sh

# Script per enviar comando a /dev/ttyACM0 y devolver respuesta

cat /dev/ttyACM0 &

longitud=$(expr length $1)

for (( c=0; c<=($longitud-1); c++ ))
do
        echo -n ${1:$c:1} >/dev/ttyACM0
done

if [ "$2" ]
then

        echo -n " " >/dev/ttyACM0      
        longitud=$(expr length $2)

        for (( c=0; c<=($longitud-1); c++ ))
        do
                echo -n ${2:$c:1} >/dev/ttyACM0
        done
        
fi


echo -n -e "\\r" >/dev/ttyACM0

killall cat

exit 0


Asi lo podré ejecutar desde el codigo de gambas.
Muchas gracias a todos, tenia este proyecto parado.  
 



 
última edición por electrosmog el Miercoles, 24 Abril 2013, 11:04; editado 2 veces 
electrosmog - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Gambas Y Comandos Via Ssh (SOLUCIONADO) Pablo-GNU General 13 Jueves, 24 Junio 2010, 23:13 Ver último mensaje
abarzuaf
No hay nuevos mensajes Tutorial De Comandos De SQLite Shell Bases de Datos 0 Sabado, 08 Diciembre 2012, 11:37 Ver último mensaje
Shell
No hay nuevos mensajes Comunicacion USB PIC18F4550 Erik Gasca General 2 Jueves, 17 Octobre 2013, 03:38 Ver último mensaje
Erik Gasca
No hay nuevos mensajes Resumen De Comandos De Uso Frecuente En Linux Shell Shell Scripting 1 Sabado, 14 Diciembre 2013, 11:42 Ver último mensaje
jsbsan
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron