Je suis un débutant en électronique. J'essaie de construire une calculatrice à partir de zéro comme un simple projet et un passe-temps pour me tenir occupé.
Mon objectif est de construire une calculatrice simple, pas une calculatrice scientifique ou graphique, même si cela ne me dérange pas de recevoir des informations sur la façon de le faire, juste pour les coups de pied.
Existe-t-il un bon tutoriel pour cela? Comment dois-je commencer?
calculator
Philoxophe
la source
la source
Réponses:
Voici un exemple de calculatrice que vous pouvez construire sans trop de connaissances en électronique. Il est complet, bien que l'addition ne soit pas incluse.
la source
Ce n'est pas un projet trivial. Il y a de nombreux sous-projets éducatifs à se soucier. L'un est les boutons et les anti-rebonds. Un autre consiste à écrire des caractères sur un écran. Il y a la décision de la façon dont vous voulez mettre en œuvre cela vous intéresse de le faire à partir d'une grande boîte de nand gates ou voulez prendre un microcontrôleur ou un autre processeur et écrire un logiciel? Êtes-vous intéressé à utiliser un fpga et à faire tout le calcul en RTL? Vous devez décomposer le problème en ces composants et travailler / apprendre un composant à la fois, puis les assembler. Par exemple, si le moteur mathématique de base est en fait un logiciel sur un microcontrôleur, une tâche comprendra l'écriture de certaines fonctions C sur votre ordinateur de bureau pour alimenter les frappes et afficher les caractères qui seront finalement affichés. Une tâche non triviale si vous n'avez jamais programmé auparavant.
En tant que projet éducatif, je voudrais obtenir quelques launchapads msp430, moins de 5 dollars chacun ou la découverte de la ligne de valeur STM32 (la base stm32 / bras pas l'autre) pour environ 12 dollars chacun. Un certain nombre de personnes vous guideront vers l'arduino, et c'est une belle plate-forme également, elle a ses avantages et ses inconvénients, je ne l'accompagnerais pas comme mon premier microcontrôleur. Achetez un simple panneau lcd à deux lignes, la terre lcd était un bon endroit, peut-être allez-vous simplement chez sparkfun. Prenez une carte de microcontrôleur, connectez-la au panneau lcd et apprenez à mettre des caractères à l'écran. J'apprendrais alors comment utiliser l'uart sur le microcontrôleur qui commence souvent par des octets de dynamitage, puis par la suite en réception et en écho. Utilisez le récepteur uart pour recevoir des objets à afficher, puis utilisez un terminal stupide (mastic, hyperterm, minicom) à partir d'un flux informatique et assurez-vous que cela fonctionne. Ensuite, prenez un autre microcontrôleur, utilisez votre expérience uart in and out et travaillez sur le moteur mathématique de base, depuis votre ordinateur, alimentez-le 0 - 9, +, -, = au début, puis ajoutez multiplier et diviser, puis virgule flottante si vous êtes assez courageux pour cela (ou avoir une bibliothèque qui convient). La sortie du module mathématique ferait écho aux nombres d'entrée et imprimerait les résultats lorsque = est envoyé, etc. Ensuite, déterminez quoi faire avec les boutons, trouvez un tableau de boutons, introduisez-les d'une manière ou d'une autre dans le troisième microcontrôleur, rebondissez et transformez-les en uart sur 0 - 9, +, -, = vers le microcontrôleur mathématique. ALORS, réduisez tout cela en un seul microcontrôleur sans le truc uart au milieu. utilisez votre expérience uart in and out et travaillez sur le moteur mathématique de base, à partir de votre ordinateur, alimentez-le 0 - 9, +, -, = au début, puis ajoutez multiplier et diviser, puis virgule flottante si vous êtes assez courageux pour cela (ou avez une bibliothèque qui convient). La sortie du module mathématique ferait écho aux nombres d'entrée et imprimerait les résultats lorsque = est envoyé, etc. Ensuite, déterminez quoi faire avec les boutons, trouvez un tableau de boutons, introduisez-les d'une manière ou d'une autre dans le troisième microcontrôleur, rebondissez et transformez-les en uart sur 0 - 9, +, -, = vers le microcontrôleur mathématique. ALORS, réduisez tout cela en un seul microcontrôleur sans le truc uart au milieu. utilisez votre expérience uart in and out et travaillez sur le moteur mathématique de base, depuis votre ordinateur, alimentez-le 0 - 9, +, -, = au début, puis ajoutez multiplier et diviser, puis virgule flottante si vous êtes assez courageux pour cela (ou avez une bibliothèque qui convient). La sortie du module mathématique ferait écho aux nombres saisis et imprimerait les résultats lorsque = est envoyé, etc. Ensuite, déterminez quoi faire avec les boutons, trouvez un tableau de boutons, introduisez-les d'une manière ou d'une autre dans le troisième microcontrôleur, rebondissez et transformez-les en uart sur 0 - 9, +, -, = vers le microcontrôleur mathématique. ALORS, réduisez tout cela en un seul microcontrôleur sans le truc uart au milieu. La sortie du module mathématique ferait écho aux nombres saisis et imprimerait les résultats lorsque = est envoyé, etc. Ensuite, déterminez quoi faire avec les boutons, trouvez un tableau de boutons, introduisez-les d'une manière ou d'une autre dans le troisième microcontrôleur, rebondissez et transformez-les en uart sur 0 - 9, +, -, = vers le microcontrôleur mathématique. ALORS, réduisez tout cela en un seul microcontrôleur sans le truc uart au milieu. La sortie du module mathématique ferait écho aux nombres saisis et imprimerait les résultats lorsque = est envoyé, etc. Ensuite, déterminez quoi faire avec les boutons, trouvez un tableau de boutons, introduisez-les d'une manière ou d'une autre dans le troisième microcontrôleur, rebondissez et transformez-les en uart sur 0 - 9, +, -, = vers le microcontrôleur mathématique. ALORS, réduisez tout cela en un seul microcontrôleur sans le truc uart au milieu.
Une autre alternative consiste à obtenir l'une des cartes FPGA RS-232 sur knjn.com ou le brevia treillis (est-ce assez grand?) Ou un certain nombre d'autres, puis de travailler sur chacun des blocs fonctionnels en utilisant un langage RTL. certaines parties seront beaucoup plus faciles que la solution logicielle équivalente, certaines parties seront un peu plus dures qu'une solution logicielle.
Si vous pouvez fournir plus d'informations sur ce que vous pensez, une boîte de nand gates ou une solution basée sur un microcontrôleur ou pensiez-vous à autre chose?
la source
La calculatrice électronique la plus simple que vous pourriez construire serait une calculatrice binaire à quatre fonctions. Vous pouvez le créer à l'aide de commutateurs pour entrer des nombres binaires, et les éléments logiques de base de la famille 7400 pourraient gérer les additionneurs qui géreraient l'addition. Vous pouvez utiliser des LED individuelles pour représenter chaque nombre binaire dans la sortie, ou vous pouvez utiliser plusieurs affichages à sept segments pour afficher le nombre en hexadécimal. La construction d'une calculatrice binaire vous permettrait d'éviter de construire un convertisseur décimal-binaire et vous aiderait à vous familiariser avec le fonctionnement de l'électronique numérique. Si vous envisagez de vous lancer dans l'électronique numérique comme passe-temps, vous voudrez peut-être envisager d'obtenir Logisim , un programme gratuit qui vous permet de simuler vos circuits avant de les construire.
la source
Voici comment je l'ai fait.
Choisissez les composants:
Input Device
(Clavier 4x4 dans mon cas. 10 touches pour les chiffres, 4 pour les opérateurs, une pour «=» et une pour «réinitialiser / rafraîchir»)Processor
(AVR 8 bits)Output device
(LCD 16x2)Power supply
(Régulateur LM7805 avec batterie 9 volts)BreadBoard
(faire du PCB après qu'il commence à fonctionner)J'ai choisi de programmer en montage (apprendre), question de choix personnel. J'ai utilisé AVR Studio 4 comme IDE et un programmeur ISP maison basé sur lpt pour flasher hex en AVR.
puis j'ai écrit des pilotes pour LCD et clavier. Une fois capable de prendre des entrées et de produire des sorties, j'ai commencé à analyser les nombres décimaux et les opérateurs, puis j'ai analysé les expressions et lu les méthodes Infix, Postfix et Prefix . J'ai fait mon travail d'assemblage, donc il n'y avait pas de `` prise en charge du type de données FLOAT '' et j'ai fini par implémenter mon type de données personnalisé (le type de données basé sur BCD pour maintenir une précision décimale à 15 chiffres, c'était un énorme gaspillage de RAM cependant!).
Tout cela fait et Voila .. ma calculatrice était prête (je l'ai nommée BUB!).
Le mien a fonctionné à 1 MHz et a pu battre casio_991MS (en termes de précision décimale et de multiplication et division).
J'espère que cela aide les autres.
la source
Vous pouvez utiliser un kit de développement avec tout ce qui est déjà sur la carte pour vous permettre de vous concentrer sur le logiciel. Par exemple http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en024858&part=DM240001 ce kit a PIC, LCD et quelques boutons. Il existe de nombreux en-têtes pour ajouter des boutons supplémentaires. Le seul inconvénient est que l'écran LCD est plus grand que vous voudrez peut-être l'utiliser au début, mais il vous aidera certainement à démarrer.
Si vous cherchez autour de vous, vous pourrez peut-être en trouver de plus petits (et moins chers) que vous pouvez commencer.
L'utilisation d'un kit comme celui-ci facilitera l'écriture de votre code, car il s'agira d'exemples et supprimera le problème des problèmes matériels car il est correctement configuré. Un autre inconvénient est que ce kit utilise les photos haut de gamme, ce qui est exagéré pour un projet de calculatrice, mais il vous donne de la place pour grandir et le modifier à l'avenir pour effectuer d'autres tâches. Il vous donnera également des schémas à utiliser comme point de départ pour créer vos propres planches à l'avenir.
la source
Sur mon étagère, j'ai "Electronic Calculators" de H. Edward Roberts, édité par Forrest M. Mims III. 1974.
C'est assez instructif sur la façon dont les gens ont utilisé pour construire des calculatrices en 1974. De nombreuses photos sont du cycle de vie d'un MITS produit de masse calculateur - les photos du prototype (un grand mess spaghetti de fils), la conception de PCB (pose Rubylith sur une table à dessin), des pièces individuelles, une chaîne de montage, une machine à souder à la vague et un dépannage.
Ah, beaucoup de choses ont changé depuis. Les livres d'aujourd'hui évitent généralement de montrer de gros désordre de spaghetti de fils. Les calculatrices d'aujourd'hui évitent d'appliquer la tension secteur directement sur le PCB de la calculatrice.
Beaucoup de choses sont toujours les mêmes. Les gens font toujours un gros gâchis de spaghetti de fils pendant le prototypage.
la source
Eh bien pour commencer, vous devriez penser aux principaux composants dont vous aurez besoin. Vous aurez probablement besoin d'un microcontrôleur, d'un clavier et d'un écran LCD. Une fois que vous avez sélectionné ces composants, cela devrait être aussi simple que de développer le firmware.
la source
Je pense que cela peut être un bon premier projet d'apprentissage, mais il n'est pas anodin, et vous devrez en apprendre un peu en cours de route, tout en étant patient car le projet comprend un certain nombre de sous-projets à aborder tout au long de la façon.
Le premier obstacle de conception que vous devez décider est à quel niveau technologique souhaitez-vous procéder? Avec ou sans microcontrôleur (un microprocesseur largement autosuffisant), logique discrète (par exemple portes ET, OU, NOR et bascules) avec / sans unités arithmétiques (ALU), logique programmable (CPLD, FPGA), autre chose que je n'ai pas pas mentionné ou considéré. Cela devrait être d'abord la technologie utilisée pour faire les calculs, les contrôles d'entrée / sortie sont des décisions secondaires (écrans LED à sept segments, panneau LCD) principalement influencés par l'esthétique ou le coût.
Le livre très accessible How Computers Do Math (ISBN: 0471732788) de l'excentrique Clive Maxfield est un bon point de départ pour apprendre le calcul numérique . Ceci est écrit au niveau "soft" - programmation ou logique, que vous devrez comprendre afin de faire les calculs.
Quelqu'un d'autre a mentionné le projet uWatch (- micro-Watch ) à titre d'exemple, et il y a des références sur Internet à des ingénieurs électriciens (ou étudiants EE) qui ont construit leur propre calculatrice dans les années 1970. Il y a aussi quelques détails sur la construction d'une calculatrice basée sur FPGA (dispositif logique programmable) .
Pour un novice total en électronique (ou électronique numérique), je suggère d'utiliser un microcontrôleur comme point de départ dans votre conception, consultez le site Web du livre mentionné pour avoir une idée de la complexité de la programmation (pas grand-chose si vous avez une expérience en programmation) pour le microcontrôleur et partez de là.
la source
Le concepteur VisualTFT a une calculatrice à écran tactile simple comme l'un de ses exemples. Ce logiciel génère du code pour les compilateurs Mikroelektronika Pascal, Basic et C pour les microcontrôleurs AVR, PIC, ARM et 8051.
la source
Exigences matérielles
Dans une vraie calculatrice, vous avez besoin d'un écran LCD personnalisé pour afficher les caractères spéciaux comme les signes
=
,-
etM
(pour les opérations MC , MR et MS ). Un écran LCD personnalisé coûte jusqu'à 3000 $, mais les écrans LCD conçus sur mesure deviennent plus économiques que les autres écrans à usage général. Puisque votre projet est juste pour le hobby, je vous suggère d'utiliser un LCD à usage général, avec un contrôleur KS0108.Vous avez besoin d'un contrôleur très basique car vous ferez des tâches très simples. Vous pouvez utiliser un microcontrôleur PIC bon marché.
Étapes de conception
Gérez la conduite de votre écran LCD. Écrivez quelques chiffres dessus. Écrivez une interface logicielle pour cela.
Suivez les mêmes étapes que vous avez faites avec l'écran LCD. Assurez-vous que vous avez le contrôle logiciel sur votre clavier.
Si vous utilisez un microcontrôleur qui peut se multiplier et se diviser, vous n'avez pas besoin de faire ces opérations vous-même; mais vous devez payer plus pour le microcontrôleur, d'autre part, vous apprenez moins et gagnez moins d'expérience pendant votre projet.
Si vous souhaitez ajouter des fonctionnalités arithmétiques plus avancées (comme l'enracinement carré, le calcul sinus / cosinus, etc.), vous devez implémenter des algorithmes de calcul pertinents à l'aide de la méthode de Newton ou de l' expansion de la série Taylor .
Sinon, ce sera un projet simple. Votre principal défi sera de conduire votre écran LCD et votre clavier, si vous n'avez pas beaucoup d'expérience auparavant.
la source
La façon la plus simple d'implémenter une calculatrice serait probablement d'utiliser un microcontrôleur. Si vous décidez de suivre cette voie, la première étape serait de trouver un code pour effectuer le calcul. Vous avez besoin d'un programme qui accepte les opérandes et les opérateurs et crache le résultat. Ce module de calcul relativement simple écrit en cdevrait vous donner une idée de ce qui est nécessaire. Il peut ajouter, soustraire, multiplier et diviser ainsi que certaines opérations au niveau du bit et, si vous utilisez la notation polonaise inversée comme dans les calculatrices scientifiques, il peut résoudre des sous-expressions entre parenthèses. Ainsi, vous lirez quels boutons ont été enfoncés, collectez chaque "jeton" dans un tampon convertissant tous les chiffres en valeurs numériques réelles, puis lorsque vous obtenez le bouton "=", vous alimentez la liste des jetons en ce code d'évaluation qui réduit et résout le expression résultant en une seule valeur.
la source
Pour les débutants, voici ma nomenclature suggérée pour votre projet:
HD44780
LCD à base 1x , comme les 16x2 omniprésentsCela permettra de construire une calculatrice de base.
À des fins plus avancées, voici ma nomenclature suggérée:
ST7920
LCD à matrice 1x , qui prend en charge les caractères et les graphiquesCela vous permettra de construire une calculatrice graphique élaborée comme celles de la série TI-83 Plus ou TI-nSpire.
la source