
Мазмуну:
- 1 -кадам: Талаптар 1/3 - Аппараттык
- 2 -кадам: 2/3 талаптар - Сиздин микросхемаңыздын компоненттери
- 3 -кадам: 3/3 талаптар - Программалык камсыздоо
- 4 -кадам: Input Circuit
- 5 -кадам: Output Circuit
- 6 -кадам: [ОПЦИОНАЛДЫК] Басып чыгарылган микросхемаларды түзүү Бород жана ширетүүчү компоненттер
- 7 -кадам: SoC орнотуу
- 8 -кадам: C ГЭСин программалоо
- 9 -кадам: Картадан ADCди санариптик алуу
- 10 -кадам: FFT эсептөө
- 11 -кадам: FFT көрсөтүү
- 12 -кадам: Ассамблея
- 13 -кадам: Үн эффекттери
- 14 -кадам: [ОПЦИОНАЛДЫК] Туулга жасоо
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51


Салам! Биз Сорбонна университетинин Политехникалык мектебинен 4 студенттен турган командабыз:
- Louis Buchert
- Билал Мелехи
- Бао Тинь Пиот
- Марко Лонгепе
Бул долбоор биздин изилдөөлөрүбүздүн бир бөлүгү катары ишке ашты жана бир катар куралдарды колго алууну, ошондой эле теориялык жетишкендиктерибизди көрсөтүүнү көздөйт.
Белгилүү объект аты жоголуп кетүүчү белгилүү бир видео оюндун баатырына окшош туулга пайда болот. Дизайн жагында дагы бизде динамиктен чыккан аудио сигналдын Фурье трансформациясын көрсөтүүчү экран бар. Бул гарнитуранын максаты бир катар тандалуучу эффекттерди колдонуп, реалдуу убакытта оператордун үнүн өзгөртүү.
Билим берүү максаттары:
- Үндү микрофондон тартып алыңыз
- Сигналды күчөтүү, чыпкалоо, санариптештирүү
- Сигналдын ФФТсын ишке ашырыңыз
- Бул FFTди экранда көрсөтүңүз
- Сигнал синтези
- Динамиктен үн чыгарыңыз
- Аудио үнгө эффекттерди ишке ашырыңыз (реверберация, жаңырык ж. Б.)
Эми биз фон түзүп, долбоорду сунуштаган соң, колуңузга тийген убак!
1 -кадам: Талаптар 1/3 - Аппараттык

Сиздин туулгаңызды ийгиликтүү куруу үчүн, аппаратты иштетүү үчүн бизге кээ бир жабдыктар керек болот.
- DE0-Nano-SoC өнүктүрүү кеңеши Terasic + Adafruit TFT LCD экраны (Arduino)
- Шлем жасоо үчүн 3D принтерине жетүү (эгер сиз университеттин студенти болсоңуз, университетиңизге жакыныраак болсоңуз, кээ бирлеринде лабораториялар студенттер үчүн жеткиликтүү)
- Интернетке туташкан жана минималдуу туташуусу бар компьютер (USB, Ethernet). Компьютериңизде күчтүү процессор болушу керек, анткени Qsys боюнча программаларды түзүү көп убакытты талап кылат.
- (Керектүү эмес) Гербер файлдарынан схеманы кичирейтүү үчүн басылган схемаларды (PCB) чыгаруучу принтер + ПХБга компоненттерди коюу үчүн ширетүүчү темир.
- (Катуу сунушталат): Биздин Instructable менен иштөөңүздөн ырахат алуу үчүн жакшы кофе:)
2 -кадам: 2/3 талаптар - Сиздин микросхемаңыздын компоненттери



Бул жерде сиздин схемаңыз үчүн керектүү компоненттер бар:
- Texas Instrument LM386 AB классындагы аудио күчөткүч
- BreadBoard
- Эркек-Эркек, Эркек-Аял кабелдеринин топтому
- LM358P Digital-to-Analoh конвертери (DAC)
- Баяндамачы
- Чакан микрофон аналогдук схемада колдонулат
- 1кОмдон 220кОмго чейинки резисторлордун оюн комплекси
- Конденсатор 1.5nF
- Конденсатор 50nF
- Конденсатор 100nF
- Конденсатор 100uF
- Конденсатор 220uF
- x4 Capacitors 10uF
3 -кадам: 3/3 талаптар - Программалык камсыздоо


Акыркы, бирок жок дегенде, сизге программалык камсыздоо керек болот:
- Quartus 15.1: Lite версиясы
- C компилятору (мисалы, gcc)
- PCB Дизайн үчүн Altium
-
Altera SoC камтылган пакети SoC картасы менен байланышуу үчүн
- Putty
4 -кадам: Input Circuit




Келгиле, схеманы куралы. Нан тактаңызга чогултуу үчүн жогорудагы схеманы колдонуңуз. Сиз ошондой эле пиндер кантип туташканын көрүү үчүн BreadBoard сүрөтүн жана ичиндеги схеманы көрөсүз. Бүт схема 5V түз ток (DC) менен иштейт. Бул үчүн сиз USB-B конвертери же функция генератору бар 5В батареяны колдоно аласыз.
Кээ бир эскертүүлөр:
- 5V электр менен камсыздоо жана жер нандын өзүнчө горизонталдык линиялары боюнча туташкан
- Эгерде сиз 2 компонентти параллелдүү түрдө туташтыргыңыз келсе, аларды нандын жалпы тилкесине салыңыз
- Эгерде сиз 2 сериялык компонентти туташтыргыңыз келсе, анда компоменттер нандын жалпы тилкесинде бир гана пин болушу керек.
Баннонду кантип колдонуу жана ага схеманы орнотуу боюнча атайын окуу куралын көрүүдөн тартынбаңыз. LM358P аудио күчөткүчүнүн пин ордун кунт коюп окуганды унутпаңыз (жогорудагы сүрөттү караңыз)
5 -кадам: Output Circuit




4-кадам менен бирдей көрсөтмөлөр. Төрт киргизүү: SDI, CS эмес, SCK, LDAC эмес сиздин DE0-Nano-Soc Башкармасынан. Аларды кантип жаратууну кийинчерээк көрөбүз.
LM386 Аудио күчөткүчүнүн пин позицияларын кунт коюп окуганды унутпаңыз (жогорудагы сүрөттү караңыз)
6 -кадам: [ОПЦИОНАЛДЫК] Басып чыгарылган микросхемаларды түзүү Бород жана ширетүүчү компоненттер
![[ОПЦИОНАЛДЫК] Басып чыгарылган микросхемаларды түзүү жана ширетүү компоненттери [ОПЦИОНАЛДЫК] Басып чыгарылган микросхемаларды түзүү жана ширетүү компоненттери](https://i.howwhatproduce.com/images/001/image-307-49-j.webp)
![[ОПЦИОНАЛДЫК] Басып чыгарылган микросхемаларды түзүү жана ширетүү компоненттери [ОПЦИОНАЛДЫК] Басып чыгарылган микросхемаларды түзүү жана ширетүү компоненттери](https://i.howwhatproduce.com/images/001/image-307-50-j.webp)
![[ОПЦИОНАЛДЫК] Басып чыгарылган микросхемаларды түзүү жана ширетүү компоненттери [ОПЦИОНАЛДЫК] Басып чыгарылган микросхемаларды түзүү жана ширетүү компоненттери](https://i.howwhatproduce.com/images/001/image-307-51-j.webp)
Эгерде сизде Circuit Board принтерине ээ болуу бактысы болсо же аны колдоно алсаңыз, биз өзүбүздүн Басма схеманы (ПХБ) түзөбүз. Бул кадам милдеттүү эмес экенин эске алыңыз. Бул кадам сиздин схемаңызды нан тактасынан ПХБга жылдыруудан турат.
Сизге бул 2 GERBER файл керек болот.
Бул файлдар Altiumде жасалган. ПКБны басып чыгаруу үчүн аларды PCB принтер программасында колдонуңуз. ПКБңызды алгандан кийин, ПКБңыздын таза экенин жана тректердин туура басылганын текшериңиз.
Эми бул жерде чыныгы келишим келип чыгат: Лайкоо. Жогорудагы 2 сүрөт ПХБдагы схеманын картасы. Ар бир компоненттин аттары бар (R6, C4, MK1 ж. Б.). 4 жана 5 -кадамдагы сүрөттөр компоненттердин параметрлерин көрсөтөт (Каршылык, өткөрүмдүүлүк..). Нан тактаңыздан ар бир компонентти ПКБга алардын аталышына жараша коюңуз.
Бардыгын ширетүүчү темириңиз менен кошкондон кийин, ар бир компонентти вольтметр менен текшерип, кыска туташуу бар -жогун текшериңиз.
7 -кадам: SoC орнотуу


SoC орнотуулары жөнүндө, сиз терминалдын ичинде SoC камтылган пакетине киргизилген кээ бир буйруктарды жана скрипттерди иштетишиңиз керек болот. Бул үчүн $ PATH кошуу керек болот. PATH терминалды ичинде, сиз буйрукту иштетип жатканда, жол берген каталогдордо файлды издөө үчүн колдонулат. Бул үчүн, төмөнкү буйрук сабын териңиз:
PATH экспорттоо =/cygdrive/c/altera_lite/15.1/quartus/sopc_builder/bin: $ PATH
Андан кийин соф файлынан аталыштарды түзүү үчүн буйрук сабын териңиз. Сиз соф файлын Quartus боюнча долбооруңузду түзүү аркылуу аласыз. Ал үчүн териңиз:./generate_header.
8 -кадам: C ГЭСин программалоо

Биз бул бөлүктө 2 нерсени ишке ашырышыбыз керек, тактап айтканда ADCтин маанисин окуп, аны SPIге жазуу.
1. ADCтин маанисин окуңуз
ADC камтылган эстутумдун дарегине түз жетүү мүмкүн эмес, чындыгында картада бар linux системасы эстутумдун абстракциясын орнотот. ADC дарегине чындап кирүү үчүн, биз mmap функциясын колдонобуз.
"h2p_lw_spi_addr = virtual_base + ((белгиси узун) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (узун белгиси жок) (HW_REGS_MASK));"
Бул көрсөтмө ADC үчүн бөлүнгөн эстутумдун дарегине жетүү үчүн базалык даректин башталышына офсетти кошууга жана алынган дарекке логиканы ЖАНА маскировканы эске алууга мүмкүндүк берет.
Андан кийин, анын маанисин алуу үчүн көрсөткүчтү программада жокко чыгаруу гана керек болот.
2. АДКнын маанисин SPIге жазыңыз
Манипуляция бирдей, бул жолу биз ммапты SPI тарабынан бөлүнгөн дарекке түшүү үчүн беребиз. SPIде жазуу учурунда техникалык документтерде + 1 дарегине адктын мааниси жазылышы керек экени көрсөтүлгөн.
"*(h2p_lw_spi_addr+1) = ((0x1 << 12) | *h2p_lw_adc_addr);"
Бул көрсөтмө SPIге жазууга мүмкүндүк берет. Чынында бит 4, андыктан 1 << 12, SPIди иштетүүгө мүмкүндүк берген бит. Логикалык ЖЕ менен, демек, биз SPIге активдештирүү битин жана ADCдин маанисин беребиз.
9 -кадам: Картадан ADCди санариптик алуу




Биринчиден, компьютериңиздин Ethernet IP дарегин Башкаруу панели -> Тармак -> Карта Пармесалдары аркылуу орнотушуңуз керек. Картанын Ethernet интерфейсин, мулкун, ipv4 дарегин тандап, туруктуу IP, маска ж.
Андан кийин, картаны кубаттоочу жактан микро USB кабели менен туташтырыңыз. Quartus программистин ачыңыз жана экспортту баштаңыз. Бул манипуляция картаны өчүрүүдөн кийин кайра жасалат.
Бул жолу Ethernet уячасынын жанына туташуу үчүн, микро USB сайгыч кабелин алмаштырыңыз. Эми, Putty менен серияга шилтеме аркылуу картага туташуу керек болот. Конфигурация сүрөттөрдө көрүнүп турат, COM5ти COM менен алмаштыруу, андан кийин түзмөгүңүздүн менеджеринен таба аласыз (аны ачуу үчүн терезелердин логотипине оң баскычын басыңыз).
Enter баскычын басыңыз, туташтыңыз.
Долбоорду кайра баштоо үчүн маалымат: - Ethernet ip картасына туура келгенди оңдоо - Картаны күйгүзүү, ар бир кубатты күйгүзгөндө, картада түзүлгөн долбоорду квартустун астына "программа" менен кошуу керек. Бул микро -USB порту аркылуу жасалат - Программанын жыйынтыгын көрсөтүү үчүн биз көбүрөөк микро USB колдонобуз, бирок UART - COM5 сериясына конфигурацияланган шпаклевка менен (же 6 гестиннейр перифи) Картага туташыңыз. - Сырсөздү коюңуз (passwd) - Ifconfig ethxx IPchoice IP дарегин коюңуз (ЖКнын этикасы үчүн IPден алыс эмес) - Qsysке ылайык терминалды камтылган терминал менен түзүңүз (PATH экспорт) - make - scp l exec карта - программаны шпакландын астында аткаруу
10 -кадам: FFT эсептөө

Биздин С программабызга Fast Fourier Transform алуу үчүн, биз Mark Borgerding: Kiss FFT тарабынан жазылган китепкананы колдонобуз. Китепкананы бул жерден жүктөп алсаңыз болот: https://kissfft.sourceforge.net/. Сигналга FFT колдонуу сигнал эффекттерин өзгөртүү жана колдонуу үчүн керек. Ал ошондой эле сигналдын спектрин көрсөтүү үчүн кызмат кыла алат.
C программаңыздагы биринчи кадам FFT натыйжасын сактоо үчүн эстутумду бөлүштүрүүдөн турат. Эстутумдун өлчөмү FFTди эсептөө үчүн колдонулган чекиттин санына жараша болот. Сизде упайлар канчалык көп болсо, ФФТ ошончолук көп болот. Бирок, программа жайыраак иштеп, эс тутумду көбүрөөк колдонот. Эске алыңыз, kiss_fft функциясынан эки массив аласыз: функциянын кириши жана чыгышы (cx_in жана cx_out)
Биздин массив жаңы FFT баалуулуктары менен толтурулганда, башкача айтканда r = Win - 1 болгондо, биз FFTди иштетип жатабыз. Дисплейге байланыштуу, биз спектрдин оң бөлүгүн гана көрсөтүп жатабыз, анткени терс бөлүгү менен оң бөлүгүнүн ортосунда симметрия бар.
Горизонталдык огко байланыштуу, биз негизги жыштыктардын чокуларын айырмалоо үчүн чокунун маанилерин 100*бийиктикке ((бийиктик²) азайтып жатабыз.
Биз ADC баалуулуктары үчүн окуу жыштыгын аныктоо үчүн usleep системасынын чалуусун колдонуп жатабыз. Бул жыштык учурда 1, 5 Гц деп белгиленген.
11 -кадам: FFT көрсөтүү


Adafruit TFT ЖК экранында берилген мисалга негизделген бул жерде: https://www.terasic.com/downloads/cd-rom/de0-nano-s… ADC мааниси.
Ошентип, ADC реестри NIOS менен ГЭСтин ортосунда бөлүшүлөт, анткени ADC баалуулуктары NIOS экранда FFTти көрсөтүү үчүн колдонулат жана ошол эле баалуулуктар тактанын чыгарылышы жана акыры өзгөртүлүшү үчүн SPIге жазылат. аналогдук сигналды алуу үчүн DAC тарабынан.
12 -кадам: Ассамблея

Биз дээрлик бүттүк! Сиз проектин ар бир бөлүгүн (кирүү схемасы, чыгаруу схемасы жана тактасы) чогултууңуз керек болот. Бөлүктөрдү Quartus долбооруна ылайык туура казыктарга туташтыргыла.
- Киргизүү микрафону тарабынан алынган аудио сигналды күчөтүп, чыпкалап жана ордунан жөнөтөт.
- Картада бар C программасы, биз мурда көргөндөй ADCтин маанилерин окуйт жана аны SPIге жазат, ошондо биз карттын GPIOсунда маанини калыбына келтире алабыз.
- Андан кийин SPIдин GPIO чыгышы биздин DAC тарабынан декоддолгон маалыматты өткөрүп, динамикке жетүү үчүн чуркап күчөтүлөт.
13 -кадам: Үн эффекттери


Калган кадам - үн эффекттери.
Мүмкүн болгон эффекттер:
- Жогорку жыштык чыпкасы
- Төмөн жыштык чыпкасы
- …
Сиз бир баскыч аркылуу эффекттерди алмаштыра аласыз. Бул баскыч биздин С программабыздагы өзгөрмөнү өзгөртөт, андыктан туура эффектти колдоно алат.
14 -кадам: [ОПЦИОНАЛДЫК] Туулга жасоо
![[ОПЦИОНАЛДЫК] Туулга жасоо [ОПЦИОНАЛДЫК] Туулга жасоо](https://i.howwhatproduce.com/images/001/image-307-65-j.webp)
![[ОПЦИОНАЛДЫК] Туулга жасоо [ОПЦИОНАЛДЫК] Туулга жасоо](https://i.howwhatproduce.com/images/001/image-307-66-j.webp)
![[ОПЦИОНАЛДЫК] Туулга жасоо [ОПЦИОНАЛДЫК] Туулга жасоо](https://i.howwhatproduce.com/images/001/image-307-67-j.webp)
Бул жерде биз долбоордун эң кол баскычында турабыз:
- Алгач биз туулгабыздын 3D басылган бөлүктөрүн чаптадык.
- Желимделген бөлүктөрдүн ортосундагы боштукту толтуруу үчүн биз 3D калемди колдонуп бүтүрдүк.
- Калем жана туулга менен толтурулган аралыктарды жалпысынан жылтыраттык, ошондон кийин сүрөт жакшы сакталат.
- Биз шлемди 2 катмар менен сырдадык: биринчиси антрацит кара түстө, жакыныраак жана экинчиси жашыл түстү кочкул жашыл түскө бөлөш үчүн.
- Акыры биз каскабыздын капталына мектебибиздин логотибин бастырдык
Сунушталууда:
3D Басып чыгаруучу Диско туулга!: 11 кадам (Сүрөттөр менен)

3D Printable Disco Helmet!: Классикалык Daft Punk 'Thomas' туулгасынан шыктандырылган. Бөлмөнү жарыктандырыңыз жана бул укмуштуу Arduino дискотекасы менен баардык досторуңузга көз артыңыз! Бул долбоорду аягына чыгаруу үчүн сизге 3D принтери жана ширетүүчү керек болот
LED велосипед туулга: 6 кадам (сүрөттөр менен)

LED велосипед туулгасы: Бул жерде өткөргүч боёкту колдонуу менен велосипед туулгаңызга коопсуздук LEDлерин кантип кошуу керек. Мен дайыма велосипедге койгон жарыктарыңызды жоготуп жаттым, алар арзан же сапаттуу эмес. Материалдар: өткөргүч боек өткөргүч эпокси 5 мүнөттүк эпоксид (чоңдор үчүн ысык желим
Унаа алмаштыргыч .: 9 кадам (Сүрөттөр менен)

Унаанын коммутатору: Мен бардык убакта эң сонун комедияны көргөндө, учак (1980), өзүмө " Мен айланчыктап жүргөндө туш келди өчүргүчтөрдүн бир тобун алмаштырып, өзүмдү учкучтай сезгим келет " деп ойлодум. Бирок тилекке каршы менде учкучтук күбөлүк жок. Шыргандын ордуна
Кондиционер велосипед туулга (кайра иштетилген компьютерлерден жасалган): 5 кадам (сүрөттөр менен)

Кондиционер велосипед туулгасы (Кайра иштетилген компьютерлерден жасалган): Тешиктердин үстүндө күйөрмандары бар бул туулга сиздин башыңыздан абаны соруп алат жана сиз анын бетиңизге жана башыңыздын капталына түшүп калганын сезесиз! Күн ысык болгондо велосипед тебүү абдан жакшы. Светодиоддор түнкү велосипедге да жардам берет! Бардык бөлүктөр
Үн алмаштыргыч: 5 кадам (сүрөттөр менен)

Үн алмаштыргыч: Саламатсызбы! Сиз ар дайым үнүңүздү чыпкалоо же модуляция сыяктуу эффект менен өзгөртүүгө жөндөмдүү/калыбына келтирүүчү үн тутумун түзгүңүз келген! Үн алмаштыргыч сиз үчүн жасалган! Бул долбоорго болжол менен 10 саат жана бюджети $ 173.78.1 DE0 нано Ошентип