Stap 5: Programmeren in Java
Om de seriële gegevens ontvangen van een Arduino in Java, moet u de RXTX-bibliotheek, die hier beschikbaar is: http://fizzed.com/oss/rxtx-for-java - installeren instructies zijn in het gecomprimeerde zip-bestand.
Normaal, zonder een controller, zou u moeten gebruiken van het toetsenbord en de muis om te spelen. In Java, er is een klasse genaamd "Robot", die is gemaakt voor het imiteren van toetsaanslagen en muisbewegingen.
Java API voor Robot klasse: https://docs.oracle.com/javase/7/docs/api/java/awt...
Ik heb toegevoegd de Java-broncode met opmerkingen, maar ik zal erover schrijven hier ook.
Ten eerste, we de seriële poort openen met de naam (als er geen COM3, het veranderen van de arduino poort) en de gegevens (9600 baud, gegevens en pariteit en stop-bits..). U kunt het skelet downloaden vanaf hier: http://playground.arduino.cc/Interfacing/Java
In de SerialEvent-functie kunt u de gebufferde invoer (de lijn die is gecreëerd in de lus in arduino) met de input. ReadLine() functie-aanroep.
Ik zal vervolgens de tekenreeks doorgeven aan de functie van de gitaar, waarin ik de stappen voor het maken van de toetsaanslagen zal maken.
De tekenreeks is opgesplitst in een matrix van gehele getal, omdat het gemakkelijker is om te controleren de waarden in die. Het indexeren is hetzelfde als in de Arduino.
Als het eerste element van de matrix één, dat betekent is dat de eerste fret knop is ingedrukt, en we hebben te imiteren dat op iemand de '1' toets drukt op het toetsenbord. Dat is waarom we hebben de robot.keyPress(KeyEvent.VK_1); -oproep.
Als het werd ingedrukt, maar het is nu uitgebracht, moeten we de loslaat evenals met de functieaanroep: robot.keyRelease(KeyEvent.VK_1);
Als de tweede fret-knop wordt ingedrukt, noemen we de robot.keyPress voor de sleutel '2', enzovoort enzovoort.
Ik moest het maken voor elke fret knop, ontsnappen, en stermacht, en het tokkelen op en neer. Voor de frets, zijn de toetsen '1' naar '5' ingedrukt overeenkomt met de index van de fret op de hals. Voor het tokkelen de pijlen omhoog en omlaag worden ingedrukt, voor het ontsnappen, het ontsnappen, persen en stermacht, de sleutel van '.
Wanneer de whammy wordt geactiveerd, roept de functie whammy, waardoor een nieuwe draad bewegen van de muis op de X-as, omdat het kan worden ingesteld in het spel op het activeren van de whammy met de muis. Wanneer het beweegt, het schommelt, dus het is niet alleen binaire 1 of 0 voor de whammy. Met een nieuwe thread gestart, kunt u gaan op andere toetsen ingedrukt te tokkelen, er is geen probleem. En ook als u leiden de whammy meerdere keren tot, meerdere threads worden gestart en de muis heen en weer gaat. Ik denk dat het een mooie oplossing voor het probleem.
De mededeling wordt gestart na het versturen van een '1' naar de Arduino in de main functie onderaan.
Als u het uitproberen, wanneer u drukt op de knoppen van de fret, is hetzelfde als wanneer u de overeenkomstige toetsen op uw toetsenbord drukt.
Laten we het instellen in het spel!