Obsah:

Vytvořte elektrickou vodováhu: 15 kroků
Vytvořte elektrickou vodováhu: 15 kroků

Video: Vytvořte elektrickou vodováhu: 15 kroků

Video: Vytvořte elektrickou vodováhu: 15 kroků
Video: Arianka není rozmazlený dítě! Je jenom perfekcionista 🥺 2024, Červenec
Anonim
Vytvořte elektrickou vodováhu
Vytvořte elektrickou vodováhu

Pomocí této vodováhy můžete rychle a snadno zobrazit náklon jakéhokoli připojeného předmětu!

Vytvořila Kaitlyn z instituce Raffles.

Krok 1: Cíle

Naučte se číst náklon pomocí vestavěného akcelerometru micro: bit.

Naučte se pracovat s LED displejem micro: bit 5x5!

Krok 2: Materiály

1 x BBC micro: bit

1 x kabel Micro USB

2 x baterie AA

1 x dvojitá baterie AA

Krok 3: Před kódováním: Připojte svůj Micro: Bit

  1. Připojte micro: bit BBC k počítači pomocí kabelu micro USB.
  2. Otevřete editor javascriptu pro micro: bit na makecode.microbit.org.

Krok 4: Krok 0: Tok kódu

Než začneme psát kód, musíme se rozhodnout, čeho chceme programem dosáhnout a v jakém pořadí by měly jednotlivé komponenty běžet.

Pro elektrickou vodováhu jsou kroky, které provedeme v kódu pro každou smyčku, následující:

  • Odečtěte hodnoty náklonu z akcelerometru.
  • Převeďte hodnoty náklonu na úrovně náklonu, které se zobrazí na matici LED.
  • Zkontrolujte, zda nedošlo ke změně hodnot úrovně náklonu z předchozí smyčky.
  • Vytvořte řadu LED souřadnic pro různé případy a směry náklonu.
  • Vykreslete souřadnice LED na mikro: bitovou LED matici.

Mezi další funkce, které musíme zahrnout, patří:

  • Kalibrace pro počáteční polohu náklonu.
  • Návrat k výchozí kalibraci náklonu.

Krok 5: Krok 1: Definování proměnných

Začneme definováním potřebných proměnných, jak je ukázáno. Rozdělení několika proměnných je následující:

  • tiltList: Pole, které ukládá rozsah náklonu od hodnot 0-4 v pořadí [doleva, doprava, dopředu, dozadu]
  • tiltBoundary: Hranice první úrovně náklonu mezi 0 (bez náklonu) a 1 (mírné naklonění)
  • prevState: Pole, které ukládá hodnoty náklonu mikro: bitu z předchozí smyčky ve stejném formátu jako tiltList, slouží ke kontrole změny náklonu mezi iteracemi
  • ledPlotList: Vykreslení souřadnicových polí vedených ve tvaru (x, y). K definování pole používáme číslo typu k označení vnořeného pole proměnných typu: číslo.

Krok 6: Krok 2: Převod hodnot náklonu na úrovně

Protože matice LED 5x5 dokáže zobrazit pouze tolik informací, skutečné hodnoty náklonu nebudou pro zobrazení užitečné.

Místo toho funkce tiltExtent () převezme parametr num, který odkazuje na hodnotu náklonu z akcelerometru, a převede tyto hodnoty náklonu (num) na úrovně náklonu od 0 do 4.

0 znamená žádný náklon v daném směru a 4 značí velmi velký náklon, zatímco -1 je vráceno v případě chyby.

Zde se jako hraniční hodnoty mezi úrovněmi náklonu používají tiltBoundary a tiltSensitivity.

Krok 7: Krok 3: Kompilace úrovní náklonu

Dvě funkce checkRoll () a checkPitch () zapisují úrovně náklonu získané z tiltExtent () do tiltList pro osy roll (vlevo-vpravo) a pitch (dopředu-dozadu).

Před použitím hodnot naklonění je zkalibrujeme pomocí nulové hodnoty pro stoupání (zeroPitch) i roll (zeroRoll) získané z kalibrační funkce zapsané později.

Jelikož jsou hodnoty akcelerometru negativní pro levý i přední náklon, musíme použít funkci Math.abs () k získání modulu záporné hodnoty, který má být zadán funkci tiltExtent () jako parametr pro tyto dva směry.

Krok 8: Krok 4: Napište funkce LEDPlotList

Po získání úrovní náklonu v tiltList nyní můžeme zapsat funkce vykreslování LED pro různé případy, které mohou nastat, tj.

  • plotSingle (): Naklonění pouze v jednom směru, přičemž parametr naklonění v daném směru.
  • plotDiagonal (): Naklonění ve dvou směrech stejné velikosti, přičemž parametrem je rozsah naklonění v obou směrech.
  • plotUnequal (): Naklonění ve dvou směrech různých velikostí, přičemž parametrem je rozsah naklonění v každém směru. Nejprve použije plotDiagonal () a poté přidá do pole ledPlotList.

Tyto vykreslovací funkce zapisují do ledPlotList řadu vedených souřadnic, které budou později vykresleny.

Krok 9: Krok 5: Vykreslení matice LED pro každý případ

Pomocí funkcí vykreslování ze tří případů v kroku 4 můžeme nyní vykreslit skutečnou matici LED pro různé možné kombinace úrovní náklonu. Jelikož tři funkce v kroku 4 nediskriminují směr, musíme upravit hodnoty souřadnic předané matici LED, abychom vykreslili LED diody správnými směry.

PlotResult () obsahuje vícenásobné podmínky, které kontrolují druh naklonění a podle toho vykreslí matici LED pomocí led.plot (x, y). Možné kombinace náklonu jsou:

Jeden směr: Pouze vlevo nebo Pouze vpravo

Jeden směr: Pouze vpřed nebo Pouze zpět

Dva směry: dopředu-doleva nebo dozadu-doleva

Dva směry: vpřed-vpravo nebo vzad-vpravo

Poznámka: Pro náklon ve dvou směrech může mít každá kombinace stejnou nebo odlišnou velikost (kontrolováno porovnáním maxX a maxY), a proto je vykreslena pomocí plotDiagonal () nebo plotUnequal ().

Krok 10: Krok 6: Napište kalibrační funkce

Po dokončení převážné části kódu nyní přidáme funkce calibTilt () a resetTilt ().

calibTilt () umožňuje uživatelům tarovat náklon na nulu v aktuální poloze micro: bit

resetTilt () resetuje kalibraci desky do původního stavu.

Krok 11: Krok 7: Funkce zápisu stavu

Přidáme jednoduchou funkci checkState (), abychom zkontrolovali, zda se úrovně náklonu změnily z předchozí iterace.

Pokud nedojde ke změně úrovní náklonu z předchozí iterace, tj. StateChange == 0, můžeme přímo přejít na další iteraci a přeskočit vykreslování matice LED, což redukuje výpočet.

Krok 12: Krok 8: Dát to dohromady Část 1

Nyní můžeme konečně umístit všechny potřebné funkce do nekonečné smyčky micro: bit, abychom ji mohli spouštět opakovaně.

Nejprve pomocí tlačítek input.onButtonPressed () nastavíme tlačítka A a B na mikro: bitu na funkce calibTilt () a resetTilt () a po dokončení kalibrace zakreslíme na matici LED.

Krok 13: Krok 9: Dát vše dohromady Část 2

Dále spusťte potřebné funkce podle našeho toku kódu v kroku 0 a zkontrolujte změnu stavu (což znamená, že od poslední iterace došlo ke změně náklonu micro: bit).

Pokud dojde ke změně úrovní náklonu, tj. StateChange == 1, kód aktualizuje prevState na nové úrovně náklonu a nastaví stateChange zpět na 0 pro další iteraci a vykreslí aktualizované úrovně náklonu na matici LED pomocí PlotResult ().

Krok 14: Krok 10: Sestavení

Vyplněný kód si flashujte na svůj micro: bit.

Připojte micro: bit a bateriový modul bezpečně k jakémukoli předmětu a je připraven k použití!

Skvělý

Bavte se s elektrickou vodováhou! A když už jste u toho, proč nezkusit rozšířit možnosti snímače náklonu nebo z něj dokonce udělat hru?

Tento článek pochází z TINKERCADEMY.

Krok 15: Zdroj

Tento článek pochází z:

Pokud máte nějaké dotazy, můžete kontaktovat : [email protected].

Doporučuje: