Sisukord:

Elektrilise vesiloodi loomine: 15 sammu
Elektrilise vesiloodi loomine: 15 sammu

Video: Elektrilise vesiloodi loomine: 15 sammu

Video: Elektrilise vesiloodi loomine: 15 sammu
Video: 20 товаров для автомобиля с Алиэкспресс, автотовары №33 2024, November
Anonim
Loo elektriline vesilood
Loo elektriline vesilood

Kasutage seda vesiloodi, et kiiresti ja hõlpsalt kuvada mis tahes kinnitatud objekti kalle!

Loonud Kaitlyn Rafflesi institutsioonist.

1. samm: eesmärgid

Õppige micro: bit sisseehitatud kiirendusmõõturiga kallutamist lugema.

Õppige töötama micro: bit 5x5 LED -ekraaniga!

2. samm: materjalid

1 x BBC mikro: bit

1 x mikro -USB -kaabel

2 x AA patareid

1 x topelt AA patareipakk

3. samm: eelkodeerimine: ühendage oma Micro: Bit

  1. Ühendage BBC micro: bit arvutiga mikro -USB -kaabli abil.
  2. Avage mikro: biti JavaScripti redaktor aadressil makecode.microbit.org.

4. samm: samm 0: koodivoog

Enne koodi kirjutamise alustamist peame otsustama, mida me programmiga saavutada tahame ja millises järjekorras iga komponent käima peaks.

Elektrilise vesiloodi puhul astume iga silmuse koodi sisse järgmised sammud:

  • Lugege kiirendusmõõturilt kaldenäiteid.
  • Teisendage kaldenäidud kaldetasemeteks, mis kuvatakse LED -maatriksil.
  • Kontrollige, kas kaldetaseme näidud on muutunud eelmisest tsüklist.
  • Looge LED -koordinaatide massiiv erinevate kallutusjuhtumite ja suundade jaoks.
  • Joonistage LED -koordinaadid mikro -bitisele LED -maatriksile.

Peame lisama mõned lisafunktsioonid:

  • Kalibreerimine esialgse kallutusasendi jaoks.
  • Tagasi kallutuse vaikekalibreerimise juurde.

5. samm: 1. samm: muutujate määratlemine

Alustuseks määratleme vajalikud muutujad, nagu näidatud. Mõne muutuja jaotus on järgmine:

  • tiltList: massiiv, mis salvestab kaldenurga väärtustest 0-4 järjekorras [vasakule, paremale, edasi, tagasi]
  • tiltBoundary: esimese kaldetaseme piir 0 (ei kaldu) kuni 1 (kerge kallutus)
  • prevState: massiiv, mis salvestab eelmise silmuse mikro: biti kallutusväärtused samas vormingus kui tiltList, mida kasutatakse iteratsioonide vahelise kaldenurga muutuste kontrollimiseks
  • ledPlotList: Joonistage koordinaatide massiivid kujul (x, y). Massiivi määratlemiseks kasutame tüübi numbrit tüübi: number muutujate pesastatud massiivi tähistamiseks.

6. samm: 2. samm: teisendage kallutusväärtused tasemeteks

Kuna 5x5 LED -maatriks suudab kuvada ainult nii palju teavet, ei ole tegelikud kallutusväärtused kuvamiseks kasulikud.

Funktsioon tiltExtent () võtab selle asemel parameetri num, mis viitab kiirendusmõõturi kallutusväärtusele, ja teisendab need kallutusväärtused (num) kaldetasemeteks 0–4.

0 näitab, et antud suunas pole kaldenurka ja 4 näitab väga suurt kallet, samas kui viga tagastatakse -1.

Siin kasutatakse kallutusastmete vaheliste piirväärtustena tiltBoundary ja tiltSensitivity.

Samm 7: samm 3: kompileerige kallutustasemed

Mõlemad funktsioonid checkRoll () ja checkPitch () kirjutavad tiltExtent () -st saadud kaldenivoo vastavalt kaldenurgale (vasak-parem) ja sammu (edasi-tagasi) telgedele.

Enne kallutusväärtuste kasutamist kalibreerime need, kasutades nullväärtust nii sammu (zeroPitch) kui ka rulli (zeroRoll) jaoks, mis on saadud hiljem kirjutatud kalibreerimisfunktsioonist.

Kuna kiirendusmõõturi näidud on negatiivsed nii vasakule kui ka ettepoole kallutamisel, peame kasutama funktsiooni Math.abs (), et saada nende kahe suuna parameetrina funktsioonile tiltExtent () antava negatiivse väärtuse moodul.

8. samm: 4. samm: kirjutage LEDPlotListi funktsioonid

Olles saanud kaldetasemed tiltListis, saame nüüd kirjutada led -joonistusfunktsioonid erinevate juhtumite jaoks, mis võivad tekkida, nimelt

  • plotSingle (): kallutage ainult ühte suunda, võttes parameetrina etteantud suuna kalde.
  • plotDiagonal (): kallutage kahesuunalises suurusjärgus, võttes parameetrina kaldenurka kummaski suunas.
  • plotUnequal (): kallutage kahte erineva suurusega suunda, võttes parameetrina kaldenurga igas suunas. Kasutab kõigepealt plotDiagonal () ja lisab seejärel massiivi ledPlotList.

Need joonistusfunktsioonid kirjutavad ledPlotListile led -koordinaatide massiivi, mis hiljem joonistatakse.

9. samm: 5. samm: joonistage iga juhtumi jaoks LED -maatriks

Kasutades 4. etapi kolme juhtumi joonistusfunktsioone, saame nüüd joonistada tegeliku LED -maatriksi erinevate võimalike kaldetasemete kombinatsioonide jaoks. Kuna etapi 4 kolm funktsiooni ei erista suunda, peame kohandama LED -maatriksile edastatud koordinaatide väärtusi, et joonistada LED -id õiges suunas.

PlotResult () sisaldab mitut if -tingimust, mis kontrollivad kalde tüüpi ja joonistavad LED -maatriksi vastavalt, kasutades led.plot (x, y). Kallutamise võimalikud kombinatsioonid on järgmised:

Üks suund: ainult vasakule või ainult paremale

Üks suund: ainult edasi või ainult tagasi

Kaks suunda: vasakule edasi või tagasi

Kaks suunda: edasi-paremale või tagasi-paremale

Märkus. Kahes suunas kallutamise korral võib igal kombinatsioonil olla sama või erinev suurusjärk (seda kontrollitakse, võrreldes maxX ja maxY) ning seetõttu joonistatakse vastavalt plotDiagonal () või plotUnequal ().

10. samm: 6. samm: kirjutage kalibreerimisfunktsioonid

Olles lõpetanud suurema osa koodist, lisame nüüd funktsioonid calibTilt () ja resetTilt ().

calibTilt () võimaldab kasutajatel mikro: biti praeguses asendis kallutada nulli

resetTilt () lähtestab plaadi kalibreerimise algsesse olekusse.

11. samm: 7. samm: olekufunktsiooni kirjutamine

Lisame lihtsa funktsiooni checkState (), et kontrollida, kas kallutustasemed on eelmisest iteratsioonist muutunud.

Kui kaldetasemed ei muutu võrreldes eelmise iteratsiooniga, st olekumuutus == 0, võime liikuda otse järgmise iteratsiooni juurde ja jätta LED -maatriksi joonistamine vahele, vähendades vajalikku arvutamist.

12. samm: 8. samm: kõik kokku panemine 1. osa

Nüüd saame lõpuks kõik vajalikud funktsioonid paigutada micro: bit'i lõpmatusse ahelasse, et seda korduvalt käivitada.

Esiteks seadisime micro: bit nupud A ja B vastavalt funktsioonile calibTilt () ja resetTilt (), kasutades sisendit. OnButtonPressed () ja joonistame linnukese LED -maatriksile, kui kalibreerimine on lõpetatud.

Samm 13: samm 9: kõik kokku panemine, 2. osa

Järgmisena käivitage vajalikud toimingud vastavalt meie koodivoole etapis 0 ja kontrollige oleku muutust (see tähendab, et pärast viimast iteratsiooni on mikro: bitti kaldenurk muutunud).

Kui kaldetasemed muutuvad, st stateChange == 1, värskendatakse kood prevState uutele kaldetasemetele ja määratakse järgmise iteratsiooni jaoks olek Muuda tagasi 0 ja joonistatakse värskendatud kaldetasemed LED -maatriksile, kasutades PlotResult ().

14. samm: samm 10: kokkupanek

Välgutage lõpetatud kood oma micro: bitile.

Kinnitage oma micro: bit ja aku kindlalt igale objektile ja see on kasutusvalmis!

Vinge

Lõbutsege oma elektrilise vesiloodiga! Ja kui olete selle juures, siis miks mitte proovida laiendada kallutusanduri võimalusi või isegi muuta see mänguks?

See artikkel on pärit TINKERCADEMY -st.

15. samm: allikas

See artikkel on pärit:

Küsimuste korral võite võtta ühendust aadressil : [email protected].

Soovitan: