Агуулгын хүснэгт:

ATMega1284P гитар ба хөгжмийн эффектийн дөрөө: 6 алхам (зурагтай)
ATMega1284P гитар ба хөгжмийн эффектийн дөрөө: 6 алхам (зурагтай)

Видео: ATMega1284P гитар ба хөгжмийн эффектийн дөрөө: 6 алхам (зурагтай)

Видео: ATMega1284P гитар ба хөгжмийн эффектийн дөрөө: 6 алхам (зурагтай)
Видео: Как играть Форшлаг на бас гитаре - Что это за зверь? 2024, Арваннэгдүгээр
Anonim
ATMega1284P гитар ба хөгжмийн эффектийн дөрөө
ATMega1284P гитар ба хөгжмийн эффектийн дөрөө

Би Arduino Uno ATMega328 Pedalshield -ийг (Electrosmash -ийн боловсруулсан бөгөөд хэсэгчлэн Нээлттэй Хөгжмийн Лабораторид ажилласан) ATMega1284P -т Uno -оос 8 дахин их RAM -тэй (2кБ -ийн эсрэг 16кБ) суулгасан. Нэмэлт гэнэтийн давуу тал бол Mega1284 загвар нь дуу чимээ багатай бүрэлдэхүүн хэсэгтэй байдаг. Учир нь Uno болон Mega1284 -ийг ижил дэмжлэгийн хэлхээг ашиглан харьцуулж үзэхэд Uno -г "чимээ шуугиантай", Mega1284 "гэж тайлбарлах нь үндэслэлгүй юм. чимээгүй ". Том хэмжээтэй RAM нь илүү удаан саатал үзүүлэх боломжтой гэсэн үг бөгөөд үүнийг миний оруулсан Arduino тойм зургаар харуулав. Тремело эффект ашиглах үед амьсгалах чимээ шуугиан ATMega1284 -т бараг байдаггүй.

Гурван Atmel AVR микропроцессорыг харьцуулж үзвэл 328P нь Uno, 2560P нь Mega2560, Mega1284 нь хамгийн их санах ойтой болохыг харуулж байна.

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 bootloader эсвэл MCUdude Mightycore-ийн Марк Пендрит салаа, Uno-ийг ISP-ийн програмист болгон ашиглаж, дараа нь Uno-ээр дамжуулан AtMega1284 рүү ноорог дахин ачаална. Энэхүү үйл явцын дэлгэрэнгүй болон холбоосыг хавсралт 1 -д өгсөн болно.

Нэмэлт мэдээлэл олж авах боломжтой гурван чухал эх сурвалжийг хүлээн зөвшөөрч, вэбсайтуудынхаа линкийг өгөх болно, мөн нийтлэлийн төгсгөлд: Electrosmash, Open Music Labs, Tardate/Paul Gallagher

Алхам 1: эд ангиудын жагсаалт

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

Алхам 2: Барилга

Барилга
Барилга
Барилга
Барилга
Барилга
Барилга

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

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

ADC үе шат: ADC нь тасралтгүй тасралтгүй уншихаар тохируулагдсан байдаг. Дотоод Vcc эх үүсвэрийг лавлах хүчдэл болгон ашигладаг тул дуу чимээг бууруулахын тулд ATMega1284 -ийн AREF зүү ба газардуулгын хооронд 100nF конденсаторыг холбох ёстой гэдгийг анхаарна уу - AREF зүүг +5 вольт руу шууд бүү холбоорой!

DAC PWM үе шат: ATMega1284 нь өөрийн DAC -тэй байдаггүй тул гаралтын аудио долгионы хэлбэрийг RC шүүлтүүрийн импульсийн өргөн модуляцийг ашиглан үүсгэдэг. PD4 ба PD5 дээрх ХОУХ -ны хоёр гаралтыг аудио гаралтын дээд ба доод байт болгон тохируулж, 2 эсэргүүцэлтэй (4k7 ба 1M2) 1: 256 харьцаагаар (бага байт ба өндөр байт) хольж аудио гаралтыг бий болгодог.. Open Music Labs -ийн StompBox дээр ашигладаг 3k9 1M ом хос гэх мэт бусад эсэргүүцэгч хосуудтай туршилт хийх нь зүйтэй болов уу.

Алхам 3: Програм хангамж

Програм хангамж нь electrosmash -ийн ноорог дээр суурилсан бөгөөд жишээг (pedalshield1284delay.ino) Uno -ийн хоцролтын ноорогоос дасан зохицсон болно. Зарим унтраалга, LED -ийг ISP програмист (SCLK, MISO, MOSI ба Дахин тохируулах) ашигладаг портуудаас өөр портууд руу зөөж, хойшлуулах буферийг 2000 байтаас 12000 байт болгон нэмэгдүүлж, PortD -ийг ХОУХ -ны хоёр дохионы гаралт. Хойшлуулах буфер нэмэгдсэн ч ноорог нь одоо байгаа 1284 RAM -ийн ердөө 70% -ийг ашигладаг хэвээр байна.

SHIELD Uno дөрөөний electrosmash вэбсайтаас авсан октавер эсвэл тремоло гэх мэт бусад жишээг кодын гурван хэсгийг өөрчилснөөр Mega1284 -д ашиглахад тохируулж болно.

(1) DDRB -ийг өөрчлөх | = ((PWM_QTY << 1) | 0x02); to DDRD | = 0x30; // Дээрх өөрчлөлт нь цорын ганц чухал кодын өөрчлөлт юм // AtMega328 -аас ATMega1284 руу шилжүүлэх үед

(2) LED -ийг өөрчлөх #13 -ийг тодорхойлох #FOOTSWITCH 12 -ийг тодорхойлох #TOGGLE 2 -ыг тодорхойлох #PUSHBUTTON_1 A5 #тодорхойлох PUSHBUTTON_2 A4

руу

#LED PB0 тодорхойлох #FOOTSWITCH PB1 тодорхойлох #PUSHBUTTON_1 A5 #тодорхойлох 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) Electrosmash:

(2) Хөгжмийн лабораторийг нээх:

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

(4) 1284 ачаалагч:

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

ElectrosmashOpenlabs MusicPaul Gallagher1284 Bootloader 11284 Bootloader 2ATmega1284 8bit AVR микроконтроллер

Алхам 5: Хавсралт 1 ATMega1284P програмчлах

Хавсралт 1 ATMega1284P програмчлах
Хавсралт 1 ATMega1284P програмчлах
Хавсралт 1 ATMega1284P програмчлах
Хавсралт 1 ATMega1284P програмчлах
Хавсралт 1 ATMega1284P програмчлах
Хавсралт 1 ATMega1284P програмчлах

Arduino IDE -т ашиглахын тулд нүцгэн ATMega1284 чипийг хэрхэн програмчлах талаар сайн тайлбар өгдөг цөөн хэдэн вэбсайт байдаг. Процесс нь үндсэндээ дараах байдалтай байна: (1) Maniacbug Mighty-1284p Core Optiboot bootloader-ийн Mark Pendrith сэрээг Arduino IDE-д суулгана уу. (2) ATMega1284 -ийг талхны самбар дээр хамгийн бага тохируулгатай, 16 МГц болор, болорны хоёр үзүүрийг холбосон 2 x 22 pF багтаамжтай конденсаторыг холбож, хоёр газардуулгын зүүг холбоно уу (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 -ийн ноорог жишээг ISO болгон Uno дээр ачаална уу. (4) Одоо 1284 "manyiac" хүчирхэг optiboot самбарыг сонгоод Burn bootloader сонголтыг сонгоно уу. (5) Дараа нь энд дурдсан 1284 хоцролтын ноорогыг жишээ болгон сонгоод ноорог цэсэн дэх Uno програмистын сонголтыг ашиглан байршуулна уу.

Үйл явцыг илүү нарийвчлан тайлбарласан холбоосууд нь:

ATmega1284 -ийг Arduino IDEArduino Mightycore -тэй ашиглан том талхтай AVR -д зориулж ATMega1284p прототип бүтээхArduino ATmega1284p ачаалагч

Алхам 6: Хавсралт 2 Arduino Uno PedalSHIELD хувилбар

Хавсралт 2 Arduino Uno PedalSHIELD хувилбар
Хавсралт 2 Arduino Uno PedalSHIELD хувилбар
Хавсралт 2 Arduino Uno PedalSHIELD хувилбар
Хавсралт 2 Arduino Uno PedalSHIELD хувилбар
Хавсралт 2 Arduino Uno PedalSHIELD хувилбар
Хавсралт 2 Arduino Uno PedalSHIELD хувилбар

Schematic3, Breadboard3, and Photo3 нь AtMega1284 бүтээхээс өмнөх Uno дээр суурилсан хэлхээний талаар дэлгэрэнгүй мэдээллийг өгдөг.

Хуурай (оролттой тэнцүү) ба нойтон (MCU -ээр боловсруулсны дараа) дохиог холих зориулалттай потенциометрийг ашиглах нь давуу талтай бөгөөд Схем 2, Breadboard 2 ба Photo 2 нь өмнө нь бүтээсэн хэлхээний хэлхээний дэлгэрэнгүй мэдээллийг өгдөг. гаралтын холигчд ийм оролтыг оруулсан болно. Дөрвөн OpAmps ашиглан өөр холигчийг хэрэгжүүлэхийн тулд Open Music Labs StompBox -ийг үзнэ үү

Зөвлөмж болгож буй: