Turinys:
- 1 žingsnis: matematinis fonas
- 2 žingsnis: programinė įranga
- 3 žingsnis: Aparatūra
- 4 žingsnis: laidų prijungimas
- 5 žingsnis: būsimas tobulinimas
Video: 2 mygtukų kvadratinių lygčių sprendėjas: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Į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
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
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
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:
Dviejų mygtukų relės jungiklis: 3 žingsniai
Dviejų mygtukų relės jungiklis: šiame straipsnyje parodyta, kaip įjungti ir išjungti mygtuko jungiklį. Šią grandinę galima padaryti dviem jungikliais. Paspaudus vieną jungiklį, lemputė įsijungia. Paspaudus kitą jungiklį, lemputė išsijungia. Tačiau šis Ins
„Pasidaryk pats“ventiliatorius su įjungimo ir išjungimo mygtuku - M5StickC ESP32: 8 žingsniai
„Pasidaryk pats“ventiliatorius su įjungimo ir išjungimo mygtuku - M5StickC ESP32: Šiame projekte mes išmoksime naudoti FAN L9110 modulį naudojant M5StickC ESP32 plokštę
„Q -Bot“- atviro kodo Rubiko kubo sprendėjas: 7 žingsniai (su paveikslėliais)
„Q -Bot“- atviro kodo „Rubiko kubo“sprendėjas: Įsivaizduokite, kad turite sukrėstą Rubiko kubą, žinote, kad 80 -ųjų dešimtmečio galvosūkis yra toks, kokį turi kiekvienas, bet niekas nežino, kaip jį išspręsti, ir jūs norite jį sugrąžinti į pradinį modelį. Laimei, šiais laikais labai lengva rasti sprendimo instrukciją
Eismo sprendėjas: 7 žingsniai
Eismo sprendėjas: Eismo sprendėjas automatizuoja eismo valdymą vienoje eismo juostoje statybos zonoje. Kad ši sistema veiktų be avarijų, turi būti du įrenginiai, po vieną kiekvienoje pusėje. Abu įrenginiai turės variklį ir besisukantį laikiklį, kuris
„Fast Edge“kvadratinių bangų impulsų generatorius: 4 žingsniai
„Fast Edge“kvadratinių bangų impulsų generatorius: „Fast Edge Pulse Generator“- itin greitas kvadratinių bangų impulsų generatorius Ši paprasta grandinė, naudojant 74HC14N (šešis TTL keitiklius su mažu apsisukimų dažniu), gali generuoti kvadratinių bangų signalus iki 10 MHz. Idealiai tinka kai kuriems elektronikos bandymams. Su puviniu