Orodha ya maudhui:

Unda Kiwango cha Roho cha Umeme: Hatua 15
Unda Kiwango cha Roho cha Umeme: Hatua 15

Video: Unda Kiwango cha Roho cha Umeme: Hatua 15

Video: Unda Kiwango cha Roho cha Umeme: Hatua 15
Video: Я ОДЕРЖИМЫЙ ДЕМОНАМИ 2024, Julai
Anonim
Unda Kiwango cha Roho cha Umeme
Unda Kiwango cha Roho cha Umeme

Tumia kiwango hiki cha roho kuonyesha haraka na kwa urahisi mwelekeo wa kitu chochote kilichoambatishwa!

Iliundwa na Kaitlyn kutoka Taasisi ya Raffles.

Hatua ya 1: Malengo

Jifunze kusoma tilt na kipima kasi kilichojengwa ndani ya bit: bit.

Jifunze kufanya kazi na Micro: 5x5 LED Display!

Hatua ya 2: Vifaa

1 x BBC ndogo: kidogo

1 x USB cable ndogo

2 x AA Batri

1 x Kifurushi cha Betri cha AA mara mbili

Hatua ya 3: Usajili wa awali: Unganisha Micro yako: Bit

  1. Unganisha kitufe cha BBC: kidogo kwa kompyuta yako kwa kutumia kebo ndogo ya USB.
  2. Pata kihariri cha javascript kwa micro: bit kwa makecode.microbit.org.

Hatua ya 4: Hatua ya 0: Mtiririko wa Nambari

Kabla ya kuanza kuandika nambari, tunahitaji kuamua ni nini tunataka kufikia na mpango na kwa utaratibu gani kila sehemu inapaswa kuendesha.

Kwa kiwango cha roho ya umeme, hatua ambazo tutachukua katika nambari kwa kila kitanzi ni:

  • Soma usomaji wa kutega kutoka kwa kipima kasi.
  • Badilisha ubadilishaji wa tilt kuwa viwango vya kuelekeza kuonyeshwa kwenye tumbo la LED.
  • Angalia mabadiliko katika usomaji wa kiwango cha kutega kutoka kitanzi kilichopita.
  • Unda safu za kuratibu za LED kwa visa tofauti na mwelekeo.
  • Plot LED inaratibu kwenye micro: bit LED tumbo.

Kazi chache za ziada tunazohitaji kujumuisha ni:

  • Usawazishaji wa nafasi ya kwanza ya kuelekeza.
  • Kurudi kwa usuluhishi chaguo-msingi wa mwelekeo.

Hatua ya 5: Hatua ya 1: Kufafanua anuwai

Tunaanza kwa kufafanua anuwai zinazohitajika kama inavyoonyeshwa. Kuvunjika kwa anuwai kadhaa ni:

  • TiltList: Array ambayo huhifadhi urefu wa kuogelea kutoka kwa nambari 0-4 kwa mpangilio [Kushoto, Kulia, Mbele, Nyuma]
  • Kuelekeza: Mpaka wa kiwango cha kwanza cha kuinama kati ya 0 (hakuna kuelekeza) na 1 (kugeuza kidogo)
  • prevState: Array ambayo huhifadhi maadili ya kuelekeza ya micro: bit kutoka kitanzi cha awali katika muundo sawa na tiltList, inayotumiwa kuangalia mabadiliko katika kugeuza kati ya iterations
  • ledPlotList: Viwanja vilivyoongozwa vya uratibu katika fomu (x, y). Kufafanua safu, tunatumia nambari ya aina kuonyesha safu ya vigeuzi ya aina: nambari.

Hatua ya 6: Hatua ya 2: Badilisha Maadili ya Tilt kuwa Ngazi

Kwa kuwa tumbo la 5x5 la LED linaweza kuonyesha habari nyingi tu, maadili halisi ya kutega hayatakuwa muhimu kwa kuonyesha.

Badala yake, kazi tiltExtent () inachukua parameter num, ambayo inahusu thamani ya kuelekeza kutoka kwa accelerometer, na inabadilisha maadili haya ya kuelekeza (num) kuwa viwango vya kuelekeza kutoka 0 hadi 4.

0 haionyeshi kutegemea mwelekeo uliopewa na 4 inaonyesha kuelekeza kubwa sana, wakati -1 inarejeshwa wakati kuna hitilafu.

Hapa, tiltBoundary na tiltSensitivity hutumiwa kama maadili ya mpaka kati ya viwango vya kuinama.

Hatua ya 7: Hatua ya 3: Kusanya Viwango vya Tilt

Kazi mbili checkRoll () na checkPitch () andika viwango vya kunama vilivyopatikana kutoka tiltExtent () ndani ya TiltList kwa roll (kushoto-kulia) na shoka (mbele-nyuma) kwa mtiririko huo.

Kabla ya kutumia maadili ya kuelekeza, tunayalinganisha kwa kutumia thamani isiyo na kipimo kwa lami (zeroPitch) na roll (zeroRoll) iliyopatikana kutoka kwa kazi ya upimaji iliyoandikwa baadaye.

Kwa kuwa usomaji wa kasi ni hasi kwa kuelekeza kwa kushoto na mbele, tunahitaji kutumia kazi ya Math.abs () kupata moduli ya thamani hasi itakayopewa kazi ya tiltExtent () kama kigezo cha maelekezo haya mawili.

Hatua ya 8: Hatua ya 4: Andika kazi za LEDPlotList

Baada ya kupata viwango vya kutega katika Orodha ya Tilt sasa tunaweza kuandika kazi za kupanga njama zilizoongozwa kwa kesi tofauti ambazo zinaweza kutokea, ambazo ni

  • plotSingle (): Tilt tu katika mwelekeo mmoja, ukichukua mwelekeo wa mwelekeo katika mwelekeo uliopewa kama parameter.
  • plotDiagonal (): Tilt katika pande mbili za ukubwa sawa, kuchukua kiwango cha kuegemea katika mwelekeo wowote kama parameter.
  • njamaUsio sawa (): Tilt katika pande mbili za ukubwa tofauti, kuchukua urefu wa mwelekeo katika kila mwelekeo kama parameter. Hutumia plotDiagonal () kwanza na inaongeza kwenye safu ya LedPlotList baadaye.

Hizi kazi za kupanga njama huandika safu ya kuratibu zinazoongozwa kwa ledPlotList kupangwa baadaye.

Hatua ya 9: Hatua ya 5: Plot LED Matrix kwa Kila Kesi

Kutumia kazi za kupanga njama kutoka kwa kesi tatu katika hatua ya 4, sasa tunaweza kupanga matrix halisi ya LED kwa mchanganyiko tofauti wa viwango vya kuinama. Kwa kuwa kazi tatu katika hatua ya 4 hazina ubaguzi na mwelekeo, tunahitaji kurekebisha maadili ya kuratibu yaliyopitishwa kwa tumbo la LED ili kupanga LED kwenye mwelekeo sahihi.

PlotResult () ina hali nyingi ikiwa huangalia aina ya kuelekeza na kupanga tumbo la LED ipasavyo kwa kutumia led.plot (x, y). Mchanganyiko unaowezekana wa tilt ni:

Mwelekeo mmoja: Kushoto tu au kulia tu

Mwelekeo mmoja: Songa Mbele tu au Nyuma tu

Maagizo mawili: Mbele-kushoto au Mbele-kushoto

Maagizo mawili: Mbele-kulia au Mbele-kulia

Kumbuka: Kwa kuelekeza pande mbili, kila mchanganyiko unaweza kuwa na ukubwa sawa au tofauti (iliyoangaliwa kwa kulinganisha maxX na maxY), na kwa hivyo imepanga kutumia plotDiagonal () au plotUnqual () mtawaliwa.

Hatua ya 10: Hatua ya 6: Andika Kazi za Upimaji

Baada ya kumaliza idadi kubwa ya nambari, sasa tunaongeza kwenye calibTilt () na kazi za kuwekaTilt ().

calibTilt () inaruhusu watumiaji kugeuza mwelekeo hadi sifuri kwa nafasi ya sasa ya micro: bit

resetTilt () huweka upya usawa wa bodi kwa hali yake ya asili.

Hatua ya 11: Hatua ya 7: Andika Kazi ya Jimbo

Tunaongeza kazi rahisi ya kuangaliaState () kuangalia ikiwa viwango vya kuogelea vimebadilika kutoka kwa upitishaji uliopita.

Ikiwa hakuna mabadiliko katika viwango vya kuinama kutoka kwa iteration ya awali i.e. stateChange == 0, tunaweza kuendelea moja kwa moja na iteration inayofuata na kuruka mpango wa tumbo la LED, kupunguza hesabu inayohitajika.

Hatua ya 12: Hatua ya 8: Kuiweka Pamoja Sehemu ya 1

Sasa tunaweza hatimaye kuweka kazi zote muhimu kwenye kitanzi kidogo: kidogo cha kuikamilisha mara kwa mara.

Kwanza, tunaweka kitufe cha A na B kwenye micro: bit kwa calibTilt () na resetTilt () kazi kwa mtiririko huo kwa kutumia input.onButtonPressed (), na kupanga tiki kwenye tumbo la LED wakati calibration imekamilika.

Hatua ya 13: Hatua ya 9: Kuiweka Pamoja Sehemu ya 2

Halafu endesha kazi zinazohitajika kulingana na mtiririko wa nambari yetu katika Hatua ya 0 na uangalie mabadiliko ya serikali (ikimaanisha kuwa kuna mabadiliko katika mwelekeo wa micro: bit tangu iteration ya mwisho).

Ikiwa kuna mabadiliko katika viwango vya kuhama yaani stateChange == 1, nambari hiyo itasasisha prevState kwa viwango vipya vya kuinama na kuweka haliChange kurudi 0 kwa iteration inayofuata, na kupanga ngazi za kusonga zilizosasishwa kwenye tumbo la LED ukitumia PlotResult ().

Hatua ya 14: Hatua ya 10: Mkutano

Piga msimbo uliokamilishwa kwa micro: bit.

Ambatisha ndogo yako: kidogo na kifurushi cha betri salama kwa kitu chochote na iko tayari kutumika!

Ajabu

Furahiya na kiwango chako cha umeme cha umeme! Na wakati uko kwenye hiyo, kwanini usijaribu kupanua uwezo wa sensor ya kuelekeza au hata kuibadilisha kuwa mchezo?

Nakala hii ni kutoka TINKERCADEMY.

Hatua ya 15: Chanzo

Nakala hii ni kutoka:

Ikiwa una maswali yoyote, unaweza kuwasiliana na: [email protected].

Ilipendekeza: