Orodha ya maudhui:

Mashine ya Algorithm: Hatua 13 (na Picha)
Mashine ya Algorithm: Hatua 13 (na Picha)

Video: Mashine ya Algorithm: Hatua 13 (na Picha)

Video: Mashine ya Algorithm: Hatua 13 (na Picha)
Video: MAIDS WAINGIA BILA VIATU UKUMBINI !! NA WANAVYOJUA KURINGA SASA! |GadsonAndSalome |MCKATOKISHA 2024, Novemba
Anonim
Image
Image
Baa ya LED: 3D Chapisha kinyago
Baa ya LED: 3D Chapisha kinyago

Nimekuwa nikifundisha sayansi ya kompyuta katika kiwango cha vyuo vikuu kwa miaka 15, na ingawa utaalam wangu uko kwenye upande wa programu, bado ninatumia wakati mwingi kufunika viwango vya kawaida vya kutafuta na kuchagua. Kutoka kwa mtazamo wa kufundisha suala kuu ni ugumu wa kihesabu: je! Algorithm inahitaji muda gani, ikipewa mchango wa saizi fulani? Lakini kuna nuances nyingi. Kwa mfano, je! Algorithms ina wakati tofauti wa kukimbia kulingana na maadili maalum ya kuingiza (tofauti na saizi)? Katika kesi gani unaweza kuchagua upangaji wa algorithm zaidi ya nyingine? Ingawa tunajadili maswala haya katika kifikra, kila mara iliniumiza kwamba hakukuwa na njia rahisi ya kuona jinsi algorithms tofauti zinavyofanya kazi chini ya hali anuwai.

Malengo

Lengo langu kuu la mradi huu lilikuwa kuunda onyesho la maingiliano kwa wanafunzi kuibua na kuchunguza algorithms. Nilijizuia kwa algorithms ambayo inafanya kazi kwa safu ya nambari (nambari), kwa hivyo naweza kutumia ukanda wa RGB wa kushughulikia wa LED kuibua yaliyomo kwenye safu. Safu hiyo ina vitu 100, na kila nambari imewekwa kwa rangi kwa mpangilio wa upinde wa mvua, ili iwe dhahiri mara moja safu inapopangwa, kupangwa sehemu, au kubahatishwa. Kwa kuongezea maadili, hata hivyo, nilitaka njia ya kuibua mambo ya udhibiti wa algorithm - kwa mfano, ni vitu vipi vya safu ambavyo hivi sasa vinalinganishwa au kubadilishwa.

Malengo maalum ni:

- Toa anuwai ya kutafuta na kuchagua algorithms

- Tazama maadili katika safu kwa njia inayoangazia maendeleo ya algorithm

- Taswira ya kudhibiti algorithm; haswa, vitu vinavyozingatiwa.

- Ruhusu watumiaji wachague mifumo ya data ya uingizaji badala ya kila wakati kuzalisha maadili ya nasibu

- Ruhusu watumiaji kudhibiti kasi na kusitisha algorithm

- Ruhusu watumiaji kulazimisha kesi bora, mbaya zaidi, tabia ya wastani-kesi (maalum ya algorithm)

- Onyesha idadi ya hatua kadri algorithm inavyoendelea

Taswira

Kutoka kwa mtazamo wa muundo wa mwili sehemu ya kupendeza ya mradi huu ni taswira ya safu. Nilijitahidi jinsi ya kuonyesha data na udhibiti, na jinsi ya kujenga kifaa cha kuonyesha yenyewe. Lengo langu lilikuwa kuonyesha maadili ya data kama miduara ya rangi na vidokezo vya kudhibiti kama mishale yenye rangi ambayo inaelekeza kwa maadili ya data. Baada ya majaribio kadhaa nilikaa kwenye muundo na vipande viwili vinavyolingana vya LED za RGB 100 (WS2812) na kinyago cha duara juu ya kila data ya LED na kinyago cha pembe tatu juu ya kila udhibiti wa LED. Nilitengeneza mfano wa 3D wa kinyago na jozi 10 za duru na pembetatu, na kisha 3D ikachapisha moduli 10 kati ya hizi kwa jumla ya duru 100 na pembetatu 100. Ukubwa na nafasi ya kinyago changu imeundwa kwa vipande na LEDs 100 kwa kila mita. Faili za mfano wa 3D hutolewa baadaye katika maelezo haya.

Elektroniki na ua

Wengine wa kifaa ni moja kwa moja, kutoka kwa mtazamo wa umeme. Mbali na vipande viwili vya LED, kuna rundo la vifungo vya kitambo, encoder ya rotary (ya kudhibiti kasi), na onyesho la sehemu 7 (kuonyesha hatua). Na vifungo na vidhibiti vingi nilichagua kutumia microcontroller ya ESP32 kwa sababu inadhihirisha pini nyingi na kwa sababu ina nguvu. Nitaenda juu ya mkakati wa wiring, lakini ni ya msingi sana. Labda unaweza kufanya kitu kizuri na rejista za mabadiliko ikiwa unataka kutumia pini chache.

Unaweza kujenga kiambatisho cha kifaa hiki katika aina tofauti. Hapo awali niliifikiria kama bodi kubwa ya mstatili na ukanda wa LED juu, na gridi ya vifungo katikati. Fomu niliyoishia nayo imeongozwa na aina ya maoni ya 1960 ya teknolojia ya umri wa nafasi. Unaweza pia kuijenga na vipande vya LED katika mwelekeo wa wima. Au fanya sehemu ya LED iwe kubwa zaidi - jaza ukuta mzima - na jopo tofauti la kudhibiti.

Programu

Nambari ya kifaa hiki inapatikana kwa uhuru kwenye GitHub, na nimefanya bidii kuandika jinsi inavyofanya kazi na jinsi ya kuisanidi. Maktaba ya nje unayohitaji ni FastLED kuendesha viti vya WS2812.

Vifaa

Umeme

1 Bodi ya maendeleo ya ESP32 (kwa mfano, 2 WS2812 au vipande sawa vya LED, wiani wa LED 100 kwa kila mita (kwa mfano, Kitufe 1 cha "kuanza" kwa pembetatu (k.m., Vifungo 12 vya muda mfupi (kwa mfano, https://amzn.com/B01N4D4750) - maumbo tofauti ikiwa unataka

Kifurushi 1 (20) viunganisho vya vifungo vilivyowekwa awali (k.m., Viunganishi 1 vya Pakiti za JST (k.m., Kisimbuzi cha Rotary (k.m., Knob ya kisimbuzi cha rotary (k.m., Viunganisho vya Pakiti 1 vya Dupont (kwa mfano, https://amzn.com/B014YTPFT8) - inafaa kupata zana ya kukandamiza pia.

1 Pipa jack (kwa nguvu) (kwa mfano, Onyesho la nambari 1 TM1637 7 (k.m., Soldering na wiring gear

Faili za mfano wa 3D

Unaweza kupata kielelezo cha 3D kwa jozi ya moduli 10 za taa kwenye Thingiverse:

www.thingiverse.com/thing:4178181

Utahitaji kuchapisha mtindo huu mara tano kwa jumla ya moduli 10.

Programu

github.com/samguyer/AlgorithmMachine

Ufungaji

Wood, plexiglass, bolts chuma cha pua na screws

Vifaa vya kueneza. Ninapenda zaidi ni Lee Filters # 216 kueneza kamili nyeupe, lakini kuna chaguzi zingine. Hata karatasi nyeupe nyeupe hufanya kazi nzuri.

Hatua ya 1: Algorithms 101

Watu wengi wanafikiria kuwa sayansi ya kompyuta kimsingi ni masomo ya programu. Lakini moyo na roho halisi ya uwanja huu ni algorithms: utafiti wa taratibu za kimfumo za kutatua shida na gharama zao (kawaida, huchukua muda gani). Takwimu za semina kwenye uwanja huo, kama Alan Turing, Kanisa la Alonzo, na Edsger Dijkstra, walikuwa wakifikiria juu ya maoni haya kabla ya kompyuta kwani tunajua hata yalikuwepo.

Kipengele muhimu cha algorithm ya kutatua shida fulani ni kwamba ni ya kina na sahihi, ili mtu atumie kupata suluhisho bila kuelewa jinsi inavyofanya kazi kabisa; fuata tu hatua kwa mtindo wa mitambo na utapata jibu sahihi. Unaweza kuona jinsi hii inasaidia na programu za kompyuta, kwani zinahitaji kiwango hiki cha maelezo. Kompyuta haiwezi kujaza maelezo yaliyokosekana au kutoa hukumu, kwa njia ambayo mtu anaweza.

Itachukua muda gani?

Mara tu tutakapokuwa na utaratibu wa kina swali la asili ni je, itachukua muda gani kupata jibu? Hatuwezi kutumia vitengo vya kawaida vya wakati, kwani inategemea ni nani anayefanya kazi hiyo (linganisha jinsi mtu anavyoweza kuhesabu kitu kwa kasi dhidi ya kompyuta ndogo). Kwa kuongeza, inategemea tuna data ngapi. Kwa wazi, inachukua muda mrefu kutafuta orodha ya nambari milioni za simu kuliko orodha ya mia moja.

Kuelezea gharama ya algorithm sisi kwanza huchukua operesheni kadhaa kwa utaratibu ambao unawakilisha "hatua" moja - kawaida kitu rahisi, kama kulinganisha au kuongeza nambari mbili, ambayo inachukua muda uliowekwa wa kufanya. Kisha tunakuja na fomula ambayo inaelezea hatua ngapi algorithm itachukua ikipewa idadi kadhaa ya vitu vya data. Kwa sababu za kihistoria, karibu kila wakati tunaashiria idadi ya vitu vya data na mtaji N.

Kwa mfano, kuangalia kupitia orodha ya N namba za simu huchukua hatua N. Kuangalia orodha mara mbili kunachukua hatua 2N. Zote hizi zinaitwa algorithms ya wakati wa kawaida - idadi ya hatua ni anuwai ya saizi ya kuingiza. Algorithms zingine ni quadratic (N mraba wakati) au ujazo (N cubed) au logarithmic (log N) au mchanganyiko wa hizi. Shida zingine ngumu zaidi za hesabu zinahitaji algorithms ya muda wa ufafanuzi (2 ^ N).

Sawa, kwa hivyo ni nini?

Wakati idadi ya vitu vya data N ni ndogo haijalishi sana. Kwa mfano, kwa N = 10, 10N ni jina kama N mraba. Lakini vipi kuhusu N = 1000? au N = 1000000? Milioni mraba ni idadi kubwa sana. Hata kwenye kompyuta ya haraka sana, hesabu ya quadratic inaweza kuchukua muda mrefu ikiwa pembejeo ni kubwa vya kutosha. Algorithms ya ufafanuzi ni shida zaidi: kwa N = 50 algorithm ya kielelezo itachukua wiki mbili kumaliza hata kwenye kompyuta ambapo kila hatua ni nanosecond moja (bilioni 1 ya sekunde). Ouch!

Katika mwisho mwingine wa kiwango tuna algorithms ya wakati wa logarithm, ambayo ni haraka sana. Wakati wa kuingia ni kinyume cha wakati wa ufafanuzi: kutokana na saizi ya pembejeo N, idadi ya hatua ni kiboreshaji T katika fomula 2 ^ T = N. Kwa mfano, ikiwa saizi yetu ya kuingiza ni bilioni moja, basi hesabu ya wakati wa logi inahitaji 30 tu hatua, kwani 2 ^ 30 = 1, 000, 000, 000. Je! hiyo ni tamu gani?! ??!

Unaweza kujiuliza, ni nani anayejali saizi za pembejeo za mamilioni au mabilioni? Fikiria juu yake: kuna watumiaji wangapi kwenye Facebook? Je! Kuna kurasa ngapi za wavuti zilizoorodheshwa na Google? Je! Kuna jozi ngapi za msingi katika genome ya mwanadamu? Je! Ni vipimo vipi vinaenda katika masimulizi ya hali ya hewa?

Hatua ya 2: Algorithms

Mashine ya Algorithm kwa sasa inatekeleza algorithms zifuatazo. Mbili kati yao ni algorithms za utaftaji (pata thamani fulani kwenye orodha), zingine zinachambua algorithms (weka maadili kwa mpangilio).

Utafutaji wa mstari

Tafuta kupitia orodha ya maadili moja kwa moja kuanzia mwanzo. Inahitaji wakati wa mstari.

Utafutaji wa binary

Tafuta orodha kwa kuigawanya mara mbili nusu. Inahitaji muda wa kumbukumbu, lakini orodha lazima ipangwe ili ifanye kazi.

Aina ya Bubble

Panga orodha orodha inayobadilishana vitu vya jirani ambavyo haviko sawa. Inahitaji wakati wa quadratic.

Aina ya uingizaji

Panga orodha kwa kuweka kila kitu mahali pake kwenye orodha ya maadili yaliyopangwa tayari. Inahitaji wakati wa quadratic.

Haraka

Panga orodha kwa kugawanya orodha mara kwa mara na kusogeza maadili yote chini ya wastani hadi nusu ya kwanza, na maadili yote makubwa kuliko wastani hadi nusu ya pili. Kwa mazoezi, hatuwezi kupata wastani wa wastani, kwa hivyo tunachukua thamani bila mpangilio. Kama matokeo hii algorithm inaweza kuwa quadratic katika hali mbaya, lakini kawaida inahitaji N * logN wakati.

Unganisha aina

Panga orodha kwa kuigawanya kwa nusu, ukipanga nusu mbili kando (kwa kutumia unganisha aina), na kisha uziunganishe pamoja kwa kuacha maadili. Daima inahitaji wakati wa N * logN.

Aina ya lundo

Panga orodha kwa kujenga muundo wa data uitwao lundo, ambayo hukuruhusu kupata thamani ndogo kabisa kwa wakati wa logi. Daima inahitaji wakati wa N * logN.

Aina ya Bitonic

Sawa na kuunganisha aina na upesi, gawanya orodha kwa nusu, panga nusu, na uzichanganishe tena. Algorithm hii inahitaji muda wa N * logN * logN, lakini ina faida kwamba ni rahisi kulinganisha.

Hatua ya 3: Bar ya LED: 3D Chapisha Mask

Baa ya LED: 3D Chapisha kinyago
Baa ya LED: 3D Chapisha kinyago
Baa ya LED: 3D Chapisha kinyago
Baa ya LED: 3D Chapisha kinyago

Hatua ya kwanza katika kujenga bar ya LED ni kuchapisha 3D kinyago ambacho kinatoa taa umbo lao. Kila moduli inashughulikia vitu kumi vya safu, maadili 10 (miduara) na viashiria 10 (pembetatu), kwa hivyo utahitaji moduli 10 kabisa. Faili ya STL ninayotoa hapa ina matukio mawili ya moduli, kwa hivyo utahitaji kufanya mizunguko mitano ya kuchapisha. Sina printa bora ya 3D, kwa hivyo ilibidi nifanye usafishaji wa mwongozo juu yao kwa kutumia faili na sandpaper. Jambo muhimu zaidi ni kwamba mashimo ya mviringo na pembetatu ni safi.

Katika picha utaona usanidi wangu wa jaribio: nilibandika vipande viwili vya LED chini na kuziunganisha kwenye ubao wa mkate na mdhibiti mdogo. Hatua hii sio lazima, lakini nilitaka kuona jinsi itakavyoonekana kabla ya kuanza kukusanyika. Niliweka moduli za kinyago kwenye vipande viwili vya LED na nikachora mchoro rahisi na rangi za nasibu. Na ukanda wa nyenzo za kueneza maumbo na rangi huibuka sana.

Hatua ya 4: Njia mbadala za Baa ya LED

Njia mbadala za Baa ya LED
Njia mbadala za Baa ya LED
Njia mbadala za Baa ya LED
Njia mbadala za Baa ya LED
Njia mbadala za Baa ya LED
Njia mbadala za Baa ya LED

Nilipoanza mradi huu kwa mara ya kwanza nilijaribu njia zingine za kutengeneza kinyago cha LED. Ikiwa huna printa ya 3D unaweza kuzingatia moja ya chaguzi hizi. Nitakuwa mwaminifu: ni maumivu makubwa kutengeneza sehemu hizi.

Kwa miduara, nilinunua bomba la shaba la 13/32, ambalo ni karibu kipenyo cha 1cm. Niliikata katika sehemu mia 1cm kisha nikanyunyizia rangi nyeupe.

Kwa pembetatu, nilitumia karatasi ya alumini yenye uzito mzito iliyokatwa kutoka kwenye sufuria ya kuoka inayoweza kutolewa. Nilitengeneza fomu ya pembetatu kutoka kwa kuni, kisha nikafunga vipande vifupi vya karatasi kuzunguka fomu na kuzipiga. Tena, utahitaji mia ya vitu hivi, kwa hivyo inachukua muda na uvumilivu.

Hatua ya 5: Ufungaji wa Baa ya LED

Ufungaji wa Baa ya LED
Ufungaji wa Baa ya LED
Ufungaji wa Baa ya LED
Ufungaji wa Baa ya LED
Ufungaji wa Baa ya LED
Ufungaji wa Baa ya LED

Kizuizi changu ni rahisi sana: vipande viwili vya kuni kwa pande na vipande viwili vya glasi kwa juu na chini. Sehemu zote zina urefu wa 102cm (mita 1 kwa taa za LED, pamoja na nyongeza kidogo ili kubeba wiring). Pande zinapaswa kuwa ndefu kidogo kuliko 1cm ili kutoa nafasi ya vipande vya LED. Baada ya kukata vipande niliweka vipande vya maski vilivyochapishwa vya 3D kati yao kupima upana wa glasi ya macho. Kata vipande viwili vya plexiglass upana na urefu wa bar. Mwishowe, kata kipande cha nyenzo za kueneza ili kutoshea kinyago.

Kwa usambazaji napenda sana Vichungi vya Lee # 216 (kueneza kamili nyeupe). Ni karatasi nyembamba ya plastiki ambayo hutoa hata kueneza bila kupoteza nuru nyingi. Lakini ni vitu vya gharama kubwa. Wakati mwingine unaweza kupata karatasi ndogo za kuuza mkondoni, lakini roll nzima itakurudisha nyuma karibu $ 125. Chaguzi zingine ni karatasi nyeupe au aina yoyote ya satin au plastiki iliyohifadhiwa. Chaguo maarufu ni mikeka nyembamba ya kukata plastiki.

Kabla ya kukusanya bar ya LED hakikisha una viunganisho vinavyofaa vilivyouzwa kwa vipande vya LED. Vipande vingi huja na risasi zilizouzwa kabla, kwa hivyo unaweza kutumia tu hizo.

Nilianza mkutano kwa kukataza kipande cha juu cha plexiglass kwenye pande za mbao (angalia picha). Kisha nikaipindua na kuweka ukanda wa kueneza ndani, ikifuatiwa na vipande 10 vya kinyago. Mara moja nilifurahi na nafasi niliyoibandika mahali na nukta kadhaa za gundi moto.

Ifuatayo, weka vipande viwili vya LED kando kando juu ya vinyago. Hakikisha taa za LED zinatazama chini na hakikisha kila LED inaambatana na shimo linalofanana kwenye kinyago. Ongeza gundi au mkanda moto kushikilia vipande vya LED mahali pake. Mwishowe, piga kipande cha nyuma cha glasi ya macho.

Endesha muundo wa jaribio. Kazi nzuri! Umefanya sehemu ngumu zaidi!

Hatua ya 6: Jopo la Kudhibiti

Jopo kudhibiti
Jopo kudhibiti
Jopo kudhibiti
Jopo kudhibiti
Jopo kudhibiti
Jopo kudhibiti
Jopo kudhibiti
Jopo kudhibiti

Jopo la kudhibiti ni sehemu ambayo inatoa uhuru zaidi wa ubunifu. Inahitaji tu kushikilia udhibiti wote na vifaa vya elektroniki, pamoja na bar ya LED. Ubunifu rahisi ni bodi za mstatili: kuchimba mashimo kwa vifungo na vidhibiti, na ambatisha bar ya LED. Ninapenda kuchanganya kuni, plexiglass, na vifaa vingine kutoa aina ya muonekano wa steampunk / retro-kisasa. Katika kesi hii, nilikata kipande cha plexiglass ya kazi nzito ili kushikilia vifungo kuu vya kuchagua algorithm, na bar ya mbao kushikilia vifaa vyote vya elektroniki. Nilichimba mashimo ili kufanana na saizi ya vifungo vya uwanja. Wiring inaonyesha nyuma, lakini naipenda!

Pia nilichimba nafasi ya maonyesho ya sehemu 7, encoder ya rotary, na wiring zingine nyuma. Nilikata dado kwa juu kushikilia bar ya LED.

Hatua ya 7: Kuunganisha vifungo

Kifungo Kuunganisha
Kifungo Kuunganisha
Kifungo Kuunganisha
Kifungo Kuunganisha
Kifungo Kuunganisha
Kifungo Kuunganisha

Wiring vifungo vingi inaweza kuwa maumivu ya kweli. Kwa bahati nzuri, watu wanaotengeneza mashine za ukumbi wa michezo wamekuja na viungio kadhaa vya kawaida ambavyo unaweza kutumia. Kila kebo ya kiunganishi cha vifungo ina waya mbili, moja kwa VCC na moja ya ardhi. Mwisho mmoja una viunganisho vya jembe ambavyo vinafaa vielekezi nyuma ya kitufe - ambatisha ardhi kwa risasi "kawaida wazi", na VCC kwa risasi "ya kawaida". Katika usanidi huu, wakati mtumiaji anasukuma kitufe, mzunguko umekamilika na mdhibiti mdogo atasoma JUU juu ya pini ya kuingiza inayolingana.

Mwisho mwingine wa kebo una kiunganishi cha JST (kitu cheupe kidogo). Kilicho nzuri juu ya viunganisho hivi ni kwamba wanaingia tu kwenye kipokezi kwa njia moja, kwa hivyo hakuna njia ya kugeuza VCC na ardhi kwa bahati mbaya.

Kile nilichofanya ni kujenga kuunganisha kidogo kwa viunganisho hivi. Niliuza safu kadhaa za viboreshaji vya JST kwenye kipande cha protoboard na kisha kukimbia waya kurudi kwa viunganisho vya Dupont ambavyo nitaunganisha kwenye microcontroller. Waya nyekundu ni laini ya VCC, na inaunganisha kwa vyombo vyote vya JST. Waya za hudhurungi ndizo ambazo zimetengwa kwa kila kitufe.

Hatua ya 8: Encoder ya Rotary

Encoder ya Rotary
Encoder ya Rotary

Encoder ya rotary inamruhusu mtumiaji kudhibiti kasi ya algorithm. Ninatumia moduli ambayo huja kama bodi ya kuzuka ambayo inajumuisha vipinga-kuvuta kwa laini mbili za data (waya za manjano). Hii pia ni kifungo, lakini situmii huduma hiyo. Waya nyingine mbili ni VCC na chini. Nilipata kitasa kizuri cha mafuta.

Kile ninachopenda juu ya kisimbuzi cha rotary, tofauti na potentiometer, ni kwamba inaashiria tu kuzunguka (saa moja kwa moja dhidi ya saa-kwenda) kwa mdhibiti mdogo, kwa hivyo ni rahisi kubadilisha jinsi thamani hiyo inavyotafsirika. Kwa mfano, unaweza kuipa hali ya kuongeza kasi (kama panya) wakati mtumiaji anaizunguka haraka.

Hatua ya 9: Uonyesho wa sehemu 7

Uonyesho wa sehemu 7
Uonyesho wa sehemu 7

Sio mengi ya kusema hapa. Vitu hivi viko kila mahali. LED zinadhibitiwa na chip inayoitwa TM1637, ambayo inawasiliana na microcontroller kupitia itifaki rahisi ya serial. Ninatumia maktaba iliyopo ambayo iniruhusu niiambie nambari gani ninayotaka kuonyesha, na inafanya zingine.

Nyuma ina pini nne: VCC, ardhi, na waya mbili kwa itifaki ya serial. Niliuza kipande cha kichwa cha pini 4, ambacho kinaunganisha kwa kiunganishi kinachofanana cha Dupont kilichopigwa waya kwa mdhibiti mdogo.

Hatua ya 10: Bodi kuu ya Mdhibiti

Bodi kuu ya Mdhibiti
Bodi kuu ya Mdhibiti
Bodi kuu ya Mdhibiti
Bodi kuu ya Mdhibiti
Bodi kuu ya Mdhibiti
Bodi kuu ya Mdhibiti

Bodi kuu ya mtawala hukaa microcontroller yenyewe na viunganisho vyote kwa vidhibiti (vifungo, onyesho, LEDs). Mdhibiti mdogo ni ESP32, ambayo hutoa nguvu nyingi za kompyuta na kumbukumbu, na hufunua pini nyingi. Wiring ni ya kiwango kizuri, lakini nitaonyesha bits kadhaa za kupendeza.

KUMBUKA: Unaweza kutaka kuangalia nambari (https://github.com/samguyer/AlgorithmMachine) kabla ya kuanza wiring bodi kuu, ili usanidi wako wa pini ulingane na yangu.

Niliuza pipa kwenye ubao kwa nguvu, na niliunganisha nyaya mbili za shaba kwa nguvu na reli za chini za bodi. Sababu ni kwamba bar ya LED inaweza kuchora nguvu nyingi ikiwa mwangaza umewekwa juu, na sitaki kuvuta nguvu zote kupitia kontakt USB kwenye microcontroller.

Ili kurahisisha wiring ya kitufe nilibadilisha kipande cha kichwa cha pembe ya kulia ya mwanamume na mwanamke chini ya upande mzima wa mdhibiti mdogo (upande wa juu wa bodi kama inavyoonyeshwa). Viunganishi vya Dupont kutoka kwenye kifungo cha kuunganisha kifungo moja kwa moja kwenye kichwa hiki.

MUHIMU: nguvu ya vifungo (waya nyekundu) lazima iunganishwe na laini ya umeme ya 3.3V kwenye microcontroller. ESP32 ni chip ya 3.3V, kwa hivyo ni vyanzo vya 3.3V pekee ambavyo vinapaswa kushikamana na pini za data.

Mdhibiti mdogo huvuta nguvu (au kusukuma nguvu) kwa reli (upande wa chini wa ubao kama inavyoonyeshwa) kupitia pini ya USB 5V na ardhi. Zote waya zingine nyekundu / nyeusi ni VCC na chini.

Waya mbili za bluu ni laini za data za vipande vya LED (WS2812s). Jozi ya manjano / kijani ni mistari ya data ya kisimbuaji cha rotary, na jozi ya manjano ni unganisho la serial na onyesho la sehemu 7.

Hatua ya 11: Mkutano

Mkutano
Mkutano
Mkutano
Mkutano
Mkutano
Mkutano
Mkutano
Mkutano

Mfululizo huu wa picha unaonyesha mkutano wa mwisho na wiring. Niliunganisha pia bodi kuu ya mtawala nyuma kwa juu.

Kabla ya kuitia nguvu nilifanya ukaguzi kadhaa ili kuepuka mshangao wowote mbaya. Hasa, kuhakikisha kuwa sikuwa na viunganishi vya nguvu / ardhi nyuma, na hakuna mizunguko fupi. Weka multimeter yako ujaribu mwendelezo - italia wakati kuna njia ya umeme kati ya viongozo viwili. Ambatisha risasi moja kwenye laini ya kawaida ya VCC kwenye vifungo. Kisha ambatisha risasi nyingine kwa kila pini ya kuunganisha moja kwa moja. Multimeter inapaswa kulia tu wakati bonyeza kitufe. Ikiwa unapata mlio mwingine wowote inamaanisha kuwa na mabadiliko au mafupi. Fuatilia na uirekebishe kabla ya kuwasha umeme!

Hatua ya 12: Kanuni

Kwanza, fungua Arduino IDE yako na uhakikishe kuwa umeweka maktaba ya FastLED.

Pakua nambari ya Mashine ya Algorithm kutoka GitHub:

github.com/samguyer/AlgorithmMachine.git

Unaweza kuibadilisha moja kwa moja kwenye folda yako ya Arduino, au kunakili kwa mkono.

Kabla ya kuipakia, hakikisha mipangilio ya pini inalingana na usanidi wa vifaa vyako. Nimeweka mipangilio yote ya pini juu ya faili.

Pakia na ufurahie!

Hatua ya 13: Jinsi ya Kutumia

Mashine ya Algorithm ni rahisi kutumia na karibu mchanganyiko wowote wa vifungo ni sawa!

Kwanza, tumia vifungo vya data kuanzisha maadili katika safu. Kuna chaguzi tatu: (1) badilisha, (2) ongeza thamani moja ya nasibu, na (3) geuza safu. Kumbuka kuwa maadili yanaendelea, kwa hivyo unaweza kufanya vitu kama kuzipanga kwanza, kisha ongeza kelele, halafu tengeneza upangaji tofauti au utaftaji wa hesabu.

Chagua algorithm ya kutafuta au kuchagua kutoka kwa chaguo zingine za kitufe. Hivi sasa, hakuna maoni wakati unafanya chaguo hili (kitu cha kazi ya baadaye). Kisha piga kitufe cha "kucheza".

Knob inadhibiti kasi. Unaweza pia kupiga "kucheza" ili kusitisha na kusitisha hesabu.

Itasimama kiatomati ikimaliza. Unaweza pia kugonga kitufe kingine cha algorithm wakati wowote. Mashine itasimamisha algorithm ya sasa na kuanzisha mpya, lakini weka data haswa kama vile algorithm iliyopita ilivyoiacha.

Mashindano ya STEM
Mashindano ya STEM
Mashindano ya STEM
Mashindano ya STEM

Tuzo kubwa katika Mashindano ya STEM

Ilipendekeza: