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

RPi 3 Starboard / Particle Generator: 6 βήματα (με εικόνες)
RPi 3 Starboard / Particle Generator: 6 βήματα (με εικόνες)

Βίντεο: RPi 3 Starboard / Particle Generator: 6 βήματα (με εικόνες)

Βίντεο: RPi 3 Starboard / Particle Generator: 6 βήματα (με εικόνες)
Βίντεο: Stepping into the Future: Linnaeus University's IoT & AI Live Stream Marathon⚡🤩 2024, Νοέμβριος
Anonim
Image
Image
Συναρμολογήστε τον πίνακα LED
Συναρμολογήστε τον πίνακα LED

Βαριέστε το Raspberry Pi σας; Είστε έτοιμοι να διοικήσετε τις στοιχειώδεις δυνάμεις του σύμπαντος, καλώντας και απορρίπτοντας φωτόνια κατά βούληση; Θέλετε απλώς κάτι ενδιαφέρον να κρεμαστεί στο σαλόνι σας ή ένα φανταχτερό έργο να δημοσιεύσετε στο facebook για να δείξετε στη Denise ότι τα πάτε μια χαρά αυτές τις μέρες, σας ευχαριστώ πολύ; Είστε παγιδευμένοι σε προσομοίωση υπολογιστή και λυγίζετε τις ώρες μέχρι να απελευθερωθείτε ή να διαγραφείτε; Εάν κάποιο ή όλα αυτά σας περιγράφουν, τότε [φωνή εκφωνητή] Καλώς ορίσατε!

Αυτό το σεμινάριο θα σας δείξει πώς να συναρμολογήσετε και να ρυθμίσετε μια οθόνη γεννήτρια σωματιδίων χρησιμοποιώντας ένα Raspberry Pi 3 και μερικά πάνελ μήτρας RGB. Θα χρειαστείτε από μία έως δύο ώρες και το τελικό προϊόν θα είναι περίπου 30 "x8" (δεν περιλαμβάνει το Pi) και μπορεί να τοποθετηθεί στον τοίχο. Κάνει μια πολύ όμορφη διακόσμηση για σαλόνι, γραφείο, αίθουσα παιχνιδιών ή όπου αλλού θέλετε να το βάλετε.

Πριν ξεκινήσετε, δείτε τι θα χρειαστείτε και ποιο είναι το κατά προσέγγιση κόστος:

  • Rpi 3 + SD Card + Θήκη + Τροφοδοτικό: 70 $ (από το Canakit, αλλά πιθανότατα μπορείτε να πάρετε τα ανταλλακτικά φθηνότερα αν τα αγοράσετε ξεχωριστά.)
  • 4x 32x32 RGB LED Matrix (κατά προτίμηση p6 εσωτερικού χώρου με 1/16 σάρωση): $ 80-$ 100 αποστέλλονται στο Alibaba ή στο Aliexpress. $ 160 σε Adafruit ή Sparkfun.
  • Καπέλο Adafruit RGB Matrix: 25 $
  • Τροφοδοτικό 5V 4A: 15 $
  • Κλιπ τρισδιάστατης εκτύπωσης: 1 $ (αυτά προορίζονται για τη σύνδεση των πλαισίων και την ανάρτηση τους στον τοίχο. Εάν δεν έχετε πρόσβαση σε τρισδιάστατο εκτυπωτή, μπορείτε να χρησιμοποιήσετε μια λωρίδα γείωσης για να τα κρατήσετε μαζί και μερικές αγκύλες από το κατάστημα υλικού έως κρεμάστε το από τον τοίχο. Προσπάθησα να βρω τα αρχεία σχεδίασης ή τα.stls για αυτά, αλλά φαίνεται να έχουν περάσει από τη γη. Ωστόσο, τα κλιπ είναι αρκετά εύκολο να μοντελοποιηθούν.)
  • Βίδες 14x M4x10: 5 δολάρια
  • Τέσσερα καλώδια IDC 4x8 και τρία καλώδια τροφοδοσίας για τις μήτρες RGB (δεν ξέρω πώς λέγονται αυτά!). Αυτά θα έπρεπε να έχουν συμπεριληφθεί στα πάνελ LED σας.
  • Σύνολο: Περίπου $ 200, δώστε ή πάρτε.

Το έργο δεν απαιτεί να κολλήσετε ή να έχετε συγκεκριμένες γνώσεις προγραμματισμού. υποθέτει ότι ξέρετε πώς να γράψετε μια εικόνα σε μια κάρτα microSD. Εάν δεν είστε σίγουροι πώς να το κάνετε αυτό, το ίδρυμα Raspberry Pi έχει ένα καλό σεμινάριο εδώ.

Υποθέτει επίσης ότι έχετε μια βασική γνώση για το πώς να κάνετε πράγματα από τη γραμμή εντολών στο Linux και η περιήγηση στον κώδικα προϋποθέτει ότι γνωρίζετε τα βασικά της Python (αλλά - δεν χρειάζεται να ακολουθήσετε την περιήγηση κώδικα για να μπορέσετε να δημιουργήσετε και εκτελέστε τη γεννήτρια σωματιδίων.) Εάν κολλήσετε σε κάποιο από τα βήματα, μη διστάσετε να κάνετε μια ερώτηση ή να δημοσιεύσετε στο /r /raspberry_pi (το οποίο είναι επίσης, υποθέτω, το κύριο κοινό για αυτό το διδακτικό)

Βήμα 1: Συναρμολογήστε τον πίνακα LED

Συναρμολογήστε τον πίνακα LED
Συναρμολογήστε τον πίνακα LED

Αρχικά, θα συναρμολογήσετε τα μεμονωμένα πάνελ LED 32x32 σε ένα μεγάλο πάνελ 128x32. Θα πρέπει να κοιτάξετε τους πίνακες σας και να βρείτε τα μικρά βέλη που υποδεικνύουν τη σειρά σύνδεσης. στο δικό μου είναι ακριβώς κοντά στις υποδοχές HUB75/2x8 IDC. Βεβαιωθείτε ότι έχετε τα βέλη που δείχνουν από όπου θα συνδεθεί το Rpi (από τα δεξιά στην παραπάνω φωτογραφία) κάτω από το μήκος του πίνακα.

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

Επειδή τα καλώδια τροφοδοσίας που περιλαμβάνονται στους πίνακες μου ήταν τόσο σύντομα, έπρεπε να επεκτείνω το ένα εισάγοντας τις προεξοχές του ακροδέκτη φτυάρι στον σύνδεσμο ενός άλλου (Αυτό είναι αρκετά απλό - ίσως χρειαστεί να λυγίσετε τους ακροδέκτες του φτυάρι ελαφρώς προς τα μέσα, αλλά εγώ έχω συμπεριλάβει μια εικόνα για κάθε περίπτωση). Κατέληξα με δύο σετ τερματικών με φτυάρι και έναν σύνδεσμο 2x8 IDC στα δεξιά της πλέον επιμηκυμένης μου πλακέτας LED.

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

Έτσι - μόλις συνδέσετε όλα τα πάνελ μαζί με κλιπ, καλώδια 2x8 IDC και καλώδια τροφοδοσίας, είστε έτοιμοι να προχωρήσετε στο επόμενο βήμα!

Βήμα 2: Προετοιμάστε το Raspberry Pi

Στη συνέχεια, θα αφήσετε την πλακέτα LED στην άκρη (προς το παρόν) και θα ετοιμάσετε το Pi 3 για να το χρησιμοποιήσετε. Θα χρησιμοποιήσουμε τη βιβλιοθήκη Raspbian Stretch Lite και RGB μήτρας του hzeller (αντί για τη βιβλιοθήκη μήτρας του Adafruit, η οποία είναι παλαιότερη και δεν διατηρείται.)

Αρχικά, θα θέλετε να γράψετε την εικόνα Raspbian Lite σε κάρτα SD. μόλις το κάνετε αυτό, προχωρήστε και συνδέστε μια οθόνη και ένα πληκτρολόγιο στο pi και ξεκινήστε το. (Μπορείτε επίσης να το κάνετε αυτό ακέφαλο, είτε μέσω ssh είτε μέσω σειριακής σύνδεσης, αλλά αν είστε έτσι, πιθανότατα δεν χρειάζεται να σας πω πώς να το κάνετε.) Θα χρειαστείτε σύνδεση στο Διαδίκτυο για αυτό ? Εάν διαθέτετε wifi, συνδέστε το Pi στο ασύρματο δίκτυό σας επεξεργάζοντας /etc/wpa_supplicant/wpa_supplicant.conf και εκτελώντας αναδιαμόρφωση wpa_cli -i wlan0. (Εάν δεν το έχετε κάνει ποτέ, μπορείτε να λάβετε οδηγίες εδώ).

Μόλις συνδεθείτε στο διαδίκτυο, θα ενημερώσουμε τις ρυθμίσεις αποθήκευσης dpkg και θα κατεβάσουμε τις βιβλιοθήκες που χρειαζόμαστε εκτελώντας τις ακόλουθες εντολές:

sudo apt-get ενημέρωση

sudo apt-get install git python-dev python-pil

git clone

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

cd rpi-rgb-led-matrix

και μεταγλωττίστε το (αυτό μπορεί να διαρκέσει ένα λεπτό):

make && make build-python

και εγκαταστήστε τις συνδέσεις python:

sudo make install-python

Εάν εμφανιστούν σφάλματα κατά τη σύνταξη του κώδικα της βιβλιοθήκης, επιστρέψτε και βεβαιωθείτε ότι έχετε εγκαταστήσει σωστά το python-dev και το python-pil! Οι συνδέσεις python δεν θα μεταγλωττιστούν χωρίς να εγκατασταθούν και τα δύο αυτά πακέτα.

Θα χρειαστεί επίσης να απενεργοποιήσετε την έξοδο ήχου του Pi σας (ο ενσωματωμένος ήχος παρεμβαίνει στον κώδικα μήτρας) με την επεξεργασία /boot/config.txt. Αναζητήστε τη γραμμή που λέει dtparam = audio = on και αλλάξτε την σε dtparam = audio = off.

Εάν όλα έχουν συγκεντρωθεί ΟΚ (θα λάβετε μερικές προειδοποιήσεις σχετικά με τα πρωτότυπα Wstrict) το pi σας θα πρέπει να είναι έτοιμο να εκτελέσει τον πίνακα μήτρας. Προχωρήστε και κλείστε το (κλείσιμο sudo τώρα), αποσυνδέστε το και θα συνδέσουμε την πλακέτα φωτισμού στο pi στο επόμενο βήμα.

Βήμα 3: Συνδέστε το Pi + Matrix Hat + LED Board

Συνδέστε Pi + Matrix Hat + LED Board
Συνδέστε Pi + Matrix Hat + LED Board

Έτσι, τώρα που το Pi σας είναι απενεργοποιημένο και αποσυνδεδεμένο, ας συνδέσουμε το καπέλο μήτρας στο pi και την πλακέτα LED στο καπέλο μήτρας. Εάν το Pi σας δεν είναι ήδη στην περίπτωσή του, τώρα είναι μια καλή στιγμή να το βάλετε εκεί.

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

Μόλις φορέσετε το καπέλο, τοποθετήστε το Pi στα δεξιά της συναρμολογημένης πλακέτας LED (ελέγξτε ξανά τις συνδέσεις τροφοδοσίας και βεβαιωθείτε ότι τα βέλη δείχνουν από το Pi προς τα κάτω στο μήκος του πίνακα) και συνδέστε το IDC καλώδιο στο καπέλο μήτρας.

Στη συνέχεια, θα θελήσετε να συνδέσετε τους ακροδέκτες για την τροφοδοσία στο μπλοκ ακροδεκτών του καπέλου μήτρας. Έχετε δύο συνδετήρες ανά πλευρά, αλλά θα πρέπει να ταιριάζουν και οι δύο καλά. Χαλαρώστε πρώτα τις βίδες και - Αυτό πρέπει να γίνει χωρίς να το πείτε - βεβαιωθείτε ότι έχετε βάλει τους ακροδέκτες 5V στο πλάι με την ένδειξη + (αυτοί πρέπει να είναι κόκκινοι, αλλά - ξανά - ελέγξτε ξανά τους συνδέσμους σας και μην υποθέσετε ότι κατασκευάστηκαν σωστά) και οι ακροδέκτες GND (αυτοί πρέπει να είναι μαύροι) στο πλάι με την ένδειξη -. Μόλις βρεθούν εκεί, σφίξτε τις βίδες στην κορυφή του μπλοκ ακροδεκτών και θα πρέπει να έχετε κάτι που μοιάζει με την εικόνα της κεφαλίδας για αυτό το βήμα.

Τώρα - ίσως έχετε παρατηρήσει ότι η συγκεκριμένη διαμόρφωση αφήνει το μισό του τερματικού φτυάρι και στις δύο πλευρές εκτεθειμένο, αιωρούμενο μόλις χιλιοστά πάνω από το καπέλο μήτρας (και όχι πολύ μακριά το ένα από το άλλο.) ΚΑΙ - οι ακροδέκτες του φτυάρι θα είναι πολύ σύντομα μεταφέροντας τόσο πολλά βολτ όσο και αρκετούς ενισχυτές Raw Power. Είναι αυτό, (μπορώ να σας ακούσω να ρωτάτε από την άλλη πλευρά της οθόνης) είναι πραγματικά ο σωστός τρόπος για να το κάνετε; Είναι, (κλίνεις πιο κοντά και ψιθυρίζεις), μια καλή ιδέα;

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

Αλλά - τυλιγμένα ή ξετυλιγμένα - τα τερματικά με το φτυάρι συνδέονται στο μπλοκ ακροδεκτών και είμαστε έτοιμοι να προχωρήσουμε στο επόμενο βήμα.

Βήμα 4: Δοκιμάστε τη μήτρα RGB

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

Εάν αντιμετωπίζετε προβλήματα με την εκκίνηση του Pi με το καπέλο μήτρας, βεβαιωθείτε ότι χρησιμοποιείτε αρκετά ισχυρό τροφοδοτικό για το Pi (το 2A+ πρέπει να είναι καλό) και δοκιμάστε να συνδέσετε το τροφοδοτικό τόσο για το καπέλο όσο και για το Pii στο ίδιο πολύπριζο ή καλώδιο επέκτασης και ενεργοποιήστε τα μαζί.

Μόλις ξεκινήσει το Pi, είμαστε έτοιμοι να δοκιμάσουμε τους πίνακες. Μεταβείτε εκεί όπου βρίσκονται τα δείγματα δέσμευσης python (cd/rpi-rgb-led-matrix/bindings/python/δείγματα) και δοκιμάστε την περιστρεφόμενη γεννήτρια μπλοκ με την ακόλουθη εντολή:

sudo./rotating-block-generator.py -m adafruit-hat --led-chain 4

Πρέπει να το εκτελέσετε ως sudo επειδή η βιβλιοθήκη μήτρας χρειάζεται χαμηλού επιπέδου πρόσβαση στο υλικό κατά την προετοιμασία. Το -m καθορίζει τον τρόπο σύνδεσης των πλαισίων με το pi (σε αυτή την περίπτωση, ένα καπέλο adafruit) και η -αλυσίδα καθορίζει -το μαντέψατε -πόσα πάνελ έχουμε αλυσοδέσει μαζί. Γραμμές και στήλες ανά πίνακα και οι δύο προεπιλεγμένες σε 32, οπότε είμαστε καλά εκεί.

Τώρα - μόλις ολοκληρώσετε το πρόγραμμα, θα συμβεί ένα από τα δύο (ή, πραγματικά, ένα από τα τρία) πράγματα:

  • Δεν συμβαίνει τίποτα
  • Παίρνετε ένα ωραίο περιστρεφόμενο μπλοκ στη μέση του φωτιστικού σας.
  • Ο φωτεινός πίνακας λειτουργεί, νομίζω, αλλά φαίνεται… περίεργο (το μισό είναι πράσινο, μερικές σειρές δεν φωτίζονται κ.λπ.)

Εάν δεν συμβεί τίποτα ή εάν ο πίνακας φαίνεται περίεργος, πατήστε ctrl+c για έξοδο από το δείγμα προγράμματος, κλείστε το pi και ελέγξτε όλες τις συνδέσεις σας (καλώδιο IDC, τροφοδοσία, βεβαιωθείτε ότι και τα δύο τροφοδοτικά είναι συνδεδεμένα κ.λπ.) Βεβαιωθείτε επίσης ότι το καπέλο είναι σωστά συνδεδεμένο. αν αυτό δεν το διορθώνει, κατεβάστε το σε έναν πίνακα (βεβαιωθείτε ότι χρησιμοποιείτε το --led-chain 1 όταν το δοκιμάζετε) και δείτε αν ένα από τα πάνελ μπορεί να είναι κακό. Εάν αυτό δεν λειτουργεί, ελέγξτε τις συμβουλές αντιμετώπισης προβλημάτων του hzeller. αν ΑΥΤΟ ΑΚΟΜΑ ΔΕΝ δουλεύει, δοκιμάστε να δημοσιεύσετε στο /r /raspberry_pi (ή στα φόρουμ του Adafruit, αν έχετε πάρει τα πάνελ σας από το Adafruit, ή ανταλλαγή στοίβας κ.λπ. κ.λπ.)

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

Βήμα 5: Ποσοστά πολυπλεξίας και σάρωσης (ή: στιγμιαία εκτροπή στο δρόμο προς τον τάφο)

Έτσι, ένα από τα λάθη που έκανα όταν παρήγγειλα το πρώτο μου σετ πάνελ από την Alibaba είναι ότι πήρα εξωτερικά πάνελ (γιατί όχι, σκέφτηκα - είναι αδιάβροχα και πιο φωτεινά!). Και, όταν τα ένωσα στο καπέλο μου, τα πράγματα φαίνονταν.. δεν ήταν σωστά.

Για να καταλάβουμε γιατί συμβαίνει αυτό, θα αφιερώσουμε ένα λεπτό για να δούμε τον Phil Burgess από την περιγραφή του Adafruit για το πώς λειτουργούν αυτά τα πάνελ. Θα σημειώσετε ότι ο Burgess επισημαίνει ότι τα πάνελ δεν ανάβουν όλα τα LED τους ταυτόχρονα - ανάβουν σύνολα σειρών. Η σχέση μεταξύ του ύψους του πίνακα σε pixel και του αριθμού των γραμμών που φωτίζονται ταυτόχρονα ονομάζεται ρυθμός σάρωσης. Έτσι, για παράδειγμα - Σε πίνακα 32x32 με σάρωση 1/16, δύο σειρές (1 και 17, 2 και 18, 3 και 19 κ.λπ.) φωτίζονται ταυτόχρονα, μέχρι τον πίνακα και στη συνέχεια ο ελεγκτής επαναλαμβάνεται Το Οι περισσότερες βιβλιοθήκες που οδηγούν μήτρες RGB είναι φτιαγμένες για πίνακες όπου ο ρυθμός σάρωσης είναι το 1/2 του ύψους σε εικονοστοιχεία - δηλαδή οδηγούν δύο σειρές LED ταυτόχρονα.

Τα εξωτερικά πάνελ (και μερικά εσωτερικά πάνελ - βεβαιωθείτε ότι έχετε δει τις προδιαγραφές πριν από την παραγγελία) έχουν ρυθμούς σάρωσης που είναι 1/4 του ύψους σε εικονοστοιχεία, πράγμα που σημαίνει ότι περιμένουν να οδηγηθούν τέσσερις γραμμές ταυτόχρονα. Αυτό τα κάνει πιο φωτεινά (κάτι που είναι καλό) αλλά κάνει πολλούς τυπικούς κώδικες να μην λειτουργούν μαζί τους (κάτι που είναι κακό). Επιπλέον, τείνουν να έχουν τα εικονοστοιχεία εκτός λειτουργίας εσωτερικά, πράγμα που απαιτεί τον μετασχηματισμό των τιμών x και y στο λογισμικό για την αντιμετώπιση των σωστών εικονοστοιχείων. Γιατί φτιάχνονται έτσι; Δεν έχω ιδέα. Γνωρίζεις? Αν ναι, πείτε μου. Διαφορετικά θα πρέπει να παραμείνει ένα μυστήριο.

Έτσι, αν έχετε ένα από αυτά τα περίεργα εξωτερικά πάνελ, έχετε (πιθανώς) την τύχη! Ο hzeller πρόσθεσε πρόσφατα υποστήριξη για κοινές διαμορφώσεις αυτών των τύπων πάνελ στη βιβλιοθήκη του. Μπορείτε να διαβάσετε περισσότερα σχετικά με αυτό στη σελίδα github για το έργο, αλλά μπορείτε να περάσετε --led-multiplexing = {0, 1, 2, 3} στο δείγμα κώδικα (μπορεί επίσης να χρειαστεί να προσποιηθείτε ότι έχετε αλυσίδα διπλού μήκους από πάνελ μισού μήκους) και θα πρέπει να λειτουργεί.

Υπάρχουν μερικά μοτίβα μετασχηματισμού pixel που δεν υποστηρίζονται, όμως - και (μαντέψτε τι) τα πάνελ μου έχουν ένα από αυτά! Έτσι, έπρεπε να γράψω τον δικό μου κωδικό μετασχηματισμού (επίσης - για οποιονδήποτε λόγο - πρέπει να πω στη βιβλιοθήκη να ενεργήσει σαν να έχω οκτώ πάνελ 16x32 συνδεδεμένα μαζί). που έχει ως εξής:

def transformPixels (j, k): effJ = j % 32

effK = k % 32

modY = k

modX = j

#modX και modY είναι τα τροποποιημένα Χ και Υ.

#effJ και effK βεβαιωθείτε ότι μετασχηματιζόμαστε μέσα σε μια μήτρα 32x32 πριν σπρώξουμε

εάν ((effJ)> 15):

modX = modX + 16

εάν ((effK)> 7):

modY = modY - 8

modX = modX + 16

εάν ((effK)> 15):

modX = modX - 16

εάν ((effK)> 23):

modY = modY - 8

modX = modX + 16

#Στη συνέχεια, τα σπρώχνουμε στη σωστή θέση (κάθε x+32 μετακινεί ένα πάνελ)

εάν (j> 31):

modX += 32

εάν (j> 63):

modX += 32

εάν (j> 95):

modX += 32

επιστροφή (modX, modY)

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

Βήμα 6: Το πρόγραμμα Starboard (ή: Επιστροφή στην πορεία και έτοιμο για Pixel)

Τώρα που έχετε ενεργοποιήσει τις μήτρες σας και είστε έτοιμοι, το μόνο που έχετε να κάνετε είναι να βάλετε το πρόγραμμα δεξιά στο Pi σας και να το ετοιμάσετε. Βεβαιωθείτε ότι βρίσκεστε στον κεντρικό κατάλογο του χρήστη pi (cd /home /pi) και εκτελέστε την ακόλουθη εντολή:

git clone

θα πρέπει να έχετε έναν νέο φάκελο, δεξιά, που περιέχει τρία αρχεία: LICENSE.md, README.md και starboard_s16.py. Δοκιμάστε το πρόγραμμα δεξιά εκτελώντας το μέσω python:

sudo python./starboard_s16.py

και θα πρέπει να έχετε ένα σωρό σωματίδια που κινούνται με διαφορετικές ταχύτητες και αποσυντίθενται με διαφορετικούς ρυθμούς. Κάθε 10, 000 τσιμπούρια περίπου (μπορείτε να μπείτε στο σενάριο python για να το επεξεργαστείτε/αλλάξετε αυτό) θα αλλάξει τρόπους (υπάρχουν τέσσερις: RGB, HSV, Rainbow και Greyscale).

Έτσι, τώρα το μόνο που απομένει είναι να κάνουμε τον κώδικα της δεξιάς πλευράς να τρέξει κατά την εκκίνηση. Θα το κάνουμε αυτό με την επεξεργασία (με sudo) /etc/rc.local. Αυτό που θέλετε να κάνετε είναι να προσθέσετε την ακόλουθη γραμμή ακριβώς πριν από την "έξοδο 0" στο σενάριο:

python /home/pi/starboard/starboard_s16.py &

Αφού το κάνετε αυτό, επανεκκινήστε το pi - μόλις τρέξει στην ακολουθία εκκίνησης, το σενάριο starboard_s16.py πρέπει να ξεκινήσει αμέσως!

Αν θέλετε να περιπλανηθείτε στο σενάριο, μη διστάσετε να το κάνετε - έχει άδεια σύμφωνα με το GNU GPL 3.0. Εάν το σενάριο δεν λειτουργεί για εσάς ή έχετε πρόβλημα με αυτό, μη διστάσετε να μου ενημερώσετε ή να υποβάλετε ένα σφάλμα στο github και θα δω τι μπορώ να κάνω για να το διορθώσω!

Το (πολύ) τελευταίο πράγμα που μπορεί να θέλετε είναι να ρυθμίσετε το SSH στο pi, έτσι ώστε να μπορείτε να απομακρύνεστε και να το κλείσετε με ασφάλεια. Θα / σίγουρα / θέλετε να αλλάξετε τον κωδικό πρόσβασής σας (μέσω της εντολής passwd) και μπορείτε να βρείτε οδηγίες για την ενεργοποίηση του ssh (επίσης από τη γραμμή εντολών) εδώ.

Συνιστάται: