Android - App Inventor

#1
Para los que estan buscando informacion de progracion Android y aplicaciones para telefonos[ame="http://www.youtube.com/watch?v=-qBSLAyCOoA&feature=related"] http://www.youtube.com/watch?v=-qBSLAyCOoA&feature=related[/ame]

y en la pagina de neoteo hay una aplicacion con telefonos que trabajan con Android mediante bluetooth el cual se comunica con el pic http://www.neoteo.com/bluetooth-android-pic-led-hola-mundo

Saludos
 
#4
Estimados!!

He buscado en google play una buena aplicación que sea un terminal serial (vía Bluetooth). Claro que he encontrado varias, y revisado algunas, pero habrá alguna que sea tan buena como el terminal del X-CTU de los ZigBees? Una donde pueda escribir números en Hex?

La mejor aplicación que he encontrado hasta el momento es: "SerialBluetooth Arduino", que es nada más que un terminal (justo lo que quiero, pero a mi gusto le faltan herramientas...). Mi pregunta es solamente, ¿alguien conoce uno de más bajo nivel (de programación), por tanto, más amplio en sus capacidades para comunicarse via serial?

Lo pregunto, ya que a veces hay aplicaciones buenísimas que tienen un nombre que no parece relacionarse con su función, por lo que no se encuentran.

Ah si yo supiera programar para este sistema operativo, haría uno y lo subiría...

Gracias y saludos!!
StickFix
 
Última edición por un moderador:
#6
Que es lo que quieres hacer?
Lo que quiero hacer es comunicarme con un arduino dentro del cual haya cualquier programa, y no uno que solamente esté hecho para entender solamente ciertos presets dados por una aplicación ya hecha. Quiero poder transmitir cualquier tipo de información. Gracias a eso se le podría dar una flexibilidad infinita a la aplicación del arduino en un proyecto.

Eso. Poder enviar y recibir comandos en general.

Saludos!

Ah, y gracias por los temas que salieron relacionados arriba. Son de mucha ayuda.
 
#10
lo vas a enviar por bluetooth?

bueno ya tengo sueño aqui en mexico sonlas 2:13 am y pues como no contestas aqui te dejo una imagen del bloque que debes usar para enviar el enter o numero 13 si es que es por bluetooth ,
 

Adjuntos

Última edición:
#11
Anexo el código para Arduino y appinventor para comunicación por bluetooth, ese código era para controlar un carrito por bt, lo unico que se hace es enviar cierto numero o caracter desde la aplicacion en android hecha en appinventor y arduino verificaba ese numero o caracter y hacia algo ya definido, es algo muy sencillo, espero les sirva de ayuda.
 

Adjuntos

#12
Gracias proteus7, una disculpa, lo que pasa es que estoy haciendo mi practicas profesionales y estoy de tiempo completo, bueno ya me senté y ya logré hacer un control PWM con lo siguiente:

El código en app inventor:

Sin título.png

El código en CCS Compiller:

Código:
/*          PROGRAMA UQE MEDIANTE UNA APLICACIÓN DE
            ANDROID RECIBE LOS VALORES DE UN SLIDER 
            DE UNA APLICACIÓN EN ANDROID.
            
*/
   
#include <16f887.h>           // Librería del PIC
#fuses NOWDT HS               // Fuses
#use delay(clock=16000000)    //Reloj a 16 MHz
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)// RS232 Con el 
                              /// módulo Bluetooth
#include <stdlib.h>     //requerida para usar atoi
#define  LCD_DATA_PORT getenv("SFR:PORTB")
#include "lcd.c"                              
#use fast_io(all)          // Gestión de puertos

int16 cicloServ;  // Valor que determina el ciclo de servicio                
int x,k;                    // Variable entera para la recepción del módulo  
char string[10];

void main() {              // Función principal

   lcd_init();             // Se inicializa la cantalla
   lcd_gotoxy(1,1);
   lcd_putc("Recepcion de");    // Se imcrime el mensaje en la línea 1
   lcd_gotoxy(1,2);
   lcd_putc("datos del modulo");  // Se imcrime el mensaje cara la inserción de
   delay_ms(1000);
   lcd_putc('\f');      // Se borra la cantalla
   set_tris_d(0);          // Se configura el puerto D cómo salida
   output_d(0);            // Se limpia el puerto D 

// Se limpia el puerto C
   output_c(0);
   set_tris_c(0b11111011); // RC2 = salida
   // Se configura el TMR2 con periodo de 249, prediv de 1:4 y postdiv de 1:1
   setup_timer_2(T2_DIV_BY_16, 249, 1);
   // Se pone el ciclo de servicio en 0.5 ms (al 50%)
   cicloServ=500;
   set_pwm1_duty(cicloServ);
    /* Inicia la señal PWM */
 

/*  
   Inicia la generación de la señal PWM
   Se configura el módulo CCP1 en modo PWM
   con TPWM = 1 ms (FPWM = 1000 Hz)
*/
   setup_ccp1(CCP_PWM); // La señal PWM se genera a partir de aquí
   
   
   
   
   while(1==1){// Ciclo infinito
 
    gets(string);
    x = atoi(string); // x is now 123
    
    lcd_gotoxy(1,1);
    printf(lcd_putc,"%u   ",x);
    cicloServ=x*1000/255;
    lcd_gotoxy(1,2);
    printf(lcd_putc,"%Lu   ",cicloServ);
    set_pwm1_duty(cicloServ);  // Se actualiza el ciclo de servicio
   }
}
Ahora el problema es que cuando nuevo el slider el pic se traba de manera fortuita, no sé si mi código en CCS Compiller esté mal. ¿?, y de antemano muchas gracias por la ayuda.
 
Última edición:
#13
hola gente, alguno de ustedes sabe hacer apps para android? tengo una idea para una app que entraria muy bien en el publico ochentoso y mas viejos tambien :D ... bueno, almenos eso pienso yo... :LOL:
 
#14
pues haz esta prueba: cuando el pic reciba el dato por elmodulo bluetooth muestralo en el portb y no uses el pwm. y veo que estas usando el bloque send texto, si el slidex te genera un numero que despues redondeas pues usa el bloque send 1 byte en lugar del send text
 
#15
Gracias por responder proteus7, esa prueba ya la había hecho, sin el PWM trabaja al cien, muevo de un lado a otro el slider y anda perfecto, el problema que tengo es cuando uso el PWM, si lo muevo de un lado a otro en algún momento deja de recibir y se queda trabado el PIC, lo que tengo pensado ahorita es usar el PIC18f4550 haber que tal ando con ese.

Bueno, ya lo intenté pero nada, se me sigue trabando el PIC y ya intenté modificando la operación que hago de:
Código:
cicloServ=x*1000/255;
y sustituirla por esta que es aproximada y agregando un restricción al ciclo de servicio:
Código:
cicloServ=x*4;
if(cicloServ > 1000)cicloServ=1000;
lo hice son el objeto de manejar solamente números enteros.
 
Última edición:
Arriba