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

Ο φθηνότερος προσαρμογέας I2C στον κόσμο (I-Squared-C): 5 βήματα (με εικόνες)
Ο φθηνότερος προσαρμογέας I2C στον κόσμο (I-Squared-C): 5 βήματα (με εικόνες)

Βίντεο: Ο φθηνότερος προσαρμογέας I2C στον κόσμο (I-Squared-C): 5 βήματα (με εικόνες)

Βίντεο: Ο φθηνότερος προσαρμογέας I2C στον κόσμο (I-Squared-C): 5 βήματα (με εικόνες)
Βίντεο: ΑΓΟΡΑΣΑΜΕ ΤΗ ΦΘΗΝΟΤΕΡΗ HDMI CAPTURE CARD 2024, Ιούλιος
Anonim
Ο φθηνότερος προσαρμογέας I2C στον κόσμο (I-Squared-C)
Ο φθηνότερος προσαρμογέας I2C στον κόσμο (I-Squared-C)

Δημιουργήστε μια διεπαφή αισθητήρα για τον υπολογιστή σας για λιγότερο! Ενημέρωση 6/9/08: Αφού εξερεύνησα αρκετές οδούς, κατέληξα ότι δεν υπάρχει πρακτικός τρόπος εφαρμογής αυτής της τεχνικής στα Microsoft Windows. Αυτό δεν είναι μικροσκοπικό λειτουργικό σύστημα, πραγματικά έσπασα ένα καρύδι προσπαθώντας! Συγνώμη! Οι χρήστες Windows που χρειάζονται δυνατότητες I2C εξυπηρετούνται καλύτερα από υπάρχουσες λύσεις που βασίζονται σε USB. Ενημέρωση 5/24/08: Προστέθηκε υποστήριξη Linux, καθώς και δείγμα κώδικα για το χειριστήριο Nintendo Wii Nunchuk και το "έξυπνο LED" BlinkM. Δείτε το αρχείο README.txt που περιλαμβάνεται με τον πηγαίο κώδικα για οδηγίες σχετικά με τη μεταγλώττιση και τη ρύθμιση στο Linux. Το I2C (συντομογραφία Inter-Integrated Circuit) είναι ένας σειριακός δίαυλος δύο συρμάτων που χρησιμοποιείται συνήθως σε υπολογιστές για επικοινωνία χαμηλού επιπέδου μεταξύ εσωτερικών στοιχείων. Το I2C είναι επίσης δημοφιλές στη ρομποτική. Όλα τα είδη αισθητήρων και ενεργοποιητών διατίθενται σε μορφή συμβατή με I2C: υπερηχητικά εύρεσης εύρους, αισθητήρες επιτάχυνσης, κλίσης, θερμοκρασίας και πίεσης, σερβοελεγκτές και διαστολείς διαύλου που παρέχουν πρόσθετες γραμμές γενικής χρήσης (GPIO). Οι πιο σύγχρονοι μικροελεγκτές (Atmel, Microchip PIC, κ.λπ.) διαθέτουν υποστήριξη για I2C που είναι ενσωματωμένη. Αλλά η διαθέσιμη επεξεργαστική ισχύς στους μικροελεγκτές είναι περιορισμένη και η ανάπτυξη λογισμικού - με εξειδικευμένα προγράμματα μεταγλώττισης και περιβάλλοντα προγραμματισμού - μπορεί μερικές φορές να είναι μια αγγαρεία. Με τους φορητούς υπολογιστές και τους υπολογιστές ενός πίνακα να γίνονται όλο και μικρότεροι και πιο προσιτοί, είναι όλο και πιο συνηθισμένο να βλέπουμε αυτά τα συστήματα να χρησιμοποιούνται απευθείας σε έργα ρομποτικής και ηλεκτρονικής. Αυτό παρέχει άφθονη ισχύ για νέες δυνατότητες όπως η επεξεργασία της όρασης και η πιο εξελιγμένη τεχνητή νοημοσύνη, και διευρύνει σε μεγάλο βαθμό το εύρος των διαθέσιμων εργαλείων και γλωσσών ανάπτυξης … αλλά παρουσιάζει επίσης ένα νέο πρόβλημα: η διασύνδεση αυτών των "τακτικών" συστημάτων με περιφερειακά γίνεται συνήθως μέσω του mainstream θύρες καταναλωτή, όπως USB. δεν υπάρχει εξωτερικά διαθέσιμη "θύρα I2C" που μπορούμε απλώς να χρησιμοποιήσουμε για να χρησιμοποιήσουμε τους αισθητήρες μας … ή υπάρχει;

Βήμα 1: Υφιστάμενες επιλογές

Υφιστάμενες επιλογές
Υφιστάμενες επιλογές
Υφιστάμενες επιλογές
Υφιστάμενες επιλογές

Ένας τρόπος σύνδεσης συσκευών I2C σε συνηθισμένο επιτραπέζιο ή φορητό υπολογιστή είναι μέσω προσαρμογέα USB-to-I2C. Υπάρχουν τουλάχιστον δώδεκα τέτοιες επιλογές εκεί, που κυμαίνονται από κιτ φτιάξτε μόνοι σας με λογισμικό ανοιχτού κώδικα, έως εξελιγμένες εμπορικές μονάδες με κάθε κουδούνι και σφύριγμα.

Ένα μειονέκτημα της προσέγγισης USB-to-I2C είναι το κόστος. Ένα πλήρες εμπορικό μοντέλο μπορεί να κοστίσει $ 250 ή περισσότερο. Ακόμη και οι «δωρεάν» εναλλακτικές λύσεις σπιτιού υποθέτουν μια συλλογή εξαρτημάτων και μια προηγούμενη επένδυση σε προγραμματιστή μικροελεγκτή και τις σχετικές γνώσεις για να το χρησιμοποιήσουν. Ένα άλλο μειονέκτημα είναι η σχετική έλλειψη υποστήριξης προγράμματος οδήγησης εκτός του δημοφιλούς Windows. Λίγες από αυτές τις συσκευές λειτουργούν εγγενώς σε υπολογιστές Macintosh ή Linux.

Βήμα 2: Το DDC είναι I2C

Το DDC είναι I2C
Το DDC είναι I2C
Το DDC είναι I2C
Το DDC είναι I2C
Το DDC είναι I2C
Το DDC είναι I2C

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

Οι περισσότερες σύγχρονες κάρτες γραφικών και οθόνες έχουν υποστήριξη για κάτι που ονομάζεται Display Data Channel (DDC), ένας σύνδεσμος επικοινωνίας μέσα σε ένα καλώδιο βίντεο που επιτρέπει στον υπολογιστή και την οθόνη να διαπραγματεύονται αμοιβαία συμβατές αναλύσεις και να επιτρέπουν τον έλεγχο λογισμικού των λειτουργιών της οθόνης που συνήθως προσπελάζονται με φυσικά κουμπιά στο απεικόνιση. Το DDC είναι, στην πραγματικότητα, απλώς μια εφαρμογή ενός διαύλου I2C με μερικούς καθιερωμένους κανόνες. Αγγίζοντας αυτήν τη σύνδεση μεταξύ υπολογιστή και οθόνης (ή χρησιμοποιώντας τις γραμμές DDC σε εφεδρική αχρησιμοποίητη θύρα βίντεο, όπως η σύνδεση εξωτερικής οθόνης σε φορητό υπολογιστή), μπορείτε να διασυνδεθείτε με ορισμένες συσκευές I2C σχεδόν χωρίς κόστος, παρακάμπτοντας το συνηθισμένη ανάγκη για μια συσκευή προσαρμογέα εντελώς. Το μόνο που χρειαζόμαστε για να έχουμε φυσική πρόσβαση σε αυτό το δίαυλο I2C είναι ένα χαλασμένο καλώδιο βίντεο…

Βήμα 3: Ανατομή του καλωδίου

Ανατομή του καλωδίου
Ανατομή του καλωδίου
Ανατομή του καλωδίου
Ανατομή του καλωδίου

Τέσσερα καλώδια χρειάζονται για τη διεπαφή I2C: ισχύ +5V, γείωση, σειριακά δεδομένα και σειριακό ρολόι. Pinouts για τους διάφορους τύπους θυρών βίντεο μπορείτε να βρείτε στη Wikipedia ή στο Pinouts.ru. Θυμηθείτε εάν χρησιμοποιείτε καλώδιο VGA για να βρείτε ένα με το πλήρες συμπλήρωμα των ακίδων. μερικά περιλαμβάνουν μόνο ένα υποσύνολο. Κόβοντας πίσω τη μόνωση και προστατεύοντας από το εξωτερικό του καλωδίου, πιθανότατα θα βρείτε δύο ομάδες καλωδίων μέσα. Παχύτερα σύρματα ή δέσμες καλωδίων τυλιγμένες σε πρόσθετη θωράκιση, μεταφέρουν συνήθως το σήμα βίντεο. Δεν μας ενδιαφέρουν αυτά και μπορούν να μειωθούν. Λεπτά, μη προστατευμένα σύρματα μεταφέρουν συνήθως τα σήματα DDC (I2C) μεταξύ άλλων. Ένας πολύμετρος ή ένας ελεγκτής συνέχειας μπορεί να βοηθήσει στην εύρεση των σωστών τεσσάρων καλωδίων για το καλώδιό σας. Η χρήση γυμνού συνδετήρα μπορεί να είναι πλεονεκτική εδώ, καθώς πρέπει απλά να κολλήσετε τέσσερα καλώδια στις καρφίτσες που σας ενδιαφέρουν. Μια σημείωση σχετικά με την ισχύ +5V: το διαθέσιμο ρεύμα είναι πολύ περιορισμένο. περίπου 50 mA σύμφωνα με τις προδιαγραφές DDC. Οι περισσότερες συσκευές I2C απορροφούν ένα μικρό κομμάτι ρεύματος, οπότε θα πρέπει να είναι δυνατή η εκτέλεση αρκετών ταυτόχρονα… αλλά εάν χρησιμοποιείτε περισσότερες από μία ή δύο λυχνίες LED (ή άλλες συσκευές συγκριτικά υψηλής τάσης), θα πρέπει να παρέχεται εξωτερική τροφοδοσία.

Βήμα 4: Ο ολοκληρωμένος προσαρμογέας

Ο ολοκληρωμένος προσαρμογέας
Ο ολοκληρωμένος προσαρμογέας

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

Βήμα 5: Λογισμικό και έργα

Λογισμικό και Έργα
Λογισμικό και Έργα
Λογισμικό και Έργα
Λογισμικό και Έργα

Μπορείτε να κατεβάσετε τον πηγαίο κώδικα Mac OS X και Linux για εργασία με τον προσαρμογέα από την ιστοσελίδα μου (ο σύνδεσμος λήψης βρίσκεται στο κάτω μέρος της σελίδας). Είναι γραμμένο σε C και θα χρειαστεί να έχετε εγκατεστημένο το gcc (το Linux συνήθως το περιλαμβάνει αυτό από προεπιλογή, ενώ οι χρήστες Mac θα πρέπει να εγκαταστήσουν τα εργαλεία προγραμματιστή που είναι προαιρετικό πρόγραμμα εγκατάστασης στον αρχικό σας δίσκο λειτουργικού συστήματος ή να τα κατεβάσετε δωρεάν από την Apple). Ο κώδικας παραδείγματος περιλαμβάνεται για την ανάγνωση ενός αισθητήρα θερμοκρασίας, το αναβοσβήσιμο ενός "έξυπνου LED" BlinkM, τη σύνταξη και την επαλήθευση ενός σειριακού EEPROM, την ανάγνωση ενός ελεγκτή Nintento Wii Nunchuk (μόνο για Linux) και την επικοινωνία με μια πλακέτα σερβοελεγκτή. Δυστυχώς, αυτό το σχήμα προσαρμογέα δεν είναι συμβατό με όλα τα συστήματα. Η υποστήριξη για DDC δεν είναι υποχρεωτική, επομένως δεν υποστηρίζουν όλες οι κάρτες βίντεο αυτήν τη δυνατότητα. Είχα καλή τύχη μέχρι τώρα με συστήματα Mac που διαθέτουν τσιπ γραφικών ATI ή Intel, αλλά τα συστήματα που βασίζονται σε NVIDIA δεν έχουν τύχη. Από την πλευρά του Linux έχω δοκιμάσει μόνο με επιτυχία ένα IBM ThinkPad A31p (γραφικά ATI), αλλά δεν θα λειτουργούσε με Asus EeePC (Intel). Οι εικόνες εδώ δείχνουν μια δοκιμαστική πλατφόρμα που δείχνει διάφορες συσκευές I2C σε δράση. Ο υπολογιστής διαβάζει συνεχώς τη θερμοκρασία περιβάλλοντος από έναν αισθητήρα θερμοκρασίας I2C, καταγράφει περιοδικά αυτά τα δεδομένα σε ένα σειριακό τσιπ EEPROM I2C (ναι, θα μπορούσε απλά να εκτυπωθεί σε ένα αρχείο, αλλά αυτό ήταν για να επιδείξει περαιτέρω εφαρμογές I2C), και στη συνέχεια ένα σερβο (μέσω ένας ελεγκτής I2C) χρησιμεύει ως πρόχειρος δείκτης. Με τη βιβλιοθήκη και το δείγμα κώδικα για αυτές τις συσκευές ήδη στη θέση τους, χρειάστηκαν μόνο λίγα λεπτά για να συγκεντρωθεί αυτή η επίδειξη (και το μεγαλύτερο μέρος ήταν κατά την κατασκευή του δείκτη).

Συνιστάται: