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

Εξαιρετικά βασική, μη βαθμονομημένη σερβο πυξίδα: 7 βήματα
Εξαιρετικά βασική, μη βαθμονομημένη σερβο πυξίδα: 7 βήματα

Βίντεο: Εξαιρετικά βασική, μη βαθμονομημένη σερβο πυξίδα: 7 βήματα

Βίντεο: Εξαιρετικά βασική, μη βαθμονομημένη σερβο πυξίδα: 7 βήματα
Βίντεο: Arducopter σε αγωνιστικό τετρακόπτερο. Αυτό δεν είναι INAV για εσάς! Μέρος πρώτο. Βασική ρύθμιση 2024, Νοέμβριος
Anonim
Εξαιρετικά βασική, μη βαθμονομημένη σερβο πυξίδα
Εξαιρετικά βασική, μη βαθμονομημένη σερβο πυξίδα

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

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

Προμήθειες

  • Micro servo (χρησιμοποίησα το HXT900 Micro Servo από το Hobby King)
  • Arduino (χρησιμοποίησα Uno)
  • Ο αισθητήρας είναι ο LSM303DLHC
  • Καλώδια, συγκολλήσεις κλπ
  • Breadboard

Βήμα 1: Συγκεντρώστε τα πάντα

Συγκεντρώστε τα πάντα
Συγκεντρώστε τα πάντα
Συγκεντρώστε τα πάντα
Συγκεντρώστε τα πάντα

Βεβαιωθείτε ότι οι κεφαλίδες σας είναι κολλημένες στον αισθητήρα σας σωστά και ότι έχετε τα καλώδια και το ψωμί σας.

Βήμα 2: Βιβλιοθήκες κώδικα

Βιβλιοθήκες κώδικα
Βιβλιοθήκες κώδικα
Βιβλιοθήκες κώδικα
Βιβλιοθήκες κώδικα

Θα θέλετε να βεβαιωθείτε ότι έχετε κατεβάσει αυτά.

Οι άλλες βιβλιοθήκες που θα χρησιμοποιείτε, το wire.h και το servo.h, θα πρέπει να είναι ήδη εγκατεστημένες από προεπιλογή.

Βήμα 3: Κωδικός

Ανοίξτε τη βιβλιοθήκη σκίτσων «Πυξίδα» από αυτό που μόλις κατεβάσατε. Για να χρησιμοποιήσετε το σερβο, θέλετε να βάλετε τον κωδικό σερβο σε αυτόν τον κώδικα. Το συνδύασα με τον κώδικα της Χάνι Κιάνα από εδώ. Το πρωτότυπο είναι της Χάνι Κιανή, όχι εγώ. Θα πρέπει να μοιάζει με αυτό.

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

#include #include #include #include Adafruit_LSM303DLH_Mag_Unified mag = Adafruit_LSM303DLH_Mag_Unified (12345); int servoPin = 3; Servo Servo1; void setup (void) {Serial.begin (9600); Wire.begin (); Servo1.attach (servoPin); Serial.println ("Δοκιμή μαγνητόμετρου"); Serial.println (""); εάν (! mag.begin ()) {Serial.println ("Ωχ, δεν εντοπίστηκε LSM303 … Ελέγξτε την καλωδίωση!"); ενώ (1)? }} void loop (void) { / * Λάβετε ένα νέο συμβάν αισθητήρα * / sensors_event_t event; mag.getEvent (& event); float Pi = 3.14159; // Υπολογίστε τη γωνία του διανύσματος y, x επικεφαλίδα float = (atan2 (event.magnetic.y, event.magnetic.x) * 180) / Pi; // Κανονικοποίηση σε 0-360 εάν (επικεφαλίδα <0) {επικεφαλίδα = 360 + επικεφαλίδα; } Serial.print ("Επικεφαλίδα πυξίδας:"); Serial.println (επικεφαλίδα); Servo1.write (180 κεφαλίδες); καθυστέρηση (10)? }

Βήμα 4: Συνδέστε το μαζί

Wire It Together
Wire It Together

Θέλετε το πιο αριστερό pin-SCL- συνδεδεμένο στην είσοδο δεδομένων A5

Το δίπλα- SDA- συνδεδεμένο στη θύρα Α4.

Το έδαφος πηγαίνει στο έδαφος.

Το VIN πηγαίνει στη θύρα 5v.

Βήμα 5: Προσθέστε Servo στο Wiring

Προσθήκη Servo στο Wiring
Προσθήκη Servo στο Wiring

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

Βήμα 6: Δοκιμάστε τον κώδικα

Δοκιμάστε τον Κώδικα
Δοκιμάστε τον Κώδικα

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

Συνιστάται: