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

Art-Net Controlled Winch: 6 Βήματα
Art-Net Controlled Winch: 6 Βήματα

Βίντεο: Art-Net Controlled Winch: 6 Βήματα

Βίντεο: Art-Net Controlled Winch: 6 Βήματα
Βίντεο: Гидроизоляция|Как сделать гидроизоляцию бетонного крыльца от А до Я 2024, Ιούνιος
Anonim
Art-Net Controlled Winch
Art-Net Controlled Winch

Γεια σε όλους, σε αυτό το διδακτικό θα εξηγήσω πώς δημιούργησα το βαρούλκο μου που ελέγχεται από το art-net. "Τι σου;" Σας ακούω να με ρωτάτε, επιτρέψτε μου να σας εξηγήσω πολύ γρήγορα. Πριν από μερικά χρόνια κάναμε ένα πάρτι με το τοπικό σπίτι νεολαίας και ως σκηνικός σχεδιασμός είχαμε την ιδέα να φτιάξουμε μια κινούμενη στέγη.

Με 9 βαρούλκα (τακέλ) σηκώσαμε ένα γιγάντιο λευκό πανί και μέσω του πρωτοκόλλου dmx τα ελέγξαμε. Αλλά εκείνη τη στιγμή τα βαρούλκα χρησιμοποιούσαμε εκεί που ελέγχονταν 3 φάσεις. Έτσι, για να ανέβει και να κατεβεί, έπρεπε να δημιουργήσουμε ένα σύστημα relais που ελέγχεται από ένα κεντρικό mega Arduino που ελέγχονταν χρησιμοποιώντας dmx. Τα ρελέ όπου μεταφέρονται τάσεις 230V και 12 αμπέρ.

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

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

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

Υποθέτω ότι έχετε βασικές γνώσεις για python, arduino και raspberry pi aswel ως κατανοώντας κάτι σχετικά με το πρωτόκολλο art-net και τους ελεγκτές.

Προμήθειες

Τι θα χρειαστείτε:

  • Βατόμουρο πι
  • Arduino
  • Ασπίδα Ethernet Arduino
  • Ασπίδα κινητήρα Arduino
  • Οποιαδήποτε οθόνη OLED
  • καλώδιο ethernet
  • διακόπτης ethernet
  • DC Motor με ενσωματωμένο κωδικοποιητή

Βήμα 1: Ρύθμιση του Raspberry Pi

Εντάξει, έτσι όπως θα λειτουργήσει είναι ότι το raspberry pi θα τρέχει έναν Apache και έναν διακομιστή MariaDB. Ο διακομιστής apache πρέπει να φιλοξενεί τον ιστότοπο, το MariaDB πρέπει να διατηρεί μια βάση δεδομένων όπου θα αποθηκεύουμε τα δεδομένα των βαρούλκων.

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

Έτσι, πρώτα θα βεβαιωθούμε ότι το raspberry pi είναι πλήρως ρυθμισμένο, στο τερματικό σας:

Για να εγκαταστήσετε το apache

sudo apt install apache2 -y

Για να εγκαταστήσετε το mariaDB

sudo apt-get install mariadb-server

Αυτές είναι όλες οι επεκτάσεις python που θα χρειαστούμε

pip3 εγκαταστήστε mysql-connector-python

pip3 install flask-socketio pip3 install flask-cors pip3 install gevent pip3 install gevent-websocket pip3 install netifaces

Για την oled οθόνη χρειαζόμαστε λίγο πιο δύσκολη διαδικασία εγκατάστασης που μπορείτε να βρείτε εδώ.

Εντάξει, το πι όλα τελείωσαν!

Βήμα 2: Κατανόηση του τρόπου λειτουργίας της εγκατάστασης

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

Για να επιλέξετε αυτές τις θέσεις θα χρειαστεί να μετακινήσετε το βαρούλκο σε αυτά, μόλις βρεθείτε εκεί θα γυρίσετε ένα συγκεκριμένο κανάλι στην τιμή 56. Όταν το συγκεκριμένο κανάλι φτάσει σε αυτήν την τιμή θα γνωρίζει ότι αυτή είναι η τελική θέση έναρξης / τερματισμού του, εάν πρέπει να κινηθεί πάνω ή κάτω ή αν πρέπει να αλλάξει τις τιμές του artnet. Η μετακίνηση του βαρούλκου γίνεται επίσης ρυθμίζοντας ένα συγκεκριμένο κανάλι στο 56. "Και γιατί 56" σε ακούω να αναρωτιέσαι, λοιπόν έπρεπε να επιλέξω κάτι:).

Η θέση υπολογίζεται μέσω του κωδικοποιητή που βρίσκεται στον κινητήρα DC.

Βήμα 3: Backend of the Pi

Backend of the Pi
Backend of the Pi

Το backend για το σύστημα μπορεί να βρεθεί στο github μου. Έχω γράψει τη δική μου βιβλιοθήκη για το πρωτόκολλο art-net, οπότε μη διστάσετε να το χρησιμοποιήσετε. Δεν θα σας καθοδηγήσω σε όλα γραμμή προς γραμμή, αλλά θα σας δώσω τη μεγάλη ιδέα για όλα.

Ο κώδικας εκτελεί έναν διακομιστή φιάλης ο οποίος επικοινωνεί με τον διακομιστή apache που εκτελείται στο pi. Χρησιμοποιεί τη μονάδα flask-socketio για την αποστολή και λήψη δεδομένων στην πρόσοψη. Το art-net lib χρησιμοποιεί τη μονάδα υποδοχής από την python για την αποστολή πακέτων UDP από και προς το arduino.

Κάθε μέθοδος που ξεκινά με ένα @socketio.on ('F2B _ ***') περιμένει μια κλήση F2B από το frontend. Μόλις ληφθεί, θα εκτελέσει την αντίστοιχη ενέργεια. Είτε πρόκειται για αποστολή ενός artnet commando είτε για λήψη δεδομένων από το DB και αποστολή πίσω στο μπροστινό μέρος.

Η μέθοδος oled_show_info () χρησιμοποιείται για την εμφάνιση του ip του ip (Και στις διεπαφές wlan και ethernet).

οπότε απλά τρέξτε τον κώδικα με

python3 app.py

Βήμα 4: Frontend of the Pi

Frontend του Pi
Frontend του Pi

Για να μπορέσετε να επεξεργαστείτε το frontend του pi θα πρέπει πρώτα να δώσετε πρόσβαση στον κατάλογο/var/www/html/. Εδώ το apache παίρνει τα αρχεία του για εμφάνιση στον ιστότοπό του. Για να αποκτήσετε πρόσβαση, εκτελέστε:

sudo chmod 777/var/www/html/

Τώρα που τελείωσαν, πάρτε τον κωδικό για το frontend του github μου και τοποθετήστε τον στον κατάλογο/var/www/html/.

Το frontend χρησιμοποιεί την ίδια αρχή με το backend, αλλά τώρα στέλνει τις εντολές F2B _ *** όταν πατάτε ένα κουμπί ή μετακινείται το ρυθμιστικό.

Και αυτό είναι το fontend done!

Βήμα 5: Το Arduino

Το Arduino
Το Arduino
Το Arduino
Το Arduino
Το Arduino
Το Arduino

Για τη χρήση του arduino θα πρέπει να χρησιμοποιήσετε την ασπίδα ethernet και την ασπίδα κινητήρα. Απλώς σπρώξτε τα απαλά στο arduino. Βεβαιωθείτε ότι δεν σπρώχνετε την ασπίδα κινητήρα πολύ μακριά στην ασπίδα ethernet ή θα βραχυκυκλώσετε τις 2 ακίδες του κινητήρα στη σύνδεση ethernet!

Ο κωδικός για το arduino μπορεί επίσης να βρεθεί στο github μου. Ανεβάστε το αρχείο artnet_winch.ino και όλα πρέπει να είναι καλά.

Βεβαιωθείτε ότι έχετε ορίσει τις σωστές καρφίτσες στις σωστές ακίδες του κινητήρα σας. Οι καρφίτσες motorshield επιλέγονται με τους πείρους κεφαλίδας στην κορυφή της ασπίδας. Αυτές οι ακίδες επιλέγονται σύμφωνα με τη διαμόρφωση του κινητήρα // ---. Aswel ως ακίδες κωδικοποιητή που πρέπει να συνδεθούν με τους σωστούς πείρους του arduino.

Επίσης, βεβαιωθείτε ότι η διεύθυνση MAC της ασπίδας σας είναι σωστή. Αυτό μπορεί να βρεθεί σε ένα αυτοκόλλητο κάτω από την ασπίδα και να επεξεργαστεί στη μεταβλητή MAC. Η IP που χρησιμοποιείτε για το pi πρέπει να είναι στο ίδιο εύρος με το PI, αυτό μπορεί κανονικά να βρεθεί στην οθόνη που έχει λιπανθεί.

Ο κώδικας φαίνεται λίγο αλλά δεν είναι τόσο δύσκολο να κατανοηθεί. Βασικά η ασπίδα ethernet διαβάζει συνεχώς πακέτα udp που έρχονται. Εάν το πακέτο είναι πακέτο Artnet το αποκωδικοποιεί και παίρνει τις πληροφορίες που χρειάζεται από αυτό. Τα διαφορετικά πακέτα artnet περιγράφονται όμορφα στον ιστότοπο Art-Net, οπότε αν σας ενδιαφέρει μπορείτε να διαβάσετε τι κάνουν όλοι.

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

Εάν λάβει και πακέτο ArtDMX θα αποκωδικοποιήσει το πακέτο και θα χρησιμοποιήσει τα δεδομένα για να εκτελέσει ορισμένες εντολές εγκατάστασης ή να μετακινήσει το βαρούλκο στη θέση του.

Η συνάρτηση move_takel μετατρέπει τη δεδομένη τιμή DMX (μεταξύ 0-255) σε μια θέση μεταξύ της αρχικής και της τελικής θέσης (0 είναι το τέλος και 255 η αρχή). Εάν η θέση του κωδικοποιητή δεν είναι ίση με τη μετασχηματισμένη τιμή, το βαρούλκο θα μετακινηθεί πάνω/κάτω ανάλογα με το πού βρίσκεστε.

Δούλευα σε ένα βρόχο ανατροφοδότησης μεταξύ του PI και του arduino έτσι ώστε να μπορεί να συμβαδίσει με τη θέση του, αλλά το arduino μου έμεινε χωρίς μνήμη για να αποθηκεύσει το πρόγραμμα:).

Τοποθέτηση όλων

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

Βήμα 6: Σύνδεση όλων

Μόλις ρυθμιστούν όλα το arduino και το pi, απλά συνδέστε και τα δύο καλώδια ethernet στο διακόπτη σας και αυτό θα έπρεπε να είναι!

Μπορείτε να το δοκιμάσετε κάνοντας σερφ στο wlan ip που εμφανίζεται στην οθόνη με oled και θα πρέπει να δείτε τον ιστότοπο. Πατήστε Εύρεση συσκευών για να δείτε αν μπορείτε να βρείτε τη συσκευή. Εάν δεν δείχνει τίποτα, τότε το arduino σας δεν είναι καλά συνδεδεμένο ή η IP που έχετε επιλέξει δεν είναι στην ίδια περιοχή με αυτήν του PI.

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

Βεβαιωθείτε ότι ο ελεγκτής σας είναι επίσης συνδεδεμένος στην ασπίδα και ότι η IP του είναι στην περιοχή του PI και του arduino.

Αυτό είναι!

Συνιστάται: