Quadratischer Gleichungslöser mit 2 Tasten - Gunook
Quadratischer Gleichungslöser mit 2 Tasten - Gunook
Anonim
Image
Image

Einführung

Willkommen zu meinem ersten instructable!

Ich habe dieses Projekt gestartet, um meine Programmierkenntnisse zu erweitern. Oftmals führen Sie einfach verschiedene Quellcodes zusammen, um das gewünschte Programm zu erstellen. Mein Ziel war es, meinen eigenen Programmcode für die Interaktion mit einem Tool zu schreiben. Ich mochte es, ein einfaches Werkzeug zum Rechnen zu erstellen. Vor einigen Monaten habe ich einen Freund dabei unterstützt, quadratische Gleichungen zu lösen.

Bazinga! Das ist der Anwendungsfall!

Ich habe eine alte Metallbox wiederverwendet. Ich bevorzuge das minimalistische Aussehen und die Benutzeroberfläche der Tools. Aus diesem Grund möchte ich nur 2 Tasten für die Eingabe verwenden. Der Inhalt wird durch ein einfaches LCD-Display angezeigt.

Lieferungen

Material Liste:

Kasten

2-Tasten-Arcade-Stil

Arduino Nano oder ähnlich

LCD-Display 1602 mit I2C-Adapter

Ein / Aus Schalter

Drähte

2x 10k Ohm Widerstand

Batterie 9v Block

Anschluss für 9V Batterie

Steckbrett

Sonstiges (Holzstück, Metallwinkel, Kabelbinder, Schraube, Unterlegscheiben)

Werkzeuge:

sah

Lötkolben

Bohrmaschine

Computer zum Programmieren

Schritt 1: Mathematischer Hintergrund

Software
Software

Mathematischer Hintergrund

Die quadratische Gleichung mit 2 Schaltflächen zeigt die Werte an, bei denen die quadratische Funktion die X-Achse schneidet. Eine quadratische Funktion kann die X-Achse nie, ein- oder zweimal kreuzen.

Es gibt verschiedene Möglichkeiten, diese Werte zu berechnen. Für mein Tool verwende ich die PQ-Formel (ich bin mir nicht sicher, ob dieser Ausdruck weltweit verwendet wird).

Eine quadratische Gleichung hat die Form:

ax²+bx+c=0

Um die Kreuzungspunkte zu berechnen, dividiere die Form durch a x²+px+q=0 mit p= b/a; q=c/a

die PQ-Formel:

x1 = -p/2 + sqrt((p/2)²-q)

x2 = -p/2 - sqrt((p/2)²-q)

Das Ergebnis x kann 0, 1 oder 2 Werte annehmen. Das hängt vom Wert unter der Quadratwurzel ab.

Ist der Wert > 0, dann hat die PQ-Formel zwei Lösungen.

Ist der Wert = 0, dann hat die PQ-Formel eine Lösung

ist der Wert < 0, dann hat die PQ-Formel keine Lösung. Die Funktion schneidet die X-Achse nicht.

Schritt 2: Software

Software

Zur Programmierung habe ich die offizielle Arduino IDE verwendet. Mein Ziel war es, mein eigenes Softwareprogramm zu erstellen. Mein Interface sollte zwei Tasten haben. Eine Taste, um zwischen verschiedenen Ebenen zu wechseln, die zweite Taste, um die Werte in den verschiedenen Ebenen zu ändern.

Um die PQ-Formel zu lösen, erstelle ich die obige Struktur:

Natürlich erfinde ich das Rad nicht neu. Zum Erstellen des Codes habe ich das Modul verwendet:

- entprellen

- Anzeige

Folgende Punkte waren die größten Herausforderungen:

- Wie kann ich das Zeichen auswählen? Diese Herausforderung habe ich mit der Funktion modulo (Link) gelöst. Der Code dividiert die Eingabe durch 2. Ist die Eingabe eine ungerade Zahl, wird der Wert negativ, ansonsten ist die Zahl positiv.

- Nachdem ich alle Level durchlaufen habe, muss ich alle Werte zu 0 deklarieren.

- Der angezeigte Text löscht nur die Sendezeichen. Wenn die Codes ein Wort mit 4 Zeichen senden, werden nur diese 4 Zeichen neu geladen. Wenn das Wort zuvor mehr Zeichen hatte, bleiben die Zeichen erhalten. Um dies zu beheben, wird der angezeigte Text mit Leerzeichen aufgefüllt. Alle 16 Zeichen in einer Reihe werden neu geladen.

Der endgültige Code ist beigefügt.

Schritt 3: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Hardware

Die Teile sind oben aufgeführt. Für dieses Projekt ist die Hardware einfach. Ich brauche nur einen Arduino-Mikroprozessor, 2 Tasten und ein Display. Okay, wenn Sie in eine Box stecken möchten, benötigen Sie auch eine Box und ein Netzteil.

Ich verwende eine alte Metallbox wieder. Ich habe ein Loch in den Knopf gebohrt, um den Schalter für die Stromversorgung anzuschließen. Der Kastendeckel hat 3 Löcher. Ich habe zwei Löcher für die großen Knöpfe gebohrt und ein Fenster für das Display geschnitten. Ich klebe ein kleines Stück Holz hinter die Abdeckung, um mehr Zeug zum Befestigen von Display und Tasten zu haben. Um den Look aufzuwerten, wurde die Box mit Aufklebern versehen.

Zur Stromversorgung empfehle ich wiederaufladbare 9V Blockbatterien. Ich verbinde die Batterie über den Netzschalter mit dem Arduino. Der Akku wird mit einem kleinen Metallwinkel an der Box befestigt. Der Anschluss für den Akku wird lediglich mit Kabelbindern fixiert.

Der Mikroprozessor ist ein Klon eines Arduino Nano. Für diesen Anwendungsfall ist die Leistung ausreichend. Ein Attiny 85, beispielsweise ein Digispark-Mikroprozessor, wurde abgelehnt. Der Arduino ist neben dem Display "Breadboarded".

Das Display ist ein 1602 LCD-Display. Sie können 16 Zeichen in zwei Zeilen verwenden. Dieses Display finden Sie in vielen verschiedenen Maschinen und Werkzeugen. Es gibt zwei verschiedene Möglichkeiten, diese Anzeige zu verwenden. Sie können das Display direkt an den Controller anschließen oder ein Add-On verwenden, um über I2C mit dem Display zu kommunizieren. I2C ist ein Standardprotokoll. Ich habe es verwendet, weil es einfacher ist, das Display mit dem Controller zu verbinden. Sie brauchen nur 4 statt 16 Kabel, VCC auf 5V, GND auf GND, SDA auf A4, SCL auf A5. Das Display ist mit Schrauben am Gehäusedeckel befestigt.

Die Knöpfe sind riesig! sie haben den typischen Arcade-Spielstil. Ich mag das! Die Taster sind mit Digital Pin 4 und 7 verbunden. Bitte die 10K Widerstände nicht vergessen!

Zum Öffnen des Deckels, zum Beispiel um den Akku auszutauschen, habe ich längere Kabel verwendet, die auf das Steckbrett gesteckt wurden.

Schritt 4: Verkabelung

Verdrahtung
Verdrahtung

Schritt 5: Zukünftige Verbesserung

Zukünftige Verbesserung

Nach Abschluss eines Projekts finden Sie immer wieder Fehler oder verbesserungswürdige Funktionen. In diesem Projekt freue ich mich, nur ein paar Punkte zu finden, die ich für die Zukunft verbessern würde.

Für das nächste Mal würde ich die Ausbeutung in der Box verbessern. Ich habe das Display, den Netzschalter und die Tasten zu Beginn dieses Projekts repariert. Am Ende hatte ich etwas Mühe, genug Platz für den Akku und den Mikroprozessor in der Box zu finden. Wenn ich den Knopf und das Display weiter außen lege, hätte ich keine Probleme mit dem Platz für die Teile im Inneren der Box.

Im Moment habe ich keinen Anwendungsfall zum Lösen quadratischer Gleichungen. Um das Tool zu verbessern, möchte ich das Tool um weitere mathematische Dinge erweitern, zum Beispiel Grundrechnung oder Formeln wie binominale Formel oder Satz des Pythagoras.