Table des matières:

Solveur d'équations quadratiques à 2 boutons : 5 étapes
Solveur d'équations quadratiques à 2 boutons : 5 étapes

Vidéo: Solveur d'équations quadratiques à 2 boutons : 5 étapes

Vidéo: Solveur d'équations quadratiques à 2 boutons : 5 étapes
Vidéo: DÉFI : Résoudre cette équation SANS delta ! 2024, Novembre
Anonim
Image
Image

introduction

Bienvenue dans mon premier instructable !

J'ai commencé ce projet pour étendre mes connaissances en programmation. Souvent, vous fusionnez simplement différents codes sources pour créer le programme dont vous avez besoin. Mon objectif était d'écrire mon propre code de programme pour interagir avec un outil. J'ai aimé créer un outil simple de calcul. Il y a quelques mois, j'ai aidé un ami à résoudre une équation quadratique.

Bazinga ! c'est le cas d'utilisation !

J'ai réutilisé une vieille boîte en métal. J'ai préféré le look minimaliste et l'interface des outils. c'est la raison pour laquelle je veux juste utiliser 2 boutons pour donner une entrée. Le combat sera affiché par un simple écran LCD.

Fournitures

liste de matériel:

boîte

Style arcade à 2 boutons

Arduino Nano, ou similaire

Écran LCD 1602 avec adaptateur I2C

interrupteur marche / arrêt

fils

2x résistance 10k Ohm

bloc batterie 9v

connecteur pour pile 9v

planche à pain

divers (pièce de bois, cornière métallique, serre-câbles, vis, rondelles)

outils:

vu

fer à souder

Perceuse

ordinateur pour la programmation

Étape 1: Contexte mathématique

Logiciel
Logiciel

Contexte mathématique

L'équation quadratique à 2 boutons montre les valeurs où la fonction quadratique croise l'axe X. Une fonction quadratique peut traverser l'axe X jamais, une ou deux fois.

Il existe différentes manières de calculer ces valeurs. Pour mon outil, j'utilise la formule PQ (je ne sais pas si cette expression sera utilisée dans le monde entier).

Une équation quadratique a la forme:

ax²+bx+c=0

Pour calculer les points de croisement, divisez la forme par a x²+px+q=0 avec p= b/a; q=c/a

la formule PQ:

x1 = -p/2 + carré((p/2)²-q)

x2 = -p/2 - carré((p/2)²-q)

Le résultat x peut obtenir 0, 1 ou 2 valeurs. Cela dépend de la valeur sous la racine carrée.

Si la valeur est > 0, alors la formule PQ a deux solutions.

Est-ce que la valeur = 0, alors la formule PQ a une solution

est la valeur < 0, alors la formule PQ n'a pas de solution. La fonction ne traverse pas l'axe X.

Étape 2: Logiciel

Logiciel

Pour la programmation, j'ai utilisé l'IDE officiel Arduino. Mon objectif était de créer mon propre logiciel. Mon interface devrait avoir deux boutons. Un bouton pour passer d'un niveau à l'autre, le deuxième bouton pour modifier les valeurs des différents niveaux.

Pour résoudre la formule PQ, je crée la structure ci-dessus:

Bien sûr, je ne réinvente pas la roue. Pour créer le code, j'ai utilisé le module:

- anti-rebond

- affichage

Les points suivants ont été les plus grands défis:

- Comment puis-je choisir le signe? J'ai résolu ce défi avec la fonction modulo (lien). Le code divise l'entrée par 2. L'entrée est-elle un nombre impair, la valeur devient négative, sinon le nombre est positif.

- Après avoir parcouru tous les niveaux, je dois déclarer toutes les valeurs à 0.

- Le texte affiché efface juste les caractères d'envoi. Si les codes envoient un mot à 4 caractères, seuls ces 4 caractères seront rechargés. Si le mot précédent avait plus de caractères, les caractères resteront. Pour résoudre ce problème, le texte affiché sera rempli de blancs. Les 16 caractères d'affilée seront rechargés.

Le code final est joint.

Étape 3: Matériel

Matériel
Matériel
Matériel
Matériel
Matériel
Matériel
Matériel
Matériel

Matériel

Les pièces sont listées ci-dessus. Pour ce projet, le matériel est simple. J'ai juste besoin d'un microprocesseur Arduino, de 2 boutons et d'un écran. D'accord, si vous aimez mettre dans une boîte, vous avez également besoin d'une boîte et d'une alimentation.

Je réutilise une vieille boîte en métal. J'ai percé un trou dans le bouton pour brancher l'interrupteur d'alimentation. Le couvercle de la boîte a 3 trous. J'ai percé deux trous pour les gros boutons et découpé une fenêtre pour l'affichage. Je colle un petit morceau de bois derrière le couvercle pour avoir plus de trucs pour fixer l'écran et les boutons. Pour améliorer le look, la boîte a des autocollants.

Pour l'alimentation, je recommande les piles bloc 9V rechargeables. Je connecte la batterie via l'interrupteur d'alimentation à l'Arduino. La batterie est fixée au boitier avec un petit angle métallique. Le connecteur pour la batterie est juste fixé par des serre-câbles.

Le microprocesseur est un clone d'un Arduino nano. Pour ce cas d'utilisation, les performances sont suffisantes. Un Attiny 85, par exemple un microprocesseur Digispark, a été rejeté. L'Arduino est "pain boarded" à côté de l'écran.

L'affichage est un écran LCD 1602. vous pouvez utiliser 16 caractères sur deux lignes. Vous pouvez trouver cet affichage dans de nombreuses machines et outils différents. Il existe deux manières différentes d'utiliser cet affichage. Vous pouvez connecter l'écran directement au contrôleur ou vous pouvez utiliser un module complémentaire pour communiquer avec l'écran via I2C. I2C est un protocole standard. Je l'ai utilisé, car il est plus facile de connecter l'écran au contrôleur. Vous avez juste besoin de 4 câbles au lieu de 16, VCC vers 5V, GND vers GND, SDA vers A4, SCL vers A5. L'écran est fixé par des vis au couvercle du boîtier.

Les boutons sont énormes ! ils ont le style typique des jeux d'arcade. Je l'aime bien! Les boutons sont connectés aux broches numériques 4 et 7. N'oubliez pas les résistances 10K !

Pour ouvrir le couvercle, par exemple pour changer la batterie, j'ai utilisé des câbles plus longs branchés sur la maquette.

Étape 4: Câblage

Câblage
Câblage

Étape 5: Amélioration future

Amélioration future

Après avoir terminé un projet, vous trouvez toujours des bugs ou des fonctionnalités à améliorer. Dans ce projet, je suis heureux de trouver juste quelques points, je m'améliorerais pour l'avenir.

Pour la prochaine fois, j'améliorerais l'exploitation dans la boîte. J'ai réparé l'affichage, l'interrupteur d'alimentation et les boutons au début de ce projet. A la fin, j'ai eu un peu de mal à trouver assez de place pour la batterie et le microprocesseur dans le boitier. Lorsque je mettrais le bouton et l'affichage plus à l'extérieur, je n'aurais aucun problème avec l'espace pour les pièces à l'intérieur de la boîte.

Pour le moment, je n'ai pas de cas d'utilisation pour résoudre une équation quadratique. Pour améliorer l'outil, je voudrais étendre l'outil avec d'autres choses mathématiques, par exemple le calcul de base ou des formules comme la formule binominale ou la phrase de Pythagore.

Conseillé: