» Mga Tema » Mga ideya sa DIY »Speedometer para sa scooter

Speedometer para sa scooter

Dinadala ko sa iyong pansin ang susunod likhang-siningibig sabihin, ang bilis ng bilis ng iskuter.
Ang background ay ang mga sumusunod: para sa kasiyahan ng pagtagumpayan ng pisikal na hindi aktibo, binili ang Rollersurf board. Dahil mayroon lamang dalawang gulong sa board, ang pagsakay dito ay nangangailangan ng isang balanse, maaari ka lamang "tumayo" sa paggalaw nito. Matapos tiyakin na pagkatapos ng patuloy na paggalaw sa layo na halos 700 metro, ang mga gulong ay tila natigil sa buhangin at napakahirap ng paggalaw, lumingon ako sa Internet at mga espesyalista. Naging malinaw na dahil sa labis na lambing ng materyal ng gulong para sa aking timbang, ang materyal ng gulong ay sobrang init at pinalambot, makipag-ugnay sa pagtaas ng kalsada at ang pagtaas ng lagkit ng gulong ay nahihirapan itong kontrolin at lumikha ng metalikang kuwintas. Matapos mapalitan ang mga gulong ng isang mas mahirap na roll, ang mga board ay tumaas nang malaki, tulad ng ginawa ng kadalian ng kontrol. Sa parehong mahaba subaybayan ang hindi pamilyar na pagpepreno ay hindi nangyari, ang bilis ay patuloy na tumaas, na humantong sa isang hindi kanais-nais na pagbagsak.
Ang ideya upang masukat ang bilis at limitahan ang iyong sarili sa pagpabilis ay dumating, marahil pagkatapos ng pagkahulog :) May isang prototype mula sa 2014, kung saan ang isang aparato ay nilikha, ngunit para sa isang iba't ibang uri ng board, kung saan ang eroplano ng pag-ikot ng gulong ay hindi gumagalaw na kamag-anak sa board at elektronika maaaring mailagay sa board mismo sa pamamagitan ng pagkonekta nito sa sensor sa gulong na may isang nababaluktot na wire.
Sa aking kaso, ang parehong sensor at electronics ay hindi dapat ilagay sa wheel bracket, dahil ang bracket (castor) mismo ay umiikot sa paligid ng axis nito sa isang pabilog na paraan na nauugnay sa eroplano ng board.
Ang hitsura ng Roller Surf


Pagpapatupad. Ang paghahatid ng paghahatid ay pinili ng BlueTooth dahil sa pagkakaroon ng teknolohiyang ito at ang pagkakaroon nito sa Smartphone ng Samsung SM-V700. Ang BlueTooth module ay napili HC-05, ang magsusupil Arduino Ang Mini Pro, ngunit pagkatapos ay pinalitan ng AtMega168A hubad na controller, isang baterya na 500mAh Li-Pol ang napili upang matugunan ang mga sukat ng castor at ang tinantyang pagkonsumo ng kuryente. Bilang isang pag-ikot sensor, ang Hall sensor SS49E ay napili, kaibahan sa prototype, na mas matatag sa pagpapatakbo. Alinsunod dito, ang sketch ay bahagyang na-moderno. Ang pagpasa ng isang magnet na naka-mount sa wheel hub ay nasuri sa pamamagitan ng dalawang puntos: ang unang pagkilos - ang magnet ay pumapasok sa sensitivity zone - "platoon" at ang pangalawang pagkilos - ang magnet ay lumabas sa sensor sensitivity zone - "paglusong".Binibilang ng Controller ang mga kaganapang ito sa loob ng isang tinukoy na tagal ng oras - 1 segundo at ipinapadala ang natanggap na numero sa pamamagitan ng channel ng komunikasyon sa aparato ng Android, habang sabay na pinag-aaralan ang mga papasok na signal. Ang programa para sa pagtanggap, pagpapakita, pamamahala ng module ay nilikha batay sa prototype sa kapaligiran ng Android Studio. Nagbibigay ito para sa ilang mga pagpapabuti na may kaugnayan sa pagtaas ng kaligtasan sa ingay. Tulad ng prototype, kinakalkula nito ang bilis at distansya. Ang kapaki-pakinabang na pag-andar ng pag-on / off ang "headlight" - isang LED na nakadirekta sa paggalaw - ay nai-save din, tulad ng tila.
I-block nang walang takip

Makikita sa kaliwang kaliwa: pulang proteksyon ng reversal na proteksyon LED, singil sa pag-andar ng trabaho, baterya; sa ibaba: ang berdeng VT module, ang AtMega168A microcontroller na may mga flush-cut terminal ay nakadikit sa likuran nito kasama ang itaas na bahagi ng kaso.
I-block ang takip na may magnetic sensor

Nagtipon kasama ang castor, ganito ang hitsura ng modyul:
Mag-block sa castor

Sa larawan maaari mong makita ang switch ng kuryente, ang mga contact para sa pagkonekta sa charger, sa kabilang panig ng yunit sa sulok sa itaas - LED - "headlight".
Ang programa ng prototype ay pupunan na may kakayahang mag-isyu ng mga signal ng tunog at panginginig ng boses sa iba't ibang mga kaganapan (pag-on / off ang headlight, isang signal ng alarma kapag lumampas sa tinukoy na maximum na limitasyon ng bilis).
Pagsubok sa talahanayan - sa larawan sa ibaba, hindi pa nasubok sa kalsada, naghihintay para sa tag-araw :)
Pagsubok sa mesa

Ang proyekto sa Android Studio ay may malaking dami, mai-post ko ito sa isang lugar na may isang link, kung may interes, nagdadala ako ng isang sketch na may mga komento.
Sa pagkakaroon ng interes, handa akong magbahagi ng mga ideya, karanasan.
Ang tanong na tanong ay awtomatikong nai-publish sa panlipunan. network ng site - manatiling nakatutok para sa mga sagot doon:

Angkop para sa paksa

Kaugnay na mga paksa

Magdagdag ng isang puna

    • ngitinakangitixaxaok langhindi alamyahoonea
      bosskumamottangaoooo-ooagresibolihim
      sorrysayawsayaw2sayaw3kapatawarantumulonginumin
      humintomga kaibiganmabutigoodgoodsipolswoondila
      usokpumapalakpakkrayolaipahayagnakakainisdon-t_mentionpag-download
      initnakakainistumawa1mdapagpupulongnakikipag-usapnegatibo
      hindi_ipopcornparusahanbasahintakottakotpaghahanap
      panunuyasalamat_youitoto_clueumniktalamaksumang-ayon
      masamabeeeblack_eyeblum3namulamagyabanginip
      censoredkaaya-ayalihim2nagbabantatagumpayyusun_bespectacled
      shokrespektlolnagustuhanmaligayang pagdatingkrutoyya_za
      ya_dobryikatulongne_huliganne_othodimapusokpagbabawalmalapit
1 komentaryo
Ang may-akda
Sketch ng ATMega168A firmware:
/*
* Mega168 !!!
*/
#include "timer-api.h"

int Polarity = -1; // polarity ng pulso ng input signal (sa aking kaso, negatibo
int Treshold = 500; // trigger threshold ng binasang pulso 1/2 Vcc = 512
int CountTurn = 0; // itago ang bilang ng mga rebolusyon para sa panahon ng accounting
int LED = 13; // LED na konektado sa PB5 pin
int InputSignal = A5; // input para sa sensor ng Hall
int TurnNumber = 0; // naipon na bilang ng mga rebolusyon
int DeltaT = 28; // pagkaantala mula sa harap upang matukoy ang pagtatapos ng pulso para sa katatagan
bool Tick = maling; // paunang halaga, wala pang marka

walang pag-setup ()
{
Serial.begin (9600); // para sa pag-debug
timer_init_ISR_2Hz (TIMER_DEFAULT); // makakuha ng 1 segundo pagkaantala !!!
pinMode (LED, OUTPUT); // signal output sa backlight (headlight)
pinMode (InputSignal, INPUT); // input para sa sensor ng Hall
}

walang bisa loop () // dito ginagawa namin ang pagproseso ng mga signal mula sa control at control ng headlight
{
kung (Titik) // pahintulot na isagawa ang kung bloke sa isang nakapirming agwat ng oras
// ipadala ang bilang ng mga rebolusyon
{
Serial.println (String (CountTurn) + ";"); // para sa pag-debug
Titik = maling; // ihanda ang bakas. agwat ng oras
Bilangin = 0; // zero ang bilang ng mga rebolusyon pagkatapos ng paglipat sa smartphone
}

kung hindi man / kung ang tik ay hindi pa dumating, naipon namin ang bilang ng mga rebolusyon, isara ang / headlight
{
// akumulasyon ng mga rebolusyon
kung (analogRead (InputSignal) {
pagkaantala (DeltaT); // hindi pa nababasa
kung (analogRead (InputSignal)> Treshold) // trailing edge ay dumating
{
Bilangin ++; // maipon ang bilang ng mga rebolusyon sa pagdating ng trailing edge
}
}

// control ng headlight
kung (Serial.available ()> 0) // basahin ang karakter mula sa BTSerial
{
char utos = Serial.read ();
lumipat (utos)
{
kaso '0': digitalWrite (LED, LOW); break; // i-on ang headlight
kaso '1': digitalWrite (LED, HIGH); break; // I-off ang headlight
}
}
}
}

walang bisa timer_handle_interrupts (int timer)
{
Titik = totoo;
}

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...