תוכן עניינים:
- שלב 1: מה שאתה צריך …
- שלב 2: הלחמת הלוח
- שלב 3: הגדרת הארדואינו
- שלב 4: הגדרת פייתון
- שלב 5: היכן שהקסם קורה
וִידֵאוֹ: לוח Servodriver עם Python-GUI ו- Arduino: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
בעת ביצוע אב טיפוס או בניית מטוסים מדגמים, אתה נתקל לעתים קרובות בבעיה, שעליך לבדוק את נסיעות הסרוו או להציב סרוויים למיקום האמצעי.
אם אתה לא מוכן לבנות את כל מערכת ה- RC שלך או לבדוק, עד לאן תוכל לדחוף את הסרוו או היכן שהמיקום נמצא, אז הלוח הזה הוא בשבילך! זה מאפשר לך להעביר את הסרוו למיקומים מוגדרים או בואו נסע הלוך ושוב.
זה עובד בצורה מפתיעה היטב, אפילו עם 6 סרוווס שמתרוצצים מעמדה אחת לאחרת בלופ.
כמו כן, זהו פרויקט נחמד ללמוד על תקשורת בין Python-GUI ל- Arduino באמצעות Serial.
שלב 1: מה שאתה צריך …
לפרויקט זה תזדקק לדברים הבאים:
חוּמרָה
- ארדואינו ננו עם כבל. השתמשתי בשיבוט, וקוד ה- Python למעשה מצפה לשבב CH340 של שיבוט
- לוח אב טיפוס. 7x5 ס"מ מספיק
- כמה כותרות וסיכות של 54 מ"מ
- 1-6 סרוו
- ספק כוח לסרוווס (השתמשתי בחבילה עם 4 סוללות)
תוֹכנָה
- Python 3:
- מנהל התקן USB עבור שבבי CH340: פשוט חפש בגוגל מנהלי התקנים עבור מנהלי התקנים CH340
- Arduino IDE:
שלב 2: הלחמת הלוח
הלחמה היא למעשה קדימה על פי פריטינג בתמונה. רק וודא שאתה יכול לחבר את השרווסים בקלות לשורות 3 הפינים.
- שורות 3 הפינים מחוברות לסיכה דיגיטלית 3, 5, 6, 9, 10 ו -11 של ננו הארדואינו.
- החוט האדום מחובר לסיכה 5V של הארדואינו
- החוט השחור מחובר לסיכת ה- GND של הארדואינו
- זוג הפינים מתחת לשורות 3 הפינים נועדו לחיבור ספק כוח רגיל של מקלט RC, אתה יכול להוסיף מחברים כרצונך, כמו מסופי הברגה, מחברי XT, JST או … או …
אישית, אני אוהב שורות של כותרות נשיות להכניס את הארדואינו, אבל זה תלוי בך.
שים לב, הכותרות הנשיות הקצרות הן מגשר, המאפשרות לך לספק את הסרוו באמצעות מקור ה -5 V של הארדואינו למטרות בדיקה. אם תתאמץ יותר מדי, הארדואינו יתאפס ויאבד את הקצב הנכון. הם חייבים להיות מוסרים לפני חיבור ספק כוח נוסף.
שלב 3: הגדרת הארדואינו
התקן את ה- Arduino IDE והבהב את ה- Nano Arduino עם הסקיצה המצורפת.
שלב 4: הגדרת פייתון
התקן את Python 3 לאחר הורדתו. הקפד לבדוק את האפשרות ליצירת משתנה "PATH".
עליך להתקין עוד שתי חבילות באמצעות pip. לשם כך, הקש על מקש "Windows", הקלד "cmd" ולחץ על "enter". בשורת הפקודה הקלד את הפקודות הבאות:
- pip להתקין סדרתי
- piip להתקין pyserial
- pip להתקין tkinter
כפי שאתה יכול לראות, אני צריך את המודולים סדרתיים כמו גם פיסריאליים, שזה כנראה לא היעיל ביותר, מכיוון ש- pyserial צריך להחליף סדרתי. עם זאת זה עובד ואני רק מתחיל ללמוד;).
פתח את ה- Python-Script ב- IDE והפעל אותו, או הפעל אותו ישירות מהמסוף.
בתפריט הנפתח, אתה יכול לבחור בין שני מצבים, "לך ישר" ו"פינג פונג ":
- עבור ישר: הזן מיקום סרוו במיקרו שניות בעמודה הראשונה ולחץ על "התחל" כדי לגרום לסרוו לעבור למיקום שצוין.
- פינג פונג: הזן גבול תחתון וגבול עליון בעמודה השנייה והשלישית. זהו המיקום התחתון והעליון, שביניהם הסרוו יחזור הלוך ושוב. בעמודה "זמן פינג פונג" ניתן לציין זמן באלפיות השנייה, שהסרוו יחכה כשהגיע למיקום העליון או התחתון. לחץ על "התחל" והסרוו יתחיל לנוע הלוך ושוב, לחץ על "עצור" והשרוו יפסיק.
שלב 5: היכן שהקסם קורה
אחרון חביב, אני רוצה להצביע על כמה מהפרטים בתוך הקוד לאלה שרוצים להיכנס קצת לתקשורת סדרתית בין פייתון לארדואינו.
עכשיו, מה קורה בתוכנית Python?
קודם כל, התוכנית בודקת מה מחובר ליציאות ה- COM בשורה זו ושומרת אותו ברשימה:
self. COMPortsList = list (serial.tools.list_ports.comports ())
לאחר מכן הוא עובר ברשימה עד שהוא מוצא שבב CH340 ידוע לשמצה, שומר אותו ואז יוצר חיבור טורי לאחר הלולאה. שים לב כי הלולאה לולאה נשברת ברגע שנמצא CH340 הראשון.
עבור p ב- self. COMPortsList: אם "CH340" ב- p [1]: # מחפש self שיבוט Arduino. COMPort = p [0] אחר: עבר self. Ser = serial. Serial (self. COMPort, 57600)
החיבור הטורי נוצר עם יציאת ה- COM עם קצב שידור של 57600.
ומה עושה קוד הארדואינו? ובכן, מכיוון שלארדואינו יש רק יציאת COM אחת, החיבור הטורי הוא רק שורה אחת:
Serial.begin (57600);
כעת נוכל להשתמש בשתי היציאות כדי לתקשר. במקרה זה, רק הודעות מהפייתון לארדואינו. ההודעות נשלחות לכאן מפייתון. החיבור הטורי משדר בתים כברירת מחדל. זו גם הדרך המהירה ביותר לשלוח נתונים ולפי מה שידוע לי היא עדיין די נפוצה. אז האינטים למספר הסרוו (כך שהארדואינו יודע איזה סרוו להזיז) והמיקום במיקרו שניות הופכים לבייט.
Command = struct.pack ('> B', self. Place) # המשתנה int 'self. Place' הופך לבייט
self. Ser.write (Command) # כתיבת הבייט בפקודה Serial-Port = int (self. ServoPos.get ()) // 10 # קריאת הקלט מהשדה והזנת int Command = struct.pack (' > B ', Command) # הפיכת ה- int בתא עצמי. Ser.write (Command) # כתיבת הבייט ביציאה הסידורי
כמו כן, ניתוח הנתונים לוקח זמן (למשל פירוש ארבעה בתים "1", "2", "3" ו- "0" כ- int 1230, לא כארבעה תווים שונים) ועדיף לעשות זאת לא על הארדואינו.
בצד Arduino, המידע שנשלח נאסף כדלקמן:
אם (Serial.available ()> 1) {// אם יש נתונים סדרתיים זמינים, הלולאה מוזנת c = Serial.read (); // הבייט הראשון (מספר סרוו) נשמר במשתנה Micros = Serial.read (); // מיקום הסרוו נשמר כאן מיקרו = מיקרו * 10; }
מוּמלָץ:
לוח ה- ThreadBoard (גרסה שאינה מודפסת בתלת-מימד): לוח אב טיפוס מהיר של טקסטיל: 4 שלבים (עם תמונות)
לוח ה- ThreadBoard (גרסה שאינה מודפסת בתלת-מימד): לוח אב טיפוס מהיר של טקסטיל E: ניתן למצוא כאן את גרסת ה- ThreadBoard V2 להדפסה תלת-ממדית. ניתן למצוא כאן גרסה 1 של ה- ThreadBoard. למרות מכשולי העלות, נסיעות, מגיפות ומחסומים אחרים, ייתכן שאין לך גישה למדפסת תלת מימד אך תרצה ש
לוח החוטים: לוח אב טיפוס מהיר של טקסטיל: 5 שלבים (עם תמונות)
ניתן למצוא כאן את ThreadBoard: לוח אב טיפוס מהיר של טקסטיל: לוח ה- ThreadBoard הוא לוח לחם מגנטי למחשוב מוטבע המאפשר לאב טיפוס מהיר של טקסטיל אלקטרוני
תזכורת פגישת לוח השנה של Outlook Nextion עם לוח מגע: 6 שלבים
תזכורת פגישות לוח השנה של לוח Nextion ב- Outlook לוח השנה: הסיבה שהתחלתי בפרויקט זה הייתה כי פעמים רבות פספסתי פגישות והבנתי שאני צריך מערכת תזכורות טובה יותר. למרות שאנו משתמשים בלוח השנה של Microsoft Outlook אך ביליתי את רוב זמני ב- Linux/UNIX באותו מחשב. תוך כדי עבודה עם
לוח MXY - לוח רובוט שרטוט שרטוט XY בעלות נמוכה: 8 שלבים (עם תמונות)
לוח MXY - לוח רובוט ציור מגרש XY בעלות נמוכה: המטרה שלי הייתה לעצב את לוח ה- mXY כך שיתאים לתקציב נמוך את מכונת הציור של ה- XY. אז עיצבתי לוח שמקל על מי שרוצה לעשות את הפרויקט הזה. בפרויקט הקודם, תוך שימוש במנועי צעד 2 Nema17, לוח זה
לוח לוח לוח: 7 שלבים
לוח לוח: לפני זמן רב מאוד מצאתי כותב NC של Rotring ללא הבקר. שכחתי לגמרי מה אני רוצה לעשות עם זה, אבל בשבוע שעבר מצאתי אותו שוב ואני רוצה להכין ממנו מגש לוח. כתב היד האישי שלי על הלוח הוא לא