» menetek » Barkács ötletek »Robogó sebességmérője

Robogó sebességmérő

Felhívom a figyelmemet a következőmre iparművészetnevezetesen a robogó sebességmérőjét.
A háttér a következő: a testmozgás leküzdésének örömére megvásároltam a Rollersurf táblát. Mivel a táblán csak két kerék van, rajta lovagláshoz egyensúlyérzékelést kell igénybe venni, csak mozgásban állhat. Miután megbizonyosodtam arról, hogy kb. 700 méteres távolságban történő folyamatos mozgás után a kerekek elakadtak a homokban, és a mozgás nagyon nehéz volt, fordultam az internethez és a szakemberekhez. Világossá vált, hogy a súlyomhoz tartozó kerék anyag túlzott lágysága miatt a kerék anyag erősen melegszik és lágyul, növekszik az úttal való érintkezés és a kerék megnövekedett viszkozitása megnehezíti a vezérlést és a nyomaték létrehozását. Miután a kerekeket keményebb tekercsel cserélték, a táblák jelentősen megnövekedtek, csakúgy, mint a könnyű irányítás. Ugyanezen a hosszú úton az ismert fékezés nem történt meg, a sebesség tovább növekedett, ami kellemetlen esést eredményezett.
Az a gondolat, hogy mérjük a sebességet és korlátozzuk magát a gyorsulásban, valószínűleg esés után merült fel: 2014-ben találtam egy prototípust, ahol ilyen eszközt készítettek, de egy másik típusú táblára, ahol a kerék forgási síkja nem mozog sokat a táblához viszonyítva, és elektronika maga a táblára helyezhető úgy, hogy rugalmas huzallal csatlakoztatja azt a kerék érzékelőjéhez.
Saját esetemben az érzékelőt és az elektronikát sem szabad a kerékkonzolra helyezni, mivel a tartó (görgő) maga a tengelye körül kör alakban forog a tábla síkjához képest.
Roller Surf megjelenés


Megvalósítás. A jel specifikációját a BlueTooth választotta, mivel ez a technológia rendelkezésre áll és jelen van a kéznél lévő Samsung SM-V700 intelligens órában. A BlueTooth modult a HC-05 vezérlőnek választottuk Arduino A Mini Pro-t, amelyet később az AtMega168A csupasz vezérlő váltotta fel, egy 500 mAh-os Li-Pol akkumulátort választottak, hogy megfeleljenek a görgő méreteinek és a becsült energiafogyasztásnak. Rotációs érzékelőként az SS49E Hall érzékelőt, a prototípussal ellentétben, működési szempontból stabilabbnak választottuk. Ennek megfelelően a vázlatot kissé korszerűsítették. A kerékagyba szerelt mágnes áthaladását két ponttal elemezzük: az első működtetés - a mágnes belép az érzékenységi zónába - „szakasz” és a második működtetés - a mágnes kilép az érzékelő érzékenységi zónájából - „leszállás”.A vezérlő számolja ezeket az eseményeket egy meghatározott időn belül - 1 másodperc alatt, és a fogadott számot a kommunikációs csatornán továbbítja az Android készülékre, miközben egyidejűleg elemzi a bejövő jeleket. A modul fogadására, megjelenítésére és kezelésére szolgáló program az Android Studio környezet prototípusa alapján jött létre. Rendelkezik néhány javítással a zajszint elleni védelem növelésével kapcsolatban. Mint a prototípus, kiszámítja a sebességet és a távolságot. A „fényszóró” - egy mozgásban előre irányított LED - be- és kikapcsolásának hasznos funkciója szintén megmarad, amint látszik.
Blokk fedél nélkül

Bal felső rész látható: piros töltésirány-védelmi LED, töltés-munka kapcsoló, akkumulátor; lent: a zöld VT modul, az AtMega168A mikrovezérlő, süllyesztett kapcsokkal, hátára ragasztva, a ház felső részével.
Blokk fedél mágneses érzékelővel

A görgővel összeállítva a modul így néz ki:
Blokkolja a görgőt

A képen láthatja a hálózati kapcsolót, a töltő csatlakoztatására szolgáló érintkezőket, a készülék másik oldalán, a fenti sarkon - LED - "fényszóró".
A prototípus programot kiegészítették azzal a képességgel, hogy hang- és vibrációs jeleket adjon ki különböző eseményeknél (a fényszóró be- és kikapcsolása, riasztási jel, ha túllépi a megadott maximális sebességhatárt).
Tesztelés az asztalon - az alábbi képen, még nem tesztelték az úton, nyárra várva :)
Tesztelés az asztalon

Az Android Studio projekt nagy kötettel fogom elhelyezni valahol egy linkkel, ha érdeklődik, vázlatot hozok hozzá kommentárokkal.
Érdeklődés jelenlétében kész vagyok megosztani ötleteit, tapasztalatait.
A \ kérdés automatikusan megjelenik a közösségi oldalon. webhelyhálózat - maradjon velük a válaszok:

Témához megfelelő

Kapcsolódó témák

Adj hozzá egy megjegyzést

    • smilemosolyogxaxarendbendontknowjehunea
      főnökkarcolásbolondigenigen-igenagresszívtitok
      Bocsánattáncdance2dance3megbocsátássegítségitalok
      megállásbarátokjógoodgoodsípájulásnyelv
      füsttapsolóCrayállapítsagúnyosdon-t_mentionletöltés
      hőségingerültlaugh1MDAtalálkozómoskingnegatív
      not_ipopcornbüntetolvasmegijesztijesztkeresés
      gúnyolódásthank_youeztto_clueumnikakutegyetért
      rosszbeeeblack_eyeblum3pírdicsekvésunalom
      cenzúrázottvidámságsecret2fenyegetgyőzelemyusun_bespectacled
      ShokRespektlolprevedfogadtatáskrutoyya_za
      ya_dobryisegítőne_huliganne_othodiFLUDtilalomközel
1 megjegyzés
A szerző
ATMega168A firmware vázlat:
/*
* Mega168 !!!
*/
#include "timer-api.h"

int Polaritás = -1; // a bemeneti jel impulzusának polaritása (az én esetemben negatív
int küszöb = 500; // az olvasási impulzus küszöbértéke 1/2 Vcc = 512
int CountTurn = 0; // tárolja a számlázási időszak fordulatszámát
int LED = 13; // LED csatlakoztatva van a PB5 tűhöz
int InputSignal = A5; // bemenet Hall érzékelőhöz
int TurnNumber = 0; // felhalmozott fordulatok száma
int DeltaT = 28; // késleltetés elölről az impulzus végének meghatározására a stabilitás érdekében
bool Tick = hamis; // kezdeti érték, még nincs pipálás

érvénytelen beállítás ()
{
Serial.begin (9600); // hibakeresés céljából
timer_init_ISR_2Hz (TIMER_DEFAULT); // kap egy másodperces késleltetést !!!
pinMode (LED, OUTPUT); // jel kimenet a háttérvilágításhoz (fényszóró)
pinMode (InputSignal, INPUT); // bemenet Hall érzékelőhöz
}

void loop () // itt végezzük az érzékelőből és a fényszóróból származó jelek feldolgozását
{
if (Tick) // engedély az if mondat végrehajtására egy meghatározott időközönként
// küldje el a fordulatok számát
{
Serial.println (String (CountTurn) + ";"); // hibakeresésre
Jelölés = false; // előkészíti a nyomkövetést. időintervallum
CountTurn = 0; // nullázza a fordulatok számát az okostelefonra történő átvitel után
}

else // ha a kullancs még nem érkezett meg, felhalmozzuk a fordulatok számát, kapcsoljuk ki / be a fényszórót
{
// fordulatok felhalmozódása
if (analogRead (InputSignal) {
késleltetés (DeltaT); // még senkit sem olvastam
if (analogRead (InputSignal)> Küszöbérték) // a hátsó él megérkezett
{
CountTurn ++; // összegyűjti a fordulatok számát a hátsó él megérkezésekor
}
}

// fényszóró vezérlés
if (Serial.avable ()> 0) // olvassa el a karaktert a BTSerialból
{
char parancs = Serial.read ();
kapcsoló (parancs)
{
'0' eset: digitalWrite (LED, LOW); break; // kapcsolja be a fényszórót
'1' eset: digitalWrite (LED, HIGH); break; // Kapcsolja ki a fényszórót
}
}
}
}

void timer_handle_interrupts (int timer)
{
Jelölés = igaz;
}

Azt javasoljuk, hogy olvassa el:

Adja át az okostelefon számára ...