Tartalomjegyzék:
- 1. lépés: Alkatrészlista
- 2. lépés: Építés
- 3. lépés: Szoftver
- 4. lépés: Linkek
- 5. lépés: 1. függelék Az ATMega1284P programozása
- 6. lépés: 2. függelék Arduino Uno PedalSHIELD variáció
Videó: ATMega1284P gitár- és zenei effektus pedál: 6 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Az Arduino Uno ATMega328 Pedalshield -et (amelyet az Electrosmash fejlesztett ki, és részben az Open Music Lab munkája alapján) átvittem az ATMega1284P -be, amely nyolcszor több RAM -mal rendelkezik, mint az Uno (16 KB és 2 KB). További váratlan előny, hogy a Mega1284 build sokkal alacsonyabb zajszintű komponenssel rendelkezik - olyan mértékben, hogy ha összehasonlítom az Uno -t és a Mega1284 -t ugyanazt a támogatási áramkört használva, nem ésszerűtlen az Uno -t "zajosnak", a Mega1284 -t pedig " csendes". A nagyobb RAM azt jelenti, hogy sokkal hosszabb késleltetési hatás érhető el - és ezt bizonyítja az általam felvett Arduino vázlatpélda. A Tremelo effektus használatakor a légzési háttérzaj (szinte) hiányzik az ATMega1284 esetében is.
Három Atmel AVR mikroprocesszor összehasonlítása, nevezetesen a 328P, azaz az Uno, a 2560P, amely a Mega2560, és a Mega1284, azt mutatja, hogy az utóbbi rendelkezik a legtöbb RAM -mal a három közül:
Aspect 328P 1284P 2560P RAM 2k 16k 8k Flash 32k 128k 256k EEPROM 1k 4k 4k UART 1 2 4 IO Pins 23 32 86 Megszakítások 2 3 8 Analog In 6 8 16
Az Uno-alapú pedalSHIELD kenyérsütéssel kezdtem, mint az Electrosmash specifikációban, de nem rendelkeztem a megadott RRO OpAmp-tal. Ennek eredményeként egy olyan áramkörhöz jutottam, amelyet elfogadható eredményeknek tekintettem. Ennek az Uno verziónak a részleteit a 2. függelék tartalmazza.
Ugyanezt az áramkört azután az ATMega1284 -re is átvitték - meglepő módon, eltekintve az olyan lényeges változtatásoktól, mint például a kapcsolók és a LED -ek másik porthoz való hozzárendelése, és 12 000 kB kiosztása a 2 000 kB RAM helyett csak a késleltető pufferhez. egy lényeges változtatást kellett végrehajtani a forráskódban, nevezetesen a Timer1/PWM OC1A és OC1B kimenetek megváltoztatását az Uno B portjáról a D portra (PD5 és PD4) az ATMega1284 -en.
Később felfedeztem Paul Gallagher kiváló módosításait az elektromos összetörési áramkörön, és tesztelés után ezt az áramkört mutatom be itt - de akkor is módosításokkal: az Uno helyettesítését a Mega1284 -gyel, Texas Instruments TLC2272 -t használva OpAmp -ként, és a Mega1284 kiváló zajteljesítménye miatt az aluláteresztő szűrő frekvenciaszintjét is emelhetném.
Fontos megjegyezni, hogy bár az ATMega1284 fejlesztői táblái is rendelkezésre állnak (Github: MCUdude MightyCore), egyszerű feladat a csupasz (rendszerbetöltő nélküli) chip megvásárlása (vásárolja meg a PDIP verziót, amely kenyérlap és szalaglap) barátságos), majd töltse be a Maniacbug Mighty-1284p Core Optiboot rendszerbetöltő vagy az MCUdude Mightycore Mark Pendrith villáját úgy, hogy Uno-t használ ISP programozóként, majd töltse be újra a vázlatokat az Uno segítségével az AtMega1284-be. A folyamat részleteit és linkjeit az 1. függelék tartalmazza.
Szeretném tudomásul venni a három legfontosabb forrást, amelyekből további információkat szerezhet, és linkeket ad a webhelyükhöz, valamint a cikk végéhez: Electrosmash, Open Music Labs és Tardate/Paul Gallagher
1. lépés: Alkatrészlista
ATMega1284P (PDIP 40 tűs csomagverzió) Arduino Uno R3 (internetszolgáltatóként használják a rendszerbetöltő és a vázlatok ATMega1284 -re történő átviteléhez) OpAmp TLC2272 (vagy hasonló RRIO (sínből vasúti bemenethez és kimenethez) OpAmp, például MCP6002, LMC6482, TL972) Piros LED 16 MHz -es kristály 2 x 27 pF kondenzátorok 5 x 6n8 kondenzátorok 270 pF kondenzátor 4 x 100n kondenzátorok 2 x 10uF 16v elektrolit kondenzátorok 6 x 4k7 ellenállások 100k ellenállás 2 x 1M ellenállások 470 ohmos ellenállás 1M2 ellenállás 100k potenciométer 3 x nyomógombos kapcsolók (egy közülük 3 pólusú 2 utas lábkapcsolóval kell helyettesíteni, ha az effektdobozt élő munkához fogják használni)
2. lépés: Építés
Az 1. vázlat a használt áramkört, az 1. kenyértábla pedig a fizikai ábrázolást (Fritzing 1) és az 1. fényképet mutatja be a ténylegesen működő kenyérlapos áramkört. Előnyös lehet, ha egy potenciométert keverőként használnak a száraz (egyenlő a bemenettel) és a nedves (az MCU által végzett feldolgozás után) jelre, és a 2. ábra, a Breadboard 2 és a 2. fotó (a 2. függelékben felsorolva) megadja a egy korábban létrehozott áramkör áramkör részletei, amely ilyen bemenetet tartalmaz a kimeneti keverőhöz. Nézze meg az Open Music Labs StompBox -ot is, ahol egy másik mixer -megvalósítást talál négy OpAmps használatával.
OpAmp bemeneti és kimeneti szakaszok: Fontos, hogy RRO -t vagy lehetőleg RRIO OpAmp -et használjon, mert az ATMega1284 ADC -jéhez szükséges OpAmp kimeneten nagy feszültségingadozás szükséges. Az alkatrészlista számos alternatív OpAmp típust tartalmaz. A 100k potenciométer a bemenet erősítésének beállítására szolgál minden torzítás alatti szintre, és a gitártól eltérő bemeneti forrás, például zenelejátszó bemeneti érzékenységének beállítására is használható. Az OpAmp kimeneti fokozat magasabb rendű RC szűrővel rendelkezik, amely eltávolítja a digitálisan generált MCU zajt az audiofolyamból.
ADC szakasz: Az ADC úgy van konfigurálva, hogy folyamatosan megszakításon keresztül olvassa. Ne feledje, hogy 100 nF kondenzátort kell csatlakoztatni az ATMega1284 AREF csapja és a föld közé a zaj csökkentése érdekében, mivel belső Vcc forrást használnak referenciafeszültségként - NE csatlakoztassa az AREF csapot +5 volthoz közvetlenül!
DAC PWM szakasz: Mivel az ATMega1284 nem rendelkezik saját DAC -val, a kimenő hanghullámformák egy RC szűrő impulzusszélesség -modulációjával jönnek létre. A PD4 és PD5 két PWM kimenete az audio kimenet magas és alacsony bájtjaként van beállítva, és a két ellenállással (4k7 és 1M2) 1: 256 arányban (alacsony bájt és magas bájt) keveredik - ez generálja az audio kimenetet. Érdemes kísérletezni más ellenálláspárokkal, például az Open Music Labs által a StompBox -ban használt 3k9 1M ohmos párral.
3. lépés: Szoftver
A szoftver az electrosmash vázlatokra épül, és a példát (pedalshield1284delay.ino) az Uno késleltetési vázlatából alakították ki. A kapcsolók és a LED -ek egy részét más portokra helyezték át az ISP programozó által használt portoktól távol (SCLK, MISO, MOSI és Reset), a késleltetési puffert 2000 bájtról 12000 bájtra növelték, és a PortD értéket állították be kimenet a két PWM jelhez. A vázlat a késleltetési puffer növekedése ellenére is a rendelkezésre álló 1284 RAM mintegy 70% -át használja fel.
Más példák, mint például a Octal vagy a tremolo az Electrosmash webhelyről a pedálhoz SHIELD Uno a Mega1284 számára a kód három szakaszának megváltoztatásával alkalmazható:
(1) DDRB módosítása | = ((PWM_QTY << 1) | 0x02); DDRD -re | = 0x30; // A fenti módosítás az CSAK lényeges kódváltozás //, amikor az AtMega328 -ról az ATMega1284 -re történő portolás
(2) Módosítsa a #define LED -et 13 #define FOOTSWITCH 12 #define TOGGLE 2 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4
nak nek
#define LED PB0 #define FOOTSWITCH PB1 #define PUSHBUTTON_1 A5 #define PUSHBUTTON_2 A4
(3) A pinMode módosítása (FOOTSWITCH, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, KIMENET)
nak nek
pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, KIMENET);
Az 1 és 2 nyomógombok egyes vázlatokban az effektus növelésére vagy csökkentésére szolgálnak. A késleltetési példában növeli vagy csökkenti a késleltetési időt. A vázlat első betöltésekor a maximális késleltetéssel kezdődik. nyomja meg a le gombot - körülbelül 20 másodpercbe telik a visszaszámlálás egészen a késleltetett állásig -, majd nyomja meg és tartsa lenyomva a fel gombot. Hallgassa meg, hogyan változtatja meg a gomb lenyomásával a söprés hatása a fázist, a refrént és a karimát, valamint a gomb elengedésének késleltetését.
A késleltetés visszhanghatássá változtatásához (ismétlés hozzáadása) módosítsa a sort:
DelayBuffer [DelayCounter] = ADC_magas;
nak nek
DelayBuffer [DelayCounter] = (ADC_magas + (DelayBuffer [DelayCounter])) >> 1;
A lábkapcsolónak hárompólusú kétirányú kapcsolónak kell lennie, és az elektromágneses webhelyen leírtak szerint kell csatlakoztatni.
4. lépés: Linkek
(1) Elektromos összetörés:
(2) Open Music Labs:
(3) Paul Gallagher:
(4) 1284 rendszerbetöltő:
(5) ATmega1284 8 bites AVR mikrokontroller:
Electrosmash Openlabs Music Paul Gallagher1284 Bootloader 11284 Bootloader 2ATmega1284 8bit AVR mikrokontroller
5. lépés: 1. függelék Az ATMega1284P programozása
Van néhány webhely, amely jó magyarázatot ad arra, hogyan programozható a csupasz ATMega1284 chip az Arduino IDE -vel való használatra. A folyamat lényegében a következő: (1) Telepítse a Maniacbug Mighty-1284p Core Optiboot rendszerbetöltő Mark Pendrith villáját az Arduino IDE-be. (2) Csatlakoztassa az ATMega1284 -et egy minimális konfigurációjú kenyérsütő lapra, amely egy 16 MHz -es kristály, 2 x 22 pF kondenzátor, amely földeli a kristály két végét, Csatlakoztassa a két földelőcsapot (11. és 31. érintkező), majd az Arduino Uno földeléshez csatlakoztassa a Vcc és az AVcc csatlakozókat (10. és 30. tű), majd az Uno +5v -hez, majd csatlakoztassa a 9. visszaállító csapot az Uno D10 érintkezőhöz, a MISO 7. tüskét az UNO D12, The MOSI a 8. tüskét az Uno D11 -hez, az SCLK 7. csapot pedig az Uno D13 -as csaphoz. (3) Csatlakoztassa az Uno -t az Arduino IDE -hez, és töltse be az Arduino vázlatpéldáját internetszolgáltatóként az Uno -ra. (4) Most válassza ki az 1284 "mániákus" hatalmas optiboot táblát, és válassza a Burn bootloader opciót. (5) Ezután válassza ki az itt bemutatott 1284 késleltetés vázlatát, és töltse fel a vázlatok menü Uno as programmer opciójának használatával.
A folyamatot részletesebben bemutató linkek:
Az ATmega1284 használata az Arduino IDEArduino Mightycore -val a nagy kenyérpirítóbarát AVR -khez ATMega1284p prototípus létrehozása Arduino ATmega1284p rendszerbetöltő
6. lépés: 2. függelék Arduino Uno PedalSHIELD variáció
A Schematic3, a Breadboard3 és a Photo3 részletesen ismerteti az Uno-alapú áramkört, amely megelőzte az AtMega1284 buildet.
Előnyös lehet, ha potenciométert használunk keverőként a száraz (egyenlő a bemenettel) és a nedves (az MCU által végzett feldolgozás után) jelhez, és a 2. ábra, a Breadboard 2 és a Photo 2 egy korábban létrehozott áramkör részleteit tartalmazza. amely olyan bemenetet tartalmaz a kimeneti keverőhöz. Nézze meg az Open Music Labs StompBox -ot is, ahol egy másik mixer -megvalósítást talál négy OpAmps használatával
Ajánlott:
DIY gitár effektus: 8 lépés
DIY Guitar Effect: Úgy döntöttem, hogy építek egy elektromos gitárhatást. Rengeteg vázlat található az interneten, valamint a rövid videók, amelyek bemutatják működésüket, így ha valaki szeretne egyet választani, akkor rengeteg közül választhat. Úgy döntöttem, hogy a "Keele -vel" megyek
Peltier -effektus (extrém hűtés): 8 lépés (képekkel)
Peltier -effektus (extrém hűtés): A címem szerint sejtheti, miről fogok beszélni, de a legérdekesebb az, hogy az AC/Freeze -t mozgó/mechanikus alkatrész (kompresszor) nélkül is elkészíthetjük, ebben a projektben a kompresszort cseréljük Peltier modullal. Tegyen egy extrém
Hall -effektus érzékelő az Arduino -n a Fidget Spinner segítségével: 3 lépés (képekkel)
Hall Effect érzékelő az Arduino -n a Fidget Spinner használatával: Absztrakt működés: -A Hall-hatás érzékelő egy jelátalakító, amely mágneses mező hatására változtatja a kimeneti feszültségét. Hall -effektus
Zenei reaktív fény -- Hogyan készítsünk szuper egyszerű zenei reaktív fényt az asztali hangulatosabbá tételhez: 5 lépés (képekkel)
Zene reaktív fény || Hogyan készítsünk szuper egyszerű zenei reaktív fényt az asztali félelmetes kialakításhoz. a mélyhang, ami valójában alacsony frekvenciájú hangjel. Nagyon egyszerű felépíteni. Mi
Walabot FX - Gitár -effektus vezérlés: 28 lépés (képekkel)
Walabot FX - Guitar Effect Control: Irányítsd kedvenc gitárhatásodat, csak fantasztikus gitárpózokat