Πίνακας περιεχομένων:
- Βήμα 1: Componenten Verzamelen
- Βήμα 2: Πρωτότυπο Bouwen
- Βήμα 3: Πρωτότυπο κώδικα
- Βήμα 4: Πρωτότυπο Uittesten
- Βήμα 5: Behuizing "ontmantelen" En Kijken Welke Componenten Gebruikt Gaan Worden
- Βήμα 6: Werking Originele Buttons + Dremelen
- Βήμα 7: Bedrading Solderen + Buttons Vastlijmen
- Βήμα 8: Plaats Maken στο De Behuizing
- Βήμα 9: Bedrading Aansluiten Op Protobord
- Βήμα 10: Verstevigen
- Βήμα 11: Code Voor Het Communiceren Met Reaper
- Βήμα 12: Ελεγκτής Uittesten
Βίντεο: Guitar Hero Arduino Project: 12 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Wij zijn Maarten Vrebos, Justin Cavanas en Wannes Stroobandt en we studeren πολυμέσα & επικοινωνιακή τεχνολογία. Μπορείτε να παρακολουθήσετε το έργο σας Οπτικοακουστικά & Αρχές Πληροφορικής από την Guitar Hero-gitaar, αλλά και με τη χρήση του MIDI-ελεγκτή. Het ήταν onze bedoeling om de bestaande knoppen op de gitaar intern te vervangen. Onze controller zal vastgehouden en bespeeld worden als een normale gitaar. Aangezien we iets hebben gehackt hebben we er niet veel extra materiaal in moeten verwerken.
In de afbeelding kan u onze allereerste schets op papier zien van hoe het eindproduct er zou moeten uitzien met daarnaast een foto van de gitaar die als behuising zal worden gebruikt.
Wij hebben ons voor dit project 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…
Benodigdheden voor dit έργο
- 6 κουμπιά kleine
- 7 αντιστάσεις 1kohm
- 1 gele LED 1
- blauwe LED
- 1 Arduino Uno R3
- 1 αυθεντικό LED
- 2 οδηγημένα LED
- 1 schuifschakelaar
- 1 σανίδα ψωμιού
- 1 ποτενσιόμετρο
- 1 πρωτόκορδο
- 1 κιθάρα ήρωας gitaar
- Voldoende στο κρεβάτι
- Materiaal om te solderen/dremelen/
- Schroevendraaier
Βήμα 1: Componenten Verzamelen
Voor ons prototype (op breadboard) hebben we volgende componenten gebruikt:
6 κουμπιά
7 αντιστάσεις 1kohm
1 κίτρινο LED
1 μπλε LED
1 Arduino Uno R3
1 πράσινο LED
2 Κόκκινο LED
1 Schuifschakelaar
1 Breadboard
1 Ποτενσιόμετρο
Βήμα 2: Πρωτότυπο Bouwen
Om ons prototype te bouwen hebben we al onze componenten gebruikt op een breadboard, deze breadboard dient dan als testobject zodat we niet meteen in de behuizing te werk moeten gaan. Dit prototype hebben we dan ook gedigitaliseerd μέσω του tinkercad.com, από το manier hadden που είδαμε πολύ γρήγορα το πρωτότυπο dat elk groepslid ook kon bewerken.
Εναλλακτικα 5 κλειδια πιεστικα εχουν ξεπερασει τις λειτουργιες τους 5 εως και εγω και εχω μια μεγαλη πιεση μπουτονιων σε συνδυασμο συναντησατε με τις μερες μου "snaren" moet worden ingedrukt om een audief effect te Creatgen. Διαφορετικές λυχνίες LED μπορούν να χρησιμοποιηθούν για να ελέγξουν όλες τις πληροφορίες και να σας βοηθήσουν να εργαστείτε.
Βήμα 3: Πρωτότυπο κώδικα
Globale variabelen
In het eerste deel van de code initialiseer je globale variabelen voor de pins van arduino uno waar alle pushbuttons mee verbonden zijn.
// zet pin αριθμοί waar mainButton (snaar) και κουμπιά andere verbonden zijn: const int mainButton = A1; // gitaar snaar const int lightSensor = A0; const int buttonPin1 = 2; // nummer van pushbutton1 const int buttonPin2 = 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};
Εν ολίγοις, μπορούν να χρησιμοποιηθούν για τη χρήση των οδηγήσεων.
const int ledPin1 = 13; // ο αριθμός του πείρου LED 13
const int ledPin2 = 12; // ο αριθμός του πείρου LED 12 const int ledPin3 = 11; // ο αριθμός των ακίδων LED 11 const int ledPin4 = 10; // ο αριθμός των ακίδων LED 10 const int ledPin5 = 9; // ο αριθμός των ακίδων LED 9 const int potPin = A5; // ο αριθμός του πείρου LED A5
De laatste globale variabelen dienen als 'state' voor de sensors (zijn de pushbuttons ingedrukt of niet? Potentiometer, lichtsensor).
// αρχικοποιητής buttonStates voor de knoppen (ingedrukt of niet) int mainButtonState = 0; int buttonState1 = 0; int buttonState2 = 0; int buttonState3 = 0; int buttonState4 = 0; int buttonState5 = 0; int lightSensorState = 0; int potValue = 0; int lightValue = 0;
Ρύθμιση
Nu volgt de void setup functie. Το Deze is van het type void (geeft geen waarde terug) και από οδηγίες hierin worden maar 1 keer uitgevoerd.
Το Bij elke functie είναι σχόλιο geschreven wat er concreet gedaan wordt. Extra uitleg over wat een specifieke functie concreet doet is te vinden in de arduino reference
void setup () {// ρυθμός δεδομένων ανά δευτερόλεπτο (baud) voor seriele data transmissionie Serial.begin (9600); // Initialiseer de ledPin variabelen als output pinMode (ledPin1, OUTPUT); pinMode (ledPin2, OUTPUT); pinMode (ledPin3, OUTPUT); pinMode (ledPin4, OUTPUT); pinMode (ledPin5, OUTPUT); // αρχικοποιητής για όλα τα κουμπιά και την είσοδο: pinMode (mainButton, INPUT); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (buttonPin3, INPUT); pinMode (buttonPin4, INPUT); pinMode (buttonPin5, INPUT); pinMode (potPin, INPUT); pinMode (lightSensor, INPUT); }
Void functie
Na de setup () functie volgt de loop () functie, de instructies die hierin staan gaan herhaald uitgevoerd worden.
void loop () {// lees de staat van de pushbuttons uit (ingedrukt of niet) mainButtonState = digitalRead (mainButton); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); buttonState3 = digitalRead (buttonPin3); buttonState4 = digitalRead (buttonPin4); buttonState5 = digitalRead (buttonPin5);
// alle statusbutton statusen στο een array
int buttonStates = {buttonState1, buttonState2, buttonState3, buttonState4, buttonState5};
// leest de waarde uit van de potentiometer en de lichtsensor
potValue = analogRead (potPin); lightValue = analogRead (lightSensor);
// δηλωτής e array mainStates en geef die de standaard waarden 0 in.
int mainStates = {0, 0, 0, 0, 0};
// loop over de array aantalKnoppen
για (int i = 0; i <aantalKnoppen; i ++) {pinMode (knopPinnen , INPUT); // initialiseer alle knopPinnen als input digitalRead (knopPinnen ); // lees de waarde van alle knoppinnen uit // indien de mainswitch (snaar) ingedrukt is, print all knopnamen, alle buttonstates if (mainButtonState == HIGH) {Serial.print (namenKnoppen ); Serial.print (","); Serial.println (buttonStates ); }}
Βήμα 4: Πρωτότυπο Uittesten
Nadat het prototype gebouwd is volgens ons model en de code geschreven is in Processing, is het tijd om het prototype uit te testen. Το βίντεο είναι ένα από τα πιο γνωστά που αντιστοιχούν στην επιλογή των οδηγιών και των συνδυασμών των knoppen mogelijk zijn.
Στο βίντεο του tweede μπορείτε να δείτε πώς μπορείτε να χρησιμοποιήσετε το ποτενσιόμετρο στο gitaar και να το χρησιμοποιήσετε για να επεξεργαστείτε.
Βήμα 5: Behuizing "ontmantelen" En Kijken Welke Componenten Gebruikt Gaan Worden
Als de code correct werkte op het prototype zijn we begonnen met het "ontmantelen" van onze Guitar Hero-gitaar. Εμφανίσαμε το άνοιγμα της συνάντησής μας με έναν ελεγκτή αρχικής προέλευσης, καθώς και έναν ελεγκτή. Χρησιμοποιήστε όλα τα κουμπιά που χρησιμοποιείτε στα κουμπιά επιλογής (zie volgende stap). We hebben de tremolo ook gebruikt voor ons eindproduct en voor onze hoofdbutton (κουμπί έναρξης όλων των συνδυασμών μετά την είσοδό σας) hebben we ook de originele twee buttons gebruikt (zie vierde foto). De LEDjes zullen verdwijnen (deze waren enkel ter indicatie zodat we zagen dat alle knoppen correct werkten.
Βήμα 6: Werking Originele Buttons + Dremelen
Το βίντεο επιλέγεται από το twee originele knoppen werken als een soort van schakelaar die wij gebruiken om een effect te genereren bij combinatie van knoppen.
Όλα τα κουμπιά σας μπορούν να χρησιμοποιηθούν για την καταχώρηση των αρχικών κειμένων που θα σας βοηθήσουν να υποβάλετε τις προτάσεις σας.
Βήμα 7: Bedrading Solderen + Buttons Vastlijmen
Omdat we niet meer met ή breadboard werken moeten de draden gesoldeerd worden om zo de verschillende componenten met elkaar te verbinden. Πρώτα απ 'όλα, μπορείτε να πάρετε τα κουμπιά σας για τη φωτογραφία σας. Eens dit gebeurd is kunnen we doorgaan naar de volgende stap.
Βήμα 8: Plaats Maken στο De Behuizing
Omdat dit Guitar Hero-model redelijk krap was om mee te werken hebben we extra plaats moeten maken d.m.v. ντρέμελεν. Zo hebben we uit de achterkant van de gitaar και hele strook verwijderd zodat er meer plaats ontstaat voor de bedrading in de gitaar. Omdat er overal in de binnenkant obstakels waren, waaronder veel buisjes om de vijzen in te bevestigen, hebben we die ook verwijderd om optimaal van de gegeven ruimte gebruik te kunnen maken. Op de vierde en vijfde foto is te zien dat we in de achterkant van de gitaar een doorgang hebben gecreëerd voor de draden die naar de buttons gaan omdat de gitaar anders niet meer te sluiten was. En op de laatste foto is te zien dat we de draden die rechtstreeks verbonden worden met de Arduino πόρτα και εμένα στο de onderkant van de gitaar de behuizing verlaten.
Βήμα 9: Bedrading Aansluiten Op Protobord
Om alle componenten met elkaar te verbinden hebben we gebruik gemaakt van een protobord. Αυτό μπορεί να συμβεί στο να αποκτήσει ένα ευρύ φάσμα εργασιών, όπως επίσης και το breadbord, το οποίο μπορεί να είναι αποτελεσματικό. We hebben de bedrading aan het bordje gesoldeerd zoals te zien is op de derde foto. Dit bord is het centrale punt van waaruit al onze verbindingen vertrekken en samenkomen (zie foto 2).
Βήμα 10: Verstevigen
Επίσης, το τελευταίο άγγιγμα είναι το τελευταίο άγγιγμα της ελάφρυνσής σας για περισσότερη σταθερότητα. Op deze foto is te zien hoe we het deel dat we er hebben uitgehaald d.m.v. dremelen achteraan de buttons verstevigen met stukjes karton.
Βήμα 11: Code Voor Het Communiceren Met Reaper
Ο κώδικας Deze είναι ανοιχτός στο twee delen, ο het eerste deel βρίσκεται στο de arduino IDE (περιβάλλον διαδραστικής ανάπτυξης) geschreven. Die code wordt geüpload naar arduino zelf en dient om all waarden van de sensors van de midi controller uit te lezen en door te sturen naar processing.
Η επεξεργασία είναι tweede gedeelte. Deze code dient om alles wat arduino doortuurt te ontvangen en door te sturen naar Reaper.
Arduino
/* Αυτός ο κώδικας είναι ένα βασικό σκίτσο για την επικοινωνία με την Επεξεργασία μέσω σειριακού.
Είναι ένα σχέδιο στο οποίο μπορείτε να βάλετε τον δικό σας κώδικα
καθορίζεται για τα δικά σας κουμπιά, ποτενσιόμετρα ή αισθητήρες.
Έχει χειραψία για να βεβαιωθείτε ότι έχουμε επαφή
και αποφασίζεται η μορφή με την οποία επικοινωνούμε
Είναι σημαντικό να δημιουργηθεί το μήνυμα με τον ίδιο τρόπο, έτσι ώστε η Επεξεργασία να ξέρει πώς να την αποδομήσει και να στείλει σωστά μηνύματα OSC στο DAW μας
φτιαγμένο για werkcollege AV&IT
Οκτωβρίου 2017
*
/ ρυθμός baud
const long baudRate = 115200;
// χρόνος αναμονής σε ms μεταξύ δημοσκοπήσεων στις καρφίτσες
const int loopPauseTime = 200; // χιλιοστά του δευτερολέπτου
// τιμές έναρξης και λήξης για το μήνυμα που αποστέλλεται στο Serial
const String startString = "*", endString = "#";
const char contactCharacter = '|';
// pin id's
// άλλες καθολικές μεταβλητές
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}; const int mainButton = A1;
int mainButtonState = 0;
int potValue = 0;
// αισθητήρες αναλύσεων
const int potPin = A5; // pin voor tremolo
// Χρειαζόμαστε αυτήν τη λειτουργία για να δημιουργήσουμε επαφή με το σκίτσο επεξεργασίας
// Κρατήστε το εδώ άκυρο estabContact () {while (Serial.available () <= 0) {Serial.print (contactCharacter); // στείλτε μια κάρτα και περιμένετε μια απάντηση… καθυστέρηση (loopPauseTime); } Serial.read (); }
void setup () {
// ορίστε τα pinModes για όλες τις ακίδες για (int i = 0; i <aantalKnoppen; i ++) {pinMode (knopPinnen , INPUT); } pinMode (mainButton, INPUT); // μην σχολιάζετε εάν χρησιμοποιείτε αισθητήρες που λειτουργούν σε 3V αντί για 5V // θα πρέπει να συνδέσετε τον ακροδέκτη "ext" σε 3.3V επίσης // analogReference (EXTERNAL).
// αρχικοποίηση σειριακών κοινών
Serial.begin (baudRate); ενώ (! Σειριακό)? // περιμένετε για χειραψία estabContact (); }
void loop () {
// ΒΗΜΑ 1: ΔΙΑΒΑΣΤΕ ΚΟΥΜΠΙΑ // δημοσκοπήστε όλες τις καρφίτσες και αντιστοιχίστε την ανάγνωση στο κατάλληλο εύρος int κουμπίStates [aantalKnoppen]; /* buttonStates [0] = digitalRead (knopPinnen [0]); buttonStates [1] = digitalRead (knopPinnen [1]); buttonStates [2] = digitalRead (knopPinnen [2]); buttonStates [3] = digitalRead (knopPinnen [3]); buttonStates [4] = digitalRead (knopPinnen [4]); */ mainButtonState = digitalRead (mainButton); για (int i = 0; i <aantalKnoppen; i ++) {buttonStates = digitalRead (knopPinnen ); } potValue = analogRead (potPin); // παραδείγματα: // float v0 = χάρτης (bpm, 0, 1023, 60, 250); // εάν θέλετε να χρησιμοποιήσετε ένα κανονικοποιημένο float (π.χ. για όγκο) // float v1 = map (analogRead (pin2), fromMin, fromMax, 0, 100) / 100.0;
// ΒΗΜΑ 2: ΓΡΑΦΤΕ ΜΗΝΥΜΑ
Serial.print (startString); // ξεκινήστε μια ακολουθία μηνυμάτων για (int i = 0; i <aantalKnoppen; i ++) {if (mainButtonState == HIGH) {Serial.print (namenKnoppen ); Serial.print (","); Serial.print (buttonStates ); if (i <aantalKnoppen - 1) {Serial.print (","); }} else {buttonStates = 0; Serial.print (namenKnoppen ); Serial.print (","); Serial.print (buttonStates ); if (i <aantalKnoppen - 1) {Serial.print (","); }}} Serial.print (","); Serial.print ("tremolo"); Serial.print (","); Serial.print (χάρτης (potValue, 0, 1023, 0, 100)); // γράψτε το τέλος του μηνύματος Serial.print (endString);
// περίμενε για λίγο..
καθυστέρηση (loopPauseTime); }
Επεξεργασία
Αποποίηση ευθυνών: Niet alle code van de processing sketch staat hier in geschreven, voor de volledige code zie het bestand: ProcessingSoundControl_handout_v6_1.pde in bijlage
De volgende instructions moeten aangepast worden (indien nodig):
// Baudrate moet hetzelfde zijn zoals in de arduino σκίτσο
τελικό int baudRate = 115200;
// Zoek naar het IP adress in reaper (zie screenshots in bijlage)
// Επεξεργασία stuurt naar dit andres en reaper luistert hier naar //
// τελικό String remoteIP = "192.168.1.43"; //π.χ. "127.0.0.1";
τελικό τηλεχειριστήριο IP = "10.3.209.60";
// Σημειώστε το sendPort και συμπληρώστε το στο Reaper.
// Αυτή είναι η θύρα που στέλνει η επεξεργασία και ακούει η Reaper.
τελικό int listenPort = 12000, sendPort = 12000;
// Το listenPort εδώ είναι ο ενεργός εντοπισμός σφαλμάτων.
// τα portNames είναι επίσης εδώ για να διορθώσετε σφάλματα.
// τελικό String portName = "/dev/ttyACM0";
τελική θύρα συμβολοσειράςName = "COM5"; // "/dev/ttyUSB0";
////////////////////// ΤΕΛΟΣ ΠΑΡΑΜΕΤΡΩΝ ΧΡΗΣΤΗ //////////////////////// ////
επεξεργασία εισαγωγής.σειρά.*;
εισαγωγή java.util.*;
εισαγωγή oscP5.*;
εισαγωγή netP5.*;
OscP5 oscP5;
NetAddress myRemoteLocation;
Serial commsPort; // Η σειριακή θύρα
boolean messageArrived = false;
Εισερχόμενη συμβολοσειρά = "", IncomingOSCMessage = "";
τελικό char startChar = '*', endChar = '#'; τελικό char contactCharacter = '|';
// Για να βεβαιωθούμε ότι στέλνουμε μόνο τις παραμέτρους (τιμές) που αλλάζουν
// αυτές οι γενικές μεταβλητές εμφανίζονται εδώ αλλά δεν πρέπει να // αρχικοποιηθούν εδώ! HashMap oldParams, newParams, toSendParams;
// Πρέπει να χωρίσουμε το μήνυμα σε κάθε κόμμα
void processIncoming () {String resVec = incoming.split (","); // παίρνουμε ζεύγη ονόματος+τιμών // έτσι για κάθε όνομα (+2)… δοκιμάστε {για (int i = 0; i <resVec.length; i+= 2) {float value = Float.parseFloat (resVec [i+ 1]); // βάλτε τα στο νέο Hashtable newParams.put (resVec , value); }} // εάν παρουσιαστεί σφάλμα, ας το πιάσουμε να εμφανίζεται και να βγαίνουμε. catch (Exception ex) {println ("Exception Message:" + ex); printArray (resVec); έξοδος(); }}
// Για να φιλτράρετε τα μηνύματά μας
/ * Βεβαιωνόμαστε ότι υπάρχει μόνο ένα μήνυμα OSC-out όταν * το μήνυμα εισόδου (Serial) αλλάζει * Δηλαδή: αν γυρίσουμε/πατήσουμε το κουμπί και αλλάξει τιμή. * Έτσι φιλτράρουμε τις εισερχόμενες τιμές που πραγματικά αλλάζουν * σημείωση: δεν θα αποφύγουμε τις τιμές άλματος * όπως προέρχονται π.χ. από επιταχυνσιόμετρα ή αισθητήρες απόστασης * θα πρέπει να τις εξομαλύνετε μόνοι σας στο Arduino */ void filterParams () {toSendParams = new HashMap (); για (Κλειδί συμβολοσειράς: newParams.keySet ()) {// αν το κλειδί είναι ήδη αν). Equals (newParams.get (κλειδί))) {toSendParams.put (κλειδί, newParams.get (κλειδί)); }} else {// κλειδί δεν υπάρχει στα παλιά στοιχεία, οπότε θέστε το! toSendParams.put (κλειδί, newParams.get (κλειδί)); } oldParams.put (κλειδί, newParams.get (κλειδί)); }}
void makeOSC () {
για (Κλειδί συμβολοσειράς: toSendParams.keySet ()) {OscMessage myMessage = νέο OscMessage ("/"+ κλειδί); myMessage.add (toSendParams.get (κλειδί)); / * στείλτε το μήνυμα */ oscP5.send (myMessage, myRemoteLocation); }}
void translateMessage () {
processIncoming (); filterParams (); makeOSC (); } // Όταν θέλουμε να εκτυπώσουμε στο παράθυρο void ShowIncoming () {// για να δούμε το εισερχόμενο μήνυμα, όπως έχει οριστεί στο κείμενο του HashMap ("Εισερχόμενα από Arduino", 20, 20); int y = 20; για (Κλειδί συμβολοσειράς: newParams.keySet ()) {y = y+20; κείμενο (κλειδί, 20, y). κείμενο (newParams.get (κλειδί), 300, y); }}
void showOsc () {
κείμενο (IncomingOSCMessage, 300, 200); IncomingOSCMessage = ""; }
void setup () {
μέγεθος (1000, 800). // Συμπλήρωση μεγέθους σκηνής (255). φόντο (0); oldParams = νέο HashMap (); newParams = νέο HashMap (); // printArray (Serial.list ()); commsPort = νέο Σειριακό (αυτό, portName, baudRate);
/ * εκκίνηση oscP5, ακρόαση εισερχόμενων μηνυμάτων */
oscP5 = νέο OscP5 (αυτό, listenPort);
/* myRemoteLocation είναι μια NetAddress. ένα NetAddress λαμβάνει 2 παραμέτρους, * μια διεύθυνση IP και έναν αριθμό θύρας. Το myRemoteLocation χρησιμοποιείται ως παράμετρος στο * oscP5.send () κατά την αποστολή πακέτων osc σε άλλο υπολογιστή, συσκευή, * εφαρμογή. χρήση δείτε παρακάτω. για σκοπούς δοκιμής, η θύρα ακρόασης * και η θύρα της απομακρυσμένης διεύθυνσης τοποθεσίας είναι οι ίδιες, επομένως * θα στείλετε μηνύματα πίσω σε αυτό το σκίτσο. */ myRemoteLocation = νέα NetAddress (remoteIP, sendPort); }
άκυρη κλήρωση () {
if (messageArrived) {background (0); translateMessage (); ShowIncoming (); messageArrived = false; } showOsc (); }
void serialEvent (Serial commsPort) {
// διαβάστε ένα byte από τη σειριακή θύρα: char inChar = commsPort.readChar (); switch (inChar) {case contactCharacter: commsPort.write (contactCharacter); // ζητήστε περισσότερα println ("εκκίνηση …"); Διακοπή; θήκη startChar: εισερχόμενη = ""; Διακοπή; υπόθεση endChar: messageArrived = true; // println ("τέλος μηνύματος"); Διακοπή; προεπιλογή: εισερχόμενη += inChar; Διακοπή; }}
/* τα εισερχόμενα μηνύματα osc προωθούνται στη μέθοδο oscEvent. */
void oscEvent (OscMessage theOscMessage) {float value = theOscMessage.get (0).floatValue (); // λάβετε το 1ο όρισμα osc
IncomingOSCMessage += "\ n" +
String.format ("### έλαβε ένα μήνυμα osc:" + "addrpattern:" + theOscMessage.addrPattern () + ": %f", τιμή); println (IncomingOSCMessage); }
Βήμα 12: Ελεγκτής Uittesten
Nu alles is aangesloten, alle code is geschreven en alles is gedubbelcheckt is het eindelijk tijd om de controller z'n werk te laten doen. Πραγματοποιήστε επίδραση στο Reaper en geniet van voltooide Guitar Hero MIDI Controller!
Συνιστάται:
Χρήση Guitar Hero Guitar για έλεγχο ζουμ (Μόνο για Windows): 9 βήματα
Χρήση μιας κιθάρας Guitar Hero για τον έλεγχο του ζουμ (Μόνο για Windows): Καθώς βρισκόμαστε εν μέσω μιας παγκόσμιας πανδημίας, πολλοί από εμάς είμαστε κολλημένοι στο σπίτι καθαρίζοντας και συμμετέχοντας σε συναντήσεις στο Zoom. Μετά από λίγο, αυτό μπορεί να γίνει πολύ ήπιο και κουραστικό. Καθώς καθάριζα το σπίτι μου, βρήκα μια παλιά κιθάρα Guitar Hero που πετάχτηκε στο τ
Ευκολότερος Guitar Hero Clone Controller!: 10 βήματα (με εικόνες)
Ευκολότερος Guitar Hero Clone Controller!: Αυτό είναι εμπνευσμένο από την εξαιρετική ιδέα της Realities, αλλά χρησιμοποίησα έναν ελεγκτή υπολογιστή αντί για μια πλακέτα κυκλώματος πληκτρολογίου, εξαλείφοντας την ανάγκη για μια περίτεχνη κατασκευή πτερύγων
Διόρθωση αποσύνδεσης κιθάρας Guitar Hero: 5 βήματα (με εικόνες)
Guitar Hero Guitar Disconnecting Fix: Λοιπόν, μόλις αγοράσατε αυτήν την ωραία χρησιμοποιημένη κιθάρα ήχου κιθάρας από το ebay και όταν έφτασε σε εσάς απλά δεν θα συνδεθεί με αυτό το dongle USB, οπότε νομίζετε ότι χάσατε μόλις 30 ευρώ. κάτω από την αποχέτευση. Υπάρχει όμως μια διόρθωση και πιθανότατα θα λειτουργήσει
Guitar Hero Clone: 7 βήματα (με εικόνες)
Guitar Hero Clone: Θέλατε ποτέ να παίξετε Guitar Hero στον υπολογιστή σας με τη δική σας σπιτική κιθάρα; Ετοιμαστείτε να παίξετε με λιγότερα από 10 δολάρια και λίγη υπομονή
OpenChord.org V0 - Build a Real Guitar Guitar Hero/Rock Band Controller: 10 Steps
OpenChord.org V0 - Build a Real Guitar Guitar Hero/Rock Band Controller: Όλοι αγαπάμε τους Guitar Hero και Rock Band. Γνωρίζουμε επίσης ότι δεν θα μάθουμε ποτέ πώς να παίζουμε πραγματικά κιθάρα παίζοντας αυτά τα παιχνίδια. Τι γίνεται όμως αν μπορούσαμε τουλάχιστον να φτιάξουμε ένα Guitar Hero χειριστήριο που θα μας επέτρεπε να χρησιμοποιήσουμε μια πραγματική κιθάρα; Αυτό είμαστε εδώ στο OpenChord