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

Build Machine Watcher: 9 Βήματα
Build Machine Watcher: 9 Βήματα

Βίντεο: Build Machine Watcher: 9 Βήματα

Βίντεο: Build Machine Watcher: 9 Βήματα
Βίντεο: БЕСПЛАТНОЕ ЭЛЕКТРИЧЕСТВО ДЛЯ ДОМА своими руками, ВАМ НЕ НУЖНО больше платить! 2024, Ιούλιος
Anonim
Build Machine Watcher
Build Machine Watcher
Build Machine Watcher
Build Machine Watcher

Το σημείο εκκίνησης για αυτό το έργο ήταν να εργαστεί σε ένα συγκεκριμένο έργο για να μάθει μερικά πράγματα σχετικά με τις πλακέτες μικροελεγκτών.

Η αρχική ιδέα ήταν να δημιουργηθεί ένα φυσικό αντικείμενο που θα μπορούσε να παρακολουθεί ένα Σύστημα Συνεχούς Ενσωμάτωσης (VSTS | Azure DevOps) και να αναφέρει αστοχίες δημιουργίας λογισμικού. Λόγω ανησυχιών ασφαλείας από το τμήμα πληροφορικής, μου αρνήθηκε να συνδέσω μια "μη τυπική" συσκευή απευθείας στο εταιρικό δίκτυο.

Κατέληξα στην αρχιτεκτονική που φαίνεται στην παραπάνω εικόνα. Η ροή εργασίας εκτέλεσης μπορεί να συνοψιστεί ως εξής:

Μια εφαρμογή επιτραπέζιων υπολογιστών σαρώνει (τραβά) Ορισμούς οικοδόμησης VSTS. Αναλύει τα αποτελέσματα της κατασκευής και, στη συνέχεια, στέλνει μια εντολή στη φυσική συσκευή που εκτελεί μια μικρή κινούμενη ακολουθία πριν εμφανίσει είτε την κόκκινη είτε την πράσινη σημαία.

Βήμα 1: Απαραίτητα ανταλλακτικά

Η παρακάτω λίστα συνοψίζει όλα τα απαραίτητα στοιχεία:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 Expension Shield (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 ενότητες XBee S1 (https://www.adafruit.com/product/128).
  • 1 Dongle XBee explorer (https://www.sparkfun.com/products/11697).
  • 2 συνεχείς σερβοκινητήρες 5VDC με αξεσουάρ στερέωσης (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 τροφοδοτικό 9VDC.
  • 3 LED.
  • 3 αντιστάσεις 220 Ohm.
  • θερμοανασυρόμενο μανίκι.
  • 1 κουμπί.
  • Αντίσταση έλξης 10KΩ για το τράβηγμα.
  • Πυκνωτής 100nF.
  • ηλεκτρικά καλώδια.
  • λωρίδα (για την τοποθέτηση του κουμπιού)
  • 5mm ξύλο (50x50cm).
  • ξύλινο ραβδί τετράγωνο τμήμα 5x5 mm (1m).
  • χαρτόνι.
  • Βίδα 10 Χ διάμετρος 2mm.
  • 4 βίδες διαμέτρου 5 mm.
  • ισχυρός μαγνήτης.
  • μονάδα στροφής. Επαναχρησιμοποίησα το εσωτερικό κινούμενο μέρος ενός φωτός που αναβοσβήνει. μπορείτε να βάλετε ό, τι θέλετε. Απλώς θα πρέπει να φροντίσετε ώστε τα 2 κινητά μέρη να μπορούν να κινούνται ελεύθερα χωρίς να αγγίζουν μεταξύ τους.

Βήμα 2: Χτίζοντας το κουτί

Χτίζοντας το κουτί
Χτίζοντας το κουτί

Στην πραγματικότητα, μπορείτε να έχετε ένα κουτί με όποιο σχήμα θέλετε. Τα βασικά πράγματα που πρέπει να σκεφτείτε πριν ξεκινήσετε είναι πού θα βρίσκονται τα κινούμενα μέρη και να διασφαλίσετε ότι θα μπορούν να κινούνται ελεύθερα χωρίς να αγγίζουν μεταξύ τους. Ένα άλλο σημείο είναι πού θα τοποθετήσετε τη συσκευή; Κατέληξα με έναν μαγνήτη (δυνατό) για να τον κολλήσω σε οποιαδήποτε μεταλλική βάση. εάν θέλετε να δημιουργήσετε το ίδιο πλαίσιο, μπορείτε να ακολουθήσετε τις οδηγίες στο αρχείο box_drawings.pdf.

Σε αυτή την περίπτωση πρέπει απλά να κόψετε όλα τα διαφορετικά κομμάτια, να κάνετε τις τρύπες για τους σερβοκινητήρες, τα LED, το κουμπί και τις βίδες και τέλος να κολλήσετε όλα τα μέρη μαζί. Μόλις στεγνώσει, λίγο τρίψιμο και λίγο χρώμα.

Οι δύο σημαίες κατασκευάστηκαν χρησιμοποιώντας λίγο κόκκινο και πράσινο χαρτόνι. Για να στερεώσετε τον ιστό του σερβοκινητήρα, μπορείτε να χρησιμοποιήσετε τα εξαρτήματα στερέωσης που παρέχονται όταν τα αγοράζετε.

Βήμα 3: Ρύθμιση Arduino

Ρύθμιση Arduino
Ρύθμιση Arduino

Τα στοιχεία που συνδέονται με τον πίνακα επέκτασης Arduino είναι:

  • D2 PIN: το κουμπί.
  • D4 PIN: η λυχνία LED που λέει ότι το σύστημα είναι ενεργοποιημένο.
  • D5 PIN: η λυχνία LED που λέει ότι εκτελούμε έναν κύκλο.
  • D6 PIN: η λυχνία LED που λέει ότι η συσκευή έλαβε νέο μήνυμα.
  • D9 PIN: το παλμικό σήμα PWM για τον σερβοκινητήρα που χειρίζεται το γυροσκόπιο.
  • D10 PIN: το παλμικό σήμα PWM για τον σερβοκινητήρα που χειρίζεται τη σημαία.
  • Υποδοχή XBee: μία μονάδα ZigBee.

Το παραπάνω διάγραμμα δείχνει πώς συνδέονται όλα τα στοιχεία στον πίνακα.

Για τα LED, η αντίσταση και τα καλώδια συγκολλούνται απευθείας σε αυτό (φροντίστε την πολικότητα). Όλα στη συνέχεια συσκευάζονται σε κάποιο θερμοανασυρόμενο μανίκι.

Για το κουμπί, όλα τα μέρη (κουμπί, αντίσταση και πυκνωτής) συγκολλούνται απευθείας σε μια μικρή δορυφορική ταινία. Η πλάκα ταινίας στη συνέχεια στερεώνεται απευθείας με δύο βίδες (2mm)

Οι σερβοκινητήρες λειτουργούν με ισχύ 5V, μπορούν έτσι να συνδεθούν απευθείας στο Arduino. Εάν χρησιμοποιείτε αυτά με υψηλότερη τάση (12V) θα πρέπει να προσθέσετε ένα άλλο στρώμα για την παροχή ρεύματος.

Για τις μονάδες XBee, μόλις διαμορφωθούν για να μιλούν μαζί (δείτε την επόμενη ενότητα), μπορούν να συνδεθούν απευθείας στις πρίζες.

Σημειώσεις: Οι λυχνίες LED και το κουμπί ώθησης θα μπορούσαν να έχουν συνδεθεί απευθείας με τις καρφίτσες Arduino καθώς ενδέχεται να υλοποιήσουν εσωτερικά τους απαιτούμενους τίτλους. Απλώς έκανα τον παλιό τρόπο καθώς αυτή η πτυχή δεν ήταν πολύ σαφής για μένα.

Βήμα 4: Λογισμικό - XCTU

Λογισμικό - XCTU
Λογισμικό - XCTU

Όπως αναφέρθηκε παραπάνω, οι δύο συσκευές XBee πρέπει να έχουν ρυθμιστεί ώστε να μιλούν μαζί. Για να το κάνετε αυτό, πρέπει να χρησιμοποιήσετε το ειδικό λογισμικό X-CTU της DIGI. Πρέπει να κάνετε αυτό το βήμα διαμόρφωσης μόνο μία φορά. ακολουθήστε τη διαδικασία που περιγράφεται στο αρχείο xbee_configuration.pdf.

Μόλις ολοκληρωθεί η διαμόρφωση, μπορείτε να συνδέσετε κάθε μονάδα στην πρίζα τους. Ένα στον μετατροπέα USB/Serial και ένα στον πίνακα επέκτασης Arduino.

Ο μετατροπέας USB/Serial θα πρέπει να αναγνωρίζεται αυτόματα από τα Windows 10. Εάν δεν είναι, ίσως χρειαστεί να εγκαταστήσετε το πρόγραμμα οδήγησης χειροκίνητα

Σημείωση:

Η χρήση ενοτήτων XBee για την πραγματοποίηση μιας βασικής σειριακής επικοινωνίας είναι λίγο υπερβολική. Τη στιγμή που ξεκίνησα το έργο δεν κατάφερα να βρω απλές σειριακές συσκευές επικοινωνίας που να μπορούν να χρησιμοποιηθούν εύκολα στα Windows 10 (ζητήματα προγραμμάτων οδήγησης). Wasταν επίσης μια ευκαιρία να μάθετε μερικά πράγματα για το

Βήμα 5: Λογισμικό - Σχέδιο Arduino

Λογισμικό - Arduino Sketch
Λογισμικό - Arduino Sketch

Για τον προγραμματισμό του Arduino χρησιμοποιούμε το IDE προσβάσιμο από τον επίσημο ιστότοπο.

Η λογική του προγράμματος είναι μάλλον απλή, απλώς ακούει την προεπιλεγμένη σειριακή θύρα του πίνακα για μεμονωμένα γράμματα (‘a’, ‘b’,…). Εάν ο χαρακτήρας που λαμβάνεται ταιριάζει με μια γνωστή εντολή, τότε μια υπο-συνάρτηση αναπαράγει την αντίστοιχη ακολουθία.

Οι 2 κύριες χρήσιμες εντολές είναι το animation επιτυχίας (‘a’) και το animation error (‘b’).

Για να μπορέσετε να παίξετε (ή να διορθώσετε σφάλματα) λίγο περισσότερο με το πλαίσιο, υπάρχουν μερικές επιπλέον εντολές που μπορούν να εκτελεστούν. Αυτοί είναι:

  • ‘O’: αναγκάστε το LED ON να είναι ON
  • ‘P’: αναγκάστε το LED ON να είναι OFF
  • «Q»: αναγκάστε το LED νέου μηνύματος να είναι ενεργοποιημένο
  • ‘R’: αναγκάστε το LED νέου μηνύματος να είναι OFF
  • ‘S’: αναγκάστε το LED Cycle να είναι αναμμένο
  • «T»: αναγκάστε το LED Cycle να είναι OFF
  • ‘U’: ενεργοποίηση του σερβοκινητήρα του γυροσκόπιο
  • ‘V’: ενεργοποίηση του σερβοκινητήρα της σημαίας.

Εκτός από τη σειριακή εντολή υπάρχει μια υπο-ρουτίνα (handlePushButton) που ενεργοποιείται όταν πατηθεί το κουμπί στη συσκευή. Σε αυτή την περίπτωση, το κινούμενο σχέδιο σφάλματος ή επιτυχίας αναπαράγεται αυτόματα. Αυτή η λειτουργία σας επιτρέπει να ελέγξετε αν η φυσική συσκευή έχει τοποθετηθεί σωστά.

Ο κώδικας του σκίτσου Arduino βρίσκεται στο ενιαίο αρχείο bsldevice.ino. Μπορείτε να το ανεβάσετε απευθείας χρησιμοποιώντας το IDE.

Βήμα 6: Λογισμικό - Εφαρμογή επιφάνειας εργασίας

Λογισμικό - Εφαρμογή επιφάνειας εργασίας
Λογισμικό - Εφαρμογή επιφάνειας εργασίας

Ο σκοπός της εφαρμογής για επιτραπέζιους υπολογιστές είναι να παρακολουθεί τον ιστότοπο του Microsoft Azure DevOps (προηγουμένως VSTS) και να εντοπίζει εάν ένας ορισμός κατασκευής είναι επιτυχής ή παρουσιάζει σφάλμα. Κάθε φορά που ολοκληρώνεται μια κατασκευή, η εφαρμογή επιφάνειας εργασίας καθορίζει την κατάσταση της κατασκευής και στέλνει την αντίστοιχη εντολή (‘a’ ή ‘b’) στη σειριακή θύρα (COMx).

Μετά την εκκίνηση της εφαρμογής, η πρώτη ενέργεια είναι να επιλέξετε τη σωστή θύρα com στην οποία είναι συνδεδεμένη η μονάδα ZigBee. Για να προσδιορίσετε τη θύρα, μπορείτε να χρησιμοποιήσετε τη Διαχείριση συσκευής των Windows (στην ενότητα Θύρες (ενότητα COM & LPT)). Η σύνδεση με το Azure DevOps γίνεται αυτόματα κατά την εκκίνηση χρησιμοποιώντας τα διαπιστευτήρια του τρέχοντος χρήστη. Μπορείτε επίσης να στείλετε οποιαδήποτε προκαθορισμένη εντολή χειροκίνητα χρησιμοποιώντας το σύνθετο πλαίσιο στα δεξιά.

Όλες οι πηγές έχουν δημιουργηθεί με την επαγγελματική έκδοση του Visual Studio 2017. Απαιτεί. NET Framework 4.6.1. Αυτή η έκδοση του Framework είναι προτιμότερη για τη διευκόλυνση της σύνδεσης/ελέγχου ταυτότητας με τον ιστότοπο VSTS.

χρησιμοποιώ:

  • κατεβάστε το αρχείο bslwatcher_sources.zip.
  • Εξαγάγετε το στο δίσκο σας.
  • Διαβάστε το αρχείο how_to_build.txt για λεπτομέρειες κατασκευής.

Βήμα 7: Πρώτη εκκίνηση

Υπάρχουν δύο βασικά πράγματα που πρέπει να έχετε κατά νου όταν ξεκινάτε το κουτί:

1- Δεν υπάρχει τρόπος για το σύστημα να γνωρίζει από μόνο του πού βρίσκονται οι σημαίες. Το σύστημα υποθέτει ότι κατά την εκκίνηση η πράσινη σημαία είναι ανοικτή.

2- Κατά την ενεργοποίηση της πλακέτας Arduino τίποτα δεν πρέπει να κινείται. Καθώς χρησιμοποιούσαμε συνεχή servos, η μηδενική θέση ορίζεται στο 90 από προεπιλογή στο αρχείο σκίτσου. Εάν ένας σερβοκινητήρας αρχίσει να γυρίζει ή να κάνει θόρυβο. ίσως χρειαστεί να επαναπροσδιορίσετε τη μηδενική του θέση. Για να το κάνετε αυτό, απλώς ρυθμίστε το ποτενσιόμετρο μέσα στη μικρή τρύπα στο πλάι του σερβοκινητήρα.

www.arduino.cc/en/Reference/ServoWrite

cmra.rec.ri.cmu.edu/content/electronics/boe…

Βήμα 8: Συμπέρασμα

Αυτή η μικρή συσκευή θα αναφέρει φυσικά την κατάσταση του συστήματος συνεχούς ενσωμάτωσης.

Καθώς η "ευφυΐα" βρίσκεται στην εφαρμογή επιφάνειας εργασίας, μπορείτε να χρησιμοποιήσετε το πλαίσιο για να παρακολουθείτε οποιοδήποτε άλλο λογισμικό ή διαδικασία (αλληλογραφία, αισθητήρας θερμοκρασίας…). Απλώς πρέπει να έχετε πρόσβαση σε άλλο API και να αποφασίσετε τι είναι "καλό" ή τι "κακό". Εάν δεν χρησιμοποιείτε κόκκινα και πράσινα χρώματα, μπορείτε ακόμη και να αλλάξετε την έννοια του "μηνύματος".

Θα μπορούσαν επίσης να γίνουν βελτιώσεις στο ίδιο το κουτί:

  • Χρησιμοποιήστε μια μπαταρία.
  • Χρησιμοποιήστε άλλο πρωτόκολλο επικοινωνίας.
  • Προσθέστε αισθητήρες για να γνωρίζετε ποια σημαία βρίσκεται στο επάνω μέρος.

Ελπίζω να βρήκατε αυτό το έργο ενδιαφέρον.

Χάρη στο διάβασμα μέχρι εδώ.

Βήμα 9: Παράρτημα

Μερικοί από τους συνδέσμους που χρησιμοποιήθηκαν για τη δημιουργία αυτού του έργου:

Ιστοσελίδα Arduino:

Ιστότοπος DIGI:

Λογισμικό XCTU:

Ορισμένες πληροφορίες που χρησιμοποιούνται από άλλες:

arduino.stackexchange.com/questions/1321/se…

stackoverflow.com/questions/10399400/best-w…

www.mon-club-elec.fr/pmwiki_reference_ardui… (στα Γαλλικά)

jeromeabel.net/

Ιστοσελίδα MSDN γενικά:

docs.microsoft.com/en-us/dotnet/framework/…

Συνιστάται: