PC mus gjorda med Arduino Uno och Joystick (4 / 6 steg)

Steg 4: Installera Java-program

Nu när Uno har ställts in, måste vi ansluta den till min Java program som kan ta Uno's serial output värden med särskilda biblioteket RxTx och flytta musen med biblioteket samling JNA. Båda dessa bibliotek ingår för nedladdning i slutet av detta steg. Observera att den enda delen av koden jag ändrade från exemplet RxTx var att lägga den metod som flyttar musen på ett sätt att jag kalibrerat för min joystick. Det är lite rå, men det tjänade mina syften.

Jag använt BlueJ som min IDE, men oavsett vilken Java IDE du använder, installera RxTx och JNA bibliotek för detta projekt, som jag döpt till "Mus". När det är gjort, skapat ett projekt och inkludera denna koden:

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;

allmän klass mus implementerar SerialPortEventListener {
SerialPort serialPort;
/ ** Hamnen vi normalt ska använda. */
privata statisk sista sträng PORT_NAMES [] = {
"/dev/tty.usbserial-A9007UX1", / / Mac OS X
"/ dev/ttyACM0", / / Raspberry Pi
"/ dev/ttyUSB0", / / Linux
"COM4", / / Windows *** (jag ändrat)
};
/**
* En BufferedReader som kommer att matas av en InputStreamReader
* konvertera byte till tecken
* att göra visas resultaten teckentabellen oberoende
*/
privat BufferedReader ingång;
/ ** Utdataström till porten * /
privat OutputStream utgång;
/ ** Millisekunder för att blockera väntan port öppen * /
privata statisk sista int TIME_OUT = 2000.
/ ** Standard bitar per sekund för COM-porten. */
privata statisk sista int DATA_RATE = 9600;

int buttonOld = 1;

public void initialize() {
nästa rad är för Raspberry Pi och
får oss in while loop och var föreslog här var föreslagna http://www.raspberrypi.org/phpBB3/viewtopic.php?f...
System.setProperty ("gnu.io.rxtx.SerialPorts", "/ dev/ttyACM0"); Jag fik befria för detta
CommPortIdentifier portId = null;
Uppräkning portEnum = CommPortIdentifier.getPortIdentifiers();
Hitta först en instans av seriell port som anges i PORT_NAMES.
samtidigt (portEnum.hasMoreElements()) {
CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
för (sträng portName: PORT_NAMES) {
om (currPortId.getName().equals(portName)) {
portId = currPortId;
bryta;
}
}
}
om (portId == null) {
System.out.println kunde ("inte hitta COM-porten.");
hemkomst.
}
försök {
Öppna serieporten och använder klassnamnet för programnamn.
serialPort = (SerialPort) portId.open(this.getClass().getName(),
TIME_OUT);
Set port-parametrar
serialPort.setSerialPortParams (DATA_RATE,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
Öppna strömmarna
input = nya BufferedReader (nya InputStreamReader(serialPort.getInputStream()));
output = serialPort.getOutputStream();
lägga till händelseavlyssnare
serialPort.addEventListener(this);
serialPort.notifyOnDataAvailable(true);
} fånga (undantag e) {
System.ERR.println(e.toString());
}
}
/**
* Detta ska anropas när du slutar använda porten.
* Detta förhindrar port låsning på plattformar som Linux.
*/
offentliga synkroniseras void close() {
om (serialPort! = null) {
serialPort.removeEventListener();
serialPort.close();
}
}
/**
* Hantera en händelse på den seriella porten. Läsa data och skriva ut den. I det här fallet anropar det metoden mouseMove.
*/
offentliga synkroniseras void serialEvent(SerialPortEvent oEvent) {
om (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
försök {
Sträng inputLine=input.readLine();
mouseMove(inputLine);
System.out.println("***");
System.out.println(inputLine);
} fånga (undantag e) {
System.ERR.println(e.toString());
}
}
Ignorera alla andra eventTypes, men du bör överväga andra de.
}
offentliga statisk void main (String [] args) kastar undantag {
Mus main = nya Mouse();
Main.Initialize();
Gänga t = nya Thread() {
public void run() {
följande rad kommer att hålla denna app liv för 1000 sekunder,
väntar på händelsen och svara på dem (skriva ut inkommande meddelanden till konsolen).
försök {Thread.sleep(1000000);} fånga (InterruptedException dvs) {}
}
};
t.start();
System.out.println("Started");
}

Min metod mouseMove, tar i en sträng som innehåller tre datapunkter och fungerar musen i sin tur
public void mouseMove(String data) kastar 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 knappen = Integer.valueOf (data.substring(index2 + 1));
Robot robot = nya Robot();

int mouseY = MouseInfo.getPointerInfo () .getLocation () .y;
int mouseX = MouseInfo.getPointerInfo () .getLocation () .x;

om (knappen == 0)
{
om (buttonOld == 1)
{
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.Delay(10);
}
}
annat
{
om (buttonOld == 0)
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
}

om (Math.abs (xCord - 500) > 5)
mouseX = mouseX + (int) ((500-xCord) * 0.02);
om (Math.abs (yCord - 500) > 5)
mouseY = mouseY - (int) ((500-yCord) * 0.02);

robot.mouseMove (mouseX, mouseY);

buttonOld = knappen;
System.out.println (xCord + ":" + yCord + ":" + knappen + ":" + mouseX + ":" + mouseY);
hemkomst.
}
}

Se Steg
Relaterade Ämnen

2-spelare Pong spel med Arduino Uno och 8 x 8 ledde matrisen

klassiska Pong spelet genomförs på en Arduino Uno och 8 x 8 mono-färg ledde matrisen.Spelare pinnar styrs av en potentiometer för varje spelare. Vill du pinnen att gå till vänster, bara slå potentiometern kvar.Hastigheten på spelet ökar med tiden. Ef...

SIM900A gränssnitt med Arduino UNO och kör enkelt AT-kommandon

Hej killar,Jag har min nya SIM900A modul av SIMCom. Jag var fasadbeklädnad problem samtidigt som samverkar med Arduino Mega.Sedan försökte jag gränssnitt med arduino UNO. Så i detta instructable jag ska visa dig hur jag löste problemen och började sp...

Bilar leksak med arduino uno och 3dprinting

Kroppen av bilen trycktes av 3D-skrivare. (makerbot mini 5.)Och hjärnan är utformad med enkla arduino skiss...Först min 3D printer(mini) plattform storlek är så liten (about10x10).Så, jag omgjorda bil kropp med rhino 3D som lämplig plattform storlek...

Hur du använder 2,4 tums TFT LCD-SPFD5408 med Arduino Uno och Mega

Detta Instructable är att veta hur man arbetar TFT 2,4 med controller SPFD5408med Adafruit för TFT bibliotek.Detta bibliotek är Adafruit TFT bibliotek ändras till fungerar i TFT 2,4 sköldar med SPFD5408 controller.Nu är det för Uno och Mega, är Teens...

1 LED spel med Arduino Uno och en RGB LED

ibland har jag bara dessa dagar där jag verkligen vill göra något snyggt med Arduino jag har liggande, men jag vet jag inte har tålamod för ett mer engagerat projekt som tar mer än en dag eller så. Detta är för en av dessa dagar.Utgångspunkten är enl...

Spara data för temperatur och luftfuktighet på MySQL med Arduino Uno och Wifly

Hej killar, jag gör detta instructable för de människor som gillade elektroniken och den botaniska, med detta du har data om temperatura och fuktigheten av din orchard och registrera detta i en data bas MySQL.För denna proyect du behöver några kunska...

Hur man programmerar Arduino Pro Mini använder Arduino Uno och ArduShield - utan kablar

Huvudsyftet med denna anvisning är att visa dig hur man programmerar i mest lätt sätt Arduino Mini eller Arduino Pro Mini med Arduino UNO och ArduShield – utan kablar.Steg för steg handledning, med några åtgärder för att hoppa av Awesome PCB.Steg 1 -...

Göra en brandvarnare i minuter med Samsung SAMIIO, Arduino UNO och Raspberry Pi

Låt oss bygga en IoT enhet som skickar flamma sensordata att SAMI med SAMERNAS WebSockets. IoT enheten består av en off-the-shelf sensor, Arduino UNO och Raspberry Pi.I detta genomförande används en enkel uppenbart för att snabbt skapa en ny enhetsty...

Lätt diy controller med arduino uno eller mikro

Som någon gamer skulle veta, styrenheter är dyrt, runt 60$.Jag hade en arduino micro så jag beslöt att göra en xbox/playstation stil dual analog controller.Koden kan hittas härDelarArduino mikro eller uno2 x analoga styrspakar15 x knapparproto styrel...

DIY Bluetooth telefon kontrollerade BB-8 Droid med Arduino UNO

Jag är ett stort Star Wars fan och när jag såg Star Wars: The Force vaknar tänkte jag att jag behöver en BB-8 droid. Det var häftigt hur detta lilla område flyttade i filmen. Så jag bestämde mig för att jag ska göra denna droid som baseras på Arduino...

Frisk, Smart & naturliga luft renare med Arduino, WIFI och Blynk

Hej, och Välkommen till detta Instructable!Vi hör mycket om föroreningsproblem idag. När jag gjorde en del forskning om effekten av dålig luft för vår hälsa, upptäckte jag lite statistik om hur illa är det inomhus jämfört med uteluften. Vår lägenhet...

Hur till program ATtiny85 med Arduino UNO

Hur man programmerar Attiny85 med Arduino UNO i mest lätt vägSteg för steg handledning, med några åtgärder för att hoppa av Awesome PCB.Steg 1 - vad vi behöver?Steg 2 - ansluta Arduino ombord med ArduShield och ATtiny85Steg 3 - Setup Arduino IDESteg...

Hur man programmerar ATtiny85 med Arduino uno styrelsen

I denna tutorial använder vi en Arduino ombord som en ATtiny programmerare.För att göra detta kommer att vi använda en Arduino UNO styrelse som en ISP (programmerare) och en ATtiny85 mikro-controller.Vi kommer att använda Codebender - online Arduino...

Göra en PM2, 5/luft kvalitet bildskärm med Arduino UNO

Göra en PM2.5 övervaka med Arduino UNOanvända Arduino unoR3 styrelse och en arduino kompatibel 4-digital röret att samla in och Visa PM2.5 värdet.en lasersensor PM2, 5 SDS011 (www.inovafitness.com) används för de PM2, 5 upptäcka.Steg 1: Hämta arduino...

Mäta hastigheten på ljud med Arduino microcontroller och ultrasonic sensor

Min 6-åriga dotter, Kennet, visar hur man mäter ljudets hastighet i luft med Arduino Uno microcontroller och ultrasonic sensor.Jag tycker detta är ett bra projekt för barn att blir exponerade för vetenskap, teknik och matematik.Steg 1: Vi behöver 1....

Gör en självbalanserande Robot med Arduino UNO

Själv balansera Robot är mycket intressant. Många vänner runt omkring oss försökte göra en, men de encounted en hel del chanllenges bland annat bristen på strukturerna som lätt-till-montering, de lämpliga elektroniska kretsarna och program. Så jag be...

On-Off korg cykel lampor med Arduino Uno

hur det fungerar:http://www.youtube.com/watch?v=2MnkE1xXlKIDetta är ett projekt gjort en introduktion till elektronik kurs.[Detta är min öppna anteckningsboken för kursen: http://mbenitez.iheartanthony.com/]Det är ett riktigt enkelt kombinera en tryc...

Den första användningen av 0,96" I2C OLED uppvisning med Arduino UNO

Idag, ska jag visa dig hur du använder 0,96" I2C OLED uppvisning med Arduino UNO styrelse. Det finns många olika typer av OLED-displayer. Jag har fått 4-nålas OLED uppvisning med mig. Här visas kan vara med SPI stift i stället för I2C. Dessa versione...

Hinder Avoider Robot använder Arduino Uno och IR-närhet Sensor

Följ stegen för att skapa ett hinder undvika Robot använder Arduino Uno och IR-rörelsesensorSteg 1: Delar krävs1) Arduino Uno R3 (klon kommer att göra)2) IR närhet sensorer (2 rekommenderas)3) chassi med motorer4) bakbord5) L293D Motor förare ombord6...