בפוסט זה אתאר תהליך הוספת אלמטים של ראייה ממוחשבת לפלטפורמה הרובוטית שבניתי. רציתי לאפשר לרובוט לבצע שני דברים. הראשון הוא מעקב של הרובוט אחרי אוביקט, לצורך העניין כדור, עם מצלמת הראש שלו. מצלמת הראש מותקנת על מערכת Pan-Tilt מבוססת מנועי סרוו שמאפשרת למצלמה לנוע ימינה, שמאלה, למעלה ולמטה, כמו שניתן לראות בתמונה. מעקב אחרי האוביקט עם מצלמת הראש הוא הזזת המצלמה בהתאם למיקום הכדור. המטרה השניה והיותר מורכבת היא שימוש ביכולות המעקב של המצלמה יכולות ראייה ממוחשבת נוספות, על מנת לאפשר לרובוט כולו לרדוף אחרי כדור מושלך, בדומה למשחק עם כלב.
לאחרונה מצאתי קצת זמן לבנות פלטפורמה רובוטית שתשמש אותי לבחינה של אלגוריתמים שונים ברובוטיקה. הפלטפורמה היא בעצם רובוט 4 גלגלי מבוסס קוד פתוח, ופועל בסביבת Embedded Linux. לפלטפורמה (או אם תרצו לרובוט) יש כרגע את היכולות הבאות: ראייה ממוחשבת (חיקוי של ראייה אנושית, היכולת להבין מה הרובוט רואה ולהתנהג בהתאם). לדוגמה, הרובוט מסוגל לעקוב אחרי אובייקטים שונים, לזהות פנים, ולהתנייד בצורה עצמאית בחדר שמכיל מכשולים. סינטזת דיבור (Speech Synthesis) - היכולת לדבר בקול שנשמע אנושי. האמת היא שכאן דווקא בחרתי בקול שנשמע רובוטי, אבל העיקרון עדיין זהה - הרובוט מסוגל לדבר, להרכיז על פעולות שונות שהוא מבצע, דברים שהוא מגלה, ובמקרים מסויימים להשיב ...
מאמר זה סוקר פיתוח אפליקציות זמן אמת תחת לינוקס. המאמר מתחיל מסקירת הצורך, הגדרת סוגים שונים של מערכות זמן-אמת, מאפייני מערכות זמן-אמת, ופיתוח אפליקציות זמן-אמת תחת לינוקס.
מאמר זה עוסק בבחירת לוח פיתוח משובץ לינוקס (Embedded Linux). המאמר סוקר שיקולים בבחירת לוח הפיתוח, מחירים, דרישות הספק, יכולות עיבוד ומימשקים (Interfaces), וסוקר מספר לוחות מומלצים בתחום.
במסגרת פרויקט בית חכם עליו עבדתי, רציתי להתממשק לרכיבי חשמל המופעלים על ידי תשדורת אינפרה-אדום כך שאוכל לשלוט בהם באמצעות תוכנה מהמחשב. ישנם הרבה מכשירים ביתיים כאלו: הטלוויזיה, ממיר הכבלים, מערכת הסטריאו, המזגן וכדומה. מה שמקשה על התממשקות כזו לרכיבים רבים במקביל הם שלל הפרוטוקולים השונים לתקשורת IR. מבדיקה שרירותית שביצעתי ע"י שימוש ב-Scope, לרוב מכשירי החשמל שלי היה פרוטוקול שונה, ובמקרים מסוימים אף היה מדובר בפרוטוקול ייחודי ולא מוכר. כדי להתגבר על קושי זה של ריבוי פרוטוקולים או שימוש בפרוטוקולים יעודיים, כתבתי דרייבר לקרנל של לינוקס (Linux Kernel Module) שאליו ניתן להתממשק מכל תוכנת User-Space ולשלוח פקודת Infra-Red כלשהי, ללא ...
תכנון פיתוח וייצור של בקר לשליטה במנועי סרוו המאפשר לשלוט בעד 9 מנועי סרוו שונים באמצעות חיבור USB סטאנדרטי.
מאמר העוסק בסקירת ההבדלים בין FPGA ומיקרו בקרים (מיקרו-מעבדים, מיקרו-קונטרולרים). המאמר מציג את הטכנולוגיות השונות, הבדלים בינהן, והיתרונות והחסרונות של כל טכנולוגיה.
מאמר העוסק באבטחת אפליקציות משובצות מיקרו מעבדים, סקירת השיטות השונות להנדסה לאחור (Reverse Engineering) ושיטות לאבטחת התוכנה הנמצאת על המיקרו-מעבד.
בעבר מיקרו-בקרים הכילו בעיקר מנגנוני קלט-פלט פשוטים, זיכרון ויחידת עיבוד.עם השנים, לא רק שגודל הזכרון גדל משמעותית ומהירות השעון עלתה, אלא שגם נוספו מרכיבים רבים שפעם היו ממומשים ברכיב נפרד חיצוני למעבד. כמו כן, נוספו טכנולוגיות שונות המסייעות לפעילות הבקר, וממשקי תקשורת שונים. כל אלה ממומשים היום על אותה פיסת סיליקון (system on chip). המאמר בא לסקור חלק גדול מהטכנולוגיות שניתן למצוא מימוש שלהם במיקרו-בקרים כיום.
כמישהו שחלק מתחומי העניין שלו הם אלקטרוניקה ורובוטיקה יוצא לי לראות הרבה רובוטים, אם ברשת או בצורה פיסית. היום נתקלתי ברובוט מיוחד בעל אינטליגנציה מלאכותית גבוהה כל כך לעומת רמת האינטליגנציה המלאכותית אליה אנחנו רגילים היום, שנראה כאילו מדובר במדע בדיוני. נראה כאילו הרובוט פשוט לא מסוגל ליפול, גם אם הוא הולך על קרח, או שמישהו פשוט בועט בו ומנסה להפיל אותו בכוח. לרובוט קוראים Big Dog, וכשמו הוא רובוט ארבע-רגלי בגודל של כלב גדול, או פרדת מסע קטנה. הרובוט מסוגל ללכת בשטח קשה, לרוץ, לקפוץ ולעלות במעלה מדרונות תלולים וקשי מעבר. הרובוט מונע ע"י מנוע בעירה המספק אנרגיה למערכת הנעה ...
מאמר זה סוקר את ההבדלם העיקריים בין שתי סדרות של בקרים מתוכנתים של שתים מהחברות המובילות בשוק בקרי ה 8 ביט - ATMEL ו-MicroChip. הסקירה תתמקד בקבוצה זו של במיקרו-בקרים המתאפינים במחיר זול יחסית (1-7$), צריכת הספק נמוכה ושטח קטן, והינם בעלי יכולות מגוונות, המספיקות למערכות רבות שאינן דורשות יכולות עיבוד אותות גבוהות. תחילה אסקור את ההבדלים העיקריים בין הטכנולוגיות של החברות ולאחר מכן אשווה קריטריונים שונים בין שני רכיבים דומים משתי החברות.
מהו מנוע סרוו? מנוע סרוו הוא מנוע זרם ישר (DC Motor) בעל מערכת תמסורת פנימית של גלגלי שיניים ובקרה אלקטרונית על מיקום המנוע. מה שמיחד מנועי סרוו היא העובדה שהם אינם מסתובבים בצורה חופשית כמו מנועי DC, אלא נעים על פי זווית - לרוב בין 0 ל-180 מעלות. מנועי סרוו פועלים בחוג סגור, כלומר הינם בעלי בקרה על מיקום המנוע, ובעלי יכולת תיקון פערים מהמיקום הרצוי.
בזמן האחרון עברתי לשימוש כמעט בלעדי ברכיבי SMT. לרכיבים אלו יש יתרונות רבים, החל מהשטח המועט שהם תופסים, המחיר המופחת, והאלגנטיות של המעגל הנוצר.בנוסף אם מדובר במעגל שהוא אב-טיפוס ומיוצר "ידנית" ולא על ידי מכונה, השימוש ברכיבי SMT חוסך את קידוח החורים שנדרש ברכיבי Through Hole. למרות היתרונות הנ"ל המעבר לשימוש ברכיבי SMT יוצר כמה קשיים, אחד מהם הוא תכנות רכיבי SMT כדוגמת מיקרו-מעבדים. בניגוד לרכיבי SMT שלא דורשים תכנות ולכן רק צריך להלחים אותם למעגל, רכיבים מתוכנתים אלו דורשים שלב מקדים של צריבת קוד התוכנה לרכיב. בניגוד לרכיבי DIP שאותם פשוט ניתן להכניס לשקע ה-DIP של הצורב ולצרוב את ...
תכנון, פיתוח וייצור של בקר אלקטרוני לשליטה ממוחשבת במכונת CNC המופעלת על ידי מנועי צעד. הבקר תומך בשלושה צירים, חיישני ביות ובמפסקי גבול, ומופרד אופטית מהמחשב.
לוח פיתוח למיקרו-בקרים של חברת MicroChip הכוללת יציאות USB, RS-232, IR, לוח מקשים, תצוגת LCD ועוד.
פרויקט זה מתאר את תהליך בניית מכונת CNC איכותית המגיעה לדיוק וביצועים גבוהים. בניית מכונת CNC היא דבר מורכב המערב אלקטרוניקה, רובוטיקה, מכניקה ותוכנה, ולכן מהווה פרויקט אידיאלי עבורי.
מהו BOOTLOADER? Bootloader הינה תוכנית למיקרו-בקרים המתקשרת עם המחשב באמצעות תקשורת טורית (או USB). מטרת התוכנית היא לקבל מהמחשב את התוכנית שכתב המשתמש ולכתוב אותה לזיכרון התוכנה שעל המיקרו-בקר, כך שבעת הפעלת המיקרו-בקר יורץ קוד זה. במילים אחרות, המטרה היא להחליף את פעולת הצריבה הרגילה הנעשת באמצעות צורב.
מאמר המסביר מהו עיבוד אות ספרתי, הדגמת המרת אות אנלוגי לאות דיגיטאלי, סקירת שיטות ואלגוריתמים לעיבוד אות דיגיטאלי.
מנועי צעד ("מנוע צעדים" או "מנוע צועד") הם מנועים אלקטרוניים בהם ניתן לשלוט בצורה מדוייקת על מידת הסיבוב וכיוונו. מנועי צעד מאופיינים ברמת דיוק גבוהה (מנוע טיפוסי יכול להסתובב בכ-0.9-1.8 מעלות לכל כיוון) ובמהירות גבוהה יחסית. מנועי צעד ניתן למצוא במכשירים רבים ובניהם מדפסות (ראש המדפסת לרוב נע ימינה ושמאלה באמצעות מנוע צעד), סורקים (תנועת הנורה הסורקת מבוצעת באמצעות מנוע צעד), דיסקים קשיחים ועוד.
במדריך זה נלמד כיצד ניתן להתחיל לעבוד עם מיקרו-בקרים של חברת MICROCHIP. נבנה נגדיר ונכתוב את כל מה שצריך על מנת לכתוב תוכנה שבסופו של דבר תגרום ללד להבהב באמצעות מיקרו-בקר. את התוכנה נצרוב ונבדוק שהיא אכן פועלת על הבקר עצמו. המדריך ילווה אותכם צעד אחר צעד בכל מה שיש לעשות. כל התוכנות שנשתמש בהן הן חינמיות לחלוטין (לא DEMO) ישנם מספר רכיבי חומרה שצריך קנות/לבנות (חומרה אי אפשר להוריד מהאינטרנט...) אתם מוזמנים לנסות להשיג את כולם בעצמכם.
מיקרו-בקר (microcontroller) הינו מעגל משולב (Integrated Circuit) בו ממומשת מערכת שלמה (SoC) הכוללת יחידת עיבוד, ממשקים חיצוניים, זיכרונות ועוד. מיקרו-בקר הוא סוג של מיקרו-מעבד המיועד לשימוש לצרכים ספציפיים ולכן מאופיין ביחס עלות-תועלת, צריכת הספק ושטח טובים יותר יחסית למיקרו-מעבד סטנדרטי (כדוגמת מעבד הנמצא במחשב האישי)
בשנים האחרונות העולם הולך ונעשה מקושר יותר ויותר לרשת האינטרנט. כמעט כל תוכנת מחשב היום היא מבוססת רשת, כלומר מתממשקת עם רשת האינטרנט, מחברת בין משתמשים שונים, שומרת מידע על הרשת ושואבת ממנה מידע. עולם החומרה לא נותר מאחור, ואם בעבר היו מחוברים לרשת רק התקנים "חכמים" כמו מחשבים אשיים/טלפונים סלולאריים הרי שהיום המגמה היא לחבר גם מכשר חשמל והתקני חומרה פשוטים יותר. פרויקט זה מתאר את אופן חיבור חומרה לאינטרנט, החל מהשלב התיאורטי ועד לחומרה עצמה.
מערכת הקולטת, אוגרת ומעבדת אותות מחיישנים שונים. המערכת כוללת רכיב חומרה המתחבר למחשב באמצעות חיבור USB ומקבל אותות מחיישנים, חלקם מרוחקים - באמצעות תשדורת רדיו. המערכת כוללת רכיב תוכנה המציג את האותות בזמן אמת, ובו ניתן להגדיר פעולות שיבוצעו בהתאם לנתוני האותות. המערכת פותחה במסגרת פרויקט "בית חכם".
בפרויקט זה נבנתה מערכת המזהה בכי של תינוק ומתריעה על כך. המערכת מסוגלת להבדיל בין בכי התינוק לבין קולות אחרים כגון דיבור, מוזיקה, נביחת כלבים וכדומה. הפרויקט מורכב ממספר שלבים ובניהם מחקר, פיתוח אלגוריתם של עיבוד אות, פיתוח תוכנה, יצירה פיסית של המעגל האלקטרוני, זיווד ובדיקות איכות. המכשיר נבנה על פי בקשת לקוח במסגרת הגשת בקשה לפטנט שכלל זיהוי בכי תינוק.
מעגל המתכנת את כל סוגי המיקרו-מעבדים של MicroChip, החל מהמודלים הקטנים והפשוטים (בעלי 6 רגליים) ועד למודלים המתקדמים יותר המתוכנתים ב-LVP. המעגל פועל בשיטת ICSP כך שניתן לתכנת את המיקרו-מעבד בעודו בגוף המוצר ולא נדרש להסירו. הפרויקט כולל סכמות ותרשימי PCB.
מדריך לבניית מערכת תאורה לאופניים בעלת עצמה גבוהה מאד (1100 לומן), הכוללת מעגל בקרה השולט על עוצמת הנורה בצורה אוטומאטית לפי חיישן תאורה סביבתי. המערכת כוללת ערכת טעינה המאפשרת חיבור נח ופשוט של האופניים לחשמל לשם טעינת מערך הסוללות.
במדריך זה נלמד כיצד ניתן לבנות מעגל אלקטרוני פשוט המדמה קיום מערכת אזעקה לרכב. הרעיון הוא ליצור מעגל בעל לד (LED) אדום מהבהב שיגרום לגנב להאמין כי ברכבכם מותקנת מערכת אזעקה ולעבור לרכב הבא. המעגל פשוט מאד לבנייה ומומלץ למתחילים בתחום האלקטרוניקה בתור מעגל ראשון. במדריך זה יוסברו עקרונות חשובים בבניית מעגלים אלקטרוניים: כיצד לקרוא דפי נתונים של רכיב אלקטרוני? מהם הדרישות החשמליות של רכיב? (Electrical Specifications) מיפוי רגלי הרכיב תכנון סכמטי של המעגל (סכמה חשמלית) בדיקת המעגל - בניית המעגל על מטריצה תכנון פיזי של layout המעגל
לאחרונה מצאתי קצת זמן לבנות פלטפורמה רובוטית שתשמש אותי לבחינה של אלגוריתמים שונים ברובוטיקה. הפלטפורמה היא בעצם רובוט 4 גלגלי מבוסס קוד פתוח, ופועל בסביבת Embedded Linux.
לפלטפורמה (או אם תרצו לרובוט) יש כרגע את היכולות הבאות:
מאמר העוסק בסקירת ההבדלים בין FPGA ומיקרו בקרים (מיקרו-מעבדים, מיקרו-קונטרולרים). המאמר מציג את הטכנולוגיות השונות, הבדלים בינהן, והיתרונות והחסרונות של כל טכנולוגיה.
מאמר העוסק באבטחת אפליקציות משובצות מיקרו מעבדים, סקירת השיטות השונות להנדסה לאחור (Reverse Engineering) ושיטות לאבטחת התוכנה הנמצאת על המיקרו-מעבד.

בעבר מיקרו-בקרים הכילו בעיקר מנגנוני קלט-פלט פשוטים, זיכרון ויחידת עיבוד.עם השנים, לא רק שגודל הזכרון גדל משמעותית ומהירות השעון עלתה, אלא שגם נוספו מרכיבים רבים שפעם היו ממומשים ברכיב נפרד חיצוני למעבד. כמו כן, נוספו טכנולוגיות שונות המסייעות לפעילות הבקר, וממשקי תקשורת שונים. כל אלה ממומשים היום על אותה פיסת סיליקון (system on chip). המאמר בא לסקור חלק גדול מהטכנולוגיות שניתן למצוא מימוש שלהם במיקרו-בקרים כיום.
כמישהו שחלק מתחומי העניין שלו הם אלקטרוניקה ורובוטיקה יוצא לי לראות הרבה רובוטים, אם ברשת או בצורה פיסית. היום נתקלתי ברובוט מיוחד בעל אינטליגנציה מלאכותית גבוהה כל כך לעומת רמת האינטליגנציה המלאכותית אליה אנחנו רגילים היום, שנראה כאילו מדובר במדע בדיוני. נראה כאילו הרובוט פשוט לא מסוגל ליפול, גם אם הוא הולך על קרח, או שמישהו פשוט בועט בו ומנסה להפיל אותו בכוח.
לרובוט קוראים Big Dog, וכשמו הוא רובוט ארבע-רגלי בגודל של כלב גדול, או פרדת מסע קטנה. הרובוט מסוגל ללכת בשטח קשה, לרוץ, לקפוץ ולעלות במעלה מדרונות תלולים וקשי מעבר. הרובוט מונע ע"י מנוע בעירה המספק אנרגיה למערכת הנעה הידראולית. רגליו של Big Dog בנויות לפי מבניהן של רגלי בהמת משא וגם נראה כאילו הן מתנהגות בהתאם. ברובוט משולב מחשב ששולט בתנועה ומנתח מידע החישנים הרבים בהם משתמש הרובוט – חיישני לחץ עבור המפרקים, כוח המופעל במפרקים, מגע עם הקרקע, משקל מטען, גירוסקופ, ומערכת ראיה סטריאוסקופית.
מאמר זה סוקר את ההבדלם העיקריים בין שתי סדרות של בקרים מתוכנתים של שתים מהחברות המובילות בשוק בקרי ה 8 ביט – ATMEL ו-MicroChip. הסקירה תתמקד בקבוצה זו של במיקרו-בקרים המתאפינים במחיר זול יחסית (1-7$), צריכת הספק נמוכה ושטח קטן, והינם בעלי יכולות מגוונות, המספיקות למערכות רבות שאינן דורשות יכולות עיבוד אותות גבוהות. תחילה אסקור את ההבדלים העיקריים בין הטכנולוגיות של החברות ולאחר מכן אשווה קריטריונים שונים בין שני רכיבים דומים משתי החברות.

מנוע סרוו הוא מנוע זרם ישר (DC Motor) בעל מערכת תמסורת פנימית של גלגלי שיניים ובקרה אלקטרונית על מיקום המנוע. מה שמיחד מנועי סרוו היא העובדה שהם אינם מסתובבים בצורה חופשית כמו מנועי DC, אלא נעים על פי זווית – לרוב בין 0 ל-180 מעלות.
מנועי סרוו פועלים בחוג סגור, כלומר הינם בעלי בקרה על מיקום המנוע, ובעלי יכולת תיקון פערים מהמיקום הרצוי.

בזמן האחרון עברתי לשימוש כמעט בלעדי ברכיבי SMT. לרכיבים אלו יש יתרונות רבים, החל מהשטח המועט שהם תופסים, המחיר המופחת, והאלגנטיות של המעגל הנוצר.בנוסף אם מדובר במעגל שהוא אב-טיפוס ומיוצר "ידנית" ולא על ידי מכונה, השימוש ברכיבי SMT חוסך את קידוח החורים שנדרש ברכיבי Through Hole.
למרות היתרונות הנ"ל המעבר לשימוש ברכיבי SMT יוצר כמה קשיים, אחד מהם הוא תכנות רכיבי SMT כדוגמת מיקרו-מעבדים. בניגוד לרכיבי SMT שלא דורשים תכנות ולכן רק צריך להלחים אותם למעגל, רכיבים מתוכנתים אלו דורשים שלב מקדים של צריבת קוד התוכנה לרכיב. בניגוד לרכיבי DIP שאותם פשוט ניתן להכניס לשקע ה-DIP של הצורב ולצרוב את התוכנה, כאן זה בלתי אפשרי. לרכיבי SMT אין רגליים שאפשר להכניס לתושבת, הם עדינים מאד וצריך להתנהג איתם בהתאם.
אז מה עושים בכל זאת?