Përmbajtje:

Sintetizues Laser Harp në bordin Zybo: 10 hapa (me fotografi)
Sintetizues Laser Harp në bordin Zybo: 10 hapa (me fotografi)

Video: Sintetizues Laser Harp në bordin Zybo: 10 hapa (me fotografi)

Video: Sintetizues Laser Harp në bordin Zybo: 10 hapa (me fotografi)
Video: Часть 05 - Аудиокнига Александра Дюма «Человек в железной маске» (гл. 23–29) 2024, Korrik
Anonim
Sintetizues Laser Harp në Zybo Board
Sintetizues Laser Harp në Zybo Board

Në këtë tutorial ne do të krijojmë një harpë lazer plotësisht funksionale duke përdorur sensorë IR me një ndërfaqe serike që do t'i lejojë përdoruesit të ndryshojë akordimin dhe tonin e instrumentit. Kjo harpë do të jetë xhirim i shekullit 21 i instrumentit të vjetër. Sistemi u krijua duke përdorur një bord zhvillimi Xilinx Zybo së bashku me Suites Design Vivado. Çfarë ju nevojitet për të përfunduar projektin:

  • 12 sensorë dhe emetues IR (pak a shumë mund të përdoren në varësi të numrit të telave)
  • Bordi i zhvillimit Zybo Zynq-7000
  • RTOS falas
  • Suite Dizajn Vivado
  • Tela (për lidhjen e sensorëve me tabelën)
  • 3 copë tub PVC ((2) 18 inç dhe (1) 8 inç)
  • 2 bërryla PVC

Hapi 1: Merrni Demo Zybo DMA të Digilent's

Ana FPGA e këtij projekti bazohet kryesisht në projektin demo që gjendet këtu. Përdor qasje të drejtpërdrejtë në kujtesë për të dërguar të dhëna direkt nga kujtesa që procesori mund t'i shkruajë mbi AXI Stream në një bllok audio I2S. Hapat e mëposhtëm do t'ju ndihmojnë të filloni dhe përdorni projektin demo audio DMA:

  1. Mund të jetë i nevojshëm një version i ri i skedarit të bordit për tabelën Zybo. Ndiqni këto udhëzime për të marrë skedarë të rinj të bordit për Vivado.
  2. Ndiqni hapat 1 dhe 2 në udhëzimet në këtë faqe për të hapur projektin demo në Vivado. Përdorni metodën Vivado, jo transferimin e harduerit SDK.
  3. Ju mund të merrni një mesazh që thotë se disa nga blloqet tuaja IP duhet të përditësohen. Nëse është kështu, zgjidhni "Trego statusin e IP" dhe pastaj në skedën e statusit IP zgjidhni të gjitha IP të vjetruara dhe klikoni "Upgrade Selected". Kur të përfundojë dhe të shfaqet një dritare duke pyetur nëse doni të gjeneroni produktin dalës, vazhdoni dhe klikoni "Generate". Nëse merrni një mesazh paralajmërues kritik, injorojeni atë.
  4. Kaloni nga skedari i dizajnit në burimet në Vivado për të parë skedarët burim. Klikoni me të djathtën mbi dizajnin e bllokut "design_1" dhe zgjidhni "Krijo mbështjellës HDL". Kur ju kërkohet zgjidhni "kopjoni mbështjellësin e krijuar për të lejuar redaktimet e përdoruesit". Do të krijohet një skedar mbështjellës për projektin.
  5. Tani që ato hapa kritikë që u lanë disi jashtë në mësimin tjetër janë përfunduar, mund të ktheheni në tutorialin e lidhur më parë dhe të vazhdoni nga hapi 4 deri në fund dhe të siguroheni që projekti demo të funksionojë si duhet. Nëse nuk keni një mënyrë për të futur audio që ajo të regjistrojë, atëherë regjistroni vetëm me kufjet tuaja dhe dëgjoni një tingull fuzzy 5-10 sekonda kur shtypni butonin e riprodhimit. Për sa kohë që diçka del nga priza e kufjeve kur shtypni butonin e riprodhimit, ndoshta po funksionon si duhet.

Hapi 2: Bëni disa Ndryshime në Vivado

Bëni disa ndryshime në Vivado
Bëni disa ndryshime në Vivado

Pra, tani ju keni demo audio DMA të Digilent duke punuar, por ky nuk është aspak qëllimi përfundimtar këtu. Pra, ne duhet të kthehemi në Vivado dhe të bëjmë disa ndryshime në mënyrë që sensorët tanë të lidhen me titujt PMOD dhe ne mund të përdorim vlerën e tyre në anën e softuerit.

  1. Hapni diagramin e bllokut në Vivado
  2. Krijoni një bllok GPIO duke klikuar me të djathtën në hapësirën boshe në bllok diagram dhe duke zgjedhur "Shto IP" nga menyja. Gjeni dhe zgjidhni "AXI GPIO".
  3. Klikoni dy herë bllokun e ri IP dhe në dritaren e ri-personalizimit të IP shkoni te skeda e konfigurimit IP. Zgjidhni të gjitha hyrjet dhe vendosni gjerësinë në dymbëdhjetë, pasi ne do të kemi 12 "tela" në harpën tonë dhe për këtë arsye kemi nevojë për 12 sensorë. Nëse dëshironi të përdorni më pak ose më shumë sensorë, atëherë rregulloni këtë numër në mënyrë të përshtatshme. Gjithashtu vendosni ndërprerjen e aktivizimit.
  4. Klikoni me të djathtën mbi bllokun e ri IP të GPIO dhe zgjidhni "drejtoni automatizimin e lidhjes". Kontrolloni kutinë AXI dhe shtypni në rregull. Kjo duhet të lidhë ndërfaqen AXI automatikisht, por të lërë daljet e bllokut të palidhura.
  5. Në mënyrë që të krijoni vend për ndërprerjen shtesë, klikoni dy herë mbi bllokun xlconcat_0 IP dhe ndryshoni numrin e porteve nga 4 në 5. Pastaj mund të lidhni pinin ip2intc_irpt nga blloku i ri GPIO në portin e ri të papërdorur në bllokun xlconcat.
  6. Klikoni me të djathtën në daljen "GPIO" të bllokut të ri IP GPIO dhe zgjidhni "make external". Gjeni se ku shkon vija dhe klikoni në pesëkëndëshin e vogël anash dhe në të majtë duhet të hapet një dritare ku mund të ndryshoni emrin. Ndryshoni emrin në "SENSORS". Isshtë e rëndësishme të përdorni të njëjtin emër nëse dëshironi që skedari i kufizimeve që ne ofrojmë të funksionojë, përndryshe do t'ju duhet të ndryshoni emrin në skedarin e kufizimeve.
  7. Kthehuni në skedën burimet, gjeni skedarin e kufizimeve dhe zëvendësojeni atë me atë që ne ofrojmë. Ju mund të zgjidhni ose të zëvendësoni skedarin ose thjesht të kopjoni përmbajtjen e skedarit tonë të kufizimeve dhe ta ngjisni mbi përmbajtjen e atij të vjetër. Një nga gjërat e rëndësishme që bën skedari ynë i kufizimeve është të mundësojë rezistorët tërheqës në titujt PMOD. Kjo është e nevojshme për sensorët e veçantë që kemi përdorur, megjithatë jo të gjithë sensorët janë të njëjtë. Nëse sensorët tuaj kërkojnë rezistorë tërheqës, mund të ndryshoni çdo shembull të "set_property PULLUP true" me "set_property PULLDOWN true". Nëse ato kërkojnë një vlerë të rezistencës të ndryshme nga ajo në tabelë, atëherë mund t'i hiqni këto rreshta dhe të përdorni rezistorë të jashtëm. Emrat e pin janë në komentet në skedarin e kufizimeve dhe ato korrespondojnë me etiketat në diagramin e parë në Zybo Schematics faqe e cila mund të gjendet këtu. Nëse dëshironi të përdorni kunja të ndryshme pmod thjesht përputheni emrat në skedarin e kufizimit me etiketat në skemë. Ne përdorim kokën PMOD JE dhe JD, dhe përdorim gjashtë kunja të dhënash në secilën, duke hequr kunjat 1 dhe 7. Ky informacion është i rëndësishëm kur lidhni sensorët tuaj. Siç tregohet në skemë, kunjat 6 dhe 12 në PMODS janë VCC dhe kunjat 5 dhe 11 janë të bluar.
  8. Rigjeneroni mbështjellësin HDL si më parë, dhe kopjoni dhe rishkruani atë të vjetër. Kur të bëhet kjo, gjeneroni bitstream dhe eksportoni pajisje si më parë dhe rinisni SDK -në. Nëse pyeteni nëse doni të zëvendësoni skedarin e vjetër të harduerit, përgjigja është po. Probablyshtë ndoshta më mirë që SDK të mbyllet kur eksportoni pajisje në mënyrë që të zëvendësohet siç duhet.
  9. Nisni SDK -në.

Hapi 3: Shkarkoni FreeRTOS

Hapi tjetër është që FreeRTOS të funksionojë në tabelën Zybo.

  1. Nëse nuk keni një kopje, shkarkoni FreeRTOS këtu dhe nxirrni skedarët.
  2. Importoni demon e FreeRTOS Zynq të vendosur në FreeRTOSv9.0.0 / FreeRTOS / Demo / CORTEX_A9_Zynq_ZC702 / RTOSDemo. Procesi i importit është pothuajse i njëjtë me atë për projektin tjetër demo, megjithatë sepse demoja e FreeRTOS Zynq mbështetet në skedarë të tjerë në dosjen FreeRTOS, nuk duhet t'i kopjoni skedarët në hapësirën tuaj të punës. Në vend të kësaj, duhet të vendosni të gjithë dosjen FreeRTOS brenda dosjes së projektit tuaj.
  3. Krijoni një paketë të re mbështetëse të bordit duke shkuar te "skedari" -> "i ri" -> "paketa e mbështetjes së bordit". Sigurohuni që të jetë zgjedhur i pavarur dhe klikoni në fund. Pas një çasti do të shfaqet një dritare, kontrolloni kutinë pranë lwip141 (kjo ndalon që një nga demonstrimet e FreeRTOS të mos përpilohet) dhe shtypni OK. Pasi të përfundojë, klikoni me të djathtën mbi projektin RTOSdemo dhe shkoni te "pronat", shkoni te skedari "referencat e projektit" dhe kontrolloni kutinë pranë bsp -it të ri që keni krijuar. Shpresoj se do të njihet, por ndonjëherë SDK Xilinx mund të jetë e çuditshme për këtë lloj gjëje. Nëse akoma merrni një gabim pas këtij hapi që xparameters.h mungon ose diçka e tillë atëherë provoni ta përsërisni këtë hap dhe ndoshta dilni dhe rindizni SDK -në.

Hapi 4: Shtoni Kodin e Harpës me Laser

Tani që FreeRTOS është importuar, ju mund t'i sillni skedarët nga projekti i harpës me lazer në demonstrimin e FreeRTOS

  1. Krijoni një dosje të re nën dosjen src në demonstrimin e FreeRTOS dhe kopjoni dhe ngjisni të gjithë skedarët c të dhënë, përveç main.c në këtë dosje.
  2. Zëvendësoni RTOSDemo main.c me main.c të dhënë.
  3. Nëse gjithçka është bërë në mënyrë korrekte, duhet të jeni në gjendje të ekzekutoni kodin e harpës lazer në këtë pikë. Për qëllime testimi, hyrja e butonave që u përdor në projektin demo DMA tani përdoret për të luajtur tinguj pa sensorë të bashkangjitur (ndonjë nga katër butonat kryesorë do të funksionojë). Do të luajë një varg çdo herë që e shtypni atë dhe kalon nëpër të gjitha telat në sistem mbi shtypje të shumta. Futni disa kufje ose altoparlantë në prizën e kufjeve në tabelën Zybo dhe sigurohuni që të dëgjoni tingujt e telave që vijnë kur shtypni një buton.

Hapi 5: Rreth Kodit

Shumë prej jush që lexoni këtë tutorial ka të ngjarë të mësoni se si të vendosni audio ose të përdorni DMA për të bërë diçka të ndryshme, ose për të krijuar një instrument muzikor të ndryshëm. Për këtë arsye, pjesët e ardhshme po i kushtohen përshkrimit se si funksionon kodi i ofruar në lidhje me pajisjen e përshkruar më parë për të marrë një dalje audio pune duke përdorur DMA. Nëse e kuptoni pse pjesët e kodit janë atje, atëherë duhet të jeni në gjendje t'i rregulloni ato për çfarëdo që dëshironi të krijoni.

Ndërpret

Së pari do të përmend se si krijohen ndërprerjet në këtë projekt. Mënyra se si e bëmë atë ishte duke krijuar fillimisht një strukturë të tabelës vektoriale të ndërprerë e cila mban gjurmët e ID -së, mbajtësin e ndërprerjeve dhe një referencë për pajisjen për çdo ndërprerje. ID -të e ndërprera vijnë nga xparametra.h. Trajtuesi i ndërprerjeve është një funksion që kemi shkruar për DMA dhe GPIO, dhe ndërprerja I2C vjen nga drejtuesi Xlic I2C. Referenca e pajisjes tregon për rastet e secilës pajisje të cilat i inicializojmë diku tjetër. Afër fundit të funksionit _init_audio një lak kalon nëpër secilin artikull në tabelën e vektorit të ndërprerë dhe thërret dy funksione, XScuGic_Connect () dhe XScuGic_Enable () për të lidhur dhe mundësuar ndërprerjet. Ata i referohen xInterruptController, i cili është një kontrollues ndërprerjeje i krijuar në FreeRTOS main.c si parazgjedhje. Pra, në thelb ne i bashkojmë secilën ndërprerje tonë këtij kontrolluesi ndërprerjeje i cili tashmë ishte krijuar për ne nga FreeRTOS.

DMA

Kodi i inicimit të DMA fillon në lh_main.c. Së pari deklarohet një shembull statik i një strukture XAxiDma. Pastaj në funksionin _init_audio () konfigurohet. Së pari thirret funksioni i konfigurimit nga projekti demo, i cili është në dma.c. Prettyshtë mjaft mirë e dokumentuar dhe vjen drejtpërdrejt nga demonstrimi. Pastaj ndërprerja lidhet dhe aktivizohet. Për këtë projekt kërkohet vetëm ndërprerja master-to-slave, sepse të gjitha të dhënat po dërgohen nga DMA tek kontrolluesi I2S. Nëse dëshironi të regjistroni audio, do t'ju duhet gjithashtu ndërprerja skllav-zotër. Ndërprerja master-to-slave thirret kur DMA përfundon dërgimin e të gjitha të dhënave që i keni thënë të dërgojë. Kjo ndërprerje është tepër e rëndësishme për projektin tonë sepse sa herë që DMA përfundon dërgimin e një tamponi të mostrave audio ajo duhet të fillojë menjëherë dërgimin e tamponit tjetër, përndryshe një vonesë e dëgjueshme do të ndodhte midis dërgimeve. Brenda funksionit dma_mm2s_ISR () mund të shihni se si e trajtojmë ndërprerjen. Pjesa e rëndësishme është afër fundit ku ne përdorim xSemaphoreGiveFromISR () dhe portYIELD_FROM_ISR () për të njoftuar _audio_task () se mund të fillojë transferimin e ardhshëm DMA. Mënyra se si ne dërgojmë të dhëna konstante audio është duke alternuar midis dy tamponëve. Kur një tampon transmetohet në bllokun I2C, tamponi tjetër llogarit dhe ruan vlerat e tij. Pastaj kur ndërprerja vjen nga DMA, tamponi aktiv kalon dhe tamponi i shkruar kohët e fundit fillon të transferohet ndërsa tamponi i transferuar më parë fillon të mbishkruhet me të dhëna të reja. Pjesa kryesore e funksionit _audio_task është vendi ku thirret fnAudioPlay (). fnAudioPlay () merr në shembullin DMA, gjatësinë e tamponit dhe një tregues në tampon nga i cili do të transferohen të dhënat. Disa vlera dërgohen në regjistrat I2S për ta bërë të ditur se po vijnë më shumë mostra. Pastaj XAxiDma_SimpleTransfer () thirret për të filluar transferimin.

Audio I2S

audio.c dhe audio.h janë aty ku bëhet inicimi I2S. Kodi i inicimit I2S është një pjesë mjaft e zakonshme e kodit që lundron në një numër vendesh, mund të gjeni ndryshime të vogla nga burime të tjera, por ky duhet të funksionojë. Prettyshtë mjaft mirë e dokumentuar dhe nuk ka nevojë të ndryshohet shumë për projektin e harpës. Demoja audio DMA nga e cila ka funksione për kalimin në hyrjet e mikrofonit ose linjës, kështu që ju mund t'i përdorni ato nëse keni nevojë për atë funksionalitet.

Sinteza e zërit

Për të përshkruar se si funksionon sinteza e tingullit, unë do të rendis secilin nga modelet e zërit të përdorur në zhvillim që çoi në metodën përfundimtare, pasi do t'ju japë një kuptim pse bëhet ashtu siç bëhet.

Metoda 1: Një periudhë e vlerave të sinusit llogaritet për secilin varg në frekuencën përkatëse për notën muzikore të atij vargu dhe ruhet në një grup. Për shembull, gjatësia e grupit do të jetë periudha e valës sinusale në mostra, e cila është e barabartë me # mostra / cikël. Nëse shkalla e marrjes së mostrave është 48kHz dhe frekuenca e shënimit është 100Hz, atëherë ka 48, 000 mostra/sekondë dhe 100 cikle/sekondë që çojnë në 4800 mostra për cikël, dhe gjatësia e grupit do të jetë 4800 mostra dhe do të përmbajë vlerat e një të plotë periudha e valës sinus. Kur luhet vargu, tamponi i mostrës audio mbushet duke marrë një vlerë nga grupi i valës sinusale dhe duke e futur atë në tampon audio si një mostër, pastaj duke rritur indeksin në grupin e valës sinusale në mënyrë që të përdorim shembullin tonë të mëparshëm gjatë kursit nga 4800 mostra, një cikël valor sinus vendoset në tampon audio. Një operacion modul përdoret në indeksin e grupit në mënyrë që ai gjithmonë të bjerë midis 0 dhe gjatësisë, dhe kur indeksi i grupit kalon mbi një prag të caktuar (si mostrat me vlerë ndoshta 2 sekonda), vargu fiket. Për të luajtur vargje të shumta në të njëjtën kohë, mbani shënim indeksin e grupit të secilës vargje veç e veç dhe shtoni vlerën nga vala e sinusit të secilës tela së bashku për të marrë secilin mostër.

Metoda 2: Për të krijuar një ton më muzikor, fillojmë me modelin e mëparshëm dhe shtojmë harmonika në secilën frekuencë themelore. Frekuencat harmonike janë frekuenca të cilat janë shumëfish të plotë të frekuencës themelore. Ndryshe nga kur dy frekuenca të palidhura përmblidhen së bashku, gjë që rezulton në dy tinguj të ndryshëm që luhen njëkohësisht, kur harmonikat shtohen së bashku ajo vazhdon të tingëllojë si vetëm një tingull, por me një ton të ndryshëm. Për ta arritur këtë, çdo herë që i shtojmë vlerën e valës sinusale në vendndodhje (indeksi i grupit % gjatësia e grupit) në mostrën audio, shtojmë gjithashtu (indeksi i grupit 2 * % gjatësia e grupit), dhe (indeksi i grupit 3 * % gjatësia e grupit), dhe kështu me radhë për sado që dëshirohen shumë harmonika. Këta tregues të shumëzuar do të përshkojnë valën e sinusit në frekuenca të cilat janë shumëfishë të plotë të frekuencës origjinale. Për të lejuar më shumë kontroll të tonit, vlerat e secilës harmonike shumëzohen me një ndryshore e cila përfaqëson sasinë e asaj harmonike në tingullin e përgjithshëm. Për shembull, vala sinus themelore mund të ketë vlerat e saj të shumëzuara me 6 për ta bërë atë një faktor në tingullin e përgjithshëm, ndërsa harmonika e 5 -të mund të ketë një shumëzues 1, që do të thotë se vlerat e saj kontribuojnë shumë më pak në tingullin e përgjithshëm.

Metoda 3: Mirë, kështu që tani kemi një ton shumë të mirë në shënime, por ka ende një problem mjaft vendimtar: ata luajnë me një vëllim fiks për një kohëzgjatje të caktuar. Për të tingëlluar fare si një instrument i vërtetë, vëllimi i një korde që luhet duhet të kalbet pa probleme me kalimin e kohës. Për ta arritur këtë, një grup është i mbushur me vlerat e një funksioni në rënie eksponenciale. Tani kur po krijohen mostrat audio, tingulli që vjen nga secili varg llogaritet si në metodën e mëparshme, por para se të shtohet në mostrën audio ai shumëzohet me vlerën në indeksin e grupit të atyre vargjeve në grupin e funksionit të prishjes eksponenciale. Kjo e bën zërin të shpërndahet pa probleme me kalimin e kohës. Kur indeksi i grupit arrin në fund të grupit të prishjes, vargu ndalet.

