INHOUDSOPGAWE:
- Stap 1: Wiskundige agtergrond
- Stap 2: sagteware
- Stap 3: Hardeware
- Stap 4: Bedrading
- Stap 5: Toekomstige verbetering
Video: 2-knoppie kwadratiese vergelykingoplosser: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Inleiding
welkom by my eerste instruksies!
Ek het hierdie projek begin om my kennis van programmering uit te brei. Dikwels kombineer u net verskillende bronkode om die program te skep wat u benodig. My doel was om my eie programkode te skryf vir interaksie met 'n instrument. Ek het daarvan gehou om 'n eenvoudige hulpmiddel vir die berekening te skep. 'N Maand gelede het ek 'n vriend ondersteun om kwadratiese vergelyking op te los.
Bazinga! dit is die gebruiksgeval!
Ek het 'n ou metaalkas hergebruik. Ek het die minimalistiese voorkoms en koppelvlak van gereedskap verkies. dit is die rede waarom ek net 2 knoppies wil gebruik om invoer te gee. Die stryd sal deur 'n eenvoudige LCD -skerm vertoon word.
Voorrade
materiaal lys:
boks
Arcade -styl met 2 knoppies
Arduino Nano, of soortgelyk
LCD -skerm 1602 met I2C -adapter
aan/af skakelaar
drade
2x 10k Ohm weerstand
battery 9v blok
aansluiting vir 9v battery
broodbord
diverse (stuk hout, metaalhoek, kabelbinders, skroef, ringe)
gereedskap:
gesien het
soldeerbout
boormasjien
rekenaar vir programmering
Stap 1: Wiskundige agtergrond
Wiskundige agtergrond
Die kwadratiese vergelyking met 2 knoppies toon die waardes waar die kwadratiese funksie die X-as kruis. 'N Kwadratiese funksie kan die X-as nooit, een of twee keer kruis nie.
Daar is verskillende maniere om hierdie waardes te bereken. Vir my instrument gebruik ek die PQ-formule (ek is nie seker of hierdie uitdrukking oor die hele wêreld gebruik gaan word nie).
'N Kwadratiese vergelyking het die vorm:
ax²+bx+c = 0
Om die kruispunte te bereken, deel die vorm met a x²+px+q = 0 met p = b/a; q = c/a
die PQ -formule:
x1 = -p/2 + sqrt ((p/2) ² -q)
x2 = -p/2 -sqrt ((p/2) ² -q)
Die resultaat x kan 0, 1 of 2 waardes kry. Dit hang af van die waarde onder die vierkantswortel.
Is die waarde> 0, dan het die PQ-formule twee oplossings.
Is die waarde = 0, dan het die PQ-formule een oplossing
is die waarde <0, dan het die PQ -formule geen oplossing nie. Die funksie kruis nie die X-as nie.
Stap 2: sagteware
Sagteware
Vir die programmering gebruik ek die amptelike Arduino IDE. My doelwit was om my eie sagtewareprogram te skep. My koppelvlak moet twee knoppies hê. Een knoppie om tussen verskillende vlakke te stap, die tweede knoppie om die waardes op die verskillende vlakke te verander.
Om die PQ-formule op te los, skep ek die struktuur hierbo:
Ek vind beslis nie die wiel uit nie. Vir die skep van die kode gebruik ek die module:
- verswak
- vertoon
Die volgende uitdagings was die grootste uitdagings:
- Hoe kan ek die teken kies? Ek het hierdie uitdaging opgelos met die funksie modulo (skakel). Die kode deel die invoer met 2. Is die invoer 'n onewe getal, die waarde word negatief, anders is die getal positief.
- Nadat ek deur alle vlakke gegaan het, moet ek alle waardes tot 0 verklaar.
- Die vertoonde teks vee net die stuurkarakters uit. As die kodes 'n woord met 4 karakters stuur, word net hierdie 4 karakters herlaai. As die woord voorheen meer karakters bevat, sal die karakters bly. Om dit reg te stel, word die vertoonde teks gevul met spasies. Al 16 karakters in 'n ry sal herlaai word.
Die finale kode is aangeheg.
Stap 3: Hardeware
Hardeware
Die onderdele word hierbo gelys. Vir hierdie projek is die hardeware eenvoudig. Ek benodig net 'n Arduino -mikroverwerker, 2 knoppies en 'n skerm. Goed, as u daarvan hou om in 'n boks te sit, benodig u ook 'n boks en kragtoevoer.
Ek hergebruik 'n ou metaalkas. Ek het 'n gat in die knoppie geboor om die skakelaar vir kragtoevoer in te skakel. Die boksdeksel het 3 gate. Ek het twee gate vir die groot knoppies geboor en 'n venster vir die skerm gesny. Ek steek 'n stukkie hout agter die omslag om meer goed te hê om die skerm en knoppies reg te maak. Om die voorkoms op te gradeer, het die boks plakkers gekry.
Vir kragvoorsiening beveel ek herlaaibare 9V -blokbatterye aan. Ek koppel die battery via die kragskakelaar aan die Arduino. Die battery is vasgemaak aan die boks met 'n klein metaalhoek. Die aansluiting vir die battery word net met kabelbinders vasgemaak.
Die mikroverwerker is 'n kloon van 'n Arduino -nano. Vir hierdie gebruiksgeval is die prestasie voldoende. 'N Attiny 85, byvoorbeeld 'n Digispark -mikroverwerker, is verwerp. Die Arduino is 'broodbord' langs die skerm.
Die skerm is 'n 1602 LCD -skerm. u kan 16 karakters in twee rye gebruik. U kan hierdie skerm in baie verskillende masjiene en gereedskap vind. Daar is twee verskillende maniere om hierdie skerm te gebruik. U kan die skerm direk met die beheerder koppel, of u kan 'n byvoeging gebruik om via I2C met die skerm te kommunikeer. I2C is 'n standaard protokol. Ek het dit gebruik, want dit is makliker om die skerm aan die kontroleerder te koppel. U benodig net 4 kabels in plaas van 16, VCC tot 5V, GND na GND, SDA na A4, SCL tot A5. Die skerm word met skroewe aan die boks se deksel vasgemaak.
Die knoppies is groot! hulle het die tipiese styl van die arcade game. Ek hou daarvan! Die knoppies is gekoppel aan die digitale pen 4 en 7. Moenie die 10K weerstande vergeet nie!
Om die deksel oop te maak, byvoorbeeld om die battery uit te ruil, gebruik ek langer kabels wat op die broodbord gekoppel is.
Stap 4: Bedrading
Stap 5: Toekomstige verbetering
Toekomstige verbetering
Nadat u 'n projek voltooi het, vind u altyd foute of verbeterings. In hierdie projek is ek bly om net 'n paar punte te vind, wat ek vir die toekoms kan verbeter.
Vir 'n volgende keer sou ek die uitbuiting in die boks verbeter. Ek het die skerm, die aan / uit -skakelaar en die knoppies reggemaak aan die begin van hierdie projek. Aan die einde het ek 'n bietjie moeite gekry om genoeg ruimte vir die battery en die mikroverwerker in die boks te vind. As ek die knoppie en die skerm meer buite plaas, sou ek nie probleme ondervind met die ruimte vir die dele in die boks nie.
Op die oomblik het ek nie 'n gebruiksgeval om kwadratiese vergelyking op te los nie. Om die instrument te verbeter, wil ek die instrument uitbrei met verdere wiskundige dinge, byvoorbeeld basiese berekening of formules soos binominale formule of sin van die Pythagoras.
Aanbeveel:
Spelontwerp in vyf stappe: 5 stappe
Spelontwerp in fliek in 5 stappe: Flick is 'n baie eenvoudige manier om 'n speletjie te maak, veral iets soos 'n legkaart, visuele roman of avontuurlike spel
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: 3 stappe
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: in hierdie instruksies gaan ons gesigsopsporing uitvoer op Raspberry Pi 4 met Shunya O/S met behulp van die Shunyaface-biblioteek. Shunyaface is 'n biblioteek vir gesigherkenning/opsporing. Die projek het ten doel om die vinnigste opsporing en herkenningssnelheid te bereik met
DIY Vanity Mirror in eenvoudige stappe (met LED -strookligte): 4 stappe
DIY Vanity Mirror in eenvoudige stappe (met behulp van LED Strip Lights): In hierdie pos het ek 'n DIY Vanity Mirror gemaak met behulp van die LED strips. Dit is regtig cool, en u moet dit ook probeer
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): 6 stappe
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): wil u u vriende skrik en 'n skreeu geraas maak tydens Halloween? Of wil u net 'n goeie grap maak? Hierdie pop-up skerm van Zombies kan dit doen! In hierdie instruksies sal ek u leer hoe u maklik Zombies kan spring deur Arduino te gebruik. Die HC-SR0
Kwadratiese vergelyking -makro op Excel: 3 stappe
Kwadratiese vergelyking-makro op Excel: u kan 'n kwadratiese vergelyking maklik oplos deur net na makro-gereedskap-makro te gaan.Ek is 'n nuwe lid en het regtig enige soort terugvoer nodig wat u kan gee