» Thema's » DIY-ideeën »Snelheidsmeter voor scooter

Snelheidsmeter voor scooter

Ik breng mijn volgende onder uw aandacht ambachtennamelijk de snelheidsmeter voor scooter.
De achtergrond is als volgt: voor het plezier om fysieke inactiviteit te overwinnen, is het Rollersurf-bord gekocht. Omdat er maar twee wielen op het board zitten, vereist het rijden een gevoel van evenwicht, je kunt er alleen in beweging op staan. Nadat ik ervoor had gezorgd dat na continue beweging op een afstand van ongeveer 700 meter de wielen in het zand leken te blijven steken en de beweging erg moeilijk was, wendde ik me tot internet en specialisten. Het werd duidelijk dat door de overmatige zachtheid van het wielmateriaal voor mijn gewicht, het wielmateriaal erg heet en verzacht is, het contact met de weg toeneemt en de verhoogde viscositeit van het wiel het moeilijk maakt om te controleren en koppel te creëren. Na het vervangen van de wielen door een hardere rol, namen de planken aanzienlijk toe, evenals het bedieningsgemak. Op hetzelfde lange spoor kwam het bekende remmen niet tot stand, de snelheid bleef toenemen, wat leidde tot een onaangename daling.
Het idee om snelheid te meten en jezelf te beperken in acceleratie kwam waarschijnlijk na een val :) Er was een prototype uit 2014, waar een dergelijk apparaat werd gemaakt, maar voor een ander type bord, waarbij het rotatievlak van het wiel niet veel beweegt ten opzichte van het bord en elektronica kan op het bord zelf worden geplaatst door deze met een flexibele draad aan te sluiten op de sensor op het wiel.
In mijn geval mogen zowel de sensor als de elektronica niet op de wielbeugel worden geplaatst, omdat de beugel (zwenkwiel) zelf rond zijn as roteert ten opzichte van het vlak van het bord.
Roller Surf Uiterlijk


Implementatie. De transmissiespecificatie is gekozen door BlueTooth vanwege de beschikbaarheid van deze technologie en de aanwezigheid in de Samsung SM-V700 smartwatch bij de hand. BlueTooth-module werd geselecteerd HC-05, de controller Arduino Mini Pro, maar vervolgens vervangen door de AtMega168A kale controller, werd een 500 mAh Li-Pol-batterij geselecteerd om te voldoen aan de afmetingen van het zwenkwiel en het geschatte energieverbruik. Als rotatiesensor is, in tegenstelling tot het prototype, gekozen voor de Hall-sensor SS49E als meer operationeel stabiel. De schets is dan ook enigszins gemoderniseerd. De doorgang van een in de wielnaaf gemonteerde magneet wordt op twee punten geanalyseerd: de eerste bediening - de magneet komt de gevoeligheidszone binnen - "peloton" en de tweede bediening - de magneet verlaat de sensorgevoeligheidszone - "afdaling".De controller telt deze gebeurtenissen binnen een bepaalde periode - 1 seconde en stuurt het ontvangen nummer via het communicatiekanaal naar het Android-apparaat, terwijl hij tegelijkertijd de binnenkomende signalen analyseert. Het programma voor het ontvangen, weergeven en beheren van de module is gemaakt op basis van het prototype in de Android Studio-omgeving. Het biedt enkele verbeteringen met betrekking tot het verhogen van de immuniteit tegen ruis. Net als het prototype berekent het snelheid en afstand. De handige functie van het in- / uitschakelen van de "koplamp" - een LED die in beweging naar voren is gericht - wordt ook opgeslagen, zo lijkt het.
Blok zonder deksel

Zichtbaar linksboven: rode LED omkeerbeveiliging, laadwerkschakelaar, batterij; onder: de groene VT-module, de AtMega168A-microcontroller met verzonken klemmen is op zijn rug gelijmd met het bovenste deel van de behuizing.
Blokafdekking met magnetische sensor

Gemonteerd met het zwenkwiel ziet de module er als volgt uit:
Blokkeer op zwenkwiel

Op de foto ziet u de aan / uit-schakelaar, de contacten voor het aansluiten van de oplader, aan de andere kant van het apparaat op de hoek boven - LED - "koplamp".
Het prototype-programma werd aangevuld met de mogelijkheid om geluids- en trillingssignalen af ​​te geven bij verschillende evenementen (het in- / uitschakelen van de koplamp, een alarmsignaal bij overschrijding van de gespecificeerde maximumsnelheid).
Testen op tafel - op de onderstaande foto, nog niet getest op de weg, wachtend op de zomer :)
Testen op tafel

Het Android Studio-project heeft een groot volume, ik plaats het ergens met een link, als er interesse is, neem ik een schets met opmerkingen mee.
In aanwezigheid van interesse ben ik klaar om ideeën, ervaringen te delen.
Vraag \ onderwerp wordt automatisch gepubliceerd in de sociale media. sitenetwerk - blijf op de hoogte voor antwoorden daar:

Geschikt voor onderwerp

Gerelateerde onderwerpen

Voeg een opmerking toe

    • lachglimlachtxaxaokweet het nietyahoonea
      baaskrabbendwaasjaja-jaagressiefgeheim
      sorrydansdance2dance3pardonhulpdrankjes
      stopvriendengoedgoedfluitjebezwijmdtong
      rookklappencrayverklarenbeledigenddon-t_mentiondownloaden
      hittebooslach1mdavergaderingmoskingnegatief
      not_ipopcornstraffenlezenschrikschriktzoeken
      bespottendankjewelditto_clueUmnikacuutmee eens
      slechtbeeeblack_eyeblum3: oopscheppenverveling
      gecensureerdbeleefdheidgeheim2bedreigenoverwinningyusun_bespectacled
      shokrespektlolvoorgekomenwelkomkrutoyya_za
      ya_dobryihelperne_huliganne_othodifludverbodsluiten
1 commentaar
De auteur
ATMega168A firmwareschets:
/*
* Mega168 !!!
*/
#include "timer-api.h"

int Polarity = -1; // Polariteit van de puls van het ingangssignaal (in mijn geval negatief
int Treshold = 500; // triggerdrempel van de leespuls 1/2 Vcc = 512
int CountTurn = 0; // bewaar het aantal revoluties voor de boekhoudperiode
int LED = 13; // LED aangesloten op PB5-pin
int InputSignal = A5; // ingang voor Hall-sensor
int TurnNumber = 0; // geaccumuleerd aantal omwentelingen
int DeltaT = 28; // vertraging vanaf de voorkant tot het bepalen van het einde van de pols voor stabiliteit
bool Tick = false; // initiële waarde, nog geen vinkje

ongeldige setup ()
{
Serial.begin (9600); // voor foutopsporing
timer_init_ISR_2Hz (TIMER_DEFAULT); // Krijg 1 seconde vertraging !!!
pinMode (LED, OUTPUT); signaaluitvoer naar de achtergrondverlichting (koplamp)
pinMode (InputSignal, INPUT); // ingang voor Hall-sensor
}

void loop () // hier doen we de verwerking van signalen van de sensor en koplampregeling
{
if (Tick) // toestemming om het if-blok uit te voeren op een vast tijdsinterval
// stuur het aantal revoluties
{
Serial.println (String (CountTurn) + ";"); // voor foutopsporing
Vink = onwaar aan; // bereid het spoor voor. tijdsinterval
CountTurn = 0; // nul het aantal omwentelingen na overdracht naar de smartphone
}

anders // als het vinkje nog niet is aangekomen, tellen we het aantal omwentelingen op, zetten de koplamp aan / uit
{
// accumulatie van revoluties
if (analogRead (InputSignal) {
delay (DeltaT); // nog niets lezen
if (analogRead (InputSignal)> Treshold) // trailing edge is gekomen
{
CountTurn ++; // verzamel het aantal omwentelingen bij aankomst van de achterrand
}
}

// koplampregeling
if (Serial.available ()> 0) // lees het teken uit BTSerial
{
char commando = Serial.read ();
schakelaar (commando)
{
case '0': digitalWrite (LED, LOW); breken; // zet de koplamp aan
case '1': digitalWrite (LED, HIGH); breken; // Zet de koplamp uit
}
}
}
}

void timer_handle_interrupts (int timer)
{
Vink = waar aan;
}

We raden je aan om te lezen:

Geef het voor de smartphone ...