במדריך זה נפתח מעגל באמצעות חיישן כוח, ארדואינו אונו ומנוע סרוו. זו תהיה מערכת בקרת סרוו שבה מיקום פיר הסרוו נקבע על פי המשקל הקיים על חיישן הכוח. לפני שנמשיך בואו נדבר על סרוו ורכיבים אחרים.
מנועי סרוו משמשים כאשר יש צורך בתנועת פיר או במיקום מדויק. אלה אינם מוצעים ליישומים במהירות גבוהה. אלה מוצעים עבור מהירות נמוכה, מומנט בינוני ויישום מיקום מדויק. מנועים אלה משמשים במכונות זרוע רובוטיות, בקרות טיסה ומערכות בקרה. מנועי סרוו משמשים גם בחלק מהמדפסות ומכונות הפקס.
מנועי סרוו זמינים בצורות ובגדלים שונים. במנוע סרוו יהיו בעיקר חוטים, אחד מהם הוא למתח חיובי, אחר הוא לקרקע והאחרון הוא להגדרת מיקום. החוט האדום מחובר לחשמל, החוט השחור מחובר לקרקע וחוט הצהוב מחובר לאות.
מנוע סרוו הוא שילוב של מנוע DC, מערכת בקרת מיקום, הילוכים. מיקום הפיר של מנוע ה- DC מותאם על ידי אלקטרוני הבקרה בסרוו, בהתבסס על יחס החובה של אות ה- PWM, סיכת ה- SIGNAL. במילים פשוטות, האלקטרוניקה שליטה מכוונת את מיקום הפיר באמצעות שליטה במנוע DC. נתונים אלה לגבי מיקום הפיר נשלחים דרך סיכת הסיגנל. יש לשלוח את נתוני המיקום לבקרה בצורה של אות PWM דרך סיכת האות של מנוע הסרוו.
תדירות האות PWM (Pulse Width Modulated) יכולה להשתנות בהתאם לסוג מנוע הסרוו. הדבר החשוב כאן הוא יחס החובה של אות ה- PWM. בהתבסס על תנאי זה, האלקטרוניקה לבקרה מכוונת את הפיר.
כפי שמוצג באיור למטה, כדי שהמנוע יועבר לשעון 9o, ההפעלה של המנה חייבת להיות 1/18. 1 מיליון שניה של 'זמן ON' ו -17 מיליון שניה של 'זמן OFF' באות 18ms.
כדי שהמנוע יועבר לשעון 12o זמן ההפעלה של האות חייב להיות 1.5ms וזמן ה- OFF צריך להיות 16.5ms.
יחס זה מפוענח על ידי מערכת בקרה בסרוו והוא מתאים את המיקום על פיו.
PWM זה כאן נוצר באמצעות ARDUINO UNO.
אז לעת עתה אנו יודעים זאת, אנו יכולים לשלוט על פיר המנוע SERVO על ידי שינוי יחס החובה של אות ה- PWM שנוצר על ידי UNO.
עכשיו בואו נדבר על חיישן כוח או חיישן משקל.
כדי לממשק חיישן FORCE עם ARDUINO UNO, אנו נשתמש בתכונה ADC של 8 סיביות (אנלוגי להמרה דיגיטלית) ב- arduno uno.
חיישן FORCE הוא מתמר שמשנה את התנגדותו בעת הפעלת לחץ על פני השטח. חיישן FORCE זמין בגדלים וצורות שונות.
אנו הולכים להשתמש באחת הגרסאות הזולות יותר מכיוון שאיננו זקוקים לדיוק רב כאן. FSR400 הוא אחד מחיישני הכוח הזולים ביותר בשוק. התמונה של FSR400 מוצגת באיור למטה.
כעת חשוב לציין כי ה- FSR 400 רגיש לאורך, הכוח או המשקל צריכים להיות מרוכזים במבוך באמצע העין של החיישן, כפי שמוצג באיור.
אם מופעל הכוח בזמנים לא נכונים המכשיר עלול להזיק לצמיתות.
דבר חשוב נוסף שצריך לדעת, החיישן יכול להניע זרמים בטווח גבוה. אז קחו בחשבון את זרמי הנהיגה בזמן ההתקנה. כמו כן לחיישן יש מגבלת כוח שהיא 10 ניוטון. כך שנוכל להחיל משקל של 1 ק"ג בלבד. אם משקלים גבוהים מ -1 ק"ג מוחלים החיישן עשוי להראות סטיות מסוימות. אם הוא גדל יותר מ -3 ק"ג. החיישן עלול להזיק לצמיתות.
כפי שנאמר קודם חיישן זה משמש לחישת שינויי הלחץ. לכן כאשר משקל מוחל על גבי חיישן FORCE, ההתנגדות משתנה באופן דרסטי. ההתנגדות של FS400 למשקל מוצגת בגרף להלן:
כפי שמוצג באיור לעיל, ההתנגדות בין שני המגעים של החיישן פוחתת עם המשקל או שהמוליכות בין שני מגעים של החיישן עולה.
ההתנגדות של מוליך טהור ניתנת על ידי:
איפה, עמידות של מוליך
l = אורך המוליך
A = שטח מוליך.
עכשיו שקול מוליך עם התנגדות "R", אם מופעל לחץ כלשהו על גבי המוליך, השטח על המוליך פוחת ואורך המוליך גדל כתוצאה מלחץ. אז לפי הנוסחה ההתנגדות של המוליך צריכה לעלות, מכיוון שההתנגדות R היא ביחס הפוך לשטח וגם ביחס ישר לאורך l.
אז עם זה עבור מוליך בלחץ או משקל ההתנגדות של המוליך עולה. אך שינוי זה קטן בהשוואה להתנגדות הכוללת. לשם שינוי ניכר מוליכים רבים נערמים יחד.
זה מה שקורה בתוך חיישני הכוח המוצגים באיור לעיל. במבט מקרוב ניתן לראות קווים רבים בתוך החיישן. כל אחד מהקווים הללו מייצג מוליך. רגישות החיישן היא במספרי מוליכים.
אך במקרה זה ההתנגדות תפחת עם הלחץ מכיוון שהחומר המשמש כאן אינו מוליך טהור. ה- FSR כאן הם מכשירי סרט פולימר עבה (PTF) חזקים. אז לא מדובר במכשירי חומר מוליכים טהורים. אלה בנויים מחומר המציג ירידה בהתנגדות עם עליית כוח המופעלת על פני החיישן.
חומר זה מראה מאפיינים כפי שמוצג בתרשים של FSR.
שינוי בהתנגדות זה לא יכול להועיל אלא אם כן נוכל לקרוא אותם. הבקר בהישג יד יכול לקרוא רק את הסיכויים במתח ולא פחות מכך, לשם כך נשתמש במעגל מחלקי מתח, ובכך נוכל להפיק את שינוי ההתנגדות כשינוי מתח.
מחלק מתח הוא מעגל התנגדות ומוצג באיור. ברשת התנגדות זו יש לנו התנגדות קבועה אחת והתנגדות משתנה אחרת. כפי שמוצג באיור, R1 כאן הוא התנגדות קבועה ו- R2 הוא חיישן FORCE אשר פועל כהתנגדות.
נקודת האמצע של הענף נלקחת למדידה. עם שינוי R2, יש לנו שינוי ב- Vout. אז עם זה יש לנו מתח שמשתנה עם המשקל.
כעת חשוב לציין שכאן, הקלט שנלקח על ידי הבקר לצורך המרת ADC הוא נמוך עד 50µAmp. אפקט טעינה זה של מחלק מתח מבוסס התנגדות חשוב מכיוון שהזרם הנובע מ- Vout של מחלק המתח מגדיל את אחוז השגיאה עולה, לעת עתה איננו צריכים לדאוג להשפעת הטעינה.
כעת כאשר מופעל הכוח על חיישן הכוח, המתח בקצה המחלק משנה את הסיכה הזו כמחובר לערוץ ADC של UNO, נקבל ערך דיגיטלי שונה מ- ADC של UNO, בכל פעם שכוח על חיישן משתנה.
ערך דיגיטלי זה של ADC מותאם ליחס החובה של אות PWM, כך שיש לנו את בקרת המיקום של SERVO ביחס לכוח המופעל על החיישן.
רכיבים
חומרה: UNO, ספק כוח (5v), קבל 1000uF, קבלים 100nF (3 חתיכות), נגד 100KΩ, SERVO MOTOR (SG 90), 220Ω נגד, חיישן כוח FSR400.
תוכנה: Atmel studio 6.2 או Aurdino Nightly.
תרשים מעגל והסבר עבודה
דיאגרמת מעגל עבור שליטה מוטורית סרוו ידי חיישן הכוח מוצג מתחת לדמות.
המתח על פני החיישן אינו ליניארי לחלוטין; זה יהיה רעשני. כדי לסנן את הרעש ממוקמים קבלים על פני כל נגדים במעגל המחלק כפי שמוצג באיור.
כאן אנו ניקח את המתח שמספק המחלק (מתח המייצג משקל באופן ליניארי) ולהאכיל אותו באחד מערוצי ה- ADC של Arduino Uno. לאחר ההמרה אנו הולכים לקחת את הערך הדיגיטלי הזה (המייצג משקל) ולקשר אותו לערך PWM ולספק את אות ה- PWM הזה למנוע SERVO.
אז עם המשקל יש לנו ערך PWM שמשנה את יחס החובה שלו בהתאם לערך הדיגיטלי. גבוה יותר הערך הדיגיטלי גבוה יותר יחס החובה של PWM. כך שעם אות PWM עם יחס חובה גבוה יותר, פיר הסרוו צריך להגיע ימינה או שמאלה קיצונית בהתאם לדמות שסופקה בהקדמה.
אם המשקל נמוך יותר, יהיה לנו יחס חובה PWM נמוך יותר ועל פי הדמות בהקדמה הסרוו צריך להגיע לימין הקיצוני.
עם זאת יש לנו בקרת מיקום של SERVO לפי WEIGHT או FORCE.
כדי שזה יקרה עלינו לקבוע כמה הוראות בתוכנית ונדבר עליהן בפירוט בהמשך.
ל- ARDUINO שישה ערוצי ADC, כפי שמוצג באיור. באלה כל אחד מהם או כולם יכולים לשמש ככניסות למתח אנלוגי. ה- UNO ADC הוא ברזולוציה של 10 סיביות (כך שערכי המספר השלם מ- (0- (2 ^ 10) 1023)). פירוש הדבר שהוא ימפה את מתח הכניסה בין 0 ל -5 וולט לערכים שלמים בין 0 ל 1023. אז לכל (5/1024 = 4.9mV) ליחידה.
כאן נשתמש ב- A0 של UNO. עלינו לדעת כמה דברים.
|
קודם כל לערוצי ה- Arduino Uno ADC יש ערך הפניה ברירת מחדל של 5V. זה אומר שאנחנו יכולים לתת מתח כניסה מרבי של 5V להמרת ADC בכל ערוץ קלט. מכיוון שחיישנים מסוימים מספקים מתח מ -0-2.5 וולט, עם הפניה של 5 וולט אנו מקבלים דיוק נמוך יותר, כך שיש לנו הוראות המאפשרות לנו לשנות את ערך הייחוס הזה. אז לשינוי ערך הייחוס שיש לנו ("AnalogReference ();") לעת עתה אנו משאירים את זה כ-.
כברירת מחדל אנו מקבלים את רזולוציית ה- ADC המקסימלית בלוח שהיא 10 ביט, ניתן לשנות את הרזולוציה הזו באמצעות הוראות ("analogReadResolution (bits);"). שינוי ברזולוציה זה יכול להיות שימושי במקרים מסוימים. לעת עתה אנו משאירים את זה כ.
כעת אם התנאים שלמעלה מוגדרים כברירת מחדל, אנו יכולים לקרוא את הערך מ- ADC של הערוץ '0' על ידי קריאה ישירה לפונקציה "analogRead (pin);", כאן "pin" מייצג את הפין שבו חיברנו אות אנלוגי, במקרה זה זה יהיה "A0". ניתן לקחת את הערך מ- ADC למספר שלם כ- int SENSORVALUE = analogRead (A0); ", לפי הוראה זו הערך לאחר ADC נשמר במספר השלם" SENSORVALUE ".
ה- PWM של UNO יכול להשיג בכל אחד מהסיכות המסומנות כ- ~ על לוח ה- PCB. ישנם שישה ערוצי PWM ב- UNO. אנו הולכים להשתמש ב- PIN3 למטרתנו.
analogWrite (3, VALUE); |
ממצב לעיל אנו יכולים לקבל ישירות את אות ה- PWM בסיכה המתאימה. הפרמטר הראשון בסוגריים הוא לבחירת מספר הסיכה של אות ה- PWM. הפרמטר השני הוא לכתיבת יחס חובה.
ניתן לשנות את ערך ה- PWM של Arduino Uno מ- 0 ל- 255. כאשר "0" הוא הנמוך ביותר ל- "255" כגבוה ביותר. עם 255 כיחס חובה נקבל 5 וולט ב- PIN3. אם יחס החובה נקבע כ 125 נקבל 2.5 וולט ב- PIN3.
עכשיו בואו נדבר על בקרת מנועי סרוו, ל- Arduino Uno יש תכונה שמאפשרת לנו לשלוט במיקום הסרווו על ידי מתן ערך התואר בלבד. נניח שאם אנו רוצים שהסרוו יהיה בגיל 30, נוכל לייצג ישירות את הערך בתוכנית. קובץ הכותרת של SERVO דואג לכל חישובי יחס החובה באופן פנימי. תוכל ללמוד עוד על בקרת מנועי סרוו עם ארדואינו כאן.
עכשיו ה- sg90 יכול לנוע בין 0-180 מעלות, יש לנו תוצאת ADC 0-1024.
אז ADC הוא בערך פי שש מיקום SERVO. אז על ידי חלוקת תוצאת ADC ב 6 נקבל את מיקום היד SERVO המשוער. מכאן שיש לנו אות PWM שיחס החובה שלו משתנה באופן ליניארי עם WEIGHT או FORCE. זה ניתן למנוע סרוו, אנו יכולים לשלוט על מנוע סרוו באמצעות חיישן כוח.