Turinys:

Sukurkite elektrinį gulsčiuką: 15 žingsnių
Sukurkite elektrinį gulsčiuką: 15 žingsnių

Video: Sukurkite elektrinį gulsčiuką: 15 žingsnių

Video: Sukurkite elektrinį gulsčiuką: 15 žingsnių
Video: Elektronikos gaminiai, sukurti Kaune 2024, Lapkritis
Anonim
Sukurkite elektrinį gulsčiuką
Sukurkite elektrinį gulsčiuką

Naudokite šį gulsčiuką, kad greitai ir lengvai parodytumėte bet kokio pritvirtinto objekto pakreipimą!

Sukūrė Kaitlyn iš „Raffles Institution“.

1 žingsnis: Tikslai

Išmokite skaityti pakreipimą naudodami „micro: bit“įmontuotą akselerometrą.

Išmokite dirbti su „micro: bit“5x5 LED ekranu!

2 žingsnis: medžiagos

1 x BBC mikro: bit

1 x Micro USB kabelis

2 x AA baterijos

1 x dvigubas AA baterijų paketas

3 žingsnis: išankstinis kodavimas: prijunkite „Micro: Bit“

  1. Prijunkite „BBC micro: bit“prie kompiuterio naudodami „micro USB“kabelį.
  2. Pasiekite „micro: bit“„JavaScript“redaktorių svetainėje makecode.microbit.org.

4 žingsnis: 0 žingsnis: kodo srautas

Prieš pradėdami rašyti kodą, turime nuspręsti, ką norime pasiekti su programa ir kokia tvarka turėtų būti vykdomas kiekvienas komponentas.

Elektrinio gulsčiuko atveju veiksmai, kurių imsimės kiekvienos kilpos kodu:

  • Skaitykite pakreipimo rodmenis iš akselerometro.
  • Konvertuokite posvyrio rodmenis į pakreipimo lygius, kad jie būtų rodomi LED matricoje.
  • Patikrinkite, ar pasikeitė pakreipimo lygio rodmenys iš ankstesnės kilpos.
  • Sukurkite LED koordinačių masyvą įvairiems pakreipimo atvejams ir kryptims.
  • Nubraižykite LED koordinates ant mikro: bitų LED matricos.

Turime įtraukti keletą papildomų funkcijų:

  • Pradinės pakreipimo padėties kalibravimas.
  • Grįžtama prie numatytojo pakreipimo kalibravimo.

5 veiksmas: 1 žingsnis: kintamųjų apibrėžimas

Mes pradedame apibrėždami reikiamus kintamuosius, kaip parodyta. Kelių kintamųjų suskirstymas yra toks:

  • tiltList: masyvas, kuriame saugomas pakreipimo mastas nuo 0-4 reikšmių tokia tvarka [kairėn, dešinėn, pirmyn, atgal]
  • tiltBoundary: pirmojo pakreipimo lygio riba tarp 0 (be pakreipimo) ir 1 (nedidelis pakreipimas)
  • prevState: Masyvas, kuriame saugomos ankstesnės kilpos „micro: bit“pakreipimo vertės tuo pačiu formatu kaip „tiltList“, naudojamas patikrinti, ar pakrypimas tarp iteracijų pasikeitė
  • ledPlotList: Nubraižykite vadovaujamų koordinačių masyvus forma (x, y). Norėdami apibrėžti masyvą, mes naudojame tipo numerį , kad nurodytume tipo: numerio kintamųjų įdėtą masyvą.

6 veiksmas: 2 žingsnis: paverskite pakreipimo vertes į lygius

Kadangi 5x5 LED matrica gali parodyti tik tiek informacijos, faktinės pakreipimo vertės nebus naudingos rodymui.

Funkcija tiltExtent () paima parametrą num, kuris nurodo pagreičio matuoklio pakreipimo vertę, ir konvertuoja šias pakreipimo vertes (num) į pakreipimo lygius nuo 0 iki 4.

0 nurodo, kad tam tikra kryptimi nėra pakreipimo, o 4 -labai didelį pasvirimą, o -1 -grąžinama, kai yra klaida.

Čia kaip pakreipimo lygių ribinės vertės naudojamos tiltBoundary ir tiltSensitivity.

7 veiksmas: 3 žingsnis: sukurkite pakreipimo lygius

Dvi funkcijos checkRoll () ir checkPitch () įrašo pakreipimo lygius, gautus iš tiltExtent (), į tiltList atitinkamai ritiniui (kairėn dešinėn) ir žingsniui (pirmyn atgal).

Prieš naudodami pakreipimo vertes, mes juos kalibruojame naudodami nulinę reikšmę tiek žingsniui (zeroPitch), tiek ritiniui (zeroRoll), gautam iš vėliau parašytos kalibravimo funkcijos.

Kadangi akselerometro rodmenys yra neigiami tiek pakreipus kairę, tiek į priekį, turime naudoti funkciją Math.abs (), kad gautume neigiamos vertės modulį, kuris turi būti suteiktas funkcijai tiltExtent () kaip šių dviejų krypčių parametras.

8 veiksmas: 4 žingsnis: parašykite „LEDPlotList“funkcijas

Gavę pakreipimo lygius „tiltList“, dabar galime parašyti vedamas brėžinio funkcijas įvairiems atvejams, kurie gali kilti, būtent

  • plotSingle (): pakreipkite tik viena kryptimi, kaip parametrą laikydami pakreipimo tam tikra kryptimi mastą.
  • plotDiagonal (): pakreipkite į dvi to paties dydžio kryptis, kaip parametrą laikykite pasvirimo laipsnį bet kuria kryptimi.
  • plotUnequal (): pakreipkite į dvi skirtingo dydžio kryptis, kaip parametrą laikykite pasvirimo laipsnį kiekviena kryptimi. Pirmiausia naudoja plotDiagonal () ir vėliau prideda prie ledPlotList masyvo.

Šios braižymo funkcijos į ledPlotList įrašo vedamų koordinačių masyvą, kuris bus nubraižytas vėliau.

9 veiksmas: 5 žingsnis: Nubraižykite LED matricą kiekvienu atveju

Naudodami brėžinio funkcijas iš trijų atvejų 4 žingsnyje, dabar galime nubraižyti tikrąją LED matricą įvairiems galimiems pakreipimo lygių deriniams. Kadangi trys 4 žingsnio funkcijos nediskriminuoja krypties, turime koreguoti LED matricai perduotas koordinačių reikšmes, kad šviesos diodai būtų nubrėžti teisingomis kryptimis.

„PlotResult“() yra kelios sąlygos, kurios tikrina pakreipimo tipą ir atitinkamai nubraižo LED matricą naudojant „led.plot“(x, y). Galimi pakreipimo deriniai yra šie:

Viena kryptis: tik į kairę arba tik į dešinę

Viena kryptis: tik pirmyn arba tik atgal

Dvi kryptys: pirmyn kairėn arba atgal kairėn

Dvi kryptys: pirmyn į dešinę arba atgal į dešinę

Pastaba: kai pakreipiama dviem kryptimis, kiekvienas derinys gali būti vienodo arba skirtingo dydžio (tikrinamas lyginant maxX ir maxY), todėl nubraižomas atitinkamai naudojant plotDiagonal () arba plotUnequal ().

10 veiksmas: 6 veiksmas: parašykite kalibravimo funkcijas

Baigę didžiąją kodo dalį, dabar pridedame funkcijas calibTilt () ir resetTilt ().

„calibTilt“() leidžia vartotojams nustatyti pasvirimą iki nulio esant dabartinei „micro: bit“padėčiai

resetTilt () grąžina plokštės kalibravimą į pradinę būseną.

11 veiksmas: 7 žingsnis: parašykite būsenos funkciją

Pridedame paprastą funkciją checkState (), kad patikrintume, ar pakreipimo lygiai pasikeitė nuo ankstesnės iteracijos.

Jei pakreipimo lygiai nesikeičia nuo ankstesnės iteracijos, t.

12 žingsnis: 8 žingsnis: viską sudėkite 1 dalis

Dabar pagaliau galime įdėti visas būtinas funkcijas į „micro: bit“begalinę kilpą, kad ji būtų paleista pakartotinai.

Pirma, mes nustatome „micro: bit“mygtukus A ir B į atitinkamai „calibTilt“() ir „resetTilt“() funkcijas, naudodami įvestį. OnButtonPressed (), o kai kalibravimas baigiamas, pažymime varnelę ant LED matricos.

13 žingsnis: 9 veiksmas: viską sudėkite 2 dalis

Toliau paleiskite reikiamas funkcijas pagal mūsų kodo srautą 0 žingsnyje ir patikrinkite, ar nepasikeitė būsena (tai reiškia, kad pasikeitė „micro: bit“pakreipimas nuo paskutinės iteracijos).

Jei pasikeičia pasvirimo lygiai, t.

14 žingsnis: 10 žingsnis: surinkimas

Pabaikite užbaigtą kodą į „micro: bit“.

Tvirtai pritvirtinkite „micro: bit“ir akumuliatorių prie bet kurio objekto ir jis yra paruoštas naudoti!

Nuostabu

Linksminkitės su elektriniu gulsčiuku! Ir kol jūs tai darote, kodėl gi nepabandžius išplėsti pakreipimo jutiklio galimybių ar net paversti jį žaidimu?

Šis straipsnis yra iš TINKERCADEMY.

15 žingsnis: šaltinis

Šis straipsnis yra iš:

Jei turite klausimų, galite susisiekti : [email protected].

Rekomenduojamas: