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

Δημιουργία βιβλιοθήκης Arduino για το YouTube Sight: 7 βήματα
Δημιουργία βιβλιοθήκης Arduino για το YouTube Sight: 7 βήματα

Βίντεο: Δημιουργία βιβλιοθήκης Arduino για το YouTube Sight: 7 βήματα

Βίντεο: Δημιουργία βιβλιοθήκης Arduino για το YouTube Sight: 7 βήματα
Βίντεο: VL53L1X Αισθητήρας απόστασης λέιζερ 400cm Time-of-Flight 2024, Νοέμβριος
Anonim
Image
Image
Τι είναι Βιβλιοθήκη
Τι είναι Βιβλιοθήκη

Γεια σε όλους, Δημιούργησα πρόσφατα μια υπηρεσία που ονομάζεται YouTube Sight που μπορεί να εξαγάγει δεδομένα συνδρομητών από το API του YouTube Analytics και να σας δώσει ακριβέστερους αριθμούς συνδρομητών από τότε που το YouTube άρχισε να συγκεντρώνει τα αποτελέσματα. Με αυτό, έχω δημιουργήσει ένα παράδειγμα σκίτσου, αλλά ήθελα επίσης να φτιάξω μια βιβλιοθήκη Arduino, ώστε οι άνθρωποι να μπορούν να το χρησιμοποιήσουν πιο εύκολα.

Βήμα 1: Τι είναι μια βιβλιοθήκη;

Τι είναι Βιβλιοθήκη
Τι είναι Βιβλιοθήκη

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

Σε περιπτώσεις όπως η δική μου, όπου θέλουμε να προσθέσουμε νέες δυνατότητες στο Arduino, μπορούμε να δημιουργήσουμε τις δικές μας βιβλιοθήκες για να τις χρησιμοποιούν άλλοι άνθρωποι. Όλες οι εγκατεστημένες βιβλιοθήκες ζουν σε έναν συγκεκριμένο φάκελο στον υπολογιστή μας. Στην περίπτωσή μου για υπολογιστή με Windows, οι βιβλιοθήκες βρίσκονται κάτω από το φάκελο Documents/Arduino. Η πλήρης διαδρομή θα είναι συγκεκριμένη για εσάς, με βάση το όνομα χρήστη σας.

Βήμα 2: Δομή και αρχεία βιβλιοθήκης

Δομή και αρχεία βιβλιοθήκης
Δομή και αρχεία βιβλιοθήκης

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

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

Τα αρχεία κεφαλίδας έχουν επέκταση ".h", ενώ το αρχείο προέλευσης έχει επέκταση ".cpp" και συνήθως έχουν το όνομα της βιβλιοθήκης ως όνομα αρχείου. Στην περίπτωσή μου, τα δύο αρχεία ονομάζονται "YouTubeSight.h" και "YouTubeSight.cpp".

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

Ο πλήρης κώδικας και η βιβλιοθήκη είναι διαθέσιμα για λήψη από το GitHub στον ακόλουθο σύνδεσμο:

Βήμα 3: Το αρχείο κεφαλίδας

Το αρχείο κεφαλίδας
Το αρχείο κεφαλίδας
Το αρχείο κεφαλίδας
Το αρχείο κεφαλίδας
Το αρχείο κεφαλίδας
Το αρχείο κεφαλίδας

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

Στη συνέχεια, πρέπει να συμπεριλάβουμε τη βασική βιβλιοθήκη Arduino και δεδομένου ότι θα συνεργαστούμε με κάποιον πελάτη HTTP για να στείλουμε το αίτημα στο YouTube Sight, θα συμπεριλάβουμε επίσης τη βασική βιβλιοθήκη Πελάτη.

Πριν ξεκινήσουμε να γράφουμε το περιεχόμενο της κύριας τάξης μας, πρέπει να ορίσουμε τυχόν στατικές μεταβλητές και ρυθμίσεις που δεν θέλουμε να τροποποιηθούν. Στην περίπτωσή μου, υπάρχουν δύο τέτοιες μεταβλητές. Το κύριο URL της υπηρεσίας YouTube Sight και η μεταβλητή χρονικού ορίου που θα χρησιμοποιήσουμε για να ελέγξουμε για πόσο χρονικό διάστημα διαβάζουμε μια τιμή.

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

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

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

Για τις ιδιωτικές ιδιότητες, θα ορίσουμε ένα για την αποθήκευση του GUID του καναλιού, έναν δείκτη στο πρόγραμμα -πελάτη HTTP που θα χρησιμοποιήσουμε και μια συνάρτηση που θα χωρίσει την επιστρεφόμενη συμβολοσειρά από το YouTube Sight.

Βήμα 4: Το αρχείο προέλευσης

Το αρχείο προέλευσης
Το αρχείο προέλευσης
Το αρχείο προέλευσης
Το αρχείο προέλευσης

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

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

Η κύρια συνάρτηση getData της βιβλιοθήκης ορίζεται στη συνέχεια καθορίζοντας πρώτα τον τύπο επιστροφής, ακολουθούμενο από το όνομα της βιβλιοθήκης και το όνομα της συνάρτησης. Δεν θα αναφερθώ λεπτομερώς στο τι κάνει κάθε γραμμή σε αυτήν τη λειτουργία, αλλά γενικά, η λειτουργία ανοίγει μια σύνδεση με τον διακομιστή YouTube Sight, στέλνει το αίτημα για να λάβει τα στατιστικά στοιχεία και στη συνέχεια αναλύει τα επιστρεφόμενα δεδομένα με τη βοήθεια η ιδιωτική λειτουργία getValue.

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

Βήμα 5: Παροχή παραδείγματος σκίτσων

Παροχή παραδείγματος σκίτσων
Παροχή παραδείγματος σκίτσων

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

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

Βήμα 6: Δημοσίευση στον Διαχειριστή βιβλιοθήκης

Δημοσίευση στον Διαχειριστή Βιβλιοθήκης
Δημοσίευση στον Διαχειριστή Βιβλιοθήκης

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

Ένας κοινός τρόπος είναι να κατεβάσετε τη βιβλιοθήκη από το GitHub και να την εγκαταστήσετε μέσω του προγράμματος εγκατάστασης ZIP στο IDE ή απλώς να την τοποθετήσετε στο φάκελο βιβλιοθηκών όπως κάναμε όταν τη δημιουργούσαμε. Ωστόσο, το Arduino IDE περιλαμβάνει επίσης ένα εργαλείο, που ονομάζεται Διαχειριστής βιβλιοθήκης και σας επιτρέπει να αναζητήσετε μια βιβλιοθήκη απευθείας από το IDE.

Για να συμπεριλάβουμε τη βιβλιοθήκη σας σε αυτήν, πρέπει πρώτα να δημιουργήσουμε ένα πρόσθετο αρχείο στον ριζικό φάκελο που ονομάζεται "libra.properties" και σε αυτό, πρέπει να καθορίσουμε το όνομα της βιβλιοθήκης, την τρέχουσα έκδοση και μερικές πρόσθετες πληροφορίες που θα βοηθήσουν τον διαχειριστή της βιβλιοθήκης για να εμφανιστούν καλύτερες πληροφορίες σχετικά με αυτό.

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

Βήμα 7: Επόμενα βήματα

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

Για τυχόν πρόσθετες ερωτήσεις ή προτάσεις μη διστάσετε να γράψετε στα σχόλια, εγγραφείτε στο κανάλι μου στο YouTube και ακολουθήστε με εδώ στο Instructables.

Συνιστάται: