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

הדגמה 4x4 של לוח שחמט אלקטרוני/ עם Arduino Mega + קורא RFID + חיישני אפקט הול: 7 שלבים
הדגמה 4x4 של לוח שחמט אלקטרוני/ עם Arduino Mega + קורא RFID + חיישני אפקט הול: 7 שלבים

וִידֵאוֹ: הדגמה 4x4 של לוח שחמט אלקטרוני/ עם Arduino Mega + קורא RFID + חיישני אפקט הול: 7 שלבים

וִידֵאוֹ: הדגמה 4x4 של לוח שחמט אלקטרוני/ עם Arduino Mega + קורא RFID + חיישני אפקט הול: 7 שלבים
וִידֵאוֹ: אחרון חביב באמת ללא מילים 2024, דֵצֶמבֶּר
Anonim
הדגמה 4x4 של לוח שחמט אלקטרוני/ עם Arduino Mega + קורא RFID + חיישני אפקט הול
הדגמה 4x4 של לוח שחמט אלקטרוני/ עם Arduino Mega + קורא RFID + חיישני אפקט הול

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

שלב 1: מהי בעיה בזיהוי דמויות וכיצד פתרתי אותה

מהי בעיה בזיהוי דמויות וכיצד פתרתי אותה
מהי בעיה בזיהוי דמויות וכיצד פתרתי אותה

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

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

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

לבסוף, אני רוצה לציין שלמרות שהשתמשתי במספר טכניקות, הפרויקט נשאר פשוט ומובן, לא מעובד או מסובך מדי. לא היה לי מספיק זמן להמשיך עם לוח שחמט 8x8 (גם כי 64 חיישני אפקט הול יקרים בטורקיה, כיסיתי את כל ההוצאות הקשורות לפרויקט), לכן עשיתי גרסת הדגמה 4x4 עם שתי חלקים בלבד שנבדקו: פיון ו מַלכָּה. במקום להשתמש במנוע שחמט, כתבתי קוד מקור עבור Arduino, שמייצר את כל מה שתראו בסרטון למטה.

שלב 2: איך הדברים עובדים

Image
Image

לפני שנעבור להסבר המפורט על שלב הביצוע של הפרויקט, אני חושב שעדיף לצפות בסרטון המחשה ולקבל מושג אינטואיטיבי על מה אני מדבר.

הערה מס '1: אחד הנורות האדומות (הראשון בשורה/ משמאל לימין) נשרף, לא משנה.

הערה מס '2: למרות שנמצאת בשימוש נרחב, מניסיוני אני יכול לומר שטכנולוגיית RFID אינה הרעיון הטוב ביותר לשימוש ביישומי DIY (כמובן אם יש לך חלופות). לפני שהכל עבד, עשיתי ניסויים רבים עם הצבת חבילות שחמט קרוב לקורא והמתנה עד שהוא יקרא נכון את התעודה. יש להגדיר יציאה סידרית לשם כך מכיוון שהדרך שבה קורא RFID קורא את המזהה הוא רק כאב ראש. על האדם לנסות בעצמו בכדי להבין את הנושא. אם אתה זקוק לעזרה נוספת, אנא שלח לי מייל ([email protected]) או הוסף בסקייפ (tahir.miriyev9r1), על מנת שנוכל לקבוע שיחה ולדון בדברים בפירוט, אסביר הכל ביסודיות.

שלב 3: כלים ורכיבים

כלים ורכיבים
כלים ורכיבים
כלים ורכיבים
כלים ורכיבים
כלים ורכיבים
כלים ורכיבים

להלן רשימת כל הכלים בהם השתמשתי לפרויקט: רכיבים אלקטרוניים:

  • לוח לחם (x1)
  • חיישני אפקט היכל A1126LUA-T (IC-1126 SW OMNI 3-SIP ALLEGRO) (x16)
  • נוריות בסיסיות של 5 מ"מ (x16)
  • חוטי מגשר
  • קורא RFID ואנטנה 125 קילוהרץ (x1)
  • Arduino Mega (x1)
  • תגי RFID 3M (x2)

חומרים אחרים:

  • פרספקס
  • נייר מבריק
  • קרשים קצרים (עץ)
  • צבע אקרילי (ירוק כהה וקרם) x2
  • קרטון דק
  • מגנטים עגולים 10 מ"מ (x2)
  • חתיכות משכון ומלכה
  • מלחם וחומרי הלחמה

שלב 4: תרשימים (פריצה)

סכמטים (פריצה)
סכמטים (פריצה)

סכמטים קצת מסובכים, אני יודע, אבל הרעיון צריך להיות ברור. זו הייתה הפעם הראשונה שהשתמשתי ב- Fritzing (מומלץ אגב), כנראה שניתן היה ליצור קשרים בצורה מדויקת יותר. בכל אופן, רשמתי הכל בתוך הסכימות. הערה: לא הצלחתי למצוא את הדגם המדויק של RDIF Reader בין רכיבים במאגר הנתונים של Fritzing. הדגם בו השתמשתי הוא מודול RFID של 125Khz - UART. תוכל למצוא הדרכות ב- YouTube כיצד להגדיר מודול זה עם Arduino.

שלב 5: תהליך

תהליך
תהליך

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

1. קח קרטון בגודל 21X21 ס מ, כמו גם קרטון נוסף לחיתוך והדבקה של קירות החלק העליון של הלוח, על מנת ליצור 16 ריבועים עם A B C D 1 2 3 4 מספור. מכיוון שהקרטון דק, אתה יכול להדביק 16 חיישני אפקט היכל לכל ריבוע, עם 3 רגליים כל אחת ו -16 נוריות LED עם 2 רגליים כל אחת.

2. לאחר שתגדיר רכיבים, יהיה עליך לבצע הלחמה כלשהי, כדי להלחים רגליים של חיישני אפקט הול ו- LED לחוטי מגשר. בשלב זה, הייתי ממליץ לבחור חוטים צבעוניים בצורה חכמה, כך שלא תתבלבלו עם רגלי + ו- - של נוריות LED, גם רגלי VCC, GND ו- PIN של חיישני אפקט הול. כמובן שאפשר להדפיס לוח PCB עם חיישנים ואפילו מסוג נוריות מסוג WS2812 כבר מולחמים, אבל החלטתי להשאיר את הפרויקט פשוט ולעשות עוד "עבודת יד". בשלב זה, כל שעליך לעשות הוא להכין חבלים וחיישנים, בשלבים מאוחרים יותר מתוכנית Fritzing תוכל לראות היכן עליך לחבר את קצה כל חוט. בקרוב, חלקם יעברו ישירות ל- PIN על ה- Arduino Mega (יש מספיק מהם על Arduino), אחרים ללוח הלוח וכל ה- GND ניתנים להלחמה לחתיכה אחת (מה שהופך קרקע משותפת), ובהמשך צריך להיות מחובר ל- GND בלוח Arduino. הערה אחת חשובה כאן: חיישני אפקט האולם הם OMNIDIRECTIONAL, מה שאומר שזה לא משנה איזה קוטב של מגנט יוחזק קרוב לחיישן, הוא ישלח 0 נתונים בעוד שיש שדה מגנטי בקרבת מקום ו 1 כאשר אין, כלומר, המגנט נמצא רחוק (יותר ממה שנאמר 5 סמ) מהחיישן.

3. הכינו קרטון דומה בגודל 21X21 ס"מ והצבו עליו את ה- Arduino Mega וקרש לחם ארוך. אתה יכול גם לחתוך שוב 4 קירות מכל גובה רצוי מקרטון ולהדביק אותם אנכית בשתי השכבות של לוחות מרובעים בגודל 21X21 ס"מ. לאחר מכן עקוב אחר סכמטיקות Fritzing כדי להגדיר את העניינים. תוכל גם להגדיר את קורא ה- RFID לאחר שתסיים עם נוריות וחיישני אפקט הול.

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

5. הכינו את פיון ומלכה, כאשר שני מגנטים ברדיוס של 10 ס מ מחוברים למטה, כמו גם תגי RFID עגולים. מאוחר יותר, יהיה עליך לקרוא מזהים של תגים אלה ממסך סידורי ב- Arduino IDE.

6. אם הכל עובד מצוין, תוכל להפעיל את הקוד הראשי ולנסות דברים!

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

שלב 6: כמה תמונות וסרטונים משלבים שונים

Image
Image
כמה תמונות וסרטונים משלבים שונים
כמה תמונות וסרטונים משלבים שונים
כמה תמונות וסרטונים משלבים שונים
כמה תמונות וסרטונים משלבים שונים

שלב 7: קוד המקור

קוד מקור
קוד מקור

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

הערה: בדומה ללוח השחמט האמיתי, ספרתי באופן מופשט ריבועים כמו A1, A2, A3, A4, B1,…, C1,…, D1,.., D4. עם זאת, בקוד, זה לא מעשי להשתמש בסימון זה. לכן השתמשתי במערכים וייצג ריבועים כ- 00, 01, 02, 03, 10, 11, 12, 13,…, 32, 33 בהתאמה.

תודה לך על תשומת הלב! בדוק הכל והיה חופשי לכתוב בתגובות על כל סוג של טעויות שפספסתי, שיפורים, הצעות וכו '. מצפה לשמוע כמה דעות על הפרויקט. אם אתה זקוק לסיוע כלשהו בפרויקט, שלח לי דוא ל ([email protected]) או הוסף בסקייפ (tahir.miriyev9r1), כך שנוכל לקבוע שיחה ולדון בדברים בפירוט. בהצלחה!