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

Cryptap: מנעול דלת המבוסס על קצב: 5 שלבים
Cryptap: מנעול דלת המבוסס על קצב: 5 שלבים

וִידֵאוֹ: Cryptap: מנעול דלת המבוסס על קצב: 5 שלבים

וִידֵאוֹ: Cryptap: מנעול דלת המבוסס על קצב: 5 שלבים
וִידֵאוֹ: CrypTap Bitcoin Maden Kazarak Para Kazanma 2024, יולי
Anonim
Cryptap: מנעול דלת המבוסס על קצב
Cryptap: מנעול דלת המבוסס על קצב
Cryptap: מנעול דלת המבוסס על קצב
Cryptap: מנעול דלת המבוסס על קצב
Cryptap: מנעול דלת המבוסס על קצב
Cryptap: מנעול דלת המבוסס על קצב

בהשראת כמה מנגנוני פתיחת דלתות שראיתי ב- hackaday.com, החלטתי ליצור אחד לבד. לממשק זה יש שני כפתורים; אחד כדי להתחיל ולסיים את שליחת הסיסמה, ואחד כדי להקיש בפועל על הקצב שהוא הסיסמה שלך. יש גם נורת סטטוס. הצלחתי לבנות את זה ממש בזול באמצעות חלקים שאספתי בחודשים האחרונים. הדברים היחידים שעליתי לשלם עבורם היו המיקרו -בקר עצמו, שעולה 21 $ (https://www.pjrc.com/teensy/), וכמה חוטים לתלייה שהיו לי מלפני.

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

שלב 1: חלקים וכלים

חלקים וכלים
חלקים וכלים
חלקים וכלים
חלקים וכלים

בחרתי ב- Teensy כי זהו המיקרו -בקר הראשון שלי, ואין לי עדיין מתכנת. ההתקנה של ה- Teensy דורשת כבל USB מסוג A-miniB ותוכנה חינם להתקנה, תואם ל- Mac/Windows/Linux. כמו כן, זה ממש קל להעלות את קובץ ה- hex; פשוט הידור ולחץ על הכפתור ב- Teensy.

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

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

חומרה קיימת מראש
חומרה קיימת מראש
חומרה קיימת מראש
חומרה קיימת מראש
חומרה קיימת מראש
חומרה קיימת מראש
חומרה קיימת מראש
חומרה קיימת מראש

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

השביתה בדלת אומרת שצריך 24V@3A כדי לפעול, אבל הצלחתי להסתדר עם ספק כוח של 19V, 7.9A שהיה לי. השביתה בדלת הייתה מקוטבת, אז וודא שיש לך את הקוטביות הנכונה!

שלב 3: מעגלים

מעגלים
מעגלים
מעגלים
מעגלים
מעגלים
מעגלים
מעגלים
מעגלים

כדי לשלוט בשביתת הדלת, השתמשתי בממסר שמצאתי במתקן הקפה. ממסר זה היה זקוק ליותר מ- 5V TTL כדי להניע אותו, כך ש- sn754410 שימש לתרגום TTL ל- 19V, שהניע את הממסר. ה- sn754410 הוא באמת נהג חצי H מרובע, אז בזבזתי 3/4 מהשבב, אבל לא היו לי טרנזיסטורים כוח, אז בזה השתמשתי.

לשבב sn754410 יש שני סיכות VCC, אחד עבור 5V, השני עבור המתח שאתה רוצה שייצא, וזה היה 19V בשבילי. זה שבב ממש מגניב. אתה יכול להשתמש בזה כדי להניע מנועים וממסרים ישירות, מכיוון שהוא יכול להחליף 1A לרבע שבב ויש לו דיודות הגנה מובנות. תסתכל על גליון הנתונים. במעגל שלי, חיברתי את sn754410 ישירות לסיכת הפלט של העשרה שלי. הכפתורים מחוברים כפעילים-נמוכים, דבר הנפוץ מאוד עבור בקרי מיקרו. הם מחוברים ישירות ל- Teensy, מה שאומר שאני צריך לעשות ניתוק בתוכנה. נורית הסטטוס מחוברת ל- Teensy באמצעות נגד של 1K אוהם; שום דבר מיוחד. המעגל עבד ללא קבלים, אבל הכנסתי אותם בכל מקרה ליתר ביטחון. ישנם מכסי הגנה הן על מסילות הכוח של 19V והן 5V לקרקע. בזמן תכנות ה- Teensy, 5V הגיע מה- USB, אך כשהוא פועל בכוחות עצמו, הכוח מגיע מלבנית החשמל של המחשב הנייד. כשחיברתי את הרגולטור 7805 ישירות ל- 19V, הוא התחמם ממש, אז הכנסתי רשת של נגדים כדי להגביל את מתח הכניסה והזרם לרגולטור. זה היה טלטול, אבל עכשיו הכל בטמפרטורה ניתנת לניהול.

שלב 4: חיבור זה ביחד

חיבור זה ביחד
חיבור זה ביחד
חיבור זה ביחד
חיבור זה ביחד

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

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

שלב 5: קוד

קוד
קוד
קוד
קוד

ניסיתי להגיב על הקוד שלי. זכור כי מדובר בתוכנת 1.0, כלומר היא אינה נטולת באגים. ## OPERATION ## 1. לחץ על כפתור התחל/עצור כדי לסמן שאתה מוכן להתחיל בהזנת קוד. נורית המצב מתחילה להבהב לאט. 2. הקש על הקוד שלך על כפתור הקוד. נורית המצב תהבהב במהירות של 120 BPM, כך שתוכל להשתמש בזה כמטרונום שלך אם תרצה. עם זאת, תוכנית הקריפטאפ תמדוד את אורכי הדופק ביחס זה לזה באופן פרופורציונלי, כך שתוכל גם להשתמש בקצב שלך. רק וודא שאתה מספיק מדויק! 3. כאשר קלט הקוד מבוצע, לחץ שוב על לחצן התחל/עצור. התוכנית תחליט אם להכניס אותך פנימה. מכיוון שבני אדם אינם שומרי זמן מדויקים במיוחד (שלך ממש לא), אני מגדיר את יחס הסובלנות ל- +/- 30%. המשמעות היא שאורכי הקצב יכולים להיות לא מדויקים בכמות זו, ועדיין לעבור איסוף. זה מספיק טוב כדי להבחין בין שירים די דומים. יש כמות קטנה של חפיפה שקשה להגיע אליה בין פעימות באורך כפול ומשולש, אבל עדיין די קשה לשבור את הקוד. כדי לפתוח את הדלת, הפעימות חייבות להיות בפרופורציות הנכונות אחת לשנייה (+/- יחס הסובלנות), ומספר הפעימות חייב להיות נכון. אם הזנת סיסמה לא חוקית, התוכנית ממתינה מספר שניות תוך התעלמות מכל קלט משתמש. הוא גם יהבהב במהירות עם נורית המצב. אם הזנת הקוד הנכון, נורית המצב תידלק בהתמדה והדלת תינעל למשך 8 שניות. ## תצורת משתמש ## המפתח מאוחסן במערך כזה: #define keylength 5 const int key = {2, 1, 3, 3, 3}; // "יום הולדת שמח לך" המערך מאחסן את משך הזמן שקורה בין הפעימות. אז אם הסיסמה שלך כוללת שישה פתקים כמו "יום הולדת שמח לך", אמורים להיות חמישה אלמנטים במערך. אם הסיסמה שלך באמת ארוכה ויש בה יותר מ -16 פעימות, (ממש קשה, אני לא ממליץ עליה), עליך להגדיל את המספר המוגדר בשורה זו: #define inputCodeLength 16 ## שאר הקוד # # הייתי סקרן לגבי הפרעות, אז היו לי הכפתורים שלי להפעיל הפרעות. כדי להקל על ההפסקות האלה, ביקשתי מהמטפלים שלי להפריע לאיתור מצביעי פונקציות מסוימים. אם המצביע אינו מוגדר ל- NULL, הפונקציה שאליה היא מצביעה מופעלת. אלה מוגדרים עם הפונקציות השונות של "הגדרת מצב" בתוך cryptap.c. השתדלתי להימנע מהצפות חיץ על ידי הגדרת מספר מקסימלי של פולסים מוכנסים. אם נכנסים למספר הפולסים המרבי, התוכנית מתחילה מייד לנתח סיסמאות ומחליטה אם לפתוח את הדלת. אני מקווה שהערותיי בקוד עוזרות. ## BUGS ## ניסיתי להסיר את קוד איתור באגים ב- USB, אך הקוד לא יעבוד אם אעשה זאת. אז השארתי ב- usb_init () ובהצהרות ההדפסה () השונות. אעריך את זה אם מישהו יוכל להסיר אותם ועדיין להפעיל את התוכנית. אפילו טוב יותר אם הם יכולים להסביר מדוע זה לא עבד לי. מיד לאחר התכנות, ה- Teensy לפעמים לא מקבל קלט קוד. כדי לפתור זאת, מחזורים את המעגל.

מוּמלָץ: