» Temas » Idéias DIY »Velocímetro para scooter

Velocímetro para scooter

Trago a sua atenção meu próximo artesanatoou seja, o velocímetro para scooter.
O pano de fundo é o seguinte: para o prazer de superar a inatividade física, a prancha Rollersurf foi adquirida. Como existem apenas duas rodas no quadro, montar nele requer uma sensação de equilíbrio, você pode apenas “ficar em pé” nele em movimento. Depois de me certificar de que, após um movimento contínuo a uma distância de cerca de 700 metros, as rodas pareciam ficar presas na areia e o movimento era muito difícil, procurei a Internet e especialistas. Tornou-se claro que, devido à maciez excessiva do material da roda em relação ao meu peso, há um forte aquecimento do material da roda e seu amolecimento, o contato com a estrada aumenta e a maior viscosidade da roda dificulta o controle e a criação de torque. Depois de substituir as rodas por um rolo mais rígido, as pranchas aumentaram significativamente, assim como a facilidade de controle. Na mesma pista longa, a frenagem familiar não aconteceu, a velocidade continuou a aumentar, o que levou a uma queda desagradável.
A idéia de medir a velocidade e limitar-se na aceleração veio provavelmente após uma queda :) Encontrei um protótipo de 2014, onde esse dispositivo foi criado, mas para um tipo diferente de placa, em que o plano de rotação da roda não se move muito em relação à placa e eletrônica pode ser colocado na própria placa conectando-o ao sensor na roda com um fio flexível.
No meu caso, o sensor e os componentes eletrônicos não devem ser colocados no suporte da roda, pois o próprio suporte (rodízio) gira em torno do seu eixo de maneira circular em relação ao plano da placa.
Aparência do Roller Surf


Implementação. A especificação do sinal foi selecionada pela BlueTooth devido à disponibilidade desta tecnologia e sua presença no smartwatch Samsung SM-V700 em mãos. O módulo BlueTooth foi selecionado HC-05, o controlador Arduino Mini Pro, mas posteriormente substituída pelo controlador simples AtMega168A, uma bateria de 500mAh Li-Pol foi selecionada para atender às dimensões da rodízio e ao consumo estimado de energia. Como sensor de rotação, o sensor Hall SS49E foi selecionado, em contraste com o protótipo, como mais operacionalmente estável. Consequentemente, o esboço foi ligeiramente modernizado. A passagem de um ímã montado no cubo da roda é analisada por dois pontos: a primeira atuação - o ímã entra na zona de sensibilidade - “pelotão” e a segunda atuação - o ímã sai da zona de sensibilidade do sensor - “descida”.O controlador conta esses eventos dentro de um período de tempo especificado - 1 segundo e envia o número recebido pelo canal de comunicação para o dispositivo Android, enquanto analisa simultaneamente os sinais recebidos. O programa de recebimento, exibição e gerenciamento do módulo foi criado com base no protótipo no ambiente do Android Studio. Ele fornece algumas melhorias relacionadas ao aumento da imunidade a ruídos. Como o protótipo, calcula velocidade e distância. A função útil de ligar / desligar o "farol" - um LED direcionado para frente em movimento - também é salva, ao que parece.
Bloco sem tampa

Visível superior esquerdo: LED vermelho de proteção contra inversão de carga, interruptor de carga, bateria; abaixo: o módulo VT verde, o microcontrolador AtMega168A com terminais de corte embutido é colado na parte traseira com a parte superior do gabinete.
Cobertura de bloco com sensor magnético

Montado com o rodízio, o módulo fica assim:
Bloquear rodízio

Na foto, você pode ver a chave liga / desliga, os contatos para conectar o carregador, do outro lado da unidade, no canto acima - LED - "farol".
O programa protótipo foi complementado com a capacidade de emitir sinais de som e vibração em vários eventos (ligar / desligar o farol, um sinal de alarme ao exceder o limite máximo de velocidade especificado).
Testando na mesa - na foto abaixo, ainda não testada na estrada, esperando o verão :)
Testando na mesa

O projeto do Android Studio tem um grande volume, vou publicá-lo em algum lugar com um link, se houver interesse, trago um esboço com comentários.
Na presença de interesse, estou pronto para compartilhar idéias, experiências.
A pergunta \ tópico é publicada automaticamente no social. rede do site - fique atento às respostas:

Apropriado para o tópico

Tópicos relacionados

Adicionar um comentário

    • sorrirsorrisosxaxaoknão seiyahoonea
      chefearranhartolosimsim simagressivosegredo
      desculpedançardance2dance3perdãoajudabebidas
      pararamigosbomgoodgoodapitodesmaiarlíngua
      fumaçapalmascraydeclararirônicodon-t_mentionbaixar
      calorirritantelaugh1mdareuniãomoskingnegativo
      not_ipipocapunirlerassustarsustospesquisar
      provocarthank_youistoto_clueumnikagudoconcordar
      malbeeeblack_eyeblum3corargabar-setédio
      censuradobrincadeirasecret2ameaçarvitóriayusun_bespectacled
      sacudirrespektlolpreviubem vindoKrutoyya_za
      ya_dobryiajudantene_huliganne_othodifludproibirfechar
1 comentário
O autor
Esboço de firmware ATMega168A:
/*
* Mega168 !!!
*/
#include "timer-api.h"

int Polaridade = -1; // polaridade do pulso do sinal de entrada (no meu caso, negativo
int Limiar = 500; // limiar de disparo do pulso de leitura 1/2 Vcc = 512
int CountTurn = 0; // armazena o número de rotações para o período contábil
int LED = 13; // LED conectado ao pino PB5
int InputSignal = A5; // entrada para o sensor Hall
int TurnNumber = 0; // número acumulado de rotações
int DeltaT = 28; // atraso da frente para determinar o fim do pulso para estabilidade
bool Tick = false; // valor inicial, sem marca ainda

configuração nula ()
{
Serial.begin (9600); // para depuração
timer_init_ISR_2Hz (TIMER_DEFAULT); // demora 1 segundo !!!
pinMode (LED, SAÍDA); // saída de sinal para a luz de fundo (farol)
pinMode (InputSignal, INPUT); // entrada para o sensor Hall
}

void loop () // aqui fazemos o processamento de sinais do controle do sensor e do farol
{
if (Tick) // permissão para executar o bloco if em um intervalo de tempo fixo
// envia o número de rotações
{
Serial.println (String (CountTurn) + ";"); // para depuração
Tick ​​= false; // prepara o rastreamento. intervalo de tempo
CountTurn = 0; // zera o número de rotações após a transferência para o smartphone
}

else // se o carrapato ainda não chegou, acumulamos o número de rotações, acendemos / apagamos o farol
{
// acumulação de revoluções
if (analogRead (InputSignal) {
delay (DeltaT); // ainda não leu nada
if (analogRead (InputSignal)> Treshold) // borda final chegou
{
CountTurn ++; // acumule o número de rotações na chegada do bordo de fuga
}
}

// controle do farol
if (Serial.available ()> 0) // lê o caractere de BTSerial
{
comando char = Serial.read ();
switch (comando)
{
case '0': digitalWrite (LED, LOW); break; // acende o farol
case '1': digitalWrite (LED, ALTO); break; // Desligue o farol
}
}
}
}

void timer_handle_interrupts (int timer)
{
Tick ​​= true;
}

Aconselhamos que você leia:

Entregue-o para o smartphone ...