הכותרת הראשונה שעלתה לי בראש הייתה “איך ליצור אקטואטור לינארי באמצעות מנוע סטפר”, ומשהו אמר לי שזה ירחיק את חלקכם. אז אם אתם עדיין כאן, אפילו אחרי הכותרת השניה – המדריך פשוט יחסית אבל יש בו מלא דברים – אלקטרוניקה, תכנות, מידול והדפסה ב-3D… אז בואו נצלול ישר פנימה.
כדי להכניס אותנו להקשר, נדרשתי לתכנן פין שטוח שיוכל לזוז לשני הכיוונים, לשליטה באמצעות ארדואינו. אני מניח שאתם מכירים את סביבת הפיתוח בארדואינו, לפחות עקרונית, ואם לא, אז כדאי לראות קצת בקישור הזה מה אפשר לעשות עם הטכנולוגיה הזו. יש עשרות דרכים שבהן ניתן לבחור כדי לבצע את המשימה, ובסופו של דבר מה שיקבע מה הדרך שבה תשתמשו היא הזמינות שיש לכם לחלקים שונים, והידע שיש לכם לגבי הפעלתם.
בעצם, אפשר להבין את המערכת כהמרה של שליטה בתנועה סיבובית לשליטה בתנועה קווית. לצורך העניין, לא נתעמק בפרויקט שלשמו נדרשתי לעשות זאת, אלא במנגנון עצמו.
רשימת חומרים
- ארדואינו (במקרה הזה Arduino uno, אבל כמעט כל בקר תואם יעבוד)
- כבל USB מתאים לחיבור למחשב
- מנוע סטפר 28BYJ-48 (סטנדרטי)
- דרייבר ULN2003 (גנרי, להפעלת המנוע סטפר)
- גלגל שיניים תואם למנוע (ממודל ומודפס ב-3D)
- פס שיניים תואם לגלגל שיניים (ממודל ומודפס ב-3D)
- תושבת שמחברת בין המנוע עם הגלגל ופס השיניים (ממודל ומודפס ב-3D)
- 2 ברגים M3
- 2 אומים M3
מידול החלקים
היו לא מעט טסטים לפני שזה הצליח בצורה שהניחה את דעתי. לצורך המידול השתמשתי בתוכנת Onshape (שעליה כבר הרחבתי רבות), והשתמשתי במידול פומבי קיים של המנוע שעליו הורכבו כל שאר החלקים.
במקרה זה, המטרה היא לא להתרכז במידול אלא במנגנון כולו. את הקבצים לדוגמא תוכלו למצוא בקישור הבא, ותוכלו להשתמש בהם ואפילו לערוך אותם לצרכים שלכם על ידי יצירת עותק מהקובץ המקורי שלי ולמדל עליו את כל מה שתבקשו.
ועכשיו - הקוד לארדואינו
בעיקרון, הקוד למטה מדבר בעד עצמו (אפילו ההערות בעברית כדי שיהיה לכם נוח).
#include <Stepper.h> //הגדרת הספריה שמפעילה את מנוע הצעד #define STEPS 2038 // הגדרת מספר הצעדים במנוע המסוים איתו אנו עובדים (28BYJ-48) Stepper stepper(STEPS, 8, 10, 9, 11); // קריאה להגדרת מנוע הצעד, על ידי מספר הצעדים והפינים הדיגיטליים בארדואינו שמחוברים אליו דרך הדרייבר ULN2003 void setup() { // nothing to do } void loop() { stepper.setSpeed(10);// הגדרת כמות הסיבובים לדקה שהיא בעצם מהירות הסיבוב stepper.step(800); // כמות הצעדים - חיובי נע עם כיוון השעון delay(1000); // השהייה של שנייה אחת - 1000 מילישניות stepper.setSpeed(10); // הגדרה מחדש של כמות הסיבובים לדקה - אם רוצים אפשר לא להגדיר מחדש, ולהשתמש בהגדרה האחרונה שנעשתה stepper.step(-800); // תזוזה - הגדרת כמות הצעדים - שלילי נע נגד כיוון השעון }
המערכת הסופית
צריך לזכור שזו היא מערכת ראשונית, וכמעט עבור כל פרויקט תדרשו לשנות אותה לצרכים שלכם. יחד עם זאת, למי שצריך משהו דומה, ההתחלה הזו עשוייה לחסוך זמן יקר בפיתוח החלקים למשימה הזו, כך שאני מקווה שלפחות את חלכקם זה ישרת מתי שהוא.
אם יש לכם שאלות ומחשבות, השאירו אותם כאן בתגובות.
לתוכן זה נכתבה תגובה אחת