PC muis gemaakt met Arduino Uno en Joystick (4 / 6 stap)

Stap 4: Instellen van Java-programma

Nu de Uno is ingesteld, moeten we het verbinden met mijn programma van Java die in staat zijn van het nemen van de Uno uitgang voor seriële waarden met de speciale bibliotheek RxTx en bewegen van de muis met de collectie van de bibliotheek JNA is. Beide van deze bibliotheken zijn opgenomen om te downloaden aan het eind van deze stap. Houd er rekening mee dat het enige deel van de veranderde ik van de voorbeeld code RxTx was het toevoegen van de methode die de muis op een manier beweegt dat ik voor mijn joystick gekalibreerd. Het is een beetje ruw, maar het diende mijn doeleinden.

Ik gebruikte BlueJ als mijn IDE, maar welke Java IDE die u gebruikt, installeren RxTx en JNA bibliotheken voor dit project, die ik heb genoemd "Muis". Zodra dat wordt gedaan, gemaakt van een project en deze code omvatten:

 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; } } 

Gerelateerde Artikelen

Hoe te programmeren ATtiny85 met Arduino UNO

Hoe te programmeren ATtiny85 met Arduino UNO

Attiny85 met Arduino UNO in de meest gemakkelijke manier programmerenStap voor stap handleiding, met geen stappen overslaan door Awesome PCB.Stap 1 - wat doen we nodig?Stap 2 - aansluiten van Arduino bord met ArduShield en ATtiny85Stap 3 - Setup Ardu
Het eerste gebruik van ESP8266 met Arduino Uno

Het eerste gebruik van ESP8266 met Arduino Uno

Vandaag, ga ik om u te tonen die hoe kunnen we onze module ESP8266 voor gebruik met Arduino UNO voorbereiden.De noodzaak lijst:1. Arduino UNO (met USB-kabel die op uw computer via USB-kabel aangesloten, ook wordt gebruikt de spanning)2. uw computer (
Kwaliteitscontrole met Arduino Uno Air

Kwaliteitscontrole met Arduino Uno Air

Kwaliteitscontrole van de lucht met Arduino Uno met behulp van MQ135 lucht kwaliteit gevaarlijke Gas Detector Sensormodule.Stap 1: Pin-configuratie Rood = 5VGroen = gegevens (A0)Zwart = aardeStap 2: Verbinding van draad 1 = rood (5V)2=Black(Ground)4=
Het eerste gebruik van 0.96" I2C OLED-display met Arduino UNO

Het eerste gebruik van 0.96" I2C OLED-display met Arduino UNO

Vandaag, ga ik u tonen hoe te gebruiken 0.96" I2C OLED-display met Arduino UNO bord. Er zijn een heleboel verschillende type OLED displays. Ik heb 4-gespeld OLED display met mij. Deze worden weergegeven kunnen worden met SPI pinnen in plaats van I2C.
SIM900A Interfacing met Arduino UNO en Running eenvoudige AT commando's

SIM900A Interfacing met Arduino UNO en Running eenvoudige AT commando's

Hallo jongens,Ik heb mijn nieuwe module van de SIM900A van SIMCom. Ik werd geconfronteerd met problemen terwijl het interfacing met Arduino Mega.Toen probeerde ik het interface met de arduino UNO. Dus in dit instructable ga ik om u te tonen hoe ik pr
Het gebruik van NeoPixel 16 Ring met Arduino Uno

Het gebruik van NeoPixel 16 Ring met Arduino Uno

Vandaag, ga ik u tonen hoe te gebruiken NeoPixel Ring met Arduino Uno een zeer basistype. Zoals u weet, we houden van kleurrijke LED's, zelfs vaststaat op een ring!De noodzaak lijst:1. de Arduino Uno2. NeoPixel Ring 16xWS2812 (met 16 ingesloten klein
Oprichting MangoCube #MangoCube BLE Board (Bluetooth 4.0) met Arduino UNO

Oprichting MangoCube #MangoCube BLE Board (Bluetooth 4.0) met Arduino UNO

Deze eenvoudige Instructable is te laten zien hoe configureren (set-up) MangoCube BLE bestuur (Megavizon) met Arduino UNO of compatibel board. Het doet geen vereist extra onderdelen of 5 v naar 3,3 v logica niveau verschuiven.Ook is geen behoefte aan
Zelfgemaakte 3 as robotarm gebouwd met Arduino Uno

Zelfgemaakte 3 as robotarm gebouwd met Arduino Uno

Hallo kerels,Dit is een 3-as robotarm gebouwd met arduino uno kaart, ik vond niets dat ik gebruiken als een arm, kan dus ik plastic linialen geassembleerd met lijm gebruikte. Ik nog niet genoeg pinnen in de arduino-kaart, zodat ik een DC-motor in de
Zorg van een monitor van de kwaliteit van de PM2, 5/lucht met Arduino UNO

Zorg van een monitor van de kwaliteit van de PM2, 5/lucht met Arduino UNO

Maak een PM2.5 volgen met Arduino UNOgebruik Arduino unoR3 bestuur en een arduino compatibel 4-digitale buis te verzamelen en weergeven van de waarde van de PM2, 5.een lasersensor PM2, 5 SDS011 (www.inovafitness.com) wordt gebruikt voor de PM2.5 dete
DIY Bluetooth telefoon gecontroleerd BB-8 Droid met Arduino UNO

DIY Bluetooth telefoon gecontroleerd BB-8 Droid met Arduino UNO

Ik ben een grote fan van Star Wars en toen zag ik de Star Wars: The Force ontwaakt dacht ik dat ik behoefte aan een BB-8 droid. Het was geweldig hoe dit kleine gebied verplaatst in de film. Dus heb ik besloten dat ik moet dit droid die is gebaseerd o
Eenvoudig diy controller met arduino uno of micro

Eenvoudig diy controller met arduino uno of micro

Als een gamer zou weten, controllers zijn duur, ongeveer 60$.Ik had een arduino micro, dus heb ik besloten om een dubbele analoge controller van de xbox/playstation stijl.De code kan hier worden gevondenOnderdelenArduino micro of uno2 x analoge thumb
Klok van de harde schijf (HDD klok met Arduino Uno)

Klok van de harde schijf (HDD klok met Arduino Uno)

Dit is een leuke project dat kan voordelig ook. In dit instructable zullen we uitleggen stap voor stap hoe te maken van deze mooie POV klok.Gebruikt materiaal:Arduino Uno,Tiny RTC modul,ULN 2003,IR diode en transistor van IR (gebruikt als een sensor,
Hoe te gebruiken 2.4 inch TFT LCD SPFD5408 met Arduino Uno en Mega

Hoe te gebruiken 2.4 inch TFT LCD SPFD5408 met Arduino Uno en Mega

Dit Instructable is om te weten hoe te werken TFT 2.4 met de controller SPFD5408met de bibliotheken van Adafruit voor TFT.Deze bibliotheek werkt de Adafruit TFT bibliotheken gewijzigd in TFT 2.4 schilden met de SPFD5408-controller.Nu is het voor Uno
IR-Remote controle uw laptop met arduino UNO!

IR-Remote controle uw laptop met arduino UNO!

Hallo iedereen.In deze tutorial ga ik je te leren hoe u uw Arduino Uno kunt omzetten in een systeem van de afstandsbediening voor uw laptop.Stap 1: wat moet jeBeginner:1. de Arduino Uno2. IR ontvanger3. Externe IR4. de Arduino softwareGeavanceerd:5.