Sadržaj:

Stvorite električnu libelu: 15 koraka
Stvorite električnu libelu: 15 koraka

Video: Stvorite električnu libelu: 15 koraka

Video: Stvorite električnu libelu: 15 koraka
Video: Упражнения при боли в плече | Удар | Бурсит | Андреа Фурлан, доктор медицинских наук 2024, Studeni
Anonim
Napravite električnu libelu
Napravite električnu libelu

Koristite ovu libelu za brzo i jednostavno prikazivanje nagiba bilo kojeg pričvršćenog predmeta!

Kreirala Kaitlyn iz Instituta Raffles.

Korak 1: Ciljevi

Naučite čitati nagib pomoću mikro: bit ugrađenog akcelerometra.

Naučite raditi s micro: bit 5x5 LED zaslonom!

Korak 2: Materijali

1 x BBC mikro: bit

1 x mikro USB kabel

2 x AA baterije

1 x dvostruka AA baterija

Korak 3: Predkodiranje: Povežite svoj Micro: Bit

  1. Spojite BBC micro: bit na računalo pomoću mikro USB kabela.
  2. Pristupite javascript uređivaču za micro: bit na stranici makecode.microbit.org.

Korak 4: Korak 0: Tijek koda

Prije nego počnemo pisati kôd, moramo odlučiti što želimo postići programom i kojim redoslijedom bi svaka komponenta trebala raditi.

Za električnu libelu, koraci koje ćemo poduzeti u kodu za svaku petlju su:

  • Očitajte očitanja nagiba s mjerača ubrzanja.
  • Pretvorite očitanja nagiba u razine nagiba za prikaz na LED matrici.
  • Provjerite promjene očitanja razine nagiba iz prethodne petlje.
  • Stvorite niz LED koordinata za različite slučajeve i smjerove nagiba.
  • Ucrtajte LED koordinate na micro: bit LED matricu.

Nekoliko dodatnih funkcija koje moramo uključiti su:

  • Kalibracija za početni položaj nagiba.
  • Vraćanje na zadanu kalibraciju nagiba.

Korak 5: Korak 1: Definiranje varijabli

Počinjemo definiranjem potrebnih varijabli kako je prikazano. Analiza nekoliko varijabli je sljedeća:

  • tiltList: Niz koji pohranjuje opseg nagiba od vrijednosti 0-4 po redoslijedu [Lijevo, Desno, Naprijed, Nazad]
  • tiltBoundary: Granica prve razine nagiba između 0 (bez nagiba) i 1 (blagi nagib)
  • prevState: Niz koji pohranjuje vrijednosti nagiba micro: bita iz prethodne petlje u istom formatu kao i tiltList, koji se koristi za provjeru promjene nagiba između iteracija
  • ledPlotList: Iscrtajte vodene koordinatne nizove u obliku (x, y). Da bismo definirali niz, koristimo tip broja za označavanje ugniježđenog niza varijabli tipa: broj.

Korak 6: Korak 2: Pretvorite vrijednosti nagiba u razine

Budući da LED matrica 5x5 može prikazati samo toliko informacija, stvarne vrijednosti nagiba neće biti korisne za prikaz.

Umjesto toga, funkcija tiltExtent () uzima parametar num, koji se odnosi na vrijednost nagiba iz mjerača ubrzanja, i pretvara te vrijednosti nagiba (num) u razine nagiba od 0 do 4.

0 označava nema nagiba u danom smjeru, a 4 označava vrlo veliki nagib, dok se -1 vraća kada dođe do pogreške.

Ovdje se tiltBoundary i tiltSensitivity koriste kao granične vrijednosti između razina nagiba.

Korak 7: Korak 3: Sastavite razine nagiba

Dvije funkcije checkRoll () i checkPitch () upisuju razine nagiba dobivene iz tiltExtent () u tiltList za osi kotrljanja (lijevo-desno) i nagiba (naprijed-natrag).

Prije korištenja vrijednosti nagiba kalibriramo ih pomoću vrijednosti s nulom i za korak (zeroPitch) i za kotrljanje (zeroRoll) dobiven iz kasnije napisane kalibracijske funkcije.

Kako su očitanja akcelerometra negativna i za nagib ulijevo i prema naprijed, moramo koristiti funkciju Math.abs () da bismo dobili modul negativne vrijednosti koji se mora dati funkciji tiltExtent () kao parametar za ova dva smjera.

Korak 8: Korak 4: Napišite LEDPlotList funkcije

Dobivši razine nagiba u tiltList -u, sada možemo napisati vodeće funkcije iscrtavanja za različite slučajeve koji se mogu pojaviti, naime

  • plotSingle (): Nagib samo u jednom smjeru, uzimajući opseg nagiba u zadanom smjeru kao parametar.
  • plotDiagonal (): Nagib u dva smjera iste veličine, uzimajući kao parametar opseg nagiba u oba smjera.
  • plotUnequal (): Nagib u dva smjera različitih veličina, uzimajući za svaki parametar opseg nagiba u svakom smjeru. Prvo koristi plotDiagonal (), a zatim dodaje u ledPlotList niz.

Ove funkcije iscrtavanja zapisuju niz vodećih koordinata u ledPlotList koji će se kasnije iscrtati.

Korak 9: Korak 5: Iscrtajte LED matricu za svaki slučaj

Koristeći crtanje funkcija iz tri slučaja u koraku 4, sada možemo iscrtati stvarnu LED matricu za različite moguće kombinacije razina nagiba. Kako tri funkcije u koraku 4 ne razlikuju smjer, moramo prilagoditi vrijednosti koordinata proslijeđene LED matrici kako bismo LED diode iscrtali u pravim smjerovima.

PlotResult () sadrži više if uvjeta koji provjeravaju vrstu nagiba i prema tome iscrtavaju LED matricu pomoću LED.plot (x, y). Moguće kombinacije nagiba su:

Jednosmjerni smjer: samo lijevo ili samo desno

Jednosmjerni smjer: samo naprijed ili samo natrag

Dva smjera: naprijed-lijevo ili natrag-lijevo

Dva smjera: naprijed-desno ili natrag-desno

Napomena: Za nagib u dva smjera, svaka kombinacija može imati istu ili različitu veličinu (provjerava se usporedbom maxX i maxY), pa se stoga iscrtava pomoću plotDiagonal () ili plotUnequal ().

Korak 10: Korak 6: Napišite kalibracijske funkcije

Nakon što smo završili većinu koda, sada dodajemo funkcije calibTilt () i resetTilt ().

calibTilt () omogućuje korisnicima da podese nagib na nulu u trenutnom položaju mikro: bita

resetTilt () vraća kalibraciju ploče u njezino izvorno stanje.

Korak 11: Korak 7: Napišite funkciju stanja

Dodajemo jednostavnu funkciju checkState () kako bismo provjerili jesu li se razine nagiba promijenile u odnosu na prethodnu iteraciju.

Ako nema promjena u razinama nagiba u odnosu na prethodnu iteraciju, tj. Stanje promjene == 0, možemo izravno prijeći na sljedeću iteraciju i preskočiti iscrtavanje LED matrice, smanjujući potrebno izračunavanje.

Korak 12: Korak 8: Sve zajedno 1. dio

Sada konačno možemo staviti sve potrebne funkcije u beskonačnu petlju micro: bita kako bismo je više puta pokrenuli.

Najprije smo postavili tipke A i B na micro: bitu na funkcije calibTilt () i resetTilt () respektivno pomoću input.onButtonPressed () i označili kvačicu na LED matrici kad je kalibracija dovršena.

Korak 13: Korak 9: Sve zajedno 2. dio

Zatim pokrenite potrebne funkcije prema našem protokolu koda u koraku 0 i provjerite postoji li promjena stanja (što znači da je došlo do promjene u nagibu micro: bita od posljednje iteracije).

Ako dođe do promjene razina nagiba, tj. StateChange == 1, kôd će ažurirati prevState na nove razine nagiba i postaviti stanjeChange natrag na 0 za sljedeću iteraciju te iscrtati ažurirane razine nagiba na LED matrici pomoću PlotResult ().

Korak 14: Korak 10: Montaža

Prebacite dovršeni kôd u svoj micro: bit.

Čvrsto pričvrstite svoj micro: bit i bateriju na bilo koji objekt i spreman je za uporabu!

Super

Zabavite se sa svojom električnom libelom! I dok ste već kod toga, zašto ne biste pokušali proširiti mogućnosti osjetnika nagiba ili ga čak pretvoriti u igru?

Ovaj članak je iz TINKERCADEMY.

Korak 15: Izvor

Ovaj članak je sa:

Ako imate bilo kakvih pitanja, možete se obratiti na adresu [email protected].

Preporučeni: