Orodha ya maudhui:

Mradi wa Guitar Hero Arduino: Hatua 12 (na Picha)
Mradi wa Guitar Hero Arduino: Hatua 12 (na Picha)

Video: Mradi wa Guitar Hero Arduino: Hatua 12 (na Picha)

Video: Mradi wa Guitar Hero Arduino: Hatua 12 (na Picha)
Video: It Became Unliveable! ~ Abandoned Home Of The Spenser's In The USA 2024, Novemba
Anonim
Mradi wa Guitar Hero Arduino
Mradi wa Guitar Hero Arduino
Mradi wa Guitar Hero Arduino
Mradi wa Guitar Hero Arduino
Mradi wa Guitar Hero Arduino
Mradi wa Guitar Hero Arduino

Wij zijn Maarten Vrebos, Justin Cavanas en Wannes Stroobandt en sisi studio multimedia & mawasiliano ya teknolojia. Sauti ya bure ya mradi wa kazi kwa njia ya Usikilizaji na Kanuni za IT hebben wij een Guitar Hero-gitaar gehackt en gebruikt als behuizing voor onze MIDI-controller. Het alikuwa akijaribu kupigia debe juu ya njia bora za kufanya mazoezi ya ndani. Mtawala wa Onze anaweza kupata habari zaidi kupitia ujumbe wa maneno yote. Aangezien tunapata hebben gehackt hebben sisi ni veel veel ziada nyenzo katika moeten verwerken.

Katika tukio lililokuwa likifanywa hapo awali watu wote walipewa barua kwa waandishi wa habari zien van hoe het eindproduct er zou moeten uitzien met daarnaast een foto van de gitaar die als behuizing zal worden gebruikt.

Wij hebben on voor dit mradi gebaseerd op volgende bronnen:

slapyak.wordpress.com/guitar-hero-midi-con…

www.instructables.com/id/Converting-a-rescu…

gizmodo.com/391834/turn-your-guitar-hero-g…

Mradi wa Benodigdheden voor dit

  • 6 kleine pushbuttons
  • Vipinga 7 1kohm
  • 1 gele LED 1
  • blauwe LED
  • 1 Arduino Uno R3
  • 1 Groene LED
  • LED 2 zilizopanda
  • 1 schuifschakelaar
  • 1 mkate wa mkate
  • 1 potentiometer
  • Mfano 1
  • 1 Gitaar shujaa wa gitaa
  • Kitanda cha Voldoende
  • Materiaal om te solderen / dremelen /
  • Schroevendraaier

Hatua ya 1: Sehemu ya Verzamelen

Sehemu ya Verzamelen
Sehemu ya Verzamelen

Mfano wa voor (opboardboard) hebben we volgende componenten gebruikt:

6 Pushbuttons

Resistors 7 1kohm

1 Njano ya LED

1 LED ya Bluu

1 Arduino Uno R3

1 Kijani cha LED

2 Nyekundu LED

1 Schuifschakelaar

1 Bodi ya mkate

1 Potentiometer

Hatua ya 2: Mfano Bouwen

Mfano Bouwen
Mfano Bouwen
Mfano Bouwen
Mfano Bouwen
Mfano Bouwen
Mfano Bouwen

Mfano wa mfano wa bouwen hebben sisi ni sehemu zote za bodi ya mkate, hati ya mikate ya mikate na hati zote za majaribio, tunapata hali ya kutamka wakati wa kushawishi watu wengine. Mfano wa hebben tunatumia njia tofauti kupitia tinkercad.com, kwa njia nyingine tunaweza kupata habari zaidi juu ya mfano wa aina moja ya vifaa vya kupigia debe.

Maneno 5 ya msukumo wa mabomu ya kusukuma gebruikt die fungeren als 5 snaren en een grote pushbutton die in combinatie met one of meerdere 'snaren' moet worden ingedrukt om een auditief effect te krijgen. Kutumia vifaa vya taa vya taa vya LED vinaweza kutekelezwa kila siku ikiwa ni pamoja na sheria za kufanya kazi.

Hatua ya 3: Mfano wa Msimbo

Mfano wa Kanuni
Mfano wa Kanuni

Globale variabelen

Katika orodha ya watu wanaosimamia msimbo wa kanuni na orodha ya vifaa mbalimbali pini za watu wanaofanya kazi hii ni pamoja na vifungo vya kufanya hivyo.

// nambari za pini za waar mainButton (snaar) en andere vifungo a verbonden zijn: const int mainButton = A1; // gitaar snaar const int mwangaSensor = A0; kifungo cha int intPin1 = 2; // nummer van pushbutton1 const int kifungoPin2 = 3; // nummer van pushbutton2const int buttonPin3 = 4; // nummer van pushbutton3const int buttonPin4 = 5; // nummer van pushbutton4const int buttonPin5 = 6; // nummer van pushbutton5

Hierna worden er twee arrays aangemaakt voor de namen van de pushbuttons en hun pinnummer.

const int aantalKnoppen = 5; const String namenKnoppen [aantalKnoppen] = {"knop 1", "knop 2", "knop 3", "knop 4", "knop 5"}; const int knopPinnen [aantalKnoppen] = {2, 3, 4, 5, 6};

Kwa njia tofauti tofauti za pini za vifaa vya LED.

const int ledPin1 = 13; // idadi ya pini ya LED 13

const int ledPin2 = 12; // idadi ya pini ya LED 12 const int ledPin3 = 11; // idadi ya pini ya LED 11 const int ledPin4 = 10; // idadi ya pini ya LED 10 const int ledPin5 = 9; // idadi ya pini ya LED 9 const int potPin = A5; // idadi ya pini ya LED A5

De laatste globale variabelen dienen als 'states' voor de sensors (zijn de pushbuttons ingedrukt of niet? Potentiometer, lichtsensor).

// kitufe cha kuanzisha haliHali za knoppen (ingedrukt of niet) int mainButtonState = 0; kifungo cha ndaniState1 = 0; kifungo cha ndaniState2 = 0; kifungo cha ndaniState3 = 0; kifungo cha ndaniState4 = 0; kifungo cha ndaniState5 = 0; mwanga lightSensorState = 0; Thamani ya Thamani = 0; int lightValue = 0;

Sanidi

Sasa volgt de batili kuanzisha functie. Deze ni van het aina batili (geeft geen waarde terug) en de mafundisho hierin worden maar 1 keer uitgevoerd.

Bij elke functie ni maoni ya geschreven wat er concreet gedaan wordt. Uitleg zaidi juu ya utaftaji maalum wa functie concet doet ni te vinden katika rejea ya arduino

kuanzisha batili () {// kiwango cha data kwa sekunde (baud) voor seriele data transmissie Serial.begin (9600); // Initialiseer de ledPin variabelen als pato pinMode (ledPin1, OUTPUT); pinMode (ledPin2, OUTPUT); pinMode (ledPin3, OUTPUT); pinMode (ledPin4, OUTPUT); pinMode (ledPin5, OUTPUT); // initialiseer alle pushbuttons als input: pinMode (mainButton, INPUT); pinMode (kifungoPin1, INPUT); pinMode (kifungoPin2, INPUT); pinMode (kifungoPin3, INPUT); pinMode (kifungoPin4, INPUT); pinMode (kifungoPin5, INPUT); pinMode (sufuriaPin, INPUT); pinMode (lightSensor, INPUT); }

Functie tupu

Kuanzisha () functie volgt de kitanzi () functie, kwa maagizo kufa kwa hierin staan gaan herhaald uitgevoerd worden.

kitanzi batili () {// lees de staat van de pushbuttons uit (ingedrukt of niet) mainButtonState = digitalRead (mainButton); kifungoState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); buttonState3 = digitalRead (buttonPin3); buttonState4 = digitalRead (buttonPin4); kifungoState5 = digitalRead (buttonPin5);

// kila hali ya kifungo cha kushinikiza kwa safu

kifungo cha ndaniStates = {buttonState1, buttonState2, buttonState3, buttonState4, buttonState5};

// leest de waarde uit van de potentiometer en de lichtsensor

sufuriaValue = AnalogRead (potPin); mwangaValue = AnalogRead (lightSensor);

// mtangazaji na safu kuu za Jimbo juu ya kifo cha mkuu wa waangalizi 0 ndani.

int mainStates = {0, 0, 0, 0, 0};

// kitanzi juu ya safu ya juu aantalKnoppen

kwa (int i = 0; i <aantalKnoppen; i ++) {pinMode (knopPinnen , INPUT); // mwanzilishi kila knopPinnen als pembejeo ya digitalRead (knopPinnen ); // lees de waarde van alle knoppinnen uit // indien de mainswitch (snaar) ingedrukt ni, chapa kila knopnamen, vifungo vyote ikiwa (mainButtonState == HIGH) {Serial.print (namenKnoppen ); Serial.print (","); Serial.println (kifungo cha Jimbo ); }}

Hatua ya 4: Mfano Uittesten

Mfano wa nadharia ya gebouwd ni volgens on mfano wa nambari ya geschreven iko katika Usindikaji, ni mfano tu wa mfano wa majaribio. Video zote zinaonekana kila siku ikiwa inahusika na majibu ya habari kutoka kwa wahusika wengine katika siku ambazo wanachanganya pamoja.

Katika video ya watu wawili ni video ya mtu mmoja anayetumia nguvu ya mkono katika eneo la nguvu katika hatua ya kushughulikia maneno katika ufuatiliaji.

Hatua ya 5: Behuizing "ontmantelen" En Kijken Welke Componenten Gebruikt Gaan Worden

Kutuliza
Kutuliza
Kutuliza
Kutuliza
Kutuliza
Kutuliza
Kutuliza
Kutuliza

Als de code sahihi werkte op het prototype zijn we begonnen met het "ontmantelen" van onze Guitar Hero-gitaar. Sisi hebben de gitaar opengemaakt tulikutana na mafunzo juu ya mpango wa kukaribisha asili ya sehemu ya tukio tukifanya tukio hili kwa sababu ya kudhibiti mtawala. Uiteindelijk hebben tunatumia vifungo vya eigen kwenye vifungo bora zaidi vya gekregen (zie volgende stap). Tunatumia njia moja au zaidi kuwa bidhaa zinazozalishwa na bidhaa zinazozalishwa kwa muda mrefu (kitufe cha kuanzisha kila kitu kinachounganishwa na sehemu moja) tunatumia vifungo kadhaa vya asili kutoka kwenye picha (zie vierde foto). De LEDjes zullen verdwijnen (Deze waren enkel ter indicatie zodat we zagen dat alle knoppen sahihi werkten.

Hatua ya 6: Werking Originele Buttons + Dremelen

Vifungo vya Werking Originele + Dremelen
Vifungo vya Werking Originele + Dremelen

Video ya bijhorende ni ya wijze te zien waarop de twee originele knoppen werken als een soort van schakelaar die wij gebruiken om een effect te genereren bij combinatie van knoppen.

Vifungo vyako vyote vinaweza kutekelezwa kwenye asili ya kisukuli kutoka kwa watoto wetu kutoka kwa waanzilishi wa sehemu za uitgehaald zoals ni picha.

Hatua ya 7: Matandiko ya Solderen + Vifungo Vastlijmen

Solderen ya Matandiko + Vifungo Vastlijmen
Solderen ya Matandiko + Vifungo Vastlijmen
Solderen ya Matandiko + Vifungo Vastlijmen
Solderen ya Matandiko + Vifungo Vastlijmen
Solderen ya Matandiko + Vifungo Vastlijmen
Solderen ya Matandiko + Vifungo Vastlijmen

Siku hizi tulikutana na ubao wa mikate kwa njia ya mikate wakati wa mkutano uliofanywa na watu wengi. Nadat dit gebeurd is kunnen we de buttons vastlijmen zoals te zien is op de foto's. Eens dit gebeurd ni kunnen we doorgaan naar de volgende stap.

Hatua ya 8: Plaats Imefanywa katika De Behuizing

Plaats Maken katika De Behuizing
Plaats Maken katika De Behuizing
Plaats Maken katika De Behuizing
Plaats Maken katika De Behuizing
Plaats Maken katika De Behuizing
Plaats Maken katika De Behuizing

Omdat dit Guitar Hero-model redelijk krap was om mee te werken hebben we extra plaats moeten maken d.m.v. dremelen. Tunaweza kuona kwamba tunajua kwamba kuna watu wengi watatumia mkondo ili kuhakikisha kuwa kuna maeneo mengi ambayo yatafikia mahali hapo. Kuingia kwa idadi kubwa ya vizuizi vya wahusika, waaronder veel buisjes om de vijzen in te bevestigen, hebben we die ook verwijderd on optimaal van de gegeven ruimte gebruik te kunnen maken. Op de vierde en vijfde picha ni habari za sisi katika vyombo vya habari vya vyombo vya habari na mlango wa mlango wa habari ambao utafanyika kwa vifungo kutoka kwa vitufe vya kutolea maoni na habari zaidi. Picha ya picha ni picha tu ambazo tutapata watu wanaotumia neno versten kwa njia ya mlango wa Arduino ambao wameingia kwenye uwanja wa habari.

Hatua ya 9: Bedrading Aansluiten Op Protobord

Kitanda cha kulala Aansluiten Op Protobord
Kitanda cha kulala Aansluiten Op Protobord
Kitanda cha kulala Aansluiten Op Protobord
Kitanda cha kulala Aansluiten Op Protobord
Kitanda cha kulala Aansluiten Op Protobord
Kitanda cha kulala Aansluiten Op Protobord
Kitanda cha kulala Aansluiten Op Protobord
Kitanda cha kulala Aansluiten Op Protobord

Om alle componenten met elkaar te verbinden hebben we gebruik gemaakt van een protobord. Hii ni habari zaidi juu ya mpango wa wavuti kwa njia ya upeanaji wa mkate wa mkate, maar dan betrouwbaarder en efficiënter. Sisi hebben de bedrading aan het bordje gesoldeerd zoals te zien ni op de derde picha. Bord is het centrale punt van waaruit al onze verbindingen vertrekken en samenkomen (picha 2).

Hatua ya 10: Verstevigen

Verstevigen
Verstevigen

Als kumaliza kugusa ni moja ya sababu za msingi wa kufanya hivyo kwa sababu ya utulivu zaidi. Picha ya picha ni tee jembe sisi tunajua jinsi sisi tunavyofanya kazi d.m.v. dremelen achteraan de vifungo verstevigen met stukjes karton.

Hatua ya 11: Code Voor Het Communiceren Met Reaper

Kanuni Voor Het Communiceren Met Reaper
Kanuni Voor Het Communiceren Met Reaper
Kanuni Voor Het Communiceren Met Reaper
Kanuni Voor Het Communiceren Met Reaper
Kanuni Voor Het Communiceren Met Reaper
Kanuni Voor Het Communiceren Met Reaper
Kanuni Voor Het Communiceren Met Reaper
Kanuni Voor Het Communiceren Met Reaper

Nambari ya Deze imejumuishwa katika orodha mbili, mwongozo ni katika IDE ya arduino (mazingira ya maendeleo ya maingiliano) geschreven. Nambari ya maandishi inaweza kupakuliwa kwa njia ya maandishi kwa kila msimamizi wa vyombo vya sensorer kutoka kwa mtawala wa midi ambayo inaweza kutumia mlango wa usindikaji.

Usindikaji ni het tweede gedeelte. Hati ya kificho ya kumbukumbu ya siku zote watazamaji wa milango ya mlango wa mlango na mlango wa uvunaji.

Arduino

/ * Nambari hii ni mchoro wa msingi wa kuwasiliana na Usindikaji kupitia Serial.

Ni mpango ambao unaweza kuweka nambari yako mwenyewe

maalum kwa vifungo vyako mwenyewe, potentiometers au sensorer.

Inapeana mikono ili kuhakikisha tuna mawasiliano

na muundo ambao tunawasiliana umeamuliwa

Ni muhimu kujenga ujumbe kwa njia hiyo hiyo, ili Usindikaji ujue kuijenga upya na kutuma ujumbe sahihi wa OSC kwa DAW yetu

imetengenezwa kwa werkcollege AV&IT

oct 2017

*

/ kiwango cha baud

mrefu baudRate = 115200;

// wakati wa kusubiri kwa ms kati ya kura hadi pini

const int loopPauseTime = 200; sekunde // milli

// kuanza na kumaliza maadili kwa ujumbe uliotumwa kwenye Serial

Kamba ya KuanzaString = "*", endString = "#";

mawasiliano ya const charCharacter = '|';

// kitambulisho cha siri

// anuwai zingine za ulimwengu

const int aantalKnoppen = 5; Kamba Kamba NamenKnoppen [aantalKnoppen] = {"knop 1", "knop 2", "knop 3", "knop 4", "knop 5"}; const int knopPinnen [aantalKnoppen] = {2, 3, 4, 5, 6}; const int kuuButton = A1;

int kuuButtonState = 0;

Thamani ya Thamani = 0;

// sensorer za analoge

const int potPin = A5; // pini voor tremolo

// Tunahitaji kazi hii kuanzisha mawasiliano na Mchoro wa Usindikaji

// Itunze hapa batili kuanzishaContact () {wakati (Serial haipatikani () <= 0) {Serial.print (contactCharacter); // tuma char na subiri majibu… kuchelewa (loopPauseTime); } Serial.read (); }

usanidi batili () {

// weka alama za siri kwa pini zote za (int i = 0; i <aantalKnoppen; i ++) {pinMode (knopPinnen , INPUT); } pinMode (kitufe kuu, INPUT); // kukomesha ikiwa unatumia sensorer zinazofanya kazi kwenye 3V badala ya 5V // itabidi uweke waya wa 'ext' kwa 3.3V vile vile // analogReference (NJE);

// kuanzisha comms Serial

Anzisha Serial (baudRate); wakati (! Serial); // subiri kusalimiana kwa mikonoContact (); }

kitanzi batili () {

// HATUA YA 1: SOMA VITUKO // pigia pini zote na uweke ramani kusoma kwa kitufe kinachofaa cha masafa [aantalKnoppen]; / * kifungoStates [0] = Digital Read (knopPinnen [0]); buttonStates [1] = DigitalRead (knopPinnen [1]); kifungoStates [2] = DigitalRead (knopPinnen [2]); buttonStates [3] = DigitalRead (knopPinnen [3]); kifungoStates [4] = DigitalRead (knopPinnen [4]); * / kuuButtonState = DigitalRead (kifungo kikuu); kwa (int i = 0; i <aantalKnoppen; i ++) {buttonStates = digitalRead (knopPinnen ); } sufuriaValue = AnalogRead (potPin); // mifano: // kuelea v0 = ramani (bpm, 0, 1023, 60, 250); // ikiwa unataka kutumia kuelea kwa kawaida (kwa mfano. kwa sauti) // kuelea v1 = ramani (AnalogRead (pin2), fromMin, fromMax, 0, 100) / 100.0;

// HATUA YA 2: JUA UJUMBE

Serial.print (startString); // anza mlolongo wa ujumbe wa (int i = 0; i <aantalKnoppen; i ++) {if (mainButtonState == HIGH) {Serial.print (namenKnoppen ); Serial.print (","); Serial.print (kifungo cha Jimbo ); ikiwa (i <aantalKnoppen - 1) {Serial.print (","); }} mwingine {buttonStates = 0; Printa ya serial (namenKnoppen ); Serial.print (","); Serial.print (kifungo cha Jimbo ); ikiwa (i <aantalKnoppen - 1) {Serial.print (","); }}} Serial.print (","); Serial.print ("tremolo"); Serial.print (","); Rekodi ya serial (ramani (potValue, 0, 1023, 0, 100)); // andika mwisho wa ujumbe Serial.print (endString);

// subiri kwa muda..

kuchelewesha (loopPauseTime); }

Inasindika

Kanusho: Niet alle code van de processing sketch hier hier in geschreven, voor de volledige code zie het bestand: ProcessingSoundControl_handout_v6_1.pde in bijlage

De volgende maagizo moeten aangepast worden (indien nodig):

// Baudrate moet hetzelfde zijn zoals katika mchoro wa arduino

mwisho int baudRate = 115200;

// Tafuta anwani ya IP ya IP kwa kuvuna (picha za skrini kwa bijlage)

// Inasindika stuurt naar dit andres en reaper luistert hier naar //

// mwisho Kamba ya mbaliIP = "192.168.1.43"; // mfano. "127.0.0.1";

Kamba ya mwishoIP = "10.3.209.60";

// Angalia PostPort na ujaze hii katika Reaper.

// Huu ndio Usindikaji wa bandari unaotuma na Kuvuna unasikiliza.

mwisho int listenPort = 12000, tumaPort = 12000;

// ThePortPort hapa ni kufanya utatuzi kikamilifu.

// bandariMajina yako hapa kutatua pia.

// mwisho String portName = "/ dev / ttyACM0";

String portName ya mwisho = "COM5"; // "/ dev / ttyUSB0";

////////////////////// END of USER PARAMETERS ////////////////////////////////// ////

usindikaji wa kuagiza.serial. *;

kuagiza java.util. *;

kuagiza oscP5. *;

kuagiza netP5. *;

OscP5 oscP5;

NetAddress myRemoteLocation;

Serial commsPort; // Bandari ya serial

ujumbe wa booleanArrived = uongo;

Kamba inayoingia = "", InayoOSCMessage = "";

mwisho char charChar = '*', endChar = '#'; mawasiliano ya mwisho ya charCharacter = '|';

// Ili kuhakikisha tunatuma tu vigezo (maadili) zinazobadilika

// hizi anuwai za ulimwengu zimedanganywa hapa lakini hazipaswi kuzinduliwa hapa! HashMap oldParams, newParams, toSendParams;

// Tunahitaji kugawanya ujumbe katika kila koma

mchakato batiliIncoming () {String resVec = incoming.split (","); // tunapata jozi za thamani ya jina // hivyo kwa kila jina (+ 2)… jaribu {kwa (int i = 0; i <resVec.length; i + = 2) {float value = Float.parseFloat (resVec [i + 1]); // ziweke kwenye Hashtable newParams.put (resVec , thamani); }} // ikiwa hitilafu inatokea, wacha tuigundue na tuondoke. kukamata (Exception ex) {println ("Ujumbe wa Isipokuwa:" + ex); chapaArray (resVec); Utgång(); }}

// Kuchuja ujumbe wetu

/ * Tunahakikisha kuwa kuna ujumbe wa OSC tu wakati * ujumbe wa kuingiza (Serial) unabadilika * Hiyo ni: ikiwa tunageuka / kushinikiza kitufe na inabadilisha thamani. * Kwa hivyo tunachuja nambari zinazoingia ambazo hubadilika * kumbuka: hatutaepuka maadili ya kuruka * kama hutoka kwa mfano accelerometers au sensorer za umbali * utahitaji kulainisha hizo wewe mwenyewe katika Arduino * / batili filterParams () {toSendParams = new HashMap (); ya (Kitufe cha kamba: Usawa (newParams.get (ufunguo))) {toSendParams.put (key, newParams.get (key)); }} mwingine {// ufunguo haupo katika vifungu vya zamani, kwa hivyo uweke! toSendParams.put (ufunguo, newParams.get (ufunguo)); } OldParams.put (ufunguo, newParams.get (ufunguo)); }}

batili makeOSC () {

kwa (Kitufe cha Kamba: toSendParams.keySet ()) {OscMessage myMessage = new OscMessage ("/" + key); myMessage.add (toSendParams.get (ufunguo)); / * tuma ujumbe * / oscP5.send (myMessage, myRemoteLocation); }}

batili translateMessage () {

mchakatoIngenayo (); filterParams (); fanyaOSC (); } // Wakati tunataka kuchapisha kwenye dirisha tupu la ShowIncoming () {// kuona ujumbe unaoingia, kama ilivyo kwenye maandishi ya HashMap ("Incoming from Arduino", 20, 20); int y = 20; kwa (Kitufe cha Kamba: newParams.keySet ()) {y = y + 20; maandishi (ufunguo, 20, y); maandishi (newParams.get (ufunguo), 300, y); }}

onyesha batiliOsc () {

maandishi (IncomingOSCMessage, 300, 200); InayoOSCMessage = ""; }

usanidi batili () {

saizi (1000, 800); // Ukubwa wa hatua ya kujaza (255); msingi (0); oldParams = mpya HashMap (); newParams = mpya HashMap (); // kuchapaArray (Serial.list ()); commsPort = mpya Serial (hii, portName, baudRate);

/ * anza oscP5, sikiliza ujumbe unaoingia * /

oscP5 = OscP5 mpya (hii, sikilizaPort);

/ * myRemoteLocation ni NetAddress. NetAddress inachukua vigezo 2, * anwani ya ip na nambari ya bandari.myRemoteLocation hutumiwa kama kigezo katika * oscP5.send () wakati wa kutuma pakiti za osc kwa kompyuta nyingine, kifaa, * programu. matumizi angalia hapa chini. kwa madhumuni ya upimaji bandari ya kusikiliza na bandari ya anwani ya eneo la mbali ni sawa, kwa hivyo utatuma * ujumbe kwenye mchoro huu. * / myRemoteLocation = NetAddress mpya (remoteIP, sendPort); }

chora batili () {

ikiwa (messageArrived) {background (0); translateMessage (); Onyesha Inayoingia (); messageArrived = uongo; } onyeshaOsc (); }

tupu serialEvent (Serial commsPort) {

// soma ka kutoka bandari ya serial: char inChar = commsPort.readChar (); kubadili (inChar) {kesi contactCharacter: commsPort.write (contactCharacter); // kuuliza println zaidi ("kuanzia …"); kuvunja; kesi ya kuanzaChar: incoming = ""; kuvunja; mwisho wa kesiChar: messageArrived = kweli; // println ("mwisho wa msg"); kuvunja; chaguo-msingi: inayoingia + = inChar; kuvunja; }}

/ * ujumbe unaoingia wa osc hupelekwa kwa njia ya oscEvent. * /

batili oscEvent (OscMessage theOscMessage) {thamani ya kuelea = theOscMessage.get (0). FloatValue (); // pata hoja ya 1 osc

ZinazoingiaOSCMessage + = "\ n" +

String.format ("### ilipokea ujumbe wa osc:" + "addrpattern:" + theOscMessage.addrPattern () + ":% f", value); println (InayoOSCMessage); }

Hatua ya 12: Mdhibiti Uittesten

Alles ni aangesloten, nambari zote ni geschreven en all is is gedubbelcheckt is het eindelijk tijd om de controller z'n werk te laten doen. Tazama njia mpya za kuvuna na kuvuna kwa aina nyingi za voltooide Gitaa ya Usimamizi wa MIDI Mdhibiti!

Ilipendekeza: