תוכן עניינים:
- אספקה
- שלב 1: איך זה עובד …
- שלב 2: העלאת הקוד
- שלב 3: נדרשות ספריות:
- שלב 4: החיבורים
- שלב 5: סטרו הכל ביחד
- שלב 6: שיפורים נוספים:
וִידֵאוֹ: רובוט שמספר אם ספק אלקטרוניקה בוגד בך או לא: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
בשנה שעברה הלכנו אני ואבי לחנות רובוטיקה/אלקטרוניקה שנפתחה לאחרונה קרוב מאוד למקום מגורינו. כשנכנסתי לשם, הוא היה מלא באלקטרוניקה, סרבים, חיישנים, פיס פטל וארדואינו. למחרת, הלכנו לאותה חנות וקנינו סנורים רבים ו -3 ארדואינים בשווי של כ -150 דולר. ברגע שחזרתי הביתה, אף מוצר אחר לא עבד מלבד ה- Arduino Mega. הונאו אותנו בכ -130 דולר וזה הרבה.
אז החלטתי ליצור רובוט שיכול לבדוק כ -12 חיישנים ושני מנועים (עדיין עובד על הסרוו) ויכול לקבוע אם המוצר פגום.
בואו ניכנס ישר לזה!
אספקה
1. ארדואינו UNO
2. תצוגת מסך מגע TFT 2.4 אינץ '
3. כמה חוטי מגשר
4. חיישנים ומנועים כדי שתוכל לבדוק אותם (כאן השתמשתי - חיישן תנועה, חיישן גז MQ6, חיישן קול, פוטנציומטר וחיישן מפלס מים)
שלב 1: איך זה עובד …
תיכננתי ארדואינו ליצירת ממשק משתמש אינטראקטיבי עם תצוגת TFT. כידוע, לתצוגת TFT יש רק סיכה אחת פנויה, כלומר סיכת A5. (אם אתה משתמש ב- UNO). אז כל חיישן שמשתמש בסיכות אנלוגיות לקריאת נתונים תואם את ההתקנה הזו …
בממשק המשתמש, אתה יכול לשנות את צבע הרקע של שולחן העבודה, ואתה יכול לפתוח את האפליקציה שפותחה עבור Arduino על ידי לבדיקת חיישנים.
בפתיחת האפליקציה תוכלו לראות 2 אפשרויות, INPUT ו- OUTPUT. אז אם תלחץ על קלט, הוא יראה 4 חיישנים (הוא תואם ל -12, אבל אני עדיין מתכנת אותו כשהבחנות מתקרבות …. אין זמן:(. כל אחד יכול לערוך את הקוד …)
וזה יכול גם לבדוק אם מנוע הסרבו פועל, אתה מחבר אותו לחריץ.
תסתכל:
שלב 2: העלאת הקוד
הקוד הוא תוכנית של 600 שורות שקידדתי בקפידה תוך כ- 50 שעות. יש בו כמה באגים אז אנא תקן אותו ושלח לי אותו בדואר שלי ([email protected]).
העלה את הקוד וחבר את מגן TFT ל- Arduino. אני ממליץ לך לשחק עם ממשק המשתמש כך שתקבל את העניין טוב יותר.
הקוד:
#לִכלוֹל
#include #include #include #define LCD_CS A3 #define LCD_CD A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_RESET A4 #define BLACK 0x0000 #define BLUE 0x001F #define NAVY 0x000F #define RED 0xF800 #define RED 0xF800 #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF #define LIGHTGREY 0xC618 #define PURPLE 0x780F #define OLIVE 0x7BE0 #define Selection #define YP A1 #define XM A2 #define XM A2 #define XM A2 #define XM A2 #defin 160 #define TS_MAXX 160 #define TS_MAXY 970 מסך מגע ts = מסך מגע (XP, YP, XM, YM, 300); Adafruit_TFTLCD tft (LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); #define BOXSIZE 40 #define PENRADIUS 3 #define MINPRESSURE 10 #define MAXPRESSURE 1000 int sound; מצב צ'ארה = 6; int touch = 0; int color = BLACK; int redir = 0; int ota; הגדרת void () {Serial.begin (9600); tft.reset (); tft.setFont (& FreeMonoBoldOblique12pt7b); tft.begin (0x9325); tft.setRotation (45); tft.setTextSize (0.5); tft.fillScreen (לבן); tft.setCursor (60, 160); tft.setTextColor (שחור); tft.print ("החלק כדי להיכנס"); } לולאת חלל () {float sensorVoltage; חיישן צף ערך; TSPoint p = ts.getPoint (); pinMode (XM, OUTPUT); pinMode (YP, OUTPUT); אם (pz> MINPRESSURE && pz 240 && px 130 && py 240 && px 20 && py 240 && px 20 && py 160 && px 12 && py 240 && px 20 && py 240 && px 20 && py 40 && px 15 && py 150 && px 40 && py 150 && px 80 && py 150 && px 120 && py 150 && px 170 && py 90 && px 40 && py 90 && px 80 && py 90 && px 120 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 150 && px 170 && py 100 && px 20 && py 200 && px 100 && py 100 && px 20 && py 100 && px 20 && py 100 && px 20 && py <100) {touch = 26; }} if (touch == 1 && state == 6) {tft.setRotation (0); tft.fillScreen (צבע); צליל = 0; tft.fillRect (200, 180, 80, 140, לבן); tft.drawRect (201, 181, 81, 141, שחור); tft.fillRect (80, 30, 100, 100, CYAN); tft.drawRect (81, 31, 101, 101, שחור); tft.fillRect (10, 30, 50, 100, NAVY); tft.drawRect (11, 31, 51, 101, שחור); tft.fillRect (10, 180, 30, 120, PURPLE); tft.drawRect (11, 181, 31, 121, BLACK); tft.fillRect (45, 180, 30, 120, כחול); tft.drawRect (46, 181, 31, 121, שחור); tft.fillRect (80, 180, 30, 120, CYAN); tft.drawRect (81, 181, 31, 121, שחור); tft.fillRect (115, 180, 30, 120, ירוק); tft.drawRect (116, 181, 31, 121, שחור); tft.fillRect (150, 180, 30, 120, צהוב); tft.drawRect (151, 181, 31, 121, שחור); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); tft.fillRect (200, 35, 12, 12, לבן); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, שחור); tft.drawCircle (210, 40, 14, לבן); //tft.fillTriange(a1, b1, a2, b2, c1, c2, RED); tft.setRotation (45); tft.setCursor (200, 20); tft.print ("הגדרות"); tft.fillRoundRect (45, 75, 75, 75, 4, WHITE); tft.drawRoundRect (45, 75, 75, 75, 4, שחור); tft.fillRect (75, 75, 15, 30, שחור); tft.fillRect (75, 120, 15, 30, שחור); tft.fillRect (90, 105, 30, 15, שחור); tft.fillRect (45, 105, 30, 15, שחור); מצב = 7; מגע = 0; ota = 0; } if (touch == 2) {tft.fillScreen (WHITE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); tft.fillRect (200, 35, 12, 12, לבן); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, שחור); tft.drawCircle (210, 40, 14, שחור); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, שחור); tft.setCursor (20, 200); tft.print ("התאמה אישית"); tft.setCursor (20, 170); tft.print ("התנתק"); tft.setCursor (20, 140); tft.print ("ציוד היקפי"); tft.setCursor (20, 110); tft.print ("אודות"); מגע = 1; מצב = 2; } if (touch == 10 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (10, 160); tft.setTextColor (שחור); tft.print ("נוצר ופותח"); tft.setCursor (100, 190); tft.print ("מאת:"); tft.setCursor (60, 220); tft.print ("נער מהודו"); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); tft.fillRect (200, 35, 12, 12, לבן); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, שחור); tft.drawCircle (210, 40, 14, שחור); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, שחור); מצב = 6; } if (touch == 11 && state == 2) {tft.fillScreen (WHITE); tft.setCursor (60, 40); tft.print ("בחר א"); tft.setCursor (40, 60); tft.print ("צבע רקע"); tft.fillRect (60, 180, 45, 45, אדום); tft.fillRect (120, 180, 45, 45, צהוב); tft.fillRect (180, 180, 45, 45, כחול); tft.fillRect (240, 180, 45, 45, ירוק); tft.fillRect (60, 130, 45, 45, MAGENTA); tft.fillRect (120, 130, 45, 45, NAVY); tft.fillRect (180, 130, 45, 45, LIGHTGREY); tft.fillRect (240, 130, 45, 45, CYAN); tft.fillRect (60, 80, 45, 45, לבן); tft.drawRect (60, 80, 45, 45, שחור); tft.fillRect (120, 80, 45, 45, שחור); tft.fillRect (180, 80, 45, 45, OLIVE); tft.fillRect (240, 80, 45, 45, PURPLE); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); tft.fillRect (200, 35, 12, 12, לבן); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, שחור); tft.drawCircle (210, 40, 14, שחור); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, שחור); מצב = 6; אם (redir == 1) {color = WHITE; } אם (redir == 2) {color = BLACK; } אם (redir == 3) {color = OLIVE; } אם (redir == 4) {color = PURPLE; } אם (redir == 5) {color = MAGENTA; } אם (redir == 6) {color = NAVY; } אם (redir == 7) {color = LIGHTGREY; } אם (redir == 8) {color = CYAN; } אם (redir == 9) {color = RED; } אם (redir == 10) {color = צהוב; } אם (redir == 11) {color = כחול; } אם (redir == 12) {color = ירוק; }} אם (מגע == 26) {ota = 1; tft.fillScreen (לבן); tft.setRotation (0); tft.fillTriangle (210, 30, 210, 50, 220, 40, WHITE); tft.fillRect (200, 35, 12, 12, לבן); tft.drawTriangle (210, 30, 210, 50, 220, 40, BLACK); tft.drawRect (200, 35, 12, 12, שחור); tft.drawCircle (210, 40, 14, שחור); tft.setRotation (45); tft.fillTriangle (270, 40, 270, 20, 260, 30, BLACK); tft.drawLine (300, 30, 270, 30, שחור); tft.setRotation (1); tft.setCursor (30, 80); tft.print ("קלט"); tft.setCursor (30, 150); tft.print ("פלט"); tft.drawRect (25, 130, 90, 30, שחור); tft.drawRect (25, 60, 90, 30, שחור); if (p.x> 190 && p.x 30 && p.y <90) {tft.setCursor (150, 220); tft.print ("מפלס המים"); tft.setCursor (150, 170); tft.print ("מפלס גז"); tft.setCursor (150, 120); tft.print ("מרחק"); tft.setCursor (150, 70); tft.print ("צליל"); מגע = 1; מצב = 2; }}} while (sound == 1) {tft.fillScreen (WHITE); sensorValue = analogRead (A5); sensorVoltage = sensorValue; tft.setCursor (60, 160); tft.print (sensorVoltage); Serial.println ("רמת קול ="); Serial.println (sensorVoltage); עיכוב (1000); אם (צליל == 0) {הפסקה; }}}}
שלב 3: נדרשות ספריות:
- Adafruit_GFX.h
- Adafruit_TFTLCD.h
- TouchScreen.h
קישורים של Github לאותו הדבר:
github.com/adafruit/Adafruit-GFX-Library
github.com/adafruit/TFTLCD-Library
github.com/adafruit/Adafruit_TouchScreen
שלב 4: החיבורים
אתה צריך 6 חוטי מגשר. 3 זכרים ו -3 נקבות. הלחם אותם ישירות ללוח Arduino כך:
שלב 5: סטרו הכל ביחד
הכנס את החוטים אל הארדואינו (עיין בתמונה), השתמש באקדח דבק במידת הצורך …
לאחר מכן חבר את מגן TFT ואז בדוק את החיישנים שלך.
תודה שגללת עד הסוף. הקפד להצביע עבורי אם אתה מרגיש שהפרויקט הזה ייחודי ומועיל
שמח לעשות ולהיזהר מרמאים אלקטרוניקה?
שלב 6: שיפורים נוספים:
- יותר תאימות חיישן
- היה צריך לסיים את קוד מנוע סרוו
- אפליקציה נוספת שיכולה להתממשק עם מודולי Bluetooth כך שנוכל לשלוט בעזרתו ברובוט המופעל באמצעות בלוטות '.
- תיקוני באגים
מוּמלָץ:
DIY AC/ DC Hack "ספק" RD6006 ספק כוח ומארז S06A W/ S-400-60 PSU לבנה ושדרוג קלט DC: 9 שלבים
DIY AC/ DC Hack "ספק" RD6006 אספקת חשמל ומארז S06A W/ S-400-60 PSU בניין וכניסת DC משודרגת: פרויקט זה הוא יותר בניית RD6006 בסיסית באמצעות מארז S06A ואספקת חשמל S-400-60 . אבל אני באמת רוצה לבחור בין חיבור סוללה לניידות או להפסקת חשמל. אז גם פרצתי או שיניתי את המארז כדי לקבל DC in או סוללה
רובוט איזון / רובוט 3 גלגלים / רובוט STEM: 8 שלבים
רובוט איזון / רובוט 3 גלגלים / רובוט STEM: בנינו רובוט איזון משולב ושלושה גלגלים לשימוש חינוכי בבתי ספר ובתוכניות חינוכיות לאחר הלימודים. הרובוט מבוסס על Arduino Uno, מגן מותאם אישית (כל פרטי הבנייה מסופקים), חבילת סוללות לי יון (כל מבנה
[רובוט ארדואינו] כיצד ליצור רובוט לכידת תנועה - רובוט אגודל - מנוע סרוו - קוד מקור: 26 שלבים (עם תמונות)
[רובוט ארדואינו] כיצד ליצור רובוט לכידת תנועה | רובוט אגודל | מנוע סרוו | קוד מקור: רובוט אגודל. השתמש בפוטנציומטר של מנוע סרוו MG90S. זה מאוד כיף וקל! הקוד פשוט מאוד. זה בסביבות 30 קווים בלבד. זה נראה כמו לכידת תנועה. אנא השאר כל שאלה או משוב! [הוראה] קוד מקור https: //github.c
מיקרוסקופ אלקטרוניקה אלקטרוניקה זול של Microsoft Lifecam Studio: 4 שלבים (עם תמונות)
מיקרוסקופ אלקטרוניקה זול של Microsoft Lifecam Studio: אם כך, אני בחורה חנונית שמשקרנת להתעסק עם אלקטרוניקה, אבל אני גם זולה, והחזון שלי הוא לא הטוב ביותר. הוסיפו את העובדה כי הלחמת SMT היא באמת קשה ללא הגדלה, והחלטתי לקנות אחד ממיקרוסקופי ה- USB המחורבנים של $ 14
בוגד בציור עם ה- GIMP: 6 שלבים
לרמות בציור באמצעות ה- GIMP: הוראה זו מספרת לאנשים שהם עלובים בציור (כמו עצמי) כיצד ליצור אמנות קו לשימוש/עריכה במדיה דיגיטלית