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

Gyro Sensor Controlled Platform for Maze Puzzle: 3 βήματα
Gyro Sensor Controlled Platform for Maze Puzzle: 3 βήματα

Βίντεο: Gyro Sensor Controlled Platform for Maze Puzzle: 3 βήματα

Βίντεο: Gyro Sensor Controlled Platform for Maze Puzzle: 3 βήματα
Βίντεο: An Impossible Perpetual Motion Device?! 😳 #Shorts 2024, Ιούλιος
Anonim
Gyro Sensor Controlled Platform for Maze Puzzle
Gyro Sensor Controlled Platform for Maze Puzzle

Αυτό το διδακτικό δημιουργήθηκε για να εκπληρώσει την απαίτηση έργου του μαθήματος Make στο Πανεπιστήμιο της Νότιας Φλόριντα (www.makecourse.com)"

Αυτό το απλό έργο εμπνευσμένο από μια πλατφόρμα αυτοεξισορρόπησης που λαμβάνει ανατροφοδότηση από τον αισθητήρα επιταχυνσιόμετρου. Δείτε το αν δεν το έχετε κάνει ήδη.

Το έργο χρησιμοποιεί το Arduino UNO - Εύκολο στη χρήση μικροελεγκτή που μπορείτε να προμηθευτείτε από ιστοσελίδες online αγορών! Σε αυτό το διδακτικό, θα δείξω πώς μπορείτε να φτιάξετε τη δική σας προγραμματιζόμενη πλατφόρμα κλίσης - από τη διαδικασία σχεδιασμού έως την προμήθεια εξαρτημάτων, αρχεία τρισδιάστατης εκτύπωσης, συναρμολόγηση και προγραμματισμό. Συνεχίστε και προχωράμε!

Βήμα 1: Απαιτούμενα εξαρτήματα και ανταλλακτικά 3D εκτύπωσης

Απαιτούμενα εξαρτήματα και ανταλλακτικά 3D εκτύπωσης
Απαιτούμενα εξαρτήματα και ανταλλακτικά 3D εκτύπωσης
Απαιτούμενα εξαρτήματα και ανταλλακτικά 3D εκτύπωσης
Απαιτούμενα εξαρτήματα και ανταλλακτικά 3D εκτύπωσης
Απαιτούμενα εξαρτήματα και ανταλλακτικά 3D εκτύπωσης
Απαιτούμενα εξαρτήματα και ανταλλακτικά 3D εκτύπωσης

Ο κατάλογος των συστατικών που χρησιμοποιούνται για το έργο:

1. Μικροελεγκτής Arduino UNO.

2. Breadboard με καλώδια βραχυκυκλωτήρων.

3. Ένα κουτί.

4. Κυκλική πλατφόρμα

5. Maze.

6. Σύνδεσμοι - 3 Όχι

7. Βάση για την τοποθέτηση τριών σερβιτόρων.

8. Gyro/Accelerometer sensor. (MPU6050)

Σύρματα 9,1τμ mm (500cm) - 4 Όχι

10. Μπάλες από ατσάλι διαμέτρου 3mm.

Τα περισσότερα από τα μέρη που χρησιμοποιούνται για το έργο είναι 3D εκτύπωση και έχω επισυνάψει το stl. αρχεία έτοιμα για εκτύπωση.

Συγκεντρώστε όλα τα μέρη όπως φαίνεται στα σχήματα. Ο λαβύρινθος είναι κολλημένος στην κυκλική πλατφόρμα για να φαίνεται όπως στην εικόνα. Τα τρία σερβίτσια πρέπει να κολληθούν εν θερμώ στη βάση τρισδιάστατης εκτύπωσης που είναι τοποθετημένη στο καπάκι του κουτιού. Το κουτί περιέχει τα Arduino UNO και Breadboard συναρμολογημένα όπως φαίνεται στο σχήμα. Η ρύθμιση του breadboard θα συζητηθεί στο επόμενο βήμα.

Μετά τη συναρμολόγηση, το τελικό πρωτότυπο θα πρέπει να φαίνεται όπως στην τελευταία εικόνα.

Βήμα 2: Ρύθμιση Breadboard

Ρύθμιση Breadboard
Ρύθμιση Breadboard
Ρύθμιση Breadboard
Ρύθμιση Breadboard
Ρύθμιση Breadboard
Ρύθμιση Breadboard

Μετά τη συναρμολόγηση, ο αισθητήρας Arduino, επιταχυνσιόμετρο, τα σερβο είναι συνδεδεμένα όπως περιγράφεται στα παρακάτω.

Οι θετικές και αρνητικές ράγες στο breadboard συνδέονται με 5V και GND του Arduino αντίστοιχα. Ο αισθητήρας συνδέεται με το Arduino χρησιμοποιώντας τα σύρματα μισού μέτρου που πρόκειται να συγκολληθούν στον αισθητήρα έτσι ώστε οι ακίδες VCC και GND του αισθητήρα να συνδεθούν με τις ράγες +ve και -ve στο breadboard αντίστοιχα. Οι ακίδες SCL και SDA του αισθητήρα που θα συνδεθούν με τις αναλογικές ακίδες Α5 και Α4 του Arduino. Οι ακίδες PWM των τριών servos συνδέονται με 2, 3, 4 ακίδες του Arduino αντίστοιχα και οι ακίδες +ve και -ve όλων των servos συνδέονται με τις ράγες +ve και -ve της σανίδας. με αυτό, οι συνδέσεις μας έχουν τελειώσει.

Βήμα 3: Κωδικός για το έργο

μπορείτε να κατεβάσετε τις βιβλιοθήκες MPU6050 και Servo από το διαδίκτυο και να τις χρησιμοποιήσετε για το έργο. Συγκεντρώστε και ανεβάστε τον παρακάτω κώδικα στο Arduino και το έργο είναι έτοιμο. Γείρετε τον αισθητήρα και μπορείτε να δείτε τον λαβύρινθο να γέρνει προς την ίδια κατεύθυνση! Χρειάζεται λίγος χρόνος για να λύσετε το παζλ, καθώς είναι λίγο δύσκολο, αλλά είναι διασκεδαστικό να παίζετε.

#περιλαμβάνω

#περιλαμβάνω

#περιλαμβάνω

Servo Servo1;

Servo Servo2;

Servo Servo3;

Αισθητήρας MPU6050

int servoPos1 = 90;

int servoPos2 = 90;

int servoPos3 = 90;

int16_t ax, ay, az;

int16_t gx, gy, gz;

void setup ()

{

Servo1.attach (2);

Servo2.attach (3);

Servo3.attach (4);

Wire.begin ();

Serial.begin (9600);

}

κενός βρόχος ()

{

sensor.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);

ax = χάρτης (ax, -17000, 17000, 0, 180);

ay = χάρτης (ay, -17000, 17000, 0, 180);

Serial.print ("ax =");

Serial.print (ax);

Serial.print ("ay =");

Serial.println (ay);

αν (ax <80 && ay <80) {

Servo1.write (servoPos1 ++);

Servo2.write (servoPos2--);

Servo3.write (servoPos3--); }

αν (τσεκούρι 120) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2 ++);

Servo3.write (servoPos3--); }

if (ax> 120 && ay> 0) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2--);

Servo3.write (servoPos3 ++); }

εάν (ax == 90 && ay == 90) {

Servo1.write (0);

Servo2.write (0);

Servo3.write (0);

}

}

Συνιστάται: