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

ג'ק קפיצה מבוקר קולי- גרסת AIY של Google Voice: 3 שלבים
ג'ק קפיצה מבוקר קולי- גרסת AIY של Google Voice: 3 שלבים

וִידֵאוֹ: ג'ק קפיצה מבוקר קולי- גרסת AIY של Google Voice: 3 שלבים

וִידֵאוֹ: ג'ק קפיצה מבוקר קולי- גרסת AIY של Google Voice: 3 שלבים
וִידֵאוֹ: שון גיטלמן בואי לסרט קליפ Sean Gitelman 2024, נוֹבֶמבֶּר
Anonim
ג'ק קופץ מבוקר קולי- גרסת AIY של Google Voice
ג'ק קופץ מבוקר קולי- גרסת AIY של Google Voice
ג'ק קופץ מבוקר קולי- גרסת AIY של Google Voice
ג'ק קופץ מבוקר קולי- גרסת AIY של Google Voice
ג'ק קופץ מבוקר קולי- גרסת AIY של Google Voice
ג'ק קופץ מבוקר קולי- גרסת AIY של Google Voice
ג'ק קופץ מבוקר קולי- גרסת AIY של Google Voice
ג'ק קופץ מבוקר קולי- גרסת AIY של Google Voice

אז קיבלת את ערכת הקול של AIY לחג המולד ושיחקת איתה בהתאם להוראות. זה מצחיק, אבל עכשיו?

הפרויקט המתואר להלן מציג מכשיר פשוט שניתן לבנות באמצעות ה- AIY HAT הקול של ה- Raspberry Pi. היא משתמשת במערכת זיהוי הקול של גוגל לשליטה על נוריות LED ושני סרוו, המניעה את זרועותיו ורגליו של שקע קופץ על ידי הילוך פשוט מאוד.

התוכנה העובדת ברקע היא שינוי של הסקריפט servo_demo.py, כפי שתואר במדריך ערכת הקול של AIY. פשוט עקוב אחר ההוראות שניתנו שם להגדרת תוכנות קשיחות ותוכנות. המכשיר עצמו קל לבנייה ודורש לא הרבה כישורי עבודת יד. בנוסף, סכין חותך, מקדחה ומגהץ יעזרו.

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

אז עם מעט מאמצים, אתה יכול לבנות רובוט ריקודים, צ'טטים ושירים משלך.

כדי לפשט את השימוש בו במיוחד על ידי ילדים קטנים יותר, וכדי לשפר את גורם ה'קסם ', הכפתור בקופסת AIY הוחלף כטריגר על ידי חיישן קרבה. לשם הפשטות, השתמשתי בפריצת חיישן מרחק דיגיטלי מפולו שמזהה אם אובייקט קרוב יותר מ -5 ס"מ, ויכול לשמש אותו מאוד כמו כפתור. נוריות LED אכן מציינות מתי המכשיר מחכה להזמנות, האזנה או "חשיבה". סרוווס, חיישן ונורות נוריות נשלטים על ידי ספריית התוכנה GPIOZero.

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

תוכל להשתמש בשני צידי הגוף, תלוי אם ברצונך להציג את הציוד הנע או שיהיה לו פריסה נעימה וידידותית לילדים. --------- "המפלמן" הוא המונח הגרמני ל"ג'ק קופץ ", בעל קונוטציות מסוימות.

שלב 1: חומרים בשימוש

חומרים בשימוש
חומרים בשימוש
חומרים בשימוש
חומרים בשימוש

פטל פי 3; 32 פאונד בפימורוני, בריטניה

ערכת קול AIY; 25 פאונד בפימורוני, בריטניה

פריצת חיישן מרחק דיגיטלי של פולולו עם חיישן חד, 5 ס מ; 5.90 € ב- Exp-tec.de

שני סרוו 9 גרם

שני נוריות לבנות ונגד

כמה כותרות וכבלי מגשר

צלחת פורקס בגודל 2 מ"מ, 250 על 500 מ"מ; 1.70 € במודולור, ברלין, גרמניה

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

שישה ברגים ואומים מסוג M2, לתיקון הסרוואות לצלחות וחיבור זרועות וההילוכים של סרוווס.

כמה טיפות דבק פלסטיק

שלב 2: הרכבה ושימוש במכשיר

הרכבה ושימוש במכשיר
הרכבה ושימוש במכשיר
הרכבה ושימוש במכשיר
הרכבה ושימוש במכשיר
הרכבה ושימוש במכשיר
הרכבה ושימוש במכשיר

לגבי ערכת הקול AIY עצמה, פשוט פעל על פי ההוראות בתיאור המצורף לערכה, כולל הפרק אודות סרוו. הייתי ממליץ להלחם כמה כותרות בעלות שלושה פינים ליציאות הסרוו בפריצה הקולית של AIY, כך שתוכל לחבר סרוו, חיישן ולדים בקלות רבה עם ה- HAT.

לגבי שקע הקפיצה, תוכל להשתמש בציורים שסיפקתי כאן כקובצי SVG ו- PDF כתבנית, או פשוט לשנות אותם בהתאם לרעיונות שלך. ייתכן שתרצה לשמור על הפריסה הבסיסית של ההילוך המניע את הרגליים והזרוע של שקע הקפיצה, ולוודא שהמרחק בין נקודת הציר לבין ההילוך זהה בסרוו, בזרוע וברגל.

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

בעזרת הציור, חותכים את החלקים מצלחת מט ח, קרטון או דיקט ומקדחים את החורים במיקומים המתאימים. הדבק את חלקי המרחק לנקודות המסתובבות של הידיים והרגליים, והבטיח יישור טוב של החורים.

תקן את סרווס והחלקים הנעים לצלחת הבסיס. הוסף את חיישן המרחק וה- LED כמצוין. סרוו קבוע עם ברגי M2, כל החלקים הנעים עם ברגי M3. השתמשתי בברגי ניילון M3, אך רק מסיבות אסתטיות.

בדוק אם זרועות הסרוו ממוקמות במצב האמצעי. חבר זרועות סרוו והילוכים, השתמשתי בברגי M2 למטרה זו.

חבר סרוו, נוריות וחיישן המרחק למחברי הסרוו בלוח AIY. ייתכן שתזדקק לכבלי התארכות/מגשר. חיברתי את הסרוו השמאלי ל- "servo0" (GPIO 26) את הסרוו הימני ל- "servo2" (GPIO 13), את נוריות ה- LED ל "servo5" (GPIO 24) ואת החיישן ל- "servo3" (GPIO 5) ב- AIY קול כובע.

העתק את קובץ "Hampelmann.py" המצורף לתיקיית המשנה "src" של AIY והפוך אותו להפעלה ישירה לכל אחד. לשם כך, תוכל לבחור את הקובץ במנהל הקבצים, ולאחר מכן לחץ באמצעות לחצן העכבר הימני ובחר מאפיינים, בחר הרשאות, עבור אל בצע, בחר ~ כל אחד. או כתוב "chmod +x src/Hampelmann.py" במסוף ה- dev.

בדוק אם הכל מוגדר במקומו ומתוקן, או ניתן להזיז אותו במידת הצורך. פתח את שורת הפקודה Dev, הזן "src/Hampelmann.py" והפעל את התוכנית. אם תזיז את היד או האצבעות מול חיישן המרחק, יחידת ה- AIY תבקש הזמנות והנורות מהבהבות. פקודות המיושמות הן "ימין/שמאל/ידיים למעלה/מטה/מרכז", "ריקוד", "הדלקה/כיבוי LED" ו- "להתראות".

לְשַׂחֵק. העבר את ידך מול החיישן, דבר כשנשאל, ותן למכשיר מעט זמן להגיב. האיחור גבוה למדי. Crtl+C או "להתראות" יעצור את התוכנית.

תוכל לשנות את הקובץ באמצעות Nano או עורך טקסט פשוט אחר.

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

שלב 3: סקריפט Python

כפי שצוין קודם לכן, התסריט מבוסס על הסקריפט servo_demo.py מתוך ההנחיות הקוליות של AIY, עם כמה תוספות. הגרסה הראשונה היא קובץ Hampelmann.py שתמצא מצורף. AngularServo מ- GPIOZero מאפשרת להגביל את טווח הפעולות של הסרוו ולהגדיר בדיוק כמה רחוק ינוע.אבל אני מעדיף את הקול הבריטי על הקול המקורי. והמכשיר יכול גם לדבר, אבל לא להבין (?), אנגלית, גרמנית, איטלקית, צרפתית וספרדית. להלן התסריט של Hampelmann2.py, עם הקול הבריטי, וקצת איטלקית וגרמנית. זכור כי עליך להפעיל את הסקריפטים כדי להריץ אותם.

#!/usr/bin/env python3 # סקריפט זה הוא התאמה של הסקריפט servo_demo.py ל- AIY HAT הקול, # מותאם לייבוא ג'ק הקפצה של AIY aiy.audio יבוא aiy.cloudspeech יבוא aiy.voicehat מ- gpiozero LED מ- gpiozero יבוא AngularServo מ- gpiozero ייבוא כפתור מעת עת ייבוא שינה def main (): מזהה = aiy.cloudspeech.get_recognizer () מזהה.קספקט_משפט ('ימינה למעלה') מזהה.קספקט_משפט ('ימינה למטה') מזהה.קספקט_משפט ('ימינה') מרכז ') # האותיות הגדולות נמצאות בכוונה מזהה.התאמה_משפט (' שמאלה למעלה ') מזהה.מחכה_משפט (' שמאלה למטה ') מזהה.התאמה_משפט (' מרכז שמאל ') מזהה.מחכה_ביטוי (' למעלה למעלה ') מזהה.צפוי_משפט ('ידיים למטה') מזהה.התאמה_משפט ('מרכז ידיים').audio.get_recorder (). start () servo0 = AngularServo (26, min_angle = -40, max_angle = 40) # התחבר ראשון או, GPIO 26 servo2 = AngularServo (13, min_angle = -40, max_angle = 40) # מחבר שלישי, GPIO 13 led0 = LED (24) # נוריות מחוברות ל- servo5/GPIO 24 מרחק = לחצן (5) # חיישן מרחק מחובר ל- servo3/GPIO 05 # אחרים: GPIO 6 ב- servo1, 12 ב- servo4 aiy.audio.say ("שלום!",) aiy.audio.say ("כדי להתחיל, העבר את ידך קרוב לחיישן",) בעוד True: led0.on () # נוריות LED בהדפסה ("כדי להפעיל זיהוי קולי, העבר יד ליד חיישן המרחק ולאחר מכן דבר") הדפס ('מילות המפתח הצפויות הן: ידיים/שמאל/ימין למעלה/למטה/מרכז') הדפס ('הדלקה/כיבוי LED, ריקוד ולהתראות.') הדפס () distance.wait_for_press () הדפס ('האזנה …') aiy.audio.say ("נא לתת הזמנות",) led0.blink () # אור מהבהב טקסט = מזהה.זהה () אם הטקסט הוא ללא: aiy.audio.say ('מצטער, לא שמעתי אותך.',) אחר: הדפס ('אמרת "', טקסט, '"') # מאפשר לך בדוק את פרשנות המערכות אם 'ישר למעלה' בטקסט: הדפס ('העברת סרוו 0 למיקום המרבי') servo0.angle = 35 elif 'ימינה למטה' בטקסט: הדפס ('העברת סרוו 0 למיקום המרבי') למיקום מינימלי ') servo0.angle = -35 elif' מרכז ימין 'בטקסט: #כיתובים נכונים הם הדפסה קריטית (' העברת servo0 למיקום האמצעי ') servo0.angle = 0 elif' שמאל למעלה 'בטקסט: הדפס (' הזזת servo2 למיקום המקסימלי ') servo2.angle = -35 elif' שמאלה למטה 'בטקסט: הדפס (' העברת servo2 למיקום מינימלי ') servo2.angle = 35 elif' מרכז שמאל 'בטקסט: הדפס (' העברת סרוו 2 ל מיקום אמצעי ') servo2.angle = 0 elif' hands up 'בטקסט: הדפס (' העברת servo2 למיקום המקסימלי ') servo2.angle = -35 servo0.angle = 35 elif' ידיים למטה 'בטקסט: הדפס (' זז ' servo2 למיקום מינימלי ') servo2.angle = 35 servo0.angle = -35 elif' ידיים מרכז 'בטקסט: הדפס (' העברת servo2 למיקום האמצעי ') servo2.angle = 0 servo0.angle = 0 elif' LED כבוי ' בטקסט: הדפס ('כיבוי LED חיצוני 0') led0.off () elif 'LED דולק' בטקסט: הדפס ('הדלקת LED חיצוני 0') led0.on () # light elif 'dance' בטקסט: הדפס ('עכשיו מבצע ריקוד מספר אחד') aiy.audio.say ("טוב, אני אנסה כמיטב יכולתי!",) led0.on () # נורות דולקות עבור i בטווח (3): servo0.angle = 0 servo2.angle = 0 שינה (1) servo0.angle = 35 servo2.angle = -35 שינה (1) servo0.angle = 0 servo2.angle = -35 שינה (1) servo0.angle = -25 servo2.angle = 0 שינה (1) servo0.angle = 30 servo2.angle = 20 שינה (1) servo0.angle = 0 servo2.angle = 0 led0.off () # light off elif 'להתראות' בטקסט: aiy.audio.say ("להתראות",) aiy.audio.say ('Arrivederci',) aiy.audio.say ('Auf Wiedersehen',) servo0.angle = 0 servo2.angle = 0 led0.off () שינה (3) הדפסה ('ביי!') הפסקה אחרת: הדפס ('לא זוהה שום מילת מפתח!') aiy.audio.say ("מצטער, לא הבנתי אותך",) אם _name_ == ' _ראשי ראשי()

מוּמלָץ: