יום חמישי, 27 באפריל 2017

גישה באמצעות כרטיס RFID

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

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

מוכנים?

שלב א' - צריבת הכרטיס
בשלב א' נבנה מכשיר שכותב את השם שנרצה על הכרטיס / הצ'יפ. לאחר שהשם יהיה צרוב על הכרטיס, נוכל לעבור לשלב ב' בו נגדיר שרק שם מסוים רשאי להיכנס לבית ואילו אחרים - לא. 

רכיבים (חלקם ישמשו אותנו רק בשלב ב' אולם כדאי כבר לבנות את הכל עכשיו): 
  • לוח ארדואינו
  • מטריצה
  • קורא/ כותב RFID מסוג RC522
  • נורת לד אדומה
  • נורת לד ירוקה
  • 2 נגדים בערך של 220Ω
  • חוטים... 
הערה חשובה: אתם עלולים להתקל בבעיה והרכיב לא יעבוד כשורה. יתכן שזו בעיה של מתח ואז תצטרכו לבנות מעט אחרת את התרשים. ראו כאן פתרון לבעיה

תחילה נבנה את המעגל: 



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

זה אמור להראות בערך כך (הנורות לא אמורות לדלוק עדיין..):




לאחר שהרכבנו הכל - 
  1. נוריד את הספריה מכאן. 
  2. נחלץ את הקבצים. 
  3. נדביק אותם במקומם (אצלי זה בנתיב הזה  C:\Program Files (x86)\Arduino\libraries)
  4. נסגור את תוכנת הארדואינו ונפתח מחדש. 
עכשיו אנחנו מוכנים להעלות את הקוד: 




אחרי שהעלינו את הקוד נפתח מסך סיריאלי:


  1. נעביר את הכרטיס על כותב הכרטיסים (RFID)
  2. נקיש # ו"שלח" או ENTER
  3. נקיש NADAV ואחר כך # 
  4. נלחץ על "שלח" או ENTER. 
  5. נשים את הכרטיס בצד.
  6. נחזור על התהליך עם הכרטיס השני אבל הפעם נחליף את NADAV ב TAMAR. 
כעת יש לנו שני כרטיסים שצרובים עליהם שני שמות שונים: TAMAR ו NADAV.

שלב ב' - קוד הרשאה 

כעת, צריך להעלות את הקוד החדש שיאפשר גישה ל TAMAR ויחסום את NADAV: 





אחרי שהעליתם את הקוד - נשאר לנו רק לבדוק אותו:

  1. העבירו את הכרטיס של NADAV ובדקו מה קורה
  2. העבירו את הכרטיס של TAMAR ובדקו מה קורה. 
אגב, אם תחפשו בקוד את המילה TAMAR - לא תמצאו. השורה בקוד שמגדירה לנו ש TAMAR נכנסת אולם NADAV למשל - לא, היא השורה הזאת:


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

בהצלחה!





טבלת ASCII (התייחסו לטור ה Dec וטור ה Char. התעלמו כרגע מטור ה Hex):



שלב ג' - הוספת כפתור לפתיחה

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

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

נתחיל?

תחילה נוסיף את הכפתור:

רכיבים נוספים:

  • לחצן
  • נגד 10KΩ
  • כמה חוטים. 
נבנה את המעגל על פי התרשים הבא: 



למי שהתבלבל:

  1. הוספנו לחצן שמקבל מתח מה 5V (ולשם כך פיצלנו את המתח כך שיגיע גם לקורא הכרטיסים וגם ללחצן). 
  2. חיברנו את הצד השני של הלחצן ליציאה מספר 8. 
  3. את אותו הצד חיברנו גם לשורת ה GND דרך נגד של 10KΩ. 
כעת נעלה את הקוד החדש שכולל את הפקודות ללחצן: 




בהצלחה!!


יום חמישי, 20 באפריל 2017

טנק בשלט רחוק

איך יוצרים טנק עם שלט רחוק?

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

נתחיל?

רכיבים:

  • שני לוחות ארדואינו
  • רסיבר RF - מקלט 
  • טרנסמיטר RF - משדר
  • טנק (או כל כלי רכב אחר בעל שני מנועי DC) 
  • דרייבר shield למנועי DC
  • ג'ויסטיק 
  • מספר חוטים
  • מטריצה קטנה 
  • סוללות לטנק (9V) כולל חיבור מיוחד לארדואינו (+ סוללה אחת 9V בשביל הדרייבר ללא חיבור מיוחד לארדואינו)

נתחיל מהטנק עצמו: 



את המנועים נחבר לדרייבר כמו שכבר הסברנו ו"נלביש" את הדרייבר על הארדואינו. נחבר סוללה אחת לדרייבר ואחת נוספת לארדואינו. 

בנוסף, נחבר לדרייבר ליציאה מספר 2 את RF recivier וכמו כן - נספק לו 5V ו GND. 

לאחר שסיימנו, נעלה את הקוד:




שימו לב!

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



כעת, אם סיימתם והכל בסדר, נוכל לבנות ולארגן את השלט של הטנק: 


שימו לב: 

את ה RF transmitter, המשדר, אנו נחבר ליציאה מס' 10 בארדואינו ונספק לו בנוסף 5V ו GND. 

את הג'ויסטיק נחבר על פי העיקרון הבא: 
  1. את ה VCC נחבר ל 5V
  2. את ה GND נחבר ל GND
  3. את ה SEL נשאיר ללא חיבור
  4. את שני החיבורים של הנתונים (שמסומנים אחרת בכל ג'ויסטיק...) - נחבר ל A0 ו A1. אם נראה שהצירים שלנו הפוכים בסופו של דבר - נחליף בין החוטים. 

לאחר שסיימנו - נעלה את הקוד: 



ועכשיו שימו לב: 

את השורות האלו -


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

  • להחליף את ה 510 ב 0
  • להחליף את ה 536 ב 0
להעלות את הקוד ולפתוח מסך סיריאלי. כעת אתם אמורים לראות 4 מספרים: 

מספר שמבטא את הסטיה של הציר הראשון
מספר שמבטא את הסטיה של הציר השני
ועוד שני מספרים מ 1/2/3/4 או לחלופין - 5. 

אם אתם רואים 5 - הג'ויסטיק מאוזן ולא צריך שיפור. 

אם אתם רואים 1/2/3/4 - תרשמו את המספר שמבטא את הסטייה של הציר הראשון כחיסור מהתוצאה של קריאת הציר (איפה שאני רשמתי 510) ותרשמו את המספר השני בשורה השנייה (איפה שרשמתי 536).



זהו!

כעת - הכל מוכן לפעולה!

בהצלחה!!





ולסיום עוד תובנה אחת:

החוליה החלשה כאן בכל הסיפור זה הסוללות: סוללות 9V נטענות לא מספיק חזקות בשביל להניע את הטנק וסוללות לא נטענות "נזללות". אני מקווה לקבל מ Ebay סוף סוף את הסוללות הנטענות AA שהזמנתי יחד עם החיבורים שלהם לארדואינו. נראה לי שיהיה אפשר ליצור כך משהו חזק בהרבה שיתפקד לאורך זמן.