Metoda 4: Ky hap i fundit është ajo që vërtet u jep tingujve të telave tingullin e tyre realist të vargut. Më parë ato tingëllonin të këndshme, por sintetizoheshin qartë. Për t'u përpjekur për të imituar më mirë një varg të harpës në botën reale, secilës harmonikë i caktohet një shkallë e ndryshme e kalbjes. Në telat e vërteta, kur tela goditet për herë të parë ka një përmbajtje të lartë harmonikësh me frekuencë të lartë që krijon llojin e tingullit të shkuljes që presim nga një tel. Këto harmonika me frekuencë të lartë janë shumë shkurt pjesa kryesore e tingullit, tingulli i telave që goditet, por ato prishen shumë shpejt ndërsa harmonikat më të ngadalta marrin përsipër. Një grup prishjeje krijohet për secilin numër harmonik të përdorur në sintezën e zërit, secila me shkallën e vet të prishjes. Tani secila harmonike mund të shumëzohet në mënyrë të pavarur me vlerën e prirjes së prishjes përkatëse në indeksin e grupit të vargut dhe t'i shtohet tingullit.

Në përgjithësi sinteza e tingullit është intuitive, por llogaritja e rëndë. Ruajtja e të gjithë tingullit të vargut në kujtesë menjëherë do të merrte shumë memorie, por llogaritja e valës sinusale dhe funksionit eksponencial midis secilës kornizë do të merrte shumë kohë për të vazhduar me ritmin e riprodhimit audio. Një numër trukesh përdoren në kod për të shpejtuar llogaritjen. E gjithë matematika, përveç krijimit fillestar të tabelave të sinusit dhe prishjes eksponenciale, bëhet në formatin e plotë, gjë që kërkon përhapjen e hapësirës numerike të disponueshme në daljen audio 24 -bit. Për shembull, tabela e sinusit është e amplitudës 150 në mënyrë që të jetë e lëmuar, por jo aq e madhe sa që shumë tela të luajtur së bashku mund të shtojnë mbi 24 bit. Po kështu, vlerat e tabelës eksponenciale shumëzohen me 80 para se të rrumbullakosen në numra të plotë dhe të ruhen. Peshat harmonike mund të marrin vlera diskrete midis 0 dhe 10. Gjithashtu të gjithë mostrat në fakt janë dyfishuar dhe valët e sinusit indeksohen me 2, duke përgjysmuar në mënyrë efektive shkallën e marrjes së mostrës. Kjo kufizon frekuencën maksimale që mund të luhet, por ishte e nevojshme që numri aktual i telave dhe harmonikave të llogaritet mjaft shpejt.

Krijimi i këtij modeli të shëndoshë dhe marrja e tij në punë kërkoi përpjekje të konsiderueshme nga ana e procesorit, dhe do të kishte qenë tepër e vështirë ta kishe të punonte në anën fpga nga e para në kornizën kohore të këtij projekti (imagjinoni që duhet të rikrijoni bitstream çdo koha kur një pjesë e verilogut u ndryshua për të testuar tingullin). Sidoqoftë, ta bësh atë në fpga ka të ngjarë të jetë një mënyrë më e mirë për ta bërë atë, ndoshta duke eleminuar çështjen e pamundësisë për të llogaritur mostrat mjaft shpejt dhe për të lejuar që më shumë tela, harmonikë, madje edhe efekte audio ose detyra të tjera të ekzekutohen në ana e procesorit.

Hapi 6: Instalimi i sensorëve

Instalimi i sensorëve
Instalimi i sensorëve

Për të krijuar vargjet kemi përdorur sensorë të rrezeve të prishjes IR që do të zbulojnë kur vargu po luhet. Ne i porositëm sensorët tanë nga lidhja e mëposhtme. Sensorët kanë një tel të energjisë, tokëzimit dhe të dhënave, ndërsa emetuesit kanë vetëm një tel të energjisë dhe tokëzimit. Ne përdorëm 3.3 V dhe kunjat e tokëzimit nga titujt PMOD për të fuqizuar si emetuesit ashtu edhe sensorët. Për të fuqizuar të gjithë sensorët dhe emetuesit është e nevojshme të lidhni të gjithë sensorët dhe emetuesit paralelisht. Telat e të dhënave nga sensorët do të kenë nevojë që secili të shkojë në kunjin e vet pmod.

Hapi 7: Ndërtimi i Skeletit

Ndërtimi i Skeletit
Ndërtimi i Skeletit

Për të krijuar formën e harpës, tre pjesët përdoren si skelet për të vendosur sensorët dhe emetuesit. Në njërën nga dy pjesët 18 inç të tubit PVC rreshtoni sensorët dhe emetuesit në mënyrë alternative 1.5 inç nga njëri -tjetri dhe më pas ngjitini ato në tub. Në tubin tjetër PVC 18 inç rreshtoni sensorët dhe emetuesit në mënyrë alternative, por sigurohuni që të kompensoni rendin (domethënë nëse tubi i parë kishte një sensor së pari, i dyti duhet të ketë një emetues të parë dhe anasjelltas). Do të jetë e nevojshme të lidhni tela më të gjatë në të dhënat, fuqinë dhe telat e tokëzimit për të siguruar që ata do të jenë në gjendje të arrijnë në tabelë.

Hapi 8: Ndërtimi i pjesës së jashtme të drurit

Ndërtimi i pjesës së jashtme të drurit
Ndërtimi i pjesës së jashtme të drurit

Ky hap është opsional, por rekomandohet shumë. Pjesa e jashtme e drurit jo vetëm që e bën qesten të duket e bukur, por gjithashtu mbron sensorët dhe telat nga dëmtimet. Korniza prej druri mund të krijohet nga një unazë drejtkëndëshe e shenjtë nga druri. Brenda drejtkëndëshit duhet të ketë një hapje të paktën 1-1/2 inç për t'iu përshtatur skeletit të tubit dhe sensorit. Pasi të jetë ndërtuar korniza, shponi dy vrima që do të lejojnë që telat nga sensori dhe emetuesit të dalin jashtë, në mënyrë që t'i lidhni ato me tabelën.

*Shënim: Rekomandohet të shtoni pika aksesi për të qenë në gjendje të hiqni dhe futni skeletin e tubit në rast se duhet të bëhen riparime ose të bëhen rregullime të vogla.

Hapi 9: Vendosja e të gjitha pjesëve së bashku

Vendosja e të gjitha pjesëve së bashku
Vendosja e të gjitha pjesëve së bashku

Pasi të kenë përfunduar të gjitha hapat e mëparshëm është koha për të ndërtuar harpën. Së pari vendosni skeletin e tubit brenda pjesës së jashtme prej druri. Pastaj lidhni telat për sensorët dhe emetuesit në vendin e duhur në tabelë. Pastaj hapni SDK dhe klikoni butonin e korrigjimit për të programuar bordin. Pasi tabela të programohet futni një palë kufje ose një altoparlant. Në varësi të cilit sensor përfundon në cilin port pmod, telat e harpës suaj ndoshta nuk do të jenë në rregull për të filluar. Për shkak se mund të jetë e vështirë të thuash se cili tel shkon te cili sensor kur përfshihen kaq shumë tela, ne kemi përfshirë një mënyrë për të hartuar numrat e vargut për të ndërprerë pozicionet e bitëve në softuer. Gjeni "hartën statike të sensorit int [NUM_STRINGS]" dhe rregulloni vlerat në grup derisa vargjet të luajnë nga niveli më i ulët në atë më të lartë.

Menyja mund të përdoret duke hapur një terminal serial (p.sh. RealTerm) dhe vendosni normën e baud në 115200 dhe ekranin në ANSI. Menyja mund të lundrohet duke përdorur çelësat w dhe s për të lëvizur lart e poshtë dhe çelësat a dhe d për të ndryshuar vlerat.

Hapi 10: RROKUT

Pasi harpa të jetë plotësisht funksionale. Zotëroni harpën dhe dëgjoni tingullin e ëmbël të muzikës tuaj!

Recommended: