» Themen » DIY Ideen »Tachometer für Roller

Tachometer für Roller

Ich mache Sie auf meinen nächsten aufmerksam Handwerknämlich der Tacho für Roller.
Der Hintergrund ist wie folgt: Um körperliche Inaktivität zu überwinden, wurde das Rollersurfboard gekauft. Da sich nur zwei Räder auf dem Board befinden, erfordert das Fahren ein Gleichgewichtssinn. Sie können nur in Bewegung darauf „stehen“. Nachdem ich sichergestellt hatte, dass die Räder nach einer kontinuierlichen Bewegung in einer Entfernung von etwa 700 Metern im Sand stecken blieben und die Bewegung sehr schwierig war, wandte ich mich an das Internet und an Spezialisten. Es wurde deutlich, dass aufgrund der übermäßigen Weichheit des Radmaterials für mein Gewicht eine starke Erwärmung des Radmaterials und dessen Erweichung auftritt, der Kontakt mit der Straße zunimmt und die erhöhte Viskosität des Rades es schwierig macht, das Drehmoment zu steuern und zu erzeugen. Nach dem Ersetzen der Räder durch eine härtere Rolle nahmen die Bretter erheblich zu, ebenso wie die einfache Kontrolle. Auf der gleichen langen Strecke fand das bekannte Bremsen nicht statt, die Geschwindigkeit stieg weiter an, was zu einem unangenehmen Abfall führte.
Die Idee, die Geschwindigkeit zu messen und die Beschleunigung zu begrenzen, kam wahrscheinlich nach einem Sturz :) Ich fand einen Prototyp aus dem Jahr 2014, in dem ein solches Gerät entwickelt wurde, aber für einen anderen Board-Typ, bei dem sich die Rotationsebene des Rads relativ zum Board und nicht viel bewegt Elektronik kann auf der Platine selbst platziert werden, indem sie mit einem flexiblen Draht mit dem Sensor am Rad verbunden wird.
In meinem Fall sollten sowohl der Sensor als auch die Elektronik nicht auf der Radhalterung platziert werden, da sich die Halterung (Lenkrolle) selbst kreisförmig um die Ebene der Platine um ihre Achse dreht.
Roller Surf Aussehen


Implementierung. Die Signalspezifikation wurde von BlueTooth aufgrund der Verfügbarkeit dieser Technologie und ihrer Präsenz in der vorliegenden Samsung SM-V700 Smartwatch ausgewählt. Das BlueTooth-Modul wurde als HC-05, die Steuerung, ausgewählt Arduino Mini Pro, aber später durch den AtMega168A-Bare-Controller ersetzt, wurde ein 500-mAh-Li-Pol-Akku ausgewählt, um die Abmessungen der Rolle und den geschätzten Stromverbrauch zu erfüllen. Als Rotationssensor wurde im Gegensatz zum Prototyp der Hallsensor SS49E als betriebsstabiler gewählt. Dementsprechend wurde die Skizze leicht modernisiert. Der Durchgang eines in der Radnabe montierten Magneten wird anhand von zwei Punkten analysiert: der ersten Betätigung - der Magnet tritt in die Empfindlichkeitszone ein - "Zug" - und der zweiten Betätigung - der Magnet verlässt die Sensorempfindlichkeitszone - "Abstieg".Der Controller zählt diese Ereignisse innerhalb eines bestimmten Zeitraums - 1 Sekunde - und sendet die empfangene Nummer über den Kommunikationskanal an das Android-Gerät, während er gleichzeitig die eingehenden Signale analysiert. Das Programm zum Empfangen, Anzeigen und Verwalten des Moduls wurde basierend auf dem Prototyp in der Android Studio-Umgebung erstellt. Es bietet einige Verbesserungen im Zusammenhang mit der Erhöhung der Störfestigkeit. Wie der Prototyp berechnet er Geschwindigkeit und Entfernung. Die nützliche Funktion zum Ein- und Ausschalten des "Scheinwerfers" - einer in Bewegung nach vorne gerichteten LED - wird anscheinend ebenfalls gespeichert.
Block ohne Abdeckung

Oben links sichtbar: rote Ladungsumkehrschutz-LED, Ladeschalter, Batterie; unten: Das grüne VT-Modul, der AtMega168A-Mikrocontroller mit bündig geschnittenen Anschlüssen, ist auf der Rückseite mit dem oberen Teil des Gehäuses verklebt.
Blockabdeckung mit Magnetsensor

Zusammen mit der Rolle sieht das Modul folgendermaßen aus:
Block auf Rolle

Auf dem Foto sehen Sie den Netzschalter, die Kontakte zum Anschließen des Ladegeräts, auf der anderen Seite des Geräts in der Ecke oben - LED - "Scheinwerfer".
Das Prototypenprogramm wurde durch die Möglichkeit ergänzt, bei verschiedenen Ereignissen Schall- und Vibrationssignale auszugeben (Ein- und Ausschalten des Scheinwerfers, ein Alarmsignal bei Überschreitung der angegebenen Höchstgeschwindigkeit).
Testen auf dem Tisch - auf dem Foto unten, noch nicht auf der Straße getestet, wartet auf den Sommer :)
Testen auf dem Tisch

Das Android Studio-Projekt hat ein großes Volumen. Ich werde es irgendwo mit einem Link veröffentlichen. Bei Interesse bringe ich eine Skizze mit Kommentaren mit.
Bei Interesse bin ich bereit, Ideen und Erfahrungen auszutauschen.
Frage \ Thema wird automatisch im sozialen Bereich veröffentlicht. Site-Netzwerk - dort finden Sie Antworten:

Geeignet für das Thema

Verwandte Themen

Kommentar hinzufügen

    • lächelnlächeltxaxaokweiß nichtYahoonea
      ChefKratzerDummkopfjaja-jaaggressivGeheimnis
      Entschuldigungtanzendance2Tanz3VerzeihungHilfeGetränke
      hör aufFreundegutgut gutpfeifenOhnmachtZunge
      RauchklatschenCrayerklärenspöttischdon-t_mentionherunterladen
      Hitzeärgerlichlach1mdaTreffenMoskingnegativ
      not_iPopcornbestrafenlesenerschreckenAngstSuche
      verspottendankedasto_clueumnikakutstimme zu
      schlechtbeeeblack_eyeblum3errötenprahlenLangeweile
      zensiertAngenehmheitsecret2drohenSiegyusun_bespectacled
      shokrespektlolvorgezogenWillkommenKrutoyya_za
      ya_dobryiHelferne_huliganne_othodiFludVerbotschließen
1 Kommentar
Der Autor
ATMega168A Firmware-Skizze:
/*
* Mega168 !!!
*/
#include "timer-api.h"

int Polarität = -1; // Polarität des Impulses des Eingangssignals (in meinem Fall negativ
int Treshold = 500; // Triggerschwelle des Leseimpulses 1/2 Vcc = 512
int CountTurn = 0; // speichere die Anzahl der Umdrehungen für den Abrechnungszeitraum
int LED = 13; // LED an PB5 Pin angeschlossen
int InputSignal = A5; // Eingang für Hallsensor
int TurnNumber = 0; // akkumulierte Anzahl von Umdrehungen
int DeltaT = 28; // Verzögerung von vorne bis zur Bestimmung des Impulsende für Stabilität
bool Tick = false; // Anfangswert, noch kein Häkchen

void setup ()
{
Serial.begin (9600); // zum Debuggen
timer_init_ISR_2Hz (TIMER_DEFAULT); // 1 Sekunde Verzögerung erhalten !!!
PinMode (LED, OUTPUT); // Signalausgang zur Hintergrundbeleuchtung (Scheinwerfer)
pinMode (InputSignal, INPUT); // Eingang für Hallsensor
}

void loop () // hier verarbeiten wir die Signale von der Sensor- und Scheinwerfersteuerung
{
if (Tick) // Berechtigung zum Ausführen des if-Blocks in einem festgelegten Zeitintervall
// Sende die Anzahl der Umdrehungen
{
Serial.println (String (CountTurn) + ";"); // zum Debuggen
Tick ​​= false; // Trace vorbereiten. Zeitintervall
CountTurn = 0; // Die Anzahl der Umdrehungen nach der Übertragung auf das Smartphone auf Null setzen
}

sonst // wenn der Tick noch nicht angekommen ist, akkumulieren wir die Anzahl der Umdrehungen, schalten den Scheinwerfer ein / aus
{
// Ansammlung von Umdrehungen
if (analogRead (InputSignal) {
delay (DeltaT); // noch nichts lesen
if (analogRead (InputSignal)> Treshold) // Hinterkante ist gekommen
{
CountTurn ++; // akkumuliere die Anzahl der Umdrehungen beim Eintreffen der Hinterkante
}
}

// Scheinwerfersteuerung
if (Serial.available ()> 0) // lese das Zeichen aus BTSerial
{
char command = Serial.read ();
Schalter (Befehl)
{
Fall '0': digitalWrite (LED, LOW); break; // Scheinwerfer einschalten
Fall '1': digitalWrite (LED, HIGH); break; // Scheinwerfer ausschalten
}
}
}
}

void timer_handle_interrupts (int timer)
{
Häkchen = wahr;
}

Wir empfehlen Ihnen zu lesen:

Gib es für das Smartphone ...