» Muziekinstrumenten »Kravox ruimtelijke synthesizer op Arduino

Kravox ruimtelijke synthesizer op Arduino



De meester vond Kravox uit tijdens een onderzoeksproject aan de Lund University (Zweden), met als doel om digitale muziekinstrumentcontrollers het gevoel van traditionele mechanische instrumenten te geven. Nu wil de meester Kravox voor iedereen toegankelijk maken als muziekplatform om te experimenteren. Daarom creëerde hij deze gedetailleerde briefing, die zoveel mogelijk mensen in staat zal stellen dit nieuwe interessante muziekinstrument te gebruiken.

Kravox spelen is vrij eenvoudig. Stel je voor dat je met een gewoon voorwerp speelt, zoals een bezem, en de manier waarop je het aanraakt en het in de ruimte beweegt, bepaalt hoe het geluid wordt gegenereerd. Je kunt aan het einde van het artikel in de video's kijken en horen hoe je Kravox moet spelen, evenals het proces van het maken van het instrument.

Gereedschap en materialen:
- breadboard 50 * 24 gaten -1 stuks;
-40-pins mannelijke connectoren -5 stuks;
-40-pins stekker - 5 stuks;
- Potentiometers 10 kOhm en handvatten daarvoor - 5 stuks;
-Blauwe 5 mm standaard LED's - 3 stuks;
- Weerstanden 150 Ohm - 3 stuks;
- Condensator 10 uF - 2 stuks;
- Condensator 100 nF - 2 stuks;
-Radio module NRF24L01 - 2 stuks;
-Arduino nano -2 stuks;
-Weerstanden 220 Ohm -3 stuks;
- Boards van sensorsensoren MPR121 - 2 stuks;
- Digitale gyro GY-521 MPU 6050 - 1 stuk;
- USB-A naar USB-C kabels;
-4 meter (minimaal) kopertape van 1 cm breed;
-Powerbank;
-7 meter (minimum) draden van verschillende kleuren;
-0,2 meter, krimpkous ø = 3 mm;
-Soldeeraccessoires;
-Multimeter;
-Regel;
-Mes;
-Nozhovka;
- Tang;
-Karton;
-Lijmpistool;
-Tape;
-Lijm;
-Kantoorgom;
-Clips;




Stap één: Theorie
Kravox is een open source platformonafhankelijk digitaal muziekinstrument dat uit drie componenten bestaat: een controller / controllers, een ontvanger en software.

U kunt maximaal drie draadloze controllers aansluiten. Elke controller verwerkt oriëntatie- en acceleratiegegevens van de MPU-6050 digitale gyroscoop en aanraakgegevens van twee MPR121-sensorsensorkaarten die zijn aangesloten op de Arduino Nano. De controller verzendt gegevens naar de ontvanger met behulp van de nRF24L01-radiozender. Als het nodig is om meer dan één controller te gebruiken, moeten aan de tweede en derde controller individuele adressen worden toegewezen.

De ontvanger verzendt gegevens die zijn ontvangen van de controller (s) naar de aangesloten computer, samen met gegevens die zijn verzameld van verschillende potentiometers.Met de meegeleverde ontvangercode kunt u communicatie tot stand brengen met drie controllers, maar deze werkt ook met slechts één of twee zonder instellingen.

Gegevens van de ontvanger worden verwerkt in een programma dat is geschreven dat geluid uitvoert.
Het mooie van Kravox is dat de vorm, hoe het klinkt en hoe het te spelen kan worden aangepast. Dit gaf de tovenaar de mogelijkheid om voor deze les een gemakkelijk te kopiëren versie van Kravox te ontwikkelen.


Stap twee: maak een controllerkaart
Vervolgens legt de wizard uit hoe u dit moet doen elektronica controller stap voor stap uit de bovenstaande details.
Als u niet zeker weet waar u de kabel moet solderen, kunt u altijd terugkeren naar het schakelschema en controleren of de componenten correct zijn aangesloten.


De eerste stap is om het breadboard en de connectoren door te snijden en ze samen te voegen met een kleine en een grote condensator, wat de betrouwbaarheid van de radiozender helpt vergroten.

Snijd het bord met een mes
Knip de connectoren door met een ijzerzaag (de meester legde ze op het boek om ze uit te lijnen van de tafel)
Installeer de connectoren op het breadboard en soldeer. U kunt elk paar contacten van twee al verbinden
lange connectoren die aan elkaar grenzen. Voor de rest is het voldoende om ze eenvoudig te bevestigen met een klein soldeer - bij voorkeur contacten, die volgens het schakelschema later niet worden aangesloten. Let bij het solderen van condensatoren op de polariteit van de elektrolytische condensator van 10 microfarads (de grootste van de twee). De ene kant heeft een strip en in de regel een kortere poot. Deze kant moet worden verbonden met de grond. De kleinere condensator van 100 nanofarad is niet gepolariseerd en kan op elke manier worden gesoldeerd.





Verder zijn de LED-weerstanden gesoldeerd. Let op de polariteit van de LED: één zijde heeft meestal een kortere poot. Deze kant moet in de volgende stap met de grond worden verbonden. Aan het andere been is een blauwe draad gesoldeerd. Het andere uiteinde van de draad wordt aan de connector gesoldeerd waar de Arduino pin D3 zal worden aangesloten.


Vervolgens worden alle rode en blauwe stroomkabels gemonteerd. Rood voor 3,3 volt en blauw voor aarde (GND).


Drie sensorkaarten communiceren via het I2C-protocol (geïntegreerde schakeling). Dit betekent dat ze allemaal kunnen worden aangesloten op dezelfde twee Arduino-pinnen, dus we solderen de gele en groene draden naar de sensoren en Arduino A4- en A5-pinnen. Je moet ook een witte kabel monteren om de onderbrekingscontacten van de gyro te verbinden.


De radiozender communiceert via het SPI-protocol (serieel
perifere interface), waarvoor meer verbindingen nodig zijn dan I2C, voegt de wizard zwarte, grijze, bruine, paarse en oranje draden toe.


Nu is het tijd om de componenten voor te bereiden. Naast solderen op pinconnectoren, zo niet
gesoldeerd, moet u speciale aandacht besteden aan het sensorbord! Voor goedkope modellen uit China is de adrespin stevig geaard zonder een tussenweerstand, dus u moet deze verbinding aan de onderkant van het bord fysiek doorsnijden met een mes. Knip tussen twee blokken in de buurt van de plaats waar ADD is geschreven. De wizard raadt aan te bellen met een multimeter om ervoor te zorgen dat de contacten niet zijn verbonden.


Wanneer alle onderdelen gesoldeerde connectoren hebben en de sensorkaarten zijn voorbereid, kunt u de Arduino Nano, een gyroscoop, twee sensorkaarten en een radiomodule op de controllerkaart aansluiten.


Stap drie: Download code
Na een dubbele controle, als alles correct is aangesloten, is de volgende stap het downloaden van de meegeleverde Arduino nano, maar voordat je dit kunt doen, moet je de bibliotheken voor de gyroscoop, sensorsensorkaarten en radiozender installeren. Als je nieuw bent bij Arduino-bibliotheken, leer dan hoe je ze kunt installeren.
De MPU6050-gyro vereist de I2Cdev.h- en MPU6050_6Axis_MotionApps20.h-bibliotheken, die kunnen worden gedownload.
Voor MPR121 touch boards is de Bare Conductive library MPR121.h vereist, deze kan gevonden worden Er zijn tenminste twee versies van de library. Zorg ervoor dat u de versie installeert die is ontwikkeld door Bare Conductive, niet de versie die is ontwikkeld door Adafruit.
De NRF24L01 radiozenderkaart heeft de nRF24L01.h en RF24.h TMRh20-bibliotheken nodig, die kunnen worden gedownload. Let op: er zijn ook minimaal twee versies van deze bibliotheken met dezelfde naam. Zorg ervoor dat u de ontwikkelde TMRh20 installeert, niet de maniakbug.
Zodra de bibliotheken zijn geïnstalleerd, kunt u de Kravox-Controller-code downloaden.

Om te controleren of de controller werkt, kunt u deze inschakelen om gegevens van aanraaksensoren en een gyroscoop uit te voeren via een seriële monitor. Om dit te doen, moet u het laatste deel van de ontvangercode bewerken voordat u het downloadt: door het merkteken aan het begin (/ *) en aan het einde (* /) ervan te verwijderen (zie. Foto)

Na het downloaden van de code met deze optie, moet u de seriële monitor openen en de baudsnelheid (gegevenssnelheid) daarvoor instellen op 115200. Nu kunt u de gegevens van de sensoren zien, die veranderen wanneer de controllerkaart wordt verplaatst en de contacten worden aangeraakt, van MPR121-kaarten die zijn gemarkeerd van 0 tot 11.

Als niets werkt of alleen nullen worden verkregen, moet u de bedrading zorgvuldig controleren en vergelijken met het bovenstaande diagram. Als u het verkeerde signaal van de seriële monitor ontvangt, moet u controleren of de gegevensoverdrachtsnelheden correct zijn ingesteld.


Stap vier: Board Power

Voor stroom moet u de controllerkaart op de bank aansluiten.
Als de bank na een tijdje niet automatisch wordt uitgeschakeld, is de controllerkaart klaar en kunt u naar de ontvangerkaart gaan. Volg anders de volgende stap.

Stap vijf: los het stroomprobleem op
In principe is de controllerkaart gereed, maar sommige banken schakelen na aansluiting op de controllerkaart na enkele seconden automatisch uit, omdat deze weinig stroom verbruikt. Als oplossing kunt u eenvoudig drie 220 Ohm-weerstanden parallel toevoegen tussen de 5V- en GND-pinnen van de Arduino.


Na het opnieuw aansluiten van de componenten ziet (definitief) de afgewerkte controller-kaart er zo uit.


Stap zes: Maak een ontvangerkaart
In deze stap laat de wizard zien hoe je de ontvangerprint maakt. Het proces lijkt erg op het maken van een controllerkaart.


Eerst moet je de breadboard en connectoren inkorten. Installeer vervolgens de condensatoren. U kunt deze stap vergelijken met de eerste stap van het maken van een controllerkaart voor meer informatie.


Vervolgens moet je alle rode en blauwe draden toevoegen. Rood voor 3,3 volt en blauw voor aarde (GND).


Bedrading voor communicatie SPI.


Het ontvangerbord is klaar, maar voordat je de Kravox-Receiver-code uploadt naar de Arduino Nano, moet je eerst een interface voor de ontvanger maken.


Vervolgens laat de wizard zien hoe je een interface maakt met 4 potmeters en een LED voor de ontvanger. De interface is aangesloten, zoals in de eerste figuur, en zal worden aangesloten op de ontvangerprint, zoals te zien in de tweede figuur.


De procedure is als volgt, je moet eerst een bundel van 8 kabels nemen en 5 daarvan solderen op de middelste contacten van de potentiometers. Het is raadzaam om dezelfde kleuren te gebruiken als in het diagram om niet in de war te raken.

Vervolgens moet u de breadboard 2 rijen van 17 gaten en een 17-pins mannelijke connector afsnijden. Bevestig de kabels en connector op het bord. Besteed aandacht aan het bovenstaande diagram om ervoor te zorgen dat u de kabels op de juiste plaatsen aansluit.


Nu moet je blauwe draden (aarde) solderen op een van de contacten van alle potentiometers. Soldeer een blauwe LED met een stroombegrenzende weerstand van 150 Ohm.

Soldeer groene draden.

De voltooide interface zou er ongeveer zo uit moeten zien (foto 1) en kan zo op het ontvangerbord worden aangesloten (foto 2).

Zevende stap: code
Nu beschikbaar om te downloaden naar de Arduino Nano-ontvanger.
Om te controleren, moet u de code opnieuw aanpassen voordat u gaat downloaden. Standaard geeft de ontvanger zijn gegevens weer in een formaat dat kan worden geïnterpreteerd als pure gegevens, maar geeft het geen nuttige informatie weer op een seriële monitor. U kunt dit gedrag in uw code echter wijzigen door de regel #define WRITE_AS_BYTES en (vóór //) de regel // #define PRINT_VIA_SERIAL_MONITOR te wijzigen (toe te voegen // toe te voegen).


Stap acht: Case
Verderop uit de koperstrip maakt de master een sensor.


Om de zaak te verdedigen, gebruikt de meester lege dozen.

De meester trekt karton. Snijdt 24 koperstrips en bevestigt op een karton.



Verder snijdt de meester kartonnen 2 * 24 gaten breed en de 24-pins mannelijke connector op maat en soldeert er 24 draden naar. De draden in het midden moeten minimaal 10 cm lang zijn, naarmate je verder van het midden weggaat, neemt de lengte van de draden toe. Als u bijvoorbeeld een kopertape van 1 cm breed en de afstand tussen de elektroden 3 mm gebruikt, moet de lengte van de draad met 1,3 cm toenemen, zoals hieronder weergegeven: 10 / 11.3 / 12.6 / 13.9 / 15.2 ...

Nu kunt u de tweede uiteinden van de draden aan de koperen strips solderen en de strips afdichten met tape.



Lijmt de sensor in het lichaam en lijmt er vervolgens een ander lichaam aan (ter verificatie).


Bedekt de achterkant van de controllerkaart met karton.

Installeert LED's en powerbank. Je moet de powerbank zo plaatsen dat je de USB-kabel kunt aansluiten en loskoppelen, want zo zet de controller aan en uit. Sluit ook de aanraakinterface aan op de controllerkaart en stop deze in de doos.

Maakt een uitsparing voor de USB-A-USB-C-kabel op de kruising van de twee dozen, houdt deze uit en sluit deze aan op de Arduino Nano.

Nu is de controller klaar.

De meester repareert de zaak met behulp van briefpapiergom. Als er vervolgens problemen optreden met sensoren die aanraking detecteren wanneer ze niet aanwezig zijn, moet u isolatiemateriaal, zoals film of iets dergelijks, tussen de aanraakgevoelige behuizing, de printplaat en de draden plaatsen. Sluit de stroom aan zonder de sensoren aan te raken.


Stap negen: Een ontvangercase creëren
Nu moet je een behuizing maken voor de ontvanger. De wizard snijdt verschillende ronde gaten voor potentiometers en LED's.


Het lijmt het ontvangerbord, LED, schroefpotentiometers. Stelt de handvatten in.




Stap tien: Voltooien
Nu alle apparatuur is gemonteerd, is het tijd om muziek te spelen! Hiervoor heeft u software nodig waarop u apparatuur kunt aansluiten. Voor Kravox is dit Pure Data Vanilla-software, die u gratis kunt downloaden.

Nadat u Pure Data op de computer hebt geïnstalleerd, moet u het uitvoeren en het bestand Kravox.pd openen. Houd er rekening mee dat het op uw computer moet worden opgeslagen in dezelfde map als de map met drumsamples waarmee het wordt geleverd - anders kan Pure Data de bestanden niet vinden.
Zodra de Kravox.pd programma-interface wordt geopend, moet u het venster openen zoals op de foto en de vier zogenaamde externe apparaten installeren die in dit venster worden vermeld. Het installeren is eenvoudig, klik gewoon op "help" in het menu "Gegevens opschonen", selecteer "Zoek extra objecten op internet" (het kan iets anders zijn), zoek "comport", "zexy", "freeverb" en "arraysize". "één voor één en installeer de nieuwste versie. Nu moeten de vier objecten die zijn gemarkeerd als comport, repack, freeverb en arraysize een solide omtrek hebben, zoals in de onderstaande afbeelding. Mogelijk moet u hiervoor Pure Data opnieuw opstarten.

Na installatie van externe apparaten kunt u de ontvanger via usb aansluiten. Als je de code in Deel 4 hebt gewijzigd om de ontvanger met de Arduino Serial Monitor te gebruiken, moet je deze wijziging eerst ongedaan maken en de broncode in de Arduino Nano-ontvanger laden voordat je de Arduino Serial Monitor aansluit en sluit.

Kijk nu eens naar het Pure Data-venster. Als u een snel bijgewerkte gegevensstroom ziet, is dit geweldig, maar hoogstwaarschijnlijk wordt er in plaats daarvan een rood bericht weergegeven, zoals het bericht in de eerste afbeelding, dat elke twee seconden wordt bijgewerkt.

De rode tekst mag dan iets afwijken, maar toch betekent het dat Pure Data nog geen verbinding heeft kunnen maken met je receiver. Dit komt omdat het programma moet specificeren welke USB-poort moet worden aangesloten. USB-poorten kunnen op verschillende apparaten verschillend worden gelabeld; op de 2014 MacBook Pro herkent Pure Data zowel USB-poorten als seriële poort 3, ongeacht op welke ontvanger je aansluit. Vervolgens gebruikte de wizard Kravox met de Lenovo Yoga Pad met slechts één werkende USB-poort, die was aangewezen als seriële poort 6. In Windows zijn de poorten aangeduid als 8 en 9. De wizard adviseert om te proberen te achterhalen welk nummer de USB-poort op uw apparaat werkt . Hij creëerde een dialoog als onderdeel van de Kravox.pd-interface (tweede foto), waar u eenvoudig op de cijfers kunt klikken totdat het apparaat werkt. U kunt ook de knoppen "Beschikbare poorten weergeven" en de knoppen "Toon aangesloten USB-apparaten" proberen.
Kravox ruimtelijke synthesizer op Arduino


Vervolgens moet u op "Opslaan" klikken, zodat Pure Data de volgende keer automatisch verbinding met deze poort zal proberen te maken.
Als de controllercode is bewerkt, moet u de code opnieuw laden.

Rest nog om de controllerkaart op de voeding aan te sluiten. Wanneer u dit doet, moet de behuizing van de aanraakinterface rond het bord worden gesloten en mag het aanraakgedeelte van de behuizing uw handen of iets anders niet raken.

Alles is klaar, aanvullende informatie is te zien op de video.


5.5
5.5
5.5

Voeg een opmerking toe

    • lachglimlachtxaxaokweet het nietyahoonea
      baaskrabbendwaasjaja-jaagressiefgeheim
      sorrydansdance2dance3pardonhulpdrankjes
      stopvriendengoedgoedfluitjebezwijmdtong
      rookklappencrayverklarenbeledigenddon-t_mentiondownloaden
      hittebooslach1mdavergaderingmoskingnegatief
      not_ipopcornstraffenlezenschrikschriktzoeken
      bespottendankjewelditto_clueUmnikacuutmee eens
      slechtbeeeblack_eyeblum3: oopscheppenverveling
      gecensureerdbeleefdheidgeheim2bedreigenoverwinningyusun_bespectacled
      shokrespektlolvoorgekomenwelkomkrutoyya_za
      ya_dobryihelperne_huliganne_othodifludverbodsluiten

We raden je aan om te lezen:

Geef het voor de smartphone ...