Sisällysluettelo:

Laserharpun syntetisaattori Zybo Boardissa: 10 vaihetta (kuvilla)
Laserharpun syntetisaattori Zybo Boardissa: 10 vaihetta (kuvilla)

Video: Laserharpun syntetisaattori Zybo Boardissa: 10 vaihetta (kuvilla)

Video: Laserharpun syntetisaattori Zybo Boardissa: 10 vaihetta (kuvilla)
Video: Real Life of a Motorcycle Traveling Youtuber / Motovlogger! Marc Travels Interview (subtitles) 2024, Marraskuu
Anonim
Laserharpun syntetisaattori Zybo Boardissa
Laserharpun syntetisaattori Zybo Boardissa

Tässä opetusohjelmassa luomme täysin toimivan laserharpin käyttäen IR -antureita, joissa on sarjaliitäntä, jonka avulla käyttäjä voi muuttaa instrumentin viritystä ja sävyä. Tämä harppu on 2000 -luvun remake ikivanhasta soittimesta. Järjestelmä luotiin käyttämällä Xilinx Zybo -kehityskorttia yhdessä Vivado Design Suitesin kanssa. Mitä tarvitset projektin loppuun saattamiseen:

  • 12 IR -anturia ja lähetintä (voidaan käyttää enemmän tai vähemmän merkkijonojen määrästä riippuen)
  • Zybo Zynq-7000 -kehityskortti
  • Ilmainen RTOS
  • Vivado Design -sviitti
  • Johto (anturien liittämiseen korttiin)
  • 3 kpl PVC -putkea ((2) 18 tuumaa ja (1) 8 tuumaa)
  • 2 PVC -kyynärpäätä

Vaihe 1: Hanki Digilentin Zybo DMA -äänidemo

Tämän projektin FPGA -puoli perustuu suurelta osin täältä löytyvään demoprojektiin. Se käyttää suoraa muistin käyttöoikeutta lähettääkseen tietoja suoraan muistista, jonka prosessori voi kirjoittaa AXI Streamin kautta I2S -äänilohkoon. Seuraavat vaiheet auttavat sinua saamaan DMA -äänidemoprojektin käyntiin:

  1. Zybo -levyn taulutiedoston uusi versio saattaa olla tarpeen. Noudata näitä ohjeita saadaksesi uudet levytiedostot Vivadolle.
  2. Noudata tämän sivun ohjeiden vaiheita 1 ja 2 saadaksesi demoprojekti auki Vivadossa. Käytä Vivado -menetelmää, älä SDK -laitteiston kanavanvaihtoa.
  3. Saatat saada viestin, jossa sanotaan, että jotkin ip -lohkosi on päivitettävä. Jos näin on, valitse "Näytä IP -tila" ja valitse sitten IP -tila -välilehdestä kaikki vanhentuneet IP -osoitteet ja napsauta "Päivitä valitut". Kun se on valmis ja näyttöön tulee ikkuna, jossa kysytään, haluatko luoda tuotoksen, mene eteenpäin ja napsauta "Luo". Jos saat kriittisen varoitusviestin, jätä se huomiotta.
  4. Siirry suunnittelusta Vivadon Lähteet -välilehteen nähdäksesi lähdetiedostot. Napsauta hiiren kakkospainikkeella lohkon mallia "design_1" ja valitse "Luo HDL-kääre". Valitse pyydettäessä "kopioi luoma kääre salliaksesi käyttäjän muokkaukset". Projektille luodaan kääritiedosto.
  5. Nyt kun ne kriittiset vaiheet, jotka toisella opetusohjelmalla on jätetty pois, on suoritettu, voit palata aiemmin linkitettyyn opetusohjelmaan ja jatkaa vaiheesta 4 loppuun ja varmistaa, että esittelyprojekti toimii oikein. Jos sinulla ei ole tapaa syöttää ääntä sen nauhoittamista varten, nauhoita vain kuulokkeilla ja kuuntele 5-10 sekunnin sumea ääni, kun painat toistopainiketta. Niin kauan kuin jotain tulee kuulokeliitännästä, kun painat toistopainiketta, se todennäköisesti toimii oikein.

Vaihe 2: Tee joitain muutoksia Vivadossa

Tee joitain muutoksia Vivadossa
Tee joitain muutoksia Vivadossa

Joten nyt sinulla on Digilentin DMA -äänidemo, mutta se ei ole lopullinen tavoite. Joten meidän on palattava Vivadoon ja tehtävä joitain muutoksia, jotta anturit voidaan kytkeä PMOD -otsikoihin ja voimme käyttää niiden arvoa ohjelmistopuolella.

  1. Avaa lohkokaavio Vivadossa
  2. Luo GPIO-lohko napsauttamalla hiiren kakkospainikkeella lohkokaavion tyhjää tilaa ja valitsemalla valikosta "Lisää IP". Etsi ja valitse "AXI GPIO".
  3. Kaksoisnapsauta uutta IP-lohkoa ja siirry IP-muokkausikkunassa uudelleen IP-määritys-välilehteen. Valitse kaikki tulot ja aseta leveydeksi kaksitoista, koska harpullamme on 12 "merkkijonoa" ja siksi tarvitsemme 12 anturia. Jos haluat käyttää vähemmän tai enemmän antureita, säädä tämä luku oikein. Aseta myös käyttöön keskeytys.
  4. Napsauta hiiren kakkospainikkeella uutta GPIO IP -lohkoa ja valitse "suorita yhteysautomaatio". Tarkista AXI -ruutu ja paina OK. Tämän pitäisi yhdistää AXI -liitäntä automaattisesti, mutta lohkon lähdöt jätetään kytkemättä.
  5. Jotta ylimääräiselle keskeytykselle olisi tilaa, kaksoisnapsauta IP -lohkoa xlconcat_0 ja muuta porttien lukumäärä 4: stä 5. Sitten voit liittää ip2intc_irpt -nastan uudesta GPIO -lohkosta xlconcat -lohkon uuteen käyttämättömään porttiin.
  6. Napsauta hiiren kakkospainikkeella uuden GPIO -IP -lohkon "GPIO" -lähtöä ja valitse "tee ulkoinen". Etsi minne viiva menee ja napsauta pientä sivuttaista viisikulmaa, ja vasemmalla pitäisi avautua ikkuna, jossa voit muuttaa nimen. Vaihda nimeksi "ANTURIT". On tärkeää käyttää samaa nimeä, jos haluat tarjoamamme rajoitustiedoston toimivan, muuten sinun on muutettava nimi rajoitustiedostossa.
  7. Palaa lähteiden välilehdelle, etsi rajoitustiedosto ja korvaa se tarjoamallamme tiedostolla. Voit joko korvata tiedoston tai kopioida vain rajoitustiedostomme sisällön ja liittää sen vanhan sisällön päälle. Yksi rajoitustiedostomme tärkeistä asioista on ottaa käyttöön vetovastus PMOD -otsikoissa. Tämä on tarpeen tietyille käyttämillemme antureille, mutta kaikki anturit eivät ole samoja. Jos anturit vaativat ulosvedettäviä vastuksia, voit muuttaa jokaisen "set_property PULLUP true" -ilmentymän asetukseksi "set_property PULLDOWN true". Jos ne tarvitsevat eri vastusarvon kuin piirilevylle asetetut arvot, voit poistaa nämä rivit ja käyttää ulkoisia vastuksia. Pin -nimet ovat pakotiedoston kommentissa ja ne vastaavat Zybo Schematicsin ensimmäisen kaavion tarroja sivu, joka löytyy täältä. Jos haluat käyttää erilaisia pmod -nastoja, sovita rajoitustiedoston nimet kaavion tarroihin. Käytämme PMOD -otsikkoa JE ja JD ja käytämme kuutta datanappia kummassakin jättämättä pois nastat 1 ja 7. Nämä tiedot ovat tärkeitä antureita kytkettäessä. Kuten kaaviossa esitetään, PMODS: n nastat 6 ja 12 ovat VCC ja nastat 5 ja 11 on maadoitettu.
  8. Luo HDL -kääre uudelleen kuten aiemmin ja kopioi ja korvaa vanha. Kun olet valmis, luo bittivirta ja vie laitteisto kuten ennenkin ja käynnistä SDK uudelleen. Jos sinulta kysytään, haluatko korvata vanhan laitteistotiedoston, vastaus on kyllä. On luultavasti parasta sulkea SDK, kun viet laitteistoa, jotta se vaihdetaan oikein.
  9. Käynnistä SDK.

Vaihe 3: Hanki FreeRTOS käynnissä

Seuraava askel on saada FreeRTOS toimimaan Zybo -aluksella.

  1. Jos sinulla ei vielä ole kopiota, lataa FreeRTOS täältä ja purkaa tiedostot.
  2. Tuo FreeRTOS Zynq -esittely, joka sijaitsee osoitteessa FreeRTOSv9.0.0 / FreeRTOS / Demo / CORTEX_A9_Zynq_ZC702 / RTOSDemo. Tuontiprosessi on suunnilleen sama kuin toisessa demoprojektissa, mutta koska FreeRTOS Zynq -esittely perustuu muihin FreeRTOS -kansion tiedostoihin, sinun ei pitäisi kopioida tiedostoja työtilaasi. Sen sijaan sinun pitäisi sijoittaa koko FreeRTOS -kansio projektikansioosi.
  3. Luo uusi hallituksen tukipaketti siirtymällä kohtaan "file" -> "new" -> "board support package". Varmista, että erillinen on valittuna, ja napsauta Valmis. Hetken kuluttua ikkuna avautuu, valitse lwip141 -valintaruutu (tämä pysäyttää yhden FreeRTOS -esitteistä epäonnistumasta kääntää) ja paina OK. Kun olet valmis, napsauta RTOSdemo -projektia hiiren kakkospainikkeella ja siirry "ominaisuudet" -kohtaan, siirry "projektiviitteet" -välilehdelle ja valitse luomasi uuden bsp -kohdan vieressä oleva valintaruutu. Toivottavasti se tunnistetaan, mutta joskus Xilinx SDK voi olla outoa tällaisesta asiasta. Jos saat edelleen virheen tämän vaiheen jälkeen, että xparameters.h puuttuu tai jotain sellaista, yritä toistaa tämä vaihe ja ehkä poistua SDK: sta ja käynnistää se uudelleen.

Vaihe 4: Lisää laserharpukoodi

Nyt kun FreeRTOS on tuotu, voit tuoda laserharppu -projektin tiedostot FreeRTOS -esittelyyn

  1. Luo uusi kansio src -kansion alle FreeRTOS -esittelyssä ja kopioi ja liitä kaikki mukana toimitetut c -tiedostot paitsi main.c tähän kansioon.
  2. Korvaa RTOSDemo main.c mukana toimitetulla main.c.
  3. Jos kaikki on tehty oikein, sinun pitäisi pystyä suorittamaan laserharppukoodi tässä vaiheessa. Testaustarkoituksiin DMA -demoprojektissa käytettyä painikkeentuloa käytetään nyt toistamaan ääniä ilman antureita (mikä tahansa neljästä pääpainikkeesta toimii). Se soittaa merkkijonon joka kerta, kun painat sitä, ja selaa järjestelmän kaikki merkkijonot läpi useita painalluksia. Liitä jotkut kuulokkeet tai kaiuttimet Zybo -levyn kuulokeliitäntään ja varmista, että kuulet merkkijonojen äänet, kun painat painiketta.

Vaihe 5: Tietoja koodista

Monet teistä, jotka lukevat tätä opetusohjelmaa, oppivat todennäköisesti täällä asentamaan äänen tai käyttämään DMA: ta tekemään jotain erilaista tai luomaan toisen soittimen. Tästä syystä muutamissa seuraavissa osissa kuvataan, miten toimitettu koodi toimii yhdessä aiemmin kuvatun laitteiston kanssa, jotta saadaan toimiva äänilähtö DMA: n avulla. Jos ymmärrät miksi koodikappaleet ovat olemassa, sinun pitäisi pystyä säätämään niitä riippumatta siitä, mitä haluat luoda.

Keskeyttää

Ensin mainitsen, kuinka keskeytyksiä luodaan tässä projektissa. Teimme sen luomalla ensin keskeytysvektoritaulukkorakenteen, joka seuraa ID: tä, keskeytyksenkäsittelijää ja viittausta laitteeseen jokaisen keskeytyksen yhteydessä. Keskeytystunnukset tulevat osoitteesta xparameters.h. Keskeytyksenkäsittelijä on toiminto, jonka kirjoitimme DMA: lle ja GPIO: lle, ja I2C -keskeytys tulee Xlic I2C -ohjaimesta. Laitteen viite viittaa jokaisen laitteen esiintymiin, jotka alustamme muualla. Lähellä _init_audio -funktion loppua silmukka kulkee keskeytysvektoritaulukon jokaisen kohteen läpi ja kutsuu kaksi toimintoa, XScuGic_Connect () ja XScuGic_Enable (), muodostamaan yhteyden ja ottamaan keskeytykset käyttöön. Ne viittaavat xInterruptControlleriin, joka on oletuksena FreeRTOS main.c: ssä luotu keskeytysohjain. Joten periaatteessa liitämme kaikki keskeytyksemme tähän keskeytysohjaimeen, jonka FreeRTOS on jo luonut meille.

DMA

DMA -alustuskoodi alkaa osoitteesta lh_main.c. Ensin ilmoitetaan XAxiDma -rakenteen staattinen esiintymä. Sitten se määritetään _init_audio () -toiminnossa. Ensin kutsutaan demoprojektin konfigurointitoiminto, joka on dma.c. Se on melko hyvin dokumentoitu ja tulee suoraan demosta. Sitten keskeytys yhdistetään ja otetaan käyttöön. Tässä projektissa tarvitaan vain isäntä-orja-keskeytys, koska DMA lähettää kaikki tiedot I2S-ohjaimelle. Jos haluat tallentaa ääntä, tarvitset myös orja-isäntä-keskeytyksen. Isäntä-orja-keskeytys soitetaan, kun DMA lopettaa lähettämäsi tiedot, jotka kerroit lähetettäväksi. Tämä keskeytys on uskomattoman tärkeä projektillemme, koska joka kerta, kun DMA lopettaa yhden ääninäytteiden puskurin lähettämisen, sen on välittömästi aloitettava seuraavan puskurin lähettäminen, tai muuten lähetysten välillä esiintyy äänekäs viive. Toiminnon dma_mm2s_ISR () sisällä näet, miten käsittelemme keskeytyksen. Tärkeä osa on lähellä loppua, jossa käytämme xSemaphoreGiveFromISR () - ja portYIELD_FROM_ISR () -merkintöjä ilmoittamaan _audio_task (): lle, että se voi aloittaa seuraavan DMA -siirron. Lähetämme jatkuvasti äänidataa vaihtamalla kahden puskurin välillä. Kun yksi puskuri lähetetään I2C -lohkoon, toisen puskurin arvot lasketaan ja tallennetaan. Sitten kun keskeytys tulee DMA: sta, aktiivinen puskuri vaihtuu ja viimeksi kirjoitettu puskuri alkaa siirtyä samalla kun aiemmin siirretty puskuri alkaa korvata uusia tietoja. Funktion _audio_task tärkein osa on se, missä fnAudioPlay () kutsutaan. fnAudioPlay () ottaa DMA -ilmentymän, puskurin pituuden ja osoittimen puskuriin, josta tiedot siirretään. Muutama arvo lähetetään I2S -rekistereihin, jotta se tietää, että lisää näytteitä on tulossa. Sitten XAxiDma_SimpleTransfer () kutsutaan aloittamaan siirto.

I2S Audio

audio.c ja audio.h ovat I2S -alustus. I2S -alustuskoodi on melko yleinen koodikappale, joka kelluu useissa paikoissa, saatat löytää pieniä eroja muista lähteistä, mutta tämän pitäisi toimia. Se on melko hyvin dokumentoitu eikä sitä tarvitse paljon muuttaa harppuhankkeeseen. DMA -äänidemossa, josta se tuli, on toimintoja, joilla voidaan vaihtaa mikrofoni- tai linjatuloihin, joten voit käyttää niitä, jos tarvitset tätä toimintoa.

