תוכן עניינים:
- שלב 1: שימוש בתיבת המוח
- שלב 2: מבוא: ניתוח חתכים רוחביים
- שלב 3: הגדרת פונקציה: LevelCurveTracings.m
- שלב 4: פיתוח האלגוריתם הכבול: מציאת גבולות
- שלב 5: פיתוח האלגוריתם הקשור: יצירת מערך חיצוני חיצוני
- שלב 6: פיתוח האלגוריתם הכבול: עבודה עם נקודת מרכז
- שלב 7: פיתוח האלגוריתם הכבול: כאשר Centroid אינו מרוכז
- שלב 8: פיתוח האלגוריתם הכבול: הפרעה של חורים
- שלב 9: פיתוח האלגוריתם הכבול: איתור חורים, סיום גבולות המוח וגבולות חורים
- שלב 10: נתוני רישום: פונקציה PatientFiles.m
- שלב 11: רישום נתונים לקבצים
- שלב 12: נתוני רישום: הצגת חלקה של נפח המוח לאורך זמן
- שלב 13: סגירת פערים בחלקות משנה: תת חלקה מ
- שלב 14: הקוד הראשי: ניקוי הכל ותשובה לתשומות
- שלב 15: הקוד הראשי: עיבוד אצווה של התמונות
- שלב 16: הקוד הראשי: ריפוד
- שלב 17: הקוד הראשי: קביעת גבולות
- שלב 18: הקוד הראשי: קביעת ממד Z הנכון
- שלב 19: הקוד הראשי: קביעת קואורדינטות X ו- Y
- שלב 20: הקוד הראשי: תכנון מבנה תלת ממדי, מציאת נפח ונתוני רישום
וִידֵאוֹ: תיבת המוח: מעקב אחר נפח עצבי לאורך זמן: 20 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-31 10:19
ההתקדמות לגבול חיי אדם ארוכים יותר הביאה את עליית המחלות שלא ראו הציביליזציות לפנינו. בין אלה, אלצהיימר פגע בכ -5.3 מיליון אמריקאים קשישים חיים בשנת 2017, או בערך אחד מכל עשרה קשישים אמריקאים (https://www.alz.org/facts/) ואינספור אחרים עם דמנציה. כדי לסייע במאבק להבין מה פוגע בזקנינו, קוד זה יצייד את החוקרים העתידיים והסקרן להוטים ביכולת לעקוב אחר נפח המוח לאורך זמן.
שלב 1: שימוש בתיבת המוח
כדי להשתמש בקופסת המוח, צריך רק את הדברים הבאים:
- סריקות MRI של מוח והשם והפורמט של קבצים כאלה (כולם צריכים להיות בעלי אותם מידות בערך)
- אורך סריקה אחת
- מרחק בין כל שכבה (סריקת MRI)
- שם המטופל (בעת הקלדה, אל תכלול רווחים, אנא השתמש באותיות רישיות ושם משפחה, כגון: FirstnameLastname)
ומכאן, יש לאדם לעקוב אחר מגמות של אנשים בנפח המוח לאורך זמן. לפיכך, ניתן לעקוב אחר נתוני מגמות האלצהיימר באמצעות תוכנה זו. האורך בו השתמשנו בניסוי היה 180 מ"מ באורך סריקה אחת ו -5 מ"מ למרחק בין סריקות MRI, בהתבסס על נתונים ממוצעים.
עם זאת, היישום של קופסת המוח לא צריך להיות מוגבל למשימה אחת זו. אם חתכי הרוחב של מוצק נתון הם תצלום, כמו גידול כשלעצמו, ניתן לעקוב גם אחר מגמות השינויים בנפח עבור אלה בתוכנה.
שלב 2: מבוא: ניתוח חתכים רוחביים
במבנים תלת מימדיים, המישורים הדו ממדיים שמהם מורכבים ייקראו חתכים. תארו לעצמכם שערימת ניירות מהווה מנסרה מלבנית, ואז כל פיסת נייר תהיה חתך רוחב של הנייר. בדמיון המוח אנו מיישמים את אותה דרך המחשבה. MRI (הדמיית תהודה מגנטית) (ראה מידע על MRI) לוכדת את חתכי המוח, ומתוך שימוש בגבולות המוגדרים בכל "שכבה" של המוח המסופק, אנו יכולים לבנות מבנה שידגם וימצא את נפח המוח. עלינו קודם כל לבנות פונקציה לספק מידע על גבולות כאלה.
שלב 3: הגדרת פונקציה: LevelCurveTracings.m
ראשית, וודא שהמחשב שלך הורד את MATLAB_R2017b (הורד כאן) ופתח את MATLAB. בממשק MATLAB, לחץ על הלחצן בפינה השמאלית העליונה של החלון שבו כתוב "חדש" עם סימן פלוס צהוב מודגש, ובחר באפשרות "פונקציה", כדי לפתוח בחלון העורך רווח הדומה לזה שב- תמונה שלישית. נתמקד בשינוי השורה הראשונה להתקנת הפונקציה. במקום בו כתוב "outputArg1", החלף אותו ב- "brain", "outputArg2" כדי לומר "חורים", "ללא כותרת 2" עד "exp2" ו- "inputArg1" ל- "image", ומחק "inputArg2". כעת יש לך פונקציה להיקרא באמצעות "exp2", תוך לקיחת טיעון אחד "תמונה" והוצאת גבולות "המוח" וה"חור ". השורה הראשונה של הפונקציה צריכה להיות דומה לקו המתואר בתמונה הרביעית. מחק את כל הקוד מתחת לשורה ראשונית זו.
שלב 4: פיתוח האלגוריתם הכבול: מציאת גבולות
הקלד את הקוד כדלקמן מתחת לשורה. קטע זה של הפונקציה מבצע את השורה-אחר-שורה הבאה.
- טען בתמונה "תמונה" לתוך המשתנה "mri".
- הפוך את "mri" לתמונה העשויה מערכים בטווח מספרים לאפסים ולאפסים (aka binarizing) בהתבסס על ערך סף מוגדר. אם הערך בפיקסל שווה או גדול מ- 0.1, הוא נקבע לאחד, אם לא, הערך בפיקסל זה מוגדר לאפס.
- ארבע השורות הבאות הופכות 10 עמודות ושורות בשולי שכבת סריקת ה- MRI לאפסים, כדי להימנע מקריאת ערכים לא תקינים כגבולות (כפי שנלמדו מהתנסות בקוד).
- בשורה הסופית, bwboundaries עוקב אחר גבולות התמונה binarized "mri" ומגדיר אותה שווה ל- "b", מערך עם האלמנטים שמדדיהם תואמים את אלה של הגבולות המוגדרים לאחד.
שלב 5: פיתוח האלגוריתם הקשור: יצירת מערך חיצוני חיצוני
עקוב אחר חלון העורך עם הקוד הבא בתמונה. חלק זה של הקוד מבצע את השורה-אחר-שורה הבאה.
- מצא את האורך של כל אחת משורות השורות של התמונה binarized "b" (cellfun מחיל את אורך הפונקציה על כל שורה).
- הגדר "loc" לאחסון האורך המרבי.
- מצא את האינדקס של האורך המרבי, הגדר לאחסן ב- "LargestTrace".
- מצא את גודל התמונה "mri", המורכבת מאותו גודל כמו "b", והגדר את "BWsize".
- מצא את מספר השורות במערך התמונה, הגדר "ysize".
- מצא את מספר העמודות במערך התמונה, הגדר "xsize".
- צור מערך "largeTraceMat", מטריצת "ysize" לפי "xsize" של אפסים.
- מצא את האינדקס המקביל מהערכים המנויים המתאימים למקום בו היו ערכי ה- Trace x והערכים y, אחסן אותו בווקטור "לינדקס".
- במטריצת האפסים, "LargestTraceMat", הפכו את האלמנטים במדדים התואמים לערכי אינדקס המאוחסנים כאלמנטים ב"לינדקס "לאלו.
לפיכך המערך הלוגי "LargestTraceMat" כולל את האזור המוגבל הגדול ביותר של חתך סריקת המוח הנתון המתווה כאלו עם רקע של אפסים
שלב 6: פיתוח האלגוריתם הכבול: עבודה עם נקודת מרכז
לאחר מכן, עלינו לבדוק אם החתך מורכב מיותר מאזור אחד (הגדול ביותר). על ידי בדיקת היישור של צנטרואיד האזור הגדול ביותר, אנו יכולים לראות אם יש אזור אחד צמוד, שיניב צנטרואיד מרוכז יותר, או אפשרות של אזורים מרובים.
- השתמש ב "regionProps" כדי למצוא מידע על הצנטרואידים הקיימים, שווים למערך המבנה "tempStruct"
- מערך טופס "צנטרואידים" עם נתונים מהשדה "צנטרואיד" משולבים אנכית
- קח את ערכי העמודה השנייה של "צנטרואידים" (קואורדינטות הממד האופקי)
- הפעל מסנן כדי לבדוק את היישור של הצנטרואיד למרכז האופקי
שלב 7: פיתוח האלגוריתם הכבול: כאשר Centroid אינו מרוכז
בתרחיש שהמרכז של אזור העקבות הגדול ביותר אינו מרוכז, אנו עוברים את השלבים הבאים. כפי שראינו בסריקות ה- MRI, הנטייה הייתה להצטייר בחצאי המוח בחתך כשהוא לא רציף, ולכן אנו ממשיכים כעת לשרטט את העקוב השני בגודלו יחד עם העקוב הגדול ביותר ב- "LargestTraceMat"
- הגדר את המטריצה המתוארת למשתנה חדש "b2"
- אתחל את המטריצה הריקה "b2", עם קבוצה שנוספה לאינדקס לפי "loc"
- צור מותנה, כאשר צנטרואיד אינו מרוכז (כלומר שכבת אזור מרובה)
- הגדר גודל עקבות חדש שיימצא לכל שורה (traceSize2)
- הגדר "loc2" כדי למצוא את המדדים שבהם קיימים גבולות
- תן לתאים שצוין על ידי "loc2" ב- "b2" להיות שווים ל- "largeTrace2"
- המר את כתבי המשנה למדדים, הגדר "לינדקס"
- שנה את האלמנטים המתאימים ל- "lindex" ב- "LargestTraceMat" ל -1
- אתחל את המטריצה הריקה "b2", עם קבוצה שנוספה לאינדקס לפי "loc2"
שלב 8: פיתוח האלגוריתם הכבול: הפרעה של חורים
בהתמודדות עם חורים, הערכים המאוחסנים ב- "b2" עקבו אחר מבנים אחרים מלבד העקוב הגדול ביותר, ושרטוטם על צורה מלאה של "LargestTraceMat" יחשוף היכן ישנם חורים באזורי המוח.
- צור מערך "filledMat", שהוא מילוי בצורה של "LargestTraceMat"
- צור מערך "interferenceMat", מערך "ysize" לפי "xsize" של אפסים
- צור מערך "interferenceloc", כדי לאחסן את הערכים מ- "b2", המחוברים אנכית
- צור מערך "לינדקס" לאחסון המדדים התואמים "interferenceloc"
- עבור מדדים ב- "interferenceMat" התואמים ל- "lindex", הגדר ערך ל- 1, מה שהופך אזור שונה לתחום
שלב 9: פיתוח האלגוריתם הכבול: איתור חורים, סיום גבולות המוח וגבולות חורים
- הגדר מערך "tempMat" שווה ל- "interferenceMat" פלוס "filledMat", ובכך הוסף כל ערך במטריצה זה לזה.
- הגדר מערך "holesLoc" שווה למדדים שבהם "interferenceMat" ו- "filledMat" שניהם היו שווים לאחד
- הגדר את "holeMat" כמטריצת אפס של ממדים "גודל" x "גודל"
- הגדר מדדים ב- "holesMat" השווים ל- "holesLoc" כאחד
- הגדר את "המוח" ל- "LargestTraceMat"
- הגדר "חורים" ל "חורים מאט"
עם הממצא שבו ערכי המטריצות הנוספות היו שוות ל -2, מיקומי החורים היו מאובטחים בקלות ומתווים על מטריצה ריקה.
שלב 10: נתוני רישום: פונקציה PatientFiles.m
בדומה להתקנת הפונקציה האחרונה, לחץ על הלחצן בפינה השמאלית העליונה של החלון בו כתוב "חדש" עם סימן פלוס צהוב מודגש ובחר באפשרות "פונקציה", כדי לפתוח בחלון העורך רווח דומה לזה שבתמונה השלישית. בשורה הראשונה, מחק את מטריצת הפלט והחלף ב"פלט "בלבד, החלף" ללא כותרת "ב-" patientFiles ", מחק את כל ארגומנטים הקלט ובצע במקום זאת את העיצוב שצוין בתמונה הרביעית של שורת הקוד. השורה הראשונה של פונקציה זו צריכה להתאים לעיצוב התמונה.
שלב 11: רישום נתונים לקבצים
כדי להגדיר קובץ לרישום הנתונים שנמצאו על ידי הפונקציה הראשית (שעוד לא יתואר), עלינו לבצע את השלבים הבאים (כפי שנקבע על ידי הקוד שורה אחר שורה).
- בדוק אם הקלט עבור patientname הוא מחרוזת.
- אם זו אינה מחרוזת, הצג כי קלט שם המטופל צריך להיות מחרוזת.
- סיים את המשפט if (למנוע שגיאה).
- הגדר משפט מחרוזת "DateandTime" שייתן את הפורמט הבא: שעה: דקות-חודש/יום/שנה.
- הגדר את שם הקובץ המשתנה לכתובת הבאה: patientname.m.
עכשיו לסעיף הבא של הפונקציה: האם קיים קובץ בשם זה כבר?
1) נניח שהקובץ בשם זה כבר קיים:
- הפעל את הקובץ כדי לקבל את הערכים מהעבר בתור
- הוסף את נתוני "DateandTime" של האיטרציה הנוכחית כתא חדש במערך התא של ערכי x (סוף אינדקס+1)
- הוסף את ערך "brainVolume" הנוכחי כתא חדש במערך התא של ערכי y (סוף אינדקס+1)
- שמור את המשתנים הנוכחיים הטעונים בקובץ.
2) נניח שהקובץ בשם זה אינו קיים:
- צור קובץ חדש עם השם המאוחסן במשתנה "patientname"
- הוסף את נתוני "DateandTime" הנוכחיים כתא למערך התאים הריק של ערכי x
- הוסף את נתוני "brainVolume" הנוכחיים כתא למערך התאים הריק של ערכי y
- שמור את המשתנים הנוכחיים הטעונים בקובץ.
שלב 12: נתוני רישום: הצגת חלקה של נפח המוח לאורך זמן
- המר את מערך ערכי x (xVals) למערך קטגורי (xValsCategorical), כדי לאפשר תכנון
- צור חלון דמות 5
- משרטט את הנקודות המיועדות על ידי "xValsCategorical" ו- "yVals" (המכיל נפח מוח), בעזרת עיגולים חלולים לציון נקודות ולהתחבר בקווים מקווקים.
- כותרת העלילה כ: patientName נתוני נפח המוח
- סמן את ציר ה- x כפי שמוצג בתמונה
- סמן את ציר ה- y כפי שמוצג בתמונה
- תנו לדמות 5 שווה לפלט
מכאן שהפונקציה patientName הנקראת תניב קובץ עם נתונים ערוכים העוקבים אחר נפח המוח לאורך זמן ועלילה המציגה מגמות.
שלב 13: סגירת פערים בחלקות משנה: תת חלקה מ
הפונקציה, המותאמת מהקוד מ- https://www.briandalessandro.com, מתפקדת כדי לסגור את הפערים בין דמויות העלילה של הקוד הראשי, כאשר הדמויות המציגות את תמונות ה- MRI ושכבות המוח נוצרות. פונקציית החלקה המשמשת בתוך subplotclose.m מתאימה את המיקום של חלקות המשנה הנתונות כך שיתאימו זו לזו בהיבט של הממד הארוך יותר. לדוגמה, אם הקוד מתכוון למטריצה של 7 x 3, השורות יתאימו צמודות מכיוון שממד השורה ארוך יותר. אם הקוד מתכוון למטריצה של 3 x 7, העמודות יתאימו צמודות, עם פערים בשורות, כפי שמוצג בדמויות הקוד הראשי שלנו.
שלב 14: הקוד הראשי: ניקוי הכל ותשובה לתשומות
כדי להפעיל את הקוד הראשי, לחץ על אותו כפתור שאומר "חדש" בפינה השמאלית העליונה של החלון ובחר "סקריפט" במקום "פונקציה" מהקטעים הקודמים. הקלד את הקוד כפי שמוצג בתמונה בתוך חלון העורך. שורות הקוד מבצעות את המשימות הבאות לפי הסדר:
- סגור את כל הקבצים הפתוחים למעט 0, 1 ו -2.
- סגור את כל חלונות הדמויות.
- נקה את כל המשתנים בסביבת העבודה.
- נקה את חלון הפקודה.
- הצג בחלון הפקודה: אנא הזן את הממדים הבאים עבור סריקות MRI:
- בשורה חדשה בחלון הפקודה, שאל: אורך סריקה אחת במילימטרים:. התגובה שהעלה המשתמש תוגדר למשתנה "lengthMM".
- בקו חדש, שאל: מרחק בין סריקות MRI במילימטרים:. התגובה שהעלה המשתמש תוגדר למשתנה "ZStacks".
שלב 15: הקוד הראשי: עיבוד אצווה של התמונות
בחלק זה, הקוד יטען את התמונות (המורכבות מסריקות MRI של חתכי המוח) ויאחסן את שמות כל קובץ תמונה במשתנה "Base" ויציג כל אחת מסריקות ה- MRI. אנא עקוב אחר הקוד שבתמונה, שעושה את הפעולות הבאות:
- צור מערך מבנה "BrainImages" המכיל מידע על כל הקבצים בתוך התיקייה הנוכחית המתאימים לפורמט השם של MRI _ (). Png
- הגדר משתנה "NumberofImages" השווה למספר האלמנטים במערך המבנה "BrainImages"
- חלון דמות פתוח 1
- הגדר לולאת for כדי לעבור בין מספר התמונות שנספרו בקובץ
- עבור כל לולאה, "CurrentImage" הוא השם המתאים של כל קובץ MRI_i.png, כאשר מספר האיטרציה הוא 'i'
- צור את עלילת המשנה בגודל 3 x 7 להצגת 19 התמונות להטענה על ידי "imshow"
- הצג כל תמונה כרכיב נוסף בחלון דמות עלילת המשנה
- כותרת כל רכיב תת חלק כרמה_, כאשר ריק הוא מספר האיטרציה של לולאת ה- for.
- סיים את לולאת ה- for (הימנעות משגיאה)
זה יציג בחלון האיור 1 את כל סריקות ה- MRI בצורה גולמית בתצורת 3 x 7 ללא פערים בכיוון x.
שלב 16: הקוד הראשי: ריפוד
בעזרת ריפוד, אנו נמנעים מבעיות של אי התאמות קלות בגדלי התמונה שעשויות להניב שגיאות על אי התאמה בממדים במקרה שתמונה אחת מעט גדולה יותר מתמונה אחרת.
- חלון דמות פתוח 2
- טען את מטריצת התמונה מ- MRI_1-p.webp" />
- מצא את גודל המטריצה של התמונה והגדר את "OriginalXPixels" (למספר שורות) ו- "OriginalYPixels" (למספר העמודות)
- הגדר את המטריצה "BrainMat" שתכלול את כל האפסים עם 20 שורות נוספות ו -20 עמודות נוספות לכל מטוס, ו -19 חתכים רוחביים, אחד לכל מטוס.
- הגדר את "HolesMat" כך שיורכב מאותו מערך תלת מימדי של אפסים לקואורדינטות חורי קלט מאוחר יותר
- צור "zeroMat" בגודל של כרית בתוספת עשרים שורות ועשרים עמודות, מערך דו -ממדי של אפסים.
שלב 17: הקוד הראשי: קביעת גבולות
- הגדר לולאת for לעבור את הנתונים מכל תמונה שהועלתה קודם לכן
- באותו אופן עיבוד אצווה קודם לכן, "CurrentImage" טוען קבצים עם "MRI_i.png", כאשר i הוא מספר האיטרציה
- הפעל כל תמונה באמצעות פונקציית העיבוד "LevelCurveTracings2.m" שביצעת קודם לכן
- מצא את גודל הפלט "מוח", הגדר את מספר השורות ל- "Currentrow" ואת מספר העמודות ל- "Current columns"
- הגדר את "CurrentMat" למטריצה של אפסים עם הממדים שצוין על ידי "Currentrow" ו- "Current columns"
- מרכז את הנתונים מ- "Brain" ב- "CurrentMat", עם שוליים של 10 שורות מכל הצדדים
- צור עלילת משנה במידות 3 x 7, להצגת גבולות התמונות
- כותרת כל אחד מרכיבי עלילת המשנה בחלון הדמות
- צור מטריצה תלת ממדית "BrainMat" המורכבת מכל שכבת גבולות "CurrentMat"
- סיים את לולאת ה- for (למניעת שגיאות)
תת הסעיף הבא ממלא את החורים שנותרו בחלק העליון והתחתון של הצורה התלת ממדית המוצעת
- הגדר את "LevelCurve1" שווה לשכבה הראשונה של "BrainMat" (תחתית מוצק)
- הגדר את "LevelCurveEnd" שווה לשכבה האחרונה של "BrainMat" (החלק העליון של מוצק)
- החלף את "LevelCurve1" בשכבה מלאה
- החלף את "LevelCurveEnd" בשכבה מלאה
- הגדר את השכבה המלאה כשכבה התחתונה של "BrainMat"
- הגדר את השכבה המלאה כשכבה העליונה של "BrainMat"
שלב 18: הקוד הראשי: קביעת ממד Z הנכון
שלוש השורות הראשונות מורכבות מהקמת מערך ריק "z", וביצוע פעולות המרה פשוטות (חלוקת פיקסלים באורך) בכדי לקבל קריאה נכונה של עוצמת הקול ב- mm^3
- צור לולאת for כדי לעבור בין כל שכבה
- מצא את מספר האחד בשכבה נתונה
- המר את קואורדינטות z לאלה לערכים המוקדמים ליחס הנכון, מוגדרים ל- "tempz", וקטור עמודה.
- הוסף ערך z עבור עקומת הרמה לווקטור z
עם זה קואורדינטות z מותאמות כראוי.
שלב 19: הקוד הראשי: קביעת קואורדינטות X ו- Y
עכשיו לקבוע את מיקומי x ו- y של כל אחת מהנקודות בגבולות.
- אתחל את "xBrain" כמערך ריק
- אתחול "yBrain" כמערך ריק
- הגדר לולאה עבור לולאה בכל תמונה נטענת
- ערוך מטריצת שתי עמודות לאחסון הקואורדינטות המישוריות של כל נקודה במגבלה, המיוצגות על ידי וקטורי העמודה "RowBrain" ו- "ColumnBrain"
- הוסף "xBrain" עם קואורדינטות "RowBrain" שנמצאות כעת
- הוסף את "yBrain" עם הקואורדינטות "ColumnBrain" שנמצאות כעת
- סיים את הלולאה for (למניעת שגיאות)
שלב 20: הקוד הראשי: תכנון מבנה תלת ממדי, מציאת נפח ונתוני רישום
בעזרת הפונקציה alphaShape ניצור מבנה תלת מימדי שממנו נוכל לחשב את נפח המוח.
- השתמש בפונקציה alphaShape, חבר את הווקטורים "xBrain", "yBrain" ו- "z" עבור קואורדינטות x, y ו- z והגדר אותו שווה ל- "BrainPolyhedron"
- חלון דמות פתוח 3
- משרטטים את צורת האלפא המחושבת "BrainPolyhedron", מוצגים בחלון הדמות
- חשב את עוצמת הקול של צורת האלפא, תוך שימוש בפונקציה "נפח" המתאימה לצורות אלפא
- המר את עוצמת הקול ל- mm^3
- הדפס את אמצעי האחסון של חומר מוצק בחלון הפקודה
- בקש להגדיר שם למטופל כקלט
- קבל את התאריך והשעה הנוכחיים עם השעון והגדר את "DateandTime"
- קראו לפונקציית "patientFiles" כדי לרשום ולשרטט את הנתונים המחושבים
מכאן התמונה השנייה והשלישית אמורה להראות את הדמויות המופיעות, ואת התמונה הרביעית שצריכה להיות מוצגת בחלון הפקודה.
מוּמלָץ:
כיצד לבנות מעקב אחר זמן ישיבה: 7 שלבים
כיצד לבנות מעקב אחר זמן ישיבה: פרויקט זה ישתמש בחיישן המרחק האולטראסוני של Zio Qwiic כדי לאתר ולעקוב אחר אדם. המכשיר יוצב אסטרטגית על גבי מסך/צג מול האדם היושב, מול המחשב שלו/הפרויקט
ערכות רכב חכמות למעקב אחר חכמות DIY מעקב אחר רגישות לרכב: 7 שלבים
ערכות רכב חכמות למעקב אחר רובוט חכם עוקבות אחר מכוניות רגישות: עיצוב על ידי SINONING ROBOT אתה יכול לקנות ממכונית רובוט מעקב Theory LM393 שבב להשוות את שני הפוטורזיסטור, כאשר יש צד פוטוסיסטור צד אחד על לבן הצד של המנוע ייעצר מייד, הצד השני של המנוע להסתובב כך ש
קוביית זמן - גאדג'ט מעקב אחר זמן Arduino: 6 שלבים
קוביית זמן - גאדג'ט מעקב אחר זמן Arduino: ברצוני להציע לך פרויקט ארדואינו פשוט אך שימושי למעקב אחר אירועי זמן על ידי הפניית גאדג'ט חכם לקוביות. הפוך אותו ל " עבודה " > " למד " > " מטלות " > " מנוחה " בצד וזה יחשב את
בוט מעקב אחר שלדה מעקב מרחוק: 7 שלבים (עם תמונות)
בוט מעקב אחר שלדה מחוסרת מרחוק: מבוא: אז זה היה פרוייקט שרציתי להתחיל ולסיים עוד בשנת 2016, אולם בשל עבודות ושפע של דברים אחרים הצלחתי רק להתחיל ולהשלים את הפרויקט הזה בשנת 2016 שנה חדשה 2018! זה לקח בערך 3 שעות
סופר נייד, רם במיוחד, עמיד לאורך זמן, רמקולים המופעלים באמצעות סוללה: 9 שלבים (עם תמונות)
סופר נייד, סופר רועש, עמיד לאורך זמן, רמקולים המופעלים על ידי סוללות: תמיד רציתי לקבל מערכת רמקולים עוצמתית למסיבות גן/שיחות שטח בשטח. רבים יגידו שמדובר בהוראה מיותרת, מכיוון שיש הרבה מכשירי רדיו בסגנון בומבוקס מימים עברו זמינים בזול, או אלה mp3 זולים בסגנון ipod