Ratón hecho con Arduino Uno y Joystick (4 / 6 paso)

Paso 4: Configuración de programa Java

Ahora que la ONU está configurada, tenemos que conectar en mi programa de Java que es capaz de tomar valores de salida serie de la Uno con la especial biblioteca RxTx y moviendo el ratón con la colección de la biblioteca JNA. Ambos de estas bibliotecas se incluyen para su descarga al final de este paso. Tenga en cuenta que la única parte del código que cambié del ejemplo RxTx fue agregando el método que se mueve el ratón de manera que calibrado para mi joystick. Es un poco Tosca, pero sirve a mis propósitos.

Yo BlueJ como mi IDE, pero lo que Java IDE utilizas, instalar librerías RxTx y JNA para este proyecto, que había llamado "Ratón". Una vez hecho esto, crea un proyecto e incluyen este código:

 import java.awt.*;import java.awt.event.InputEvent; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStream; import gnu.io.CommPortIdentifier; import gnu.io.SerialPort; import gnu.io.SerialPortEvent; import gnu.io.SerialPortEventListener; import java.util.Enumeration; public class Mouse implements SerialPortEventListener { SerialPort serialPort; /** The port we're normally going to use. */ private static final String PORT_NAMES[] = { "/dev/tty.usbserial-A9007UX1", // Mac OS X "/dev/ttyACM0", // Raspberry Pi "/dev/ttyUSB0", // Linux "COM4", // Windows**********(I changed) }; /** * A BufferedReader which will be fed by a InputStreamReader * converting the bytes into characters * making the displayed results codepage independent */ private BufferedReader input; /** The output stream to the port */ private OutputStream output; /** Milliseconds to block while waiting for port open */ private static final int TIME_OUT = 2000; /** Default bits per second for COM port. */ private static final int DATA_RATE = 9600; int buttonOld = 1; public void initialize() { // the next line is for Raspberry Pi and // gets us into the while loop and was suggested here was suggested http://www.raspberrypi.org/phpBB3/viewtopic.php?f... //System.setProperty("gnu.io.rxtx.SerialPorts", "/dev/ttyACM0"); I got rid of this CommPortIdentifier portId = null; Enumeration portEnum = CommPortIdentifier.getPortIdentifiers(); //First, Find an instance of serial port as set in PORT_NAMES. while (portEnum.hasMoreElements()) { CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement(); for (String portName : PORT_NAMES) { if (currPortId.getName().equals(portName)) { portId = currPortId; break; } } } if (portId == null) { System.out.println("Could not find COM port."); return; } try { // open serial port, and use class name for the appName. serialPort = (SerialPort) portId.open(this.getClass().getName(), TIME_OUT); // set port parameters serialPort.setSerialPortParams(DATA_RATE, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); // open the streams input = new BufferedReader(new InputStreamReader(serialPort.getInputStream())); output = serialPort.getOutputStream(); // add event listeners serialPort.addEventListener(this); serialPort.notifyOnDataAvailable(true); } catch (Exception e) { System.err.println(e.toString()); } } /** * This should be called when you stop using the port. * This will prevent port locking on platforms like Linux. */ public synchronized void close() { if (serialPort != null) { serialPort.removeEventListener(); serialPort.close(); } } /** * Handle an event on the serial port. Read the data and print it. In this case, it calls the mouseMove method. */ public synchronized void serialEvent(SerialPortEvent oEvent) { if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) { try { String inputLine=input.readLine(); mouseMove(inputLine); System.out.println("********************"); //System.out.println(inputLine); } catch (Exception e) { System.err.println(e.toString()); } } // Ignore all the other eventTypes, but you should consider the other ones. } public static void main(String[] args) throws Exception { Mouse main = new Mouse(); main.initialize(); Thread t=new Thread() { public void run() { //the following line will keep this app alive for 1000 seconds, //waiting for events to occur and responding to them (printing incoming messages to console). try {Thread.sleep(1000000);} catch (InterruptedException ie) {} } }; t.start(); System.out.println("Started"); } // My method mouseMove, takes in a string containing the three data points and operates the mouse in turn public void mouseMove(String data) throws AWTException { int index1 = data.indexOf(" ", 0); int index2 = data.indexOf(" ", index1+1); int yCord = Integer.valueOf(data.substring(0, index1)); int xCord = Integer.valueOf(data.substring(index1 + 1 , index2)); int button = Integer.valueOf(data.substring(index2 + 1)); Robot robot = new Robot(); int mouseY = MouseInfo.getPointerInfo().getLocation().y; int mouseX = MouseInfo.getPointerInfo().getLocation().x; if (button == 0) { if (buttonOld == 1) { robot.mousePress(InputEvent.BUTTON1_DOWN_MASK); robot.delay(10); } } else { if (buttonOld == 0) robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK); } if (Math.abs(xCord - 500) > 5) mouseX = mouseX + (int)((500 - xCord) * 0.02); if (Math.abs(yCord - 500) > 5) mouseY = mouseY - (int)((500 - yCord) * 0.02); robot.mouseMove(mouseX, mouseY); buttonOld = button; System.out.println(xCord + ":" + yCord + ":" + button + ":" + mouseX + ":" + mouseY); return; } } 

Artículos Relacionados

Hacer un monitor de calidad del aire PM2.5 con Arduino UNO

Hacer un monitor de calidad del aire PM2.5 con Arduino UNO

Hacer un PM2.5 monitor con Arduino UNOtablero de uso unoR3 de Arduino y un tubo de arduino compatible 4 digital para recoger y mostrar el valor PM2.5.sensor uno láser de PM2.5 SDS011 (www.inovafitness.com) se utiliza para las PM2.5 detectar.Paso 1: D
Control de calidad con Arduino Uno de aire

Control de calidad con Arduino Uno de aire

Control de calidad de aire con Arduino Uno con la ayuda de MQ135 aire calidad gases peligrosos módulo Sensor Detector.Paso 1: Configuración de pines Rojo = 5VVerde = datos (A0)Negro = tierraPaso 2: Conexión del cable de 1 = rojo (5V)2=Black(Ground)4=
Cómo programa ATtiny85 con Arduino UNO

Cómo programa ATtiny85 con Arduino UNO

Cómo programar Attiny85 con Arduino UNO de manera más fácilPaso Tutorial paso, con ninguna medida para saltar por PCB impresionante.Paso 1 - ¿qué necesitamos?Paso 2 - placa de Arduino conecta con ArduShield y ATtiny85Paso 3 - configuración IDE de Ard
Cómo programar Arduino Pro Mini con Arduino Uno y ArduShield - sin los cables de

Cómo programar Arduino Pro Mini con Arduino Uno y ArduShield - sin los cables de

El objetivo principal de esta instrucción es mostrar cómo programar más fácil manera de Arduino Mini o Arduino Pro Mini con Arduino UNO y ArduShield – sin los cables.Paso Tutorial paso, con ninguna medida para saltar por PCB impresionante.Paso 1 - ¿q
El primer uso de ESP8266 con Arduino Uno

El primer uso de ESP8266 con Arduino Uno

Hoy, voy a mostrarte cómo podemos preparar nuestro módulo ESP8266 para utilizar con Arduino UNO.La necesidad de la lista:1. Arduino UNO (con el cable USB conectado al ordenador mediante cable USB, también utilizará la tensión)2. el ordenador (si pued
SIM900A la entretela con Arduino UNO y funcionamiento en simples comandos

SIM900A la entretela con Arduino UNO y funcionamiento en simples comandos

Hola chicos,Tengo mi nuevo SIM900A módulo de SIMCom. Problemas que estaba enfrentando al interfaz con Arduino Mega.Entonces traté de interfaz con arduino UNO. Así que en este instructable voy a mostrarle cómo me superó problemas y comenzó a jugar con
Cómo utilizar NeoPixel 16 anillo con Arduino Uno

Cómo utilizar NeoPixel 16 anillo con Arduino Uno

Hoy, voy a mostrarte cómo usar anillo de NeoPixel con Arduino Uno muy básicos. Como ustedes saben, nos encanta LED colorido, incluso se ha establecido en un anillo!La necesidad de la lista:1. Arduino Uno2. NeoPixel anillo 16xWS2812 (con neopixels peq
Establecer MangoCube #MangoCube BLE Junta (Bluetooth 4.0) con Arduino UNO

Establecer MangoCube #MangoCube BLE Junta (Bluetooth 4.0) con Arduino UNO

Este Instructable simple es mostrar cómo configurar (configuración) MangoCube BLE Junta Directiva (de Megavizon) con Arduino UNO o tablero compatible. Lo hace no requiere componentes adicionales ni 5V a 3.3V lógica cambio nivel.También necesidad de c
Programa de Chat sencillo con Arduino Uno

Programa de Chat sencillo con Arduino Uno

Este será mi primer post sobre proyectos de Arduino, así que en lugar de comenzar con lo básico, voy a intentar algo nuevo. En este post, voy a hacer un programa de chat simple mediante dos Arduino Uno.Qué se necesita para el proyecto:1. 2 x Arduino
SIM900 GSM GPRS SHIELD CON ARDUINO UNO

SIM900 GSM GPRS SHIELD CON ARDUINO UNO

Esta es una tarjeta GPRS ultra compacta de comunicación inalámbrica. La tarjeta es compatibles con todos los modelos de Arduino con el formato UNO, además puedes controlarla con otros microcontroladores también. La tarjeta está basada en el módulo 4
BRICOLAJE teléfono Bluetooth controlado BB-8 droide con Arduino UNO

BRICOLAJE teléfono Bluetooth controlado BB-8 droide con Arduino UNO

Soy un gran fan de Star Wars y cuando vi Star Wars: la fuerza despierta pensé que necesito un droide de BB-8. Era impresionante cómo esta esfera poco movido en la película. Así que he decidido que voy a hacer este droide que se basa en el Arduino UNO
Reloj de disco duro (HDD reloj con Arduino Uno)

Reloj de disco duro (HDD reloj con Arduino Uno)

Este es un proyecto que se puede hacer fácilmente y también barato. En este instructivo vamos a explicar paso a paso cómo hacer este bonito reloj POV.Material utilizado:Arduino Uno,Pequeño módulo RTC,ULN 2003,IR diodo y transistor IR (utilizado como
Control remoto controle su ordenador portátil con arduino UNO!

Control remoto controle su ordenador portátil con arduino UNO!

Hola a todos.En este tutorial, voy a enseñarte cómo puede convertir su Arduino Uno en un sistema de control remoto para tu ordenador.Paso 1: lo que se necesitaPrincipiante:1. Arduino Uno2. receptor de infrarrojos3. IR remote4. Arduino softwareAvanzad
Sin embargo, otro juego de Pong con Arduino Uno

Sin embargo, otro juego de Pong con Arduino Uno

he hecho un juego de Pong antes con una matriz de LED 8 x 8 y este es un proyecto para mí saber acerca de pantalla PCD8544 que también fue utilizado en los teléfonos celulares Nokia 5110.Aquí es lo que necesitaba en este proyecto:-Arduino Uno-Pantall