Spisu treści:

Narzędzie do rozwiązywania równań kwadratowych z dwoma przyciskami: 5 kroków
Narzędzie do rozwiązywania równań kwadratowych z dwoma przyciskami: 5 kroków

Wideo: Narzędzie do rozwiązywania równań kwadratowych z dwoma przyciskami: 5 kroków

Wideo: Narzędzie do rozwiązywania równań kwadratowych z dwoma przyciskami: 5 kroków
Wideo: Równania kwadratowe - film 1 2024, Listopad
Anonim
Image
Image

Wstęp

witam w moim pierwszym instruktażu!

Zacząłem ten projekt, aby poszerzyć swoją wiedzę programistyczną. Często po prostu łączysz różne kody źródłowe, aby stworzyć program, którego potrzebujesz. Moim celem było napisanie własnego kodu programu do interakcji z narzędziem. Lubiłem tworzyć proste narzędzie do liczenia. Jakiś miesiąc temu pomogłem przyjacielowi rozwiązać równanie kwadratowe.

Bazinga! to jest przypadek użycia!

Ponownie użyłem starego metalowego pudełka. Wolałem minimalistyczny wygląd i interfejs narzędzi. to jest powód, dla którego chcę tylko użyć 2 przycisków do wprowadzania danych. Treść zostanie pokazana na prostym wyświetlaczu LCD.

Kieszonkowe dzieci

Lista materiałów:

skrzynka

2 przycisk stylu arcade

Arduino Nano lub podobny

Wyświetlacz LCD 1602 z adapterem I2C

Przełącznik włącz / wyłącz

przewody

Rezystor 2x 10 k Ohm

bateria 9v blok

złącze do baterii 9v

płytka do krojenia chleba

różne (kawałek drewna, kątownik metalowy, opaski kablowe, wkręt, podkładki)

narzędzia:

Piła

lutownica

Wiertarka

komputer do programowania

Krok 1: Matematyczne tło

Oprogramowanie
Oprogramowanie

Matematyczne tło

Równanie kwadratowe z dwoma przyciskami pokazuje wartości, w których funkcja kwadratowa przecina oś X. Funkcja kwadratowa nigdy nie może przekroczyć osi X, raz lub dwa razy.

Istnieją różne sposoby obliczania tych wartości. W moim narzędziu używam formuły PQ (nie jestem pewien, czy to wyrażenie będzie używane na całym świecie).

Równanie kwadratowe ma postać:

ax²+bx+c=0

Aby obliczyć punkty przecięcia, podziel formę przez a x²+px+q=0 przy p= b/a; q=c/a

Formuła PQ:

x1 = -p/2 + sqrt((p/2)²-q)

x2 = -p/2 - sqrt((p/2)²-q)

Wynik x może otrzymać 0, 1 lub 2 wartości. To zależy od wartości pod pierwiastkiem kwadratowym.

Jeśli wartość > 0, to wzór PQ ma dwa rozwiązania.

Jeśli wartość = 0, to wzór PQ ma jedno rozwiązanie

jest wartością < 0, to wzór PQ nie ma rozwiązania. Funkcja nie przekracza osi X.

Krok 2: Oprogramowanie

Oprogramowanie

Do programowania wykorzystałem oficjalne środowisko Arduino IDE. Moim celem było stworzenie własnego oprogramowania. Mój interfejs powinien mieć dwa przyciski. Jeden przycisk do przechodzenia między różnymi poziomami, drugi przycisk do zmiany wartości na różnych poziomach.

Aby rozwiązać wzór PQ, tworzę powyższą strukturę:

Na pewno nie wymyślam koła na nowo. Do stworzenia kodu wykorzystałem moduł:

- Obalić

- wyświetlacz

Następujące punkty były największymi wyzwaniami:

- Jak mogę wybrać znak? Rozwiązałem to wyzwanie za pomocą funkcji modulo (link). Kod dzieli dane wejściowe przez 2. Jeśli dane wejściowe są liczbą nieparzystą, wartość staje się ujemna, w przeciwnym razie liczba jest dodatnia.

- Po przejściu wszystkich poziomów muszę zadeklarować wszystkie wartości na 0.

- Wyświetlany tekst po prostu kasuje wysyłane znaki. Jeśli kody wyślą słowo z 4 znakami, tylko te 4 znaki zostaną przeładowane. Jeśli poprzednie słowo miało więcej znaków, znaki pozostaną. Aby to naprawić, wyświetlany tekst zostanie wypełniony pustymi miejscami. Wszystkie 16 znaków z rzędu zostanie przeładowanych.

W załączeniu ostateczny kod.

Krok 3: Sprzęt

Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy

Sprzęt komputerowy

Części są wymienione powyżej. W przypadku tego projektu sprzęt jest prosty. Potrzebuję tylko mikroprocesora Arduino, 2 przycisków i wyświetlacza. Dobra, jeśli lubisz wkładać do pudełka, potrzebujesz również pudełka i zasilacza.

Używam starego metalowego pudełka. Wywierciłem otwór w przycisku na wtyczkę we włączniku zasilania. Pokrywa pudełka posiada 3 otwory. Wywierciłem dwa otwory na duże przyciski i wyciąłem okienko na wyświetlacz. Wkładam mały kawałek drewna za pokrywę, żeby mieć więcej rzeczy do naprawy wyświetlacza i przycisków. Aby ulepszyć wygląd, pudełko otrzymało naklejki.

Do zasilania polecam akumulatorki blokowe 9V. Baterię podłączam wyłącznikiem zasilania do Arduino. Akumulator jest przymocowany do pudełka za pomocą małego metalowego kątownika. Złącze akumulatora jest po prostu mocowane za pomocą opasek kablowych.

Mikroprocesor jest klonem Arduino nano. W tym przypadku użycia wydajność jest wystarczająca. Attiny 85, na przykład mikroprocesor Digispark, został odrzucony. Arduino jest "chleba" obok wyświetlacza.

Wyświetlacz to wyświetlacz LCD 1602. możesz użyć 16 znaków w dwóch rzędach. Ten wyświetlacz można znaleźć w wielu różnych maszynach i narzędziach. Istnieją dwa różne sposoby korzystania z tego wyświetlacza. Wyświetlacz można podłączyć bezpośrednio do sterownika lub zastosować dodatek do komunikacji z wyświetlaczem przez I2C. I2C to standardowy protokół. Skorzystałem z niego, bo łatwiej jest podłączyć wyświetlacz do sterownika. Potrzebujesz tylko 4 kabli zamiast 16, VCC do 5 V, GND do GND, SDA do A4, SCL do A5. Wyświetlacz jest mocowany śrubami do pokrywy skrzynki.

Przyciski są ogromne! mają typowy styl gry zręcznościowej. Lubię to! Przyciski są podłączone do cyfrowych pinów 4 i 7. Proszę nie zapomnieć o rezystorach 10K!

Aby otworzyć pokrywę, np. w celu wymiany baterii, użyłem dłuższych kabli wpiętych w płytkę stykową.

Krok 4: Okablowanie

Okablowanie
Okablowanie

Krok 5: Przyszła poprawa

Przyszła poprawa

Po zakończeniu projektu zawsze znajdziesz błędy lub funkcje do poprawy. W tym projekcie cieszę się, że znalazłem tylko kilka punktów, które poprawiłbym na przyszłość.

Następnym razem poprawiłbym eksploatację w pudełku. Naprawiłem wyświetlacz, włącznik zasilania i przyciski na początku tego projektu. Na koniec miałem trochę kłopotów ze znalezieniem w pudełku miejsca na baterię i mikroprocesor. Gdy odstawiłbym przycisk i wyświetlacz bardziej na zewnątrz, nie miałbym żadnego problemu z miejscem na części wewnątrz pudełka.

W tej chwili nie mam przypadku użycia do rozwiązywania równania kwadratowego. Aby ulepszyć narzędzie, chciałbym rozszerzyć je o kolejne rzeczy matematyczne, na przykład podstawowy rachunek różniczkowy lub formuły, takie jak wzór dwumianowy lub zdanie Pitagorasa.

Zalecana: