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

זרוע תותבת בעבודה עם מיוסנסור: 8 שלבים
זרוע תותבת בעבודה עם מיוסנסור: 8 שלבים

וִידֵאוֹ: זרוע תותבת בעבודה עם מיוסנסור: 8 שלבים

וִידֵאוֹ: זרוע תותבת בעבודה עם מיוסנסור: 8 שלבים
וִידֵאוֹ: EMG controlled prosthetic arm - first test 2024, נוֹבֶמבֶּר
Anonim
Image
Image

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

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

שלב 1: חומרים, כלים ומכונות הדרושים

מכונות:

  1. מדפסת תלת מימד
  2. חותך לייזר
  3. מכונת CNC שולחנית

כלים:

  1. חוט דיג
  2. נימה 3 מ"מ
  3. תרגיל
  4. דבק מגע
  5. צבת חור
  6. מולטימטר
  7. תחנת הלחמה
  8. שעווה ניתנת לעיבוד
  9. תבניות סיליקון

חומרים:

  1. גיליון נחושת
  2. 1x ATMEGA328P-AU
  3. 1x 16MHz קריסטל
  4. נגד 10k
  5. 2 קבלים 22pF
  6. קבל 1x10uF
  7. 1x קבל 1uF
  8. קבל 0.1uF
  9. 1x Myosensor
  10. 5x מנועי מיקרו סרוו
  11. 1x ארדואינו UNO

תוֹכנָה:

  1. Arduino IDE
  2. Fusion360
  3. קורה
  4. נשר
  5. GIMP

שלב 2: עיצוב דו מימד ותלת מימד

עיצוב דו מימד ותלת מימד
עיצוב דו מימד ותלת מימד
עיצוב דו מימד ותלת מימד
עיצוב דו מימד ותלת מימד
עיצוב דו מימד ותלת מימד
עיצוב דו מימד ותלת מימד

עיצוב תלת מימד

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

כף היד היא די קשה לעיצוב מכיוון שאצבעות האצבעות צריכות להיות ביניהן שונות. לכן:

אצבעות: הורדתי את האצבעות מפרויקט inmoov.

כַּף הַיָד:

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

אַמָה:

  1. במישורים שונים, יצרתי שני סקיצות והשתמשתי בפקודת האליפסה. השתמשתי בפקודת לופט לאחר כדי ליצור את הצורה הרצויה.
  2. לאחר מכן, נעשה שימוש בפקודת הפגז כדי להפוך אותו לחלול ובפקודה המפוצלת לחתוך אותו לשניים כך שאוכל לתכנן בו ולגבי הנגישות הטובה ביותר כאשר אני מתקין את האלקטרוניקה שלי בפנים.
  3. סקיצה נעשתה גם ליד פרק כף היד, הוחצנה והתחברה עם האמה הראשית כך שתוכל להתחבר לכף היד.
  4. מכיוון שנראה לעצב בתוך האמה, יצרתי סקיצה בממדים של חמשת המנועים שבהם אשתמש, אחד לכל אצבע, וה- PCB שלי (מעגל מודפס) שבו אשתמש. לאחר מכן הרחצתי אותם עד שהגיעו לגובה הרצוי ומחקתי את החלקים המיותרים בחלק האחורי של הצילינדר באמצעות גב אחורי.
  5. לבסוף תוכננו פתחים לברגים, באופן שאינם נראים כל כך בעיצוב הכולל, כך שניתן יהיה לסגור את האמה באמצעות פקודות דומות כמו לעיל.

בסיום העיצוב בחרתי כל גוף והורדתי אותו כקובץ.stl והדפסתי אותו בנפרד בתלת מימד.

עיצוב דו מימד

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

ייצאתי את הסקיצה שלו כקובץ.dxf לאחר שהשתמשתי בחותך הלייזר. לאחר שהייתה לי הצורה הרצויה, קידחתי חורים של 0.8 מ מ בתוך החריץ שמצאתי צורך.

שלב 3: הדפסה תלת מימדית

הדפסה תלת מימדית
הדפסה תלת מימדית
הדפסה תלת מימדית
הדפסה תלת מימדית
הדפסה תלת מימדית
הדפסה תלת מימדית
הדפסה תלת מימדית
הדפסה תלת מימדית

לאחר ייצוא כל קובץ stl, השתמשתי ב- Cura ליצירת ה-.gcode של חלקי האצבעות השונים, כף היד והאמה. ההגדרות המשמשות מאוירות בתמונות למעלה. החומר של החלקים המודפסים בתלת מימד הוא PLA.

שלב 4: דפוס ויציקה

דפוס ויציקה
דפוס ויציקה
דפוס ויציקה
דפוס ויציקה
דפוס ויציקה
דפוס ויציקה

מטרת הליהוק של כף היד היא שלזרוע התותבת תהיה אחיזה חזקה יותר מכיוון ש- PLA יכול להיות חלקלק.

עיצוב תלת מימד

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

תהליך CAM

לאחר שהעיצוב מוכן לטחינה באמצעות מכונת ה- CNC השולחנית, נאלצתי לייצר את ה- gcode לשם כך. במקרה שלי, השתמשתי במכונת CNC של Roland MDX-40!

  1. ראשית, נכנסתי לסביבת ה- CAM של Fusion360.
  2. לאחר מכן, בחרתי "התקנה חדשה" בתפריט ההגדרות.
  3. בחרתי את הפרמטרים הנכונים (ראו תמונות) ולחצתי אישור.
  4. לאחר מכן, תחת תפריט התלת -ממד, בחרתי בסליקה אדפטיבית ובחרתי את הפרמטרים הנכונים לאחר הכנסת הכלי בו השתמשתי כפי שמוצג בתמונות.
  5. לבסוף, בחרתי בסליקה האדפטיבית ולחצתי על תהליך הפוסט. וודאתי שזה מכשיר mdx-40 של roland ולחצתי אישור על מנת לקבל את ה- gcode.
  6. לאחר מכן טחינתי את גוש השעווה לפי העיצוב שלי באמצעות המכונה.

יציקת הסיליקון

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

שלב 5: עיצוב וייצור אלקטרוניקה

עיצוב וייצור אלקטרוניקה
עיצוב וייצור אלקטרוניקה
עיצוב וייצור אלקטרוניקה
עיצוב וייצור אלקטרוניקה
עיצוב וייצור אלקטרוניקה
עיצוב וייצור אלקטרוניקה

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

מכיוון שסאטשאקיט הוא לוח מבוסס ארדואינו DIY, אני יכול לשנות אותו בהתאם לחיפושים שלי אחר חיבורים של החלקים שלי עם הארדואינו. אז, myosensor מתחבר לארדואינו באמצעות סיכת GND אחת, סיכת VCC אחת וסיכה אנלוגית אחת. ואילו מנוע סרוו אחד משתמש בסיכת GND אחת, סיכת VCC אחת וסיכת PWM אחת. אז, הייתי צריך לחשוף בסך הכל שישה סיכות GND ו- VCC תוך התחשבות בהפעלת הלוח, אחד אנלוגי וחמישה סיכות PWM. כמו כן, הייתי צריך לקחת בחשבון את חשיפת הפינים לתכנות הלוח (שהם MISO, MOSI, SCK, RST, VCC ו- GND).

הצעדים שעשיתי היו:

  1. ראשית, הורדתי את קבצי הנשר של המיקרו-סאטשאקיט.
  2. לאחר מכן, שיניתי את המיקרו-סאטשאקיט בהתאם לצרכי באמצעות Eagle. ניתן למצוא כאן וכאן מדריך כיצד להשתמש ב- Eagle.
  3. לאחר השתרשות הלוח שלי, ייצאתי אותו כקובץ-p.webp" />

לאחר שיש לי את הנתיבים הפנימיים והחיצוניים של הלוח שלי כ- png, הגיע הזמן ליצור את ה- gcode של אותם בכדי להיות מסוגל לטחון אותו במכונת ה- cnc השולחנית roland mdx-40. לדור ה-.gcode השתמשתי במודולים fab. ההגדרות שצריכות להיות מוגדרות במודולים fab ותמצאו כאן.

לבסוף, הלחמתי את כל מה שהייתי צריך בהתאם ללוח הנשר שלי. ניתן למצוא את התמונה של הלוח הסכימטי והלוח מול.

הסיבה לייצור לוח PCB משלי במקום להשתמש ב- UNO של Arduino היא המקום שאני חוסך כשאני משתמש בלוח משלי.

שלב 6: הרכבה

הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה
הַרכָּבָה

אז, לאחר שהודפסו האצבעות:

  1. הייתי צריך לקדוח את החורים הפנימיים בעזרת מקדחה בקוטר 3.5 מ"מ ואת החורים החיצוניים עם מקדחה בקוטר 3 מ"מ. חורים פנימיים כלומר החלק שכאשר החלקים מחוברים זה מהחור הפנימי והחיצוני, החלק שכאשר הוא מחובר הוא מבחוץ.
  2. אחרי זה הייתי צריך להדביק על לראשונה עם האצבע השנייה והשלישי עם האחת הרביעית.
  3. לאחר מכן, חיברתי את החלקים 1+2 עם 3+4 עם 5 דרך החורים הקטנים באמצעות נימה בקוטר 3 מ"מ.
  4. לבסוף, האצבעות היו מוכנות להרכבה עם כף היד ולאחר מכן עם האמה.

אז הגיע הזמן להעביר את חוט הדייג באצבעות.

קו אחד עבר מהצד האחורי של האצבע דרך הצינור שעל מחבר כף היד לאצבע ועד האמה והקו השני עבר מהצד הקדמי של האצבע אל החור בחלק הפנימי של כף היד ולאמה

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

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

שלב 7: תכנות

תִכנוּת
תִכנוּת

לפני כתיבת התוכנית, הייתי צריך להפוך את המיקרו- satshakit המתוכנן להיות מתוכנת. לשם כך, הייתי צריך לבצע את השלבים הבאים:

  1. חבר את ה- Arduino Uno למחשב האישי.
  2. בחר את היציאה הנכונה ואת לוח Arduino Uno תחת כלים.
  3. תחת> קובץ> דוגמאות, מצא ופתח סקיצה "ArduinoISP".
  4. העלה את המערכון לארדואינו.
  5. נתק את ה- Arduino מהמחשב.
  6. חבר את הלוח עם הארדואינו לפי הסכימה שבתמונה.
  7. חבר את הארדואינו למחשב האישי.
  8. בחר בלוח "Arduino/Genuino Uno" ובתכנת "Arduino as ISP".
  9. לחץ על> כלים> צריבת אתחול.
  10. לאחר ביצוע מטען האתחול בהצלחה, נוכל לכתוב את התוכנית שלנו:

// כולל הספרייה שבה השתמשתי עבור מנועי הסרוו

#include #include SoftwareSerial mySerial (7, 8); #define MYO_PIN A0 int sensorValue; מתח צף; // למנות שם ל servo שלי VarSpeedServo servo1; VarSpeedServo servo2; VarSpeedServo servo3; VarSpeedServo servo4; VarSpeedServo servo5; #define PINKY 5 #define PINKY_PIN 10 #define RINGFINGER 4 #define RINGFINGER_PIN 9 #define MIDDLE 3 #define MIDDLE_PIN 3 #define INDEX 2 #define INDEX_PIN 5 #define THUMB 1 #define THUMB_); // הסיכה שחיברתי את servo1.attach המנוע שלי (THUMB_PIN); servo2.attach (INDEX_PIN); servo3.attach (MIDDLE_PIN); servo4.attach (RINGFINGER_PIN); servo5.attach (PINKY_PIN); defaultPosition (THUMB, 40); defaultPosition (INDEX, 40); defaultPosition (MIDDLE, 40); defaultPosition (RINGFINGER, 40); defaultPosition (PINKY, 40); mySerial.begin (9600); mySerial.print ("אתחול …"); } לולאת חלל () {sensorValue = analogRead (A0); מתח = חיישן ערך * (5.0 / 1023.0); mySerial.println (מתח); עיכוב (100); if (מתח> 1) {closePosition (PINKY, 60); closePosition (RINGFINGER, 60); closePosition (MIDDLE, 60); closePosition (INDEX, 60); closePosition (THUMB, 60); } else {openPosition (PINKY, 60); openPosition (RINGFIGER, 60); openPosition (MIDDLE, 60); openPosition (INDEX, 60); openPosition (THUMB, 60); }} void defaultPosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (90, _speed, true); אחרת אם (אצבע == RINGFINGER) servo4.write (70, _ speed, true); אחרת אם (אצבע == MIDDLE) servo3.write (20, _ speed, true); אחרת אם (אצבע == INDEX) servo2.write (20, _ speed, true); אחרת אם (אצבע == THUMB) servo1.write (20, _ speed, true); } void closePosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (180, _speed, true); אחרת אם (אצבע == RINGFINGER) servo4.write (180, _ speed, true); אחרת אם (אצבע == MIDDLE) servo3.write (180, _ speed, true); אחרת אם (אצבע == INDEX) servo2.write (180, _ speed, true); אחרת אם (אצבע == THUMB) servo1.attach (180, _ speed, true); } void openPosition (uint8_t finger, uint8_t _speed) {if (finger == PINKY) servo5.write (0, _speed, true); אחרת אם (אצבע == RINGFINGER) servo4.write (0, _ speed, true); אחרת אם (אצבע == MIDDLE) servo3.write (0, _ speed, true); אחרת אם (אצבע == INDEX) servo2.write (0, _ speed, true); אחרת אם (אצבע == THUMB) servo1.write (0, _ speed, true); } // לאחר כתיבת התוכנית אנו מעלים אותה ללוח על ידי> סקיצה> העלאה באמצעות מתכנת // כעת תוכל לנתק את המיקרו סאצאקיט שלך מהארדואינו ולהפעיל אותו דרך בנק הכוח // וואלה !! יש לך זרוע תותבת

מוּמלָץ: