Show Posts
Pages: 1 ... 3 4 [5] 6 7 ... 37
61  International / Software / Re: duda inclusion librerias en skecht on: July 26, 2014, 12:31:02 am
Hola.
#include <libreria>
va a buscar directamente a las carpetas predefinidas de librerías.
#include "libreria"
busca primeramente en el propio directorio de proyecto o la ruta que le indiques.
62  International / Software / Re: Pasar definicion de un fichero a otro. on: July 26, 2014, 12:09:49 am
Uffff  smiley-eek A veces es mucho más difícil entender la pregunta que conocer la respuesta.
Tengo varias respuestas posibles que van desde declarar u8g en la librería como extern, pasarle la pantalla a tu clase como un parámetro más, o heredar tu clase de la pantalla; pero sin ver el código de tu librería ni entender exactamente qué necesitas, pues sólo puedo señalarte la dirección aproximada, no la respuesta concreta.
63  International / Proyectos / Re: Proyecto: añadir sensores a un robot submarino on: July 25, 2014, 11:44:07 pm
Con lo del buffer, me refiero a un espacio de memoria en el que irás preparando los datos a enviar. Puede ser una cadena, en cuyo caso la "construyes" cuando el master te envía sus mensaje, y será la cadena que permanecerá a la espera de ser enviada cuando el master te diga "habla".
Digamos que antes, cuando te llegaba la pregunta ibas contestando la respuesta; ahora sólo preparas la respuesta para cuando te den permiso para hablar.
Sería interesante saber en qué "dialecto" van a ir esas preguntas y respuestas y podría decirte códigos más concretos.
64  International / Proyectos / Re: Proyecto: añadir sensores a un robot submarino on: July 24, 2014, 05:36:04 pm
Bien. En el código del esclavo i2c debes, básicamente, construir las funciones callback para onReceive y onRequest

Code:
void receiveEvent(int computer_bytes_received)
{
      for (int i=0; i<computer_bytes_received; i++){
            computerdata[i]=wire.read();
      }
      // analizar los datos recibidos en computerdata, preparar una respuesta en sensordata
}


void requestEvent(void)
{
      wire.write(sensordata); // Si es una cadena, así valdría. si es una estructura sería wire.write(estructura, numbytes)     
}


La principal diferencia es que cuando recibes datos del maestro, no puedes contestar inmediatamente, sino que irás preparando una respuesta en un buffer a la espera de que el master solicite datos. En requestEvent enviaremos esos datos previamente preparados en ese buffer.
65  International / Español / Re: [SOLUCIONADO] Convertir variable long a seis digitos. on: July 23, 2014, 05:57:50 pm
De nada, max_saeta. Si has comprendido el código, verás que con cambiar la comparación del for, puedes obtener más o menos dígitos.
Por supuesto que puedes utilizar 0x30 (también 48, ó B110000). Yo utilizo directamente '0' porque no sabía (ni me hacía falta) el código ascii del cero, y también porque queda más "autoexplicado" lo que  estoy sumando al valor del dígito.
Saludos.
66  International / Proyectos / Re: Proyecto: añadir sensores a un robot submarino on: July 23, 2014, 05:40:00 pm
Bueno; entiendo que lo que quieres es sustituir la transmisión-recepción serial en codigosensoresesclavo por una i2c y en codigosensoresordenador aún no has implementado nada del master.  Ya puedes poner dispositivos esclavos perfectamente programados, que como no haya un master que les dé la palabra, no van a decir ni pío.
Creo que podíamos empezar concretando más qué información deseas enviar del master al esclavo y viceversa, y centrarnos en un pequeño programa que muestre en el monitor del master lo que se recibe del esclavo. Una de las cuestiones a tener en cuenta es que el máximo de datos que se puede enviar en una trama i2c creo que es 32 bytes (aunque se puede modificar en la librería), así que lo ideal sería enviar los datos mínimos, con lo que además optimizamos tanto el tiempo de transmisión como la posterior extracción y conversión de los datos. No tiene sentido que algo que vamos a enviar para consumo del arduino se le envíe "humanizado" en plan cadenas tipo "temperatura1=27.56,temperatura2=27.30". Lo mismo se podría aplicar a las transmisiones serie entre dispositivos (otra cosa es una transmisión destinada al usuario, como el monitor serial).
De todas formas, si de momento sólo te interesa conseguir una transmisión i2c tal vez esto te ayude para empezar.
Ya irás contando.
Saludos.
67  International / Proyectos / Re: Ayuda Arduino + Variador de Velocidad Trifasico 220v on: July 22, 2014, 05:07:11 pm
Hola.
Perdón por el "off-topic", pero me pica la curiosidad, ya que mi padre es aficionado a la apicultura, pero utiliza un extractor manual, con lo que la aceleración la tiene bastante controlada smiley. Lo que no hace (aunque supongo que podría) es invertir el sentido de giro ¿qué misterio tiene? pues al fin y al cabo los panales van "mirando" hacia el exterior, con lo que el sentido de giro no debería influir mucho, ¿no?
68  International / Proyectos / Re: Proyecto: añadir sensores a un robot submarino on: July 22, 2014, 04:50:57 pm
Hola.
Tal vez deberías poner ese esquema que refieres, porque yo al menos no me termino de aclarar.
Si estos dos códigos se deben comunicar entre sí por i2c, entiendo que codeigosensoresordenador sería el master, ¿no?
Pero el caso es que ni has iniciado Wire en él (de hecho ni incluyes la librería) así que el otro ya puede esforzarse smiley-razz.
La verdad es que yo no he utilizado i2c, pero si miras en la referencia el ejemplo write y el ejemplo read, verás al menos cómo empezar con la parte de master.
Saludos.
69  International / Español / Re: Convertir variable long a seis digitos. on: July 21, 2014, 06:11:01 pm
Prueba a ver así:
Code:
void longtodig(unsigned long valor){
      for (int i=0;i<6;i++){
            digito[i]=valor%10;
            // si en lugar del valor del dígito queremos el carácter, sustituimos por
            // digito[i]=valor%10 + '0';
            valor/=10;
      }
}
70  International / Software / Re: Descargar unos 60 kb desde servidor web a SD de arduino on: July 21, 2014, 05:18:08 pm
Hola

Gracias por responder.

No creo que esa sea la mejor solución.

Saludos

Prueba con este bucle de recepción. No tienes nada que perder.

Code:
      do{
            Serial.print("Bytes a leer: ");
            Serial.println(cliente.available());
            while(cliente.available()) {
                  c = cliente.read();
                  Serial.print(c);
                  Archivo.print(c);
                  if (c==10){
                        Serial.println();
                        filas++;
             }
            delay(500);
      }  while (cliente.available());
71  International / Software / Re: Duda con los tiempo de los codigos on: July 20, 2014, 05:36:29 pm
¿Cómo vas a modificar los parámetros? Básicamente se tratará de escuchar un determinado evento en uno o varios puntos del loop y cuando se produzca ese evento llamar a una función que se encargue de leer el valor a modificar.
Por ejemplo, si utilizáramos el puerto serie para modificar parámetros, podemos incluir uno o varios
if (Serial.available) leeparametro();
y desde dicha funcion leer el valor y modificar el parámetro correspondiente.
72  International / Software / Re: Descargar unos 60 kb desde servidor web a SD de arduino on: July 20, 2014, 05:24:36 pm
Intuyo que lo que podría estar pasando es que dejas de leer tras finalizar un paquete de datos. Deberías combinar cliente.available() con algún control de timeout. Vamos, que no salga del bucle de recepción simplemente porque no haya caracteres disponibles, sino porque pase x tiempo sin haber caracteres disponibles.
73  International / Software / Re: Extracción datos IDE arduino on: July 17, 2014, 05:44:01 pm
Pues mira. Una opción muy básica sería usar el hyperterminal, configurarlo para recibir del puerto serie, y con la opción capturar texto ya estás enviando todo lo que se recibe del arduino a un archivo de texto.
Si el programa arduino estructura bien lo que se envía, separado por comas y saltos de línea convenientemente, ya tienes un archivo importable a una tabla excel.
74  International / Software / Re: Extracción datos IDE arduino on: July 17, 2014, 06:22:28 am
Bien. Necesitas básicamente un programa que sustituirá al monitor serial, lo único que hace es presentarte los datos que le llegan.
Pregunta:
¿Conoces algún lenguaje de programación para el ordenador que te permita recibir por serie y guardar en un archivo?
Ese es el meollo. Lo del arduino ya lo tienes.
75  International / Software / Re: Extracción datos IDE arduino on: July 15, 2014, 04:48:09 pm
Tú mismo lo has explicado. La "complicación" viene de que aparte del arduino, deberás programar la otra parte. Una opción es a través del propio puerto serie, pero en vez de ser recibidos los datos por el monitor serie, recibirlos desde un programa que los procese. También los puedes enviar a una página web que los recoja y los vaya guardando en una base de datos. En cualquier caso, aparte del arduino, deberás programar el otro canal.
Una tercera opción sería ir guardando los datos en el propio arduino, en una tarjeta SD que podrías leer posteriormente en el PC; pero si lo que quieres es tiempo real, no te servirá.
Pages: 1 ... 3 4 [5] 6 7 ... 37