תוכן עניינים:
וִידֵאוֹ: שלט Bluetooth מעץ לרכבת לגו דופלו: 3 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:13
הילדים שלי אהבו את רכבת הלגו הדופלו הקטנה במיוחד את הצעיר שלי שנאבק לתקשר עם מילים ולכן רציתי לבנות לה משהו שיעזור לה לשחק עם הרכבת ללא תלות במבוגרים או בטלפונים/טאבלטים. משהו שיוסיף מימד נוסף לרכבת וייתן לה ערך משחק נוסף
לסט הלגו כבר יש מעט דרכים לשלוט ברכבת, אתה יכול לדחוף אותה קדימה כדי להתחיל ולהחזיק אותה כדי לעצור אותה, אתה יכול לשלוט בה באמצעות תגי צבע שעולים על המסילה, כך שכאשר הרכבת עוברת אותה היא גורמת לפעולות שונות כלומר קדימה, אחורה, צלילי השמעה מדליקים את האורות. תוכל גם להוריד אפליקציה עבורך לטלפון או לטאבלט שתוכל להתחבר לרכבת באמצעות בלוטות '.
הנה סקירה מלאה של הרכבת
לאחר שחיפשתי באינטרנט גיליתי שיש לא מעט אנשים שונים שכולם היו מוכנים לכתוב קוד כדי לשלוט ברכבת. הצומת 'Poweredup' שנכתב על ידי nathan.kellenicki (https://nathan.kellenicki.com/node-poweredup/) נראה כמו התחלה מושלמת, הוא נכתב באמצעות Javascript שלא הכרתי באופן חלקי אבל חשבתי שאם אני יכול למצוא שבב מבוסס ג'אווה, זו תהיה התחלה טובה.
שוב לאחר שחיפשתי באינטרנט שוב מצאתי את מערכת האספרונו, זה דומה ל- ardiuno אך מבוסס על javascript. ניתן היה לטעון את קוד האספריו על מירוקיפ MDBT42Q שהטביעו בו Bluetooth. חשבתי שאם אוכל לטעון אליו את המודול "המופעל" אני אגיע למחצית הדרך, אולם פשוט זה לא היה המקרה שהמודול הכיל בספריות רבות עד גדולות כדי לטעון אותו ב- MDBT42Q, כך שנראה שאני חייב למצוא פתרון פשוט יותר …
שלב 1: הקוד
אספרינו
למי שלא מכיר את הפלטפורמה של Espruino https://www.espruino.com (ולא ידעתי) האם הוא דומה מאוד ל- Arduino, יש כמה הבדלים עיקריים שהוא כתב עבור javascript ולא c, הוא מרגיש מעט חדש יותר כך שיש דוגמאות אולם התמיכה דרך הפורומים נהדרת ועוזרת מאוד.
Javascript פוגשים את הרכבת
המכשול הראשון היה להתחבר לרכבת באמצעות בלוטות ', ניתן לעשות זאת באמצעות מחלקת NRF שנשלחת עם קוד האספרונו.
ניתן להשתמש ב- NRF.connect כדי להתחבר לרכבת אולם הצורך הראשון שלך למצוא את כתובת הרכבת עצמה, תוכל להשתמש ב- NRF.findDevices כדי לקבל מידע זה.
לאחר שעשית זאת עליך לשלוח לרכבת שני ערך ללחיצת יד עם הרכבת, עבור הרכבת שלי זה היה "00001623-1212-efde-1623-785feabcd123" ואחריו "00001624-1212-efde-1623-785feabcd123" אני מאמין זה יהיה אותו דבר עבור כל רכבות הקיטור, אבל הגירסאות האחרות כלומר מערכת המטען אולי אחרת
ברגע שיש לך את זה אתה יכול לחבר את הרכבת באמצעות פונקציה כמו הבאה, האם אתה יכול לדעת מתי לרכבת יש להתחבר מכיוון שהיא תבהב היא הפנסים הכחולים
NRF.connect ("e0: 7d: ea: 0c: 03: 29"). לאחר מכן (פונקציה (g) {
console.log ("התחלת חיבור 2"); gatt = g; החזר gatt.getPrimaryService ("00001623-1212-efde-1623-785feabcd123"); }). ואז (function (service) {return service.getCharacteristic ("00001624-1212-efde-1623-785feabcd123");}). לאחר מכן (function (מאפיין) {Characteristic_store = character; return character.readValue ();}).אז (value => {console.log (value);}). לאחר מכן (function () {console.log ("Train Connected"); מחובר = 1;
הדברים המהנים
עכשיו התחברת לרכבת הגיע הזמן לכל הדברים המהנים כמו להזיז אותה קדימה, להשמיע קול ולהדליק ולכבות את האור. זה פשוט לשלוח לרכבת ערך הכנה, ואחריו הפקודה בפועל כלומר
פונקציה play_horn () {
console.log ("message =", Characteristic_store); const prepval = Uint8Array חדש ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = Uint8Array חדש ([0x08, 0x00, 0x81, 0x01, 0x11, 0x51, 0x01, 0x09]); Characteristic_store.writeValue (prepval). ואז (_ => {Characteristic_store.writeValue (sendvalue);}); }
ייתכן שתצטרך לחפור קצת כדי למצוא פקודה אחרת מאלה שבהן השתמשתי
כפתורים ומנופים
הצד הפיזי של השלט רחוק מאוד קדימה ארבעה כפתורים (להשמעת צלילים, הדלקת וכיבוי האורות) ופוטנציומטר אחד המחובר למנוף כך שתוכל לשלוט במהירות ובכיוון הרכבת
הכפתור אינו צריך נגד הרים למעלה במקום זאת אתה יכול לעשות זאת בקוד, כלומר
pinMode (D15, 'input_pulldown');
אתה יכול לחבר את הפוטנציומטר לאחת הכניסות ולאחר מכן לקרוא לו את האות האנלוגי באמצעות הפקודה הבאה
var קריאה = analogRead (D31);
ההבדל הנוסף לארדואינו הוא של- esprunio אין התקנה ולולאה. אז במקום זאת אני ממקם את כל הפקודות/הטריגרים הנפרדים לפונקציות ולאחר מכן מגדיר setInterval הלולאה כל 100 אלפיות השנייה, מקשיב ללחצן ואז מפעיל את הפונקציה הנדרשת כאשר הכפתור נלחץ.
אם (digitalRead (D15) == 1) {play_horn (); }
פעולת המנוף הייתה קצת יותר מסובכת מכיוון שרציתי להתאים את המהירות בהדרגה אז קודם כל הייתי צריך לשלוח את הערך האנלוגי לתפקוד
var קריאה = analogRead (D31);
כיוון_רכבת (קריאה * 1024);
ואז בפונקציית train_direction שברתי את הפקודה ל -6 תוספות שונות בהתבסס על ערך הסיר
כל הדרך למעלה, אומר לרכבת לנסוע במלוא המהירות
באמצע הדרך למעלה, אומר לרכבת לנסוע קדימה במהירות של 50%
אמצע, אומר לרכבת לעצור
באמצע הדרך למטה, אומר לרכבת לנסוע אחורה במהירות של 50%
כל הדרך למטה, אומר לרכבת לנסוע במלוא המהירות לאחור
כְּלוֹמַר
פונקציה train_direction (dir_val) {
//console.log("message = ", מאפיין_חנות); const prepval = Uint8Array חדש ([0x0a, 0x00, 0x41, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01]); const sendvalue = Uint8Array חדש ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x00]); if (dir_val> 300 && dir_val 400 && dir_val 500) {const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0x64]); } if (dir_val 200) {const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xe2]); } if (dir_val 100) {const sendvalue = new Uint8Array ([0x08, 0x00, 0x81, 0x00, 0x01, 0x51, 0x00, 0xce]); } if (dir_val {Characteristic_store.writeValue (sendvalue);}); }
הקוד המלא יכול להיות למטה לקישור למטה
שלב 2: החיווט
החיווט היה החלק הפשוט ביותר
הוא פשוט כלל 4 כפתורי לחיצה המחוברים ל- D15, D16, D17 ו- D18 ללא כל נגד משיכה מכיוון שזה בוצע בקוד ונגד 10k אחד המחובר ל- D31
אני עדיין עובד על ספק הכוח אבל כרגע כל הכוח מגיע מפריצת מיקרו USB וזה יכול להיות מחובר ישירות לבנק חשמל או ליציאת USB
שלב 3: הבנייה
השלט עשוי ברובו מ -3 מ"מ, 6 מ"מ או 9 מ"מ גיליונות דיקט A4, הם נחתכו על מכונת ה- CNC שלי עם זאת באמצעות התבנית שניתנה לו למרות שזה לא יהיה אפשרי ביד.
אני מקווה שהתבנית והתמונות יעניקו לך את כל מה שאתה צריך כדי ליצור מחדש אולם יש כמה הערות שעשויות לעזור
הר כפתור 3 מ מ מיועד לחיצת כפתור הלחיצה, הפער ימקם את הכפתור במקום הנכון אך אנו מאפשרים לך לגשת לרגל על הגב כך שתוכל להלחם לשבב, בצד האחורי תוכל גם להרכיב את ה- MDBT42Q בעזרת קצת דבק. בחזית תצטרך להוסיף קצף כל כך כדי לתת לכפתורים להקפיץ מעט כאשר אתה לוחץ עליהם למטה, תוכל גם להשתמש במעיינות
כפתורי 9 מ מ יזדקקו לצבע, לחריטה של הלוגו או למשהו אחר שיראה איזה כפתור עושה מה
המנוף/הידית יצטרכו להיות מורכבים בשכבה, השתמשתי בפבל 6 מ מ כדי לעזור ליישר אותם בכל המיקומים הנכונים
מוּמלָץ:
תחנת פיקוד WiFi DCC לרכבת דגם: 5 שלבים
תחנת פיקוד WiFi DCC לרכבת דגם: עודכן ב -5 באפריל 2021: סקיצה חדשה ומוד למרכיבי מעגל. סקיצה חדשה: command_station_wifi_dcc3_LMD18200_v4.ino מערכת DCC חדשה לגמרי באמצעות WiFi לתקשורת הוראות 3 משתמשים במצערת טלפון נייד/טאבלט עשויים לשמש בפריסה אידיאלית fo
רובוט לגו/פינדר Ev3 לגו: 7 שלבים
רובוט לגו/Finder לגו Ev3: שלום! ה- GrabBot הוא רובוט רב תכליתי שאוהב להתגלגל … כשהוא נתקל בחפץ קטן, הוא מרים אותו ומחזיר אותו למיקום ההתחלה שלו
פריצת כפתור לדלת קו יובל מתחת לרכבת התחתית בלונדון: 12 שלבים (עם תמונות)
פריצת כפתור לדלת קו היובל המחתרת של לונדון: חנות מוזיאון התחבורה בלונדון מוכרת כפתורי דלת שהופסקו מקו היובל (ניתן להשיג גם שמאל וימין). אם אתה חושב לבצע פרויקט הדורש כפתור ונורית חיווי כלשהי, היית
לגו איש גולגולת לגו: 6 שלבים (עם תמונות)
לגו לגולגולת גולגולת: היי היום אני הולך ללמד אותך איך להכין איש לגו גולגולת לד מופעל על ידי באטרי. זה יהיה נהדר עבור ליל כל הקדושים שעומד להתרחש בקרוב. או שזה יהיה אפילו פרויקט פשוט נהדר לביצוע כאשר הלוח שלך או רק חתיכת מעטפת קטנה
קוד QR לרכבת [ללא מדפסת תלת מימד]: 14 שלבים
קוד QR לרכבת [ללא מדפסת תלת מימד]: מדריך זה ילמד אותך כיצד להכין רכבת QR. קוד ה- QR ברכבת יוכל לחבר את הטלפון שלך ל- wifi, או להעלות אתר חברה מבלי לחפש אותו. כל מה שתצטרך לעשות הוא לסרוק את קוד ה- QR בעזרת הבר