הפעלה בזמן אמת באמצעות המחשב

הפורום הראשי, אתר הרובוטיקה הישראלי

המנהלים: אסף פוניס, גיא יונה

הפעלה בזמן אמת באמצעות המחשב

הודעהעל ידי roikaram » ה' ינואר 01, 2009 11:00 am

שלום חברים,
אני זקוק להתייעצות בנוגע להפעלה באמצעות מחשב.
כאשר תכנתתי רובוט נוסע לפי מסלול מסויים, באמצעות המחשב תכנתתי את המיקרובקר, עשיתי הרצה, והרובוט נסע במסלול אותו יצרתי מראש.
אולם איך אני מתכנת רובוט שיפעל בזמן אמת? כלומר ברצוני שהרובוט יסע קדימה כל עוד אני לוחץ על מקש במחשב. (בהנחה שאני מתגבר על מכשולים לוגיסטיים, כמו כבל שמפריע לנסיעה)
האם קיימות תוכנות יעודיות לכך? האם יש צורך במיקרובקר (אני מניח שכן)?
ובכלל, האם תוכלו להמליץ על מיקרו בקר מסויים? ומה בכלל ההבדלים ביניהם?
תודה, רועי
roikaram
משתמש חדש
משתמש חדש
 
הודעות: 10
הצטרף: ג' יולי 29, 2008 4:34 pm

הודעהעל ידי The arctic wolf » ה' ינואר 01, 2009 11:30 am

שלום רועי,
בקשר לרובוט,אתה יכול לבנות רובוט פשוט(עם כבל) גם בלי מיקרובקר(חיבור ל-LPT),
אם ברצונך לממש תקשורת אל חוטית,מומלץ להשתמש בבקר.

בקשר להפעלה בזמן אמת,
לא מומלץ לבנות אפליקצייות זמן אמת תחת WINDOWS כי WINDOWS היא לא
מערכת הפעלה של זמן אמת(ה-TASK MANAGER כל הזמן מזפזפ בין אפליקציות שונות ולא תוכל לקבל זמנים מדוייקים),
אבל עד כמה שאני מבין DOS דווקא מתאים לזמן אמת...
כמובן הכל תלויי באיזה דיוק אתה צריך לאפליקצייה שלך...

בקשר למיקרובקרים,
קיימים הרבה,הכל תלויי במה אתה צריך,למשל:
בקרים ממשפחת 8051 (89S52 לדוגמא),הכי זולים אבל יחסית איטיים.
בקרים ממשפחת AVR ,יותר מתקדמים ויותר מהירים אבל קצת יותר יקרים.
בקרים ממשפחת PIC(המשפחה הכי פופולרית) ,גם בקרים יחסית מתקדמים.
וקיימות עוד משפחות...

חוץ ממהירות ומחיר ישנם גם עוד פרמטרים,
כמו למשל האם קיים ממיר A\D מובנה,האם יש לבקר יכולת ISP ,
כמות הפורטים ועוד.

כמו כן,בכל משפחה קיימים המון דגמים שונים בעלי תכונות שונות.
אז הכל תלויי בעצם במה אתה מחפש(אתה מוזמן גם להריץ את משפחות הבקרים בגוגל ולבדוק דפי נתונים שונים)...


אנדריי.
זה שהרעיון משוגע עוד לא אומר שהוא לא יצליח!
The arctic wolf
רובוטריק
רובוטריק
 
הודעות: 1007
הצטרף: ד' ינואר 26, 2005 12:43 am

הפעלה בזמן אמת באמצעות המחשב

הודעהעל ידי roikaram » ה' ינואר 01, 2009 2:11 pm

תודה אנדריי, אבל בעצם לא ענית לי על השאלה..
נניח שאני רוצה ליצור שליטה על צרכן מתח חיצוני באמצעות המחשב האישי שלי,( לצורך העניין, כיבוי והדלקה של נורה באמצעות לחיצה על מקש במקלדת שלי,כמו כן נניח שהנורה צורכת מתח של 1 [Vdc])
אז אני צריך כבל, שבצידו האחד יתחבר למחשב ובשני לנורה.
ואני צריך תוכנה, שתדע בלחיצת כפתור לספק מתח של 1 V , ובלחיצה שניה להפסיק אותו.
השאלה שלי היא איך עושים את זה בפועל? האם יש כבלים ותוכנות יעודיות לכך? או שאני צריך לחשוף את החוטים בצידו השני של הכבל ולתכנת בעצמי את הזיהוי של הנורה באמצעות המחשב?

או שבכלל כל ההנחות שלי שגויות והדברים נעשים בצורה אחרת לגמרי?

תודה רועי.
roikaram
משתמש חדש
משתמש חדש
 
הודעות: 10
הצטרף: ג' יולי 29, 2008 4:34 pm

הודעהעל ידי The arctic wolf » ה' ינואר 01, 2009 8:54 pm

סביר להניח שיש בשוק משהו מוכן במחיר מופקע,
אבל בגלל שאני בונה הכל לבד אני לא יודע להפנות אותך(אבל זה לא אומר שאחרים לא יוכלו)...

בכל מקרה לבנות מערכת פשוטה מבוססת תקשורת חוטית לבד זה ממש לא מסובך,
דוגמא בישביל הפעלה של נורה:

אתה צריך מחבר LPT, דרלינגטון ונורה,
הדרלינגטון ישמש כמתג אלקטרוני
(בגלל שהפורט המקבילי לא יודע לספק זרם גדול ובלי חוצץ הוא יישרף),
הבסיס של הדרליגטון יתחבר לאחד מקווי הנתונים של ה-LPT,
האמיטר של הדרלינגטון לאדמה(במקרה של דרלינגטון מבוסס NPN)
(לפעמים יש צורך גם בנגד,תלוי בדרלינגטון),
והנורה ומקור מתח חיצוני יתחברו מצדו השני של הדרלינגטון,
הנורה תתחבר בין הקוטב החיובי של מקור המתח לקולקטור של הדרלינגטון(במקרה של NPN)
(גם פה לפעמים יש צורך בנגד),
והקוטב השלילי של מקור המתח יתחבר לאמיטר של הדרלינגטון.
אחרי זה,אם יש "1" לוגי בקו הנתונים שאליו מחובר הדרלינגטון הנורה תדלק ואם יש "0"
לוגי היא תכבה.

אם למשל תרצה להפעיל מנוע לשני הכיוונים אז כבר תצתרך לא דרלינגטון אלה H BRIDGE
(אבל גם פה זה לא מסובך).



אנדריי.
זה שהרעיון משוגע עוד לא אומר שהוא לא יצליח!
The arctic wolf
רובוטריק
רובוטריק
 
הודעות: 1007
הצטרף: ד' ינואר 26, 2005 12:43 am

הודעהעל ידי אמנון » ה' ינואר 01, 2009 9:30 pm

רועי
תוכל לחפש ברשת תוכניות מוכנות למה שאתה מחפש עם המעגלים שאנדרי ממליץ עליהם (תחפש הפעלת LED בעזרת ה LPT או ה PARALLEL PORT )

כמו כן אתה יכול ליקנות מעגלים מוכנים למשימה שאתה רוצה לדוגמא :

http://www.phidgets.com/index.php?modul ... CID=7&KID=

ויש עוד רבים אחרים .

עוד כיוון שהייתי מחפש הוא שליטה במנורות (או עצי חג המולד ) בעזרת היציאה המקבילית , ראיתי בעבר כמות גדולה של מעגלים ותוכניות לנושא שיכולת לשמש אותך.
אמנון :shock:
אמנון
רובוטריק
רובוטריק
 
הודעות: 2031
הצטרף: ש' יולי 09, 2005 5:41 pm
מיקום: חיפה

הודעהעל ידי The arctic wolf » ה' ינואר 01, 2009 10:04 pm

בנוסף למה שאמנון אמר,
אם אתה לא מוצא ברשת תוכנה מוכנה שמתאימה לך,
ואתה יודע קצת תיכנות(שפת C למשל),אתה בקלות יכול לבנות תוכנה משלך
(זה סה"כ שליחת מספרים מתאימים לכתובת של הפורט).



אנדריי.
זה שהרעיון משוגע עוד לא אומר שהוא לא יצליח!
The arctic wolf
רובוטריק
רובוטריק
 
הודעות: 1007
הצטרף: ד' ינואר 26, 2005 12:43 am

הודעהעל ידי roikaram » ו' ינואר 02, 2009 12:52 am

יצירת 0 ו1 לוגי נעשה באמצעות תכנות, אני מניח..
יש תוכנה שאתם ממליצים לעבוד איתה?
roikaram
משתמש חדש
משתמש חדש
 
הודעות: 10
הצטרף: ג' יולי 29, 2008 4:34 pm

OK

הודעהעל ידי Ngel » ו' ינואר 02, 2009 12:38 pm

גם אני נתקלתי בבעייה דומה, רציתי לשלוח נתונים מהמחשב למיקרו בקר חיצוני או לסתם רגלי I\O.
אחת הפתרונות היתה LPT, פורט מקבילי פשוט, אך מכיל הרבה חוטים וזה גורם לכאבי ראש.
הפתרון השני הוא USB.

אם אתה יודע לתכנת בשפת מחשב vb.net, ואם אתה יודע c בצורה בסיסית אני ממליץ להשתמש במדריך שלי:
http://www.machir.com/site/detail/detai ... id=1128619

זה מדריך מפורט כולל קוד מוכן לבקר ולמחשב שבזכותו תוכל בצורה פשוטה להוציא נתון לרגלי I\O או לקרוא מהם במינימום עבודה.

בהצלחה.
Ngel
משתמש ותיק
משתמש ותיק
 
הודעות: 310
הצטרף: א' פברואר 04, 2007 6:47 pm

הודעהעל ידי אמנון » ו' ינואר 02, 2009 2:53 pm

בהמשך לדבריו של נתנאל

החיבור המקבילי לא חיב להיות מסובך מיפני שאפשר להישתמש רק בחלק מהחוטים ולא חיבים את כל ה 25 .

וכמובן שיש את היציאה הטורית שהיא סטנדרטית בהרבה מאוד מיקרו מעבדים ,תחת השם RS232 או UART (להבדיל מה USB) .

ויש המון תוכנות שמאפשרות לפנות אליה , כולל ה HYPER TERMINAL של חלונות .
והרשת מלאה בדוגמאות קוד להמון מעבדים לשימוש בחיבור הזה.


אמנון :shock:
אמנון
רובוטריק
רובוטריק
 
הודעות: 2031
הצטרף: ש' יולי 09, 2005 5:41 pm
מיקום: חיפה

הודעהעל ידי roikaram » ו' ינואר 02, 2009 4:47 pm

תודה לכולם
roikaram
משתמש חדש
משתמש חדש
 
הודעות: 10
הצטרף: ג' יולי 29, 2008 4:34 pm

הודעהעל ידי ארי גרינשפון » ו' ינואר 02, 2009 11:18 pm

רועי שלום,
השאלה שלך קשורה לפרוטוקולי תקשורת
אחת האפשרויות להעביר את המידע מהמקום שבו הוא נמצא לזיכרון ומהזיכרון להעביר אותו למקום המיועד (למשל התקן I\O)
יש אפשרות להוסיף שעונים, אם יש שעון משותף אז הפעולה היא סינכרונית או לחילופין שלכל אחד יהיה שעון משלו ואז התקשורת תהיה א-סינכרונית (למשל בסיב אופטי עובדים בצורה א-סינכרונית מכיוון שאין עוד bus שישמש כשעון)
אפשרות מהירה יותר (ללא שעון) היא להעביר את המידע לכתובת מסוימת בזיכרון [נניח 40:E] כתובת נוספת בזיכרון [נניח 40:F] רואה שיש מידע בכתובת 40:E ומעתיקה אותו,
מוחקים את המידע ב 40:E ובכך מאשר שכתובת 40:E יכולה לקבל עוד מידע
כתובת 40:F מעבירה את המידע ליעד (למשל התקן I\O)

כדי לממש את זה יש תוכנה שמתמחה בתקשורת מחשבים בשם LabWindows/CVI
לתוכנה הזאת יש ממשק גרפי והיא מאפשרת גם לתכנת בשפת C ובנוסף לשפת C
יש לה עוד פקודות שמיועדות לתקשורת מחשבים כמו למשל:
( , , )GetCtrlVal – כדי לקבל מידע כל ביט בנפרד
( , , )SetCtrlVal – כדי לשלוח מידע כל ביט בנפרד
( , , )ReadFromPhysicalMemory – כדי לקרוא מהזיכרון
( , , )WriteFromPhysicalMemory – כדי לכתוב לזיכרון
( , )Inp – להכניס לפורט מידע מאפשר קבלת מחרוזת
( , )Outp – להוציא מהפורט מידע מאפשר שליחת מחרוזת

באתר הזה תוכל למצוא פורום מצוין בנושא
http://forums.ni.com/ni/

ארי גרינשפון
ארי גרינשפון
משתמש ותיק
משתמש ותיק
 
הודעות: 189
הצטרף: ש' מרץ 15, 2008 2:58 pm

הודעהעל ידי YYY » ה' ינואר 22, 2009 3:06 pm

גם אני נמצא באותה בעיה
אין לי את שאר התוכנות אבל יש לי C :D
מישהו יודע איך לשלוח נתונים מהמחשב למיקרובקר
בשפת C
YYY
משתמש חדש
משתמש חדש
 
הודעות: 3
הצטרף: ה' ינואר 22, 2009 2:52 pm

YYY

הודעהעל ידי Ngel » ו' ינואר 23, 2009 3:10 pm

YYY
מהאתר של גדי הרמן:
http://www.galium.co.il/vbe/
Ngel
משתמש ותיק
משתמש ותיק
 
הודעות: 310
הצטרף: א' פברואר 04, 2007 6:47 pm

הודעהעל ידי YYY » ש' ינואר 24, 2009 2:03 am

ngel האתר שפירסמת לא קשור לשאלה שלי
האתר שפירסמת מדבר על חומרה LPT ו COM
עם תכנות בויז'ואל ביסייק
ואני מחפש מידע על תקשורת בין מחשב לבקר
וגם על תקשורת בין מחשב לאינטרנט
בשפת C בלבד
:shock:
YYY
משתמש חדש
משתמש חדש
 
הודעות: 3
הצטרף: ה' ינואר 22, 2009 2:52 pm

הודעהעל ידי אמנון » ש' ינואר 24, 2009 11:17 am

YYY
לדעתי חיבור בעזרת RS232 זאת אחת הדרכים הנפוצות לחבר בין בקר למחשב.

בכל מיקרה תבדוק עם איזה בקר אתה עובד , ותחפש דוגמאות קוד לחיבור למחשב בעזרת RS232 (שזה הנפוץ ביותר) USB (שזה או RS232 מדומה או USB מלא) או קוד לחיבור עם LAN.

יש המון דוגמאות קוד כאלו ברשת וזה פשוט תלוי בבקר ובחומרה שלך .
(לרוב ה RS 232 קיים בחומרה הבסיסית ללא צורך במעגל מסובך ,לגבי ה USB זה תלוי בקר ולגבי הLAN לדעתי תמיד צריך חומרה נוספת , אבל אני לא חותם על זה).

ואם אתה צריך תקשורת מ PC דרך RS232 בשפת C אז : http://www.tetraedre.com/advanced/

אמנון :shock:
אמנון
רובוטריק
רובוטריק
 
הודעות: 2031
הצטרף: ש' יולי 09, 2005 5:41 pm
מיקום: חיפה

הבא

חזור אל פורום הרובוטיקה

מי מחובר

משתמשים הגולשים בפורום זה: Google [Bot] ו 6 אורחים

cron