Sisällysluettelo:

2-napin toisen asteen yhtälöiden ratkaisija: 5 vaihetta
2-napin toisen asteen yhtälöiden ratkaisija: 5 vaihetta

Video: 2-napin toisen asteen yhtälöiden ratkaisija: 5 vaihetta

Video: 2-napin toisen asteen yhtälöiden ratkaisija: 5 vaihetta
Video: Toisen asteen yhtälön ratkaisukaava 2024, Heinäkuu
Anonim
Image
Image

Johdanto

tervetuloa ensimmäiseen ohjeeseeni!

Aloitin tämän projektin laajentaakseni ohjelmointitietoani. Usein vain yhdistä eri lähdekoodit luodaksesi tarvitsemasi ohjelman. Tavoitteeni oli kirjoittaa oma ohjelmakoodini työkalun kanssa vuorovaikutukseen. Pidin yksinkertaisen laskentatyökalun luomisesta. Muutama kuukausi sitten tuin ystävääni ratkaisemaan toisen asteen yhtälö.

Bazinga! tämä on käyttötapaus!

Käytin vanhaa metallirasiaa uudelleen. Pidin parempana työkalujen minimalistista ulkoasua ja käyttöliittymää. tästä syystä haluan vain käyttää kahta painiketta syöttötehon antamiseen. Kilpailu näkyy yksinkertaisella LCD -näytöllä.

Tarvikkeet

materiaaliluettelo:

laatikko

2 painikkeen arcade -tyyli

Arduino Nano tai vastaava

LCD -näyttö 1602 I2C -sovittimella

on / off kytkin

johdot

2x 10 k ohmin vastus

akku 9v lohko

liitin 9v akulle

leipälauta

sekalaiset (puukappale, metallikulma, nippusiteet, ruuvi, aluslevyt)

työkalut:

näin

juotin

porakone

tietokone ohjelmointia varten

Vaihe 1: Matemaattinen tausta

Ohjelmisto
Ohjelmisto

Matemaattinen tausta

Kahden painikkeen toisen asteen yhtälö näyttää arvot, joissa toisen asteen funktio ylittää X-akselin. Neliöfunktio ei voi ylittää X-akselia koskaan, kerran tai kaksi.

On olemassa erilaisia tapoja laskea nämä arvot. Käytän työkalussani PQ-kaavaa (en ole varma, käytetäänkö tätä lauseketta kaikkialla maailmassa).

Toisen asteen yhtälö on muotoa:

ax²+bx+c = 0

Laske rajanylityspaikat jakamalla lomake x²+px+q = 0 p = b/a; q = c/a

PQ -kaava:

x1 = -p/2 + neliömetriä ((p/2) ² -q)

x2 = -p/2 -neliömetriä ((p/2) ² -q)

Tulos x voi saada 0, 1 tai 2 arvoa. Se riippuu neliöjuuren alla olevasta arvosta.

Jos arvo on> 0, PQ-kaavalla on kaksi ratkaisua.

Jos arvo on = 0, PQ-kaavalla on yksi ratkaisu

on arvo <0, PQ -kaavalla ei ole ratkaisua. Toiminto ei ylitä X-akselia.

Vaihe 2: Ohjelmisto

Ohjelmisto

Ohjelmointiin käytin virallista Arduino IDE: tä. Tavoitteeni oli luoda oma ohjelmisto. Käyttöliittymässäni pitäisi olla kaksi painiketta. Yksi painike siirtyy eri tasojen välillä, toinen painike muuttaa eri tasojen arvoja.

PQ-kaavan ratkaisemiseksi luon yllä olevan rakenteen:

Varmasti en keksi pyörää uudelleen. Koodin luomisessa käytin moduulia:

- poistu

- näyttö

Seuraavat kohdat olivat suurimmat haasteet:

- Kuinka voin valita merkin? Ratkaisin tämän haasteen funktiolla modulo (linkki). Koodi jakaa tulon 2. Jos tulo on pariton luku, arvo muuttuu negatiiviseksi, muuten luku on positiivinen.

- Kun olen käynyt läpi kaikki tasot, minun on ilmoitettava kaikki arvot 0: ksi.

- Näytetty teksti poistaa vain lähetetyt merkit. Jos koodit lähettävät 4 merkin sanan, vain nämä 4 merkkiä ladataan uudelleen. Jos edellisessä sanassa oli enemmän merkkejä, merkit pysyvät. Tämän korjaamiseksi näytetty teksti täytetään tyhjillä. Kaikki 16 merkkiä peräkkäin ladataan uudelleen.

Lopullinen koodi on liitteenä.

Vaihe 3: Laitteisto

Laitteisto
Laitteisto
Laitteisto
Laitteisto
Laitteisto
Laitteisto
Laitteisto
Laitteisto

Laitteisto

Osat on lueteltu yllä. Tässä projektissa laitteisto on yksinkertainen. Tarvitsen vain Arduino -mikroprosessorin, 2 painiketta ja näytön. Okei, jos haluat laittaa laatikkoon, tarvitset laatikon ja virtalähteen.

Käytän vanhaa metallirasiaa uudelleen. Porasin reiän virtalähteen kytkimen pistokkeen painikkeeseen. Laatikon kansi on 3 reikää. Porasin kaksi reikää isoille painikkeille ja leikkasin ikkunan näytölle. Laitan kannen taakse pienen puukappaleen saadakseni lisää tavaraa näytön ja painikkeiden korjaamiseen. Ulkonäön päivittämiseksi laatikko sai tarroja.

Virtalähteeksi suosittelen ladattavia 9 V: n lohkoakkuja. Liitän akun virtakytkimen kautta Arduinoon. Akku on kiinnitetty laatikkoon pienellä metallikulmalla. Akun liitin on vain kiinnitetty nippusiteillä.

Mikroprosessori on Arduino -nanon klooni. Tässä käyttötapauksessa suorituskyky on riittävä. Attiny 85, esimerkiksi Digispark -mikroprosessori, hylättiin. Arduino on "leipälauta" näytön vieressä.

Näyttö on 1602 LCD -näyttö. Voit käyttää 16 merkkiä kahdessa rivissä. Löydät tämän näytön monista eri koneista ja työkaluista. Tätä näyttöä voidaan käyttää kahdella eri tavalla. Voit liittää näytön suoraan ohjaimeen tai käyttää lisäosaa kommunikoidaksesi näytön kanssa I2C: n kautta. I2C on vakioprotokolla. Käytin sitä, koska näytön yhdistäminen ohjaimeen on helpompaa. Tarvitset vain 4 kaapelia 16 sijasta, VCC - 5 V, GND - GND, SDA - A4, SCL - A5. Näyttö kiinnitetään ruuveilla laatikon kanteen.

Napit ovat valtavia! heillä on tyypillinen arcade -pelityyli. Pidän siitä! Painikkeet on kytketty digitaalisiin nastoihin 4 ja 7. Älä unohda 10K vastuksia!

Kannen avaamiseen esimerkiksi pariston vaihtamiseksi käytin pidempiä kaapeleita, jotka oli kytketty leipälevyyn.

Vaihe 4: Johdotus

Johdotus
Johdotus

Vaihe 5: Tulevaisuuden parantaminen

Tulevaisuuden parannus

Projektin päätyttyä löydät aina parannettavaa vikoja tai ominaisuuksia. Tässä projektissa olen iloinen löytäessäni vain muutamia kohtia, joita parantaisin tulevaisuutta varten.

Ensi kerralla parantaisin laatikon hyväksikäyttöä. Korjasin näytön, virtakytkimen ja painikkeet tämän projektin alussa. Lopulta minulla oli vähän vaikeuksia löytää tarpeeksi tilaa akulle ja mikroprosessorille laatikosta. Kun laitoin painikkeen ja näytön enemmän ulos, minulla ei olisi ongelmia laatikon sisällä olevien osien kanssa.

Tällä hetkellä minulla ei ole käyttötapaa toisen asteen yhtälön ratkaisemiseksi. Parantaakseni työkalua haluaisin laajentaa työkalua muilla matemaattisilla asioilla, esimerkiksi peruslaskennalla tai kaavoilla, kuten binominaalikaavalla tai Pythagoran lauseella.

Suositeltava: