Πίνακας περιεχομένων:
- Βήμα 1: Εξοπλισμός
- Βήμα 2: Αρχείο εικόνας διαγράμματος κυκλώματος
- Βήμα 3: Fritzing File of Circuit Diagram
- Βήμα 4: Κωδικός πομπού
- Βήμα 5: Κωδικός παραλήπτη
- Βήμα 6: Αρχεία INO
- Βήμα 7: Σύνδεσμος Βιβλιοθηκών
Βίντεο: Ασύρματο αυτοκίνητο ελεγχόμενο με κίνηση: 7 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Σε αυτό το σεμινάριο θα μάθουμε πώς να φτιάχνουμε ένα αυτοκίνητο με χειρονομία ή οποιοδήποτε ρομπότ. Αυτό το έργο έχει δύο μέρη, το ένα μέρος είναι μονάδα πομπού και το άλλο μέρος είναι μονάδα δέκτη. Η μονάδα πομπού είναι πραγματικά τοποθετημένη σε γάντια χειρός και η μονάδα δέκτη τοποθετείται μέσα σε ένα αυτοκίνητο ή οποιοδήποτε ρομπότ. Itsρθε η ώρα να φτιάξουμε ένα ωραίο αυτοκίνητο. Πάμε!
Βήμα 1: Εξοπλισμός
Μονάδα πομπού
1. Arduino Nano.
2. Μονάδα αισθητήρα MPU6050.
3. Πομπός RF 433 MHz.
4. Οποιοσδήποτε τύπος μπαταρίας 3 κυττάρων, μπαταρίας 11,1 volt (εδώ έχω χρησιμοποιήσει κελί νομίσματος).
5. Vero-Board.
6. Γάντια χεριών.
Μονάδα δέκτη
1. Arduino Nano ή Arduino Uno.
2. Μονάδα οδήγησης μοτέρ L298N.
3. Πλαίσιο ρομπότ 4 τροχών με κινητήρες.
4. Δέκτης RF 433 RF.
5. Μπαταρία Li-po 3 κυψελών, 11,1 volt.
6. Vero-board.
Οι υπολοιποι
1. Κόλλα ραβδιά και πιστόλι.
2. Καλώδια βραχυκυκλωτήρων.
3. Βιδωτά προγράμματα οδήγησης
4. Σετ συγκόλλησης.
και τα λοιπά.
Βήμα 2: Αρχείο εικόνας διαγράμματος κυκλώματος
Βήμα 3: Fritzing File of Circuit Diagram
Βήμα 4: Κωδικός πομπού
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
MPU6050 mpu6050 (Σύρμα);
χρονοδιακόπτης = 0;
ελεγκτής char *
void setup ()
{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (αληθινό); vw_set_ptt_inverted (true); // vw_set_tx_pin (10); vw_setup (4000); // ταχύτητα μεταφοράς δεδομένων Kbps
}
κενός βρόχος ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update ();
εάν (millis () - χρονόμετρο> 1000)
{Serial.println ("============================================ =========== "); Serial.print ("temp:"); Serial.println (mpu6050.getTemp ()); Serial.print ("accX:"); Serial.print (mpu6050.getAccX ()); Serial.print ("\ taccY:"); Serial.print (mpu6050.getAccY ()); Serial.print ("\ taccZ:"); Serial.println (mpu6050.getAccZ ()); Serial.print ("gyroX:"); Serial.print (mpu6050.getGyroX ()); Serial.print ("\ tgyroY:"); Serial.print (mpu6050.getGyroY ()); Serial.print ("\ tgyroZ:"); Serial.println (mpu6050.getGyroZ ()); Serial.print ("accAngleX:"); Serial.print (mpu6050.getAccAngleX ()); Serial.print ("\ taccAngleY:"); Serial.println (mpu6050.getAccAngleY ()); Serial.print ("gyroAngleX:"); Serial.print (mpu6050.getGyroAngleX ()); Serial.print ("\ tgyroAngleY:"); Serial.print (mpu6050.getGyroAngleY ()); Serial.print ("\ tgyroAngleZ:"); Serial.println (mpu6050.getGyroAngleZ ()); Serial.print ("angleX:"); Serial.print (mpu6050.getAngleX ()); Serial.print ("\ tangleY:"); Serial.print (mpu6050.getAngleY ()); Serial.print ("\ tangleZ:"); Serial.println (mpu6050.getAngleZ ()); Serial.println ("============================================= ========== / n "); χρονόμετρο = millis (); }
/////////////////////////////////////////////////////////////////////////////////////
if (mpu6050.getAccAngleX () 30) {controller = "X2"; vw_send ((uint8_t *) ελεγκτής, strlen (ελεγκτής)); vw_wait_tx (); // Περιμένετε μέχρι να φύγει ολόκληρο το μήνυμα Serial.println ("FORWARD"); } else if (mpu6050.getAccAngleY ()> 40) {controller = "Y1"; vw_send ((uint8_t *) ελεγκτής, strlen (ελεγκτής)); vw_wait_tx (); // Περιμένετε μέχρι να φύγει ολόκληρο το μήνυμα Serial.println ("LEFT"); } else if (mpu6050.getAccAngleY () <-40) {controller = "Y2"; vw_send ((uint8_t *) ελεγκτής, strlen (ελεγκτής)); vw_wait_tx (); // Περιμένετε μέχρι να φύγει ολόκληρο το μήνυμα Serial.println ("ΔΕΞΙΑ"); } else if (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {controller = "A1"; vw_send ((uint8_t *) ελεγκτής, strlen (ελεγκτής)); vw_wait_tx (); // Περιμένετε μέχρι να φύγει ολόκληρο το μήνυμα Serial.println ("STOP"); }}
Βήμα 5: Κωδικός παραλήπτη
#περιλαμβάνω
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; void setup () {Serial.begin (9600); vw_set_ptt_inverted (true); // Απαιτείται για DR3100 vw_set_rx_pin (12). vw_setup (4000); // Bits ανά δευτερόλεπτο pinMode (13, OUTPUT); pinMode (LA, OUTPUT); pinMode (LB, OUTPUT); pinMode (RA, OUTPUT); pinMode (RB, OUTPUT); vw_rx_start (); // Ξεκινήστε το PLL του δέκτη εκτελώντας Serial.println ("Όλα ΟΚ");
}
void loop () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message (buf, & buflen)) // Μη αποκλεισμός
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD"); οπισθοδρομικός(); καθυστέρηση (100)? //μακριά από(); } else if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FORWARD"); προς τα εμπρός(); καθυστέρηση (100)? //μακριά από(); }
αλλιώς εάν ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("ΑΡΙΣΤΕΡΑ"); αριστερά(); καθυστέρηση (100)? //μακριά από(); }
αλλιώς εάν ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("ΔΕΞΙΑ"); σωστά(); καθυστέρηση (100)? //μακριά από(); } else if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); μακριά από(); καθυστέρηση (100)? }} else {Serial.println ("Δεν ελήφθη σήμα"); }}
κενό προς τα εμπρός ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
κενό προς τα πίσω ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
κενό αριστερά ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
άκυρο δικαίωμα ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
άκυρο ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
Βήμα 6: Αρχεία INO
Βήμα 7: Σύνδεσμος Βιβλιοθηκών
Εικονική βιβλιοθήκη καλωδίων:
MPU6050_tockn Libraby:
Wire Library:
Συνιστάται:
Τηλεχειριζόμενο αυτοκίνητο - ελεγχόμενο χρησιμοποιώντας ασύρματο χειριστήριο Xbox 360: 5 βήματα
Τηλεχειριζόμενο αυτοκίνητο - ελεγχόμενο με χρήση ασύρματου ελεγκτή Xbox 360: Αυτές είναι οδηγίες για να φτιάξετε το δικό σας τηλεχειριζόμενο αυτοκίνητο, που ελέγχεται χρησιμοποιώντας ασύρματο χειριστήριο Xbox 360
Αυτοκίνητο ελεγχόμενο με κίνηση: 5 βήματα (με εικόνες)
Αυτοκίνητο ελεγχόμενο με χειρονομία: Τα ρομπότ παίζουν σημαντικό ρόλο στην αυτοματοποίηση σε όλους τους τομείς όπως οι κατασκευές, οι στρατιωτικές, οι ιατρικές, οι κατασκευές κλπ. Αφού έφτιαξα μερικά βασικά ρομπότ όπως το ελεγχόμενο αυτοκίνητο χρησιμοποιώντας Bluetooth, έχω αναπτύξει αυτό το ges με βάση το επιταχυνσιόμετρο
Ασύρματο σημείο πρόσβασης πενήντα μέτρων με ασύρματο προσαρμογέα TP Link WN7200ND USB στο Raspbian Stretch: 6 βήματα
Ασύρματο σημείο πρόσβασης πενήντα μέτρων με ασύρματο προσαρμογέα TP Link WN7200ND USB στο Raspbian Stretch: Το Raspberry Pi είναι εξαιρετικό για τη δημιουργία ασφαλούς ασύρματων σημείων πρόσβασης, αλλά δεν έχει καλή εμβέλεια, χρησιμοποίησα ασύρματο προσαρμογέα USB TP Link WN7200ND για επέκταση. Θέλω να μοιραστώ πώς να το κάνωΓιατί θέλω να χρησιμοποιήσω raspberry pi αντί για δρομολογητή; T
Βιντεοπαιχνίδι DIY ελεγχόμενο από την κίνηση του κεφαλιού (επαυξημένη πραγματικότητα): 4 βήματα
DIY Video Game Controlled by Head Movement (Augmented Reality): Θέλω να σας δείξω πόσο εύκολο στις μέρες μας είναι να φτιάξεις ένα δικό σου παιχνίδι που μπορεί να ελεγχθεί κινώντας το σώμα σου. Θα χρειαστείτε μόνο ένα φορητό υπολογιστή με κάμερα web και κάποια ικανότητα προγραμματισμού. Εάν δεν έχετε φορητό υπολογιστή και κάμερα web ή αν δεν ξέρετε πώς να προγραμματίσετε, Yo
Δημιουργήστε ένα ρομπότ ελεγχόμενο με κίνηση: 4 βήματα (με εικόνες)
Build a Gesture Controlled Robot: Σε αυτό το Instructable χτίζουμε ένα ρομπότ Arcbotics Sparki που μπορεί να ελεγχθεί με τρισδιάστατες χειρονομίες. Ωραίο χαρακτηριστικό αυτού του έργου είναι ότι δεν απαιτείται πρόσθετη συσκευή όπως smartphone ή γάντι για τον έλεγχο του ρομπότ. Απλώς μετακινήστε το χέρι σας πάνω από το ele