Tartalomjegyzék:
- 1. lépés: A digitális szekvenszer felhasználói kezelése
- 2. lépés: Műszaki adatok
- 3. lépés: Műszaki adatok
- 4. lépés: 7 szegmenses óraosztó
- 5. lépés: Ütésenkénti óraosztó
- 6. lépés: Óraosztó
- 7. lépés: Lejátszás/szüneteltetés/állapotgép kiválasztása
- 8. lépés: Lejátszás/szüneteltetés/állapotgép kiválasztása
- 9. lépés: FSM kimenet
- 10. lépés: FSM kimenet
- 11. lépés: Megjegyzés Hozzárendelés
- 12. lépés: Kimenet kiválasztása
- 13. lépés: Square Wave Gen
- 14. lépés: 7 szegmenses kijelző
- 15. lépés: Végső kiválasztás
- 16. lépés: Külső eszközök: DAC
- 17. lépés: Külső eszközök: hangszóró
- 18. lépés: Videó bemutató
- 19. lépés: VHDL kód
Videó: 4 lépéses digitális szekvenszer: 19 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
CPE 133, Cal Poly San Luis Obispo
A projekt alkotói: Jayson Johnston és Bjorn Nelson
A mai zeneiparban az egyik leggyakrabban használt „hangszer” a digitális szintetizátor. A zene minden műfaja, a hiphoptól a popon át a countryig, digitális szintetizátort használ a stúdióban, hogy létrehozza azokat a ritmusokat és hangokat, amelyek szükségesek ahhoz, hogy életre keltsék zenéjüket. Ebben az oktatóanyagban egy nagyon egyszerű szintetizátort fogunk létrehozni a Basys 3 FPGA kártyával.
A szintetizátor képes négy kiválasztott negyedhang lejátszására állandó ütemszámmal percenként. A felhasználók a kapcsolók segítségével minden negyedik hangot hozzárendelnek egy zenei hangszínhez. Ehhez a projekthez 4 bites digitális-analóg átalakítót (DAC) használunk, hogy kivesszük a kimenetet a kártyáról, és átalakítsuk azt analóg jellé. A DAC kimenete ezután egy szabványos számítógépes hangszóróra kerül, és létrehozza a zenét. Tizenhat különálló pálya lehetséges. Szintetizátorunkat egyetlen, 12 hangból álló oktávra korlátozzuk, amelyek a középső C (261,6 Hz) és a B4 (493,9 Hz) közé esnek. A felhasználónak lehetősége lesz arra is, hogy egyszerre több hangot rendeljen hozzá, valamint pihenőt rendelhet hozzárendeléssel, miközben egyik hangmagasság -kapcsoló sem mozdul felfelé. Minden egyes hang kiválasztásakor és lejátszásakor a betűjegy megjelenik a 7 szegmenses kijelzőn. Ezenkívül a táblán lévő gombok közül hármat fogunk használni, egyet a zene lejátszására és szüneteltetésére, egyet a szintetizátor alaphelyzetbe állítására és „kiválasztási” módba állítására, a harmadikat pedig arra, hogy minden hanghoz hangmagasságot rendeljünk kiválasztási módban.
Amint a felhasználó elégedett a hangjegyválasztással, és a lejátszás gomb megnyomása után a szintetizátor minden egyes hangot egymás után ismételten lejátsz, amíg a felhasználó vagy a szünetet vagy a gombot nem nyomja meg.
Itt található a szükséges felszerelések listája:
- Vivado (vagy bármely VHDL munkaterület)
- Basys 3 vagy hasonló FPGA kártya
- Digitális-analóg átalakító (min. 4 bit)
- Hangszóró fejhallgató -csatlakozóval
- Huzalvezetékek
1. lépés: A digitális szekvenszer felhasználói kezelése
A következő lépések a digitális szekvenszer működtetéséhez szükségesek. A digitális szekvenszer 12 különböző hangszín (C, Db, D, Eb, E, F, Gb, G, Ab, A, Bb, B) lejátszását támogatja, amelyek 261,6 Hz -től 493,9 Hz -ig terjednek.
1. Nyomja meg a bal gombot a tábla kiválasztási módba állításához. Ebben az üzemmódban a bal oldali 4 kapcsoló (13-16. Kapcsoló) használható mindegyik különböző hangmagasság -érték tárolására.
2. A kiválasztáshoz kapcsolja be a bal oldali kapcsolók egyikét, majd a jobb oldali 4 kapcsolóval (1-4. Kapcsoló) válassza ki a kívánt hangmagasságot. A jobb oldali kapcsolók egy adott kombinációjához tartozó hangmagasság megjelenik a hét szegmenses kijelzőn, és a kijelző frissül az új társított hangmagasságra, amikor a jobb kapcsolókat új kombinációra váltják. Pihenést úgy lehet hozzárendelni, hogy soha nem rendelünk hangmagasságot a bal oldali kapcsolók egyikéhez, vagy a kijelzőn 0 -ként látható hangmagasságot rendelünk a hangjegyhez. Miután megtalálta a kívánt hangmagasságot, és megjelenik a kijelzőn, nyomja meg az alsó hozzárendelés gombot az adott hangmagasság hozzárendeléséhez a hanghoz.
3. Ismételje meg a 2. lépést a három fennmaradó hangnál, úgy, hogy mindegyik bal oldali kapcsolót egyenként kapcsolja be, válassza ki a megfelelő hangmagasságot a jobb kapcsolókkal, és nyomja meg az alsó gombot a hangmagasság hozzárendeléséhez. Több hanghoz is hozzá lehet rendelni ugyanazt a hangmagasságot, ha egyszerre több bal oldali kapcsolót felfelé tol.
4. Most, hogy az összes hangmagasság kiosztásra került, a digitális szekvenszer lejátszásra kész. A hangok hangszórón történő lejátszásához egyszerűen nyomja meg a jobb lejátszás/szünet gombot a zene lejátszásához. A lejátszási sorrend balról jobbra tükrözi a bal oldali kapcsolókhoz tartozó hangmagasságokat. A hangok meghatározott ütemszámú percenkénti ütemben szólalnak meg, 1, 2, 3, 4, 1, 2… sorrendben. A kijelzőn megjelenik az éppen lejátszott hang, miközben a hangszórók zenét játszanak. A zene lejátszásának szüneteltetéséhez egyszerűen nyomja meg a jobb gombot, ekkor a zene leáll és a szünet szimbólum jelenik meg a kijelzőn. A jobb gomb újbóli megnyomásával folytatódik a lejátszás.
2. lépés: Műszaki adatok
Szintetizátorunk sokféle digitális komponenst használ. Ide tartoznak a véges állapotú gépek, regiszterek, multiplexerek, óraosztók és egyebek. Szintetizátorunk elkészítéséhez 10 egyedi moduláris fájlt használtunk. Ahelyett, hogy minden modult komponenssé tennénk, funkció szerint bontottuk le a moduláris fájlokat. Ennek eredményeként a legtöbb modul több összetevőből áll. Vegye figyelembe, hogy a fenti képen minden blokk látható, amelyek össze vannak kötve a legjobb kialakításunkban.
Az egyes modulokat a bemenetek és kimenetek leírásával, az összetevők lebontásával, valamint az általános tervezés céljának megvitatásával tárgyaljuk. Az utasítás alján ZIP fájl található, amely tartalmazza a projektben használt minden VHDL kódfájlt.
Bemenetek
- Clk (natív órajel)
- PP (lejátszás/szünet)
- Sel (állítsa a szintetizátort kiválasztási módba)
- Hozzárendelés (lépés hozzárendelése a hangmagassághoz)
- Lépés (a pozíciójegyzetek)
- Frekvencia (a kívánt hangmagasságot létrehozó kapcsolók)
Kimenetek
- Anód (7 szegmenses anódok)
- Katód (7 szegmenses katódok)
- DAC (4 bites DAC vezérlés)
3. lépés: Műszaki adatok
4. lépés: 7 szegmenses óraosztó
Szintetizátorunk három óraosztót használ, amelyek mindegyike olyan jeleket állít elő, amelyek más célt szolgálnak a projektünkben. Az óraosztó natív órajelet vesz fel, és módosított jelet állít elő, amelynek frekvenciája kisebb, mint az eredeti órajel. A Basys 3 natív órája 100 MHz. Ezt a frekvenciát használják az óraosztóink. Ha más FPGA kártyát használ, eltérő natív órajel -frekvenciával, előfordulhat, hogy módosítania kell a kódot.
A 7 szegmenses óraosztó jelet állít elő, amely meghajtja a seg_display fájlt. Részletesebben elmagyarázzuk, hogyan működik ez a fájl, amikor eljutunk a szakaszához. Lényegében ez az óraosztó 240 Hz -es jelet állít elő, amelyet a kijelzőn az anódok és a katódok közötti váltásra használnak. A jel 240 Hz, mert az a frekvencia, amelyen az emberi szem nem ismeri fel a fény hiányát, 60 Hz. Két számjegyet használunk, tehát ha megduplázzuk ezt a frekvenciát, minden számjegy 60 Hz -en oszcillál. Ezután megduplázzuk, hogy 240 Hz -et kapjunk, mert a rendszer csak akkor változik, ha a jel magas, és nem alacsony.
Ennek elérése érdekében az osztó felveszi a 100 MHz -es natív jelet, és minden emelkedő szélén számol. Amikor a számláló eléri a 416667 -et, a kimenet alacsonyról magasra emelkedik, vagy fordítva.
Bemenetek
Clk (natív órajel)
Kimenetek
Clk_7seg (a szeg_display -hez)
Alkatrészek
- D regiszter
- MUX
- Inverter
- Vipera
5. lépés: Ütésenkénti óraosztó
A BPM óraosztó hasonló módon működik. Ez az osztó az órajel frekvenciáját állítja elő, amely vezérli a váltást a négy lépés között, amikor lejátszási állapotban hangokat ad ki. Úgy döntöttünk, hogy 100 BPM -en váltunk a jegyzetek között. 100 BPM -nél minden hangot a másodperc 3/5 -e játszik le. A kapott jel frekvenciája 1,67 Hz lenne.
Az ilyen frekvenciájú jel előállításához ismét számlálórendszert használtunk, de ezúttal a szám 60 millió volt. Minden alkalommal, amikor a számláló elérte a 60 milliót, a kimeneti jel magasra vagy alacsonyra vált.
Bemenetek
Clk (natív órajel frekvencia)
Kimenetek
Clk_BPM (kimeneti_FSM -hez)
Alkatrészek
- D regiszter
- MUX
- Inverter
- Vipera
6. lépés: Óraosztó
A Pitches Clock Divider a legnagyobb óraosztónk. Ez az osztó 12 különböző jelet ad ki, amelyek megfelelnek a 12 különböző hangnak, amelyeket a szintetizátorunk képes lejátszani. A zeneelmélet alapismereteit felhasználva arra a következtetésre jutottunk, hogy egy bit vagy busz olyan mértékben rezeghet, amely megfelel a hangjegyek gyakoriságának. Az általunk használt frekvenciák megtekintéséhez nézze meg itt. A pályák negyedik oktávját használtuk.
Itt is ugyanazt a számlálórendszert használják. A számított értékeket lásd a Clk_div_pitches fájlban.
Bemenetek
Clk (natív órajel frekvencia)
Kimenetek
C, Db, D, Eb, E, F, Gb, G, Ab, A, Bb, B (a kimeneti_választáshoz)
Alkatrészek
- D regiszter
- MUX
- Inverter
- Vipera
7. lépés: Lejátszás/szüneteltetés/állapotgép kiválasztása
Projektünkben két véges állapotú gép (FSM) található. Az FSM olyan logikai eszköz, amely véges állapotok közül csak egy állapotban létezhet. Az FSM használatával a digitális áramkör a bemenetek kombinációja alapján új állapotba léphet. A bemeneti logika használatával az FSM állapota megváltozik, amikor az óra emelkedő éle van. Az állapotból és az áramkörbe történő bemenetekből létrehozhat olyan kimeneti logikát, amely csak akkor adható ki, ha az FSM egy bizonyos állapotban van.
A PPS állapotgép az első FSM az áramkörünkben. Ebben az FSM -ben három állam van; Lejátszás, Szünet és Kiválasztás mód. A különböző állapotok közötti mozgáshoz a PP és a Kiválasztás gombokat használtuk. Lásd a fenti állapotdiagramot, hogy megtudja, hogyan történnek az állapotok közötti átmenetek. Ezt az FSM átmenetet a natív 100 MHz -es óra emelkedő szélén végeztük el, így lehetetlenné vált, hogy a gép ne váltson át, amikor az egyik gombot megnyomták, még nagyon rövid ideig sem. A jelenlegi állapot (P_state) az egyetlen kimenet ebből a modulból.
Bemenetek
- Clk (natív órajel frekvencia)
- Sel (bal gomb)
- PP (jobb gomb)
Kimenetek
P_állapot (jelenlegi állapot, kimeneti_FSM -hez, jegyzet -hozzárendelés, szeg_dsiplay, végső_választás)
Alkatrészek
- MUX
- D regiszter
8. lépés: Lejátszás/szüneteltetés/állapotgép kiválasztása
9. lépés: FSM kimenet
Ez a második FSM, amelyre az előző részben hivatkoztunk. Ez az MSZM más funkciót lát el, mint a másik, de ennek alapja lényegében ugyanaz.
A kimeneti FSM csak akkor működik, ha az első FSM jelenlegi állapota "01" (lejátszási állapot). Lényegében ez a modul engedélyezése. Ha az állapot "01", akkor az FSM váltani fog a BPM órajel emelkedő szélén lévő állapotok között. Ezt azért tesszük, mert az output_FSM vezérli, hogy a kiválasztott hangmagasság melyik bináris száma kerül elküldésre az output_select és a seg_display modulokhoz. Az FSM egy 16 bites bemenettel rendelkezik, amely a hangjegy-hozzárendelési modulból származik, és amelyet a következőkben ismertetünk. A kimenet_FSM "00" állapotában a modul "xxxx" kimenetet ad ki az első hozzárendelt hanghoz. Ezután a "01" -ben "yyyy" lesz a második hangnál és így tovább minden hangnál, mielőtt visszagurul az első hangra. Lásd a fenti állapotdiagramot.
Ez az FSM eltér az elsőtől, mert nincs bemeneti logika az állapotok közötti váltás vezérlésére. Ehelyett az FSM csak akkor fog működni, ha az első FSM állapota "01", majd ez az FSM csak az órajel emelkedő szélén fog átmenni az állapotok között. Egy másik különbség az, hogy ez a modul kimeneti logikával rendelkezik, vagyis nem adja ki a jelenlegi állapotot, hanem a hangmagasság bináris számát adja ki ebben az állapotban.
Bemenetek
- Clk_BPM (BPM órajel az óraosztóból)
- FSM1_state (PS a PPS FSM -ből)
- Pitch_in (hangmagasságok a jegyzet -hozzárendelésből)
Kimenetek
Pitch_out (egy hangmagasság egyszerre, output_select és seg_display)
Alkatrészek
- MUX
- D regiszter
10. lépés: FSM kimenet
11. lépés: Megjegyzés Hozzárendelés
A hangjegy -hozzárendelő modul felelős a hangmagasság tényleges hozzárendeléséért a helyzeti hanghoz vagy lépéshez. Ez a modul valójában nagyon egyszerű. Először azt ellenőrzi, hogy az áramkör "kiválasztott" állapotban van -e, és hogy egy lépéskapcsoló (bal szélső) magas -e. Ha ez igaz, és megnyomja a hozzárendelés gombot, akkor a modul kimenete megegyezik a bináris számmal, amelyet a frekvenciakapcsolók képviselnek (jobb szélső).
Eredetileg olyan modult próbáltunk létrehozni, amely ténylegesen mentené a hangmagasságú órajeleket a kimenetre, de problémákat tapasztaltunk, amikor a kimenet megváltoztatta a bemeneti órajeleket. Ez az egyetlen modul, amelyet többször használtak a végső tervezés során. Minden lépéshez tartozik egy note_assign modul, és ezért a modul minden példánya megkap egy bitet a Step buszból.
Bemenetek
- P_state (a PPS FSM jelenlegi állapota)
- Sel (bal gomb)
- Kapcsoló (egylépcsős kapcsoló)
- Frekvencia (jobb szélső kapcsolók a hangmagassághoz)
- Hozzárendelés (alsó gomb, jegyzetet rendel)
Kimenetek
Pitch (bináris szám, output_FSM)
Alkatrészek
- MUX
- D regisztrálj
12. lépés: Kimenet kiválasztása
A kimenetválasztás feladata a bináris szám felvétele egy hangmagasságra, és a megfelelő órajelhez való csatlakoztatása. Mérete ellenére ez is viszonylag egyszerű modul. Az Output_select lényegében bináris dekódoló, amely egy hangmagasság bináris számát dekódolja egy adott órajelre. Valójában a kimenet órajelfrekvenciához rendelése jobban működött itt, mint a note_assign modul, mert ennek a modulnak csupán a vezérlőbemenetet reprezentáló bináris számmal ellátott MUX órákat kellett MUX -ra tennie.
Elnézést kérünk a furcsa útválasztásért, Vivado betűrendben rendezte a hangmagasság jelzéseit a clk_div_pitches fájlhoz, de ehhez a fájlhoz növekvő bináris szám szerint rendezte őket, így a hangmagasságok más sorrendben voltak. Azt is vegye figyelembe, hogy ha a output_FSM bináris száma "0000" vagy bármi nagyobb, mint "1100", akkor a MUX egy lapos '0' jelet küldött.
Bemenet
- Pitch (a output_FSM -ből);
- C, Db, D, Eb, E, F, Gb, G, Ab, A, Bb, B (hangmagasság -jel)
Kimenet
Hang (egyetlen bit, amely megfelel a kiválasztott órajelnek, négyzethullámra)
Alkatrészek
MUX
13. lépés: Square Wave Gen
A square_wave modul a négyzethullám generátora, amely a tábláról a DAC -ra kerül. Az előző fájl hangjelzésével ez a square_wave megfordítja a 4 bites számot a "0000" és "1111" között a Tone emelkedő szélén. A hang egy bizonyos hangmagasság -frekvencia, ezért a square_wave más frekvenciájú hullámot generál, amikor a output_FSM egy másik állapotba lép. A modul 4 bites kimenete a fin_sel modulhoz kerül, ahol a logika diktálja, hogy ez a busz kerül-e kiadásra a PPS FSM állapot alapján.
Ennek a négyzethullámú generátornak a alternatívája szinuszhullám előállítása. Bár ez valószínűleg jobb végső hangot eredményezne, sokkal nehezebb megvalósítani, ezért úgy döntöttünk, hogy csak négyzethullámot generálunk.
Bemenetek
Hang (oszcilláló bit a output_select -ből)
Kimenetek
DAC_bemenet (oszcilláló 4 bites busz, amely azonos hangfrekvenciával változik)
Alkatrészek
- Inverter
- D regiszter
14. lépés: 7 szegmenses kijelző
A seg_display modul vezérli a 7 szegmenses kijelzőt az alaplapunkon. A modulon belül két folyamat fordul elő. Az első folyamat dekódolja a frekvenciát, amikor "kiválasztási" állapotban van, vagy a hangmagasságot, amikor "lejátszás" módban van. "Szünet" módban a modul dekódolja a szünet szimbólumot. A VHDL kódot nézve látható, hogy a bináris dekódoló ténylegesen két különböző jelre dekódolja a bemenetet: katód1 és katód2. A katód1 a megjelenítendő hangmagasságnak megfelelő betűt jelöli, a katód2 pedig a lapos szimbólumot (b), ha van ilyen. Ennek oka a seg_display modul által végzett második folyamathoz kapcsolódik.
A basys3 táblán a szegmenskijelző közös katódokkal rendelkezik. Míg az anódok szabályozzák, melyik számjegy van bekapcsolva, a katódok szabályozzák, hogy mely szegmensek vannak bekapcsolva. Mivel a kijelzőn közös katódok vannak, ez azt jelenti, hogy egyszerre csak egy szegmenskészletet jeleníthet meg. Ez problémát jelent a projekt számára, mert egy betűt szeretnénk megjeleníteni az első számjegynél és a lapos szimbólumot, ha szükséges, egyszerre. Most emlékszel a 7seg órajelre? Ennek a problémának a kiküszöbölésére megváltoztatjuk az anódokat és a katódokat oda -vissza a 7seg órajelben. Mivel az órajel 240 Hz, és két számjegyet használunk, mindegyik szám 60 Hz -en oszcillál. Az emberi szem számára úgy tűnik, hogy a számjegyek egyáltalán nem oszcillálnak.
Vegye figyelembe azt is, hogy a basys3 kártya kijelzője negatív logikát használ. Ez azt jelenti, hogy ha egy anód vagy katód értéke „0”, akkor az adott számjegy vagy szegmens bekapcsol, és fordítva.
Bemenetek
- Hangmagasság (hangjegy bináris száma, lejátszott állapotban)
- Frekvencia (frekvenciakapcsolók, kiválasztott állapotban)
- P_state (a PPS FSM jelenlegi állapota)
- Clk_240Hz (órajel a Clk_div_7seg -től, dupla 120, mert csak az emelkedő élét használjuk)
Kimenetek
- Katód (busz, amely a kijelző szegmenseit vezérli, végső kimenet)
- Anód (busz, amely a kijelző számjegyeit vezérli, végső kimenet)
Alkatrészek
- Retesz
- MUX
- D regiszter
15. lépés: Végső kiválasztás
Az utolsó kiválasztás az utolsó modul, amelyet ebben a projektben használtak. Egy másik egyszerű modul, ez a modul vezérli a végső kimenetet, amely a DAC -hoz kerül. "Kiválasztás" vagy "szünet" állapotban a modul statikus "0000" kimenetet ad ki, így a hangszórókból nem lehet zenét lejátszani. "Lejátszás" állapotban a modul a négyzethullám által meghatározott oszcilláló 4 bitet adja ki.
Bemenetek
- P_state (a PPS FSM jelenlegi állapota)
- DAC_bemenet (oszcilláló 4 bit a square_wave-ből)
Kimenetek
DAC (egyenlő a DAC_bemenettel lejátszási állapotban, végső kimenet)
Alkatrészek
MUX
16. lépés: Külső eszközök: DAC
A digitális -analóg átalakító (DAC) diszkrét jelet vesz, és azt folyamatos jellé alakítja. A DAC négy bites, és összegző erősítőből készült. Az ellenállások arányának felhasználásával a táp- és visszacsatolási hurokban olyan rendszert tudtunk létrehozni, amely 16 különböző szinten ad ki kimenetet, és minden ág "összegzésével" hoz létre. A Bit0, a felső ág, a legkisebb súlyt hordozza, és a legkisebb potenciált adja, ha magas, ezért nagyobb ellenállást biztosít. A súly növekszik, ahogy lemegy az ágakon. Ha a bináris bemenetek használatával binárisan felfelé, majd visszafelé számolna, a kimeneti feszültségek lépésről lépésre szinuszhullámnak tűnnek. A DAC bemenetét a táblán lévő egyik PMOD-hoz csatlakoztatta a 4 bites jel átviteléhez.
A DAC -t eredetileg villamosmérnöki osztályra szerelték össze, és mi terveztük és forrasztottuk, nem boltból vásároltuk. A fenti kép a nyomtatott áramköri lap létrehozására szolgáló tervfájl.
17. lépés: Külső eszközök: hangszóró
Ehhez a projekthez nem szeretne szuper szép hangszórót vásárolni. Mint látható, a hangzás nagyon egyszerű. Elmentünk, és vettünk egy 8 dolláros számítógépes hangszórót a Best Buy -tól. Fejhallgató -csatlakozóval minden jól működik. A monoton is jól működik. Még fejhallgatót is használhat, de előfordulhat, hogy kifújja!
A DAC kimenetének a hangszórókhoz való csatlakoztatásához áthidaló kábeleket használtunk, majd a kimeneti kábelt a fejhallgató -csatlakozó végéhez tartottuk, és a földeléshez szükséges kábelt a bázishoz. Megpróbáltuk elektromos szalaggal rögzíteni a kábeleket, de ez sok interferenciát okozott. Egy másik stílusú szalag kipróbálása megoldhatja ezt a problémát.
Hangszóróinknál a legmagasabb fokozatra állítottuk őket, és tisztességesen erős zajt kaptunk.
És ez az utolsó lépés egy digitális szekvenszer létrehozásához FPGA kártyáról! Lépjen a következő két részre, hogy letöltse az összes VHDL kódunkat, és megnézze a szekvenszer működését.
18. lépés: Videó bemutató
Ez a videó bemutatja a munkaprojekt végleges verzióját, beleértve a kapcsolók 4 különböző hangmagassághoz való hozzárendelésének folyamatát, valamint a hangszórók megfelelő hangokat játszó lejátszását.
19. lépés: VHDL kód
Itt található a teljes projekt kódja, beleértve a szekvenszer építése során használt korlátozásokat és sim fájlokat. Ne feledje, hogy a fel nem használt tervezési fájlok ezt mondják az architektúrában.
Ajánlott:
Arduino MIDI ritmusszakasz -szekvenszer: 8 lépés (képekkel)
Arduino MIDI ritmusszakasz -szekvenszer: Ma jó és olcsó egy jó szoftveres dobgép, de az egér használata megöli a szórakozást. Ez az oka annak, hogy rájöttem arra, amit eredetileg tiszta 64 lépéses hardveres MIDI dobszekvenszernek szántak, amely képes akár 12 különböző dob elem beindítására
Egyszerű szekvenszer: 16 lépés (képekkel)
Egyszerű szekvenszer: A jó zenélés egyik kulcsa az esztelen ismétlés. Ebben az egyszerű szekvenáló nagyszerű. Ugyanezt csinálja újra és újra, nyolc hangsorban. Beállíthatja a jegyzet gyakoriságát, a hang időtartamát és
Atari punk konzol babával 8 lépéses szekvenszer: 7 lépés (képekkel)
Atari punk konzol Baby 8 lépéses szekvenszerrel: Ez a köztes felépítés az all-in-one Atari Punk Console és a Baby 8 Step szekvenszer, amelyeket a Bantam Tools asztali PCB marógépen marhat. Két áramköri lapból áll: az egyik felhasználói felület (UI) kártya, a másik pedig egy segédprogram
(majdnem) Univerzális MIDI SysEx CC programozó (és szekvenszer ): 7 lépés (képekkel)
(majdnem) Univerzális MIDI SysEx CC programozó (és a szekvenszer …): A nyolcvanas évek közepén a szintetizátorok "kevesebbet jobb" kezdtek. folyamat, amely barebones szintetizátorokhoz vezetett. Ez lehetővé tette a költségek csökkentését a gyártói oldalon, de a javítási folyamatot unalmassá, ha nem lehetetlenné tette a végső felhasználásra
Programozható RGB LED szekvenszer (Arduino és Adafruit rácsok használatával): 7 lépés (képekkel)
Programozható RGB LED szekvenszer (Arduino és Adafruit Trellis segítségével): A fiaim színes LED csíkokat akartak megvilágítani az asztalukon, én pedig nem akartam konzerv RGB szalagvezérlőt használni, mert tudtam, hogy unatkozni fognak a rögzített mintákon ezeknek a vezérlőknek van. Én is úgy gondoltam, hogy ez egy remek lehetőség az alkotásra