Πίνακας περιεχομένων:

Προσομοιωτής ποδηλάτου με ρύθμιση ταχύτητας σε πραγματικό χρόνο: 5 βήματα
Προσομοιωτής ποδηλάτου με ρύθμιση ταχύτητας σε πραγματικό χρόνο: 5 βήματα

Βίντεο: Προσομοιωτής ποδηλάτου με ρύθμιση ταχύτητας σε πραγματικό χρόνο: 5 βήματα

Βίντεο: Προσομοιωτής ποδηλάτου με ρύθμιση ταχύτητας σε πραγματικό χρόνο: 5 βήματα
Βίντεο: Πώς να κάνεις καλά πράγματα να σου συμβούν. Ακουστικό βιβλίο 2024, Νοέμβριος
Anonim
Προσομοιωτής ποδηλάτου με προσαρμογή ταχύτητας σε πραγματικό χρόνο
Προσομοιωτής ποδηλάτου με προσαρμογή ταχύτητας σε πραγματικό χρόνο

Αυτό το έργο χρησιμοποιεί έναν μαγνητικό διακόπτη καλαμιού για να δημιουργήσει ένα ταχύμετρο και να ελέγξει την ταχύτητα βίντεο των βίντεο ποδηλασίας πρώτου προσώπου στο 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
Ανεβάστε και δοκιμάστε τον κώδικα 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

Το τελευταίο βήμα είναι να αναδείξετε τα βίντεο YouTube που θέλετε να χρησιμοποιήσετε για να ακολουθήσετε στο ποδήλατό σας. Η ιδέα είναι να έχετε βίντεο πρώτου προσώπου στα οποία μπορείτε να βυθιστείτε πλήρως και να απολαύσετε το τοπίο κατά την ποδηλασία. Έχω συμμορφωθεί με μια λίστα αναπαραγωγής YouTube με μια ποικιλία επιλογών βίντεο. Κυμαίνονται από πολλά κανάλια που ανεβάζουν βίντεο που πληρούν αυτά τα κριτήρια πρώτου προσώπου. Είναι επίσης βίντεο όπως το να πετάς στα σύννεφα και να κάνεις ταξίδια με σιδηροδρομικές διαδρομές για διάφορες περιπέτειες πρώτου προσώπου.

Συνιστάται: