תוכן עניינים:

רובוט חיפוש והשלכה מרחוק נשלט על ידי Leap Motion: 5 שלבים
רובוט חיפוש והשלכה מרחוק נשלט על ידי Leap Motion: 5 שלבים

וִידֵאוֹ: רובוט חיפוש והשלכה מרחוק נשלט על ידי Leap Motion: 5 שלבים

וִידֵאוֹ: רובוט חיפוש והשלכה מרחוק נשלט על ידי Leap Motion: 5 שלבים
וִידֵאוֹ: אנשים שהם אחד למליון (מטורף!!!)| טופטן 2024, יולי
Anonim
Image
Image

כחלק מהערך שלי ל- Leap Motion #3D Jam, התרגשתי לבנות את רובוט החיפוש/הצלה המבוסס על מחווה אלחוטית המבוסס על ה- Raspberry Pi. פרויקט זה מדגים ומספק דוגמה מינימליסטית לאופן בו ניתן להשתמש במחוות יד אלחוטיות בתלת -ממד לשליטה ואינטראקציה עם דברים פיזיים.

מכיוון שפרויקט זה משתמש במסגרת ה- WebIOPi IoT הפופולרית ב- Raspberry Pi, ניתן להרחיב אותו בקלות לשליטה ולממשק בדרך כלל כל חיישן/חומרה/אלקטרוניקה שניתן להתממשק עם ה- Raspberry Pi.

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

1. רובוט סילוק פצצות מרחוק על ידי מחוות (באמצעות אולי זרוע OWI וכו ')

2. ניתוח כירורגי מרחוק על ידי רופא

3. תערוכות אמנות אינטראקטיביות המבוקרות על ידי מחוות או תוכן חינוכי

4. אינסוף אפשרויות/אינטגרציות אחרות (אני מוגבל מדמיוני:))

שלב 1: סקירה כללית

הבנת מסגרת WebIOPi
הבנת מסגרת WebIOPi

פרויקט זה מאפשר למשתמש לשלוט באופן אינטראקטיבי ברובוט באמצעות מחוות יד תלת -ממדיות באמצעות תנועת קפיצה המחוברת למחשב.

ל- Raspberry Pi המשולב ברובוט יש גם מצלמת אינטרנט USB שמזרימה וידאו חי בחזרה למשתמש שניתן לראות בדפדפן אינטרנט. ספריית ה- JavaScript של LeapMotion המוטמעת בדף אינטרנט זה מעבדת מחוות ידיים ושולחת אותות שליטה בחזרה אל הרובוט, ולאחר מכן נעה בהתאם.

ה- Raspberry Pi ברובוט מוגדר כנקודה חמה (מצב AP) בעזרת דונגל ה- WiFi WiFi המחובר אליו. זה מאפשר למחשבים/מכשירים שלנו להתחבר ישירות ל- Raspberry Pi ולשלוט באמצעות דף אינטרנט. ניתן להגדיר את ה- Raspberry Pi לפעול גם במצב לקוח, בו הוא מתחבר באופן אלחוטי ל- AP של נתב ה- WiFi אליו המחשב/המכשירים כבר מחוברים.

פרויקט זה מבוסס על WebIOPi (https://webiopi.trouch.com/) המהווה מסגרת IoT פופולרית עבור Raspberry Pi. על ידי שימוש בערכת ה- Weaved IoT המצורפת (או באמצעות העברת יציאות בנתב), ניתן לשלוט על רובוט זה מרחוק ו/או לקבל נתונים מכל חלק בעולם.

הרכיבים הבאים שימשו לבניית הפרויקט:

  1. Raspberry Pi B (תואם 100% קדימה ל- Raspberry Pi B+)
  2. מצלמת USB של Logitech (1.3 מגה פיקסל זעומה)
  3. נהג מנוע L293D IC ומגן פריצה
  4. USB WiFi Dongle ל- Raspberry Pi
  5. בנק כוח USB ל- Raspberry Pi
  6. סוללה חיצונית 4V/1.5A להנעת מנועי הרובוט

שלב 2: בניית פרויקט

התקנת WebIOPi, כתיבת קוד מותאם אישית והגדרת מצלמת רשת:

הוראות התקנה של WebIoPi, יסודות מסגרת ודוגמאות רבות זמינים בדף הפרויקט כאן:

על מנת להטמיע את פונקציות LeapMotion בדף האינטרנט הפעילו פעולות GPIO ב- Raspberry Pi, השתמשנו בפקודות מאקרו, ופרטיהן נמצאות כאן:

כתבתי גם כמה הערות להתחלה אודות התהליך הנ ל שניתן למצוא בצירוף.

התקנה והגדרת מצלמת רשת

אנו משתמשים ב- MJPG-Streamer על מנת להזרים את הזנת הווידאו מה- Raspberry Pi לדפדפן באמצעות מצלמת ה- USB המחוברת ל- Pi. אנא עקוב אחר הוראות ההתקנה והבנייה המצוינות כאן https://blog.miguelgrinberg.com/post/how-to-build-… כדי לגרום ל- MJPG-Streamer לעבוד על ה- Raspberry Pi.

הגדרת ה- Raspberry Pi כ- AP/Hotspot

על מנת להגדיר את ה- Raspberry Pi בתור Hostpot, פעל לפי ההנחיות המופיעות כאן: https://elinux.org/RPI-Wireless-Hotspot. הגדרתי את ה- IP הסטטי של ה- Raspberry Pi כ- 192.168.42.1 וזה מה שהקלדנו בדפדפן ברגע שה- Pi יתחיל למצב AP.

WebIOPi, MJPG-Streamer ו- WiFi נקודה חמה הוגדרו להפעלה אוטומטית בעת האתחול וזה מאפשר לנו לפתוח ישירות דפדפן אינטרנט ולהתחבר לרובוט לאחר האתחול. הקובץ rc.local הזמין במאגר משמש להפעלת מצלמת האינטרנט בעת אתחול.

שלב 3: הוראות בנייה/חיווט

4 מכשירי GPIO של ה- Raspberry Pi כלומר GPIO 9, 11, 23 & 24 מחוברים ל- L293D Driver Driver IC המניע את המנועים בהתאם לאחר קבלת בקשות מאקרו מדף האינטרנט המוגש על ידי מסגרת Webiopi. דונגל ה- USB WiFi ומצלמת האינטרנט Logitech USB מחוברים ל -2 יציאות ה- USB הזמינות ב- Raspberry Pi. בנק 5V 4000 Mah Power מספק את החשמל העיקרי לפי. סוללת חומצת עופרת 1.5A עופרת 1.5A משמשת להנעת המנועים.

הערה: מכיוון שזרם ההספק המרבי של בנק החשמל שהשתמשתי בו היה 1000 Mah באופן מועט, הייתי צריך להשתמש בסוללת חומצת העופרת החיצונית כדי להניע את המנועים. אם יש לך בנק כוח שנותן> = 2000Mah, תוכל להניע ישירות את המנועים ממעקה 5V בפי (אך לא הייתי ממליץ על מנועים רעבי חשמל)

שלושת סעיפי המשנה העיקריים של הפרויקט LeapMotion Javascript API, WebIOPi ו- MJPG-Streamer והעבודה/ההתקנה הבסיסיים שלהם מתוארים בקצרה להלן.

שלב 4: הבנת מסגרת WebIOPi

הקצה הקדמי שמוצג בדפדפן כתוב ב- HTML (שם קובץ: index.html) ו- Javascript ואילו הקצה האחורי שמניע את ה- GPIO כתוב ב- Python (שם קובץ: script.py). הערות מפורטות על יצירת WebApp מותאם אישית המבוססות על מסגרת WebIOPi מצורפות כהערות במאגר Bitbucket.

ניתן להפעיל פקודות מאקרו מותאמות אישית המוגדרות בסקריפט Python מקובץ ה- HTML.

למשל: webiopi (). CallMacro ("go_forward"); זוהי קריאה מותאמת אישית למאקרו go_forward המוגדר בתסריט של פייתון המטפל בתהליך הנעת שני המנועים בכיוון קדימה.

ההיררכיה של הספרייה של המקום שבו הקבצים מאוחסנים ב- Pi מוצגת בתמונה המצורפת.

תיקיית הרובוט מכילה תיקיות משנה אלה:

  • html: המכיל index.html
  • python: המכיל script.py
  • mjpg-streamer-r63: מכיל את קבצי ה- build וההפעלה להפעלה של מצלמת האינטרנט

MJPG-Streamer: זרם הווידאו החי ממצלמת האינטרנט USB פועל כברירת מחדל ביציאה 8080 של ה- Pi. על מנת להציג את הזרם באופן ידני, נווט אל RASPBERRYPI_IP: 8080 בדפדפן לאחר הפעלת מצלמת האינטרנט.

קוד LeapMotion:

קטעי קוד מהדוגמאות המופיעות ב- LeapMotion SDK הוטמעו בקובץ index.html. יש להוסיף את קובץ ה- leap.js של LeapMotion לתיקיית html בספריית הפרויקטים ב- Raspberry Pi.

פרמטר palmPosition שנשלח על ידי LeapMotion משמש לקביעת איזה מאקרו להפעיל ב- Raspberry Pi.

שלב 5: הפעלת הפרויקט

כל שעליך לעשות הוא להפעיל את ה- Raspberry Pi ולהמתין כדקה. תראה הופעה חדשה של RaspberryPi. התחבר לנקודה חמה זו ופתח את כתובת ה- IP הסטטית הזו בדפדפן: 192.168.42.1:8000. 8000 הוא יציאת ברירת המחדל של WebIOPi.

ניתן להגדיר את ה- Raspberry Pi להתחבר לרשת ה- WiFi המקומית כ- clien in clien במקום להופיע כנקודה חמה. לאחר מכן יהיה עליך לקבוע את ה- IP הדינמי שהנתב הקצה ל- Raspberry Pi ולאחר מכן להכות אותו בדפדפן כדי לשחק עם ה- Bot.

תוכל להשאיר הערה אם אתה זקוק לעזרה או אם יש לך שאלות בנוגע לפרויקט. זינוק שמח!

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

מוּמלָץ: