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

מפיץ כרטיסים אוטומטי: 7 שלבים
מפיץ כרטיסים אוטומטי: 7 שלבים

וִידֵאוֹ: מפיץ כרטיסים אוטומטי: 7 שלבים

וִידֵאוֹ: מפיץ כרטיסים אוטומטי: 7 שלבים
וִידֵאוֹ: מדריכים | 10 הגדרות שחובה לשנות בכל אייפון חדש📲 2024, נוֹבֶמבֶּר
Anonim
מפיץ כרטיסים אוטומטי
מפיץ כרטיסים אוטומטי

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

אספקה

  • 1 פטל פטל (השתמשתי ב- Raspberry Pi 4)
  • כרטיס SD (מומלץ 16GB)
  • 1 חתיכת תפרות לפטל פי (פיסת T)
  • 2 לוחות לחם
  • 1 מודול אספקת חשמל ללוח לחם, 5V ו- 3V3
  • תצוגת LCD אחת
  • פוטנציומטר 1
  • 1 MPU6050 (מד תאוצה וג'ירוסקופ)
  • 1 טרנזיסטורים NPN
  • 1 מרחיב קלט/פלט PCF8574N
  • מנוע צעד אחד
  • 1 לוח פריצה ULN2003 לשליטה במנוע צעד
  • 1 חיישן אולטרסוני HC-SR04
  • 1 מנועי DC 5V
  • 1 דיודות
  • 6 נגדי אוהם
  • 4 נגדים של 10K אוהם
  • חוט חשמלי לחיבור הכל

שימושי להחזיק בזמן ביצוע:

  • מלחם
  • לְרַתֵך
  • מסור דרמל או ג'יג (משהו לחיתוך עץ ופלסטיק ABS)

תוֹכנָה:

  • מֶרֶק
  • שולחן עבודה MySQL
  • Win32 Disk Imager
  • עורך קוד (אני ממליץ על קוד Visual Studio)
  • WinSCP
  • תמונה של רספבית

שלב 1: הכנת ה- Rasperry Pi

ראשית עלינו להכין את ה- Raspberry Pi לפני שנעשה משהו אחר. מכיוון שהכל יהיה פועל ב- Pi כך שזו אחת החלקים החשובים ביותר של מפיץ הכרטיסים.

הַתקָנָה:

הורד את התמונה של Raspbian מ-

  1. הורד את קובץ ה- ZIP
  2. חלץ את קובץ ה- ZIP שבו תוכל למצוא אותו בקלות
  3. פתח את Win32 Disk Imager ובחר את התמונה שחולצה
  4. בחר את כרטיס ה- SD בתפריט הנפתח ולחץ על כתיבה
  5. לאחר סיום תהליך הכתיבה תוכל לסגור את Win32 Disk Imager

עכשיו עלינו לעשות עוד כמה דברים לפני שנוכל להתחבר ל- Pi

  1. נווט אל תיקיית האתחול בכרטיס ה- SD
  2. פתח את הקובץ cmdline.txt
  3. הוסף 'ip = 169.254.10.1' בסוף השורה המופרדת ברווח
  4. שמור ויצא מהקובץ
  5. צור באותה ספריה קובץ בשם ssh והסר את הסיומת (פעולה זו תאפשר ssh באתחול הראשון כדי שנוכל להתחבר ל- Pi)
  6. הוצא את כרטיס ה- SD בבטחה והכנס אותו לפי

כעת נוכל להתחבר ל- Pi:

  1. תפס כבל אתרנט והכנס קצה אחד ל- Pi ואת הקצה השני במחשב שלך
  2. פאט פתוח
  3. הזן 169.254.10.1 בשדה שם מארח
  4. ודא ש- SSH נבחר והיציאה היא 22
  5. לחץ על פתח
  6. אם תקבל אזהרה תוכל פשוט להמשיך ולהתעלם ממנה
  7. שם המשתמש הוא pi והסיסמה היא פטל

תצורת והתקנת תוכנה:

פתח את raspi-config עם הפקודה הבאה:

sudo raspi-config

בחר באפשרות החמישית: אפשרויות ממשק

אפשר SPI ו- I2C

השבת את הדברים הבאים באפשרות השלישית: אפשרויות אתחול:

  • מסך התזה
  • בחר cli להפעלה ולא שולחן עבודה

הגדרת WiFi:

Wifi שימושי לניווט לאתר בקלות. וודא כי אישורי ה- WiFi שלך סגורים.

כדי להתקין wifi אנחנו צריכים כמה דברים:

הוסף את ה- wifi שלך באמצעות פקודה זו ושנה את SSID ו- PASSWORD למידע שלך:

sudo wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf

בצע פקודה זו כדי להגדיר מחדש את ה- wifi שלך:

sudo wpa_cli

בחר את הממשק הנכון:

ממשק wlan0

הגדר מחדש את הממשק:

להגדיר מחדש

בדוק אם התצורה מחדש הצליחה עם פקודה זו:

ip א

אם אתה רואה כתובת IP בממשק wlan0 אז הכל מוגדר.

עדכון מערכת ההפעלה

עדכן את מערכת ההפעלה באמצעות 2 הפקודות הבאות:

עדכון sudo apt

sudo apt שדרוג מלא

הגדרת MariaDB:

התקנת שרת אינטרנט של Apache:

sudo apt להתקין apache2 -y

התקנת שרת MariaDB:

sudo apt להתקין mariadb -server -y

כעת עלינו לאתחל מחדש:

sudo אתחול מחדש

מומלץ לאבטח את התקנת MariaDB. אתה יכול לעשות זאת על ידי הפעלת פקודה זו:

sudo mysql_secure_installation

ראשית תתבקש להזין את סיסמת השורש הנוכחית אך להתקנת ברירת המחדל אין אחת כזו, הקש Enter.

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

  • הזן y כדי להסיר משתמשים אנונימיים
  • הזן y כדי להשבית את כניסת השורש מרחוק
  • הזן y כדי להסיר מסדי נתונים של בדיקה וגישה אליהם
  • הזן y כדי לטעון מחדש זכויות פרטיות

התקנת MariaDB שלך צריכה להיות מאובטחת!

כעת נוכל ליצור משתמש חדש:

הזן את מעטפת mysql עם פקודה זו:

sudo mysql

צור משתמש עם שם המשתמש mysql וסיסמה (הסיסמה שלך) את הפקודות הבאות:

צור משתמש mysql@localhost המזוהה על ידי 'your_password';

להעניק את כל זכויות הפרטיות ב- *. * ל- mysql@localhost;

זכויות הדחה;

צא ממעטפת mysql עם הפקודה הבאה:

יְצִיאָה;

חבילות Python:

Python כבר צריך להיות מותקן אלא אם בחרת בגרסת ה- Lite:

sudo apt להתקין python3-pip

אנו זקוקים לכמות טובה של חבילות Python, תוכל להתקין את כולן באמצעות הפקודה הבאה:

pip3 התקן mysql-connector-python flask-socketio flask-cors gevent gevent-websocket

כעת עלינו לאתחל פעם נוספת

sudo אתחול מחדש

שלב 2: הגדרת קוד Visual Studio ו- MySQL Workbench

התחברות ל- Pi באמצעות MySQL Workbench:

פתח את MySQL Workbench

צור חיבור חדש ל- Pi עם המידע הבא:

  • שם החיבור: רספי
  • שיטת חיבור: TCP/IP רגיל מעל SSH
  • שם מארח SSH: כתובת IP של ה- Pi

אתה יכול לקבל את כתובת ה- IP באמצעות פקודה זו:

ip א

  • שם משתמש SSH: pi
  • MySQL שם מארח: 127.0.0.1
  • יציאת שרת MySQL: 3306
  • שם משתמש: mysql

לחץ על אישור והזן את הסיסמה עבור pi המשתמש ולאחר מכן הזן את הסיסמה עבור המשתמש mysql.

הגדרת קוד Visual Studio:

פתח קוד Visual Studio

התקן את 2 התוספים הבאים:

  • מרחוק - SSH
  • מרחוק - SSH: עריכת קבצי תצורה

הקש על קוד Visual Studio F1 והקלד ssh

בחר SSH מרחוק: הוסף מארח SSH חדש

מלא את ssh pi@כתובת IP

בשלב הבא הקש enter

כעת נוצר החיבור ל- Pi. אתה יכול להתחבר ל- Pi על ידי הקשה על F1 ובחירת התחבר למארח מרוחק.

הזן את הסיסמה כך ש- Visual Studio Code תהיה בעלת גישה ל- Pi.

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

שלב 3: תרשים פריצה

דיאגרמת פריטינג
דיאגרמת פריטינג
דיאגרמת פריטינג
דיאגרמת פריטינג
דיאגרמת פריטינג
דיאגרמת פריטינג

בשלב זה אסביר את המעגל.

הסכימות שלמעלה נעשות עם פריטינג.

מנוע DC:

חבר את GPIO 18 לבסיס האספן, הסיכה האמצעית על טרנזיסטור npn. חבר את קרקע המנוע לאספן מהטרנזיסטור ואת כוח המנוע ל- 5V. חבר את קרקע הטרנזיסטור לקו הקרקע. חבר את הדיודה במחסום מעל המנוע כך שהוא חוסם את זרימת הזרם ישירות לטרנזיסטור.

מנוע צעדים:

חבר את מנוע הצעד ללוח הבקרה. על לוח הבקרה יש סיכות בצד אחד לחיבור 5V ואדמה. הסיכות האחרות הן סיכות שליטה. סיכות אלה שולטות במגנטים שבתוך המנוע כך שהוא יכול להסתובב. חבר את הפינים האלה ל- GPIO 12, 16, 20 ו- 21 ב- Raspberry Pi.

אולטרסאונד HC-SR04:

חיישן זה יכול למדוד מרחקים לכ -4.5 מטרים באמצעות צליל.

חבר את סיכת VCC ל- 5V, סיכת ההדק ל- GPIO 25, סיכת ההד עם הנגד של 470 אוהם ל- GPIO 24 ואת הקרקע עם נגד של 470 אוהם לקרקע.

MPU6050:

חבר את סיכת VCC ל- 3V3, הקרקע לקרקע, scl ל- scl ב- Pi ו- sda ל- sda ב- Pi. עבור חיישן זה אני משתמש ב- I2C כדי לשלוט בו. אתה יכול לקרוא עוד על זה כאן. להלן הסבר בסיסי: ה- Pi הוא המאסטר ו- MPU6050 הוא העבד. דרך קו scl ה- Pi שולט בתזמונים ושורת ה- sda משמשת לשליחת נתונים מהמאסטר לעבד או מהעבד למאסטר. רק המאסטר יכול ליזום העברת נתונים.

נגד תלוי אור:

כדי לקבל קריאות נכונות מה- LDR אני משתמש בשבב MCP3008. זה מוודא שהקריאות מה- ldr יציבות ונכונות שהופכו מאותות אנלוגיים לדיגיטליים.

חבר את 3V3 לצד אחד של ה- ldr עם בינוני נגד של 10K אוהם. בין ה- ldr והנגד חברו חוט לערוץ 0 של MCP3008. לאחר מכן חבר את הצד השני של ה- ldr לקרקע.

תצוגת אל סי די:

אתה יכול להשתמש בתצוגת LCD ללא PCF8574 אבל מכיוון שסיכות ה- GPIO ב- Pi מוגבלות אני משתמש ב- PCF8574 כדי לשמור כמה סיכות GPIO. אתה יכול גם להשתמש במרשם משמרות אבל אני מעדיף PCF8574. אתה יכול לשלוט ב- PCF8574 באמצעות פרוטוקול SMbus אבל כתבתי את הכיתה שלי לשלוט בו. הפוטנציומטר שולט בניגודיות.

סיכות תצוגת LCD:

  • VSS לקרקע
  • VDD עד 5V
  • V0 לסיכה המשתנה של הפוטנטיומטר
  • RS ל- GPIO 13
  • R/W לקרקע כי אני כותב רק לתצוגה ולא קורא
  • E ל- GPIO 19
  • DB0 עד P0 של ה- PCF
  • DB1 עד P1
  • DB2 עד P2
  • DB3 עד P3
  • DB4 עד P4
  • DB5 עד P5
  • DB6 עד P6
  • DB7 עד P7
  • LED+ עד 5V
  • LED- לקרקע

סיכות PCF8574:

  • A0 לקרקע
  • A1 לקרקע
  • A2 לקרקע
  • קרקע לקרקע
  • VCC עד 5V
  • SDA ל- GPIO 27
  • SCL ל- GPIO 22 עם נגד של 330 אוהם

יתכן ואין לך LED+ ו- LED- תלוי בסוג התצוגה שקיבלת. LED+ ו- LED- מיועד לתאורה האחורית.

חבר את הצד החיובי של הפוטנציומטר ל- 5V ואת הקרקע לקרקע.

הקפד להשתמש בנגדי משיכה!

שלב 4: קוד ב- Github

אתה יכול למצוא את כל הקוד הדרוש ב- Github שלי.

פרויקט תיקיות 1:

תיקיה זו מכילה את כל הקוד עבור ה- backend. בתיקייה Klasses כל השיעורים לשליטה בחומרה.

מאגרי התיקיות מכילים 2 קבצים: Database.py ו- DataRepository.py. Database.py שומר על החיבור למסד הנתונים ומטפל בשאילתות. DataRepository.py מכיל את כל השאילתות הדרושות לאתר.

App.py הוא הקובץ הראשי של ה- backend. קובץ זה מתחיל באופן אוטומטי כאשר ה- Pi מופעל.

Config.py מכיל כמה הגדרות לחיבור למסד הנתונים. הקפד למלא קבצים אלה עם מידע משלך.

אתה יכול למקם את התיקיה הזו בכל מקום בספריית הבית שלך.

HTML תיקייה:

תיקיה זו מכילה את כל הקבצים לאתר, החזית.

  • התיקייה מכילה את הקבצים לפריסת האתר.
  • גופנים מכילים את הגופנים המשמשים באתר.
  • הסקריפט מכיל את כל קבצי Javascript כדי להפוך את האתר לדינאמי

תיקיה זו חייבת להיות בתיקייה/var/www/html

באפשרותך להעתיק קובץ או תיקיה באמצעות הפקודה הבאה:

sudo mv/path/to/current/directory/path/to/destination/directory

כדי לנווט לאתר הקלד בדפדפן שלך את כתובת ה- IP המוצגת בתצוגת ה- LCD.

שלב 5: מבנה מסד נתונים מנורמל

מבנה מסד נתונים מנורמל
מבנה מסד נתונים מנורמל

בשלב זה אנו הולכים לייבא את מסד הנתונים.

  1. התחבר ל- Raspberry Pi שלך באמצעות MySQL Workbench
  2. לחץ על שרת -> ייבוא נתונים
  3. בחר יבוא קובץ עצמאי
  4. בתיקייה Database-export from Github יש קובץ sql בשם dump_project1.sql
  5. עיין בקובץ זה ולחץ על התחל ייבוא

זהו זה. כעת ה- Pi יכול לגשת למסד הנתונים אם יש לו את המידע הנכון.

שלב 6: מארז למפיץ הכרטיסים

מארז למפיץ הכרטיסים
מארז למפיץ הכרטיסים
מארז למפיץ הכרטיסים
מארז למפיץ הכרטיסים
מארז למפיץ הכרטיסים
מארז למפיץ הכרטיסים

בשלב זה אסביר במה השתמשתי למארז וכיצד הרכבתי הכל.

במקרה השתמשתי ב -2 קופסאות ABS:

- 265 x 185 x 95 מ מ

- 171 x 121 x 80 מ מ

החורים שעשיתי בקופסאות

חור לתצוגת LCD, 3 חורים לכבלי החשמל, אחד לחוטים ממנוע הצעדים, מנוע ה- DC והחיישן האולטראסוני.

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

הרכבתי את מנוע ה- DC עם סוגר וקלטת דו צדדית. הכנתי לוח עץ להניח עליו את הקלפים עם חור לגלגל כדי לירות בכרטיס.

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

שלב 7: תכנית כשירות

זה באמת שימושי שהקוד יתחיל לאחר אתחול ה- Pi. בשביל זה אנחנו הולכים לעשות שירות.

צור קובץ חדש בשם smartcard.service עם הפקודה הבאה:

sudo nano /etc/systemd/system/smartcard.service

זה צריך להיכנס לקובץ:

[יחידה]

תיאור = backend של כרטיס חכם After = network.target [Service] ExecStart =/usr/bin/python3 -u app.py WorkingDirectory =/home/pi/project1 StandardOutput = inherit StandardError = inherit Restart = always User = pi [Install] WantedBy = multi-user.target מדריך העבודה הוא הנתיב לתיקייה שבה נמצאת התוכנית

עכשיו קיבלת כרטיס חכם משלך!

מוּמלָץ: