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

Chess Robot Raspberry Pi Lynxmotion AL5D Arm: 6 Βήματα
Chess Robot Raspberry Pi Lynxmotion AL5D Arm: 6 Βήματα

Βίντεο: Chess Robot Raspberry Pi Lynxmotion AL5D Arm: 6 Βήματα

Βίντεο: Chess Robot Raspberry Pi Lynxmotion AL5D Arm: 6 Βήματα
Βίντεο: Chess-Playing Robotic Arm 2024, Ιούλιος
Anonim
Image
Image

Φτιάξτε αυτό το ρομπότ σκακιού και δείτε το να κερδίζει όλους!

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

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

Perhapsσως το πιο καινοτόμο πράγμα σε αυτό το ρομπότ είναι ο κώδικας για την αναγνώριση κινήσεων. Αυτός ο κωδικός όρασης μπορεί επίσης να χρησιμοποιηθεί για σκακιστικά ρομπότ που έχουν κατασκευαστεί με πολλούς άλλους τρόπους (όπως το σκακιστικό ρομπότ μου με κατασκευή LEGO).

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

Ο κωδικός μου είναι διαθέσιμος για προσωπική χρήση.

Βήμα 1: Απαιτήσεις

Η κατασκευή υλικού
Η κατασκευή υλικού

Όλος ο κώδικας είναι γραμμένος σε Python, ο οποίος θα λειτουργεί, μεταξύ άλλων, σε ένα Raspberry Pi.

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

Το ρομπότ μου χρησιμοποιεί Raspberry Pi και ο βραχίονας ρομπότ είναι κατασκευασμένος από ένα κιτ: Lynxmotion AL5D. Το κιτ έρχεται με έναν πίνακα ελέγχου σερβο. (Ο σύνδεσμος που μόλις έδωσα είναι στον ιστότοπο του RobotShop στις ΗΠΑ. Κάντε κλικ σε μία από τις σημαίες στο πάνω δεξιά μέρος των σελίδων του ιστότοπού τους για τη χώρα σας, π.χ. Ηνωμένο Βασίλειο).

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

Βήμα 2: Η κατασκευή υλικού

Η κατασκευή υλικού
Η κατασκευή υλικού

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

Αυτή η κατασκευή χρησιμοποιεί ένα ρομποτικό κιτ βραχιόνων από το Lynxmotion, το AL5D. Με το κιτ περιλαμβάνεται ένας πίνακας σερβοελεγκτή SSC-32U, ο οποίος χρησιμοποιείται για τον έλεγχο των κινητήρων στο βραχίονα.

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

Το Raspberry Pi που χρησιμοποιώ είναι ένα Raspberry Pi 3 Model B+. Αυτό μιλά στην πλακέτα SSC-32U μέσω σύνδεσης USB.

EDIT: Το Raspberry Pi 4 είναι τώρα διαθέσιμο. Θα χρειαστείτε:

  • Τροφοδοτικό 15W USB-C-προτείνουμε το επίσημο τροφοδοτικό Raspberry Pi USB-C
  • Μια κάρτα microSD φορτωμένη με NOOBS, το λογισμικό που εγκαθιστά το λειτουργικό σύστημα (αγοράστε μια προφορτωμένη κάρτα SD μαζί με το Raspberry Pi ή κατεβάστε το NOOBS για να φορτώσετε μια κάρτα μόνοι σας)
  • Πληκτρολόγιο και ποντίκι (δείτε αργότερα)
  • Καλώδιο για σύνδεση σε οθόνη μέσω θύρας micro HDMI του Raspberry Pi 4

Χρειαζόμουν περαιτέρω προσέγγιση στο βραχίονα του ρομπότ, οπότε έκανα κάποιες μικρές τροποποιήσεις σε αυτό, χρησιμοποιώντας επιπλέον εξαρτήματα Lynxmotion που μπορούν να αγοραστούν από το RobotShop:

1. Αντικαταστάθηκε ο σωλήνας 4,5 ιντσών από έναν 6 ιντσών-Lynxmotion ανταλλακτικό AT-04, κωδικός προϊόντος RB-Lyn-115.

2. Δοκίμασα να χρησιμοποιήσω ένα επιπλέον σύνολο ελατηρίων, αλλά επέστρεψα σε ένα ζευγάρι όταν εφάρμοσα το σημείο 3 παρακάτω

3. Επεκτείνετε το ύψος χρησιμοποιώντας ένα διαχωριστικό 1 ίντσας-μέρος Lynxmotion HUB-16, κωδικός προϊόντος RB-Lyn-336.

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

Αυτές οι τροποποιήσεις φαίνονται στην παραπάνω εικόνα στα δεξιά.

Υπάρχει μια κάμερα τοποθετημένη πάνω από την σκακιέρα. Αυτό χρησιμοποιείται για τον προσδιορισμό της κίνησης του ανθρώπου.

Βήμα 3: Το λογισμικό που κινεί το ρομπότ

Όλος ο κωδικός είναι γραμμένος σε Python 2. Απαιτείται αντίστροφος κινηματικός κώδικας για να μετακινηθούν σωστά οι διάφοροι κινητήρες έτσι ώστε να μπορούν να μετακινηθούν κομμάτια σκακιού. Χρησιμοποιώ κώδικα βιβλιοθήκης από το Lynxmotion που υποστηρίζει την κίνηση των κινητήρων σε δύο διαστάσεις και τον έχω προσθέσει με τον δικό μου κωδικό για 3 διαστάσεις, γωνία πιασίματος και κίνηση της γνάθου.

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

Η σκακιστική μηχανή είναι Stockfish - που μπορεί να νικήσει κάθε άνθρωπο! "Το Stockfish είναι ένας από τους ισχυρότερους κινητήρες σκακιού στον κόσμο. Είναι επίσης πολύ ισχυρότερος από τους καλύτερους ανδρικούς σκακιστές".

Ο κωδικός για την οδήγηση της σκακιστικής μηχανής, επιβεβαίωση ότι μια κίνηση είναι έγκυρη και ούτω καθεξής είναι το ChessBoard.py

Χρησιμοποιώ κάποιον κώδικα από το https://chess.fortherapy.co.uk για διασύνδεση με αυτό. Ο κωδικός μου (πάνω) στη συνέχεια διασυνδέεται με αυτό!

Βήμα 4: Το λογισμικό που αναγνωρίζει την κίνηση του ανθρώπου

Το έχω περιγράψει λεπτομερώς στο Instructable for my Chess Robot Lego build - οπότε δεν χρειάζεται να το επαναλάβω εδώ!

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

Βήμα 5: Κάμερα, Φώτα, Πληκτρολόγιο, Τραπέζι, Οθόνη

Κάμερα, Φώτα, Πληκτρολόγιο, Τραπέζι, Οθόνη
Κάμερα, Φώτα, Πληκτρολόγιο, Τραπέζι, Οθόνη
Κάμερα, Φώτα, Πληκτρολόγιο, Τραπέζι, Οθόνη
Κάμερα, Φώτα, Πληκτρολόγιο, Τραπέζι, Οθόνη

Αυτά είναι τα ίδια όπως στο Chess Robot Lego, οπότε δεν χρειάζεται να τα επαναλάβω εδώ.

Μόνο που αυτή τη φορά χρησιμοποίησα ένα διαφορετικό και σημαντικά καλύτερο ηχείο, ένα ηχείο Lenrui Bluetooth, το οποίο συνδέω στο RPi μέσω USB.

Διατίθεται από amazon.com, amazon.co.uk και άλλα καταστήματα.

Επίσης, χρησιμοποιώ τώρα μια διαφορετική κάμερα - μια HP Webcam HD 2300, καθώς δεν μπορούσα να κάνω την προηγούμενη κάμερα να συμπεριφέρεται αξιόπιστα.

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

Οι αλγόριθμοι χρειάζονται έναν ιδιαίτερο προσανατολισμό της κάμερας για να επιβιβαστούν. Παρακαλώ σχολιάστε παρακάτω αν αντιμετωπίζετε κάποιο πρόβλημα. Ο βραχίονας έχει περιορισμένη εμβέλεια και έτσι το τετραγωνικό μέγεθος πρέπει να είναι 3,5 cm.

Βήμα 6: Απόκτηση του Λογισμικού

1. Κοντόψαρο

Εάν εκτελείτε το Raspbian στο RPi, μπορείτε να χρησιμοποιήσετε τον κινητήρα Stockfish 7 - είναι δωρεάν. Απλά τρέχα:

sudo apt-get install stockfish

2. ChessBoard.py Αποκτήστε το από εδώ.

3. Κωδικός βασισμένος στο https://chess.fortherapy.co.uk/home/a-wooden-chess… Έρχεται με τον κωδικό μου.

4. Βιβλιοθήκη Python 2D Inverse Kinematics -

5. Ο κωδικός μου που επικαλείται όλο τον παραπάνω κώδικα και που κάνει το ρομπότ να κάνει τις κινήσεις, και τον κωδικό της όρασής μου. Λάβετε αυτό από μένα πρώτα εγγραφείτε στο κανάλι μου στο YouTube, στη συνέχεια κάνοντας κλικ στο κουμπί "Αγαπημένα" κοντά στην κορυφή αυτού του Instructable και, στη συνέχεια, δημοσιεύοντας ένα σχόλιο σε αυτό το Instructable και θα απαντήσω.

Συνιστάται: