» Temes » Idees de bricolatge »Velocímetre per a patinet

Velocímetre per a patinet

Us poso a l’atenció el meu proper manualitatsés a dir, el velocímetre per a patinet.
Els antecedents són els següents: per al plaer de superar la inactivitat física, es va comprar el tauler de Rollersurf. Com que només hi ha dues rodes a la pissarra, per muntar-hi cal una sensació d'equilibri, només podeu "mantenir-lo" en moviment. Després d’assegurar-me que després d’un moviment continu a una distància d’uns 700 metres, les rodes semblaven quedar encallades a la sorra i el moviment era molt difícil, em vaig dirigir a Internet i especialistes. Va quedar clar que a causa de l’excés de suavitat del material de la roda pel meu pes, el material de la roda està molt calent i suavitzat, el contacte amb la carretera augmenta i l’augment de la viscositat de la roda fa que sigui difícil controlar i crear un parell. Després de substituir les rodes per un rotllo més dur, les juntes van augmentar significativament, igual que la facilitat de control. Al mateix llarg recorregut, la frenada familiar no es va produir, la velocitat va continuar augmentant, cosa que va provocar una caiguda desagradable.
La idea de mesurar la velocitat i limitar-te a l’acceleració va venir, probablement després d’una caiguda :) Vaig trobar un prototip a partir del 2014, on es va crear un dispositiu així, però per a un tipus de placa diferent, on el pla de gir de la roda no es mou gaire en relació a la placa i electrònica es pot col·locar sobre el propi tauler connectant-lo al sensor de la roda amb un cable flexible.
En el meu cas, tant el sensor com l’electrònica no s’han de col·locar sobre el suport de la roda, ja que el suport (l’enrotllador) gira al voltant del seu eix de forma circular en relació amb el pla de la placa.
Aspecte de Roller Surf


Implementació BlueTooth ha seleccionat l'especificació del senyal per la disponibilitat d'aquesta tecnologia i la seva presència al smartwatch Samsung SM-V700. Es va seleccionar el mòdul BlueTooth HC-05, el controlador Arduino Mini Pro, però posteriorment substituït pel controlador AtMega168A nu, es va seleccionar una bateria Li-Pol de 500mAh per satisfer les dimensions del càsting i el consum d'energia estimat. Com a sensor de rotació, el sensor Hall SS49E va ser seleccionat, en contrast amb el prototip, com a estabilitat més operativa. Per tant, l'esbós es modernitzà lleugerament. El pas d’un imant muntat al nucli de les rodes s’analitza per dos punts: el primer d’accionament - l’imant entra a la zona de sensibilitat - “pelotó” i el segon d’accionament - l’imant surt de la zona de sensibilitat del sensor - “baixada”.El controlador compta aquests esdeveniments en un període de temps determinat: 1 segon i envia el número rebut a través del canal de comunicació al dispositiu Android, alhora que analitza els senyals entrants. El programa de recepció, visualització i gestió del mòdul es va crear a partir del prototip en l'entorn d'Android Studio. Proporciona algunes millores relacionades amb l’augment de la immunitat del soroll. Igual que el prototip, calcula velocitat i distància. La funció útil d'encendre / apagar el "far", un LED dirigit en moviment, també es guarda, segons sembla.
Bloquejar sense coberta

Visible a la part superior esquerra: LED de protecció inversa de reversió de càrrega, interruptor de càrrega-treball, bateria a continuació: el mòdul VT verd, el microcontrolador AtMega168A amb terminals tallats a la pell s’enganxa a la seva part posterior amb la part superior de la caixa.
Coberta de bloc amb sensor magnètic

El mòdul està muntat amb l'encís:
Bloquejar sobre una roda

A la foto es pot veure l'interruptor d'alimentació, els contactes per connectar el carregador, a l'altre costat de la unitat a la cantonada superior - LED - "far".
El programa del prototip es va complementar amb la capacitat d’emetre senyals de so i vibració en diversos esdeveniments (encendre / apagar el far, un senyal d’alarma en superar el límit de velocitat màxima especificat).
Prova a taula: a la foto de sota, encara no provada a la carretera, a l’espera de l’estiu :)
Prova a taula

El projecte d’Android Studio té un gran volum, el publicaré en algun lloc amb un enllaç; si hi ha interès, us porto un croquis amb comentaris.
En interès, estic disposat a compartir idees, experiències.
La pregunta \ topic es publica automàticament al social. xarxa de llocs: estigueu atents a les respostes:

Apte per al tema

Temes relacionats

Afegeix un comentari

    • somriuresomriuxaxad'acordno ho séyahoonea
      capratllarximplesísí-síagressiusecret
      ho sentoballarballar2ballar3perdóajudarbegudes
      pararamicsbébondatxiuletswoonllengua
      fumaraplaudintcranideclararderisiudon-t_mentiondescarregar
      calorirritariure1mdareuniómosquitnegatiu
      no_icrispetescastigarllegirporespantosbuscar
      burlargràcies_youaixòto_clueumnikagutd'acord
      dolentbeeeblack_eyeblum3ruborpresumirl'avorriment
      censuradaplaersecret2amenaçarvictòriatusun_bespectacled
      xocrespectlolpreveurebenvingudaKrutoyja_za
      ja_dobryiajudantne_huliganne_othodifludprohibicióa prop
1 comentari
L’autor
Esbós de firmware ATMega168A:
/*
* Mega168 !!!
*/
#inclou "timer-api.h"

int Polaritat = -1; // polaritat del pols del senyal d’entrada (en el meu cas, negativa
int Treshold = 500; // llindar del disparador del pols de lectura 1/2 Vcc = 512
int CountTurn = 0; // emmagatzema el nombre de revolucions del període comptable
int LED = 13; // LED connectat al pin PB5
int InputSignal = A5; // entrada per al sensor Hall
int TurnNumber = 0; // nombre de revolucions acumulades
int DeltaT = 28; // retard de la part davantera per determinar l'extrem del pols per a l'estabilitat
Tick ​​bool = fals; // valor inicial, encara no hi ha cap marca

nul configuració ()
{
Serial.begin (9600); // per a depuració
timer_init_ISR_2Hz (TIMER_DEFAULT); // obté un retard d'1 segon !!!
pinMode (LED, SORTIDA); // sortida del senyal al retroil·lumini (far)
pinMode (InputSignal, INPUT); // entrada per al sensor Hall
}

void loop () // aquí fem el processament de senyals des del sensor i el control dels fars
{
if (Tick) // permís per executar el bloc if en un interval de temps fixat
// envia el nombre de revolucions
{
Serial.println (Cadena (CountTurn) + ";"); // per a depuració
Tick ​​= fals; // preparar la traça. interval de temps
CountTurn = 0; // zero el nombre de revolucions després de la transferència al telèfon intel·ligent
}

Altrament // si encara no heu arribat les marques, acumulem el nombre de revolucions, enceneu / apagueu els fars
{
// acumulació de revolucions
if (analogRead (InputSignal) {
retard (DeltaT); // encara no llegeu res
if (analogRead (InputSignal)> Treshold) // ha arribat la vora final
{
CountTurn ++; // acumular el nombre de revolucions a l'arribada de la vora final
}
}

// control dels fars
if (Serial.available ()> 0) // llegeix el personatge de BTSerial
{
char com = Serial.read ();
switch (comandament)
{
caixa '0': digitalWrite (LED, LOW); trencar; // encendre el far
caixa '1': digitalWrite (LED, HIGH); trencar; // Apagar el far
}
}
}
}

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

Us aconsellem que llegiu:

Doneu-lo al telèfon intel·ligent ...