טוב, זו הייתה הקדמה, עכשיו קצת פרטים טכניים...
נתחיל מהמנועים שמזיזים את הרגליים.
הכי קל יהיה כנראה להשתמש במנועי סרוו עם בקר מנועי סרוו שיוכל להפעיל את כולם יחד וכך ליצור תנועה פחות או יותר חלקה של כל החלקים של הרגליים יחד. מנועי סרוו גם טובים בזה שיש להם מערכת תמסורת פנימית, כך שהם די חזקים ביחס לגודל שלהם.
אבל יש כמה בעיות שאני רואה... למשל העובדה שהם לא מאפשרים תנועה ב-180 מעלות (לפחות) ואני הייתי רוצה שהרובוט יוכל "לעמוד זקוף" על כל הרגליים שלו כשצריך לטפס לגובה ומצד שני שיוכל לקפל את הרגל כמה שיותר כדי שיתפוס פחות מקום כשהוא במנוחה.
יש לי גם בעיה עם זה שמנוע סרוו מגביל אותי בצורה שלו ובחיבור בינו לבין הרגל.
גם במקרה הזה ציור היה עוזר, אבל אנסה לתאר את הבעיה במילים... מנועי סרוו בצורתם נראים כמו מלבן. מלבן כזה צריך לשבת באמצע הרגל כדי לקפל את המפרק האמצעי וגם כנראה לבלוט הצידה כי החיבור לציר המנוע נמצא בצד של המלבן.
אם אני רוצה לעשות רגל כמה שיותר דקה, אני אראה גידול של המלבן באמצע הרגל. ואם אני רוצה לעשות את הרגל קצת יותר חזקה? אני צריך לשים מנוע חזק יותר, כלומר גדול יותר... בעיה...
הייתי רוצה להשתמש במנוע דק וארוך שישב בתוך החלק של הרגל שקרוב יותר לגוף הרובוט ויעביר את כך הסיבוב של הציר שלו לתנועה של החלק השני של הרגל בצורה מכאנית עם גלגלי שיניים כל שהם...
מה שמביא אותי לבעיה שרודפת אותי כבר הרבה שנים עם רוב הפרוייקטים שהיו לי בראש: חלקים מכאניים. קשה מאוד להשיג את מה שאני צריך, ואם אפשר להשיג הם יקרים בצורה מוגזמת. בסופו של דבר אני תמיד מגיע לאותה המסכנה - צריך לייצר את החלקים בעצמי, כלומר צריך מכונת CNC או לפי הטרנד החדש מכונת הדפסה תלת מימדית (על זה בפוסט אחר מסדרת "הייתי רוצה לבנות" בקרוב).
נעזוב רגע את הבעיה עם המכאניקה ונחשוב על הבקרה על המנועים. בסופו של דבר הייתי רוצה לשלוט על הרגליים כך שאוכל להרים את הרגל נגיד 5 ס"מ או לקפל את המפרק ב-30 מעלות למשל.
עם מנועי סרוו הבקרה הייתה קלה יחסית כי בתוך המנוע יש מעגל feedback שיודע לבד למקם את ציר המנוע בזווית הרצויה, כלומר אפשר רק לתת לו כיוון הרצוי והוא מגיע לשם לבד.
אם אני מוותר על מנועי הסרוו, אני נשאר עם ממנועי צעד ומנועי DC רגילים.
מנועי צעד יוכלו לסובב את הציר בזווית הרצויה, אבל הם לא באים בחשבון כי הם גדולים, כבדים וזוללים זרם כל הזמן, גם כשהם לא זזים.
נשארנו עם מנועי DC. למזלי היום יש הרבה מנועי DC קטנים עם מערכת תמסורת משוכללת, כך שאפשר לקבל די הרבה כח עם מנוע קטן יחסית. אבל כדי למקם את מנוע DC בזווית כל שהיא צריך להשתמש באנקודר (encoder) ולספור את כמות הסיבובים של ציר המנוע לפני התמסורת.
למזלי יש מנועים קטנים עם ציר ראשי מאורך כדי שיהיה אפשר לחבר אנקודר שצריך לבנות או שיש מנועים גדולים יותר עם אנקודר מובנה.
מכאן מגיעים לבעיה אחרת - כמות המידע שיגיע מכל האנקודרים. מנוע כזה למשל עם אנקודר מובנה:
https://www.pololu.com/product/2288
מייצר 8256 פולסים מהאנקודר לסיבוב אחד את ציר היציאה שלו! צריך 3 מנועים לרגל, 6 רגליים... זה המון פולסים לספור!
טוב, אולי לא כל המנועים יהיו DC עם אנקודר, אולי רק 2 לכל רגל... זה עדיין המון פולסים!
מיקרובקר אחד כנראה לא יוכל להתמודד עם כמות כזו של מידע וגם אם כן, לא בטוח שיוכל להפעיל את כל המנועים פחות או יותר במקביל וגם במהירות סבירה.
מה עושים? כנראה צריך מיקרובקר קטן לכל רגל.
הייתה לי גם מחשבה לכיוון אחר... בגלל שכל מה שהבקר הקטן הזה צריך לעשות זה לספור את כמות הפולסים וטיפול בפולסים כאלה נעשה בדרך כלל ע"י שימוש בפסיקות שבעצמן לוקחות זמן, אולי כדאי להשתמש במונה "חומרתי" (בבקר הספירה נעשית ע"י הרצת תוכנה, כך שאפשר להסתכל על הפתרון של הבקר כ"תוכנתי"). הרעיון הוא שהבקר יתכנת את המונה ה"חומרתי" כמה לספור, הוא יספור את כל הפולסים מהאנקודר ויתן פסיקה למיקרובקר הראשי כשספר את כמות הפולסים הרצויה. כך הבקר הראשי יהיה פנוי לעשות דברים שונים, כמו להזיז את כל הרגליים יחד למשל.