» tråde » DIY-ideer »Speedometer til scooter

Speedometer til scooter

Jeg bringer min næste opmærksomhed kunsthåndværknemlig speedometeret til scooter.
Baggrunden er som følger: til fornøjelsen ved at overvinde fysisk inaktivitet blev Rollersurf-brættet købt. Da der kun er to hjul på brættet, at køre på det kræver en følelse af balance, kan du kun "stå" på det i bevægelse. Efter at have sørget for, at hjulene efter kontinuerlig bevægelse i en afstand af ca. 700 meter så ud til at sidde fast i sandet, og bevægelsen var meget vanskelig, vendte jeg mig til Internettet og specialister. Det blev klart, at på grund af overdreven blødhed af hjulmaterialet for min vægt, er hjulmaterialet meget varmt og blødgjort, kontakt med vejen stiger, og hjulets øgede viskositet gør det vanskeligt at kontrollere og skabe drejningsmoment. Efter at have udskiftet hjulene med en hårdere rulle steg brædderne markant, ligesom let at betjene. På det samme lange spor skete den velkendte bremsning ikke, hastigheden fortsatte med at stige, hvilket førte til et ubehageligt fald.
Ideen til at måle hastighed og begrænse dig selv i acceleration kom sandsynligvis efter et fald :) Der var en prototype fra 2014, hvor en sådan enhed blev oprettet, men for en anden type bord, hvor hjulets rotationsplan ikke bevæger sig meget i forhold til brættet og elektronik kan placeres på selve brættet ved at forbinde det til sensoren på hjulet med en fleksibel ledning.
I mit tilfælde bør både sensoren og elektronikken ikke placeres på hjulbeslaget, da selve beslaget (hjulet) roterer rundt om sin akse på en cirkulær måde i forhold til bordets plan.
Roller Surf Appearance


Realisering. Transmissionsspecifikationen blev valgt af BlueTooth på grund af tilgængeligheden af ​​denne teknologi og dens tilstedeværelse i Samsung SM-V700 smartwatch til rådighed. BlueTooth-modulet blev valgt HC-05, controlleren Arduino Mini Pro, men efterfølgende erstattet af AtMega168A bare controller, blev et 500 mAh Li-Pol batteri valgt til at imødekomme hjulets dimensioner og det anslåede strømforbrug. Som rotationssensor blev Hall Sensor SS49E valgt i modsætning til prototypen som mere driftsmæssigt stabil. Derfor blev skitsen let moderniseret. Gennemgangen af ​​en magnet monteret i hjulnavet analyseres med to punkter: den første aktivering - magneten kommer ind i følsomhedszonen - "deling" og den anden aktivering - magneten forlader sensorens følsomhedszone - "nedstigning".Controlleren tæller disse begivenheder inden for et bestemt tidsrum - 1 sekund og sender det modtagne nummer via kommunikationskanalen til Android-enheden, samtidig med at de indgående signaler analyseres. Programmet til modtagelse, visning og styring af modulet blev oprettet baseret på prototypen i Android Studio-miljøet. Det giver mulighed for nogle forbedringer relateret til stigende støjimmunitet. Ligesom prototypen beregner den hastighed og afstand. Den nyttige funktion ved at tænde / slukke "forlygten" - en LED, der er fremadrettet i bevægelse - gemmes også, som det ser ud til.
Blok uden dækning

Synlig øverst til venstre: rød beskyttelse mod omvendt opladning, opladningsarbejdsafbryder, batteri; nedenfor: det grønne BT-modul, AtMega168A-mikrokontrolleren med flush-cut klemmer limes på ryggen med den øverste del af sagen.
Blokkafdækning med magnetisk sensor

Samlet med hjul ser modulet sådan ud:
Blok på hjul

På billedet kan du se afbryderen, kontakterne til tilslutning af opladeren, på den anden side af enheden i hjørnet over - LED - "forlygte".
Prototypeprogrammet blev suppleret med evnen til at udsende lyd- og vibrationssignaler ved forskellige begivenheder (tænde / slukke forlygten, et alarmsignal, når den overskridende maksimale hastighedsgrænse overskrides).
Testning på bordet - på nedenstående foto, endnu ikke testet på vejen, venter på sommeren :)
Testning på bordet

Android Studio-projektet har et stort volumen, jeg lægger det et sted med et link, hvis der er interesse, medbringer jeg en skitse med kommentarer.
I nærvær af interesse er jeg klar til at dele ideer, oplevelser.
Spørgsmål \ emne offentliggøres automatisk i det sociale. webstedsnetværk - hold øje med svarene der:

Velegnet til emne

Relaterede emner

Tilføj en kommentar

    • smilesmilxaxaokdontknowyahoonea
      bossscratchnarrejaja-jaaggressivhemmelighed
      undskylddansdance2dance3benådninghjælpdrikkevarer
      stop-vennergodgoodgoodfløjtedånetunge
      røgklappecrayerklærerspottendedon-t_mentiondownloade
      hedeirefullaugh1mdamødemoskingnegativ
      not_ipopcornstraffelæseskræmmeforskrækkelsersøg
      hånethank_youdetteto_clueumnikakutenig
      dårligbeeeblack_eyeblum3blushpralekedsomhed
      censureretpleasantrysecret2truesejryusun_bespectacled
      SHOKRespektlolprevedvelkommenkrutoyya_za
      ya_dobryihjælperenne_huliganne_othodiFludforbudtæt
1 kommentar
Forfatteren
ATMega168A firmwareskitse:
/*
* Mega168 !!!
*/
#include "timer-api.h"

int Polaritet = -1; // polaritet af indgangssignalets puls (i mit tilfælde negativ
int Treshold = 500; // triggergrænse for læseimpulsen 1/2 Vcc = 512
int CountTurn = 0; // gemme antallet af omdrejninger for regnskabsperioden
int LED = 13; // LED tilsluttet PB5-pin
int InputSignal = A5; // input til Hall-sensor
int TurnNumber = 0; // akkumuleret antal omdrejninger
int DeltaT = 28; // forsinkelse fra fronten til bestemmelse af pulsenes ende for stabilitet
bool Tick = falsk; // startværdi, intet kryds endnu

ugyldig opsætning ()
{
Serial.begin (9600); // til fejlsøgning
timer_init_ISR_2Hz (TIMER_DEFAULT); // få 1 sekunders forsinkelse !!!
pinMode (LED, OUTPUT); // signaludgang til baggrundsbelysning (forlygte)
pinMode (InputSignal, INPUT); // input til Hall-sensor
}

void loop () // her udfører vi behandlingen af ​​signaler fra sensoren og forlygtskontrollen
{
if (Tick) // tilladelse til at udføre if-blokken med et fast tidsinterval
// send antallet af omdrejninger
{
Serial.println (String (CountTurn) + ";"); // til fejlsøgning
Afkrydsning = falsk; // forberede sporingen. tidsinterval
CountTurn = 0; // nul antallet af omdrejninger efter overførsel til smartphonen
}

ellers // hvis krydset ikke er ankommet endnu, akkumulerer vi antallet af omdrejninger, tænder / slukker forlygten
{
// ophobning af revolutioner
hvis (analogRead (InputSignal) {
forsinkelse (DeltaT); // læse ikke noget endnu
hvis (analogRead (InputSignal)> Treshold) // bagkant er kommet
{
CountTurn ++; // akkumulere antallet af omdrejninger ved ankomsten til bagkanten
}
}

// forlygte kontrol
hvis (Serial.available ()> 0) // læse tegnet fra BTSerial
{
char kommando = Serial.read ();
switch (kommando)
{
sag '0': digitalWrite (LED, LAV); break; // tænd forlygten
sag '1': digitalWrite (LED, HØJ); break; // Sluk forlygten
}
}
}
}

void timer_handle_interrupts (int timer)
{
Kryds = sand;
}

Vi råder dig til at læse:

Giv den til smartphonen ...