Satura rādītājs:

Izveidojiet elektrisko līmeņrādi: 15 soļi
Izveidojiet elektrisko līmeņrādi: 15 soļi

Video: Izveidojiet elektrisko līmeņrādi: 15 soļi

Video: Izveidojiet elektrisko līmeņrādi: 15 soļi
Video: 15 крутых электровелосипедов с AliExpress, Фэтбайк 2021 2024, Jūlijs
Anonim
Izveidojiet elektrisko līmeņrādi
Izveidojiet elektrisko līmeņrādi

Izmantojiet šo līmeņrādi, lai ātri un viegli parādītu jebkura pievienota objekta slīpumu!

Izveidoja Kaitlyn no Raffles Institution.

1. darbība. Mērķi

Iemācieties lasīt slīpumu, izmantojot micro: bit iebūvēto akselerometru.

Iemācieties strādāt ar micro: bit 5x5 LED displeju!

2. solis: materiāli

1 x BBC mikro: bits

1 x mikro USB kabelis

2 x AA baterijas

1 x dubults AA bateriju komplekts

3. darbība. Iepriekšēja kodēšana: pievienojiet savu Micro: Bit

  1. Savienojiet BBC micro: bit ar datoru, izmantojot mikro USB kabeli.
  2. Piekļūstiet javascript redaktoram vietnē microcits vietnē makecode.microbit.org.

4. darbība: 0. darbība: koda plūsma

Pirms sākam rakstīt kodu, mums jāizlemj, ko mēs vēlamies sasniegt ar programmu un kādā secībā katram komponentam vajadzētu darboties.

Attiecībā uz elektrisko līmeņrādi soļi, ko mēs veiksim katras cilpas kodā, ir šādi:

  • Lasiet paātrinājuma mērījumus no akselerometra.
  • Pārvērst slīpuma rādījumus slīpuma līmeņos, lai tie tiktu parādīti LED matricā.
  • Pārbaudiet, vai nav izmaiņas slīpuma līmeņa rādījumos no iepriekšējās cilpas.
  • Izveidojiet LED koordinātu masīvu dažādiem slīpuma gadījumiem un virzieniem.
  • Uzzīmējiet LED koordinātas mikro: bitu LED matricā.

Mums ir jāiekļauj dažas papildu funkcijas:

  • Kalibrēšana sākotnējam slīpuma stāvoklim.
  • Atgriežoties pie noklusējuma slīpuma kalibrēšanas.

5. darbība: 1. darbība: mainīgo noteikšana

Mēs sākam, nosakot nepieciešamos mainīgos, kā parādīts attēlā. Dažu mainīgo sadalījums ir šāds:

  • tiltList: masīvs, kas saglabā slīpuma pakāpi no vērtībām 0-4 secībā [pa kreisi, pa labi, uz priekšu, atpakaļ]
  • tiltBoundary: pirmā slīpuma līmeņa robeža starp 0 (bez slīpuma) un 1 (neliels slīpums)
  • prevState: Masīvs, kurā tiek saglabātas iepriekšējās cilpas micro: bit slīpuma vērtības tādā pašā formātā kā tiltList, ko izmanto, lai pārbaudītu slīpuma izmaiņas starp iterācijām
  • ledPlotList: uzzīmējiet led koordinātu masīvus formā (x, y). Lai definētu masīvu, mēs izmantojam tipa numuru , lai norādītu ligzdotu masīvu ar mainīgajiem tipiem: number.

6. darbība: 2. darbība. Pārvērtiet slīpuma vērtības uz līmeņiem

Tā kā 5x5 LED matrica var parādīt tikai tik daudz informācijas, faktiskās slīpuma vērtības displejā nebūs noderīgas.

Tā vietā funkcija tiltExtent () ņem parametru num, kas attiecas uz akselerometra slīpuma vērtību, un pārvērš šīs slīpuma vērtības (num) slīpuma līmeņos no 0 līdz 4.

0 norāda, ka dotajā virzienā nav slīpuma, un 4 norāda uz ļoti lielu slīpumu, bet -1 tiek atgriezts kļūdas gadījumā.

Šeit kā robežas vērtības starp slīpuma līmeņiem tiek izmantotas tiltBoundary un tiltSensitivity.

7. darbība: 3. darbība: salieciet slīpuma līmeņus

Abas funkcijas checkRoll () un checkPitch () ieraksta slīpuma līmeņus, kas iegūti no tiltExtent (), tiltList attiecīgi rullīša (kreisais-labais) un solis (uz priekšu-atpakaļ) asīm.

Pirms slīpuma vērtību izmantošanas mēs tās kalibrējam, izmantojot nulles vērtību gan solim (zeroPitch), gan rullim (zeroRoll), kas iegūts no vēlāk rakstītās kalibrēšanas funkcijas.

Tā kā akselerometra rādījumi ir negatīvi gan slīpumam pa kreisi, gan uz priekšu, mums jāizmanto funkcija Math.abs (), lai iegūtu negatīvās vērtības moduli, kas jādod funkcijai tiltExtent () kā parametrs šiem diviem virzieniem.

8. darbība: 4. darbība: ierakstiet LEDPlotList funkcijas

Ieguvuši slīpuma līmeņus tiltList, mēs tagad varam uzrakstīt vadītās zīmēšanas funkcijas dažādiem gadījumiem, kas var rasties, proti

  • plotSingle (): noliekt tikai vienā virzienā, kā parametru ņemot slīpuma pakāpi noteiktā virzienā.
  • plotDiagonal (): noliec divos vienāda lieluma virzienos, kā parametru ņemot slīpuma pakāpi jebkurā virzienā.
  • plotUnequal (): nolieciet divos dažāda lieluma virzienos, kā parametru ņemot slīpuma pakāpi katrā virzienā. Vispirms izmanto plotDiagonal () un pēc tam pievieno LEDPlotList masīvam.

Šīs zīmēšanas funkcijas uz ledPlotList raksta led koordinātu masīvu, kas tiks attēlots vēlāk.

9. darbība: 5. darbība: uzzīmējiet LED matricu katram gadījumam

Izmantojot diagrammas funkcijas no trim gadījumiem 4. solī, mēs tagad varam uzzīmēt faktisko LED matricu dažādām iespējamām slīpuma līmeņu kombinācijām. Tā kā trīs funkcijas 4. solī nediskriminē virzienu, mums ir jāpielāgo LED matricai nodotās koordinātu vērtības, lai attēlotu gaismas diodes pareizajos virzienos.

PlotResult () satur vairākus ja nosacījumus, kas pārbauda slīpuma veidu un attiecīgi uzzīmē LED matricu, izmantojot LED.plot (x, y). Iespējamās slīpuma kombinācijas ir šādas:

Viens virziens: tikai pa kreisi vai tikai pa labi

Viens virziens: tikai uz priekšu vai tikai atpakaļ

Divi virzieni: uz priekšu pa kreisi vai atpakaļ uz kreiso pusi

Divi virzieni: uz priekšu pa labi vai atpakaļ uz labo pusi

Piezīme. Slīpumam divos virzienos katrai kombinācijai var būt vienāds vai atšķirīgs lielums (to pārbauda, salīdzinot maxX un maxY), un tāpēc to var attēlot, izmantojot attiecīgi plotDiagonal () vai plotUnequal ().

10. darbība: 6. darbība: uzrakstiet kalibrēšanas funkcijas

Pabeidzot lielāko daļu koda, mēs tagad pievienojam funkcijas calibTilt () un resetTilt ().

calibTilt () ļauj lietotājiem noregulēt slīpumu līdz nullei micro: bit pašreizējā stāvoklī

resetTilt () atiestata plates kalibrēšanu sākotnējā stāvoklī.

11. darbība: 7. darbība. Ierakstiet valsts funkciju

Mēs pievienojam vienkāršu funkciju checkState (), lai pārbaudītu, vai slīpuma līmeņi ir mainījušies no iepriekšējās iterācijas.

Ja slīpuma līmeņi nemainās salīdzinājumā ar iepriekšējo iterāciju, ti, stateChange == 0, mēs varam tieši pāriet uz nākamo atkārtojumu un izlaist LED matricas zīmējumu, samazinot nepieciešamo aprēķinu.

12. solis: 8. solis: visu salieciet kopā 1. daļa

Tagad mēs beidzot varam ievietot visas nepieciešamās funkcijas micro: bit bezgalīgajā cilpā, lai to palaistu atkārtoti.

Pirmkārt, mēs iestatām pogas A un B uz micro: bit attiecīgi funkcijām calibTilt () un resetTilt (), izmantojot input.onButtonPressed (), un, kad kalibrēšana ir pabeigta, uzzīmējiet ķeksīti uz LED matricas.

13. solis: 9. darbība: visu salieciet kopā 2. daļa

Tālāk izpildiet nepieciešamās funkcijas saskaņā ar mūsu koda plūsmu 0.

Ja tiek mainīti slīpuma līmeņi, ti, stateChange == 1, kods atjauninās prevState uz jaunajiem slīpuma līmeņiem un iestatīs statusChange atpakaļ uz 0 nākamajai iterācijai un uzzīmēs atjauninātos slīpuma līmeņus uz LED matricas, izmantojot PlotResult ().

14. darbība: 10. darbība: montāža

Pārslēdziet pabeigto kodu uz savu micro: bit.

Pievienojiet savu micro: bit un akumulatoru droši jebkuram objektam, un tas ir gatavs lietošanai!

Satriecošs

Izklaidējieties ar savu elektrisko līmeņrādi! Un, kamēr jūs to darāt, kāpēc nemēģināt paplašināt slīpuma sensora iespējas vai pat pārvērst to par spēli?

Šis raksts ir no TINKERCADEMY.

15. solis: avots

Šis raksts ir no:

Ja jums ir kādi jautājumi, varat sazināties ar : [email protected].

Ieteicams: