Πίνακας περιεχομένων:
- Βήμα 1: Λήψη σχετικού λογισμικού στον υπολογιστή σας
- Βήμα 2: Υλικό
- Βήμα 3: Τοποθετήστε το ποδήλατο σε στάση ποδηλάτου
- Βήμα 4: Ανεβάστε και δοκιμάστε τον κώδικα Arduino
- Βήμα 5: Ρύθμιση του YouTube Controller
Βίντεο: Προσομοιωτής ποδηλάτου με ρύθμιση ταχύτητας σε πραγματικό χρόνο: 5 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Αυτό το έργο χρησιμοποιεί έναν μαγνητικό διακόπτη καλαμιού για να δημιουργήσει ένα ταχύμετρο και να ελέγξει την ταχύτητα βίντεο των βίντεο ποδηλασίας πρώτου προσώπου στο YouTube ή σε άλλα μέσα. Το Arduino υπολογίζει το mph και στη συνέχεια χρησιμοποιεί αυτές τις πληροφορίες για να προσομοιώσει το πάτημα ενός κουμπιού υπολογιστή. Αυτό το πάτημα κουμπιού, σε συνδυασμό με μια επέκταση Google Chrome, επιταχύνει ή επιβραδύνει το βίντεο με βάση την αλλαγή ταχύτητας. Διαθέτει μια βασική ρύθμιση υλικού που μπορούν να δημιουργήσουν μόνοι τους όσοι είναι αρχάριοι στο Arduino.
Ο κωδικός ταχύμετρου βασίζεται σε αυτό το έργο:
Λίστα υλικού:
1. Arduino Leonardo
2. Καλώδιο Micro USB (Πρέπει να είναι ικανό για μεταφορά αρχείων και <3ft)
3. Διακόπτης μαγνητικού καλαμιού
4. Αντίσταση 10k Ohm
5. 22 Gauge Wire (<4ft)
6. Συγκολλητικό σίδερο
7. Συγκολλητής
8. Ηλεκτρική ταινία
9. Φερμουάρ
10. Στατική βάση ποδηλάτου
11. Ποδήλατο
Βήμα 1: Λήψη σχετικού λογισμικού στον υπολογιστή σας
1. Arduino IDE
2. Ελεγκτής ταχύτητας βίντεο (επέκταση προγράμματος περιήγησης στο Web)
ένα. Google Chrome
σι. Firefox
Βήμα 2: Υλικό
Όλες οι συνδέσεις πρέπει να συγκολληθούν μεταξύ τους και να κολληθούν με ηλεκτρική ταινία. Το Arduino μπορεί να τοποθετηθεί στο ποδήλατο χρησιμοποιώντας μια πλαστική θήκη που περιλαμβάνεται στο Arduino (συνδεδεμένο στη λίστα με τα εξαρτήματα παραπάνω). Αυτό είναι σημαντικό γιατί αν το μέταλλο ποδηλάτου είναι σε άμεση επαφή με τις ακίδες, θα μπορούσε να δημιουργήσει ανεπιθύμητες συνδέσεις. Η θήκη έχει επίσης τρύπες που κάνουν το φερμουάρ στη θήκη στο ποδήλατο απλό. Το σύρμα 22 μετρητών πρέπει να τυλίγεται κατά μήκος του πλαισίου του ποδηλάτου και να ασφαλίζεται με ταινία ή φερμουάρ. Βεβαιωθείτε ότι αποφεύγετε να τυλίγετε το σύρμα σε σημεία όπου μπορεί να πιαστεί από κινούμενους μηχανισμούς.
Βήμα 3: Τοποθετήστε το ποδήλατο σε στάση ποδηλάτου
Στερεώστε το ποδήλατο στη στάση ποδηλάτου και βεβαιωθείτε ότι είναι αρκετά κοντά στον υπολογιστή σας για να φτάσει το καλώδιο micro-USB στον υπολογιστή σας. Επίσης, βεβαιωθείτε ότι η απόσταση προβολής είναι κατάλληλη για να μπορείτε να βλέπετε άνετα την οθόνη. Ένα σεμινάριο για το πώς να τοποθετήσετε με ασφάλεια το ποδήλατό σας στο περίπτερο μπορείτε να το βρείτε εδώ.
Βήμα 4: Ανεβάστε και δοκιμάστε τον κώδικα Arduino
Εάν είστε νέοι στο Arduino IDE, μπορείτε να βρείτε μια σελίδα εισαγωγής εδώ. Είναι σημαντικό να σημειωθεί ότι ο Leonardo απαιτεί ένα καλώδιο micro-USC για μεταφόρτωση που έχει δυνατότητες μεταφοράς αρχείων. Πολλά καλώδια micro-USB χρησιμοποιούνται μόνο για φόρτιση και αυτά δεν θα λειτουργήσουν. Μόλις το Arduino Leonardo αναγνωριστεί από τον υπολογιστή, αντιγράψτε και επικολλήστε και ανεβάστε τον ακόλουθο κώδικα:
// Αυτός ο κώδικας βρίσκει την ταχύτητα ενός ποδηλάτου και τη μετατρέπει σε πάτημα πληκτρολογίου υπολογιστή
// υπολογισμοί
// ακτίνα ελαστικών ~ 13,5 ίντσες // περιφέρεια = pi*2*r = ~ 85 ίντσες // μέγιστη ταχύτητα 35mph = ~ 616 ίντσες/δευτερόλεπτο // max rps =.2 7,25
#περιλαμβάνω
#define καλάμι A0 // pin συνδεδεμένο στον διακόπτη ανάγνωσης
// μεταβλητές αποθήκευσης
int reedVal; Long timer; // χρόνος μεταξύ μιας πλήρους περιστροφής (σε ms) float mph. ακτίνα πλωτήρα = 13,5; // ακτίνα ελαστικών (σε ίντσες) περιφέρεια πλωτήρα. float vprevious? επιτόκιο επίπλευσης
int maxReedCounter = 100; // λεπτό χρόνος (σε ms) μιας περιστροφής (για αποσύνδεση)
int reedCounter;
void setup () {
reedCounter = maxReedCounter; περιφέρεια = ακτίνα 2*3.14*. pinMode (καλάμι, ΕΙΣΟΔΟΣ); Keyboard.begin (); // TIMER SETUP- η διακοπή χρονομέτρου επιτρέπει ακριβείς χρονομετρήσεις του διακόπτη καλαμιού // για περισσότερες πληροφορίες σχετικά με τη διαμόρφωση των χρονοδιακόπτη arduino δείτε https://arduino.cc/playground/Code/Timer1 cli (); // διακοπή διακοπών
// ορίστε τη διακοπή του χρονοδιακόπτη1 στα 1kHz
TCCR1A = 0; // ορίστε ολόκληρο τον μητρώο TCCR1A σε 0 TCCR1B = 0; // ίδιο για TCCR1B TCNT1 = 0, // ρυθμίστε τον αριθμό χρονοδιακόπτη για προσαυξήσεις 1khz OCR1A = 1999; // = (1/1000)/((1/(16*10^6))*8) - 1 // ενεργοποιήστε τη λειτουργία CTC TCCR1B | = (1 < <WGM12); // Ρυθμίστε το bit CS11 για 8 προκαθοριστές TCCR1B | = (1 << CS11); // ενεργοποίηση χρονοδιακόπτη σύγκριση διακοπής TIMSK1 | = (1 << OCIE1A); sei (); // επιτρέπουν διακοπές // END TIMER SETUP Serial.begin (9600); }
ISR (TIMER1_COMPA_vect) {// Διακοπή σε συχνότητα 1kHz για μέτρηση διακόπτη καλαμιού
reedVal = digitalRead (καλάμι); // λάβετε τιμή A0 εάν (reedVal) {// εάν ο διακόπτης καλαμιών είναι κλειστός εάν (reedCounter == 0) {// min ο χρόνος μεταξύ των παλμών έχει περάσει vprevious = mph; καθυστέρηση (500)? mph = (56,8*float (περιφέρεια))/float (χρονόμετρο); // υπολογίστε χιλιόμετρα μιλίων ανά ώρα = 0; // επαναφέρετε χρονοδιακόπτη reedCounter = maxReedCounter; // επαναφέρετε reedCounter} else {if (reedCounter> 0) {// μην αφήσετε το reedCounter να πάει αρνητικό reedCounter -= 1; // μείωση reedCounter}}} αλλιώς {// αν ο διακόπτης καλαμιού είναι ανοιχτός εάν (reedCounter> 0) {// μην αφήσετε το reedCounter να πάει αρνητικό reedCounter -= 1;/ /decment reedCounter}} if (χρονόμετρο> 2000) {mph = 0; // εάν δεν υπάρχουν ακόμη νέοι παλμοί από το διακόπτη καλαμιών, ρυθμίστε το mph σε 0 vprevious = 0; } else {timer += 1; // χρονοδιακόπτης αύξησης}}
void controlComp () {
if (vprevious mph) // Slow Down Video Speed {Keyboard.press ('s'); Keyboard.releaseAll (); καθυστέρηση (750)? } if (vprevious == mph) // μην κάνετε τίποτα {; }} void loop () {// print mph δύο φορές το δευτερόλεπτο Serial.print ("VPrevious:"); Serial.print ("\ t"); Serial.println (vprevious);
Serial.print ("MPH:");
Serial.print ("\ t"); Serial.println (mph); controlComp (); }
Μόλις φορτωθεί επιτυχώς ο κώδικας, ανοίξτε τη σειριακή οθόνη. Χωρίς κίνηση του πίσω τροχού, τα "MPH" και "VPrevious" πρέπει να είναι 0.00. Περιστρέψτε τον τροχό έτσι ώστε να επιταχύνει για μερικές στροφές και στη συνέχεια να επιβραδύνει. Η οθόνη θα πρέπει να διαβάζει την ταχύτητα και να γράφει d για επιτάχυνση και s για επιβράδυνση. Εάν δεν εμφανίζονται τιμές όταν περιστρέφεται ο τροχός, ο μαγνήτης ενδέχεται να μην ανιχνευθεί από τον διακόπτη καλαμιών. Βεβαιωθείτε ότι το μαγνητικό είναι αρκετά ισχυρό ακούγοντας θόρυβο τερματισμού * clink * όταν ο μαγνήτης περάσει τον διακόπτη.
Βήμα 5: Ρύθμιση του YouTube Controller
Το τελευταίο βήμα είναι να αναδείξετε τα βίντεο YouTube που θέλετε να χρησιμοποιήσετε για να ακολουθήσετε στο ποδήλατό σας. Η ιδέα είναι να έχετε βίντεο πρώτου προσώπου στα οποία μπορείτε να βυθιστείτε πλήρως και να απολαύσετε το τοπίο κατά την ποδηλασία. Έχω συμμορφωθεί με μια λίστα αναπαραγωγής YouTube με μια ποικιλία επιλογών βίντεο. Κυμαίνονται από πολλά κανάλια που ανεβάζουν βίντεο που πληρούν αυτά τα κριτήρια πρώτου προσώπου. Είναι επίσης βίντεο όπως το να πετάς στα σύννεφα και να κάνεις ταξίδια με σιδηροδρομικές διαδρομές για διάφορες περιπέτειες πρώτου προσώπου.
Συνιστάται:
Πώς να χρησιμοποιήσετε μια μονάδα ρολογιού σε πραγματικό χρόνο (DS3231): 5 βήματα
Πώς να χρησιμοποιήσετε μια μονάδα ρολογιού σε πραγματικό χρόνο (DS3231): Το DS3231 είναι ένα χαμηλού κόστους, εξαιρετικά ακριβές ρολόι I2C σε πραγματικό χρόνο (RTC) με ενσωματωμένο κρυσταλλικό ταλαντωτή με αντιστάθμιση θερμοκρασίας (TCXO) και κρύσταλλο. Η συσκευή ενσωματώνει μια είσοδο μπαταρίας και διατηρεί ακριβή χρονομέτρηση όταν η κύρια τροφοδοσία
Σε πραγματικό χρόνο Rubik's Cube Blindfolded Solver Using Raspberry Pi and OpenCV: 4 βήματα
Σε πραγματικό χρόνο Rubik's Cube Blindfolded Solver Using Raspberry Pi and OpenCV: Αυτή είναι η 2η έκδοση του εργαλείου κύβου του Rubik που έχει δημιουργηθεί για επίλυση με δεμένα μάτια. Η 1η έκδοση αναπτύχθηκε από javascript, μπορείτε να δείτε το έργο RubiksCubeBlindfolded1 Σε αντίθεση με την προηγούμενη, αυτή η έκδοση χρησιμοποιεί βιβλιοθήκη OpenCV για τον εντοπισμό των χρωμάτων και
Μετρητής στάθμης νερού σε πραγματικό χρόνο: 6 βήματα (με εικόνες)
Ένας μετρητής στάθμης νερού σε πραγματικό χρόνο: Αυτές οι οδηγίες περιγράφουν τον τρόπο κατασκευής ενός μετρητή στάθμης νερού χαμηλού κόστους σε πραγματικό χρόνο για χρήση σε σκαμμένα πηγάδια. Ο μετρητής στάθμης νερού έχει σχεδιαστεί για να κρέμεται μέσα σε ένα σκαμμένο πηγάδι, να μετρά τη στάθμη του νερού μία φορά την ημέρα και να στέλνει τα δεδομένα μέσω WiFi ή κυψελοειδούς σύνδεσης
Προσομοιωτής παιχνιδιών DIY RACING -- Προσομοιωτής F1: 5 βήματα
Προσομοιωτής παιχνιδιών DIY RACING || F1 SIMULATOR: Γεια σε όλους Καλώς ορίσατε στο κανάλι μου, σήμερα θα σας δείξω πώς δημιουργώ ένα " Racing Game Simulator " με τη βοήθεια του Arduino UNO. αυτό δεν είναι ένα ιστολόγιο κατασκευής, απλώς επισκόπηση και δοκιμή του προσομοιωτή. Ολοκληρωμένο blog δημιουργίας σύντομα
Ρύθμιση του DS3231 RTC (Ρολόι σε πραγματικό χρόνο) με ακρίβεια, γρήγορη και αυτοματοποιημένη χρήση Java (+-1s): 3 βήματα
Ρύθμιση του DS3231 RTC (Ρολόι σε πραγματικό χρόνο) με ακρίβεια, γρήγορη και αυτοματοποιημένη χρήση Java (+-1s): Αυτό το εγχειρίδιο θα σας δείξει πώς να ρυθμίσετε την ώρα σε ένα ρολόι πραγματικού χρόνου DS3231 χρησιμοποιώντας ένα Arduino και μια μικρή εφαρμογή Java που χρησιμοποιεί η σειριακή σύνδεση του Arduino. Η βασική λογική αυτού του προγράμματος: 1. Το Arduino στέλνει σειριακό αίτημα