- משגר רקטות מבוקר קול מבוסס Alexa - עובד
- משטח ההפעלה עבור בקר ה- LaunchMCU שלנו
- רכיבים נדרשים עבור משגר הרקטות הנשלט על ידי Alexa
- תרשים מעגלי משגר רקטות ארדואינו
- בניית המעגל על PerfBoard
- תכנות NodeMCU עבור משגר הרקטות מבוקר Alexa
- קביעת תצורה של Alexa עם יישום Android אנדרואיד
- משגר רקטות מבוקר של Alexa - בדיקה
ככל שעונת החורף מתקרבת; מגיעה אותה תקופה של השנה בה חוגגים את פסטיבל האורות. כן, אנחנו מדברים על דיוואלי שהוא פסטיבל הודי אמיתי שנחגג ברחבי העולם. השנה, דיוואלי כבר הסתיים, וכשראיתי אנשים חזיזים, הגיתי את הרעיון לבנות את משגר הרקטות המבוסס על קול או Igniter מבוסס אלכסה, שיכול לשגר רקטות עם פקודה קולית בלבד, מה שהופך אותו לבטוח ומהנה מאוד לילדים.
כדי להבהיר, אני לא כאן בשביל לעודד אנשים לפטר קרקרים על דיוואלי, הממשלה ההודית אכפה מגבלות על קרקרים כדי לבלום את הזיהום, ובאחריותנו לדבוק בה. הרעיון כאן הוא שבמקום לבלות את כל היום בירי קרקרים, בואו נבנה מצית רקטות ארדואינו מגניב ונשלט כמה רקטות בסגנון. אני רואה בזה win-win.
משגר הרקטות הזה של ארדואינו יהיה שונה מאוד מאחרים. יש לה שלדה חסונה מאוד העשויה דיקט, מנגנון בקרה אמין מבוסס ממסר ומנגנון ייחודי מאוד לשיגור וטעינה מחדש של הרקטות, כך שללא דיחוי נוסף, בואו ניכנס לתהליך הבנייה.
משגר רקטות מבוקר קול מבוסס Alexa - עובד
מנגנון העבודה של המעגל הוא פשוט מאוד, המרכיב העיקרי שאחראי על שיגור הרקטה הוא חוט הניכרום, והוא מגיע בצורה של סליל חימום. חוט ניכרום זה ישמש כמצית הרקטות. אֵיך? אני אראה לך אחר כך.
כפי שניתן לראות בתמונה לעיל, חוט הניכרום מגיע בצורת סליל תנור, מבחינתי זו הייתה הדרך הקלה ביותר להשיג אותו. עלינו למשוך אותו ישר ולכופף אותו ליצירת צורה שנראית כמו שמוצג בתמונה למטה.
לאחר שעשינו זאת, נפעיל אותו באמצעות סוללת עופרת חומצה 12V והיא תבריק זוהר אדום. זה יספיק כדי להצית את האבקה השחורה בתוך הרקטה וזה יעבוד בדיוק כמו מינון נתיכים רגיל. שימו לב שמדובר בבקר שיגור רקטות בהספק גבוה, הזרם הנדרש בכדי להפוך את החוט לאד חם הוא גבוה. פעל לפי עצות הבטיחות בעבודה עם זרמים גבוהים.
לאחר סיום הבדיקה, הדבר היחיד שנותר הוא תהליך השליטה, אותו נבצע ככל שנמשיך הלאה במאמר.
משטח ההפעלה עבור בקר ה- LaunchMCU שלנו
לבנייה זו, בואו נכין לוח שיגור. עם סיום לוח השיגור, אנו יכולים לטעון בקלות מחדש כמה קרקרים ולהשיק אותם בקלות רבה. בניתי משטח שיגור שנראה כמו זה שמוצג בתמונה המוצגת למטה.
בוא נעבור את שלב אחר שלב תהליך בניית משטח ההשקה. עבור שני צידי המסגרת השתמשתי בשתי חתיכות דיקט באורך (25X3X1.5). בחלק העליון השתמשתי בחלק ארוך של דיקט (20X3X1.5) אינץ 'ובבסיס השתמשתי בחתיכת דיקט באורך (20X6X1.5), שתעניק לו קצת יותר יציבות. התמונה למטה תתן לך מושג ברור.
עכשיו הגיע הזמן לייצר את החוטים המבוססים על חוטי ניכרום, שישמשו נתיך לטיל שלנו. לשם כך, קניתי סליל חימום בסיס חוט ניכרום 1000W, יישרתי אותו ויצרתי את המבנה שמוצג להלן. הייתי צריך להשתמש בשני צבתות וחותכים בצד כדי לעצב את חוט הניכרום כפי שמוצג להלן.
ברגע שזה נעשה, חילקתי את חתיכת גוש הדיקט בגודל 20 אינץ 'לשבע חלקים ומדדתי אותה, וקידחתי חורים כדי להכניס את החוטים מבוססי התיל הניכרום, וברגע שזה נעשה, זה נראה כמו התמונות שלמטה.
אבל לפני שהנחתי את החוטים, חיברתי חוט נחושת בעובי 1 מ"ר בכל מסוף והעברתי אותם דרך החורים, ברגע שהכל נעשה, זה נראה כמו התמונה למטה.
כפי שאתה יכול לראות, הכנסתי גם את הדבק הדו-רכיבי בכדי לאבטח את החוט והנימים במקום. עם זאת, לוח השיגור שלנו הושלם. וכפי שניתן לראות מהתמונה הראשונה בסעיף זה, חיברתי ישירות את חוטי הלהט ל- PCB כיוון שיש לנו זרמים גבוהים מאוד ולכן לא טרחתי להציב מסוף בורג, וזה מסמן את סוף השלדה שלנו. תהליך בנייה.
רכיבים נדרשים עבור משגר הרקטות הנשלט על ידי Alexa
בצד החומרה של העניינים, השתמשנו בחלקים גנריים מאוד שתוכלו להשיג די בקלות מחנות התחביבים המקומית שלכם, רשימה מלאה של פריטים מובאת להלן.
- ממסר 12V - 3
- טרנזיסטור BD139 - 3
- דיודה 1N4004 - 3
- מסוף בורג 5.08 מ"מ - 1
- LM7805 - וסת מתח - 1
- קבל ניתוק 100uF - 2
- דיודה זנר 5.1V - 1
- לוח NodeMCU (ESP8266-12E) - 1
- לוח מושלם מנוקד - ½
- חוט מחבר - 10
תרשים מעגלי משגר רקטות ארדואינו
התרשים המלא של משגר הרקטות הנשלט על ידי Alexa מובא להלן. השתמשתי בתגים כדי לחבר סיכה אחת לאחרת. אם אתה מסתכל מספיק קרוב, לא אמור להיות קשה לפרש את הסכמטי.
בניית המעגלים די פשוטה, אז אני לא אכנס מאוד לפרטים.
ראשית, יש לנו IC1 שהוא ווסת מתח LM7805, עם קבלים הניתוק של 100uF המסומנים על ידי C1 ו- C2. לאחר מכן, יש לנו את ליבו של הפרויקט שלנו, לוח NodeMCU, שמאכלס את מודול ESP-12E. מכיוון שאנו משתמשים בסוללת חומצה עופרת 12V להפעלת המעגל כולו, לכן עלינו להשתמש ב- LM7805 כדי להמיר אותה תחילה ל -12 וולט ל -5 וולט בכדי להניע את לוח NodeMCU. אנו עושים זאת מכיוון שווסת המתח AMS1117 אינו מספיק בכדי להמיר 12 וולט ישירות ל -3.3 וולט, ולכן יש צורך ב- 7805.
בהמשך, יש לנו שלושה ממסרים של 12 וולט, לצורך הדגמה זו אנו משתמשים בשלושה ממסרים, אך כפי שהזכרנו בעבר, למשטח השיגור יש מציין מיקום ל -7 רקטות. אתה יכול לשנות את הקוד מעט ולמקם את כל שבע הרקטות שיושקו לגמרי. שלושת הממסרים מונעים על ידי T1, T2 ו- T3 שהם שלושה טרנזיסטורי NPN, והם מספיקים בכדי להניע את העומס של אמת. לבסוף, יש לנו שלוש דיודות חופשיות המגנות על המעגל מפני קוצים במתח גבוה שנוצר על ידי הממסר.
בניית המעגל על PerfBoard
כפי שאתה יכול לראות מהתמונה הראשית, הרעיון היה ליצור מעגל פשוט שיכול להתמודד עם כמות עצומה של זרם לתקופה קצרה, לפי הבדיקה שלנו, מספיק 800 מילישניות כדי להאיר פיסת נייר. אז אנו בונים את המעגל על פיסת לוח וחיבור בין כל החיבורים העיקריים באמצעות חוט נחושת בעובי 1 מ"ר. אחרי שסיימנו להלחין את הלוח. לאחר שסיימנו, זה נראה כמו משהו שמוצג למטה.
תכנות NodeMCU עבור משגר הרקטות מבוקר Alexa
כעת, לאחר שהחומרה מוכנה, הגיע הזמן להתחיל לקודד עבור משגר הרקטות מבוסס השליטה הקולית מבוססת Alexa. את הקוד השלם תוכלו למצוא בסוף עמוד זה, אך לפני שנתחיל, חשוב להוסיף את הספריות הנדרשות ל- IDE של ארדואינו. הקפד להוסיף את הספריות הנכונות מהקישור המופיע למטה אחרת, הקוד יזרוק שגיאות בעת הידורו.
- הורד את ספריית Espalexa
לאחר הוספת הספריות הנדרשות, תוכלו להעלות ישירות את הקוד שניתן בתחתית דף זה כדי לבדוק אם המעגל פועל. אם אתה רוצה לדעת איך הקוד עובד, המשך לקרוא.
כמו תמיד, אנו מתחילים את התוכנית על ידי הוספת קבצי הכותרות הנדרשים והגדרת שמות הסימוכין והנקודות עבור הנקודה החמה שלנו.
#לִכלוֹל
בהמשך לקוד שלנו, יש לנו את אבות הטיפוס של הפונקציה שלנו ואת הגדרות הפונקציה החזרה.
פונקציית connectToWiFi () משמשת להתחברות לרשת ה- Wi-Fi ופונקציה זו מחזירה אמת כאשר ה- Wi-Fi מתחבר בהצלחה.
בשלב הבא, יש לנו שלנו התקשרות פונקציות, פונקציות זה ייקרא כאשר אנחנו נותנים פקודה אלקסה, ה- API espalexa מטפל פונקציות אלה
חלל סידן בטל (בהירות uint8_t); הריקון הראשון בטל (בהירות uint8_t); סבב שני בטל (בהירות uint8_t); הריק השלישי בטל (בהירות uint8_t);
לאחר מכן, אנו מגדירים את שמות המכשירים. שמות מכשירים מוגדרים אלה יבואו לידי ביטוי באפליקציית Alexa וכאשר אנו אומרים פקודה, Alexa תזהה את המכשירים בשמות אלה. אז שמות אלה חשובים מאוד.
// שמות מכשירים String First_Device_Name = "כל הרקטות"; String Secound_Device_Name = "Rocket One"; מחרוזת Third_Device_Name = "טיל שני"; מחרוזת Forth_Device_Name = "רקטה שלוש";
לאחר מכן, אנו מגדירים wifiStatus משתנה בוליאני , אשר יחזיק את מצב החיבור של ה- Wi-Fi. לבסוף, אנו יוצרים אובייקט Espalexa Espalexa. אנו נשתמש באובייקט זה כדי לקבוע את תצורת ה- NodeMCU.
// בדיקת מצב wifi wifi בוליאני wifiStatus = false; // Espalexa Object Espalexa espalexa;
לאחר מכן, יש לנו את סעיף ההתקנה הריקנית שלנו () . בחלק זה אנו מאתחלים את התקשורת הטורית לצורך איתור באגים באמצעות הפונקציה Serial.begin () . הגדרנו את כל הפינים שהוגדרו בעבר כפלט עם פונקציית pinMode () , ואז נקרא לפונקציה connectToWiFi () , היא תנסה להתחבר ל- Wi-Fi למשך חמש עשרה פעמים אם היא מחוברת, היא תחזיר אמת אם היא לא התחבר, הוא יחזיר שקר והקוד יבצע לולאת while () לנצח. אם חיבור ה- Wi-Fi מוצלח, אנו מוסיפים את המכשירים שהוגדרו בעבר לאובייקט Alexa באמצעות הפונקציה espalexa.addDevice (). פונקציה זו כוללת שני ארגומנטים, הראשון הוא שם ההתקן, השני הוא השם של פונקציית ההחזרה, כאשר אנו מוציאים פקודה לאלכסה, הפונקציה הסמוכה תיקרא. לאחר שסיימנו לעשות את זה עבור כל ארבעת המכשירים שלנו, אנו קוראים לשיטות התחלה () עבור האובייקט espalexa.
הגדרת חלל () {Serial.begin (115200); // אפשר סדרתי לצורך איתור באגים בהודעות pinMode (ROCKET_1_PIN, OUTPUT); // הגדר סיכות ESP כ pinMode פלט (ROCKET_2_PIN, OUTPUT); // הגדר סיכות ESP כמוצא pinMode (ROCKET_3_PIN, OUTPUT); // הגדר סיכות ESP כפלט wifiStatus = connectToWiFi (); // התחבר לרשת ה- Wi-Fi המקומית אם (wifiStatus) {// הגדר את כל מכשירי espalexa // הגדר את המכשירים שלך כאן. espalexa.addDevice (First_Device_Name, allrockets); // ההגדרה הפשוטה ביותר, מצב ברירת המחדל מחוץ ל- espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, שלישי); espalexa.begin (); } אחר {בעוד (1) {סדרתי. println ("לא יכול להתחבר ל- WiFi. אנא בדוק נתונים ואפס את ה- ESP."); עיכוב (2500); }}}
ב לולאת הסעיף, שאנו מכנים לולאה () השיטה של אובייקט espalexa כי תמיד יחפש כל פקודה נכנסת לקרוא לפונקצית ההתקשרות אם מצא שדבר נכון.
לולאה בטלה () {espalexa.loop (); עיכוב (1); }
לאחר מכן, אנו מגדירים את כל פונקציות ההחזרה שלנו, בחלק זה, נגדיר מה קורה כשנקרא לפונקציה זו. כאשר נקראת הפונקציה allrockets () , כל הרקטות הולכות להיות משוגרות יחד. בשביל זה, אנחנו הולכים להפעיל את הממסר למשך 00 אלפיות שנייה ואחרי זה, אנחנו נכבה את הממסרים. בבדיקות שלי גיליתי שלמשך חוט הניכרום שצוין, אני זקוק לעיכוב של 800 מילימטר כדי לחמם את החוט לחלוטין, זה יכול להיות או לא יכול להיות המקרה עבורך. אז בחרו את העיכוב בהתאם.
בטל כל הסיגים (uint8_t בהירות) {if (בהירות == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); עיכוב (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("כל הרקטות הושקו"); }}
לאחר מכן, יש לנו את הרקטה הראשונה שלנו (), זה נקרא כשאנחנו קוראים לאלכסה ואומרים פקודה לקשור כדי לשגר את הרקטה הראשונה. התהליך דומה מאוד, אנו מפעילים את הממסר במשך 800ms ומכבים.
הריקון הראשון בטל (בהירות uint8_t) {if (בהירות == 255) {digitalWrite (ROCKET_1_PIN, HIGH); עיכוב (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("הרקטה הראשונה הושקה"); }}
לבסוף, יש לנו את הפונקציה connectToWiFi () שלנו. פונקציה זו די גנרית ומסבירה את עצמה, ולכן לא אכנס לפרטים אודות פונקציה זו. פונקציה זו מחברת את ה- ESP ל- Wi-Fi ומחזירה את מצב החיבור.
connectToWiFi (בוליאני) {state boolean = true; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, סיסמה); Serial.println (""); Serial.println ("מתחבר ל- WiFi"); // המתן לחיבור Serial.print ("מתחבר…"); בעוד (WiFi.status ()! = WL_CONNECTED) {עיכוב (500); Serial.print ("."); אם (i> 15) {state = false; לשבור; } i ++; } Serial.println (""); אם (מדינה) {Serial.print ("מחובר"); Serial.println (ssid); Serial.print ("כתובת IP:"); Serial.println (WiFi.localIP ()); } אחר {Serial.println ("החיבור נכשל."); } מצב חזרה; }
פונקציה זו שהוגדרה מסמנת את סוף החלק של קידוד.
קביעת תצורה של Alexa עם יישום Android אנדרואיד
Alexa תקבל פקודות רק אם ורק אם היא מזהה את מכשיר ה- esp8866. לשם כך, עלינו להגדיר את Alexa בעזרת אפליקציית Alexa באנדרואיד. דבר חשוב לעשות לפני שנמשיך הלאה הוא שעלינו לוודא שאלקסה מוגדרת עם יישום האנדרואיד שלנו.
לשם כך, עבור לחלק הנוסף של אפליקציית Alexa ולחץ על האפשרות הוסף התקן, לחץ על אור ואז גלול למטה בתחתית הדף ולחץ על אחר.
לאחר מכן, לחצו על תקן גלה ועל מתנה לרגע אחרי זה אלקסה ימצא מכשירים חדשים. ברגע שאלקסה מוצאת את המכשירים, עליך ללחוץ עליהם ולהוסיף אותם למקומות / קטגוריות בהתאמה שלהם, וסיימת.
משגר רקטות מבוקר של Alexa - בדיקה
לתהליך הבדיקה הלכתי לגינה שלי, שלפתי את כל הנתיכים מהרקטה, הנחתי אותם במקומות שלהם, וצעקתי לאלכסה…! הפעל את כל הרקטות, באצבעות שלי. וכל הרקטות עפו בכך שסימנו את מאמצי כהצלחה אדירה. זה נראה בערך כזה.
לבסוף, שוב אמרתי אלכסה…! הפעל את כל הרקטות כדי לקבל תמונה אפית של החוטים שתראה למטה.
לחוויה אפית יותר, אני ממליץ לכם בחום לצפות בסרטון.