» trådar » DIY-idéer »Speedometer för skoter

Speedometer för skoter

Jag uppmärksammar din nästa konsthantverknämligen hastighetsmätaren för skoter.
Bakgrunden är följande: för nöjet att övervinna fysisk inaktivitet, köptes Rollersurf-brädet. Eftersom det bara finns två hjul på brädet, att köra på det kräver en känsla av balans, kan du bara "stå" på det i rörelse. Efter att ha säkerställt att efter kontinuerlig rörelse på cirka 700 meters avstånd tycktes hjulen fastna i sanden och rörelsen var mycket svår, vände jag mig till Internet och specialister. Det blev tydligt att hjulmaterialets överdrivna mjukhet för min vikt är mycket hett och mjukat, kontakten med vägen ökar och hjulets ökade viskositet gör det svårt att kontrollera och skapa vridmoment. Efter att ha bytt ut hjulen med en hårdare rulle ökade brädorna avsevärt, liksom enkel kontrollen. På samma långa spår skedde inte den välkända bromsningen, hastigheten fortsatte att öka, vilket ledde till ett obehagligt fall.
Idén att mäta hastighet och begränsa dig själv i acceleration kom, antagligen efter ett fall :) Det fanns en prototyp från 2014, där en sådan enhet skapades, men för en annan typ av bräde, där hjulets rotationsplan inte rör sig mycket relativt brädet och elektronik kan placeras på själva kortet genom att ansluta det till sensorn på hjulet med en flexibel tråd.
I mitt fall ska både sensorn och elektroniken inte placeras på hjulfästet, eftersom själva fästet (hjulet) roterar runt sin axel cirkulärt i förhållande till kortets plan.
Roller Surf Utseende


Förverkligande. Signalspecifikationen valdes av BlueTooth på grund av tillgängligheten för denna teknik och dess närvaro i Samsung SM-V700 smartwatch till hands. BlueTooth-modulen valdes HC-05, styrenheten Arduino Mini Pro, men därefter ersatt av AtMega168A-nakna styrenheter, valdes ett 500 mAh Li-Pol-batteri för att möta hjulens dimensioner och den beräknade energiförbrukningen. Som rotationssensor valdes Hall-sensorn SS49E, till skillnad från prototypen, som mer driftsstabil. Följaktligen moderniserades skissen. Passagen för en magnet monterad i hjulnavet analyseras med två punkter: den första manövreringen - magneten kommer in i känslighetszonen - "platon" och den andra manövreringen - magneten lämnar sensorkänslighetszonen - "härkomst".Styrenheten räknar dessa händelser inom en viss tidsperiod - 1 sekund och skickar det mottagna numret via kommunikationskanalen till Android-enheten, samtidigt som man analyserar de inkommande signalerna. Programmet för att ta emot, visa, hantera modulen skapades baserat på prototypen i Android Studio-miljön. Det tillhandahåller vissa förbättringar relaterade till ökad bullerimmunitet. Liksom prototypen beräknar den hastighet och avstånd. Den användbara funktionen att slå på / stänga av "strålkastaren" - en lysdiod riktad framåt i rörelse - sparas också som det verkar.
Block utan skydd

Synlig uppe till vänster: röd laddningsskydds-LED, laddningsbrytare, batteri; nedan: den gröna VT-modulen, AtMega168A-mikrokontrollern med spolklippta terminaler limmas på ryggen med den övre delen av höljet.
Blocklock med magnetisk sensor

Sammansatt med hjulet ser modulen ut så här:
Blockera på hjulet

På bilden kan du se strömbrytaren, kontakterna för anslutning av laddaren, på andra sidan enheten på hörnet ovan - LED - "strålkastare".
Prototypprogrammet kompletterades med förmågan att ge ut ljud- och vibrationssignaler vid olika händelser (slå på / stänga av strålkastaren, en larmsignal när den överskrider den angivna maximala hastighetsgränsen).
Testa på bordet - på bilden nedan, ännu inte testat på vägen, väntar på sommaren :)
Testning på bordet

Android Studio-projektet har en stor volym, jag ska publicera det någonstans med en länk, om det finns intresse, tar jag med en skiss med kommentarer.
I närvaro av intresse är jag redo att dela idéer, erfarenheter.
Fråga \ ämne publiceras automatiskt i det sociala. webbplatsnätverk - håll dig anpassad för svar där:

Lämplig för ämne

Relaterade ämnen

Lägg till en kommentar

    • lelerxaxaOKdontknowyahoonea
      bossscratchluraJaja-jaaggressivhemlighet
      ledsendansdance2dance3benådningHjälpdrycker
      stoppvännerbragoodgoodvisselpipasvimningsanfalltunga
      rökklapparcraydeclarehånfulldon-t_mentionnedladdning
      hettaRASANDElaugh1mdamötemoskingnegativ
      not_ipopcornstraffalässkrämmalarmrapportersök
      hånthank_youdettato_clueumnikakutöverens
      illabeeeblack_eyeblum3rougeskrytaledan
      censureradepleasantrysecret2hotasegeryusun_bespectacled
      shokrespektlolprevedvälkommenkrutoyya_za
      ya_dobryihjälparene_huliganne_othodiFLUDförbudstänga
1 kommentar
Författaren
ATMega168A firmware skiss:
/*
* Mega168 !!!
*/
# inkludera "timer-api.h"

int Polaritet = -1; // polaritet för insignalens puls (i mitt fall negativt
int Treshold = 500; // triggtröskel för läspulsen 1/2 Vcc = 512
int CountTurn = 0; // lagra antalet varv för räkenskapsperioden
int LED = 13; // LED ansluten till PB5-stiftet
int InputSignal = A5; // ingång för Hall-sensor
int TurnNumber = 0; // ackumulerat antal varv
int DeltaT = 28; // fördröjning framifrån för att bestämma slutet på pulsen för stabilitet
bool Tick = falsk; // initialvärde, inget fästing ännu

ogiltig installation ()
{
Serial.begin (9600); // för felsökning
timer_init_ISR_2Hz (TIMER_DEFAULT); // få en sekunders fördröjning !!!
pinMode (LED, OUTPUT); // signalutgång till bakgrundsbelysningen (strålkastare)
pinMode (InputSignal, INPUT); // ingång för Hall-sensor
}

void loop () // här gör vi bearbetning av signaler från sensorn och strålkastarstyrningen
{
if (Tick) // tillåtelse att köra if-blocket vid ett fast tidsintervall
// skicka antalet varv
{
Serial.println (String (CountTurn) + ";"); // för felsökning
Tick ​​= false; // förbereda spåret. tidsintervall
CountTurn = 0; // noll antalet varv efter överföring till smarttelefonen
}

annars // om fästningen inte har kommit ännu, samlar vi antalet varv, tänder / slår strålkastaren
{
// ackumulering av revolutioner
om (analogRead (InputSignal) {
fördröjning (DeltaT); // läser inte någonting ännu
om (analogRead (InputSignal)> Treshold) // efterkant har kommit
{
CountTurn ++; // ackumulera antalet varv vid ankomst av bakkanten
}
}

// strålkastarstyrning
if (Serial.available ()> 0) // läs tecknet från BTSerial
{
char kommando = Serial.read ();
switch (kommando)
{
case '0': digitalWrite (LED, LOW); break; // slå på strålkastaren
case '1': digitalWrite (LED, HIGH); break; // Stäng av strålkastaren
}
}
}
}

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

Vi rekommenderar att du läser:

Räcka den till smarttelefonen ...