Soy un novato en electrónica. Estoy tratando de construir una calculadora desde cero como un proyecto simple y un pasatiempo para mantenerme ocupado.
Mi objetivo es construir una calculadora simple, no una calculadora científica o gráfica, aunque tampoco me importa recibir información sobre cómo hacerlo, solo por diversión.
¿Hay un buen tutorial para esto? ¿Cómo debo comenzar?
calculator
Philoxopher
fuente
fuente
Respuestas:
Aquí hay un ejemplo de una calculadora que puede construir sin demasiados conocimientos de electrónica. Tiene todas las funciones, aunque la adición no está incluida.
fuente
Ese no es un proyecto trivial. Hay muchos subproyectos educativos de los que preocuparse. Uno es botones y rebote. Otro es escribir caracteres en una pantalla. Existe la decisión de cómo desea implementar esto, ¿está interesado en hacerlo desde una gran caja de puertas nand o si desea tomar un microcontrolador u otro procesador y escribir software? ¿Estás interesado en usar un fpga y hacer todas las matemáticas en RTL? Debe dividir el problema en esos componentes y trabajar / aprender un componente a la vez y luego unirlos. Por ejemplo, si el motor matemático central es en realidad un software en un microcontrolador, una tarea incluiría escribir algunas funciones C en su computadora de escritorio para que pueda alimentar pulsaciones de teclas y caracteres de salida que finalmente irán a la pantalla. Una tarea no trivial si nunca ha programado antes.
Como proyecto educativo, lo que haría es obtener unos cuantos lanzadores msp430, menos de 5 dólares cada uno o el descubrimiento de la línea de valor STM32 (el stm32 / arm one uno no el otro) por alrededor de 12 dólares cada uno. Varias personas lo conducirán hacia el arduino, y esa también es una buena plataforma, tiene sus pros y sus contras, no iría con ella como mi primer microcontrolador. Compre un panel lcd simple de dos líneas, la tierra lcd solía ser un buen lugar, tal vez solo vaya a sparkfun. Tome una placa de microcontrolador y conéctela al panel LCD y aprenda a colocar caracteres en la pantalla. Luego aprendería cómo usar el uart en el microcontrolador, que a menudo comienza con la voladura de bytes, luego recibe y hace eco. Use el receptor uart para recibir cosas para poner en la pantalla y luego use un terminal tonto (masilla, hiperterma, minicom) desde una computadora que introduce cosas y asegúrese de que funcione. Luego tome otro microcontrolador, use su experiencia de entrada y salida de uart y trabaje en el motor matemático central, desde su computadora alimente 0 - 9, +, -, = al principio, luego agregue multiplicar y dividir y luego coma flotante si es lo suficientemente valiente para eso (o tener una biblioteca que se ajuste). La salida del módulo matemático haría eco de los números de entrada e imprimirá los resultados cuando = se envíe, etc. Luego, descubra qué hacer con los botones, encuentre una matriz de botones, alimente de alguna manera esos en el tercer microcontrolador, elimine el rebote y haga que se convierta en uart fuera de 0 - 9, +, -, = al microcontrolador matemático. ENTONCES, reduzca todo esto en un solo microcontrolador sin las cosas uart en el medio. use su experiencia de entrada y salida de uart y trabaje en el motor matemático central, desde su computadora alimente 0 - 9, +, -, = al principio, luego agregue multiplicar y dividir y luego coma flotante si es lo suficientemente valiente para eso (o tiene una biblioteca que se ajuste) La salida del módulo matemático haría eco de los números de entrada e imprimirá los resultados cuando = se envíe, etc. Luego, descubra qué hacer con los botones, encuentre una matriz de botones, alimente de alguna manera esos en el tercer microcontrolador, elimine el rebote y haga que se convierta en uart fuera de 0 - 9, +, -, = al microcontrolador matemático. ENTONCES, reduzca todo esto en un solo microcontrolador sin las cosas uart en el medio. use su experiencia de entrada y salida de uart y trabaje en el motor matemático central, desde su computadora alimente 0 - 9, +, -, = al principio, luego agregue multiplicar y dividir y luego coma flotante si es lo suficientemente valiente para eso (o tiene una biblioteca que se ajuste) La salida del módulo matemático haría eco de los números de entrada e imprimirá los resultados cuando = se envíe, etc. Luego, descubra qué hacer con los botones, encuentre una matriz de botones, alimente de alguna manera esos en el tercer microcontrolador, elimine el rebote y haga que se convierta en uart fuera de 0 - 9, +, -, = al microcontrolador matemático. ENTONCES, reduzca todo esto en un solo microcontrolador sin las cosas uart en el medio. La salida del módulo matemático haría eco de los números de entrada e imprimirá los resultados cuando = se envíe, etc. Luego, descubra qué hacer con los botones, encuentre una matriz de botones, alimente de alguna manera esos en el tercer microcontrolador, elimine el rebote y haga que se convierta en uart fuera de 0 - 9, +, -, = al microcontrolador matemático. ENTONCES, reduzca todo esto en un solo microcontrolador sin las cosas uart en el medio. La salida del módulo matemático haría eco de los números de entrada e imprimirá los resultados cuando = se envíe, etc. Luego, descubra qué hacer con los botones, encuentre una matriz de botones, alimente de alguna manera esos en el tercer microcontrolador, elimine el rebote y haga que se convierta en uart fuera de 0 - 9, +, -, = al microcontrolador matemático. ENTONCES, reduzca todo esto en un solo microcontrolador sin las cosas uart en el medio.
Otra alternativa es obtener uno de los tableros rs-232 fpga de knjn.com o el enrejado brevia (¿es lo suficientemente grande?) O varios otros, luego trabajar en cada uno de los bloques funcionales usando un lenguaje RTL. partes de ella serán mucho más fáciles que la solución de software equivalente, algunas partes serán un poco más difíciles que una solución de software.
Si puede proporcionar más información sobre lo que está pensando, una caja de compuertas nand o una solución basada en microcontrolador o ¿estaba pensando en otra cosa?
fuente
La calculadora electrónica más simple que podría construir sería una calculadora binaria de cuatro funciones. Puede construirlo usando interruptores para ingresar números binarios, y los elementos lógicos básicos de la familia 7400 podrían manejar los sumadores que manejarían la suma. Puede usar LED individuales para representar cada número binario en la salida, o puede usar varias pantallas de siete segmentos para mostrar el número en hexadecimal. Construir una calculadora binaria le permitiría evitar construir un convertidor decimal a binario y le ayudaría a familiarizarse con el funcionamiento de la electrónica digital. Si planea ingresar a la electrónica digital como un pasatiempo, puede considerar adquirir Logisim , un programa gratuito que le permite simular sus circuitos antes de construirlos.
fuente
Así es como lo hice.
Elige componentes:
Input Device
(Teclado 4x4 en mi caso. 10 teclas para números, 4 para operadores, una para '=' y una para 'restablecer / actualizar')Processor
(AVR de 8 bits)Output device
(LCD 16x2)Power supply
(Regulador LM7805 con batería de 9 voltios)BreadBoard
(hacer PCB después de que comience a funcionar)Elegí programar en asamblea (para aprender), cuestión de elección personal. Usé AVR Studio 4 como IDE y un programador 'ISP' basado en lpt casero para flashear hexadecimal en AVR.
Luego escribí controladores para LCD y teclado. Cuando pude tomar entrada y producir salida, comencé a analizar en números decimales y operadores, luego analicé expresiones y leí sobre los métodos Infix, Postfix y Prefix . Hice mi trabajo en el ensamblaje, por lo que no había 'soporte de tipo de datos FLOAT' y terminé implementando mi tipo de datos personalizado (¡el tipo de datos basado en BCD para mantener una precisión decimal de 15 dígitos fue un gran desperdicio de RAM!).
Todo esto hecho y listo ... mi calculadora estaba lista (¡la llamé BUB!).
La mía corrió a 1MHz y fue capaz de vencer a casio_991MS (en términos de precisión decimal y multiplicación y división).
Espero que esto ayude a otros.
fuente
Podrías usar un kit de desarrollo con todo lo que ya está en el tablero para que puedas concentrarte en el software. Por ejemplo, http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en024858&part=DM240001 este kit tiene PIC, LCD y algunos botones. Hay muchos encabezados para agregar botones adicionales. El único inconveniente es que la pantalla LCD es más grande de lo que es posible que desee usar inicialmente, pero sin duda lo ayudará a comenzar.
Si busca a su alrededor, puede encontrar pequeños (y más baratos) en los que puede comenzar.
El uso de un kit como este hará que sea más fácil comenzar a escribir su código, ya que serán algunos ejemplos y eliminará la cuestión de los problemas de hardware, ya que todo está configurado correctamente. Otro inconveniente es que este kit utiliza las imágenes de gama alta, que es excesivo para un proyecto de calculadora, pero le da espacio para crecer y modificarlo en el futuro para realizar otras tareas. También le dará esquemas para usar como punto de partida para hacer sus propios tableros en el futuro.
fuente
En mi estante tengo "Calculadoras electrónicas" de H. Edward Roberts, editado por Forrest M. Mims III. 1974.
Es bastante educativo acerca de cómo las personas solían construir calculadoras en 1974. Muchas fotos son del ciclo de vida completo de una calculadora MITS producida en masa: fotos de la creación de prototipos (un gran desorden de cables de espagueti), el diseño de PCB (colocando Rubylith en una mesa de dibujo), piezas individuales, línea de montaje, máquina de soldadura por ola y solución de problemas.
Ah, muchas cosas han cambiado desde entonces. Los libros de hoy por lo general evitan mostrar grandes líos de espagueti. Las calculadoras de hoy evitan aplicar voltaje de red directamente a la PCB de la calculadora.
Muchas cosas siguen igual. La gente aún suele hacer un gran lío de espaguetis con los cables mientras realiza prototipos.
fuente
Bueno, para empezar, debes pensar en los componentes principales que vas a necesitar. Probablemente necesitará un microcontrolador, un teclado y una pantalla LCD. Una vez que elija esos componentes, debería ser tan simple como desarrollar el firmware.
fuente
Creo que este puede ser un buen primer proyecto de aprendizaje, pero no es trivial, y tendrás que aprender bastante en el camino, así como ser paciente ya que el proyecto incluye una gran cantidad de subproyectos para abordar camino.
El primer obstáculo de diseño que debe decidir es en qué nivel de tecnología desea hacer esto. Con o sin un microcontrolador (un microprocesador en gran medida autosuficiente), lógica discreta (por ejemplo, compuertas AND, OR, NOR y flip-flops) con / sin unidades aritméticas (ALU), lógica programable (CPLD, FPGA), algo más que no tengo No mencionado o considerado. Esto debería ser primero acerca de la tecnología utilizada para hacer los cálculos, los controles de entrada / salida son decisiones secundarias (pantallas LED de siete segmentos, panel LCD) influenciadas principalmente por la estética o el costo.
Un punto de partida potencialmente útil para aprender sobre computación digital es el libro muy accesible How Computers Do Math (ISBN: 0471732788) del peculiar Clive Maxfield. Esto está escrito en el nivel "lógico" de programación o lógico, que deberá comprender para hacer los cálculos.
Alguien más mencionó el proyecto uWatch (- micro-Watch ) como un ejemplo, y hay referencias en Internet a ingenieros eléctricos (o estudiantes de EE) que construyeron su propia calculadora en la década de 1970. También hay algunos detalles sobre la construcción de una calculadora basada en FPGA (dispositivo lógico programable) .
Para un novato total en electrónica (o electrónica digital) sugeriría usar un micrcontrolador como punto de partida en su diseño, revise el sitio web del libro mencionado para tener una idea de la complejidad en la programación (no mucho si tiene alguna experiencia en programación) para el microcontrolador e ir desde allí.
fuente
El diseñador VisualTFT tiene una calculadora de pantalla táctil simple como uno de sus ejemplos. Ese software genera código para los compiladores Mikroelektronika Pascal, Basic y C para microcontroladores AVR, PIC, ARM y 8051.
fuente
Requisitos de hardware
en un producto calculadora real, se necesita un LCD personalizada para mostrar caracteres especiales como el
=
,-
yM
(por MC , MR y MS signos operaciones). Un diseño de LCD personalizado cuesta hasta 3000 $, pero luego los LCD de diseño personalizado se vuelven más económicos que los otros de uso general. Dado que su proyecto es solo para hobby, le sugiero que use una pantalla LCD de uso general, con un controlador KS0108.Necesita un controlador muy básico ya que realizará tareas muy simples. Puede usar un microcontrolador PIC barato.
Pasos de diseño
Administre la conducción de su LCD. Escribe algunos dígitos en él. Escriba una interfaz de software para ello.
Realice los mismos pasos que hizo con la pantalla LCD. Asegúrese de tener control de software en su teclado.
Si utiliza un microcontrolador que puede multiplicarse y dividirse, no necesita realizar esas operaciones usted mismo; pero tiene que pagar más por el microcontrolador, por otro lado, aprende menos y gana menos experiencia durante su proyecto.
Si desea agregar características aritméticas más avanzadas (como el enraizamiento cuadrado, el cálculo seno / coseno, etc.) debe implementar algoritmos de cálculo relevantes utilizando el Método de Newton o la Expansión de la Serie Taylor .
De lo contrario, será un proyecto simple. Su principal desafío será manejar su LCD y teclado, si no tiene mucha experiencia con antes.
fuente
La forma más fácil de implementar una calculadora probablemente sería usar un microcontrolador. Si decide seguir esa ruta, el primer paso sería encontrar un código para hacer el cálculo. Necesita un programa que acepte los operandos y operadores y escupe el resultado. Este módulo de calculadora relativamente simple escrito en cdebería darle una idea de lo que es necesario. Puede sumar, restar, multiplicar y dividir, así como algunas operaciones bit a bit y, si usa la notación polaca inversa como en las calculadoras científicas, puede resolver subexpresiones entre paréntesis. Entonces, debería leer qué botones se presionaron, recopilar cada "token" en un búfer convirtiendo cualquier dígito en valores numéricos reales y luego, cuando obtiene el botón "=", alimenta la lista de tokens a este código de evaluación que reduce y resuelve el expresión que resulta en un solo valor.
fuente
Para principiantes, aquí está mi lista de materiales sugerida para su proyecto:
HD44780
LCD basado en 1x , como los omnipresentes 16x2Esto permitirá construir una calculadora básica.
Para propósitos más avanzados, aquí está mi lista de materiales sugerida:
ST7920
Matriz LCD basada en 1x , que admite caracteres y gráficosEsto le permitirá construir una calculadora gráfica elaborada como las series TI-83 Plus o TI-nSpire.
fuente