Controles de pinball externos para una tableta con Android


Con este truco de Ruben , se pueden  agregar controles flipper pinball externas a un dispositivo  Android.
Para ellos Rubén decidióir con la TI Launchpad para este proyecto. La placa   MSP430 dev ofrece comunicaciones serie a través de una conexión USB, pero no es tan fácil encontrar el cable correcto. En este caso la tableta soporta USB On the Go (OTG), pero la placa se identifica como un dispositivo de ACM que debe ser manejado de manera diferente.
Con el fin de conseguir la tableta de hablar con el Launchpad compiló un módulo CDC_ACM de los fundamentos de Linux que componen cada sistema operativo Android. En este caso, el módulo se adapta para el chip de Allwinner A10 dentro de su modelo de tableta, pero no debe ser demasiado difícil de adaptar su guía para otros procesadores.

La idea se basa en conectar un MSP430 a un dispositivo Android (de hecho, la idea era utilizar el MSP430 Launchpad como caja de GPIO de bajo costo para una tableta de Android ).Pero Ruben, y pensó en el puerto de audio para la comunicación, y  entonces pensó    en    la  compatibilidad  USB OTG. Por lo tanto, ha compilado el módulo CDC_ACM de la tableta (Allwinner A10 based) para emular el puerto serie a través de USB.
Luego, en el lado MSP430 Launchpad, necesitaba una librería para usar el puerto serie. Encontró MSP430-softuart por Stefan Wendler y lo utilizó para la comunicación bidireccional en Android Tablet MSP430-Launchpad.

Para hacer una demostración, ha modificado el código de fuente abierta Pinball vectorial añadiendo soporte para el acceso al puerto serie (utilizando serialport-api de Google . Este Pinball Vector modificado tiene las aletas vinculados a MSP430 botones de Launchpad. Cuando se pulsan los botones en P2.5 y P2.3 estén flippers se activan. Un LED también está conectado en P1.6 para activarlo cuando se recibe el comando «palanca» de la aplicación para Android.

Vídeo de demostración aquí:

 

 

Este es el código fuente para el MSP430

#include 
#include 

#include "uart.h"

#define LED1 BIT0
#define LED2 BIT6
#define BUTTON1 BIT5
#define BUTTON2 BIT3

static volatile bool r = false;
static volatile bool l = false;

int main(void)
{
   WDTCTL = WDTPW + WDTHOLD;  // Stop watchdog timer 

   BCSCTL1 = CALBC1_1MHZ;  // Initialize clock  
   DCOCTL = CALDCO_1MHZ;

   P1DIR |= (LED1 + LED2); // Set BIT0 and BIT6 as output
   P1OUT &= ~(LED1 + LED2); // LEDs off

   P2REN |= (BUTTON1 + BUTTON2); // Select pull-up resitors por P2.3 and P2.5

   P2IE |= (BUTTON1 + BUTTON2); // Enabling Button interrupts

   P2IFG &= ~(BUTTON1 + BUTTON2); // Clear interrupt flags for the buttons

   uart_init();

   __enable_interrupt();

   uint8_t c;

   while(1)
   {
      if(uart_getc(&c)) {
         if (c == 't')
         {
            P1OUT ^= (LED2); // Toggle LED2          
         }
      }
      if (l)
      {
            uart_putc('l'); // Send "left" command via UART
            l = false;
      }
      if (r)
      {
            uart_putc('r'); // Send "right" command via UART
            r = false;
      }
   }
}

// Port 2 interrupt service
#pragma vector=PORT2_VECTOR

__interrupt void Port_2(void)
{
   if ((P2IFG & BUTTON2))
   {
      P1OUT ^= LED1;  // Toggle LED1
      P2IFG &= ~BUTTON2; // Clear BUTTON2 interrupt flag  
      P2IES ^= BUTTON2; // Interrupt called on High-to-Low and Low-to-High 
      l = true;
   }
   if ((P2IFG & BUTTON1))
   {
      P1OUT ^= LED1; // Toggle LED1
      P2IFG &= ~BUTTON1; // Clear BUTTON1 Interrupt flag
      P2IES ^= BUTTON1; // Interupt called on High-to-Low and Low-to-High
      r = true;
   }

}

Por supuesto, usted podría ir una ruta diferente y  usar  Bluetooth para la conectividad. Hemos visto varios periféricos para juegos que utilizan esta técnica con dispositivos Android.

Fuente aqui

Cómo acceder desde tu tableta a tu escritorio


Splashtop 2 nos lo  pone  muy  fácil para  acceder a todos los contenidos desde cualquier dispositivo  y desde cualquier lugar  asegurando segun ellos  una experiencia  Multimedia experiencia que es hasta 10 veces más rápido y de mejor calidad que los de su  competencia,

Para uso doméstico si usamos un terminal Android no nos costara nada (para uso profesional si cobran una pequeña cantidad)

Pasos  a seguir para usar este estupendo entorno:

1.       Descargue la aplicación para su dispositivo móvil ,sea IPad,Android o Windows8   :

iPad ( Download )

iPad ( Descargar )
iPhone/iPod touch ( Download )

iPhone / iPod touch ( Descargar )

Android (Descargar  ), para este ultimo  esta disponible de forma gratuita en la tienda Google Play para usuarios domésticos

Windows 8(Descargar)

2-Instalacion del programa en   el  ordenador anfitrion (  Windows,Mac o Linux ) : Si no lo hemos hecho antes, debemos proceder a la instalación del programa Splashtop en el ordenador personal. Se puede descargar de la página web oficial del proveedor

 
 
 

2.       Crear una cuenta: La aplicación nos solicitará que creemos una cuenta de usuario. Tan sólo debemos introducir, desde la tablet, nuestro correo electrónico, contraseña y nombre de usuario. Debemos recordar estos datos para volverlos a poner en el ordenador

3.     –   Volvemos a introducir los datos en el equipo de sobremesa

5.  Ahora debemos dar autorización segun hayamao accedido desde la tableta o el ordenador,por lo que seleccionaremos cuál de los dos dispositivos es el que va a ser compartido (se puede conectar y acceder tanto desde el ordenador a la tableta como desde la tableta al ordenador . Una vez realizado esto, podemos minimizar la herramienta en  el ordenador  o darle a la Home en  la tableta según el entorno en el que se este conectado.
 

6.      Entramos: En la tableta nos saldrá el ordenador (con su nombre de red, que podemos configurar en Equipo/Opciones) que está emitiendo su señal. Seleccionamos y entramos en el ordenador.

7.      Desde la tableta ya hemos accedido al ordenador, viendo su escritorio . Un toque corto es equivalente a un click con el botón izquierdo del ratón mientras que una pulsación larga en la pantalla funciona a modo de un click con el botón derecho del mouse

Más información
aquí