Eu sou um novato em eletrônica. Estou tentando construir uma calculadora do zero como um projeto simples e um passatempo paralelo para me manter ocupado.
Meu objetivo é construir uma calculadora simples, não científica ou gráfica, embora eu também não me importe em receber informações sobre como fazer isso, apenas para brincadeiras.
Existe um bom tutorial para isso? Como devo começar?
calculator
Philoxopher
fonte
fonte
Respostas:
Aqui está um exemplo de calculadora que você pode construir sem muito conhecimento em eletrônica. É cheio de recursos, embora a adição não esteja incluída.
fonte
Esse não é um projeto trivial. Existem muitos subprojetos educacionais com os quais se preocupar. Um deles é botões e rebotes. Outro é escrever caracteres em um display. Existe a decisão de como você deseja implementar isso. Você está interessado em fazê-lo a partir de uma grande caixa de portas nand ou deseja pegar um microcontrolador ou outro processador e escrever software? Você está interessado em usar um FPGA e fazer toda a matemática em RTL? Você precisa dividir o problema nesses componentes e trabalhar / aprender um componente de cada vez e depois juntá-los. Por exemplo, se o mecanismo matemático principal é realmente um software em um microcontrolador, uma tarefa incluiria escrever algumas funções C no seu computador desktop, para que você possa pressionar as teclas e caracteres de saída que serão exibidos no monitor. Uma tarefa não trivial, se você nunca programou antes.
Como um projeto educacional, o que eu faria é obter alguns blocos de ativação do msp430, menos de 5 dólares cada ou a descoberta da linha de valor STM32 (o stm32 / arm baseado um não o outro) por cerca de 12 dólares cada. Várias pessoas o guiarão em direção ao arduino, e essa é uma boa plataforma também, tem seus prós e contras, eu não o acompanharia como meu primeiro microcontrolador. Compre um painel LCD simples de duas linhas, o terra lcd costumava ser um bom lugar, talvez apenas vá ao sparkfun. Pegue uma placa de microcontrolador e conecte-a ao painel lcd e aprenda a colocar caracteres no visor. Eu aprenderia como usar o uart no microcontrolador, que geralmente começa com a saída de bytes e, posteriormente, recebendo e ecoando. Use o receptor uart para receber itens para colocar no visor e, em seguida, use um terminal estúpido (massa, hipertermia, minicom) de um material de alimentação do computador e verifique se ele funciona. Em seguida, pegue outro microcontrolador, use sua experiência de entrada e saída de uart e trabalhe no mecanismo matemático básico. No computador, alimente-o 0 - 9, +, -, = primeiro e depois adicione multiplicar e dividir e, em seguida, ponto flutuante, se você for corajoso o suficiente para isso (ou tenha uma biblioteca adequada). A saída do módulo matemático ecoaria os números de entrada e imprimiria os resultados quando = for enviado, etc. Em seguida, descubra o que fazer com os botões, encontre uma matriz de botões, alimente-os de alguma forma no terceiro microcontrolador, renuncie e faça com que se transformem em uart de 0 - 9, +, -, = para o microcontrolador matemático. ENTÃO, reduza tudo isso em um único microcontrolador sem o material de uart no meio. use sua experiência de uart in e out e trabalhe no mecanismo matemático básico; no computador, alimente-o 0 - 9, +, -, = primeiro e depois adicione multiplicar e dividir e, em seguida, ponto flutuante, se você for corajoso o suficiente para isso (ou tiver uma biblioteca que se encaixa). A saída do módulo matemático ecoaria os números de entrada e imprimiria os resultados quando = for enviado, etc. Em seguida, descubra o que fazer com os botões, encontre uma matriz de botões, alimente-os de alguma forma no terceiro microcontrolador, renuncie e faça com que se transformem em uart de 0 - 9, +, -, = para o microcontrolador matemático. ENTÃO, reduza tudo isso em um único microcontrolador sem o material de uart no meio. use sua experiência de uart in e out e trabalhe no mecanismo matemático básico; no computador, alimente-o 0 - 9, +, -, = primeiro e depois adicione multiplicar e dividir e, em seguida, ponto flutuante, se você for corajoso o suficiente para isso (ou tiver uma biblioteca que se encaixa). A saída do módulo matemático ecoaria os números de entrada e imprimiria os resultados quando = for enviado, etc. Em seguida, descubra o que fazer com os botões, encontre uma matriz de botões, alimente-os de alguma forma no terceiro microcontrolador, renuncie e faça com que se transformem em uart de 0 - 9, +, -, = para o microcontrolador matemático. ENTÃO, reduza tudo isso em um único microcontrolador sem o material de uart no meio. A saída do módulo matemático ecoaria os números de entrada e imprimiria os resultados quando = for enviado, etc. Em seguida, descubra o que fazer com os botões, encontre uma matriz de botões, alimente-os de alguma forma no terceiro microcontrolador, renuncie e faça com que se transformem em uart de 0 - 9, +, -, = para o microcontrolador matemático. ENTÃO, reduza tudo isso em um único microcontrolador sem o material de uart no meio. A saída do módulo matemático ecoaria os números de entrada e imprimiria os resultados quando = for enviado, etc. Em seguida, descubra o que fazer com os botões, encontre uma matriz de botões, alimente-os de alguma forma no terceiro microcontrolador, renuncie e faça com que se transformem em uart de 0 - 9, +, -, = para o microcontrolador matemático. ENTÃO, reduza tudo isso em um único microcontrolador sem o material de uart no meio.
Outra alternativa é obter uma das placas rs-232 fpga do knjn.com ou a malha brevia (isso é grande o suficiente?) Ou várias outras e trabalhar em cada um dos blocos funcionais usando uma linguagem RTL. partes serão muito mais fáceis do que a solução de software equivalente; algumas partes serão um pouco mais difíceis do que uma solução de software.
Se você pode fornecer mais informações sobre o que está pensando, uma caixa de soluções baseadas em nand gates ou microcontroladores ou estava pensando em outra coisa?
fonte
A calculadora eletrônica mais simples que você poderia construir seria uma calculadora binária de quatro funções. Você pode construí-lo usando switches para inserir números binários, e os elementos lógicos básicos da família 7400 podem lidar com os somadores que lidam com a adição. Você pode usar LEDs individuais para representar cada número binário na saída ou usar vários displays de sete segmentos para exibir o número em hexadecimal. Construir uma calculadora binária permitiria evitar a construção de um conversor de decimal para binário e ajudaria você a se familiarizar com o funcionamento da eletrônica digital. Se você planeja entrar na eletrônica digital como hobby, considere adquirir o Logisim , um programa gratuito que permite simular seus circuitos antes de construí-los.
fonte
Aqui está como eu fiz isso.
Escolha componentes:
Input Device
(Teclado 4x4 no meu caso. 10 teclas para números, 4 para operadores, uma para '=' e uma para 'redefinir / atualizar')Processor
(AVR de 8 bits)Output device
(LCD 16x2)Power supply
(Regulador LM7805 com bateria de 9 volts)BreadBoard
(faça o PCB depois que ele começar a funcionar)Eu escolhi programar em assembléia (para aprender), questão de escolha pessoal. Usei o AVR Studio 4 como IDE e um programador 'ISP' baseado em lpt caseiro para exibir hexadecimal no AVR.
então eu escrevi drivers para LCD e teclado. Quando consegui captar e produzir resultados, comecei a analisar números e operadores decimais, depois analisei expressões e li sobre os métodos Infix, Postfix e Prefix . Fiz meu trabalho em montagem para que não houvesse 'suporte de tipo de dados FLOAT' e acabei implementando meu tipo de dados personalizado (tipo de dados baseado em BCD para manter a precisão decimal de 15 dígitos; era um grande desperdício de RAM!).
Tudo isso feito e Voila ... minha calculadora estava pronta (eu chamei de BUB!).
A mina rodava a 1MHz e era capaz de superar o casio_991MS (em termos de precisão decimal, multiplicação e divisão).
Espero que isso ajude outros.
fonte
Você pode usar um kit de desenvolvimento com tudo o que já está no quadro para permitir que você se concentre no software. Por exemplo http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en024858&part=DM240001 este kit possui PIC, LCD e poucos botões. Existem muitos cabeçalhos para adicionar botões adicionais. A única desvantagem é que o LCD é maior do que você pode querer usar inicialmente, mas certamente o ajudará a começar.
Se você pesquisar, poderá encontrar outros menores (e mais baratos) nos quais poderá começar.
O uso de um kit como esse facilitará o início da gravação do seu código, pois serão alguns exemplos e remove o problema de problemas de hardware, pois tudo está configurado corretamente. Outra desvantagem é que este kit usa as fotos de ponta que são um exagero para um projeto de calculadora, mas fornece espaço para você crescer e modificá-lo no futuro para realizar outras tarefas. Também fornecerá esquemas para usar como ponto de partida para criar suas próprias placas no futuro.
fonte
Na minha estante, tenho "Calculadoras Eletrônicas", de H. Edward Roberts, editado por Forrest M. Mims III. 1974.
É bastante educativo sobre como as pessoas costumavam construir calculadoras em 1974. Muitas fotos são do ciclo de vida completo de uma calculadora MITS produzida em massa - fotos da prototipagem (uma grande confusão de fios de espaguete), o design da PCB (colocando Rubylith no uma tabela de desenho), peças individuais, linha de montagem, máquina de solda por onda e solução de problemas.
Ah, muitas coisas mudaram desde então. Os livros de hoje geralmente evitam mostrar grandes bagunças de espaguete. As calculadoras de hoje evitam aplicar tensão de rede diretamente ao PCB da calculadora.
Muitas coisas ainda são as mesmas. As pessoas ainda costumam fazer uma grande bagunça de espaguete enquanto prototipam.
fonte
Bem, para iniciantes, você deve pensar nos principais componentes que você precisará. Você provavelmente precisará de um microcontrolador, um teclado e uma tela LCD. Depois de escolher esses componentes, deve ser tão simples quanto desenvolver o firmware.
fonte
Acredito que esse pode ser um bom primeiro projeto de aprendizado, mas não é trivial e você terá que aprender um pouco ao longo do caminho, além de ser paciente, pois o projeto inclui vários subprojetos para enfrentar ao longo do processo. caminho.
O primeiro obstáculo de design que você precisa decidir é em que nível de tecnologia você deseja fazer isso? Com ou sem um microcontrolador (um microprocessador amplamente auto-suficiente), lógica discreta (por exemplo, AND, OR, portas NOR e flip-flops) com / sem unidades aritméticas (ALU), lógica programável (CPLD, FPGA), outra coisa que eu não tenho não foi mencionado ou considerado. Isso deve ser o primeiro sobre a tecnologia usada para fazer os cálculos; os controles de entrada / saída são decisões secundárias (displays de sete segmentos de LED, painel LCD), principalmente influenciados pela estética ou pelo custo.
Um ponto de partida potencialmente útil para aprender sobre computação digital é o livro muito acessível, How Computers Do Math (ISBN: 0471732788), do peculiar Clive Maxfield. Isso está escrito no nível lógico ou de programação "soft", que você precisará entender para realmente fazer os cálculos.
Outra pessoa mencionou o projeto uWatch (- micro-Watch ) como exemplo, e há referências na Internet a engenheiros elétricos (ou estudantes de EE) que construíram sua própria calculadora na década de 1970. Existem também alguns detalhes sobre a construção de uma calculadora baseada em FPGA (dispositivo lógico programável) .
Para um iniciante em eletrônica (ou eletrônica digital), sugiro o uso de um microcontrolador como ponto de partida em seu design, consulte o site do livro mencionado para conhecer a complexidade da programação (não muito, se você tiver alguma experiência em programação) para o microcontrolador e vá de lá.
fonte
O designer do VisualTFT possui uma calculadora simples da tela de toque como um de seus exemplos. Esse software gera código para os compiladores Mikroelektronika Pascal, Basic e C para microcontroladores AVR, PIC, ARM e 8051.
fonte
Requisitos de hardware
em um produto calculadora real, você precisa de um LCD personalizado para exibir caracteres especiais como o
=
,-
eM
(para MC , MR e MS sinais operações). Um design de LCD personalizado custa até US $ 3.000, mas os LCDs personalizados tornam-se mais econômicos que os outros de uso geral. Como seu projeto é apenas um hobby, sugiro que você use um LCD de uso geral, com um controlador KS0108.Você precisa de um controlador muito básico, pois estará executando tarefas muito simples. Você pode usar um microcontrolador PIC barato.
Etapas do projeto
Gerencie a condução do seu LCD. Escreva alguns dígitos nele. Escreva uma interface de software para ele.
Execute as mesmas etapas que você fez com o LCD. Verifique se você tem controle de software no teclado.
Se você usa um microcontrolador que pode se multiplicar e dividir, não precisa fazer isso sozinho; mas você precisa pagar mais pelo microcontrolador, por outro lado, aprende menos e ganha menos experiência durante o seu projeto.
Se você deseja adicionar recursos aritméticos mais avançados (como enraizamento quadrado, cálculo seno / cosseno, etc.), é necessário implementar algoritmos de cálculo relevantes usando o Método de Newton ou a Expansão da Série Taylor .
Caso contrário, será um projeto simples. Seu principal desafio será dirigir o LCD e o teclado, se você não tiver muita experiência antes.
fonte
A maneira mais fácil de implementar uma calculadora provavelmente seria usar um microcontrolador. Se você decidir seguir esse caminho, o primeiro passo seria encontrar algum código para realmente fazer o cálculo. Você precisa de um programa que aceite operandos e operadores e divulgue o resultado. Este módulo de calculadora relativamente simples, escrito em cdeve dar uma idéia do que é necessário. Ele pode adicionar, subtrair, multiplicar e dividir, além de algumas operações bit a bit e, se você usar a notação polonesa reversa como nas calculadoras científicas, poderá resolver subexpressões entre parênteses. Para ler os botões pressionados, coletar cada "token" em um buffer, convertendo qualquer dígito em valores numéricos reais e, quando você obtiver o botão "=", alimentará a lista de tokens para esse código de avaliação que reduz e resolve o problema. expressão resultando em um único valor.
fonte
Para iniciantes, aqui está minha lista técnica sugerida para o seu projeto:
HD44780
LCD baseado em 1x , como os onipresentes 16x2Isso permitirá que uma calculadora básica seja construída.
Para propósitos mais avançados, aqui está minha lista técnica sugerida:
ST7920
LCD de matriz baseado em 1x , que suporta caracteres e gráficosIsso permitirá que você crie uma calculadora gráfica elaborada, como as séries TI-83 Plus ou TI-nSpire.
fonte