Show Posts
Pages: [1]
1  International / Software / Re: Arduino controlado desde movil Android on: January 19, 2013, 09:49:24 am
El problema es que Android lo programo en Java y no encuentro información de como mandarle los datos a la placa de arduino en Java.

No se que es lo que realmente estas buscando, pero creo que la única diferencia que hay entre una placa arduino mega adk y una normal, es que la adk lleva un puerto USB HOST para conectar el ADK Kit de Google, que ese un kit de desarrollo que hace un tiempo venia a costar entre 250 y 300€ que se puede manejar con esta app.

https://play.google.com/store/apps/details?id=com.google.android.apps.adk2&feature=related_apps#?t=W251bGwsMSwxLDEwOSwiY29tLmdvb2dsZS5hbmRyb2lkLmFwcHMuYWRrMiJd

lo puedes ver en este video.

http://youtu.be/Erd2k6EKxCQ

Te lo estoy comentando un poco a ojo de lo que he mirado por encima, yo también me he pillado una mega adk y tengo este tema en mi lista de pendientes.
también he visto algo a respecto en la pagina oficial (http://developer.android.com/tools/adk/adk2.html), pero como te digo no le he mirado en profundidad. Te pego un fragmento del texto traducido con el traductor de Google donde se ve que hace mención a la placa de Arduino.

No se si esto te servirá de ayuda.

____________________________________________________
Configuración del entorno de desarrollo

El 2012 viene con ADK un entorno de desarrollo integrado (IDE) que se utiliza para el desarrollo de software y el programa ADK 2012 accesorio. Las siguientes instrucciones explican cómo configurar y ejecutar el ADK 2012 IDE.

Para configurar y ejecutar el ADK 2012 IDE:

Descargar e instalar el Java Development Kit 6 o superior de java.oracle.com .
Descargue el ADK 2012 IDE para la plataforma de desarrollo:
Ventanas
Mac
Linux 32bit , 64bit
Descomprima el archivo descargado.
Ejecutar la aplicación, vaya hasta el desempaquetado ADK2012_IDE / carpeta y ejecutar el arduino archivo.
Después de haber instalado correctamente y ejecute el ADK 2012 IDE, debe configurarlo para usar la biblioteca ADK 2012.

Para configurar el ADK 2012 IDE para el uso con las bibliotecas ADK:

Inicie el ADK 2012 IDE y seleccione Archivo> Preferencias .
En Preferencias del cuadro de diálogo, haga una nota de la ubicación Sketchbook directorio.
Copie el <adk-source-download> / adk2012/board/library/ADK2 directorio y su contenido en su cuaderno de dibujo / libraries / directorio, por lo que se crea un sketchbook/libraries/ADK2 directorio.
Detenga y reinicie el ADK 2012 IDE .
En el IDE, elija Archivo> Ejemplos> ADK2 a continuación, elija uno de los bocetos de ejemplo:
reloj - El boceto que se carga en el 2012 ADK.
BluetoothScan - Un bosquejo código ejemplo que demuestra que se conecta un accesorio para un dispositivo Android a través de Bluetooth.
usbaccessory - Un bosquejo código ejemplo que demuestra que se conecta un accesorio para un dispositivo Android a través de un cable USB.
Conecte un cable Micro USB del ordenador puerto en la placa ADK a su equipo de desarrollo.
En el IDE ADK 2012 , establecer una conexión de puerto serie con el ADK seleccionando Herramientas> Puerto serie y seleccionar el puerto serie para el ADK.
En el IDE ADK 2012 , elija la ADK seleccionando Tools> Board> Google ADK2 .
Modificar un dibujo ejemplo o crear uno propio.
Sube el boceto para el ADK eligiendo Archivo> Cargar . Cuando el ADK 2012 IDE informes terminado de subir , el boceto se carga y el ADK está listo para comunicarse con el dispositivo Android.
2  International / Software / Re: Controlar un arduino desde otro conectados por ethernet on: January 19, 2013, 06:55:40 am
. . . Continuación

Tarjeta Arduino 2 (Servidor), será la que active los reles:
Quote
/**
* ardu2ardu.ino - Transmision de entradas digitales via Ethernet.
* Creado por Jose Herce, alias Tikissmikiss el 19, Enero de 2013.
* No publicado bajo ninguna licencia. Para uso publico.
*
* En este ejemplo activaremos 3 salidas asignadas a los pines 11, 12 y 13
* de una tarjeta Arduino. En consecuencia del estado de estas entradas
* en otra tarjeta Arduino activaremos o desactivaremos tres salidas
* asignadas a las entradas 1, 2, 3. Las tarjetas se comunicaran por
* Ethernet requiriendo ambas tarjetas de disponer del shield Ethernet.
* La tarjeta de los botones trabajara en modo cliente mientras que la de
* los reles trabajara en modo servidor.
*
* Version de codigo para la tarjeta Servidor
**/

#include <SPI.h>
#include <Ethernet.h>

// Declaramos constantes para la recepcion de estados de pines de entrada.
// deben de ser las mismas que en la otra tarjeta
const byte IN_1_ON = 0x41;
const byte IN_1_OFF = 0x61;
const byte IN_2_ON = 0x42;
const byte IN_2_OFF = 0x62;
const byte IN_3_ON = 0x43;
const byte IN_3_OFF = 0x63;

// Declaracion de Senales Hardware
int outPin_11 = 11, outPin_12 = 12, outPin_13 = 13;

// Declaracion de Parametros de red
byte mac[] = {
    0x6E, 0xFD, 0xE5, 0x23, 0x0C, 0x9F};
IPAddress ipLocal(192,168,2,55);
IPAddress puertaEnlace (192,168,2,1);
IPAddress mascaraSubRed (255,255,255,0);

// Creamos un servidor y le asignamos el puerto de escucha 23
EthernetServer servidor = EthernetServer(23);

void setup() {
    // Configuracion de Senales Hardware
    pinMode(outPin_11, OUTPUT); //Se activara si se activa la entrada 1 de la otra tarjeta
    pinMode(outPin_12, OUTPUT); //Se activara si se activa la entrada 2 de la otra tarjeta
    pinMode(outPin_13, OUTPUT); //Se activara si se activa la entrada 3 de la otra tarjeta

    // Configuracion de la red del dispositivo
    Ethernet.begin(mac, ipLocal, puertaEnlace, mascaraSubRed);

    // Inicializamos el servidor
    servidor.begin();
}

void loop() {
    if (servidor.available()) {
        // si hay datos disponibles los asignamos a un cliente
        EthernetClient cliente = servidor.available();
        // y leemos los datoss
        byte dato = cliente.read();
        // dependiendo del dato recibido actuamos las salidas
        if (dato == IN_1_ON) digitalWrite(outPin_11,HIGH);
        if (dato == IN_1_OFF) digitalWrite(outPin_11,LOW);
        if (dato == IN_2_ON) digitalWrite(outPin_12,HIGH);
        if (dato == IN_2_OFF) digitalWrite(outPin_12,LOW);
        if (dato == IN_3_ON) digitalWrite(outPin_13,HIGH);
        if (dato == IN_3_OFF) digitalWrite(outPin_13,LOW);
        // devolvemos un eco al cliente para vaciar el bufer
        cliente.write(dato);
    }
}

3  International / Software / Re: Controlar un arduino desde otro conectados por ethernet on: January 19, 2013, 06:53:13 am
Hola, alguien sabe como controlar un arduino desde otro arduino que se encuentren conectados por red?

Lo que quiero es que desde unos botones conectados al arduino 1, poder activar y desactivar unos reles conectados al arduino 2.

Gracias.
Algo relativamente sencillo podría ser así:

Tarjeta Arduino 1 (Cliente), será la que recoja el estado de los botones:
Quote
/**
* ardu2ardu.ino - Transmision de entradas digitales via Ethernet.
* Creado por Jose Herce, alias Tikissmikiss el 19, Enero de 2013.
* No publicado bajo ninguna licencia. Para uso publico.
*
* En este ejemplo activaremos 3 salidas asignadas a los pines 11, 12 y 13
* de una tarjeta Arduino. En consecuencia del estado de estas entradas
* en otra tarjeta Arduino activaremos o desactivaremos tres salidas
* asignadas a las entradas 1, 2, 3. Las tarjetas se comunicaran por
* Ethernet requiriendo ambas tarjetas de disponer del shield Ethernet.
* La tarjeta de los botones trabajara en modo cliente mientras que la de
* los reles trabajara en modo servidor.
*
* Version de codigo para la tarjeta Cliente
**/

#include <SPI.h>
#include <Ethernet.h>

// Declaramos constantes para envio de estados de pines de entrada
const byte IN_1_ON = 0x41;
const byte IN_1_OFF = 0x61;
const byte IN_2_ON = 0x42;
const byte IN_2_OFF = 0x62;
const byte IN_3_ON = 0x43;
const byte IN_3_OFF = 0x63;

// Declaracion de Senales Hardware
int inPin_1 = 1, inPin_2 = 2, inPin_3 = 3;

// Declaracion de Parametros de red
byte mac[] = {
    0xDE, 0xFD, 0xE5, 0xD3, 0x0C, 0x9A};
IPAddress ipLocal(192,168,2,177);
IPAddress puertaEnlace (192,168,2,1);
IPAddress mascaraSubRed (255,255,255,0);
// IP de la otra tarjeta
IPAddress ipArduServ(192,168,2,55);

// Crearmos un cliente
EthernetClient cliente;

void setup() {
    // Configuracion de Senales Hardware
    pinMode(inPin_1, INPUT); //Al activarse se activara la salida 11 de la otra tarjeta
    pinMode(inPin_2, INPUT); //Al activarse se activara la salida 12 de la otra tarjeta
    pinMode(inPin_3, INPUT); //Al activarse se activara la salida 13 de la otra tarjeta

    // Configuracion de la red del dispositivo
    Ethernet.begin(mac, ipLocal, puertaEnlace, mascaraSubRed);
}

void loop() {
    // Esperamos a obtener conexion con la IP de la otra tarjeta por el puerto 23
    while (!cliente.connect(ipArduServ, 23)) {
        // Una vez conectados enviamos el estado de las entradas.
        // si se desea se pueden omitir los delay()
        if (digitalRead(inPin_1)==HIGH) cliente.write(IN_1_ON);
        delay(200);
        if (digitalRead(inPin_1)==LOW) cliente.write(IN_1_OFF);
        delay(200);
        if (digitalRead(inPin_2)==HIGH) cliente.write(IN_2_ON);
        delay(200);
        if (digitalRead(inPin_2)==LOW) cliente.write(IN_2_OFF);
        delay(200);
        if (digitalRead(inPin_3)==HIGH) cliente.write(IN_3_ON);
        delay(200);
        if (digitalRead(inPin_3)==LOW) cliente.write(IN_3_OFF);
        delay(200);
    }
}


Continua . . .
Pages: [1]