Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Introducere
bun venit la primul meu instructabil!
Am început acest proiect pentru a-mi extinde cunoștințele de programare. Adesea, pur și simplu combinați codul sursă diferit pentru a crea programul de care aveți nevoie. Scopul meu a fost să-mi scriu propriul cod de program pentru interacțiunea cu un instrument. Mi-a plăcut să creez un instrument simplu pentru calcul. Acum câteva luni, am sprijinit un prieten să rezolve ecuația pătratică.
Bazinga! acesta este cazul de utilizare!
Am refolosit o cutie veche de metal. Am preferat aspectul minimalist și interfața instrumentelor. acesta este motivul pentru care vreau doar să folosesc 2 butoane pentru a da intrare. Contestația va fi afișată printr-un simplu ecran LCD.
Provizii
lista de materiale:
cutie
Stil arcade cu 2 butoane
Arduino Nano sau similar
Afișaj LCD 1602 cu adaptor I2C
comutator pornire / oprire
fire
Rezistor 2x 10k Ohm
bloc baterie 9v
conector pentru baterie de 9v
panou de masă
diverse (bucată de lemn, unghi metalic, legături pentru cabluri, șurub, șaibe)
instrumente:
a văzut
ciocan de lipit
masina de gaurit
computer pentru programare
Pasul 1: Backround matematic
Backmound matematic
Ecuația pătratică cu 2 butoane arată valorile în care funcția pătratică traversează axa X. O funcție pătratică poate traversa axa X niciodată, o dată sau de două ori.
Există diferite moduri de a calcula aceste valori. Pentru instrumentul meu, folosesc formula PQ (nu sunt sigur dacă această expresie va fi utilizată în întreaga lume).
O ecuație pătratică are forma:
ax² + bx + c = 0
Pentru a calcula punctele de trecere, împărțiți formularul cu un x² + px + q = 0 cu p = b / a; q = c / a
Formula PQ:
x1 = -p / 2 + sqrt ((p / 2) ²-q)
x2 = -p / 2 - sqrt ((p / 2) ²-q)
Rezultatul x poate obține 0, 1 sau 2 valori. Acest lucru depinde de valoarea de sub rădăcina pătrată.
Este valoarea> 0, atunci formula PQ are două soluții.
Este valoarea = 0, atunci formula PQ are o soluție
este valoarea <0, atunci Formula PQ nu are nicio soluție. Funcția nu traversează axa X.
Pasul 2: Software
Software
Pentru programare am folosit IDE-ul oficial Arduino. Ținta mea era să îmi creez propriul program software. Interfața mea ar trebui să aibă două butoane. Un buton pentru a trece între diferite niveluri, al doilea buton pentru a schimba valorile din diferite niveluri.
Pentru a rezolva formula PQ, creez structura de mai sus:
Cu siguranță, nu reinventez roata. Pentru crearea codului, am folosit modulul:
- debounce
- afișaj
Următoarele puncte au fost cele mai mari provocări:
- Cum pot alege semnul? Am rezolvat această provocare cu funcția modulo (link). Codul împarte intrarea la 2. Este intrarea un număr impar, valoarea devine negativă, altfel numărul este pozitiv.
- După ce am parcurs toate nivelurile, trebuie să declar toate valorile la 0.
- Textul afișat șterge doar caracterele trimise. Dacă codurile trimit un cuvânt cu 4 caractere, doar aceste 4 caractere vor fi reîncărcate. Dacă cuvântul anterior avea mai multe caractere, personajele vor rămâne. Pentru a remedia problema, textul afișat va fi completat cu spații goale. Toate cele 16 caractere la rând vor fi reîncărcate.
Codul final este atașat.
Pasul 3: Hardware
Hardware
Piesele sunt enumerate mai sus. Pentru acest proiect, hardware-ul este simplu. Am nevoie doar de un microprocesor Arduino, 2 butoane și un afișaj. Bine, dacă vă place să introduceți o cutie, aveți nevoie și de o cutie și de o sursă de alimentare.
Reutilizez o cutie metalică veche. Am forat o gaură în buton pentru conectarea întrerupătorului pentru alimentare. Capacul cutiei are 3 găuri. Am forat două găuri pentru butoanele mari și am tăiat o fereastră pentru afișaj. Lipesc o mică bucată de lemn în spatele capacului pentru a avea mai multe lucruri de reparat afișajul și butoanele. Pentru a actualiza aspectul, cutia a primit autocolante.
Pentru alimentarea cu energie electrică, recomand baterii reîncărcabile cu bloc de 9V. Conectez bateria prin întrerupător la Arduino. Bateria este fixată pe cutie cu un unghi mic de metal. Conectorul pentru baterie este fixat doar prin legături de cablu.
Microprocesorul este o clonă a unui nano Arduino. Pentru acest caz de utilizare, performanța este suficientă. Un Attiny 85, de exemplu un microprocesor Digispark, a fost respins. Arduino este „pâine îmbinată” lângă afișaj.
Afișajul este un afișaj LCD 1602. puteți utiliza 16 caractere în două rânduri. Puteți găsi acest afișaj în multe mașini și instrumente diferite. Există două moduri diferite de a utiliza acest afișaj. Puteți conecta afișajul direct la controler sau puteți utiliza un supliment pentru a comunica pe afișaj prin I2C. I2C este un protocol standard. L-am folosit, deoarece este mai ușor să conectați afișajul la controler. Ai nevoie doar de 4 cabluri în loc de 16, VCC la 5V, GND la GND, SDA la A4, SCL la A5. Afișajul este fixat cu șuruburi pe capacul cutiei.
Butoanele sunt imense! au stilul tipic de joc arcade. Imi place! Butoanele sunt conectate la pinii 4 și 7. Vă rugăm să nu uitați Rezistențele 10K!
Pentru a deschide capacul, de exemplu pentru a schimba bateria, am folosit cabluri mai lungi conectate la panoul de control.
Pasul 4: Cablare
Pasul 5: Îmbunătățiri viitoare
Îmbunătățiri viitoare
După terminarea unui proiect, veți găsi întotdeauna erori sau caracteristici de îmbunătățit. În acest proiect, sunt fericit să găsesc doar câteva puncte, aș îmbunătăți pentru viitor.
Pentru data viitoare, aș îmbunătăți exploatarea din cutie. Am reparat afișajul, comutatorul de alimentare și butoanele de la începutul acestui proiect. La sfârșit, am avut ceva probleme să găsesc suficient spațiu pentru baterie și microprocesor în cutie. Când pun butonul și afișajul mai mult în exterior, nu aș avea probleme cu spațiul pentru piesele din interiorul cutiei.
În acest moment nu am un caz de utilizare pentru rezolvarea ecuației pătratice. Pentru a îmbunătăți instrumentul, aș dori să extind instrumentul cu alte lucruri matematice, de exemplu, calcul de bază sau formule precum formula binominală sau propoziția lui Pitagora.