Sisukord:

2-nupuline ruutvõrrandi lahendaja: 5 sammu
2-nupuline ruutvõrrandi lahendaja: 5 sammu

Video: 2-nupuline ruutvõrrandi lahendaja: 5 sammu

Video: 2-nupuline ruutvõrrandi lahendaja: 5 sammu
Video: Algebraliste murdude taandamine, korrutamine ja astendamine 2024, Juuli
Anonim
Image
Image

Sissejuhatus

tere tulemast minu esimese juhendatava juurde!

Alustasin seda projekti oma programmeerimisalaste teadmiste laiendamiseks. Sageli ühendate vajaliku programmi loomiseks lihtsalt erinevad lähtekoodid. Minu eesmärk oli kirjutada oma programmi kood tööriistaga suhtlemiseks. Mulle meeldis luua lihtne arvutamise tööriist. Mõni kuu tagasi toetasin sõpra sõbrale ruutvõrrandi lahendamisel.

Bazinga! see on kasutusjuhtum!

Kasutasin vana metallkasti uuesti. Eelistasin tööriistade minimalistlikku välimust ja liidest. see on põhjus, miks ma tahan sisestamiseks kasutada ainult kahte nuppu. Võitlust näitab lihtne LCD -ekraan.

Tarvikud

materjalide nimekiri:

kast

2 nupuga Arcade stiilis

Arduino Nano või sarnane

LCD -ekraan 1602 koos I2C -adapteriga

sisse/välja lüliti

juhtmed

2x 10k oomi takisti

aku 9v plokk

pistik 9v aku jaoks

leivalaud

mitmesugused (puutükk, metallnurk, kaablisidemed, kruvi, seibid)

tööriistad:

Saag

jootekolb

puurimismasin

arvuti programmeerimiseks

1. samm: matemaatiline taust

Tarkvara
Tarkvara

Matemaatiline taust

2-nupuline ruutvõrrand näitab väärtusi, kus ruutfunktsioon ületab X-telje. Ruutfunktsioon ei saa X-telge ületada kunagi, üks või kaks korda.

Nende väärtuste arvutamiseks on erinevaid viise. Oma tööriista jaoks kasutan PQ-valemit (ma pole kindel, kas seda väljendit kasutatakse kogu maailmas).

Ruutvõrrand on järgmine:

ax²+bx+c = 0

Ristumiskohtade arvutamiseks jagage vorm x²+px+q = 0 ja p = b/a; q = c/a

PQ valem:

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

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

Tulemus x võib saada 0, 1 või 2 väärtust. See sõltub ruutjuure all olevast väärtusest.

Kui väärtus on> 0, on PQ-valemil kaks lahendust.

Kui väärtus on 0, siis on PQ-valemil üks lahendus

on väärtus <0, siis pole PQ valemil lahendust. Funktsioon ei ületa X-telge.

Samm 2: Tarkvara

Tarkvara

Programmeerimiseks kasutasin ametlikku Arduino IDE -d. Minu eesmärk oli luua oma tarkvaraprogramm. Minu liidesel peaks olema kaks nuppu. Üks nupp erinevate tasemete vahel liikumiseks, teine nupp erinevate tasemete väärtuste muutmiseks.

PQ-valemi lahendamiseks loon ülaltoodud struktuuri:

Kindlasti ei leiuta ma ratast uuesti. Koodi loomiseks kasutasin moodulit:

- tagasilöök

- ekraan

Suurimad väljakutsed olid järgmised punktid:

- Kuidas märki valida? Lahendasin selle väljakutse funktsiooniga modulo (link). Kood jagab sisendi kahega. Kas sisend on paaritu arv, väärtus muutub negatiivseks, vastasel juhul on number positiivne.

- Pärast kõigi tasandite läbimist pean deklareerima kõik väärtused 0 -ks.

- Kuvatud tekst kustutab lihtsalt saatemärgid. Kui koodid saadavad 4 tähemärgiga sõna, laaditakse just need 4 tähemärki uuesti. Kui eelneval sõnal oli rohkem tähemärke, jäävad märgid alles. Selle parandamiseks täidetakse kuvatud tekst tühikutega. Kõik 16 tähemärki järjest laaditakse uuesti.

Lõplik kood on lisatud.

3. samm: riistvara

Riistvara
Riistvara
Riistvara
Riistvara
Riistvara
Riistvara
Riistvara
Riistvara

Riistvara

Osad on loetletud ülalpool. Selle projekti jaoks on riistvara lihtne. Mul on vaja lihtsalt Arduino mikroprotsessorit, 2 nuppu ja ekraani. Okei, kui sulle meeldib karpi panna, on sul vaja ka kasti ja toiteallikat.

Kasutan vana metallkasti uuesti. Puurisin toiteallika lüliti pistikusse nupu sisse augu. Karbi kaas sai 3 auku. Puurisin suurtele nuppudele kaks auku ja lõikasin ekraanile akna. Kleepin väikese puutüki kaane taha, et oleks rohkem asju ekraani ja nuppude parandamiseks. Välimuse uuendamiseks olid karbis kleebised.

Toiteallikaks soovitan laetavaid 9V plokk -patareisid. Ühendan aku toitelüliti kaudu Arduinoga. Aku on karbi külge kinnitatud väikese metallnurgaga. Aku pistik on lihtsalt kinnitatud kaablisidemetega.

Mikroprotsessor on Arduino nano kloon. Sel juhul on jõudlus piisav. Attiny 85, näiteks Digispark mikroprotsessor, lükati tagasi. Arduino on ekraani kõrval "leivalaud".

Ekraan on 1602 LCD -ekraan. saate kahes reas kasutada 16 märki. Selle ekraani leiate paljudest erinevatest masinatest ja tööriistadest. Selle ekraani kasutamiseks on kaks erinevat võimalust. Saate ühendada ekraani otse kontrolleriga või kasutada lisandmoodulit I2C kaudu ekraaniga suhtlemiseks. I2C on standardprotokoll. Kasutasin seda, sest ekraani on lihtsam kontrolleriga ühendada. Vaja on 16 asemel 4 kaablit, VCC kuni 5V, GND kuni GND, SDA kuni A4, SCL kuni A5. Ekraan kinnitatakse kruvidega karbi kaane külge.

Nupud on tohutud! neil on tüüpiline arkaadmängu stiil. Mulle meeldib see! Nupud on ühendatud digitaalsete tihvtidega 4 ja 7. Palun ärge unustage 10K takistit!

Kaane avamiseks, näiteks aku vahetamiseks, kasutasin leivaplaadile ühendatud pikemaid kaableid.

4. samm: juhtmestik

Juhtmestik
Juhtmestik

5. samm: tulevane täiustamine

Tuleviku parandamine

Pärast projekti lõpetamist leiate alati parandamiseks vigu või funktsioone. Selles projektis on mul hea meel leida vaid mõned punktid, mida ma tulevikus täiendaksin.

Järgmiseks korraks täiendaksin kasti ärakasutamist. Parandasin selle projekti alguses ekraani, toitelüliti ja nupud. Lõpuks sain natuke vaeva, et leida karbile piisavalt ruumi aku ja mikroprotsessori jaoks. Kui ma panen nupu ja ekraani rohkem õue, ei tekiks mul probleeme kasti sees olevate osade jaoks.

Hetkel ei ole mul ruutvõrrandi lahendamiseks kasutust. Tööriista täiustamiseks sooviksin laiendada tööriista täiendavate matemaatiliste asjadega, näiteks põhiarvutusega või valemitega nagu binaarne valem või Pythagorase lause.

Soovitan: