Table des matières:
- Étape 1: Contexte mathématique
- Étape 2: Logiciel
- Étape 3: Matériel
- Étape 4: Câblage
- Étape 5: Amélioration future
Vidéo: Solveur d'équations quadratiques à 2 boutons : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
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
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
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
É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é:
Solveur Rubik's Cube en temps réel avec les yeux bandés utilisant Raspberry Pi et OpenCV : 4 étapes
Solveur Rubik's Cube en temps réel avec les yeux bandés utilisant Raspberry Pi et OpenCV : il s'agit de la 2ème version de l'outil Rubik's cube conçu pour résoudre les yeux bandés. La 1ère version a été développée par javascript, vous pouvez voir le projet RubiksCubeBlindfolded1Contrairement à la précédente, cette version utilise la bibliothèque OpenCV pour détecter les couleurs et e
Q-Bot - le solveur Rubik's Cube Open Source : 7 étapes (avec photos)
Q-Bot - le Rubik's Cube Solver Open Source : Imaginez que vous ayez un Rubik's Cube brouillé, vous connaissez ce puzzle des années 80 que tout le monde a mais personne ne sait vraiment comment le résoudre, et vous voulez le ramener dans son modèle d'origine. Heureusement, de nos jours, il est très facile de trouver des instructions de résolution
Arduino Mega Stepper Shield pour un solveur Rubiks Cube: 4 étapes
Arduino Mega Stepper Shield pour un solveur Rubiks Cube: Il y a quelque temps, je travaillais sur une machine qui résout automatiquement tout Rubiks Cube 3x3 brouillé. Vous pouvez voir mes instructables à ce sujet ici. Dans le projet, des pilotes pas à pas de polulu ont été utilisés pour entraîner six moteurs. Afin que deux fassent la connexion de ces d
Solveur de trafic : 7 étapes
Traffic Solver : Le Traffic Solver automatise le contrôle du trafic sur une seule voie dans une zone de construction. Pour que ce système fonctionne sans accident entre les deux, il doit y avoir deux unités, une de chaque côté. Les deux unités auront un moteur et un dispositif de maintien rotatif qui
Générer des sons de différents types à l'aide d'équations mathématiques (MathsMusic) Arduino : 5 étapes
Génération de sons de différentes sortes à l'aide d'équations mathématiques (MathsMusic) Arduino : Description du projet : Un nouveau voyage a commencé où les idées peuvent être facilement mises en œuvre à l'aide de la communauté open source (Merci à Arduino). Voici donc un moyen · Regardez autour de vous et observez votre environnement · Découvrez les problèmes qui doivent être