Talaan ng mga Nilalaman:

Ang Microcontroller Fabric Tone Generator sa C-code: 8 Mga Hakbang (na may Mga Larawan)
Ang Microcontroller Fabric Tone Generator sa C-code: 8 Mga Hakbang (na may Mga Larawan)

Video: Ang Microcontroller Fabric Tone Generator sa C-code: 8 Mga Hakbang (na may Mga Larawan)

Video: Ang Microcontroller Fabric Tone Generator sa C-code: 8 Mga Hakbang (na may Mga Larawan)
Video: Arduino MASTERCLASS | Full Programming Workshop in 90 Minutes! 2024, Hulyo
Anonim
Generator ng Tone ng Microcontroller na Tela sa C-code
Generator ng Tone ng Microcontroller na Tela sa C-code

Sa pagtatapos ng Oktubre noong nakaraang taon ang mga tagubilin ng gumagamit na si carmitsu ay nagpadala sa akin ng isang mensahe matapos makita ang aking synthbox sa pag-synth. Mula sa kanyang mensahe: Nagtuturo ako ng musika sa elementarya. Nagpe-play kami ng maraming musikang recorder. ibig sabihin, ang mga bata ay naglalaro ng maliit na plawta …… Mayroon akong maraming mga espesyal na pangangailangan na bata na maaaring gumamit ng mga itim na poster board na may mga bilog na may pangalan ng tala sa kanila. Itinutulak ng mga mag-aaral ang mga bilog na may mga pangalan ng tala nang sabay-sabay ang natitirang mga mag-aaral ay tumutugtog ng isang kanta ….. Karamihan sa mga espesyal na pangangailangan ng mga bata ay maaaring gawin ito nang maayos at sa oras ng musika. Ang hinahanap ko ay bumuo ng isang napaka-simpleng generator ng tunog upang ang mga batang ito ay maaaring maglaro ng parehong pitch tulad ng mga nilalaro ng mga mag-aaral sa kanilang mga recorder. Ako ay magiging ilang mga pitches lamang. Naisip kong mailalagay ko ang ilang uri ng maliit na pindutan sa ilalim ng kanilang bilog na bilog upang kapag pinilit nila ang tunog ay lalabas mula sa isang maliit na nagsasalita, sapat na malakas upang marinig nila. Ang pagkakaroon ng isang ina na isang guro at may gusto sa paaralan, paano ako makakalaban? Sinabi sa katotohanan na hindi ko magawa. Ito ay halos isang salaysay ng proyekto at mga tagubilin sa kung paano bumuo ng iyong sarili.

Hakbang 1: Ang Simula o Bakit Hindi Ako Makapit sa Analog

Ang Simula o Bakit Hindi Ako Makapit sa Analog
Ang Simula o Bakit Hindi Ako Makapit sa Analog

Ang mga magagandang bagay ay nagsisimula sa susunod na pahina. Kung nais mong malaman kung paano ako nagtapos gamit ang mga bahagi na ginawa ko, basahin. Ang tunay na timer: Matapos bigyan ang proyekto ng ilang pag-iisip naisip ko kaagad ang piezo tone generator mula sa aking op-amps na Forest Mims III na libro. Parang isang mabuting paraan upang pumunta, ito ay isang piezo lamang, isang 741 IC at isang pares na passive na bahagi. Walang big deal di ba? Sa gayon mayroon itong 2 mga problema, 1) kapag pinapagod mo ang switch, posible na baguhin ang pitch 2) sumpain na malapit sa imposibleng ibagay. Ang una ay maaaring mapagtagumpayan ng ilang teknolohiya ng pag-debounce, kahit na hindi ko alam kung paano gawin iyon nang hindi nagdaragdag ng isa pang counter. Maaari rin itong maging isang isyu sa paggamit ng isang piezo. Ang pangalawang isyu ay nakakakuha ng mahirap kapag sinimulan mong subukan na maabot ang isang tiyak na pitch. Kumusta naman ang 555? Ipinapakita ng datasheet ang isang pag-andar ng oras na dlay batay sa mga resistor at capacitor. Alin ang mahusay hanggang masimulan mong mag-type sa aktwal na mga halaga ng mga totoong bahagi ng mundo, doon mo makikita ang pagpindot sa isang 440Hz pitch na nagsisimula upang medyo mahirap. Maaari mong gamitin ang mga trim na kaldero upang maiayos ito, ngunit sa paglipas ng panahon ay may posibilidad silang ilipat. Patuloy na pag-tune ng instrumento, na naipon sa tuktok ng mabilis na pagtaas sa gastos at dami ng mga bahagi, at ang aking asawa na gumagawa ng pagbabago ng tono nang maitulak niya ang pindutan na pumatay sa 555 para sa proyektong ito. Op-amp: Walang problema, ang mga tao ay gumagawa ng mga synths sa mga op-amp simula pa noong hindi ako ipinanganak. Gaano kahirap ito upang makagawa ng isang talagang simple, na may kaunting mga bahagi at tiyak na mga tala? Mas mahirap sa akala ko. Karamihan sa mga disenyo doon ay labis na kumplikado para sa proyektong ito. Ang mga taga-disenyo ng Synth ay nasa labas para sa perpektong waveform / tone. Direkta itong sumasalungat sa isang proyekto na dapat ay sapat na murang para sa badyet ng paaralan o mga guro. Ang pagbuo ng isang keyboard ay sapat na madaling, isang grupo lamang ng mga resistors at lakas o isang grupo ng mga diode at lakas. Ito ang natitirang disenyo ng circuit, at ang gastos ng mga pasadyang pcbs na nagsisimulang mawala sa kamay para sa isang tao sa isang panimulang antas ng electronics. Pagtukoy muli ng proyekto: Kaya't ang proyekto ay muling binago bago pa talaga ako tumuloy. Kailangan ko ng isang bagay na maaaring magpalipat-lipat ng isang pin ng speaker, sa oras, gamit ang pagpindot sa isang pindutan. Ayokong mag-disenyo at bumili ng PCB. Kailangang gumamit ito ng ilang mga sangkap nang posible, at tipunin bilang isang bag ng mga nagsisimula. Nakatitig ito sa mukha ko ng buong oras. Duh !! Microcontroller! Microcontroller: Kaya pagkatapos ng pagbili ng parehong isang Modern Devices Bare Bones Arduino kit at isang Evil Mad Scientist Simple Target Board at hinayaan silang umupo sa aking mesa sa loob ng maraming buwan na hindi ginagamit, nagkaroon ako ng perpektong proyekto sa pambungad. Sinimulan kong tingnan ang oras na kinakailangan upang magkasama, ang kurba sa pag-aaral para sa code, gastos, mga karagdagang bahagi na kinakailangan at gawin itong nais ko at naayos sa target board. Ang gastos ay medyo pantay, $ 15 plus isang $ 20 FTDI cable para sa Arduino, $ 12 kasama ang isang $ 22 USBtinyISP programmer. Alam ko na ang C ++ mula sa maliit na kolehiyo na kaya kong tumayo at maisip ang C para sa mga microcontroller na hindi masama, habang bukod sa kumikislap ng ilaw upang matiyak na pinagsama ko nang maayos ang aking kit, wala akong karanasan sa Arduino. Parehong maaaring mai-mount. Ito ay medyo isang paghuhugas, kaya't nagpasya ako sa mas kaunting mga bahagi ng dalawa, ang target board.

Hakbang 2: Ano ang Kailangan Mo Rev 1

Ano ang Kailangan Mo Rev 1
Ano ang Kailangan Mo Rev 1

Mga Bahaging CostUSBtinyISP AVR Programmer Kit (USB SpokePOV Dongle) v2.0 $ 22.00https://www.adafruit.com/index.php? Main_page = product_info & cPath = 16 & products_id = 46Evil Mad Scientist lab ATmegaXX8 Mini Dev Kits $ 12Headers, 6-pin DIP, 5-pk $ 2.75https://evilmadscience.com/tinykitlist/74-atmegaxx8Speaker (8-ohm Mini) $ 2.79https://www.radioshack.com/product/index.jsp? ProductId = 2062406SPST Karaniwang Buksan ang Mga Sandali na Saklitan (ginamit namin 5) $ 3.49 (4pack) https://www.radioshack.com/product/index.jsp?productId=2062539"AAA "Holder ng Baterya $ 1.79https://www.radioshack.com/product/index.jsp? ProductId = 2102735SPST Submini Slide Switch (opsyonal para sa switch ng kuryente) $ 2.69 (2-pack) https://www.radioshack.com/product/index.jsp?productId=2062490LED at resistor (opsyonal, kung nais mo ng ilaw ng kuryente) dapat libre ang $ kung nakahiga sila sa paligidWire $ dapat ding nakahiga sa paligid ng Silver solder (kung pupunta ito kahit saan malapit sa mga bata na marahil ay hindi ka gumagamit ng tingga, medyo kakaiba ang mga magulang tungkol sa ganyang bagay;)) Rubbing alkohol (to re ilipat ang pagkilos ng bagay) Kung nais mo ang ilang mga lugar upang makatipid ng pera, hindi mo na kailangang makakuha ng mga bahagi mula sa RadioShack. Ginawa ko dahil malapit sila at mahuhulaan.

Hakbang 3: Assembly Rev 1

Assembly Rev 1
Assembly Rev 1
Assembly Rev 1
Assembly Rev 1

Isama ang iyong mga bahagi tulad ng ipinakita. Siguraduhing gumamit ng rubbing alkohol at isang fluks na brush kapag tapos ka na upang mapupuksa ang anumang pagkilos ng bagay mula sa paghihinang. Ang iskematika ay nasa ibaba para sa mga mas gusto ito. Ang D1 at R1 ay maaaring maging kahit anong gusto mo, ito ay isang ilaw lamang ng kuryente. Ang C1 ay makakatulong lamang na gawing mas pare-pareho ang lakas. Gumamit ako ng 10uF. Ang eskematiko na ito ay pareho para sa mga susunod na bersyon, palitan lamang ang mga push button para sa mga switch ng tela. sa huling pagbabago nagdagdag ako ng mga switch sa PC4 at PC5 o pin 27 at 28.

Hakbang 4: Ano ang Kailangan Mo Rev 2

Ano ang Kailangan Mo Rev 2
Ano ang Kailangan Mo Rev 2

Kaya karaniwang binabayaran mo ang mga pindutan ng Radio Shack para sa mga gawa sa kamay na tela. Kailangan mo: Maramihang mga kulay ng tela, o isang kulay kung nais mo ang bawat tala ng parehong kulay. Ang seksyon ng quilting ng iyong pinakamalapit na tindahan ng tela ay ang pinakamahusay na lugar upang makuha ito nang mura. Ang quilting quarters ay $ 1.50 at makakakuha ka ng isang toneladang switch sa labas. Ang tela ng kondaktibo, iminumungkahi ko ang Flectron na tela mula sa LessEMF ay $ 20 para sa isang 12 "x54" na pirasoEyelets para sa paglakip ng kawad sa tela. Maaari mong makuha ang mga ito sa karamihan sa mga tindahan ng tela na mura. Si JoAnn ay may kasangkapan at 25 para sa $ 2 Kakailanganin mo ng martilyo para dito. Ang wire, gumamit ako ng 22AWG, iminumungkahi ko na mas maliit kung mayroon ka nito. Pag-fuse, upang makuha ang kulay at kondaktibong tela na magkasama. Magtanong sa tindahan at maaari mo itong bilhin sa tabi ng bakuran. Marahil ay gagana ito ng maayos, kahit na iminumungkahi ko na tanungin mo ang isang taoBatting, gumamit ako ng isang talagang maluwag na bagay sa una, pagkatapos ay lumipat sa isang bagay na mas mahigpit na niniting. Iminumungkahi ko na subukan mo lang ang ilang magkakaibang mga ito hanggang sa makita mo kung ano ang pinakamahusay na gumagana. Pag-init ng pag-urong ng tubo, ginawa nitong mas mapamahalaan ang buong bagay. ang mga pag-urong ng init na wire ay magkakasamang dumadaan sa bawat isa at mananatili silang mas mahusay.

Hakbang 5: Assembly Rev 2

Assembly Rev 2
Assembly Rev 2
Assembly Rev 2
Assembly Rev 2
Assembly Rev 2
Assembly Rev 2

Itabi ang tela na may maraming kulay sa bawat isa at gupitin ang isang parisukat, hindi ito dapat maging perpekto. I-iron ang tela upang makuha ang anumang mga tiklop, i-layer muli ang mga ito sa bawat isa at tiyakin na magkatugma ang mga gilid. Gupitin ang anumang mga gilid na hindi. Gupitin ang tuktok at ibabang bilog, iwanan ang kaliwa at kanang mga gilid nang tuwid. Ibabaliktad mo ang switch pagkatapos ng pagtahi kaya huwag gawin ang mga bilugan na panig masyadong bilog at iwanan ang sapat na taas sa mga patag na gilid upang madaling maitulak ang switch kapag tapos ka na. I-rotate ang patag na bahagi ng una at huling switch. Tumungo sa iyong makina ng pananahi at isama ang dalawa sa mga bilog upang ang mabuting panig ay magkaharap at tumahi ng tahi sa mga patag na bahagi. Kapag ang mga tuktok ng mga pindutan ay tinahi, gupitin ang mga parisukat mula sa kondaktibong tela at fuse sa isang gilid. Gupitin ang kawad hanggang sa haba at i-strip ang isang dulo. maghinang ng kawad sa paligid ng isa sa mga eyelet. (ang solder ay hindi malamang na dumikit sa eyelet) Gupitin ang isang maliit na ilaw sa tela sa isang sulok at martilyo ang eyelet upang ikabit ang tela at kawad. alisin ang pag-back mula sa fusing at fuse ang conductive na tela sa likuran ng may kulay na tela. Ulitin para sa lahat ng mga switch. Upang gawing mas madali ang mga bagay, maaari mong painitin ang pag-urong ng tubo ng mga wire nang magkakasama tuwing ang isang kawad ay pumasa sa kawad para sa susunod na switch. Kunin o gumawa ng isang piraso ng tela ang haba ng set ng switch at gupitin ang isang strip ng conductive na tela sa haba nito. Hindi tulad ng mga may kulay na switch, ito ay isang mahabang piraso. Ito ang magiging pindot ng mga pindutan upang makakonekta. Gupitin ang isang maliit na slit at ilakip ang isang kawad dito gamit ang isang eyelet, tulad ng mga kulay na tuktok ng switch. I-fuse ito sa likuran ng ilalim na tela. Igiling ang tuktok at ibaba kasama ang kondaktibong tela na nakaharap, gumamit ng isang yard stick upang baligtarin ang hanay pagkatapos na itahi. Gupitin ang ilang maliliit na butas sa batting, gumamit ako ng chopstick upang makuha isang bilog pagkatapos tanggalin lamang ang chopstick at gawin ang hiwa. Gupitin ang mga ito upang hugis at ipasok ang mga ito sa mga switch. Ito ang naghiwalay ng kondaktibong tela. Maaaring mas madaling ipasok ang batting habang binabaligtad mo ang mga switch sa halip na pagkatapos. Ang mga bagay na ginamit ko ay napunit nang masama habang pinapasok ko ito at kailangan kong makakuha ng iba't ibang batting. Sa wakas ay ikabit mo ang mga wire sa target board at handa ka na. Ang mahabang ilalim na strip ay magiging lupa.

Hakbang 6: Ano ang Kailangan Mo Rev 3

Ano ang Kailangan Mo Rev 3
Ano ang Kailangan Mo Rev 3

Sa Rev 3 ginawa ko ang mga switch na independiyente sa mga kable. Nag-save ito ng isang toneladang oras. Mas gusto ko rin ang hitsura ng natapos na resulta nang higit pa. Kaya, narito ang mga bagong bahagi na kailangan mo: Snaps, Nakuha lang ang mga ito mula kay JoAnn. Dumating sila ng isang tool sa pag-install na hindi masama para sa $ 7 Imumungkahi ko ang isa sa mga tool ng pliers sa halip na ihiwalay ko ang aking tool upang mai-install ang mga snap sa gitna. Ang mga tahi ay magiging isang mahusay na kahalili, kahit na mas matagal sila upang sumunod. Ang thread ng konduksyon, ang Spark Fun ay may mga bagay na maaaring mapunta sa iyong makina ng pananahi. Kailangan kong pumunta nang mabagal sa aking makina o masisira ang thread. Maaaring mag-iba ang iyong mileage

Hakbang 7: Assembly Rev 3

Assembly Rev 3
Assembly Rev 3
Assembly Rev 3
Assembly Rev 3
Assembly Rev 3
Assembly Rev 3
Assembly Rev 3
Assembly Rev 3

Ang rebisyon na ito ay mas mahusay kaysa sa huling sa mga tuntunin ng oras hanggang sa naitayo. Dagdag pa, ang pagkakaroon ng mga naaalis na switch ay nai-save ang aking katinuan nang higit sa isang beses. Magsimula sa pamamagitan ng paggawa ng base. Ito ay isang quilting quarter lamang na nakatiklop sa kalahati. Maglagay ng isang layer ng batting sa tuktok at manahi, nag-iiwan ng isang butas upang baligtarin ito. Itulak ang bagay sa butas at mayroon kang isang bagay na uri ng unan. Tinahi ko ito upang mas madaling magtrabaho. Gumamit ng payak na sinulid at pumunta ng mga mani. Gumawa ako ng mga brilyante sa isang ito, ngunit maaaring sa susunod ay maglalagay ako ng isang dragon sa likod, o isang bagay na cool. Ngayon, sa mga switch. Gusto ko ang disenyo na ito dahil maaari kang gumawa ng isang tonelada ng mga ito nang maaga at gamitin lamang ang gusto mo. magsimula sa pamamagitan ng paggamit ng isang piraso ng scrap ng karton, papel, o tela at gupitin ang isang hugis na peras mula rito. Gamitin iyon bilang isang gabay upang i-cut ang isang tuktok at ibaba para sa bawat switch. Pinutol ko ang isang kulay para sa bawat ilalim at isang iba't ibang kulay para sa mga tuktok, ngunit maaari kang maging malikhain at gawin ang gusto mo. Gupitin ang iyong gabay sa isang hugis ng lollipop na madaling magkasya sa loob ng switch. Pahabain ang "stick" upang mabalot nito ang gilid ng "peras." Gupitin ang hugis mula sa fusing at conductive na tela at fuse ang isang bahagi ng kondaktibong tela. Alisin ang pag-back mula sa fusing material at i-fuse ito sa tuktok ng tela na makikita sa ilalim at sa ilalim ng tela na makikita sa itaas. I-balot ang labis sa tuktok. Tumungo sa iyong makina ng pananahi at ilagay ang batting na may mga butas sa pagitan ng tuktok at ilalim na tela. Tumahi sa labas ng kondaktibong tela at laktawan ang bahagi ng "stick" ng switch. Nalaman ko na posible na tahiin ang tuktok na kondaktibong tela sa ilalim na lumilikha ng isang maikling. Mas mahusay na hindi tumahi sa pamamagitan ng kondaktibong tela. Maglakip ng mga snap at tapos na ang switch. Nahanap ko na mas madaling gamitin ang male snap para sa lahat ng mga koneksyon sa ibaba / GND at ang babaeng snap para sa lahat ng mga nangungunang. Ginagawang mapapalitan ang lahat ng mga switch. Ang circuit: Ang bagay tungkol sa pagputol ng mga pag-ikot ay mayroon kang maraming labis na mga piraso. Kinuha ko ang aking mga scrap, isinama ang malalaking piraso ng piyus sa malalaking piraso ng kondaktibong tela at ginamit ang mga iyon upang gupitin ang mas maliit na mga parihaba na ginamit ko bilang mga pad. Mahigpit na ilatag ang iyong switch at i-fuse ang mga pad sa base na may sapat na silid upang tumahi ng isang linya sa kanila at magkaroon ng isang iglap. Ang paanan ng makina ng pananahi na ginamit ko ay hindi naging mabait sa pagiging tunay na malapit sa snap, kaya't tandaan iyon at bigyan ang iyong sarili ng puwang. Dahil nakakuha ako ng kondaktibong thread na maaaring mapunta sa aking makina ng pananahi ay tumahi lamang ako ng isang linya mula pad hanggang pad at pabalik. Kailangan kong mabagal o masira ang sinulid, ngunit mas mabilis itong isang tonelada kaysa sa pananahi ng kamay. Gayundin sa conductive thread sa bobbin at karayom, nakuha ko ang isang talagang mahusay na solidong koneksyon. Ang mga bagay-bagay na frays tulad ng nakatutuwang, ngunit isang maliit na pandikit ng bapor o Elmers nililimas na karapatan. Subukang panatilihing malayo ang mga linya sa bawat isa at hindi ka dapat magkaroon ng anumang mga isyu. Pangwakas na pagpupulong: I-snap ang lahat ng iyong mga switch, ikonekta ang board, i-load ang code at tapos ka na. Gumamit ako ng kawad upang makakuha mula sa board hanggang sa pad at pagkatapos ay tinahi lamang ang kawad sa base sa pamamagitan ng kamay. Para sa susunod na bersyon, ilalagay ko ang board sa isang plastic box na may mga snaps upang ilakip ito sa base upang ang mga idle na daliri ay hindi ito hilahin.

Hakbang 8: Code

Code
Code

Kung hindi mo pa nai-program ang isang chip bago, ito ay isang medyo nakakatakot na gawain. Hindi makakatulong na ang mga tool ay patumpik-tumpik at sa karamihan ng oras kailangan mong gawin ang parehong operasyon nang maraming beses. Ang dalawang pinakamahusay na mapagkukunan na natagpuan ko para sa pagkuha ng pag-unawa sa kung ano ang nangyayari ay ang pahina para sa USBtinyISP, https://www.ladyada.net/make/usbtinyisp/ at ang kurso sa pag-crash sa pag-program ng ingay na ingay, http: / /blog.makezine.com/archive/2008/05/noise_toy_crashcourse_in.html Ang mga ito ay dapat na makapagsimula ka.

Maraming tao tulad ng Arduino para sa pag-coding na ito at walang mali sa paggamit nito, maliban sa palagay ko nagdaragdag ito ng maraming bloat sa isang karaniwang simpleng programa. Gayundin, kilala ko si C at hindi ko alam si Arduino. Baka isang araw, kung may oras.:) Code: {{{#include // Gumamit ng isang pin upang i-on ang SPK /// Typedefs ////////// typedef unsigned char u8; int main (walang bisa) {u8 btnState0; u8 btnState1; u8 btnState2; u8 btnState3; u8 btnState4; u8 btnState5; u8 btnState6; DDRB = (1 << DDB6); // Itakda ang SPK para sa output PORTD = (1 << PD0) | (1 << PD1) | (1 << PD2) | (1 << PD3) | (1 << PD4); // Set Button High PORTC = (1 << PC4) | (1 << PC6); TCCR2B = (1 << CS21); // Set Up Timer habang (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); kung (btnState0) {kung (TCNT2> = 190) {PORTB ^ = (1 << PD6); // Flip SPK Pin TCNT2 = 0; }} kung (btnState1) {kung (TCNT2> = 179) {PORTB ^ = (1 << PD6); // Flip SPK Pin TCNT2 = 0; }} kung (btnState2) {kung (TCNT2> = 159) {PORTB ^ = (1 << PD6); // Flip SPK Pin TCNT2 = 0; }} kung (btnState3) {kung (TCNT2> = 142) {PORTB ^ = (1 << PD6); // Flip SPK Pin TCNT2 = 0; }} kung (btnState4) {kung (TCNT2> = 126) {PORTB ^ = (1 << PD6); // Flip SPK Pin TCNT2 = 0; }} kung (btnState5) {kung (TCNT2> = 119) {PORTB ^ = (1 << PD6); // Flip SPK Pin TCNT2 = 0; }} kung (btnState6) {kung (TCNT2> = 106) {PORTB ^ = (1 << PD6); // Flip SPK Pin TCNT2 = 0; }}}}}}} Saan nagmula ang mga pitches? Kailangan ng kaunting matematika. Ang timer na orasan sa atmega 168 ay tumatakbo sa 1MHz. Napakabilis nito para sa audio kaya kailangan nating gamitin ang prescaler / 8. Pagkatapos dahil kailangan nating i-flip ang output pin mataas pagkatapos mababa upang makagawa ng 1 cycle, kailangan nating hatiin ang sagot sa 2 upang makabuo ng tamang pitch. Ganito ang formula, Pitch upang ilagay sa code = (1000000/8) / (Target na dalas * 2) Para sa A (440) ito ay magiging 125000/880 = 142.045 o 142 para sa aming mga layunin, dahil ang halaga ay dapat na isang integer. Ang mga target na dalas ng tala ay maaaring matagpuan kahit saan sa online at sa pangkalahatan ay magkapareho. Gusto ko pa ring magdagdag ng isang pahayag sa kaso sa halip na gumamit ng isang bungkos ng Ifs at gumamit ng PWM upang mas mahusay na makontrol ang dami at pitch ng nagsasalita, ngunit sa ngayon, gumagana ito.

Inirerekumendang: