תוכן עניינים:

שחמט רובוט פטל Lynxmotion AL5D זרוע: 6 שלבים
שחמט רובוט פטל Lynxmotion AL5D זרוע: 6 שלבים

וִידֵאוֹ: שחמט רובוט פטל Lynxmotion AL5D זרוע: 6 שלבים

וִידֵאוֹ: שחמט רובוט פטל Lynxmotion AL5D זרוע: 6 שלבים
וִידֵאוֹ: robotic arm playing chess 2024, נוֹבֶמבֶּר
Anonim
Image
Image

בנה את רובוט השחמט הזה וראה אותו מנצח את כולם!

זה די קל לבנות אם אתה יכול לעקוב אחר ההוראות כיצד לבנות את הזרוע, ואם יש לך לפחות ידע אלמנטרי בתכנות מחשבים ולינוקס.

האדם, משחק לבן, עושה מהלך. זה מזוהה על ידי מערכת הזיהוי החזותי. לאחר מכן הרובוט מהרהר ואז עושה את המהלך שלו. וכן הלאה …

אולי הדבר הכי חדש ברובוט הזה הוא הקוד לזיהוי מהלכים. קוד ראייה זה ניתן לשימוש גם לרובוטי שחמט שנבנו בדרכים רבות אחרות (כגון רובוט השחמט שלי עם LEGO build).

מכיוון שהמהלך של האדם מוכר על ידי מערכת ראייה, אין צורך בחומרה מיוחדת של לוח שחמט (כגון בוררי קנים, או כל דבר אחר).

הקוד שלי זמין לשימוש אישי.

שלב 1: דרישות

בניית החומרה
בניית החומרה

כל הקוד כתוב בפייתון, שיופעל בין היתר על פטל פטל.

ה- Raspberry Pi הוא מחשב לוח יחיד יחיד קטן וזול (בסביבות 40 $) שפותח על ידי קרן Raspberry Pi. הדגם המקורי הפך לפופולרי בהרבה מהצפוי, ונמכר לשימושים כגון רובוטיקה

הרובוט שלי משתמש ב- Raspberry Pi, וזרוע הרובוט בנויה מערכה: Lynxmotion AL5D. הערכה מגיעה עם לוח בקר סרוו. (הקישור שנתתי זה עתה לאתר RobotShop בארה ב; לחץ על אחד הדגלים בפינה השמאלית העליונה של דפי האתר שלהם עבור המדינה שלך, למשל בריטניה).

תזדקק גם לשולחן, מצלמה, תאורה, מקלדת, מסך והתקן הצבעה (למשל עכבר). וכמובן, כלי שחמט ולוח. אני מתאר את כל הדברים האלה ביתר פירוט בשלבים הבאים.

שלב 2: בניית החומרה

בניית החומרה
בניית החומרה

כפי שציינתי בעבר, לב קוד החזון יעבוד עם מגוון מבנים.

מבנה זה משתמש בערכת זרוע רובוטית מ- Lynxmotion, AL5D. הערכה כוללת לוח בקר סרוו SSC-32U, המשמש לשליטה במנועים בזרוע.

בחרתי ב- AL5D כי הזרוע חייבת להיות מסוגלת לבצע תנועות מדויקות חוזרות ונשנות ולא להיסחף. האוחז צריך להיות מסוגל לעבור בין חתיכות והזרוע צריכה להיות מסוגלת להגיע לצד הרחוק של הלוח. עדיין הייתי צריך לבצע כמה שינויים כמפורט להלן.

ה- Raspberry Pi שאני משתמש בו הוא Raspberry Pi 3 דגם B+. זה מדבר עם לוח ה- SSC-32U באמצעות חיבור USB.

עריכה: ה- Raspberry Pi 4 זמין כעת. תזדקק ל:

  • ספק כוח USB-C 15W-אנו ממליצים על ספק הכוח הרשמי של Raspberry Pi USB-C
  • כרטיס microSD טעון NOOBS, התוכנה המתקינה את מערכת ההפעלה (קנה כרטיס SD טעון מראש יחד עם ה- Raspberry Pi שלך, או הורד NOOBS כדי לטעון כרטיס בעצמך)
  • מקלדת ועכבר (ראה בהמשך)
  • כבל לחיבור לתצוגה באמצעות יציאת מיקרו 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. הרחיב את טווח ההחזקה באמצעות רפידות אחיזה רזרביות המחוברות על ידי כמה חתיכות לגו חילוף שהיו לי ולהקות אלסטיות (!) זה עובד טוב מאוד, מכיוון שהוא מציג גמישות בעת הרמת חתיכות.

ניתן לראות שינויים אלה בתמונה למעלה מימין.

מצלמה מותקנת מעל לוח השחמט. זה משמש לקביעת מהלך האדם.

שלב 3: התוכנה המזיזה את הרובוט

כל הקוד כתוב בפייתון 2. יש צורך בקוד קינמטיקה הפוך על מנת להזיז את המנועים השונים בצורה נכונה כך שניתן להזיז חלקים שחמטיים. אני משתמש בקוד הספרייה מ- Lynxmotion התומך בהנעת המנועים בשני ממדים והוספתי לזה עם קוד משלי ל -3 ממדים, זווית אחיזה ותנועת לסת אחיזה.

אז לאחר מכן יש לנו קוד שיעביר חלקים, ייקח חלקים, הטירה, יתמוך ב- passant וכן הלאה.

מנוע השחמט הוא Stockfish - שיכול לנצח כל אדם! "סטוקפיש הוא אחד ממנועי השחמט החזקים בעולם. הוא גם הרבה יותר חזק מהטובים של שחמט האדם".

הקוד להנעת מנוע השחמט, אימות של מהלך תקף וכן הלאה הוא ChessBoard.py

אני משתמש בקוד של https://chess.fortherapy.co.uk כדי להתממשק לזה. הקוד שלי (למעלה) מתממשק עם זה!

שלב 4: התוכנה שמזהה את מהלך האדם

תיארתי זאת בפירוט במבנה Instructable for My Robot Lego Lego - כך שאני לא צריך לחזור על זה כאן!

החלקים ה"שחורים "שלי היו חומים במקור, אבל צבעתי אותם בשחור מאט (עם" צבע לוח "), מה שגורם לאלגוריתם לעבוד טוב יותר בתנאי תאורה משתנים יותר.

שלב 5: מצלמה, אורות, מקלדת, שולחן, תצוגה

מצלמה, אורות, מקלדת, שולחן, תצוגה
מצלמה, אורות, מקלדת, שולחן, תצוגה
מצלמה, אורות, מקלדת, שולחן, תצוגה
מצלמה, אורות, מקלדת, שולחן, תצוגה

אלה הם כמו במבנה שלי לגו רובוט שחמט, כך שאני לא צריך לחזור עליהם כאן.

אלא שהפעם השתמשתי ברמקול שונה וטוב משמעותית, רמקול בלוטות 'Lenrui, אותו אני מחבר ל- RPi באמצעות USB.

להשיג ברשת amazon.com, amazon.co.uk ושקעים אחרים.

כמו כן, כעת אני משתמש במצלמה אחרת - מצלמת רשת HP 2300 של HP, מכיוון שלא הצלחתי לגרום למצלמה הקודמת להתנהג בצורה אמינה.

האלגוריתמים עובדים הכי טוב אם ללוח השחמט יש צבע שהוא רחוק מצבע החלקים! ברובוט שלי החלקים לבנים וחומים ולוח השחמט עשוי בעבודת יד בכרטיס והוא ירוק בהיר עם מעט הבדל בין הריבועים "השחורים" והלבנים.

האלגוריתמים זקוקים לכיוון מסוים של מצלמה ללוח. אנא הגיב למטה אם יש לך בעיה. לזרוע יש טווח הגבלה ולכן הגודל המרובע צריך להיות 3.5 ס מ.

שלב 6: קבלת התוכנה

1. דג דג

אם אתה מפעיל Raspbian ב- RPi שלך אתה יכול להשתמש במנוע Stockfish 7 - זה בחינם. פשוט תרוץ:

sudo apt-get להתקין stockfish

2. ChessBoard.py קבל את זה מכאן.

3. הקוד מבוסס על https://chess.fortherapy.co.uk/home/a-wood-chess… מגיע עם הקוד שלי.

4. ספריית קינמטיקה הפוכה של Python 2D -

5. הקוד שלי שמפעיל את כל הקוד למעלה ואשר גורם לרובוט לבצע את המהלכים, ואת קוד הראייה שלי. קבל זאת ממני על ידי הרשמה ראשונה לערוץ היוטיוב שלי ולאחר מכן לחיצה על כפתור "מועדף" בחלק העליון של המדריך ולאחר מכן פרסום הערה להוראה זו, ואני אגיב.

מוּמלָץ: