Indholdsfortegnelse:
- Trin 1: Matematisk baggrund
- Trin 2: Software
- Trin 3: Hardware
- Trin 4: Ledningsføring
- Trin 5: Fremtidig forbedring
Video: 2-knappers kvadratisk ligningsløser: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Introduktion
velkommen til min første instruerbare!
Jeg startede dette projekt for at udvide min programmeringskendskab. Ofte fletter du bare forskellige kildekoder for at oprette det program, du har brug for. Mit mål var at skrive min egen programkode til interaktion med et værktøj. Jeg kunne godt lide at lave et simpelt værktøj til beregning. For en måned siden støttede jeg en ven til at løse andengradsligning.
Bazinga! dette er brugssagen!
Jeg genbrugte en gammel metalkasse. Jeg foretrak det minimalistiske udseende og interface af værktøjer. det er grunden til, at jeg bare vil bruge 2 knapper til at give input. Kampen vil blive vist med et simpelt LCD -display.
Forbrugsvarer
materialeliste:
boks
Arcade -stil med 2 knapper
Arduino Nano eller lignende
LCD -display 1602 med I2C -adapter
tænd/sluk -kontakt
ledninger
2x 10k Ohm modstand
batteri 9v blok
stik til 9v batteri
brødbræt
diverse (træstykke, metalvinkel, kabelbindere, skruer, skiver)
værktøjer:
sav
loddekolbe
boremaskine
computer til programmering
Trin 1: Matematisk baggrund
Matematisk baggrund
Kvadratisk ligning med 2 knapper viser de værdier, hvor den kvadratiske funktion krydser X-aksen. En kvadratisk funktion kan krydse X-aksen aldrig, en eller to gange.
Der er forskellige måder at beregne disse værdier på. Til mit værktøj bruger jeg PQ-formlen (jeg er ikke sikker på, om dette udtryk vil blive brugt over hele verden).
En kvadratisk ligning har formen:
ax²+bx+c = 0
For at beregne krydsningspunkterne divideres formularen med a x²+px+q = 0 med p = b/a; q = c/a
PQ -formlen:
x1 = -p/2 + sqrt ((p/2) ² -q)
x2 = -p/2 -sqrt ((p/2) ² -q)
Resultatet x kan få 0, 1 eller 2 værdier. Det afhænger af værdien under kvadratroden.
Er værdien> 0, så har PQ-formlen to løsninger.
Er værdien = 0, så har PQ-formlen en løsning
er værdien <0, så har PQ -formlen ingen løsning. Funktionen krydser ikke X-aksen.
Trin 2: Software
Software
Til programmering brugte jeg den officielle Arduino IDE. Mit mål var at oprette mit eget softwareprogram. Min grænseflade skal have to knapper. En knap til at gå mellem forskellige niveauer, den anden knap til at ændre værdierne i de forskellige niveauer.
For at løse PQ-formlen opretter jeg strukturen ovenfor:
Helt sikkert genopfinder jeg ikke hjulet. Til oprettelse af koden brugte jeg modulet:
- debounce
- Skærm
Følgende punkter var de største udfordringer:
- Hvordan kan jeg vælge skiltet? Jeg løste denne udfordring med funktionen modulo (link). Koden deler input med 2. Er input et ulige tal, værdien bliver negativ, ellers er tallet positivt.
- Efter at have gennemgået alle niveauer, skal jeg erklære alle værdier til 0.
- Den viste tekst sletter bare afsendelsestegnene. Hvis koderne sender et ord med 4 tegn, genindlæses kun disse 4 tegn. Hvis ordet før havde flere tegn, forbliver tegnene. For at løse det vil den viste tekst blive fyldt op med emner. Alle 16 tegn i træk genindlæses.
Den endelige kode er vedhæftet.
Trin 3: Hardware
Hardware
Dele er angivet ovenfor. Til dette projekt er hardwaren enkel. Jeg mangler bare en Arduino mikroprocessor, 2 knapper og et display. Okay, hvis du kan lide at putte i en kasse, har du også brug for en kasse og strømforsyning.
Jeg genbruger en gammel metalkasse. Jeg borede et hul i knappen for at tilslutte kontakten til strømforsyning. Kassedækslet fik 3 huller. Jeg borede to huller til de store knapper og skar et vindue til displayet. Jeg stikker et lille stykke træ bag omslaget for at have flere ting til at reparere display og knapper. For at opgradere udseendet fik æsken klistermærker.
Til strømforsyning anbefaler jeg genopladelige 9V blokbatterier. Jeg tilslutter batteriet via afbryderen til Arduino. Batteriet er fastgjort til kassen med en lille metalvinkel. Stikket til batteriet er bare fastgjort med kabelbindere.
Mikroprocessoren er en klon af en Arduino nano. I dette tilfælde er ydelsen tilstrækkelig. En Attiny 85, for eksempel en Digispark -mikroprocessor, blev afvist. Arduinoen er "brødbrættet" ved siden af displayet.
Displayet er et 1602 LCD -display. du kan bruge 16 tegn i to rækker. Du kan finde denne skærm i mange forskellige maskiner og værktøjer. Der er to forskellige måder at bruge dette display på. Du kan slutte skærmen direkte til controlleren, eller du kan bruge et tilføjelsesprogram til at kommunikere med displayet via I2C. I2C er en standardprotokol. Jeg brugte det, fordi det er lettere at slutte skærmen til controlleren. Du skal bare bruge 4 kabler i stedet for 16, VCC til 5V, GND til GND, SDA til A4, SCL til A5. Displayet fastgøres med skruer til boksens dæksel.
Knapperne er enorme! de har den typiske arkadespilstil. Jeg kan lide det! Knapperne er forbundet til digital pin 4 og 7. Glem ikke 10K modstanderne!
For at åbne dækslet, f.eks. For at skifte batteri, brugte jeg længere kabler, der var tilsluttet brødbrættet.
Trin 4: Ledningsføring
Trin 5: Fremtidig forbedring
Fremtidig forbedring
Efter afslutning af et projekt finder du altid fejl eller funktioner til forbedring. I dette projekt er jeg glad for bare at finde et par punkter, jeg ville forbedre for fremtiden.
Til næste gang ville jeg forbedre udnyttelsen i boksen. Jeg fikseret displayet, afbryderen og knapperne i begyndelsen af dette projekt. Til sidst fik jeg lidt problemer med at finde plads nok til batteriet og mikroprocessoren i kassen. Når jeg lagde knappen og displayet mere udenfor, ville jeg ikke have problemer med pladsen til delene inde i boksen.
I øjeblikket har jeg ikke en use case til løsning af kvadratisk ligning. For at forbedre værktøjet vil jeg gerne udvide værktøjet med yderligere matematiske ting, for eksempel grundregning eller formler som binominel formel eller sætning i Pythagoras.
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
Kvadratisk ligningsmakro i Excel: 3 trin
Kvadratisk ligningsmakro i Excel: du kan nemt løse en kvadratisk ligning ved bare at gå til værktøjsmakro-makro. Jeg er et nyt medlem og har virkelig brug for enhver form for feedback, du kan give. Nyd ikke at bruge papir til at løse disse ligninger