Äänen synteesi

Kuvatakseni kuinka äänisynteesi toimii, aion luetella kaikki kehityksessä käytetyt äänimallit, jotka johtivat lopulliseen menetelmään, koska se antaa sinulle käsityksen siitä, miksi se tehdään niin kuin se tehdään.

Menetelmä 1: Yksi siniarvojen jakso lasketaan kullekin merkkijonolle vastaavalla taajuudella kyseisen merkkijonon nuotille ja tallennetaan taulukkoon. Esimerkiksi taulukon pituus on näytteiden siniaallon jakso, joka on yhtä suuri kuin # näytettä / sykli. Jos näytteenottotaajuus on 48 kHz ja nuotin taajuus on 100 Hz, on 48 000 näytettä sekunnissa ja 100 sykliä sekunnissa, mikä johtaa 4800 näytteeseen sykliä kohden, ja taulukon pituus on 4800 näytettä ja sisältää yhden täydellisen arvon siniaaltojakso. Kun merkkijono toistetaan, ääninäytteen puskuri täytetään ottamalla arvo siniaaltojärjestelmästä ja asettamalla se äänipuskuriin näytteeksi ja lisäämällä sitten indeksiä siniaaltojärjestelmään niin, että käyttämällä edellistä esimerkkiämme kurssin aikana 4800 näytteestä yksi siniaaltojakso laitetaan äänipuskuriin. Ryhmäindeksissä käytetään modulo -operaatiota niin, että se on aina 0: n ja pituuden välissä, ja kun taulukkoindeksi ylittää tietyn kynnyksen (kuten ehkä 2 sekunnin näytteet), merkkijono sammutetaan. Jos haluat toistaa useita merkkijonoja samanaikaisesti, seuraa kunkin merkkijonon taulukkoindeksiä erikseen ja lisää kunkin merkkijonon siniaaltoarvo yhteen saadaksesi jokaisen näytteen.

Menetelmä 2: Musiikillisemman sävyn luomiseksi aloitamme edellisestä mallista ja lisäämme yliaaltoja kuhunkin perustaajuuteen. Harmoniset taajuudet ovat taajuuksia, jotka ovat perustaajuuden kokonaislukukertoja. Toisin kuin silloin, kun kaksi toisistaan riippumatonta taajuutta lasketaan yhteen, mikä johtaa kahden eri äänen toistamiseen samanaikaisesti, kun harmoniset lasketaan yhteen, se kuulostaa edelleen vain yhdeltä ääneltä, mutta eri äänellä. Tämän saavuttamiseksi joka kerta, kun lisäämme siniaallon arvon sijainnissa (array index % array length) ääninäytteeseen, lisäämme myös (2 * array index % array length) ja (3 * array index % array length) ja niin edelleen, vaikka kuinka monta harmonista halutaan. Nämä kerrotut indeksit kulkevat siniaallon taajuuksilla, jotka ovat alkuperäisen taajuuden kokonaislukukertoja. Sävyjen paremman hallinnan mahdollistamiseksi kunkin harmonisen arvot kerrotaan muuttujalla, joka edustaa kyseisen harmonisen määrää kokonaisäänessä. Esimerkiksi perus -siniaallolla voi olla kaikki sen arvot kerrottuna 6: lla, jotta se olisi enemmän tekijä kokonaisäänessä, kun taas viidennellä harmonisella voi olla kertoja 1, mikä tarkoittaa, että sen arvot vaikuttavat paljon vähemmän kokonaisääniin.

Menetelmä 3: Okei, niin nyt meillä on erittäin mukava sävy nuotteihin, mutta on edelleen melko ratkaiseva ongelma: ne soittavat kiinteällä äänenvoimakkuudella tietyn ajan. Kuulostaakseen oikealta instrumentilta soitetun merkkijonon äänenvoimakkuuden pitäisi heiketä tasaisesti ajan myötä. Tämän saavuttamiseksi taulukko täytetään eksponentiaalisesti hajoavan funktion arvoilla. Kun ääninäytteitä luodaan, jokaisesta merkkijonosta tuleva ääni lasketaan kuten edellisessä menetelmässä, mutta ennen kuin se lisätään ääninäytteeseen, se kerrotaan arvolla kyseisen merkkijonon matriisihakemistossa eksponentiaalisen hajoamisen funktiotaulukossa. Tämä saa äänen hajautumaan tasaisesti ajan myötä. Kun taulukkoindeksi saavuttaa hajoamismatriisin loppuun, merkkijono pysäytetään.

Menetelmä 4: Tämä viimeinen vaihe antaa merkkijonolle todella realistisen merkkijonon. Ennen ne kuulostivat miellyttäviltä, mutta syntetisoitiin selvästi. Jotta voidaan jäljitellä paremmin reaalimaailman harppujonoa, kullekin harmoniselle on määritetty erilainen hajoamisnopeus. Todellisissa merkkijonoissa, kun merkkijono soitetaan ensimmäisen kerran, korkeataajuisten yliaaltojen pitoisuus on korkea, mikä luo sellaista kynitysääntä, jota odottamme merkkijonolta. Nämä korkeataajuiset harmoniset ovat hyvin lyhyesti tärkein osa ääntä, jousen ääni kuuluu, mutta ne hajoavat hyvin nopeasti, kun hitaammat yliaallot ottavat vallan. Hajoamisryhmä luodaan kullekin äänisynteesissä käytetylle harmoniselle numerolle kullakin omalla hajoamisnopeudellaan. Nyt jokainen yliaalto voidaan kertoa itsenäisesti arvolla, joka vastaa sen hajoamismatriisia merkkijonon taulukkoindeksissä, ja lisätä ääneen.

Kaiken kaikkiaan äänisynteesi on intuitiivinen, mutta laskeminen raskasta. Koko merkkijonon tallentaminen muistiin kerralla vie liikaa muistia, mutta siniaallon ja jokaisen kehyksen välisen eksponentiaalisen funktion laskeminen kestää liian kauan, jotta pysyy ajan tasalla äänen toistosta. Koodissa käytetään useita temppuja laskennan nopeuttamiseksi. Kaikki matematiikka lukuun ottamatta sini- ja eksponentiaalisen hajoamispöydän alkuperäistä luomista suoritetaan kokonaislukumuodossa, mikä edellyttää 24 -bittisen äänilähdön käytettävissä olevan numeerisen tilan hajauttamista. Esimerkiksi sinitaulukon amplitudi on 150, joten se on sileä, mutta ei niin suuri, että monet yhdessä soitetut merkkijonot voivat lisätä yli 24 bitin. Samoin eksponentiaalisen taulukon arvot kerrotaan 80: llä ennen pyöristämistä kokonaisluvuiksi ja tallentamista. Harmoniset painot voivat ottaa erillisiä arvoja välillä 0 ja 10. Myös kaikki näytteet kaksinkertaistetaan ja siniaallot indeksoidaan kahdella, mikä puolittaa näytteenottotaajuuden. Tämä rajoittaa toistettavaa enimmäistaajuutta, mutta oli välttämätön, jotta nykyinen merkkijonojen ja harmonisten lukumäärä laskettaisiin riittävän nopeasti.

Tämän äänimallin luominen ja sen saaminen käyttöön vaati huomattavia ponnisteluja prosessorin puolella, ja olisi ollut uskomattoman vaikeaa saada se toimimaan fpga -puolella tyhjästä tämän projektin aikana (kuvittele, että sinun on luotava bittivirta uudelleen joka kerta kun pala verilogia muutettiin äänen testaamiseksi). Kuitenkin sen tekeminen fpga: lla voisi todennäköisesti olla parempi tapa tehdä se, mikä mahdollisesti poistaa ongelman siitä, että näytteitä ei voida laskea riittävän nopeasti ja mahdollistaa enemmän merkkijonoja, harmonisia ja jopa äänitehosteita tai muita tehtäviä prosessorin puolella.

Vaihe 6: Anturien kytkeminen

Anturien kytkentä
Anturien kytkentä

Jousien luomiseen käytimme IR -katkosädeanturia, joka tunnistaa, kun merkkijono toistetaan. Tilasimme anturit alla olevasta linkistä. Antureissa on virta-, maa- ja datajohto, kun taas lähettimissä on vain virta- ja maadoitusjohto. Käytimme PMOD -otsikoiden 3,3 V: n ja maadoitusliittimiä sekä lähettimien että antureiden virransyöttöön. Kaikkien antureiden ja lähettimien virransyöttö edellyttää kaikkien antureiden ja lähettimen kytkemistä rinnakkain. Anturien datajohtimien on mentävä omalle pmod -nastalleen.

Vaihe 7: Luuston rakentaminen

Luuranon rakentaminen
Luuranon rakentaminen

Harpun muodon luomiseksi kolmea kappaletta käytetään luurankoina antureiden ja lähettimien sijoittamiseen. Kohdista toinen kahdesta 18 tuuman PVC -putken kappaleesta anturit ja lähettimet vuorotellen 1,5 tuumaa toisistaan ja teippaa ne sitten putkeen. Toisessa 18 tuuman PVC -putkessa kohdista anturit ja päästöt vaihtelevassa järjestyksessä, mutta muista vaihtaa järjestys (ts. Jos ensimmäisessä putkessa oli ensin anturi, toisessa pitäisi olla emitteri ensin ja päinvastoin). On tarpeen juottaa pidempiä johtoja data-, virta- ja maadoitusjohtoihin varmistaakseen, että ne pääsevät levylle.

Vaihe 8: Puun ulkopinnan rakentaminen

Puun ulkopinnan rakentaminen
Puun ulkopinnan rakentaminen

Tämä vaihe on valinnainen, mutta erittäin suositeltava. Puinen ulkopuoli tekee harpusta hyvännäköisen ja suojaa myös antureita ja johtoja vaurioilta. Puurunko voidaan luoda pyhästä suorakulmaisesta renkaasta puusta. Suorakulmion sisäpuolella on oltava vähintään 1-1/2 tuuman aukko putken ja anturirungon sovittamiseksi. Kun runko on rakennettu, poraa kaksi reikää, joiden kautta anturin ja lähettimien johdot pääsevät ulos, jotta ne voidaan liittää levyyn.

*Huomautus: On suositeltavaa lisätä tukiasemia, jotta putken runko voidaan irrottaa ja asentaa, jos korjauksia tai pieniä säätöjä on tehtävä.

Vaihe 9: Laita kaikki osat yhteen

Laita kaikki palat yhteen
Laita kaikki palat yhteen

Kun kaikki edelliset vaiheet on suoritettu, on aika rakentaa harppu. Aseta putken runko ensin puisen ulkopinnan sisään. Kytke sitten antureiden ja lähettimien johdot oikeaan paikkaan levyllä. Avaa sitten SDK ja ohjelmoi levy napsauttamalla virheenkorjauspainiketta. Kun kortti on ohjelmoitu, kytke kuulokkeet tai kaiutin. Riippuen siitä, mikä anturi päätyy mihin pmod -porttiin, harppusi kielet ovat todennäköisesti epäkunnossa aluksi. Koska voi olla vaikeaa sanoa, mikä johto kulkee mihin anturiin, kun niin monta johtoa on mukana, sisällytimme tavan yhdistää merkkijononumerot keskeyttämään ohjelmiston bittikohdat. Etsi "staattinen int sensor_map [NUM_STRINGS]" ja säädä taulukon arvoja, kunnes merkkijonot toistuvat pienimmästä korkeimpaan.

Valikkoa voidaan käyttää avaamalla sarjapääte (esim. RealTerm) ja asettamalla siirtonopeudeksi 115200 ja näyttöön ANSI. Valikossa voi liikkua käyttämällä näppäimiä w ja s siirtyäksesi ylös ja alas ja näppäimiä a ja d muuttaaksesi arvoja.

Vaihe 10: ROCK OUT

Kun harppu on täysin toimiva. Hallitse harppu ja kuuntele oman musiikkisi makeaa ääntä!

Suositeltava: