Turinys:

2 mygtukų kvadratinių lygčių sprendėjas: 5 žingsniai
2 mygtukų kvadratinių lygčių sprendėjas: 5 žingsniai

Video: 2 mygtukų kvadratinių lygčių sprendėjas: 5 žingsniai

Video: 2 mygtukų kvadratinių lygčių sprendėjas: 5 žingsniai
Video: ⚡ Показываем слабые места Tesla Model S и жёстко гоняем на треке. Жива ли старушка? 2024, Lapkritis
Anonim
Image
Image

Įvadas

Sveiki atvykę į mano pirmąjį pamokymą!

Pradėjau šį projektą, norėdamas praplėsti savo programavimo žinias. Dažnai jūs tiesiog sujungiate skirtingus šaltinio kodus, kad sukurtumėte reikiamą programą. Mano tikslas buvo parašyti savo programos kodą, skirtą sąveikai su įrankiu. Man patiko sukurti paprastą skaičiavimo įrankį. Prieš kokį mėnesį aš padėjau draugui išspręsti kvadratinę lygtį.

Bazinga! tai yra naudojimo atvejis!

Aš pakartotinai panaudojau seną metalinę dėžę. Man labiau patiko minimalistinė įrankių išvaizda ir sąsaja. tai yra priežastis, kodėl aš tiesiog noriu naudoti 2 mygtukus įvedimui. Varžybas parodys paprastas LCD ekranas.

Prekės

medžiagų sąrašas:

dėžė

2 mygtukų arkadinis stilius

„Arduino Nano“ar pan

LCD ekranas 1602 su I2C adapteriu

įjungimo/išjungimo jungiklis

laidai

2x 10k omų rezistorius

akumuliatoriaus blokas 9v

jungtis 9v baterijoms

Bandomoji Lenta

įvairūs (medžio gabalas, metalinis kampas, kabelių raiščiai, varžtas, poveržlės)

įrankiai:

pjūklas

lituoklis

gręžimo mašina

kompiuteris programavimui

1 žingsnis: matematinis fonas

Programinė įranga
Programinė įranga

Matematinis fonas

2 mygtukų kvadratinė lygtis rodo reikšmes, kuriose kvadratinė funkcija kerta X ašį. Kvadratinė funkcija negali kirsti X ašies niekada, vieną ar du kartus.

Šias vertes galima apskaičiuoti įvairiais būdais. Savo įrankiui naudoju PQ formulę (nesu tikras, ar ši išraiška bus naudojama visame pasaulyje).

Kvadratinė lygtis yra tokia:

ax²+bx+c = 0

Norėdami apskaičiuoti kirtimo taškus, padalinkite formą iš x²+px+q = 0 su p = b/a; q = c/a

PQ formulė:

x1 = -p/2 + kv. ((p/2) ² -q)

x2 = -p/2 -kv. ((p/2) ² -q)

Rezultatas x gali gauti 0, 1 arba 2 reikšmes. Tai priklauso nuo kvadratinės šaknies vertės.

Jei vertė yra> 0, tada PQ formulė turi du sprendimus.

Jei reikšmė = 0, tada PQ formulė turi vieną sprendimą

yra reikšmė <0, tada PQ formulė neturi sprendimo. Funkcija nekerta X ašies.

2 žingsnis: programinė įranga

Programinė įranga

Programavimui naudojau oficialų „Arduino IDE“. Mano tikslas buvo sukurti savo programinę įrangą. Mano sąsaja turėtų turėti du mygtukus. Vienas mygtukas, skirtas pereiti tarp skirtingų lygių, antras mygtukas, norint pakeisti skirtingų lygių reikšmes.

Norėdami išspręsti PQ formulę, sukuriu aukščiau pateiktą struktūrą:

Žinoma, aš neišradinėju rato iš naujo. Norėdami sukurti kodą, naudoju modulį:

- atšokti

- ekranas

Didžiausi iššūkiai buvo šie dalykai:

- Kaip galiu pasirinkti ženklą? Aš išsprendžiau šį iššūkį naudodami funkciją modulo (nuoroda). Kodas padalija įvestį iš 2. Jei įvestis yra nelyginis, reikšmė tampa neigiama, kitaip skaičius yra teigiamas.

- Baigęs visus lygius, turiu deklaruoti visas reikšmes iki 0.

- Rodomas tekstas tiesiog ištrina siunčiamus simbolius. Jei kodai siunčia 4 simbolių žodį, tik šie 4 simboliai bus įkelti iš naujo. Jei žodis anksčiau turėjo daugiau simbolių, simboliai išliks. Norėdami tai išspręsti, rodomas tekstas bus užpildytas tuščiais elementais. Visi 16 simbolių iš eilės bus įkelti iš naujo.

Galutinis kodas pridedamas.

3 žingsnis: Aparatūra

Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga
Techninė įranga

Techninė įranga

Dalys yra išvardytos aukščiau. Šiam projektui aparatinė įranga yra paprasta. Man reikia tik „Arduino“mikroprocesoriaus, 2 mygtukų ir ekrano. Gerai, jei norite įdėti į dėžutę, jums taip pat reikia dėžutės ir maitinimo šaltinio.

Aš pakartotinai naudoju seną metalinę dėžę. Aš išgręžiau skylę į maitinimo šaltinio jungiklio prijungimo mygtuką. Dėžutės dangtelis turi 3 skyles. Išgręžiau dvi skyles dideliems sagoms ir iškirpiau ekrano langą. Uždengiau nedidelį medžio gabalėlį už dangtelio, kad būtų daugiau daiktų ekrano ir mygtukų taisymui. Norėdami atnaujinti išvaizdą, dėžutėje buvo lipdukai.

Maitinimo šaltiniui rekomenduoju įkraunamas 9 V blokines baterijas. Aš prijungiu akumuliatorių per maitinimo jungiklį prie „Arduino“. Baterija pritvirtinta prie dėžutės mažu metaliniu kampu. Akumuliatoriaus jungtis yra tik pritvirtinta kabelių jungtimis.

Mikroprocesorius yra „Arduino nano“klonas. Šiuo atveju našumas yra pakankamas. „Attiny 85“, pavyzdžiui, „Digispark“mikroprocesorius, buvo atmestas. „Arduino“yra „padengtas duona“šalia ekrano.

Ekranas yra 1602 LCD ekranas. galite naudoti 16 simbolių dviejose eilutėse. Šį ekraną galite rasti daugelyje skirtingų mašinų ir įrankių. Yra du skirtingi šio ekrano naudojimo būdai. Galite prijungti ekraną tiesiai prie valdiklio arba naudoti priedą, skirtą komunikuoti su ekranu per I2C. I2C yra standartinis protokolas. Aš jį naudojau, nes ekraną lengviau prijungti prie valdiklio. Jums tereikia 4 kabelių, o ne 16, VCC - 5 V, GND - GND, SDA - A4, SCL - A5. Ekranas tvirtinamas varžtais prie dėžutės dangtelio.

Mygtukai yra didžiuliai! jie turi tipišką arkadinio žaidimo stilių. Man tai patinka! Mygtukai yra prijungti prie 4 ir 7 skaitmeninių kaiščių. Nepamirškite 10K rezistorių!

Norėdami atidaryti dangtelį, pavyzdžiui, norėdami pakeisti bateriją, naudoju ilgesnius kabelius, prijungtus prie duonos lentos.

4 žingsnis: laidų prijungimas

Laidai
Laidai

5 žingsnis: būsimas tobulinimas

Ateities tobulinimas

Baigę projektą, visada rasite klaidų ar funkcijų, kurias reikia patobulinti. Šiame projekte džiaugiuosi, kad radau tik keletą taškų, kuriuos tobulėčiau ateityje.

Kitą kartą patobulinčiau išnaudojimą dėžutėje. Šio projekto pradžioje pataisiau ekraną, maitinimo jungiklį ir mygtukus. Pabaigoje turėjau šiek tiek problemų rasti dėžutėje pakankamai vietos akumuliatoriui ir mikroprocesoriui. Kai padėčiau mygtuką ir ekraną daugiau į lauką, man nekiltų problemų dėl vietos dėžutėje esančioms dalims.

Šiuo metu neturiu naudojimo atvejo kvadratinei lygčiai išspręsti. Norėdamas patobulinti įrankį, norėčiau išplėsti įrankį ir kitais matematiniais dalykais, pavyzdžiui, pagrindiniais skaičiavimais ar formulėmis, tokiomis kaip binominė formulė ar Pitagoro sakinys.

Rekomenduojamas: