» Θέματα » Ιδέες DIY »Ταχύμετρο για σκούτερ

Ταχύμετρο για σκούτερ

Φέρνω στην προσοχή σας την επόμενη μου χειροτεχνίεςδηλαδή, το ταχύμετρο για σκούτερ.
Το υπόβαθρο είναι ως εξής: για την ευχαρίστηση να ξεπεραστεί η σωματική αδράνεια, αγοράστηκε ο πίνακας Rollersurf. Δεδομένου ότι υπάρχουν μόνο δύο τροχοί στο σκάφος, η οδήγηση σε αυτό απαιτεί μια αίσθηση ισορροπίας, μπορείτε μόνο να "σταθείτε" σε αυτό σε κίνηση. Αφού σιγουρευτούμε ότι μετά από συνεχή κίνηση σε απόσταση περίπου 700 μέτρων, οι τροχοί φαινόταν να κολλάνε στην άμμο και η κίνηση ήταν πολύ δύσκολη, γύρισα στο Διαδίκτυο και τους ειδικούς. Έγινε σαφές ότι λόγω της υπερβολικής απαλότητας του υλικού τροχού για το βάρος μου, το υλικό του τροχού είναι πολύ ζεστό και μαλακό, η επαφή με το δρόμο αυξάνεται και το αυξημένο ιξώδες του τροχού καθιστά δύσκολο τον έλεγχο και τη δημιουργία ροπής. Μετά την αντικατάσταση των τροχών με σκληρότερο κύλινδρο, οι σανίδες αυξήθηκαν σημαντικά, όπως και η ευκολία ελέγχου. Στην ίδια μακρά πορεία το γνωστό φρενάρισμα δεν συνέβη, η ταχύτητα συνέχισε να αυξάνεται, πράγμα που οδήγησε σε μια δυσάρεστη πτώση.
Η ιδέα να μετρηθεί η ταχύτητα και να περιορίσεις τον εαυτό σου στην επιτάχυνση ήρθε πιθανότατα μετά από μια πτώση :) Υπήρξε ένα πρωτότυπο από το 2014, όπου δημιουργήθηκε μια τέτοια συσκευή, αλλά για έναν διαφορετικό τύπο σκάφους, όπου το επίπεδο περιστροφής του τροχού δεν κινείται πολύ σε σχέση με τον πίνακα ηλεκτρονικά μπορεί να τοποθετηθεί στον ίδιο τον πίνακα, συνδέοντας τον με τον αισθητήρα στον τροχό με ένα εύκαμπτο καλώδιο.
Στην περίπτωσή μου, τόσο ο αισθητήρας όσο και τα ηλεκτρονικά δεν πρέπει να τοποθετηθούν στο βραχίονα του τροχού, καθώς ο ίδιος ο βραχίονας περιστρέφεται γύρω από τον άξονά του με κυκλικό τρόπο σε σχέση με το επίπεδο της σανίδας.
Εμφάνιση σέρφινγκ


Εφαρμογή. Η προδιαγραφή σήματος επιλέχθηκε από το BlueTooth λόγω της διαθεσιμότητας αυτής της τεχνολογίας και της παρουσίας της στο Smartwatch της Samsung SM-V700. Επιλέχθηκε η μονάδα BlueTooth HC-05, ο ελεγκτής Arduino Mini Pro, αλλά στη συνέχεια αντικαταστάθηκε από το γυμνό χειριστήριο AtMega168A, μια μπαταρία Li-Pol 500mAh επιλέχθηκε για να καλύψει τις διαστάσεις του κατόπτρου και την εκτιμώμενη κατανάλωση ενέργειας. Ως αισθητήρας περιστροφής επιλέχθηκε ο αισθητήρας Hall SS49E, σε αντίθεση με το πρωτότυπο, καθώς ήταν πιο λειτουργικά σταθερός. Κατά συνέπεια, το σκίτσο ελαφρώς εκσυγχρονίστηκε. Η διέλευση ενός μαγνήτη τοποθετημένου στην πλήμνη του τροχού αναλύεται με δύο σημεία: η πρώτη ενεργοποίηση - ο μαγνήτης εισέρχεται στη ζώνη ευαισθησίας - "platoon" και η δεύτερη ενεργοποίηση - ο μαγνήτης εξέρχεται από τη ζώνη ευαισθησίας του αισθητήρα - "κάθοδος".Ο ελεγκτής μετρά αυτά τα συμβάντα εντός συγκεκριμένης χρονικής περιόδου - 1 δευτερόλεπτο και αποστέλλει τον λαμβανόμενο αριθμό μέσω του καναλιού επικοινωνίας στη συσκευή Android, ενώ ταυτόχρονα αναλύει τα εισερχόμενα σήματα. Το πρόγραμμα για τη λήψη, την προβολή και τη διαχείριση της ενότητας δημιουργήθηκε με βάση το πρωτότυπο στο περιβάλλον του Android Studio. Παρέχει κάποιες βελτιώσεις που σχετίζονται με την αύξηση της ασυμβατότητας του θορύβου. Όπως και το πρωτότυπο, υπολογίζει την ταχύτητα και την απόσταση. Η χρήσιμη λειτουργία της ενεργοποίησης / απενεργοποίησης του "προβολέα" - μια LED που κατευθύνεται προς τα εμπρός εν κινήσει - σώζεται επίσης, όπως φαίνεται.
Αποκλεισμός χωρίς κάλυμμα

Ορατό επάνω αριστερά: κόκκινη LED προστασίας αντιστροφής φορτίου, διακόπτης φόρτισης, μπαταρία. παρακάτω: η πράσινη μονάδα VT, ο μικροελεγκτής AtMega168A με ακροδέκτες με επίπεδη επιφάνεια κολλάει στην πλάτη με το πάνω μέρος της θήκης.
Κλείστε το κάλυμμα με μαγνητικό αισθητήρα

Συναρμολογημένο με το καστορέλαιο, η μονάδα έχει την εξής μορφή:
Αποκλεισμός σε καστορέλαιο

Στη φωτογραφία μπορείτε να δείτε τον διακόπτη τροφοδοσίας, τις επαφές για τη σύνδεση του φορτιστή, στην άλλη πλευρά της μονάδας στη γωνία παραπάνω - LED - "προβολέας".
Το πρωτότυπο πρόγραμμα συμπληρώθηκε με τη δυνατότητα εκπομπής σημάτων ήχου και δονήσεων σε διάφορα συμβάντα (ενεργοποίηση / απενεργοποίηση του προβολέα, σήμα συναγερμού όταν υπερβαίνει το καθορισμένο όριο μέγιστης ταχύτητας).
Δοκιμές στο τραπέζι - στη φωτογραφία παρακάτω, που δεν έχει δοκιμαστεί ακόμα στο δρόμο, περιμένει το καλοκαίρι :)
Δοκιμή στο τραπέζι

Το έργο Android Studio έχει μεγάλο όγκο, θα το δημοσιεύσω κάπου με ένα σύνδεσμο, αν υπάρχει ενδιαφέρον, φέρνω ένα σκίτσο με σχόλια.
Παρουσιάζοντας ενδιαφέρον, είμαι έτοιμος να μοιραστώ ιδέες, εμπειρίες.
Ερώτηση \ θέμα δημοσιεύεται αυτόματα στο κοινωνικό. δίκτυο δικτύου - μείνετε συντονισμένοι για απαντήσεις εκεί:

Κατάλληλο για θέμα

Σχετικά θέματα

Προσθέστε ένα σχόλιο

    • χαμόγελοχαμογελάειxaxaΕντάξειdontknowyahoonea
      αφεντικόξυστάανόητοςναιναι-ναιεπιθετικήμυστικό
      Συγγνώμηχορόςdance2dance3συγχώρησηβοήθειαποτά
      σταματήστεφίλουςκαλόgoodgoodσφυρίχτρασυρρέουνγλώσσα
      καπνόςπαλαμάκιαcrayδηλώστεαπογοητευτικήdon-t_mentionκατεβάστε
      θερμότηταςirefulγέλιο1mdaσυνάντησηmoskingαρνητική
      not_iποπ κορντιμωρίαδιαβάστετρομάξτεφοβίζειαναζήτηση
      χλευάζωthank_youαυτόto_clueumnikοξείασυμφωνώ
      κακόbeeeblack_eyeblum3ρουζκαυχηθείτεπλήξη
      λογοκρισίαευχαρίστησηsecret2απειλήσουννίκηyusun_bespectacled
      shokrespektlolπροβλέπουνκαλωσορίστεkrutoyya_za
      ya_dobryiβοηθόςne_huliganne_othodifludαπαγόρευσηκοντά
1 σχόλιο
Ο συγγραφέας
ATMega168A σκίτσο υλικολογισμικού:
/*
* Mega168 !!!
*/
#include "timer-api.h"

int πολικότητα = -1, // πολικότητα του παλμού του σήματος εισόδου (στην περίπτωσή μου, αρνητική
int Κατώφλι = 500, // όριο ενεργοποίησης του παλμού ανάγνωσης 1/2 Vcc = 512
int CountTurn = 0; // να αποθηκεύει τον αριθμό των στροφών για τη λογιστική περίοδο
int LED = 13; // LED συνδεδεμένη στον ακροδέκτη PB5
int InputSignal = A5; // είσοδος για αισθητήρα Hall
int Αύξων αριθμός = 0; // συσσωρευμένος αριθμός περιστροφών
int DeltaT = 28; // καθυστέρηση από το μέτωπο προς τον καθορισμό του τέλους του παλμού για σταθερότητα
bool Tick = false; // αρχική τιμή, δεν υπάρχει ακόμα τσιμπούρι

void setup ()
{
Serial.begin (9600); // για τον εντοπισμό σφαλμάτων
timer_init_ISR_2Hz (TIMER_DEFAULT); // λάβετε 1 δευτερόλεπτο καθυστέρηση !!!
pinMode (LED, OUTPUT); // έξοδος σήματος στον οπίσθιο φωτισμό (προβολέας)
pinMode (είσοδος σήματος, είσοδος); // είσοδος για αισθητήρα Hall
}

void loop () // εδώ κάνουμε την επεξεργασία των σημάτων από τον αισθητήρα και τον έλεγχο των προβολέων
{
εάν (Tick) // άδεια να εκτελέσει το block if σε ένα καθορισμένο χρονικό διάστημα
// στείλτε τον αριθμό των στροφών
{
Serial.println (String (CountTurn) + ";"); // για σφάλμα
Tick ​​= false; // προετοιμάστε το ίχνος. χρονικό διάστημα
CountTurn = 0; // μηδενίζει τον αριθμό των στροφών μετά τη μεταφορά στο smartphone
}

else // αν το τικ δεν έχει φτάσει ακόμα, συσσωρεύουμε τον αριθμό των στροφών, ενεργοποιούμε / απενεργοποιούμε τον προβολέα
{
// συσσώρευση περιστροφών
αν έχει έρθει (analogRead (InputSignal) <Όριο) // ανερχόμενη άκρη
{
καθυστέρηση (DeltaT), // μην διαβάσετε τίποτα ακόμα
αν (analogRead (InputSignal)> Όριο) // έληξε η άκρη
{
CountTurn ++; // Συσσωρεύστε τον αριθμό των στροφών κατά την άφιξη της άκρης
}
}

// έλεγχος προβολέων
αν (Serial.available ()> 0) // διαβάσετε τον χαρακτήρα από το BTSerial
{
char εντολή = Serial.read ();
διακόπτης (εντολή)
{
περίπτωση '0': digitalWrite (LED, LOW); σπάσει; // ενεργοποιήστε τον προβολέα
περίπτωση '1': digitalWrite (LED, HIGH); break // // Απενεργοποιήστε τον προβολέα
}
}
}
}

άκυρη timer_handle_interrupts (int timer)
{
Tick ​​= true;
}

Σας συμβουλεύουμε να διαβάσετε:

Κάντε το για το smartphone ...