Мазмуну:

ATMega1284P гитара жана музыкалык эффекттер педалы: 6 кадам (сүрөттөр менен)
ATMega1284P гитара жана музыкалык эффекттер педалы: 6 кадам (сүрөттөр менен)

Video: ATMega1284P гитара жана музыкалык эффекттер педалы: 6 кадам (сүрөттөр менен)

Video: ATMega1284P гитара жана музыкалык эффекттер педалы: 6 кадам (сүрөттөр менен)
Video: [Японский текст вер.] MAYDAY «Жизнь планеты» Музыка Видео 2024, Июль
Anonim
ATMega1284P гитара жана музыкалык эффекттер педалы
ATMega1284P гитара жана музыкалык эффекттер педалы

Мен Arduino Uno ATMega328 Pedalshieldди (Electrosmash тарабынан иштелип чыккан жана жарым -жартылай Ачык Музыка Лабораториясындагы иштин негизинде) ATMega1284Pге Uno караганда сегиз эсе көп оперативдүү RAMга (16кБ каршы 2кБ) өткөрүп бердим. Кошумча күтүлбөгөн артыкчылык Mega1284 конструкциясында ызы -чуунун бир кыйла төмөн компоненти бар - мен Uno менен Mega1284тү ошол эле колдоо схемасын колдонуп салыштырганда, Uno "ызы -чуу" жана Mega1284 "деп сүрөттөө негизсиз эмес. тынч ". Чоңураак RAM, бир топ узакка созулган эффектти алууга болот дегенди билдирет жана бул мен киргизген Arduino эскизинин мисалы менен көрсөтүлөт. Тремело эффектин колдонгондо фондук дем алуусу ATMega1284 менен (дээрлик) жок.

Үч Atmel AVR микропроцессорун салыштыруу, тактап айтканда Uno 328P, Mega2560 жана 2560P, жана Mega1284 экинчисинин эң оперативдүү RAMге ээ экенин көрсөтөт:

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 үзгүлтүктөр 2 3 8 аналогдук 6 8 16

Мен Electrosmash спецификациясындагыдай Uno негизиндеги pedalSHIELDге нан түшүрүү менен баштадым, бирок менде көрсөтүлгөндөй RRO OpAmp жок болчу. Жыйынтыгында мен алгылыктуу натыйжаларды берүүнү ойлогон схема менен аяктадым. Бул Uno версиясынын чоо -жайы 2 -тиркемеде берилген.

Ошол эле схема ATMega1284ке өткөрүлүп берилген - таң калыштуусу, маанилүү эмес өзгөрүүлөрдөн башка, мисалы, өчүргүчтөрдү жана LEDди башка портко берүү жана кечиктирүү буферине 2 000 кБ оперативдүү RAM ордуна 12 000 кБ бөлүү. Булак кодунда бир маанилүү өзгөрүү болушу керек болчу, тактап айтканда, Timo1/PWM OC1A жана OC1B чыгууларын Unoдогу В портунан ATMega1284 портуна D (PD5 жана PD4) чейин өзгөртүү керек болчу.

Мен кийинчерээк Пол Галлагер тарабынан электромаш схемасынын эң сонун өзгөртүүлөрүн таптым, бул жерде мен көрсөтө турган схема - бирок андан кийин дагы өзгөртүүлөр менен: Uno -ны Mega1284 менен алмаштыруу, Texas Instruments TLC2272ди OpAmp катары колдонуу жана анткени Mega1284 эң сонун ызы-чуу аткаргандыктан, мен аз өтмө чыпканын жыштыгын көтөрө алмакмын.

Белгилей кетүүчү нерсе, ATMega1284 үчүн иштеп чыгуу такталары бар болсо да (Github: MCUdude MightyCore), жылаңач (жүктөгүчсүз) чипти сатып алуу оңой көнүгүү (нан жана такта болгон PDIP версиясын сатып алыңыз) достук), андан кийин Maniacbug Mighty-1284p Core Optiboot жүктөгүчүнүн же MCUdude Mightycoreдун Марк Пендрит вилкасын жүктөгүлө, провайдер программисти катары Uno колдонуп, анан эскиздерди Uno аркылуу кайрадан AtMega1284кө жүктөңүз. Бул процесстин деталдары жана шилтемелери 1 -тиркемеде берилген.

Мен кошумча маалымат ала турган үч маанилүү булакты моюнга алгым келет жана алардын веб -сайттарына шилтемелерди жана ушул макаланын аягына: Electrosmash, Open Music Labs жана Tardate/Paul Gallagher

1 -кадам: Бөлүктөрдүн тизмеси

ATMega1284P (PDIP 40 пин пакетинин версиясы) Arduino Uno R3 (жүктөгүчтү жана эскиздерди ATMega1284кө өткөрүп берүү үчүн ISP катары колдонулат) OpAmp TLC2272 (же окшош RRIO (Rail to Input and Output) OpAmp сыяктуу MCP6002, LMC6482, TL972) Кызыл LED 16 MHz кристалл 2 x 27 pF конденсатор 5 x 6n8 конденсатор 270 pF конденсатор 4 х 100n конденсатор 2 х 10uF 16v электролиттик конденсатор 6 х 4k7 каршылык 100k каршылык 2 х 1М каршылык 470 ом каршылык 1М2 каршылык 100к потенциометр 3 х баскыч баскычтары (бир эффекттер кутусу жандуу иштөө үчүн колдонула турган болсо, алардын ичинен 3 уюлдуу 2 тараптуу бут алмаштыргыч менен алмаштырылышы керек)

2 -кадам: Курулуш

Курулуш
Курулуш
Курулуш
Курулуш
Курулуш
Курулуш

Схема 1 колдонулган схеманы берет жана Breadboard 1 анын физикалык көрсөтмөсү (Fritzing 1) Фото 1 менен иштөөдө чыныгы нан-тактай схемасы. Потенциометрдин кургак (кирүүгө барабар) жана нымдуу (MCU тарабынан иштетилгенден кийин) сигналы үчүн аралаштыргыч болушу пайдалуу болушу мүмкүн, жана 2 -схема, Breadboard 2 жана Сүрөт 2 (2 -тиркемеде келтирилген) чыгаруу аралаштыргычына мындай киргизүүнү камтыган мурда курулган схеманын схемасы. Ошондой эле Open Music Labs StompBoxту караңыз, дагы төрт OpAmpsти колдонуп, башка аралаштыргычты ишке ашыруу үчүн.

OpAmp киргизүү жана чыгаруу этаптары: ATMega1284 ADCге OpAmp чыгарууда талап кылынган чоң чыңалуу селкинчегинен RRO же жакшыраак RRIO OpAmp колдонулушу маанилүү. Бөлүктөрдүн тизмеси бир катар альтернативдүү OpAmp түрлөрүн камтыйт. 100k потенциометр кирешенин пайдасын кандайдыр бир бурмалоодон төмөн деңгээлге тууралоо үчүн колдонулат, ошондой эле музыкалык ойноткуч сыяктуу гитарадан башка кирүү булагы үчүн сезимталдыкты тууралоо үчүн колдонсо болот. OpAmp чыгаруу стадиясында аудио агымынан санарип түрүндө өндүрүлгөн MCU ызы -чууну алып салуу үчүн жогорку даражадагы RC чыпкасы бар.

ADC этапы: ADC ар дайым үзгүлтүккө учурап окуу үчүн конфигурацияланган. Эске алыңыз, 100nF конденсатору ATMega1284 менен AREF пининин ортосунда туташып турушу керек, анткени ызы -чууну азайтуу үчүн ички Vcc булагы шилтеме чыңалуусу катары колдонулат - AREF пинин +5 вольтко түз туташтырбаңыз!

DAC PWM этап: ATMega1284 өзүнүн DAC жок болгондуктан, чыгуу аудио толкундары RC чыпкасынын импульстук туурасы модуляциясын колдонуу менен түзүлөт. PD4 жана PD5 боюнча эки PWM чыгышы аудио чыгаруунун жогорку жана төмөнкү байттары катары коюлган жана эки резисторго (4k7 жана 1M2) 1: 256 катышта (төмөн байт жана жогорку байт) аралаштырылган - бул аудио чыгарууну жаратат. Ачык Музыка Лабораториялары колдонгон 3k9 1M ohm жуп сыяктуу башка резисторлордун жуптары менен тажрыйба жүргүзүү пайдалуу болушу мүмкүн.

3 -кадам: Программалык камсыздоо

Программа electrosmash эскиздерине негизделген жана мисал (pedalshield1284delay.ino), алардын Uno кечиктирүү эскизине ылайыкташтырылган. Кээ бир өчүргүчтөр жана LEDлар ISP программисти колдонгондон башка портторго көчүрүлгөн (SCLK, MISO, MOSI жана Reset), кечиктирүү буфери 2000 байттан 12000 байтка чейин көбөйтүлгөн жана PortD катары коюлган эки PWM сигналын чыгаруу. Кечигүү буферинин көбөйүшү менен эскиз дагы эле бар болгон 1284 ОЗУнун болжол менен 70% ын гана колдонот.

PedalsSHIELD Uno үчүн electrosmash веб -сайтынан октавер же тремоло сыяктуу башка мисалдар Mega1284 тарабынан коддун үч бөлүмүн өзгөртүү менен ыңгайлаштырылышы мүмкүн:

(1) DDRB өзгөртүү | = ((PWM_QTY << 1) | 0x02); DDRD | = 0x30; // Жогорудагы өзгөрүү - бул коддун бирден -бир маанилүү өзгөрүшү // AtMega328ден ATMega1284кө которууда

(2) Change #define LED 13 #FOOTSWITCH 12ти аныктоо #TOGGLE 2ди аныктоо #PUSHBUTTON_1 A5 #аныктоо PUSHBUTTON_2 A4

чейин

#DEFINE LED PB0 #DEFINE FOOTSWITCH PB1 #PUSHBUTTON_1А5ти аныктоо #PUSHBUTTON_2 A4

(3) pinMode өзгөртүү (FOOTSWITCH, INPUT_PULLUP); pinMode (TOGGLE, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, OUTPUT)

чейин

pinMode (FOOTSWITCH, INPUT_PULLUP); pinMode (PUSHBUTTON_1, INPUT_PULLUP); pinMode (PUSHBUTTON_2, INPUT_PULLUP); pinMode (LED, OUTPUT);

1 жана 2 баскычтары кээ бир эскиздерде эффектти жогорулатуу же азайтуу үчүн колдонулат. Кечиктирүү мисалында ал кечигүү убактысын көбөйтөт же азайтат. Эскиз биринчи жүктөлгөндө, ал максималдуу кечигүү эффектинен башталат. ылдый баскычын басыңыз - кечиктирүү абалына чейин кайра эсептөө үчүн болжол менен 20 секунд кетет - анан өйдө баскычын басып кармап туруңуз. Кнопканы кармап туруунун эффекти фазердин, хордун жана флангдын эффектин кандай өзгөртөөрүн, ошондой эле баскычты кое берүү убактысын угуңуз.

Кечиктирүүнү жаңыртуу эффектине өзгөртүү үчүн (кайталоону кошуу) линияны өзгөртүңүз:

DelayBuffer [DelayCounter] = ADC_high;

чейин

DelayBuffer [DelayCounter] = (ADC_high + (DelayBuffer [DelayCounter])) >> 1;

Аяк которгуч үч уюлдуу эки тараптуу которгуч болушу керек жана electrosmash сайтында сүрөттөлгөндөй туташтырылышы керек.

4 -кадам: Шилтемелер

Шилтемелер
Шилтемелер

(1) Электрмаш:

(2) Open Music Labs:

(3) Пол Галлагер:

(4) 1284 Жүктөгүч:

(5) ATmega1284 8bit AVR микроконтроллери:

ElectrosmashOpenlabs MusicPaul Gallagher1284 Bootloader 11284 Bootloader 2ATmega1284 8bit AVR Microcontroller

5 -кадам: 1 -тиркеме ATMega1284P программалоо

1 -тиркеме ATMega1284P программалоо
1 -тиркеме ATMega1284P программалоо
1 -тиркеме ATMega1284P программалоо
1 -тиркеме ATMega1284P программалоо
1 -тиркеме ATMega1284P программалоо
1 -тиркеме ATMega1284P программалоо

ATMega1284 чипин Arduino IDE менен колдонуу үчүн кантип программалоо керектигин жакшы түшүндүргөн бир нече веб -сайттар бар. Бул процесс негизинен төмөнкүчө: (1) Arduino IDEге Maniacbug Mighty-1284p Core Optiboot жүктөгүчүнүн Марк Пендрит айрыгын орнотуңуз. (2) ATMega1284'ти минималдуу конфигурациясы бар нан столунда 16 МГц кристалл, 2 х 22 кристаллдын эки учуна негизделген конденсаторлорду бириктирип, эки жер казыгын бириктириңиз (11 жана 31 -казыктар), анан Arduino Uno жерге, Vcc менен AVccти туташтырыңыз (10 жана 30 -казыктар), андан кийин Uno +5v, андан кийин баштапкы абалга келтирүүчү пин 9ду Uno D10 пинге, MISO пин 7 ни UNO D12ге, MOSIге туташтырыңыз. пин 8 Uno D11ге, жана SCLK 7 пин Uno D13 төөнөгүчүнө. (3) Unoну Arduino IDEге туташтырыңыз жана Arduino эскизин Unoго ISP катары жүктөңүз. (4) Эми 1284 "маньяк" күчтүү optiboot тактасын тандап, Burn bootloader опциясын тандаңыз. (5) Андан кийин мисал катары берилген 1284 кечиктирүү эскизин тандап, эскиздер менюсунда программист катары Uno колдонуп жүктөңүз.

Кененирээк процессти түшүндүргөн шилтемелер:

ATmega1284 менен Arduino IDEArduino Mightycore менен чоң панель достук AVRs үчүн ATMega1284p прототибин түзүүArduino ATmega1284p жүктөгүч

6 -кадам: 2 -тиркеме Arduino Uno PedalSHIELD Variation

2 -тиркеме Arduino Uno PedalSHIELD Variation
2 -тиркеме Arduino Uno PedalSHIELD Variation
2 -тиркеме Arduino Uno PedalSHIELD Variation
2 -тиркеме Arduino Uno PedalSHIELD Variation
2 -тиркеме Arduino Uno PedalSHIELD Variation
2 -тиркеме Arduino Uno PedalSHIELD Variation

Schematic3, Breadboard3 жана Photo3 AtMega1284 түзүүдөн мурун Uno негизделген схеманын чоо-жайын берет.

Потенциометрдин кургак (киришке барабар) жана нымдуу (MCU тарабынан иштетилгенден кийин) сигналы үчүн аралаштыргыч болушу пайдалуу болушу мүмкүн, жана Схема 2, Breadboard 2 жана Сүрөт 2 мурда курулган чынжырдын схемасын берет. мындай аралашманы чыгаруу аралаштыргычы камтыйт. Ошондой эле Open Music Labs StompBoxту караңыз, дагы төрт OpAmpsти колдонуп, башка аралаштыргычты ишке ашыруу үчүн

Сунушталууда: