Tartalomjegyzék:

2 gombos másodfokú egyenletmegoldó: 5 lépés
2 gombos másodfokú egyenletmegoldó: 5 lépés

Videó: 2 gombos másodfokú egyenletmegoldó: 5 lépés

Videó: 2 gombos másodfokú egyenletmegoldó: 5 lépés
Videó: Egyenletmegoldás 2024, November
Anonim
Image
Image

Bevezetés

Üdvözöllek az első oktathatóban!

A programozási ismereteim bővítése érdekében kezdtem el ezt a projektet. Gyakran csak egyesíti a különböző forráskódokat a szükséges program létrehozásához. Célom az volt, hogy saját programkódot írjak az eszközzel való interakcióhoz. Szerettem egy egyszerű számítási eszközt létrehozni. Néhány hónapja támogattam egy barátomat a másodfokú egyenlet megoldásához.

Bazinga! ez a használati eset!

Újra használtam egy régi fémdobozt. Én az eszközök minimalista megjelenését és felületét részesítettem előnyben. ezért csak 2 gombot szeretnék használni a bemenet megadásához. A versenyt egy egyszerű LCD kijelző mutatja.

Kellékek

anyaglista:

doboz

2 gombos Arcade stílus

Arduino Nano, vagy hasonló

1602 LCD kijelző I2C adapterrel

be/ki kapcsoló

vezetékek

2x 10 k ohmos ellenállás

akkumulátor 9V blokk

csatlakozó 9V -os akkumulátorhoz

kenyeretábla

egyéb (fadarab, fémszög, kábelkötegek, csavarok, alátétek)

eszközök:

fűrész

forrasztópáka

fúrógép

számítógép a programozáshoz

1. lépés: Matematikai háttér

Szoftver
Szoftver

Matematikai háttér

A 2 gombos másodfokú egyenlet azokat az értékeket mutatja, ahol a másodfokú függvény keresztezi az X tengelyt. Egy másodfokú függvény soha, egyszer vagy kétszer nem lépheti át az X tengelyt.

Ezeknek az értékeknek a kiszámításának különböző módjai vannak. Eszközömnél a PQ-képletet használom (nem vagyok biztos benne, hogy ezt a kifejezést az egész világon használni fogják-e).

A másodfokú egyenlet formája:

ax²+bx+c = 0

Az átkelési pontok kiszámításához ossza meg az űrlapot x²+px+q = 0 -val p = b/a -val; q = c/a

a PQ képlet:

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

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

Az x eredmény 0, 1 vagy 2 értéket kaphat. Ez a négyzetgyök alatti értéktől függ.

Ha az érték> 0, akkor a PQ-képletnek két megoldása van.

Ha az érték = 0, akkor a PQ-képletnek van egy megoldása

értéke <0, akkor a PQ képletnek nincs megoldása. A függvény nem keresztezi az X tengelyt.

2. lépés: Szoftver

Szoftver

A programozáshoz a hivatalos Arduino IDE -t használtam. Célom az volt, hogy saját szoftvert készítsek. Az interfészemnek két gombnak kell lennie. Az egyik gombbal léphet a különböző szintek közé, a második gombbal a különböző szintek értékeit módosíthatja.

A PQ-képlet megoldásához létrehozom a fenti struktúrát:

Egy biztos, nem találom fel újra a kereket. A kód létrehozásához a modult használtam:

- lekapcsolás

- kijelző

A következő szempontok jelentették a legnagyobb kihívást:

- Hogyan választhatom ki a jelet? Ezt a kihívást a modulo (link) függvénnyel oldottam meg. A kód osztja a bemenetet 2 -vel. Ha a bemenet páratlan szám, az érték negatív lesz, ellenkező esetben a szám pozitív.

- Az összes szint végigfutása után minden értéket 0 -ra kell deklarálnom.

- A megjelenített szöveg csak törli a küldött karaktereket. Ha a kódok 4 karakterből álló szót küldenek, akkor csak ez a 4 karakter kerül újratöltésre. Ha az előző szónak több karaktere volt, a karakterek megmaradnak. Ennek kijavítása érdekében a megjelenített szöveg üres helyekkel lesz feltöltve. Sorban mind a 16 karakter újratöltődik.

A végső kód csatolva van.

3. lépés: Hardver

Hardver
Hardver
Hardver
Hardver
Hardver
Hardver
Hardver
Hardver

Hardver

Az alkatrészek a fentiekben vannak felsorolva. Ehhez a projekthez a hardver egyszerű. Csak egy Arduino mikroprocesszor kell, 2 gomb és egy kijelző. Oké, ha szeretnél dobozba tenni, akkor kell egy doboz és egy tápegység is.

Újra használok egy régi fémdobozt. Lyukat fúrtam a gombba a tápellátás kapcsolójának bedugásához. A doboz fedele 3 lyukat kapott. Két lyukat fúrtam a nagy gombokhoz, és kivágtam egy ablakot a kijelzőhöz. Ragasztok egy kis fadarabot a fedél mögé, hogy legyen még holmi javítani a kijelzőt és a gombokat. A megjelenés frissítéséhez a doboz matricákat kapott.

Tápellátáshoz az újratölthető 9 V -os blokk elemeket javaslom. Az akkumulátort a tápkapcsolón keresztül csatlakoztatom az Arduino -hoz. Az akkumulátort kis fémszöggel rögzítik a dobozhoz. Az akkumulátor csatlakozóját csak kábelkötegekkel rögzítik.

A mikroprocesszor egy Arduino nano klónja. Ebben az esetben a teljesítmény elegendő. Egy Attiny 85 -öt, például egy Digispark mikroprocesszort elutasítottak. Az Arduino "kenyér deszkán" van a kijelző mellett.

A kijelző egy 1602 -es LCD kijelző. két sorban 16 karaktert használhat. Ezt a kijelzőt számos különböző gépben és eszközben megtalálhatja. A kijelző kétféleképpen használható. A kijelzőt közvetlenül a vezérlőhöz csatlakoztathatja, vagy egy kiegészítő segítségével kommunikálhat a kijelzővel az I2C-n keresztül. Az I2C egy szabványos protokoll. Én használtam, mert könnyebb csatlakoztatni a kijelzőt a vezérlőhöz. Csak 16 kábelre van szüksége, VCC -5V, GND -GND, SDA -A4, SCL -A5. A kijelző csavarokkal van rögzítve a doboz fedelére.

A gombok hatalmasak! tipikus arcade játékstílusuk van. Tetszik! A gombok a 4 -es és 7 -es digitális tüskékhez vannak csatlakoztatva. Kérjük, ne felejtse el a 10K ellenállást!

A fedél kinyitásához, például az akkumulátor cseréjéhez hosszabb kábeleket használtam, amelyek a kenyérlapra voltak csatlakoztatva.

4. lépés: huzalozás

Vezeték
Vezeték

5. lépés: Jövőbeli fejlesztés

Jövőbeli fejlesztés

A projekt befejezése után mindig talál hibákat vagy javítandó funkciókat. Ebben a projektben örülök, hogy csak néhány pontot találtam, a jövőben javítanék.

Legközelebb a dobozban lévő kizsákmányolást javítanám. A projekt elején javítottam a kijelzőt, a főkapcsolót és a gombokat. A végén némi gondot kaptam, hogy elegendő helyet találjak az akkumulátornak és a mikroprocesszornak a dobozban. Amikor a gombot és a kijelzőt jobban kint teszem, nem lesz gondom a dobozon belüli alkatrészek helyével.

Jelenleg nincs használati esetem másodfokú egyenlet megoldására. Az eszköz fejlesztése érdekében szeretném bővíteni az eszközt további matematikai dolgokkal, például alapvető számításokkal vagy olyan képletekkel, mint a binominális képlet vagy a Pythagoras mondata.

Ajánlott: