Índice:

Solucionador de equação quadrática de 2 botões: 5 etapas
Solucionador de equação quadrática de 2 botões: 5 etapas

Vídeo: Solucionador de equação quadrática de 2 botões: 5 etapas

Vídeo: Solucionador de equação quadrática de 2 botões: 5 etapas
Vídeo: SISTEMA DE EQUAÇÕES (Substituição e Adição) - Prof. Robson Liers - Mathematicamente 2024, Julho
Anonim
Image
Image

Introdução

bem-vindo ao meu primeiro instrutível!

Comecei este projeto para ampliar meus conhecimentos de programação. Freqüentemente, você apenas mescla códigos-fonte diferentes para criar o programa de que precisa. Meu objetivo era escrever meu próprio código de programa para interagir com uma ferramenta. Gostei de criar uma ferramenta simples de cálculo. Há alguns meses, apoiei um amigo para resolver a equação quadrática.

Bazinga! este é o caso de uso!

Reutilizei uma velha caixa de metal. Eu preferia a aparência minimalista e a interface das ferramentas. é por isso que quero usar apenas 2 botões para dar entrada. O contend será mostrado por um display LCD simples.

Suprimentos

lista de materiais:

caixa

2 botões estilo Arcade

Arduino Nano ou similar

Display LCD 1602 com adaptador I2C

interruptor liga / desliga

fios

2 resistor de 10k Ohm

bloco de bateria 9v

conector para bateria 9v

tábua de pão

diversos (pedaço de madeira, ângulo de metal, abraçadeiras, parafuso, arruelas)

Ferramentas:

Serra

ferro de solda

furadeira

computador para programação

Etapa 1: Backround matemático

Programas
Programas

Backround matemático

A equação quadrática de 2 botões mostra os valores onde a função quadrática cruza o eixo X. Uma função quadrática pode cruzar o eixo X nunca, uma ou duas vezes.

Existem diferentes maneiras de calcular esses valores. Para minha ferramenta, uso a fórmula PQ (não tenho certeza se essa expressão será usada em todo o mundo).

Uma equação quadrática tem a forma:

ax² + bx + c = 0

Para calcular os pontos de cruzamento, divida a forma por a x² + px + q = 0 com p = b / a; q = c / a

a Fórmula PQ:

x1 = -p / 2 + sqrt ((p / 2) ²-q)

x2 = -p / 2 - sqrt ((p / 2) ²-q)

O resultado x pode obter 0, 1 ou 2 valores. Isso depende do valor sob a raiz quadrada.

Se o valor for> 0, então a Fórmula PQ tem duas soluções.

É o valor = 0, então a Fórmula PQ tem uma solução

é o valor <0, então a Fórmula PQ não tem solução. A função não cruza o eixo X.

Etapa 2: Software

Programas

Para programação usei o IDE oficial do Arduino. Meu objetivo era criar meu próprio programa de software. Minha interface deve ter dois botões. Um botão para alternar entre os diferentes níveis, o segundo botão para alterar os valores nos diferentes níveis.

Para resolver a Fórmula PQ, crio a estrutura acima:

Com certeza, não reinvento a roda. Para criar o código, usei o módulo:

- debounce

- exibição

Os seguintes pontos foram os maiores desafios:

- Como posso escolher o sinal? Resolvi esse desafio com o módulo de função (link). O código divide a entrada por 2. A entrada é um número ímpar, o valor torna-se negativo, caso contrário, o número é positivo.

- Depois de percorrer todos os níveis, devo declarar todos os valores como 0.

- O texto exibido apenas apaga os caracteres enviados. Se os códigos enviarem uma palavra com 4 caracteres, apenas esses 4 caracteres serão recarregados. Se a palavra anterior tinha mais caracteres, os caracteres permanecerão. Para corrigir isso, o texto exibido será preenchido com espaços em branco. Todos os 16 caracteres em uma linha serão recarregados.

O código final está anexado.

Etapa 3: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Hardware

As peças estão listadas acima. Para este projeto, o hardware é simples. Eu só preciso de um microprocessador Arduino, 2 botões e um display. Ok, se você gosta de colocar em uma caixa, você precisa de uma caixa e fonte de alimentação também.

Eu reutilizo uma velha caixa de metal. Eu fiz um furo no botão para ligar o interruptor de alimentação. A tampa da caixa tem 3 furos. Eu fiz dois furos para os botões grandes e cortei uma janela para a tela. Coloco um pequeno pedaço de madeira atrás da tampa para ter mais coisas para consertar a tela e os botões. Para atualizar o visual a caixa ganhou adesivos.

Para fonte de alimentação, eu recomendo baterias de bloco recarregáveis de 9V. Eu conecto a bateria através do botão liga / desliga ao Arduino. A bateria é fixada na caixa com um pequeno ângulo de metal. O conector da bateria é fixado apenas por braçadeiras.

O microprocessador é um clone de um Arduino nano. Para este caso de uso, o desempenho é suficiente. Um Attiny 85, por exemplo, um microprocessador Digispark, foi rejeitado. O Arduino é "breadboard" próximo ao display.

O display é um display 1602 LCD. você pode usar 16 caracteres em duas linhas. Você pode encontrar esta exibição em muitas máquinas e ferramentas diferentes. Existem duas maneiras diferentes de usar esta tela. Você pode conectar o display diretamente ao controlador ou pode usar um add-on para comunicar-se com o display via I2C. I2C é um protocolo padrão. Usei, porque é mais fácil conectar o display ao controlador. Você só precisa de 4 cabos em vez de 16, VCC para 5V, GND para GND, SDA para A4, SCL para A5. A tela é fixada por parafusos na tampa da caixa.

Os botões são enormes! eles têm o estilo de jogo típico de arcade. Eu gosto disso! Os botões são conectados aos pinos digitais 4 e 7. Não se esqueça dos resistores de 10K!

Para abrir a tampa, por exemplo, para trocar a bateria, usei cabos mais longos conectados à placa de ensaio.

Etapa 4: Fiação

Fiação
Fiação

Etapa 5: Melhoria Futura

Melhoria Futura

Depois de terminar um projeto, você sempre encontra bugs ou recursos para melhorias. Neste projeto, fico feliz em apenas encontrar alguns pontos, que gostaria de melhorar para o futuro.

Da próxima vez, gostaria de melhorar a exploração na caixa. Consertei a tela, o botão liga / desliga e os botões no início deste projeto. No final, tive um pouco de dificuldade para encontrar espaço suficiente para a bateria e o microprocessador na caixa. Quando colocasse o botão e o display mais para fora, não teria nenhum problema com o espaço para as peças dentro da caixa.

No momento, não tenho um caso de uso para resolver equações quadráticas. Para melhorar a ferramenta, gostaria de expandir a ferramenta com mais coisas matemáticas, por exemplo cálculos básicos ou fórmulas como fórmula binominal ou frase de Pitágoras.

Recomendado: