תוכן עניינים:
- שלב 1: קריטריונים
- שלב 2: מעטפת
- שלב 3: אלקטרוניקה
- שלב 4: מקבל ביל
- שלב 5: בדיקה
- שלב 6: אלקטרוניקה למארז
- שלב 7: בדיקה אחרונה
- שלב 8: קוד Arduino + קישורים
וִידֵאוֹ: מכונת ממכר אוטומטית מבוססת ארדואינו $ 1: 8 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
קיבלנו את הרעיון שלנו מהמורה שלנו להנדסה - כולנו חשבנו שיהיה רעיון טוב שיהיה מכונה אוטומטית לכיתה שלנו והוא אמר - "מגניב, תכין אחד". התברר שמכונה אוטומטית תהיה פרויקט בכיר גדול וכאשר תסתיים תתפקד כגיוס תרומות לתכנית ההנדסה שלנו.
היא נקראת מכונה אוטומטית בסך $ 1 לא בגלל שהיא עולה 1 $, אלא פשוט כיוון שמקבל החשבונות הוא דגם ישן שלוקח שטרות של $ 1 בלבד:)
שלב 1: קריטריונים
רצינו מכונה אוטומטית שתתאים על גבי שולחן עבודה ולא תהיה גבוהה מדי. לקחנו את מידות רוחב השולחן כדי לוודא שאין לנו את המכונה האוטומטית תלויה ליד השולחן.
שלב 2: מעטפת
הכנו את הקופסה שלנו ברוחב 19 אינץ 'על 17 אינץ' בגובה 25 ס"מ. השתמשנו במכונת CNC לחיתוך העץ שלנו. השתמשנו ב- solidworks לעיצוב הפנים ולאחר מכן הפכנו אותם לסוגי קבצי ציור עבור תוכנת ה- CNC שלנו. שיפשפנו את הקצוות ואז הברגנו אותם עם 1 אינץ '". חיברנו את הלוח הקדמי עם ציר והשתמשנו בברגי ¼ “, כך שהברגים לא יעברו לצד השני. השתמשנו גם בזכוכית אקרילית אותה חתכנו למדפים ולפנל הקדמי.
שלב 3: אלקטרוניקה
ארדואינו
השתמשנו בלוח Arduino Mega 2560. השתמשנו גם בלוחות מוטור Adafruit על מנת שיוכלו להפעיל את מנועי הצעדים. הוספנו סיכות לאדאפרוט על מנת שיתחברו זה לזה. הם הוכנסו זה לזה. כל אחד יכול להפעיל 2 מנועים. כמו כן, שים לב שצריך לחבר את המגשר.
ספק כוח שולחני
אספקת החשמל של Bestek ATX באמצעות מתאם לשמירה על אספקת החשמל. המתאם הוא מבית sparkfun.com ומספק מתחים שונים.
סלילים לתוך מנועים
יצרנו דגמי solidworks כדי להחזיק את המנוע, לתפוס את הסליל ולהדריך את הסליל לאורך המדף. השגנו את הסלילים שלנו מאיביי וחתכנו אותם למימד. היינו צריכים גם לכופף 3 מהם מכיוון שלא קיבלנו 6 עם הקצוות הישרים כדי להתחבר לתושבת הסליל. לאחר מכן הדפסנו אותם בתלת מימד והצמדנו אותם לסליל ולמנוע. את מנועי הצעדים שהיו לנו הכנסנו לתושבת. הוא יחזיק את המנוע ויוביל את הסליל לאורך שביל ישר.
LCD ומקלדת
השתמשנו בלוח מקשים של Arduino ומסך LCD המחובר למתאם 5V במתאם ספק הכוח לצורך הספק ולאחר מכן לאותו לוח Arduino.
תִיוּל
אנו ממליצים על שימוש בחוטים של 18 מד. במקרה שלנו, היינו צריכים להתפשר על ידי שימוש במדדים שונים מכיוון שנגמרו לנו 18 מדידים
רצועת לד
השתמשנו ברצועת LED כדי להאיר את המכונה. חיברנו אותו למתאם 12V במתאם ספק הכוח. ברצועת הלד בה השתמשנו למרבה המזל הייתה עליה + ו - מה שהקל על תהליך החיבור שלה.
שלב 4: מקבל ביל
השתמשנו ב- Coinco BA30B כמקבל חשבונות שלנו. זה היה צריך להיות מחובר ישירות לקיר כמקור כוח. שילבנו אותו עם מתאם 24 פינים מאספקת אטקס לחיבור לחשמל ומאפשר חיווט קל יותר. הסימפטומים שבהם עקבנו נמצאים בקישור הבא:
techvalleyprojects.blogspot.com/2011/07/ard…
במקרה שלנו, היינו צריכים ליצור הר כדי להעלות את הצעת החוק כי אחרת זה יהיה נמוך מדי עבור המעטפת שלנו.
שלב 5: בדיקה
בדוק תחילה את האלקטרוניקה מחוץ למעטפת כדי לוודא שהרכיבים עובדים. יש לתקן כל בעיה שתתעורר לפני הצבתן בתוך המעטפת.
שלב 6: אלקטרוניקה למארז
לאחר שבדקת את האלקטרוניקה והיית מרוצה מתוצאותיהם, התחל להכניס אותם למארז שלך. התאם את אורכי החוט כך שיתאימו בנוחות פנימה.
שלב 7: בדיקה אחרונה
לאחר שהוכנס לתוך המעטפת, בדוק הכל שוב. אם הכל עובד כפי שציפית, מזל טוב! עשית מכונה אוטומטית.
שלב 8: קוד Arduino + קישורים
הורדות:
קוד ארדואינו
drive.google.com/drive/folders/1oC4MhOcMFy…
תיקיית SolidWorks עם קבצי חלקים והרכבה
drive.google.com/drive/folders/1amZoypiWcZ…
למקרה שקרה משהו לקישור, הנה קוד הארדואינו המוצג במלואו. קוד ארדואינו <<
#include #include #include "Arduino.h" #include #include #include "/Adafruit_MS_PWMServoDriver.h" #include
const int stepsPerRevolution = 200; שורות const byte = 4; // ארבע שורות const byte COLS = 3; // שלוש עמודות מפתחות char [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; בתים rowPins [ROWS] = {5, 6, 7, 8}; // להתחבר לשורות החריפות של בייט המקשים colPins [COLS] = {2, 3, 4}; // התחבר לסיבוכי העמודות של לוח המקשים לוח מקשים = לוח מקשים (makeKeymap (מקשים), rowPins, colPins, ROWS, COLS); Adafruit_MotorShield AFMS1 = Adafruit_MotorShield (); Adafruit_StepperMotor *myMotor1 = AFMS1.getStepper (-200, 1); Adafruit_StepperMotor *myMotor2 = AFMS1.getStepper (-200, 2); Adafruit_MotorShield AFMS2 = Adafruit_MotorShield (0x61); Adafruit_StepperMotor *myMotor3 = AFMS2.getStepper (-200, 1); Adafruit_StepperMotor *myMotor4 = AFMS2.getStepper (-200, 2); Adafruit_MotorShield AFMS3 = Adafruit_MotorShield (0x62); Adafruit_StepperMotor *myMotor5 = AFMS3.getStepper (-200, 1); Adafruit_StepperMotor *myMotor6 = AFMS3.getStepper (-200, 2); Adafruit_MotorShield AFMS4 = Adafruit_MotorShield (0x63); Adafruit_StepperMotor *myMotor7 = AFMS4.getStepper (-200, 1); Adafruit_StepperMotor *myMotor8 = AFMS4.getStepper (-200, 2); LiquidCrystal lcd (1, 11, 9, 10, 12, 13); // פינים דיגיטליים שה- lcd מחובר אליהם // קבועים // // סיכה לאשראי (-) קו const int billValidator = 22;
// משתנים /
/ רישום משך הדופק (מילי שניות) משך זמן לא חתום;
// החזקת סך כל הדולרים שנרשמו int dollarCounter = 0; הגדרת חלל () {lcd.begin (16, 1); // הגדר קואורדינטות טקסט lcd lcd.print ("הכנס $ 1 בלבד"); // הגדר טקסט Serial.begin (9600); // אתחל יציאות טוריות לתקשורת. Serial.println ("מבחן צעדים!"); // הקלד את מבחן המדרגה במסך הטורי כך שנדע על איזה מנוע צעד נלחץ. AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // הגדר את מהירות המנוע שבה יפעילו myMotor2-> setSpeed (100); myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // הגדרות סיכה לאימות החשבון ולחצן pinMode (billValidator, INPUT); // מגדיר את החוט
// אתחל יציאות טוריות לתקשורת. Serial.begin (9600); Serial.println ("מחכה לדולר …"); } לולאת חלל () {{duration = pulseIn (billValidator, HIGH); // מתחיל לחפש את אורך הדופק המתקבל ממקבל החשבון אם (משך> 12000) // ערך שעליו לעלות על מנת לאמת אותו כדולר מעובד ואותנטי {// Count dollar dollarCounter ++; // בודק אם הבנת Serial.print ("זיהה דולר. / N סה"כ:"); // הצגת ספירת דולר חדשה Serial.println (dollarCounter); // לולאה על מנת לחכות עד לחיצה על כפתור בזמן (משך> 12000) {char key = keypad.getKey (); // מחבר את מקש המקלדת ומתחיל לראות איזה מהם נלחץ אם (מקש! = NO_KEY) {// יחפש את המקש Serial.println (מקש); // מודיע לנו על מי נלחץ במסך הטורי} {if (key == '1') {// אם מקש 1 נלחץ, האם הפעולות הבאות: int keyPressed = key - '1'; myMotor8-> שלב (580, קדימה, כפולה); // מניע את המנוע וסובב 350 מעלות בכיוון קדימה. myMotor8-> שחרור (); // משחרר את המנוע מהמצב של החזקת עצמו במקומו. לַחֲזוֹר; // חוזר לתחילת קוד הלולאה}
if (key == '2') {// אם לוחצים על מקש 2, האם הפעולות הבאות: int keyPressed = key - '2'; myMotor7-> שלב (400, קדימה, כפולה); // מניע את המנוע וסובב 350 מעלות בכיוון קדימה. myMotor7-> שחרור (); // משחרר את המנוע מהמצב של החזקת עצמו במקומו. לַחֲזוֹר; // חוזר לתחילת קוד הלולאה} if (key == '3') {// אם לוחצים על מקש 3, האם הפעולות הבאות: int keyPressed = key - '3'; myMotor6-> שלב (400, קדימה, כפולה); // מניע את המנוע ומסתובב 350 מעלות בכיוון קדימה. myMotor6-> שחרור (); // משחרר את המנוע מהמצב של החזקת עצמו במקומו. לַחֲזוֹר; // חוזר לתחילת קוד הלולאה} if (key == '4') {// אם לוחצים על מקש 4, עושה את הפעולות הבאות: int keyPressed = key - '4'; myMotor5-> שלב (180, קדימה, כפולה); // מניע את המנוע וסובב 350 מעלות בכיוון קדימה. myMotor5-> שחרור (); // משחרר את המנוע מהמצב של החזקת עצמו במקומו. לַחֲזוֹר; // חוזר לתחילת קוד הלולאה} if (key == '5') {// אם לוחצים על מקש 5, האם הפעולות הבאות: int keyPressed = key - '5'; myMotor4-> שלב (6900, קדימה, כפולה); // מניע את המנוע ומסתובב 350 מעלות בכיוון קדימה. myMotor4-> שחרור (); // משחרר את המנוע מהמצב של החזקת עצמו במקומו. לַחֲזוֹר; // חוזר לתחילת קוד הלולאה} if (key == '6') {// אם לוחצים על מקש 6, האם הפעולות הבאות: int keyPressed = key - '6'; myMotor3-> שלב (400, קדימה, כפולה); // מניע את המנוע ומסתובב 350 מעלות בכיוון קדימה. myMotor3-> שחרור (); // משחרר את המנוע מהמצב של החזקת עצמו במקומו. לַחֲזוֹר; // חוזר לתחילת קוד הלולאה} if (key == '7') {// אם לוחצים על מקש 7, האם הפעולות הבאות: int keyPressed = key - '7'; myMotor7-> שלב (400, קדימה, כפולה); // מניע את המנוע וסובב 350 מעלות בכיוון קדימה. myMotor7-> שחרור (); // משחרר את המנוע מהמצב של החזקת עצמו במקומו. לַחֲזוֹר; // חוזר לתחילת קוד הלולאה} if (key == '8') {// אם לוחצים על מקש 8, עושה את הפעולות הבאות: int keyPressed = key - '8'; myMotor8-> שלב (400, קדימה, כפולה); // מניע את המנוע וסובב 350 מעלות בכיוון קדימה. myMotor8-> שחרור (); // משחרר את המנוע מהמצב של החזקת עצמו במקומו. לַחֲזוֹר; // חוזר לתחילת קוד הלולאה}}}}}} >>
מוּמלָץ:
מכונת ממכר אוטומטית: 8 שלבים
מכונת ממכר אוטומטית: לפני שלוש שנים התחלתי ללמוד במכללה טכנית אלקטרונית. אחת העובדות שהפתיעו אותי באותה תקופה הייתה מספר המעשנים מכיוון שבמהלך ההפסקות חצי מהתלמידים עזבו את קירות בית הספר כדי לפרוק את רגשותיהם לאחר
מערכת מעבר רכבת אוטומטית באמצעות פלטפורמה משובצת מבוססת ארדואינו: 9 שלבים
מערכת מעבר רכבת אוטומטית באמצעות פלטפורמה משובצת מבוססת ארדואינו: חג המולד עוד שבוע בלבד! כולם עסוקים בחגיגות ובקבלת מתנות, מה שאגב מתקשה להגיע עם אפשרויות בלתי נגמרות מסביבנו. מה דעתך ללכת על מתנה קלאסית ולהוסיף נגיעה של DIY ל
מכונת פינבול שולחנית באמצעות Evive- תבנית משובצת מבוססת ארדואינו: 18 שלבים (עם תמונות)
מכונת פינבול שולחנית באמצעות Evive- תבנית משובצת מבוססת ארדואינו: סוף שבוע נוסף, עוד משחק מרגש! והפעם, זה לא אחר מאשר משחק הארקייד האהוב על כולם - פינבול! פרויקט זה יראה לך כיצד להכין מכונת פינבול משלך בקלות בבית. כל מה שאתה צריך זה רכיבים מן evive
Süßigkeitenautomat - מכונת ממכר לממתקים: 5 שלבים (עם תמונות)
Süßigkeitenautomat - מכונת ממכר לממתקים: Dieser Automat spendet S ü ß igkeiten (oder andere Objekte), die die Form von Schokolinsen haben, auf sehr unst ä ndliche Weise. Das Ziel war es, oneen interesse Mechanismus zu bauen und unterschiedliche Methoden aus dem Making-Bereic
מערכת GPS מבוססת Arduino מבוססת GPS+GPRS למניעת גניבה: 5 שלבים (עם תמונות)
מערכת GPS מבוססת Arduino מלאה+מערכת גניבת GPRS: שלום לכולם! רציתי לבנות פתרון מלא למכשיר נגד גניבה לרכב GPS, שיהיה: כמה שיותר זול, שלם ככל האפשר כפי שהוא פשוט עובד -אין-דבר-אחר-לעשות ככל האפשר אז בסופו של דבר בניתי פתרונות מבוססי ארדואינו