
Satura rādītājs:
- 1. darbība. Prasības 1/3 - aparatūra
- 2. darbība. Prasības 2/3 - Jūsu ķēdes komponenti
- 3. darbība. Prasības 3/3 - programmatūra
- 4. solis: ievades ķēde
- 5. darbība: izejas ķēde
- 6. darbība: [IZVĒLES] Iespiestas shēmas bora un lodēšanas komponentu izveide
- 7. solis: SoC iestatīšana
- 8. solis: C HPS programmēšana
- 9. darbība: ADC digitālā iegūšana no kartes
- 10. solis: FFT aprēķins
- 11. darbība: FFT parādīšana
- 12. solis: montāža
- 13. darbība. Skaņas efekti
- 14. darbība: [IZVĒLES] Ķiveres izgatavošana
2025 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2025-01-23 14:59


Sveiki! Mēs esam 4 studentu komanda no Sorbonnas Universitātes Politehniskās skolas:
- Louis Buchert
- Bilal Melehi
- Bao Tinh Piot
- Marko Longē
Šis projekts tiek īstenots kā daļa no mūsu pētījumiem, un tā mērķis ir ņemt rokās vairākus instrumentus, kā arī parādīt mūsu teorētiskos sasniegumus.
Slavenais objekts iegūst ķiveres izskatu, kas līdzinās noteiktas videospēles varonim, kura vārds tiks zaudēts. Arī dizaina pusē mums ir ekrāns, kas parāda no skaļruņa izplūstošā audio signāla Furjē transformāciju. Šo austiņu mērķis ir mainīt operatora balsi reālā laikā, izmantojot vairākus atlasāmus efektus.
Izglītības mērķi:
- Uzņemiet skaņu no mikrofona
- Pastipriniet, filtrējiet, digitalizējiet signālu
- Izprotiet signāla FFT
- Parādiet šo FFT ekrānā
- Signālu sintēze
- Izņemiet skaļruni no skaļruņa
- Izprotiet skaņas skaņas efektus (atbalss, atbalss utt.)
Tagad, kad esam apkopojuši pamatinformāciju un prezentējuši projektu, ir pienācis laiks ķerties pie tā!
1. darbība. Prasības 1/3 - aparatūra

Lai veiksmīgi izveidotu ķiveri, mums būs nepieciešama aparatūra, lai darbinātu ierīci.
- DE0-Nano-SoC attīstības padome ar Terasic + Adafruit TFT LCD ekrānu (Arduino)
- Piekļuve 3D printerim, lai izgatavotu ķiveri (ja esat universitātes students, tuvojieties savai universitātei, dažiem ir laboratorijas, kas pieejamas studentiem)
- Dators ar interneta pieslēgumu un minimālu savienojumu (USB, Ethernet). Jūsu datoram jābūt arī spēcīgam procesoram, jo programmu apkopošana Qsys prasa daudz laika.
- (Nav nepieciešams) Printeris, kas ražo iespiedshēmas plates (PCB) no Gerber failiem, lai samazinātu ķēdes izmēru + lodāmurs, lai saliktu komponentus uz PCB.
- (Stingri ieteicams): laba kafija, lai izbaudītu darbu ar mūsu Instructable:)
2. darbība. Prasības 2/3 - Jūsu ķēdes komponenti



Šeit ir jūsu ķēdei nepieciešamās sastāvdaļas:
- Texas Instrument LM386 AB klases audio pastiprinātājs
- BreadBoard
- Vīriešu-vīriešu, vīriešu-sieviešu kabeļu komplekts
- LM358P digitālais-analogo pārveidotājs (DAC)
- Runātājs
- Neliels mikrofons, ko izmanto analogā ķēdē
- Spēļu rezistoru komplekts no 1kOhm līdz 220kOhm
- Kondensators 1,5 nF
- Kondensators 50 nF
- Kondensators 100 nF
- Kondensators 100uF
- Kondensators 220uF
- x4 10uF kondensatori
3. darbība. Prasības 3/3 - programmatūra


Visbeidzot, jums būs nepieciešama programmatūra:
- Kvarts 15.1: vienkāršotā versija
- C kompilators (piemēram, gcc)
- Altium PCB projektēšanai
-
Altera SoC iegultais komplekts, lai sazinātos ar SoC karti
- Špakteles
4. solis: ievades ķēde




Veidosim ķēdi. Izmantojiet iepriekš redzamo shēmas attēlu, lai to saliktu uz maizes dēļa. Jūs redzēsit arī BreadBoard attēlu un ķēdi iekšpusē, lai redzētu, kā tapas ir savienotas. Visa ķēde tiek darbināta ar 5 V līdzstrāvu (DC). Šim nolūkam varat izmantot 5V akumulatoru ar USB-B pārveidotāju vai funkciju ģeneratoru.
Daži atgādinājumi:
- 5V barošanas avots un zeme ir savienoti uz atsevišķām maizes dēļa horizontālajām līnijām
- Ja vēlaties paralēli savienot 2 komponentus, ievietojiet tos kopējā maizes dēļa līnijā
- Ja vēlaties savienot 2 sērijas komponentus, komponentiem ir jābūt tikai vienam tapam maizes dēļa kopējā līnijā.
Nevilcinieties noskatīties īpašu pamācību, kā izmantot maizes dēli, un uz tā uzbūvēt ķēdi. Tāpat neaizmirstiet uzmanīgi izlasīt LM358P audio pastiprinātāja tapas pozīciju (skatiet attēlu iepriekš)
5. darbība: izejas ķēde




Gluži tādi paši norādījumi kā 4. solī. Četras ievades: SDI, nevis CS, SCK, nevis LDAC ir no jūsu DE0-Nano-Soc plates. Vēlāk redzēsim, kā tos ģenerēt.
Neaizmirstiet uzmanīgi izlasīt LM386 audio pastiprinātāja tapu pozīcijas (skatiet attēlu iepriekš)
6. darbība: [IZVĒLES] Iespiestas shēmas bora un lodēšanas komponentu izveide
![[IZVĒLES] Iespiestas shēmas Borad un lodēšanas komponentu izveide [IZVĒLES] Iespiestas shēmas Borad un lodēšanas komponentu izveide](https://i.howwhatproduce.com/images/001/image-307-49-j.webp)
![[IZVĒLES] Iespiestas shēmas Borad un lodēšanas komponentu izveide [IZVĒLES] Iespiestas shēmas Borad un lodēšanas komponentu izveide](https://i.howwhatproduce.com/images/001/image-307-50-j.webp)
![[IZVĒLES] Iespiestas shēmas Borad un lodēšanas komponentu izveide [IZVĒLES] Iespiestas shēmas Borad un lodēšanas komponentu izveide](https://i.howwhatproduce.com/images/001/image-307-51-j.webp)
Ja jums ir paveicies iegūt shēmas plates printeri vai arī varat to izmantot, mēs izveidosim savu iespiedshēmas plates (PCB). Ņemiet vērā, ka šī darbība nav obligāta. Šis solis sastāv tikai no ķēdes pārvietošanas no maizes dēļa uz PCB.
Jums būs nepieciešami šie 2 GERBER faili.
Šie faili tika izveidoti vietnē Altium. Izmantojiet tos savā PCB printera programmatūrā, lai izdrukātu PCB. Kad esat ieguvis savu PCB, pārliecinieties, vai jūsu PCB ir tīra un vai celiņi ir pareizi izdrukāti.
Tagad šeit ir īstais darījums: lodēšana. Iepriekš redzamie 2 attēli ir shēmas karte uz PCB. Katrai sastāvdaļai ir nosaukumi (R6, C4, MK1 utt.). Attēlos 4. un 5. solī ir parādīti komponentu parametri (pretestība, vadītspēja..). Novietojiet katru komponentu no maizes dēļa uz PCB atbilstoši to nosaukumiem.
Kad esat lodējis visu ar lodāmuru, pārbaudiet visas sastāvdaļas ar voltmetru, lai pārbaudītu, vai nav īssavienojuma.
7. solis: SoC iestatīšana


Attiecībā uz SoC iestatīšanu jums būs jāizpilda dažas komandas un skripti, kas iekļauti SoC iegultajā komplektā terminālī. Lai to izdarītu, jums būs jāpievieno daži $ PATH. PATH tiek izmantoti terminālī, lai teiktu, lai meklētu failu direktorijos, kas norādīti ceļā, kad izpildāt komandu. Lai to izdarītu, ierakstiet šādu komandrindu:
eksportēt PATH =/cygdrive/c/altera_lite/15.1/quartus/sopc_builder/bin: $ PATH
Pēc tam ierakstiet komandrindu, lai ģenerētu galvenes no sof faila. Sof failu iegūst, apkopojot savu projektu vietnē Quartus. Lai to izdarītu, ierakstiet:./generate_header.
8. solis: C HPS programmēšana

Šajā daļā mums ir jāapzinās 2 lietas, proti, lasiet, lasiet ADC vērtību un ierakstiet to SPI.
1. Izlasiet ADC vērtību
Atmiņas adrese, kurā atrodas ADC, nav tieši pieejama, patiesībā kartē esošā Linux sistēma izveido atmiņas abstrakciju. Lai patiešām piekļūtu ADC adresei, mēs izmantosim mmap funkciju.
"h2p_lw_spi_addr = virtual_base + ((neparakstīts garš) (ALT_LWFPGASLVS_OFST + SPI_0_BASE) & (neparakstīts garš) (HW_REGS_MASK));"
Šī instrukcija ļauj bāzes adreses sākumā pievienot nobīdi, lai sasniegtu ADC piešķirtās atmiņas adresi, un ar iegūto adresi veikt loģiku UN, lai ņemtu vērā maskēšanu.
Pēc tam programmā būs jānorāda tikai rādītājs, lai iegūtu tā vērtību.
2. SPI ierakstiet ADC vērtību
Manipulācija ir identiska, šoreiz mmap dodam nobīdi, lai nokļūtu uz SPI piešķirto adresi. Rakstot SPI, tehniskajā dokumentācijā norādīts, ka jums ir jāraksta uz adresi +1 adc vērtība.
"*(h2p_lw_spi_addr+1) = ((0x1 << 12) | *h2p_lw_adc_addr);"
Šī instrukcija ļauj rakstīt SPI. Patiešām, 4. bits, tātad 1 << 12, ir bits, kas ļauj aktivizēt SPI. Izmantojot loģisku VAI, mēs SPI piešķiram gan aktivizācijas bitu, gan ADC vērtību.
9. darbība: ADC digitālā iegūšana no kartes




Pirmkārt, jums būs jāiestata datora Ethernet IP adrese, izmantojot vadības paneli -> Tīkls -> Kartes parmezāli. Izvēlieties kartes Ethernet interfeisu, īpašumu, ipv4 adresi un ievadiet fiksētu IP, masku utt.
Pēc tam pievienojiet karti no strāvas ligzdas puses, izmantojot mikro USB kabeli. Atveriet programmētāju Quartus un sāciet eksportēšanu. Šī manipulācija tiks atkārtota pēc katras kartes izslēgšanas.
Nomainiet mikro USB spraudņa kabeli, lai šoreiz pievienotos blakus Ethernet ligzdai. Tagad, izmantojot Putty, būs nepieciešams izveidot savienojumu ar karti, izmantojot seriālo saiti. Konfigurācija ir redzama fotoattēlos, ideja ir aizstāt COM5 ar COM, kam seko numurs, ko varat atrast ierīces pārvaldniekā (ar peles labo pogu noklikšķiniet uz logotipa, lai to atvērtu).
Nospiediet taustiņu Enter, un jūs esat izveidojis savienojumu.
Informācija, lai restartētu projektu: - Labojiet kartei atbilstošo Ethernet ip. - Ieslēdziet karti, katru reizi, kad ieslēdzat strāvu, kartē apkopoto projektu ir nepieciešams ievietot ar "programmu". Tas tiek darīts, izmantojot mikro -USB portu - Lai varētu parādīt programmas rezultātu, mēs izmantojam vairāk mikro USB, bet UART - Ar špakteli, kas konfigurēts sērijveida COM5 (vai 6 pulksteņu gestinnaire perifērijai) Pievienojiet kartei. - Uzstādīt paroli (passwd) - Iestatīt IP adresi ifconfig ethxx IPchoice (IP nav tālu no datora ētikas) - Izveidot galveni saskaņā ar Qsys ar iebūvētu termināli (eksporta ceļš) - make - scp l exec karte - izpildīt zem špakteles prog
10. solis: FFT aprēķins

Lai mūsu C programmā iegūtu ātro Furjē transformāciju, mēs izmantosim bibliotēku, kuras autors ir Marks Borgerdings: Kiss FFT. Jūs varat lejupielādēt bibliotēku šeit: https://kissfft.sourceforge.net/. FFT piemērošana signālam ir nepieciešama, lai modificētu un piemērotu signāla efektus. Tas var kalpot arī signāla spektra attēlošanai.
C programmas pirmais solis ir atmiņas piešķiršana, lai saglabātu FFT rezultātu. Atmiņas apjoms ir atkarīgs no FFT aprēķināšanai izmantotā punktu skaita. Jo vairāk jums būs punktu, jo precīzāks būs FFT. Tomēr programma darbosies lēnāk un izmantos vairāk atmiņas. Ņemiet vērā, ka no funkcijas kiss_fft jūs iegūsit divus masīvus: funkcijas ievadi un izvadi (cx_in un cx_out)
Kad mūsu masīvs ir piepildīts ar jaunām FFT vērtībām, ti, kad r = Win - 1, mēs apstrādājam FFT. Attiecībā uz displeju mēs parādām tikai pozitīvo spektra daļu, jo pastāv simetrija starp negatīvo un pozitīvo daļu.
Attiecībā uz horizontālo asi mēs samazinām maksimālās vērtības par 100*augstumu/(augstums²), lai atšķirtu galvenās frekvenču virsotnes.
Mēs izmantojam usleep sistēmas izsaukumu, lai definētu lasīšanas biežumu ADC vērtībām. Šī frekvence pašlaik ir iestatīta uz 1, 5 Hz.
11. darbība: FFT parādīšana


Pamatojoties uz piemēru, kas sniegts Adafruit TFT LCD ekrānā, kas pieejams šeit: https://www.terasic.com/downloads/cd-rom/de0-nano-s… mēs esam ieprogrammējuši mūsu padomes NIOS, lai viņš varētu lasīt ADC vērtība.
Tātad ADC reģistrs tiek koplietots starp NIOS un HPS, jo ADC vērtības tiks izmantotas, lai parādītu FFT uz NIOS ekrāna, un tās pašas vērtības tiks ierakstītas SPI, lai tās tiktu izvadītas no tāfeles un beidzot tiktu konvertētas DAC, lai iegūtu analogo signālu.
12. solis: montāža

Mēs esam gandrīz pabeiguši! Jums būs jāsamontē visas projekcijas daļas (ieejas ķēde, izejas ķēde un tāfele). Noteikti pievienojiet detaļas pareizām tapām saskaņā ar Quartus projektu.
- Ievades shēma nosūtīs mikrofona uztverto audio signālu, pastiprinātu, filtrētu un nobīdītu.
- Kartē esošā programma C nolasīs ADC vērtības, kā mēs redzējām iepriekš, un uzrakstīs to uz SPI, lai mēs varētu atgūt kartes GPIO vērtību.
- Pēc tam SPI izejas GPIO pārsūtīs informāciju, kuru mūsu DAC dekodēs un pastiprinās, skrienot, lai sasniegtu skaļruni.
13. darbība. Skaņas efekti


Atlicis tikai skaņas efekti.
Pieejamie efekti ir:
- Augstas frekvences filtrs
- Zemfrekvences filtrs
- …
Izmantojot pogu, varat pārslēgties starp efektiem. Šī poga mainīs mūsu C programmas mainīgo, lai tā varētu piemērot pareizo efektu.
14. darbība: [IZVĒLES] Ķiveres izgatavošana
![[Pēc izvēles] Ķiveres izgatavošana [Pēc izvēles] Ķiveres izgatavošana](https://i.howwhatproduce.com/images/001/image-307-65-j.webp)
![[Pēc izvēles] Ķiveres izgatavošana [Pēc izvēles] Ķiveres izgatavošana](https://i.howwhatproduce.com/images/001/image-307-66-j.webp)
![[Pēc izvēles] Ķiveres izgatavošana [Pēc izvēles] Ķiveres izgatavošana](https://i.howwhatproduce.com/images/001/image-307-67-j.webp)
Šeit mēs esam projekta manuālākajā solī:
- Vispirms mēs pielīmējām dažādas ķiveres 3D drukātās daļas.
- Lai aizpildītu atstarpes starp līmētajiem gabaliem, mēs pievienojām apdari, izmantojot 3D pildspalvu.
- Mēs noslīpējām starpsienas, kas piepildītas ar pildspalvu un ķiveri, lai glezna pēc tam labi noturētos.
- Mēs krāsojām ķiveri ar 2 slāņiem: pirmais antracīta melnā krāsā, tuvplānā un otrs primāri zaļš no tālāk, lai iegūtu tumšāk zaļas nokrāsas.
- Visbeidzot, mēs ķiveres malā iespiedām mūsu skolas logotipu
Ieteicams:
Covid drošības ķivere 1. daļa: Ievads Tinkercad ķēdēs!: 20 soļi (ar attēliem)

Covid drošības ķivere 1. daļa: Ievads Tinkercad shēmās!: Sveiki, draugs! Šajā divdaļīgajā sērijā mēs iemācīsimies izmantot Tinkercad shēmas - jautru, spēcīgu un izglītojošu rīku, lai uzzinātu, kā darbojas shēmas! Viens no labākajiem veidiem, kā mācīties, ir darīt. Tātad, vispirms izstrādāsim savu projektu:
3D izdrukājama disku ķivere!: 11 soļi (ar attēliem)

3D izdrukājama disku ķivere!: Iedvesmota no klasiskās Daft Punk 'Thomas' ķiveres. Apgaismojiet istabu un apskaudiet visus savus draugus ar šo apbrīnojamo disku ķiveri, kas darbina Arduino! Lai pabeigtu šo projektu, jums būs nepieciešama piekļuve 3D printerim un lodāmurim. Ja vēlaties
LED velosipēdu ķivere: 6 soļi (ar attēliem)

LED velosipēdu ķivere: Lūk, kā pievienot drošības gaismas diodes velosipēdu ķiverei, izmantojot vadošu krāsu. Es vienmēr pazaudēju tās gaismas, kuras tu piestiprini pie sava velosipēda, un tās nav lētas vai labas kvalitātes. Materiāli: vadoša krāsa vadoša epoksīda 5 minūšu epoksīds (karsta līme audzēšanai
Kā izveidot LED sloksnes krāsu mainītāja shēmu: 6 soļi

Kā izveidot LED sloksnes krāsu mainītāja shēmu: Hii draugs, šodien es izveidošu LED sloksnes krāsu mainītāja ķēdi. Sāksim
TEHNIKA VIKINGS! LED ragi kosmosa vikingu ķiverē: tilpuma indikators + caurspīdīga vikingu ķivere: 6 soļi

TEHNIKA VIKINGS! LED ragi uz kosmosa vikingu ķiveres: tilpuma indikators + caurspīdīga vikingu ķivere: Jā! Šī ir kosmosa vikingu ķivere. *** Atjauninājums, to vajadzētu pārdēvēt par Techno Viking ķiveri *** Bet tā 2010. gada oktobris, un es tikai šodien uzzināju par Techno Viking. Labi aiz memes līknes. Whateva 'Šeit viņš ir ar augstāku produktivitāti