Përmbajtje:

Gjenerator i tonit të rrobave të mikrokontrolluesit në kodin C: 8 hapa (me fotografi)
Gjenerator i tonit të rrobave të mikrokontrolluesit në kodin C: 8 hapa (me fotografi)

Video: Gjenerator i tonit të rrobave të mikrokontrolluesit në kodin C: 8 hapa (me fotografi)

Video: Gjenerator i tonit të rrobave të mikrokontrolluesit në kodin C: 8 hapa (me fotografi)
Video: Часть 1 - Аудиокнига Уолдена Генри Дэвида Торо (гл. 01) 2024, Korrik
Anonim
Gjenerator i Tonit të Pëlhurës së Mikrokontrolluesit në kodin C
Gjenerator i Tonit të Pëlhurës së Mikrokontrolluesit në kodin C

Në fund të tetorit të vitit të kaluar përdoruesit carmissu udhëzues më dërguan një mesazh pasi pashë sintezën time të drekës. Nga mesazhi i tij: Unë mësoj muzikë në shkollën fillore. Ne luajmë shumë muzikë regjistruese. dmth fëmijët luajnë fyellë të vegjël …… Unë kam disa fëmijë me nevoja të veçanta të cilët mund t'i përdorin këto pllaka afishe të zeza me rrathë që kanë emrin e shënimit. Këta studentë i shtyjnë qarqet me emrat e shënimeve në të njëjtën kohë pjesa tjetër e studentëve po luajnë një këngë ….. Shumica e fëmijëve me nevoja të veçanta mund ta bëjnë këtë mjaft mirë dhe në kohë me muzikën. Ajo që po kërkoj është të ndërtoj një gjenerator shumë të thjeshtë të tingullit në mënyrë që këta fëmijë të mund të luajnë të njëjtën fushë me ato që luhen nga studentët në regjistruesit e tyre. Unë do të isha vetëm disa fusha. Mendova se mund të ngjisja një lloj butoni të vogël në pjesën e poshtme të qarqeve të tyre të rrumbullakëta, në mënyrë që kur t'i shtypnin, tingulli të dilte nga një altoparlant i vogël, aq i fortë sa të dëgjonin. Si të mund të rezistoja duke pasur një nënë mësuese dhe duke e pëlqyer shkollën? Të them të vërtetën nuk munda. Kjo është pothuajse një kronikë e projektit dhe udhëzime se si të krijoni tuajën.

Hapi 1: Fillimi ose Pse nuk mund t'i përmbahesha analogut

Fillimi ose pse nuk mund të qëndroja në analog
Fillimi ose pse nuk mund të qëndroja në analog

Gjërat e mira fillojnë në faqen tjetër. Nëse doni të dini se si përfundova duke përdorur pjesët që bëra, lexoni më tej. Kohëmatësi i vërtetë: Pasi i dhashë projektit disa mendime, menjëherë mendova për gjeneratorin e tonit piezo nga libri im op-amps Forest Mims III. Duket si një mënyrë e mirë për të shkuar, është vetëm një piezo, një IC 741 dhe disa përbërës pasivë. Nuk ka punë të madhe, apo jo? Epo ai ka 2 probleme, 1) kur shtypni çelësin, është e mundur të ndryshoni lartësinë 2) është e pamundur të akordohet. E para ka të ngjarë të kapërcehet me një teknologji debounce, megjithëse nuk dija si ta bëja këtë pa shtuar një numërues tjetër. Mund të jetë gjithashtu një çështje me përdorimin e një piezo. Çështja e dytë thjesht u bë e vështirë kur filluat të përpiqeni të godisni një fushë të caktuar. Po 555? Fleta e të dhënave tregon një funksion të zbehjes së kohës bazuar në rezistorët dhe kondensatorët. Kjo është e mrekullueshme derisa të filloni të shtypni vlerat aktuale të pjesëve të botës reale, atëherë do të jetë e vështirë të goditësh një hap prej 440Hz. Ju mund të përdorni tenxhere të zbukuruara për ta rregulluar atë, por me kalimin e kohës ato tentojnë të lëvizin. Akordimi i vazhdueshëm i instrumentit, i përpiluar mbi rritjen e shpejtë të kostos dhe sasisë së pjesëve, dhe gruaja ime duke bërë ndryshimin e fushës kur shtypi butonin vrau 555 për këtë projekt. Op-amp: Nuk ka problem, njerëzit kanë bërë sinteza me op-amps që para se të lindja. Sa e vështirë mund të jetë të bësh një të vërtetë të thjeshtë, me pak pjesë dhe shënime specifike? Më e vështirë nga sa mendoja. Shumica e modeleve atje janë shumë të ndërlikuara për këtë projekt. Dizajnerët Synth janë jashtë për formën/tonin e përsosur të valës. Kjo bie ndesh drejtpërdrejt me një projekt që supozohet të jetë mjaft i lirë për buxhetet e shkollës ose mësuesve. Ndërtimi i një tastiere është mjaft i lehtë, është vetëm një grumbull rezistencash dhe fuqie ose një bandë diodash dhe fuqie. Theshtë pjesa tjetër e modelit të qarkut, dhe kostoja e kompjuterëve me porosi që fillon të dalë jashtë kontrollit për dikë në një nivel elektronik fillestar. Ripërkufizimi i projektit: Kështu që projekti u ripërcaktua para se të filloja vërtet. Kisha nevojë për diçka që mund të ndërronte një kunj të altoparlantit, me kohë, me shtypjen e një butoni. Unë nuk doja të kisha nevojë për të hartuar dhe blerë një PCB. Kjo duhej të përdorte sa më pak përbërës të ishte e mundur dhe të mblidhej si një çantë fillestare. Më shikonte gjatë gjithë kohës në fytyrë. Duh !! Mikrokontrollues! Mikrokontrolluesi: Pra, pasi bleva një çantë të pajisjeve moderne Bare Bones Arduino dhe një bord të synuar të thjeshtë Evil Mad Scientist dhe i lashë ata të ulen në tryezën time për muaj të tërë duke mos u përdorur, pata projektin e përsosur hyrës. Fillova të shikoj kohën që duhet për të bashkuar të dyja, kurbën e të mësuarit për kodin, koston, pjesët shtesë të nevojshme dhe për ta bërë atë të bëjë atë që dua dhe u vendos në tabelën e synuar. Kostoja ishte goxha e barabartë, 15 dollarë plus një kabllo FTDI prej 20 dollarësh për Arduino, 12 dollarë plus një programues USBtinyISP prej 22 dollarësh. Unë tashmë e njihja C ++ nga kolegji i vogël që mund të qëndroja dhe e kuptova C për mikrokontrolluesit nuk do të ishte aq e keqe, ndërsa përveçse të ndez një dritë për t'u siguruar që kam vendosur pajisjen time së bashku, nuk kisha përvojë në Arduino. Të dyja mund të montohen. Ishte shumë një përplasje, kështu që vendosa për më pak pjesë të të dyjave, tabelën e synuar.

Hapi 2: Çfarë ju nevojitet Rev 1

Ajo që ju nevojitet Rev 1
Ajo që ju nevojitet Rev 1

Pjesë KostoUSBtinyISP AVR Programmer Kit (USB SpokePOV Dongle) v2.0 22,00 dollarë 5-pk 2.75 dollarë 5) 3.49 $ (4paketë) https://www.radioshack.com/product/index.jsp?productId=2062539"AAA "Mbajtës i baterisë 1.79 $ $ https://www.radioshack.com/product/index.jsp? ProductId = 2102735SPST Submini Slide Switch (opsional për ndërprerësin e energjisë) 2.69 $ (2 pako) https://www.radioshack.com/product/index.jsp?productId=2062490LED dhe rezistencë (opsionale, nëse dëshironi një dritë të energjisë) $ duhet të jetë falas nëse ata janë të shtrirë Wire $ gjithashtu duhet të jetë i shtrirë Silver argjendi (nëse kjo po shkon diku pranë fëmijëve, ndoshta nuk duhet të përdorni plumb, prindërit bëhen shumë të çuditshëm për atë lloj gjëje;)) Fërkimi i alkoolit (për të lëviz fluksi) Nëse doni disa vende për të kursyer para, nuk keni pse të merrni pjesë nga RadioShack. E bëra sepse janë afër dhe të parashikueshëm.

Hapi 3: Kuvendi Rev 1

Kuvendi Rev 1
Kuvendi Rev 1
Kuvendi Rev 1
Kuvendi Rev 1

Vendosni pjesët tuaja së bashku siç tregohet. Sigurohuni që të përdorni alkool dhe një furçë fluksi kur të keni mbaruar për të hequr qafe çdo fluks nga bashkimi. Skema është më poshtë për ata që e preferojnë atë. D1 dhe R1 mund të jenë gjithçka që dëshironi, është vetëm një dritë fuqie. C1 është vetëm për të ndihmuar në bërjen e energjisë pak më të qëndrueshme. Kam përdorur një 10uF. Kjo skemë është e njëjtë për versionet e mëvonshme, thjesht ndërroni butonat e shtypjes për çelsat e rrobave. në rishikimin e fundit shtova çelsat në PC4 dhe PC5 ose kunjat 27 dhe 28.

Hapi 4: Çfarë ju nevojitet Rev 2

Ajo që ju nevojitet Rev 2
Ajo që ju nevojitet Rev 2

Pra, në thelb po ndërroni butonat e Radio Shack për ato prej pëlhure të bëra me dorë. Ju nevojiten: Ngjyra të shumta pëlhure, ose një ngjyrë nëse doni që çdo shënim të ketë të njëjtën ngjyrë. Seksioni i jorganit të dyqanit tuaj më të afërt të rrobave është vendi më i mirë për ta blerë këtë me çmim të ulët. Lagjet me tegela janë 1.50 dollarë dhe mund të merrni një ton çelsin nga një. Pëlhurë përçuese, unë sugjeroj pëlhurën Flectron nga LessEMF është 20 dollarë për një copë 12 "x54" Eyelets për ngjitjen e telit në pëlhurë. Mund t’i blini në shumicën e dyqaneve të rrobave. JoAnn ka mjetin dhe 25 për 2 dollarë Ju do të keni nevojë për një çekiç për këtë. Tela, kam përdorur 22AWG, unë sugjeroj më të vogël nëse e keni atë. Duke u bashkuar, për të marrë pëlhurën me ngjyrë dhe përçuese që të ngjitet së bashku. Pyesni në dyqan dhe ndoshta mund ta blini pranë oborrit. Kjo ndoshta do të funksiononte mirë, megjithëse ju sugjeroj të pyesni dikëBatting, në fillim kam përdorur një gjë vërtet të lirshme, pastaj kalova në diçka të thurur më fort. Unë sugjeroj që ju thjesht të provoni disa të ndryshme derisa të gjeni atë që funksionon më mirë. Tubat e tkurrjes së nxehtësisë, kjo e bëri të gjithën shumë më të menaxhueshme. telja tkurret telat së bashku ndërsa kalojnë njëri -tjetrin dhe ata do të qëndrojnë shumë më mirë.

Hapi 5: Kuvendi Rev 2

Kuvendi Rev 2
Kuvendi Rev 2
Kuvendi Rev 2
Kuvendi Rev 2
Kuvendi Rev 2
Kuvendi Rev 2

Vendosni pëlhurën me shumë ngjyra mbi njëra-tjetrën dhe prerë një katror, nuk ka pse të jetë perfekte. Hekuroseni pëlhurën për të nxjerrë ndonjë palosje, shtrojini përsëri njëra mbi tjetrën dhe sigurohuni që skajet të përputhen. Pritini çdo skaj që nuk dëshiron. Pritini pjesën e sipërme dhe të poshtme të rrumbullakët, duke lënë anët e majta dhe të djathta drejt. Ju do të përmbysni çelësin pas qepjes, kështu që mos i bëni anët e rrumbullakosura shumë të rrumbullakëta dhe lini një lartësi të mjaftueshme në anët e sheshta për ta çuar ndërprerësin lehtë kur të keni mbaruar. Përfundoni anën e sheshtë të ndërprerësit të parë dhe të fundit. Kthehuni tek makina juaj e qepjes dhe vendosni dy raunde së bashku në mënyrë që ana e mirë të përballet me njëra -tjetrën dhe të qepni një tegel në pjesët e sheshta. Pasi majat e butonave janë qepur, prerë sheshe nga pëlhura përçuese dhe bashkoni njërën anë. Pritini tela në gjatësi dhe hiqeni njërin fund. lidhni tela rreth njërës prej vrimave të syrit. (saldimi nuk ka të ngjarë të ngjitet në vrimën e syrit) Pritini një copë të vogël në pëlhurë në një cep dhe godisni vrimën për të ngjitur pëlhurën dhe tela. hiqni mbështetësen nga shkrirja dhe bashkoni pëlhurën përçuese në pjesën e prapme të pëlhurës me ngjyrë. Përsëriteni për të gjithë çelsat. Për t'i bërë gjërat më të lehta, mund t'i zvogëloni tubat telat së bashku sa herë që një tel kalon tela për çelësin tjetër. Merrni ose bëni një copë pëlhure në gjatësinë e grupit të ndërprerësit dhe prerë një rrip pëlhure përçuese në gjatësinë e tij. Ndryshe nga çelsat me ngjyra, kjo është një pjesë e gjatë. Kjo do të jetë ajo që butonat prekin për të bërë lidhjen. Pritini një çarje të vogël dhe ngjitni një tel në të me një vrimë, si majat e ndërprerësve me ngjyrë. Shkrijeni atë në pjesën e prapme të pëlhurës së poshtme. Qepni pjesën e sipërme dhe të poshtme së bashku me pëlhurën përçuese përballë, përdorni një shkop oborri për të përmbysur setin pasi të jetë qepur. Pritini disa vrima të vogla në goditje, unë përdor një shkopinj për të marrë një rreth pastaj hiqni shkopin dhe bëni prerjen. Pritini ato në formë dhe futini në çelsin. Kjo është ajo që e mban pëlhurën përçuese veç e veç. Mund të jetë më e lehtë për të futur baterinë ndërsa jeni duke përmbysur çelsat në vend të pas. Gjërat që përdorja u grisën shumë keq ndërsa e futja dhe më duhej të merrja goditje të ndryshme. Së fundi, lidhni telat në bordin e synuar dhe jeni gati. Shiriti i gjatë i poshtëm do të bluhet.

Hapi 6: Çfarë ju nevojitet Rev 3

Ajo që ju nevojitet Rev 3
Ajo që ju nevojitet Rev 3

Në Rev 3 i bëra çelsat të pavarur nga instalimet elektrike. Kjo kursente një ton kohë. Më pëlqen gjithashtu pamja e rezultatit të përfunduar shumë më tepër. Pra, këtu janë pjesët e reja që ju nevojiten: Snaps, Just goted them from JoAnn's. Ata erdhën me një mjet instalimi jo për keq për 7 dollarë. Unë do të sugjeroja një nga mjetet e pincës në vend, pasi më duhej të ndaja veglën time për të instaluar kapëset në mes. Qepjet do të ishin një alternativë e mirë, megjithëse kërkojnë më shumë kohë për t'u ngjitur. Fije përçuese, Spark Fun ka gjëra që mund të shkojnë në makinën tuaj të qepjes. Më duhej të shkoja vërtet ngadalë në makinën time, përndryshe filli do të prishej. Largësia juaj mund të ndryshojë

Hapi 7: Kuvendi Rev 3

Kuvendi Rev 3
Kuvendi Rev 3
Kuvendi Rev 3
Kuvendi Rev 3
Kuvendi Rev 3
Kuvendi Rev 3
Kuvendi Rev 3
Kuvendi Rev 3

Ky rishikim ishte shumë më i mirë se ai i fundit për sa i përket kohës deri në ndërtim. Plus, të kesh çelësa të lëvizshëm më shpëtoi mendjen mendore më shumë se një herë. Filloni duke bërë bazën. Justshtë vetëm një e katërta e zhveshur e palosur në gjysmë. Vendosni një shtresë goditje në krye dhe qepni, duke lënë një vrimë për ta përmbysur atë. Shtyjeni sendin nëpër vrimë dhe në thelb keni një gjë të llojit të jastëkut. Unë e mbylla atë, kështu që ishte më e lehtë të punoja me të. Përdorni fije të thjeshta dhe tërhiqeni. Kam bërë diamante në këtë, por ndoshta herën tjetër do të vendos një dragua prapa, ose diçka të lezetshme. Tani, te çelsat. Më pëlqen ky dizajn sepse në thelb mund të bëni një ton prej tyre para kohe dhe thjesht të përdorni atë që dëshironi. filloni duke përdorur një copë kartoni, letër ose pëlhurë dhe prerë një formë dardhe prej saj. Përdoreni atë si një udhëzues për të prerë pjesën e sipërme dhe të poshtme për secilin ndërprerës. Kam prerë një ngjyrë për çdo fund dhe një ngjyrë të ndryshme për majat, por ju mund të jeni krijues dhe të bëni atë që dëshironi. Pritini udhëzuesin tuaj në një formë sheqeri që do të përshtatet lehtësisht brenda ndërprerësit. Zgjasni "shkopin" në mënyrë që të mund të mbështillet mbi buzën e "dardhës". Pritini formën nga pëlhura e shkrirë dhe përçuese dhe bashkoni njërën anë të pëlhurës përçuese. Hiqni mbështetësen nga materiali i shkrirjes dhe bashkojeni atë në pjesën e sipërme të pëlhurës që do të jetë në pjesën e poshtme dhe pjesën e poshtme të pëlhurës që do të jetë në krye. Përfundoni pjesën shtesë rreth majës. Drejtohuni tek makina juaj e qepjes dhe vendosni goditje me vrima midis pëlhurës së sipërme dhe të poshtme. Qepni jashtë pëlhurës përçuese dhe kaloni mbi pjesën "shkop" të ndërprerësit. Kam gjetur se është e mundur të qepni pëlhurën përçuese të lartë në pjesën e poshtme duke krijuar një të shkurtër. Bettershtë më mirë të mos qepësh përmes pëlhurës përçuese. Bashkangjit kapjet dhe kalimi është bërë. Unë e kisha më të lehtë të përdorja kapësen mashkullore për të gjitha lidhjet e poshtme/GND dhe atë të femrës për të gjitha majat. Kjo i bën të gjithë çelsat të këmbyeshëm. Qarku: Gjëja në lidhje me prerjen e raundeve është se ju keni shumë pjesë shtesë. Mora copëzat e mia, shkriva copa të mëdha të shkrirjes në copa të mëdha të rrobave përçuese dhe i përdor ato për të prerë drejtkëndëshat më të vegjël që përdorja si jastëkë. Vendosni përafërsisht çelsin tuaj dhe bashkojini jastëkët në bazë me hapësirë të mjaftueshme për të qepur një vijë për ta dhe për të bërë një çast. Këmba e makinës qepëse që kam përdorur nuk e ka marrë me dashamirësi të jesh shumë afër fotografisë, prandaj mbajeni këtë në mendje dhe jepini vetes pak hapësirë. Meqenëse mora fije përçuese që mund të hynte në makinën time të qepjes, thjesht qepa një vijë nga jastëku në jastëk dhe mbrapa. Më duhej të ecja ngadalë ose fija do të prishej, por ishte një ton më e shpejtë se sa qepja me dorë. Gjithashtu me fije përçuese në bobinë dhe gjilpërë, mora një lidhje vërtet të mirë të fortë. Gjërat prishen si të çmendura, por një zam i vogël artizanal ose Elmers e pastron atë menjëherë. Mundohuni t'i mbani linjat larg njëri -tjetrit dhe nuk duhet të keni ndonjë problem. Asambleja përfundimtare: Ndizni të gjithë çelsat tuaj, lidhni tabelën, ngarkoni kodin dhe mbaroni. Kam përdorur tela për të shkuar nga dërrasa në jastëk dhe pastaj vetëm e qepa telin në bazë me dorë. Për versionin tjetër, unë do ta montoj tabelën në një kuti plastike me kapëse për ta ngjitur në bazë, në mënyrë që gishtat boshe të mos e ndajnë atë.

Hapi 8: Kodi

Kodi
Kodi

Nëse nuk keni programuar kurrë një çip më parë, kjo është një detyrë disi e frikshme. Nuk ndihmon që mjetet të jenë të copëtuara dhe shumicën e kohës ju duhet të kryeni të njëjtin operacion disa herë. Dy burimet më të mira që kam gjetur për të kuptuar se çfarë po ndodh është faqja për USBtinyISP, https://www.ladyada.net/make/usbtinyisp/ dhe kursi i përplasjes në programimin e lodrës së zhurmës, http:/ /blog.makezine.com/archive/2008/05/noise_toy_crashcourse_in.html Këto duhet të jenë në gjendje t'ju fillojnë.

Shumë njerëz pëlqejnë Arduino për këtë kodim dhe nuk ka asgjë të keqe në përdorimin e tij, përveçse mendoj se i shton shumë fryrje një programi normalisht të thjeshtë. Gjithashtu, unë e njihja C dhe nuk e njoh Arduino. Ndoshta një ditë, nëse ka kohë.:) Kodi: {{{#include // Përdorni një kunj për të ndezur SPK /// Typedefs ///////// typedef char unsigned u8; int kryesore (e pavlefshme) {u8 btnState0; u8 btnStat1; u8 btnState2; u8 btnShteti3; u8 btnState4; u8 btnState5; u8 btnShteti6; DDRB = (1 << DDB6); // Vendosni SPK për daljen PORTD = (1 << PD0) | (1 << PD1) | (1 << PD2) | (1 << PD3) | (1 << PD4); // Set Button High PORTC = (1 << PC4) | (1 << PC6); TCCR2B = (1 << CS21); // Vendosni kohëmatësin ndërsa (1) {btnState0 = ~ PINC & (1 << PC5); btnState1 = ~ PINC & (1 << PC4); btnState2 = ~ PIND & (1 << PD0); btnState3 = ~ PIND & (1 << PD1); btnState4 = ~ PIND & (1 << PD2); btnState5 = ~ PIND & (1 << PD3); btnState6 = ~ PIND & (1 << PD4); if (btnState0) {if (TCNT2> = 190) {PORTB ^= (1 << PD6); // Rrokullisje SPK Pin TCNT2 = 0; }} if (btnState1) {if (TCNT2> = 179) {PORTB ^= (1 << PD6); // Rrokullisje SPK Pin TCNT2 = 0; }} if (btnState2) {if (TCNT2> = 159) {PORTB ^= (1 << PD6); // Rrokullisje SPK Pin TCNT2 = 0; }} if (btnState3) {if (TCNT2> = 142) {PORTB ^= (1 << PD6); // Rrokullisje SPK Pin TCNT2 = 0; }} if (btnState4) {if (TCNT2> = 126) {PORTB ^= (1 << PD6); // Kthejeni SPK Pin TCNT2 = 0; }} if (btnState5) {if (TCNT2> = 119) {PORTB ^= (1 << PD6); // Kthejeni SPK Pin TCNT2 = 0; }} if (btnState6) {if (TCNT2> = 106) {PORTB ^= (1 << PD6); // Kthejeni SPK Pin TCNT2 = 0; }}}}}}} Nga vijnë terrenet? Duhej pak matematikë. Ora e kohëmatësit në atmega 168 funksionon në 1MHz. Kjo është shumë e shpejtë për audio, kështu që ne duhet të përdorim parashkruesin /8. Pastaj meqenëse ne duhet të rrokullisim pinin e daljes lart e poshtë në mënyrë që të bëjmë 1 cikël, ne duhet të ndajmë përgjigjen me 2 në mënyrë që të dalim me lartësinë e duhur. Formula duket kështu, Fusha për të futur kodin = (1000000/8)/(Frekuenca e synuar*2) Për A (440) kjo do të ishte 125000/880 = 142.045 ose 142 për qëllimet tona, pasi vlera duhet të jetë një numër i plotë Me Frekuencat e synuara të shënimeve mund të gjenden pothuajse kudo në internet dhe në përgjithësi janë të njëjta. Unë ende dua të shtoj një deklaratë rasti në vend që të përdor një grup Ifs dhe të përdor PWM për të kontrolluar më mirë volumin dhe lartësinë e altoparlantit, por tani për tani, kjo funksionon.

Recommended: