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

צדדי NearBot: 11 שלבים (עם תמונות)
צדדי NearBot: 11 שלבים (עם תמונות)

וִידֵאוֹ: צדדי NearBot: 11 שלבים (עם תמונות)

וִידֵאוֹ: צדדי NearBot: 11 שלבים (עם תמונות)
וִידֵאוֹ: הדפסה דו צדדית (הדפסה משני צידי הדף) 2024, יולי
Anonim
Image
Image

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

פרויקט זה אינו דורש הלחמה או כלים מיוחדים

אם אתה נהנה מספיק ממדריך זה, אנא שקול להצביע להוראה זו בתחרות רובוטיקה 2017!

שלב 1: רכשו את חלקי החומרה

אתה תצטרך:

  • NodeMCU v2 או V3
  • מנוע סרוו 9G מיקרו כ -1.40 דולר משלוח חינם ב- eBay או Aliexpress
  • חוטי מגשר Arduino נקבה לזכר.
  • מעטפת ל- NearBot - השתמשתי בקופסת פלסטיק גרוטאה שמצאתי.
  • כבל נתונים מיקרו USB (חלקי גרוטאות)
  • מקור כוח USB (מטען טלפונים)

אם אין לך סמארטפון עם תכונת נקודה חמה ניידת, תזדקק גם ל:

  • מודול ESP-01 בערך $ 2.50 USD משלוח חינם ב- DealExtreme, GearBest, Ebay או Aliexpress.
  • 1 זוג סוללות AAA
  • מחזיק סוללות AAA כפול עם מתג

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

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

// רשימת קניות: // NodeMCU V3 (Lolin) מיקרו -בקר ESP8266

// SG90 9G מנוע סרוו

// בנק כוח USB או מתאם קיר USB.

// כבל נתונים/טעינה מיקרו USB

// חוטי מגשר מסוג Arduino זכר לנקבה

//לפני שאתה מתחיל:

// 1. אם עדיין לא הורדת את Arduino IDE, קבל אותו בחינם (תרומה אופציונלית) בכתובת:

// 2. פתח את IDE של Arduino (אם אתה לא קורא את זה ב- Arduino IDE כבר!) …

// 3. עבור לקבצים ולחץ על ההעדפה ב- Arduino IDE …

// 4. העתק את הקוד להלן במנהל הלוחות הנוספים: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. לחץ על אישור כדי לסגור את כרטיסיית ההעדפות …

// 6. עבור אל כלים ולוח ולאחר מכן בחר מנהל לוח …

// 7. נווט אל esp8266 על ידי קהילת esp8266 והתקן את התוכנה עבור Arduino …

// 8. ייתכן שיהיה עליך להוריד ולהתקין את מנהל ההתקן CH340 אם אינך מצליח לגרום ל- NodeMCU לדבר עם מזהה Arduino שלך:

// לאחר השלמת כל התהליך הנ ל אנו נקרא לתכנת את המיקרו -בקר esp8266 NodeMCU שלנו עם ה- Arduino IDE.

//9. בחר NodeMCU V1.0 ESP12E מתפריט הלוח /

/10. בחר את יציאת ה- COM שבה אתה משתמש.

// 11. בחר את הקוד (הורד מ- www.makersa.ga) ולחץ על העלה. /

/12. חבר את הסרוו ל- NodeMCU באמצעות חוטי מגשר. D0 לאותת, קרקע לקרקע, +VCC ל- VO או 3V. /

/13. כוונן את קרן הסרו באמצעות מברג.

// 14. התאם את דרגות התנועה המקסימליות והמינימליות באמצעות הקוד.

// 15. העלה מחדש ל- NodeMCU בכל פעם שהקוד מתעדכן.

// יתכן שתמצא חשוב להבין איזו גירסת NodeMCU יש לך. להלן מדריך השוואה:

frightanic.com/iot/comparison-of-esp8266-no… // דיאגרמת pinout של NodeMCU v1: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v2 תרשים pinout: https://frightanic.com/iot/comparison-of-esp8266-no… // תרשים pinout של NodeMCU v3:

// הסבר על האסדות:

// עשוי מיקרו -בקר NodeMCU ESP8266, סוללה או ספק כוח USB ו- Servo SG90

// אתה יכול להשתמש במודול esp8266 שני שלא השתנה כנקודה חמה של משואות במקום להשתמש בסמארטפון, אין צורך בתכנות.

שלב 3: רכשו את חלקי התוכנה

תחילה יהיה עליך להוריד את Arduino IDE בחינם

עורך האינטרנט Arduino אינו פועל עם NodeMCU בזמן שאני כותב זאת, כך שתצטרך להתקין את ה- IDE למחשב שלך במקום זאת.

יהיה עליך גם לתפוס את קבצי NearBot מ- www. MakerSa.ga - קישור הורדת הקבצים לפרויקט זה מופיע באתר זה.

שלב 4: התקן מנהלי התקנים ופרופילי לוח

קצת מידע מועיל
קצת מידע מועיל

בתוך ה- zip של NearBot שהורדת והסירוק יהיו מנהלי ההתקנים של מודול NodeMCU. התקן אותם במחשב שלך.

אם אלה לא עובדים עבורך, ייתכן שתוכל למצוא מנהלי התקנים של CH340G בכתובת wemos.cc/downloads

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

  1. לאחר מכן, פתח את Arduino IDE ועבור אל העדפות קבצים מנהל לוחות נוספים ב- Arduino IDE.
  2. הדבק שם את הקוד הבא:
  3. לחץ על אישור כדי לסגור את כרטיסיית ההעדפות.
  4. עבור אל כלים ולוח ולאחר מכן בחר מנהל לוח.
  5. נווט אל "esp8266 by community esp8266" והתקן את התוכנה עבור Arduino.

לאחר השלמת כל התהליך לעיל אנו מוכנים לתכנת את המיקרו -בקר esp8266 NodeMCU שלנו עם ה- Arduino IDE!

שלב 5: קצת מידע מועיל

קצת מידע מועיל
קצת מידע מועיל
קצת מידע מועיל
קצת מידע מועיל

אולי יהיה לך נוח להבין איזו גירסת NodeMCU יש לך. להלן מדריך השוואה:

frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/

לכל גרסה סידורי סיכה שונים. רכשתי את גרסת v3 (Lolin) מכיוון שיש לה סיכות פלט 5V להנעת מנוע סרוו. בסופו של דבר השתמשתי במקום זאת בסיכות החשמל של 3 וולט לשם בטיחות (סיכות הקלט/פלט NodeMCU אינן סובלניות 5V), אך ייתכן שתרצה להשתמש בסיכות 5V כיוון שמבחינה טכנית סוגים אלה של מנועי סרוו מצוינים עבור הספק של 4.5 עד 5 וולט.

שלב 6: טען את הקוד ב- NodeMCU

טען את הקוד ב- NodeMCU
טען את הקוד ב- NodeMCU
טען את הקוד ב- NodeMCU
טען את הקוד ב- NodeMCU
  1. חבר את ה- NodeMCU למחשב שלך באמצעות כל כבל מיקרו USB.
  2. פתח את Arduino IDE, ותחת "לוחות", בחר "ESP12E", ויציאת COM עבור ה- NodeMCU.
  3. ב- IDE, עבור אל FileOpen וגלוש בתיקיית ה- zip שהורדה בעבר מ- makersa.ga כדי לפתוח את המערכון של Arduino בשם "ProximityActuator013017DonovanMagryta.ino"
  4. לאחר מכן, ערוך את שורת הקוד המכילה את זה כדי להוסיף את השם והסיסמה של משואת ה- WiFi שלך. עוד על זה בהמשך! לדוגמה:

const char* ssid = "mywifi"; // הכניסו את שם הנקודה החמה שלכם למרכאות

const char* password = "mywifipassword"; // הכנס את סיסמת הנקודה החמה שלך בתוך הציטוטים

לאחר מכן לחץ על "העלה" כדי להבליט את הקוד ללוח NodeMCU.

ה- NearBot משתמש במשואת WiFi לכיס כדי לזהות אותך ולהעריך מרחק. בדיוק כמו מפתחות הסמיכות יש לכמה מכוניות חדשות יותר שפותחות את דלת המכונית כאשר אתה מתקרב.

אתה יכול להשתמש בנקודה חמה ניידת של הטלפון החכם שלך כמגדלור, או לחילופין להשתמש במודול WiFi ESP-01 זול המופעל על ידי זוג סוללות AAA או סוללת ליתיום קטנה 3.7v. אין צורך לתכנת את ESP-01, הוא מוגדר כברירת מחדל למלאי של מצב נקודה חמה כאשר הוא מופעל. תרשים המעגלים לכך מוצג בשלב זה.

שלב 7: חבר את סרוו ל- NodeMCU

תצטרך כמה חוטי מגשר כדי לחבר את הסרוו ל- NodeMCU V3.

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

הצמד D0 לאות בעופרת (חוט הצבע הבהיר ביותר בסרוו. בדרך כלל צהוב או לבן).

הצמד 3V או פין VO למוביל הכניסה של 5V (חוט הצבע השני בהיר בסרוו, בדרך כלל אדום או כתום).

הצמד את GND לעופרת הקרקע (חוט בצבע הכהה ביותר בסרוו, בדרך כלל חום או שחור).

שלב 8: כוונן את ה- NearBot

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

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

החלק הבא הוא להתאים את דרגות התנועה המקסימליות והמינימליות באמצעות הקוד.

ניתן לעשות זאת על ידי שינוי המספרים הכלולים בשורות הנראות כך:

myservo.write (10); // מזיז את זרוע סרוו לסיבוב של 10 מעלות

אתה יכול גם להתאים את רגישות עוצמת האות על ידי שינוי המספרים השליליים בשורות שנראות כך:

if (rssi> -30 && rssi <-5) {// אם עוצמת האות חזקה מ -30, וחלשה מ -5. לאחר מכן בצע את הפעולות הבאות…

שלב 9: איך זה עובד

  1. ה- NearBot מתחבר לראשונה לנקודה החמה מראש כאשר משתמשים מתקרבים.
  2. הוא סורק את RSSI (עוצמת האות המתקבלת) וממיר אותו למרחק משוער.
  3. בעוד שהמרחק נמצא בטווח שצוין, הוא מעביר את זרוע המנוע של סרוו למיקום 1.
  4. אחרת, מנוע הסרוו יועבר למצב 2.

כאשר בדקתי זאת, כוונון RSSI זה (-50) מעביר את הסרוו למיקום 1 בעוד המרחק הוא 0 עד 1.5 מטר כשמשואת ESP-01 או נקודה חמה לטלפון נמצאים בכיסי.

ה- RSSI בדרך כלל נופל בטווח של -90 עד -20, כאשר -20 הוא עוצמת האות החזקה ביותר.

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

להלן הקוד המלא:

//לפני שאתה מתחיל:

// 1. אם עדיין לא הורדת את Arduino IDE, קבל אותו בחינם (תרומה אופציונלית) בכתובת: https://www.arduino.cc/en/Main/Software // 2. פתח את מזהה Arduino (אם אתה לא קורא את זה ב- Arduino IDE כבר!) … // 3. עבור לקבצים ולחץ על ההעדפה ב- Arduino IDE … // 4. העתק את הקישור שלהלן במנהל הלוחות הנוספים: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. לחץ על אישור כדי לסגור את כרטיסיית ההעדפות … // 6. עבור אל כלים ולוח ולאחר מכן בחר מנהל לוח … // 7. נווט אל הקהילה esp8266 על ידי esp8266 והתקן את התוכנה עבור Arduino … // 8. ייתכן שיהיה עליך להוריד ולהתקין את מנהל ההתקן CH340 אם אינך מצליח לגרום ל- NodeMCU לדבר עם מזהה Arduino שלך: https://www.arduino.cc/en/Main/Software // לאחר השלמת כל התהליך לעיל אנו מסיימים קרא כדי לתכנת את המיקרו -בקר NodeMCU שלנו esp8266 עם ה- Arduino IDE. ייתכן שתרצה להבין איזו גירסת NodeMCU יש לך. להלן מדריך השוואה: https://www.arduino.cc/en/Main/Software // עשוי ממייקרו NodeMCU ESP8266, סוללה או ספק כוח USB ו- SG90 Servo // ניתן להשתמש במודול esp8266 שני שלא השתנה כמגדלור נקודה חמה AP במקום להשתמש בסמארטפון. // מעגל NearBot: // פין D0 לחוט האות של סרוו (חוט הצבע הבהיר ביותר) // פין 3V לחוט סרוו 5v (חוט אמצעי) (שחובר במקביל לכבל ה- USB או לפין VO ב- NodeMCU אם יש לך V3. / /חשמל USB לתקע USB על NodeMCU // סיכת GND לחוט סרוו הארקה (חוט צבע כהה ביותר) // קווי הערה מתחילים בשני קווים קדימה, והמחשבים מתעלמים מהם. ההערות מיועדות רק לנו בני האדם! #כלול #כולל // ייתכן שיהיה צורך בהדפסה סדרתית. #כלול // ספריית סרוו #הגדר D0 16 // מגדיר סיכות להקלת הקצאת סיכות. #הגדר D1 5 // I2C אוטובוס SCL (שעון) #הגדר D2 4 // I2C אוטובוס SDA (נתונים) #הגדר D3 0 #הגדר D4 2 // אותו דבר כמו "LED_BUILTIN", אך היגיון הפוך #הגדר D5 14 // SPI אוטובוס SCK (שעון) #הגדר D6 12 // SPI אוטובוס MISO #הגדר D7 13 // SPI אוטובוס MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (קונסולת סידורי) #הגדר D10 1 // TX0 (קונסולה סידורי) Servo myservo; // צור אובייקט סרוו בשם myservo // טלפון או מודול ESP8266 נוסף שהוגדר למצב AP נקודה חמה: const ch ar* ssid = ""; // הכניסו את שם הנקודה החמה שלכם למרכאות const char* password = ""; // הכנס את סיסמת הנקודה החמה שלך בתוך הגדרות החלל של הציטוטים () {Serial.begin (115200); // מגדיר את קצב השידור הטורי כך שהמיקרו -בקר יוכל לדבר עם ממשק ההדפסה הטורי ב- Arduino IDE - ייתכן שיהיה עליך לשנות אותו ל- 9600 במקום זאת! myservo.attach (D0); // מצרף את הסרוו על סיכה D0 aka GPIO16 לאובייקט הסרו - ראה עוד בכתובת: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // מזיז את זרוע סרוו לסיבוב של 10 מעלות Serial.println ("נעול"); // פלט מהצג הטורי את המילה "נעול" WiFi.mode (WIFI_STA); // מגדיר wifi למצב התחנה WiFi.begin (ssid, סיסמא); // מתחבר למוקד hotcon} לולאת void () {// הלולאה עוברת שוב ושוב במהירות אם (WiFi.status ()! = WL_CONNECTED) {// אם wifi אינו מחובר, בצע את הפעולות הבאות … Serial.println ("לא ניתן היה להתחבר ל- wifi"); myservo.write (10); // מעביר את זרוע סרוו ל -10 מעלות Serial.println ("נעול"); } אחרת {// אם WiFi מחובר, בצע את הפעולות הבאות … long rssi = WiFi. RSSI (); // יוצר משתנה בשם rssi והקצה אותו לפונקציה המחזירה את קריאת עוצמת האות של משואת הנקודה החמה Serial.print (rssi); // פלט את קריאת rssi לצג הטורי אם (rssi> -50 && rssi <-5) {// אם עוצמת האות חזקה מ -50 וחלשה מ -5. לאחר מכן בצע את הפעולות הבאות … myservo.write (170); // סובב את זרוע סרוו ל -170 מעלות Serial.println ("לא נעול"); } else {// אם לא מתקיימים התנאים שלעיל בצע את הפעולות הבאות … myservo.write (10); // מסובב את זרוע הסרוו לאחור ל -10 מעלות. Serial.println ("נעול"); }}}

שלב 10: אתה צריך לדעת …

כתב ויתור:

האיטרציה הנוכחית של קוד NearBot פועלת באופן אמין למרחקים של פחות מ -2 מטרים או 6.5 רגל. מעבר לזה, זה נהיה פחות מדויק, אבל עדיין עובד.

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

קישורים אלה עשויים להיות שימושיים: YouTuber CNLohr פיתח קושחה לחישת מרחק ומיקום עבור ESP8266 בהצלחה מוגבלת:

אספרסיף פיתחה פונקציית זיהוי מרחק של זמן טיסה שתעבוד עם Arduino IDE עבור ה- ESP8266, אך מעולם לא הוציאה אותה:

מערכת המיקום של SubPos משתמשת במודולים ESP8266 ובחישוב אובדן נתיבים, וזה מה שאני לא יודע ליישם ב- Arduino IDE:

מצאתי דוגמה בשפת ג'אווה, אך אינני יודע כיצד לשכפל זאת Arduino IDE:

מרחק כפול = Math.pow (10.0, (((כפול) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/frequency)))/(20*mu));

שלב 11: זה הכל

אם אתה מכין NearBot משלך, פרסם את "הצלחתי" בתגובות למטה!

אם יש לך עוד רעיונות למה להשתמש בפלטפורמת NearBot הרב תכליתית, אנא הגיב על הרעיונות שלך! זה יכול להוות השראה גדולה למשתמשי הוראה אחרים!

אם אתה נהנה מהדרכה זו, אנא שקול להצביע להנחיה זו בתחרויות!

מוּמלָץ: