Sisällysluettelo:
- Vaihe 1: Matemaattinen tausta
- Vaihe 2: Ohjelmisto
- Vaihe 3: Laitteisto
- Vaihe 4: Johdotus
- Vaihe 5: Tulevaisuuden parantaminen
Video: 2-napin toisen asteen yhtälöiden ratkaisija: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
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
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
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
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:
Toisen maailmansodan historian oppija: 3 vaihetta
Toisen maailmansodan historian oppija: Hei kaverit! Joten tämän vuoden tietokoneluokallamme tehtävänä oli luoda jonkinlainen elektroninen laite, joka näyttää mitä olemme oppineet luokalla. Olen yksi niistä ihmisistä, jotka rakastavat toisen maailmansodan historiaa, joten päätin tehdä laitteen, joka voi auttaa ihmisiä
Q -Bot - avoimen lähdekoodin Rubikin kuution ratkaisija: 7 vaihetta (kuvilla)
Q -Bot - avoimen lähdekoodin Rubikin kuution ratkaisija: Kuvittele, että sinulla on salattu Rubikin kuutio, tiedät, että 80 -luvun palapeli on jokaisella, mutta kukaan ei oikein tiedä, miten ratkaista, ja haluat palauttaa sen alkuperäiseen malliin. Onneksi nykyään on erittäin helppo löytää ratkaisuohjeita
20 Toisen käsinpesun ajastin COVID-19: lle: 6 vaihetta (kuvilla)
20 Toisen käsinpesun ajastin COVID-19: lle: Maailmanlaajuisen COVID-19-leviämisen vuoksi meidän tulee suojella itseämme paitsi keräämällä vähemmän ja käyttämällä kasvonaamioita, myös pesemällä käsiä useammin. t pese kädet kunnolla. Kuinka pestä kädet oikein? W
ARS - Arduino Rubikin ratkaisija: 13 vaihetta (kuvilla)
ARS - Arduino Rubik Solver: ARS on täydellinen järjestelmä Rubikin kuution ratkaisemiseksi: kyllä, toinen robotti kuution ratkaisemiseksi! ARS on kolmen vuoden mittainen kouluprojekti, joka on tehty 3D -tulostetuilla osilla ja laserleikkausrakenteilla: Arduino vastaanottaa oikean sarjan kotitekoisella sohvalla
Toisen asteen yhtälömakro Excelissä: 3 vaihetta
Toisen asteen yhtälömakro Excelissä: voit ratkaista toisen asteen yhtälön helposti siirtymällä työkalut-makro-suorita makroon. Olen uusi jäsen ja tarvitsen todella kaikenlaista palautetta, jota voit antaa