Spisu treści:

Utwórz poziomicę elektryczną: 15 kroków
Utwórz poziomicę elektryczną: 15 kroków

Wideo: Utwórz poziomicę elektryczną: 15 kroków

Wideo: Utwórz poziomicę elektryczną: 15 kroków
Wideo: Power AD - Narzędzie do osadzania puszek elektrycznych. Montaż, obstawianie instalacji elektrycznej. 2024, Listopad
Anonim
Stwórz elektryczną poziomicę
Stwórz elektryczną poziomicę

Użyj tej poziomicy, aby szybko i łatwo wyświetlić przechylenie dowolnego dołączonego przedmiotu!

Stworzony przez Kaitlyn z Raffles Institution.

Krok 1: Cele

Naucz się czytać pochylenie dzięki wbudowanemu akcelerometrowi micro:bit.

Naucz się pracować z wyświetlaczem 5x5 LED micro:bit!

Krok 2: Materiały

1 x BBC micro:bit

1 x kabel Micro USB

2 baterie AA

1 x podwójny zestaw baterii AA

Krok 3: Wstępne kodowanie: Podłącz swój Micro:Bit

  1. Podłącz BBC micro:bit do komputera za pomocą kabla micro USB.
  2. Uzyskaj dostęp do edytora javascript dla micro:bit na makecode.microbit.org.

Krok 4: Krok 0: Przepływ kodu

Zanim zaczniemy pisać kod, musimy zdecydować, co chcemy osiągnąć za pomocą programu iw jakiej kolejności powinien działać każdy komponent.

W przypadku poziomicy elektrycznej kroki, które wykonamy w kodzie dla każdej pętli, to:

  • Odczytuj odczyty pochylenia z akcelerometru.
  • Konwertuj odczyty pochylenia na poziomy pochylenia, które mają być wyświetlane na matrycy LED.
  • Sprawdź, czy nie zmieniły się odczyty poziomu nachylenia z poprzedniej pętli.
  • Utwórz tablicę współrzędnych LED dla różnych przypadków i kierunków pochylenia.
  • Wykreśl współrzędne LED na matrycy micro:bit LED.

Kilka dodatkowych funkcji, które musimy uwzględnić to:

  • Kalibracja początkowej pozycji pochylenia.
  • Powrót do domyślnej kalibracji nachylenia.

Krok 5: Krok 1: Definiowanie zmiennych

Zaczynamy od zdefiniowania potrzebnych zmiennych, jak pokazano. Podział kilku zmiennych to:

  • tiltList: tablica przechowująca zakres nachylenia od wartości 0-4 w kolejności [w lewo, w prawo, do przodu, do tyłu]
  • tiltBoundary: granica pierwszego poziomu pochylenia od 0 (brak pochylenia) do 1 (niewielkie pochylenie)
  • prevState: Tablica przechowująca wartości nachylenia micro:bit z poprzedniej pętli w tym samym formacie co tiltList, używana do sprawdzania zmiany nachylenia między iteracjami
  • ledPlotList: Wykreśl tablice współrzędnych led w postaci (x, y). Aby zdefiniować tablicę, używamy typu number, aby wskazać zagnieżdżoną tablicę zmiennych typu: number.

Krok 6: Krok 2: Konwertuj wartości przechyłu na poziomy

Ponieważ matryca LED 5x5 może wyświetlać tylko tyle informacji, rzeczywiste wartości nachylenia nie będą przydatne do wyświetlania.

Zamiast tego funkcja tiltExtent() pobiera parametr num, który odnosi się do wartości nachylenia z akcelerometru, i konwertuje te wartości nachylenia (num) na poziomy nachylenia od 0 do 4.

0 oznacza brak przechyłu w danym kierunku, a 4 oznacza bardzo duże przechylenie, natomiast -1 jest zwracane w przypadku błędu.

Tutaj tiltBoundary i tiltSensitivity są używane jako wartości graniczne między poziomami nachylenia.

Krok 7: Krok 3: Skompiluj poziomy przechyłu

Dwie funkcje checkRoll() i checkPitch() zapisują poziomy nachylenia uzyskane z tiltExtent() w tiltList odpowiednio dla osi roll (lewo-prawo) i pitch (przód-tył).

Przed użyciem wartości tiltu kalibrujemy je za pomocą zerowanej wartości zarówno dla pitch (zeroPitch), jak i roll (zeroRoll) uzyskanej z funkcji kalibracyjnej zapisanej później.

Ponieważ odczyty akcelerometru są ujemne zarówno dla pochylenia w lewo, jak i do przodu, musimy użyć funkcji Math.abs(), aby uzyskać moduł wartości ujemnej, który ma być podany funkcji tiltExtent() jako parametr dla tych dwóch kierunków.

Krok 8: Krok 4: Napisz funkcje LEDPlotList

Po uzyskaniu poziomów nachylenia w tiltList możemy teraz napisać ledowe funkcje kreślenia dla różnych przypadków, które mogą się pojawić, a mianowicie

  • plotSingle(): Przechyl tylko w jednym kierunku, przyjmując jako parametr zakres przechyłu w danym kierunku.
  • plotDiagonal(): Przechyl w dwóch kierunkach o tej samej wielkości, przyjmując jako parametr zakres przechyłu w dowolnym kierunku.
  • plotUnequal(): Przechyl w dwóch kierunkach o różnych wielkościach, przyjmując jako parametr zakres przechyłu w każdym kierunku. Najpierw używa plotDiagonal(), a następnie dodaje do tablicy ledPlotList.

Te funkcje kreślące zapisują tablicę współrzędnych diod led do ledPlotList, aby można ją było później wykreślić.

Krok 9: Krok 5: Wykreśl matrycę LED dla każdego przypadku

Korzystając z funkcji kreślenia z trzech przypadków w kroku 4, możemy teraz wykreślić rzeczywistą matrycę LED dla różnych możliwych kombinacji poziomów nachylenia. Ponieważ trzy funkcje w kroku 4 nie dyskryminują kierunku, musimy dostosować wartości współrzędnych przekazywane do matrycy LED, aby wykreślić diody LED we właściwych kierunkach.

PlotResult() zawiera wiele warunków if, które sprawdzają rodzaj nachylenia i odpowiednio wykreślają matrycę LED za pomocą led.plot(x, y). Możliwe kombinacje pochylenia to:

Pojedynczy kierunek: tylko w lewo lub tylko w prawo

Pojedynczy kierunek: tylko do przodu lub tylko do tyłu

Dwa kierunki: Do przodu w lewo lub Do tyłu w lewo

Dwa kierunki: do przodu w prawo lub do tyłu w prawo

Uwaga: W przypadku pochylenia w dwóch kierunkach, każda kombinacja może mieć taką samą lub różną wielkość (sprawdzane przez porównanie maxX i maxY), a zatem wykreślona odpowiednio za pomocą plotDiagonal() lub plotUnequal().

Krok 10: Krok 6: Napisz funkcje kalibracji

Po ukończeniu większości kodu dodaliśmy teraz funkcje calibTilt() i resetTilt().

calibTilt() pozwala użytkownikom wytarować przechylenie do zera w bieżącej pozycji micro:bit

resetTilt() resetuje kalibrację płytki do jej pierwotnego stanu.

Krok 11: Krok 7: Funkcja zapisu stanu

Dodajemy prostą funkcję checkState(), aby sprawdzić, czy poziomy nachylenia zmieniły się w stosunku do poprzedniej iteracji.

Jeśli nie ma zmiany poziomów nachylenia od poprzedniej iteracji, tj. stateChange == 0, możemy bezpośrednio przejść do następnej iteracji i pominąć kreślenie matrycy LED, zmniejszając potrzebę obliczeń.

Krok 12: Krok 8: Łączenie wszystkiego w całość Część 1

Teraz możemy wreszcie umieścić wszystkie niezbędne funkcje w nieskończonej pętli micro:bit, aby uruchamiać ją wielokrotnie.

Po pierwsze, ustawiamy przyciski A i B na micro:bit odpowiednio na funkcje calibTilt() i resetTilt() za pomocą input.onButtonPressed() i wykreślamy znacznik na matrycy LED po zakończeniu kalibracji.

Krok 13: Krok 9: Łączenie wszystkiego w całość Część 2

Następnie uruchom niezbędne funkcje zgodnie z naszym przepływem kodu w kroku 0 i sprawdź, czy nie nastąpiła zmiana stanu (co oznacza, że nastąpiła zmiana nachylenia micro:bit od ostatniej iteracji).

Jeśli nastąpi zmiana poziomów nachylenia, tj. stateChange == 1, kod zaktualizuje prevState do nowych poziomów nachylenia i ustawi stateChange z powrotem na 0 dla następnej iteracji i wykreśli zaktualizowane poziomy nachylenia na matrycy LED za pomocą PlotResult().

Krok 14: Krok 10: Montaż

Prześlij gotowy kod do micro:bit.

Przymocuj bezpiecznie micro:bit i akumulator do dowolnego przedmiotu i jest gotowy do użycia!

Niesamowite

Baw się z elektryczną poziomicą! A skoro już przy tym jesteś, dlaczego nie spróbować rozszerzyć możliwości czujnika przechyłu, a nawet przekształcić go w grę?

Ten artykuł pochodzi z TINKERCADEMY.

Krok 15: Źródło

Ten artykuł pochodzi z:

Jeśli masz jakieś pytania, możesz skontaktować się z: [email protected].

Zalecana: