Sisukord:
- 1. samm: eesmärgid
- 2. samm: materjalid
- 3. samm: eelkodeerimine: ühendage oma Micro: Bit
- 4. samm: samm 0: koodivoog
- 5. samm: 1. samm: muutujate määratlemine
- 6. samm: 2. samm: teisendage kallutusväärtused tasemeteks
- Samm 7: samm 3: kompileerige kallutustasemed
- 8. samm: 4. samm: kirjutage LEDPlotListi funktsioonid
- 9. samm: 5. samm: joonistage iga juhtumi jaoks LED -maatriks
- 10. samm: 6. samm: kirjutage kalibreerimisfunktsioonid
- 11. samm: 7. samm: olekufunktsiooni kirjutamine
- 12. samm: 8. samm: kõik kokku panemine 1. osa
- Samm 13: samm 9: kõik kokku panemine, 2. osa
- 14. samm: samm 10: kokkupanek
- 15. samm: allikas
Video: Elektrilise vesiloodi loomine: 15 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:50
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
- Ühendage BBC micro: bit arvutiga mikro -USB -kaabli abil.
- 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:
12 -voldise elektrilise lineaarse ajami juhtmestik: 3 sammu
12-voldise elektrilise lineaarse ajami juhtmestik: selles juhendis käsitleme 12-voldise lineaarse ajami juhtmestikku (tavalised kasutatavad meetodid) ja põhiteadmisi ajami tööpõhimõtte kohta
Kuidas ma ehitasin oma elektrilise jalgratta generaatori: 10 sammu
Kuidas ma ehitasin oma elektrilise jalgratta generaatori: Paul Fleck
Andmete hankimise ja andmete visualiseerimise süsteem MotoStudent elektrilise võidusõiduratta jaoks: 23 sammu
Andmete hankimise ja andmete visualiseerimise süsteem MotoStudent Electric Racing Bike jaoks: Andmete kogumise süsteem on riist- ja tarkvara kogum, mis töötab koos, et koguda andmeid välisanduritelt, salvestada ja töödelda neid hiljem, et neid oleks võimalik graafiliselt visualiseerida ja analüüsida, võimaldades inseneridel teha
Elektrilise trükkplaadi söövitamine köögitarvetega: 6 sammu (piltidega)
Köögitarvetega trükkplaadi söövitamine: elektroonikaprojektidega nokitsedes saate kiiresti aru, et mida keerukamad need on, seda raskem on neid kokku joota. Tavaliselt tähendab see rottide pesa loomist üksikutest juhtmetest, mis võivad olla mahukad ja raskesti lahendatavad
DIY elektrilise pikendusplaadi juhtmestik: 7 sammu (piltidega)
DIY elektrilise pikendusplaadi juhtmestik: selles juhendis räägin teile samm -sammult kogu selle omatehtud elektrilise pikendusplaadi valmistamise protsessi. See on tõesti väga kasulik elektriplaat. See näitab praegust pinget ja amprit reaalajas. Kui pinge ületab