Neste projeto, criamos um velocímetro legal para bicicletas ou qualquer automóvel, usando o Arduino que transmite a velocidade usando Bluetooth para um aplicativo Android que criamos usando o Processing. O projeto completo é alimentado por uma célula de lítio 18650 e, portanto, altamente portátil junto com o seu veículo. Para incrementar um pouco mais, eu adicionei a opção & nbsp; de carregar seu telefone celular, pois ele exibe sua velocidade. & nbsp; Sim, você também pode use-o como um banco de potência para seus celulares onde estiver, pois o 18650 possui alta densidade de carga e pode ser facilmente carregado e descarregado.
Vou guiá-lo completamente do zero até a conclusão. O velocímetro pode ser conectado ao nosso veículo e testado. O recurso interessante aqui é que você pode personalizar seu aplicativo Android para sua personalização e adicionar mais recursos, de acordo com sua criatividade. Mas, se você não deseja criar o aplicativo sozinho e apenas construir a parte do Arduino, não se preocupe, basta baixar o arquivo APK (leia mais) e instalar no seu telefone Android. Verifique também o vídeo completo no final.
Então, vamos ver quais materiais precisaríamos para construir este projeto e planejar nosso orçamento. Todos esses componentes estão facilmente disponíveis; se você tiver problemas para comprar um desses, entre em contato na seção de comentários.
Requisitos de hardware:
- Arduino Pro Mini (5V 16MHz)
- FTDI board (para programar mini você também pode usar o UNO)
- Conversor de impulso de 3V a 5V DC-DC com carregador de saída USB
- Módulo de bateria de lítio TP4056
- Módulo Bluetooth (HC-05 / HC-06)
- Sensor de efeito Hall (US1881 / 04E)
- 18650 Lithium Cell
- Pequeno pedaço de ímãs
- ProtoBoard
- Conectores Berg Sticks (Macho e Fêmea)
- Kit de solda
- Pequenas caixas de proteção para montar o kit.
Programming Requirements:
- Arduino IDE
- Processando o IDE com o Android ADK (apenas se você quiser codificar seu próprio aplicativo.)
- Windows/Mac PC
- Celular Android.
Pode parecer um punhado de componentes e materiais, mas confie em mim depois de concluir este projeto, você sentirá que eles valem o tempo que o esforço.
Medindo a velocidade usando o sensor Hall e o Arduino:
Antes de colocarmos as mãos no hardware, informe-nos como vamos realmente medir a velocidade usando o Arduino. Existem várias maneiras de medir a velocidade de um veículo usando o Arduino, mas usar um sensor de salão é a maneira mais econômica e fácil de fazê-lo. A & nbsp; Hall Sensor & nbsp; é um componente que detecta a polaridade de um ímã. Por exemplo, sempre que um polo específico do ímã é aproximado do sensor, ele muda de estado. Existem muitos tipos de sensores de salão disponíveis. Você pode usar qualquer um dos deste projeto, mas verifique se é um sensor de salão digital .
Para medir a velocidade, temos que prender um pequeno pedaço de ímã na roda do veículo, cada vez que o ímã cruza o sensor do salão, ele o detecta e envia as informações ao Arduino.
Uma interrupção será recebida pelo Arduino toda vez que o ímã for detectado. Executamos um timer contínuo usando a função millis() e calculamos o tempo necessário para a roda concluir duas rotações (para minimizar o erro) usando as fórmulas abaixo:
Timetaken = millis() – pevtime;
Depois de saber o tempo gasto, podemos calcular as rpm usando as fórmulas abaixo:
rpm = (1000/timetaken) * 60;
Onde (1000 / intervalo de tempo) fornece os rps (rotações por segundo) e é multiplicado por 60 para converter rps em rpm (rotações por minuto).
Depois de calcular a rotação, podemos calcular a velocidade do veículo usando as fórmulas abaixo, desde que conheçamos o raio da roda.
v= radius_of_wheel * rpm * 0.37699;
O Arduino, depois de calcular a velocidade, irá transmiti-lo usando o módulo Bluetooth. O & nbsp; código completo foi fornecido abaixo na seção Código .
Parte de esquemas e hardware:
O diagrama completo do circuito do projeto é dado abaixo:
Aqui, a parte de hardware é dividida em duas partes: uma é a placa principal que contém todos os arquivos principais. A outra placa consiste apenas de um sensor de corredor e um resistor que será montado perto da roda. Deixe-nos começar a construir o quadro principal.
Uma vez que a conexão é feita, vamos testar a configuração usando nosso 18650 bateria de lítio . A bateria de lítio é altamente explosiva por natureza, portanto, deve ser manuseada com extrema cautela. É por essa razão que usamos um Módulo de Carregamento de Bateria de Lítio TP4056 . Este módulo possui proteção contra sobrecarga / descarga e proteção contra inversão de polaridade. Portanto, a bateria pode ser facilmente carregada usando um carregador micro USB normal e pode ser descarregada com segurança até atingir os limites de corte de subtensão. Alguns detalhes importantes do módulo de carga TP4056 são fornecidos na tabela abaixo.
Parâmetros :
|
Valor por célula :
|
Corte sob tensão
|
2.4V
|
Sobre a tensão de corte
|
4.2V
|
Corrente de carregamento
|
1A
|
Protecção
|
Sobre a tensão e proteção reversa da polaridade
|
IC's presentes
|
TP4056 (carregador IC) e DW01 Protection IC
|
Indication LED’s
|
Vermelho- Carregamento em andamento
Verde – Cobrança concluída
|
Agora, vamos começar com o Hall Sensor Board. Esta placa contém apenas dois componentes: um resistor de 10K e o outro é o sensor do hall. &Nbsp; As conexões podem ser feitas conforme mostrado nos esquemas acima. Quando a placa estiver pronta, conecte-os usando fios de jumper, conforme os esquemas. Uma vez feito, deve ser algo como isto.
Outro passo crucial no projeto é conectando a bateria 18650 aos terminais B + e B- do módulo TP4056 usando um fio. Como as células Li + são explosivas, não é recomendável usar um ferro de solda sobre essas células. Embora as pessoas tenham feito isso, é altamente arriscado e pode facilmente acabar em uma grande confusão. Portanto, a maneira mais fácil de fazer isso é usar ímãs, como mostrado abaixo
Simplesmente solde o fio a um pequeno pedaço de ímã e cole os ímãs nos terminais & nbsp; da bateria (eles são atraídos pelos terminais muito bem) como mostrado acima. Você pode usar uma torneira de pato para garantir ainda mais a posição do ímã.
Programando o Arduino:
O programa para este projeto é muito simples. Nós apenas temos que calcular a velocidade da roda giratória usando as entradas de interrupção do sensor de hall e transmitir a velocidade calculada pelo ar usando o Módulo Bluetooth. O programa completo do & nbsp; é fornecido na seção Código abaixo e explicado usando as linhas de comentário.
Cada vez que o sensor do hall detecta o ímã, ele aciona uma interrupção. Essa função de interrupção é chamada pela função magnet_detect () function. & nbsp; Este é o local onde é calculada a rpm do veículo.
Uma vez calculada a rpm, a velocidade da roda é calculada na função loop() Quando o código estiver pronto, vamos despejá-lo no nosso Arduino pro mini e testar seu funcionamento, conforme mostrado no vídeo fornecido no final.
Aplicativo para Android para velocímetro:
O aplicativo Android para este projeto é feito usando o software chamado Processing. Se você não está interessado em criar seu próprio aplicativo Android e gostaria de instalar o usado aqui, pode fazer o download do arquivo APK e instalá-lo diretamente no seu smartphone, seguindo as etapas abaixo.
1. Você pode baixar diretamente o arquivo APK do link abaixo. Este arquivo APK é feito para a versão Android 4.4.2 e posterior (Kitkat acima). Extraia o arquivo APK do arquivo zip.
2. Transfira o arquivo .Apk do seu computador para o seu celular.
3. Habilite a instalação do aplicativo de fontes desconhecidas nas configurações do Android.
4. Instale o aplicativo.
Se instalado com sucesso, você encontrará o aplicativo denominado “ Processing_code ” instalado no telefone, como mostrado abaixo:
Desenvolva seu próprio aplicativo usando Processing:
Você pode usar o arquivo .APK fornecido acima ou criar seu próprio aplicativo usando o Processing, conforme explicado aqui. Você pode fazer o download de todos os Processando o código do aplicativo Android a partir daqui. O programa é auto-explicado usando as linhas de comentário. Mas se você tiver algum problema ou quiser modificar um pouco o aplicativo, use a seção de comentários e eu o ajudarei.
O programa android estabelece uma conexão com nosso módulo Bluetooth durante a inicialização do aplicativo e recebe a velocidade do veículo que foi calculada e transmitida pelo Arduino Pro mini. Criei gráficos pequenos também para exibir a velocidade usando um velocímetro analógico para torná-lo um pouco atraente. Você pode criar suas próprias idéias e ajustar o código para personalizá-lo para suas necessidades. Verifique também nossos outros Projetos de Processamento para saber mais sobre isso:
Depois de instalar o aplicativo no seu celular, é hora de testar o nosso projeto. Mas ainda não montamos nosso kit em um veículo. Vamos fazer isso.
Montagem do kit Velocímetro em um veículo:
Montei este kit no meu bi-ciclo e o testei, e funciona como um encanto. A montagem do kit é deixada para a sua criatividade. você pode obter sua própria caixinha numa loja e fazer furos para os fios e conexões e montou no seu veículo. Uma coisa importante a ser observada é que o ímã deve estar preso na borda da roda e o sensor do hall deve ser montado o mais próximo possível do ímã, para que cada vez que o ímã cruze o sensor do hall, ele possa detectá-lo , o arranjo é mostrado abaixo.
Se você decidiu usar meus arquivos de design e imprimir seus gabinetes, verifique se sua placa principal está perto das dimensões abaixo.
O completo Arquivos de design e STL para impressão 3D podem ser baixados aqui. Se a placa for semelhante à que foi criada aqui, você poderá imprimir diretamente em 3D seus gabinetes usando os arquivos STL fornecidos, ou então poderá usar os arquivos de design e modificá-los de acordo com a sua placa.
Vamos começar com o Gabinete pequeno impresso em 3D que será usado para o módulo do sensor de hall. Imprima o gabinete, coloque o circuito dentro dele e use os fios através do orifício fornecido e monte-o em seu veículo para que o sensor do hall fique próximo ao imã, conforme mostrado abaixo.
Recomenda-se modelar a placa principal antes de projetar o gabinete para que possamos garantir que ele se encaixe corretamente, porque confie em mim, seria um pesadelo quando você imprimir seu gabinete por 6 longas horas e, no final, ele não se encaixará na sua placa de desempenho. A placa modelo para minha placa principal de perf é mostrada abaixo.
Agora será fácil & nbsp; projetar a caixa principal do gabinete . Projetei a caixa principal em dois arquivos, para que uma parte da caixa retenha os componentes eletrônicos e a outra fique permanentemente fixa ao ciclo usando grampos e parafusos. Essas duas partes podem ser facilmente consertadas para formar um invólucro completo e depois serem separadas quando precisarmos recarregar nossa bateria de lítio ou trabalhar em nossos eletrônicos.
Uma vez que a primeira parte do recinto é projetada e impressa, vamos colocar todos os nossos componentes dentro como mostrado abaixo e deve ser algo como isto.
Como você pode ver, existem duas aberturas na frente da caixa, uma é usada para o USB através do qual podemos carregar nosso telefone celular. O outro é para o micro USB usando o qual podemos carregar nossa bateria de lítio.
Agora vamos imprimir a segunda parte do gabinete principal e verificar se ela se encaixa na primeira parte conforme o esperado.
Quando estivermos satisfeitos com as peças, podemos montar a segunda parte do gabinete usando uma braçadeira C e algumas porcas e parafusos, conforme mostrado abaixo:
Agora, vamos conectar a bateria ao nosso circuito principal usando ímãs e fita, conforme discutido acima, e mantê-la permanentemente segura dentro de nosso gabinete.
É isso que o nosso hardware está pronto para a montagem final. Simplesmente conecte o módulo sensor do hall com a placa principal e deslize o compartimento móvel para dentro do gabinete fixo e pronto para a ação.
Explicação de trabalho:
Depois de certificar-se de que sua bateria de lítio está carregada, basta ligar o kit usando a chave de alternância e abra o aplicativo Android. Se tudo correr bem, você deve obter a tela abaixo e mostrar que seu aplicativo está conectado ao seu módulo Bluetooth HC-05, como mostrado abaixo. Lembre-se de emparelhar o seu módulo Bluetooth com o telefone antes de abrir o aplicativo.
Agora simplesmente monte seu veículo e você deve notar o velocímetro mostrando a velocidade atual do seu veículo. Você também pode cobrar seu celular enquanto dirige usando um cabo carregador normal. Depois de terminar o seu passeio, você pode deslizar para fora da caixa do ciclo e carregá-lo de corrente alternada usando qualquer carregador móvel do telefone inteligente.
Então, como você pode não só medir a velocidade do seu veículo, mas também carregar o celular ao mesmo tempo. Espero que você tenha gostado do projeto. Você pode adicionar muito mais recursos ao aplicativo, apenas ajustando os códigos. Você pode calcular a distância percorrida pelo seu percurso, o topo e a velocidade média do seu percurso, etc. Deixe-me saber se você tem algum quires através dos comentários e eu ficarei feliz em ajudá-lo.
Código:
/*Código Arduino para medir a velocidade do veículo usando o sensor Hall
*/
*/
/*CONNECTION DETIALS
* Arduino D11 -> RX do módulo BT
* Arduino D12 -> Tx de BT
* Arduino D2 -> Pino do sensor Hall 3
*/
* Arduino D11 -> RX do módulo BT
* Arduino D12 -> Tx de BT
* Arduino D2 -> Pino do sensor Hall 3
*/
#include <SoftwareSerial.h>// importar a biblioteca serial
SoftwareSerial Cycle_BT(11, 12); // RX, TX
int ledpin=13; // led on D13 will show blink on / off
int BluetoothData; // the data given from Computer
int ledpin=13; // led on D13 will show blink on / off
int BluetoothData; // the data given from Computer
float radius_of_wheel = 0.33; //Meça o raio da sua roda e insira aqui
volatile byte rotation; //variável para interrupção divertida deve ser volátil
float timetaken,rpm,dtime;
int v;
unsigned long pevtime;
volatile byte rotation; //variável para interrupção divertida deve ser volátil
float timetaken,rpm,dtime;
int v;
unsigned long pevtime;
void setup()
{
Cycle_BT.begin(9600); //iniciar a comunicação Bluetooth a 9600 baudrate
//pinMode(ledpin,OUTPUT); //Saída de pinos LED para depuração
attachInterrupt(0, magnet_detect, RISING); //segundo pino de arduino usado como interrupção e magnet_detect será chamado para cada interrupção
rotation = rpm = pevtime = 0; //Inicialize todas as variáveis para zero
}
void loop()
{
/*Para cair para zero se o veículo parar*/
if(millis()-dtime>1500) //nenhum imã encontrado para 1500ms
{
rpm= v = 0; //faça rpm e velocidade como zero
Cycle_BT.write(v);
dtime=millis();
}
v = radius_of_wheel * rpm * 0.37699; //0,33 é o raio da roda em metro
}
void magnet_detect() //Chamado sempre que um ímã é detectado
{
rotation++;
dtime=millis();
if(rotation>=2)
{
timetaken = millis()-pevtime; //tempo em milissegundos para duas rotações
rpm=(1000/timetaken)*60; //formular para calcular rpm
pevtime = millis();
rotation=0;
Cycle_BT.write(v);
//Cycle_BT.println("Magnet detected...."); //ativar durante o teste do hardware
}
}
Nenhum comentário:
Postar um comentário
Peço que use somente caixa baixa, não todo escrito em letra grande.