PracticU

Device Inclination

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › Device Inclination
מילון מושגים:
תנאי - ביטוי לוגי בקוד שתוצאתו אמת או שקר, וקובע אילו פקודות יתבצעו בהתאם לערכו.
לייאאוט - ארגון וסידור הרכיבים החזותיים על המסך או בדף, כמו מיקום כפתורים, טקסט ותמונות.
Android - מערכת הפעלה מבוססת Linux לטלפונים ולמכשירים ניידים, שפותחה על ידי גוגל.

Device Inclination
בעזרת ערכי x, y ו-z של ה-Accelerometer אפשר לחשב באיזו זווית המכשיר מוטה ביחס למצב שטוח. במקום להציג Toast עם הערכים הגולמיים, מחשבים מהם זווית.
השלבים העיקריים
1. חישוב הנורמליזציה: gravityNormalization הוא השורש של x בריבוע ועוד y בריבוע ועוד z בריבוע. אחר כך normalizedZ הוא z מחולק בו. המרצה מציין שזו נוסחה מהמתמטיקה שהוא חיפש בגוגל, ולא משהו שכל אחד יודע להמציא.
2. הזווית: inclination מחושבת כ-arc cosine של normalizedZ, מומרת למעלות (toDegrees) ומעוגלת למספר שלם.
3. התנאי: הזווית נעה בין 0 ל-180 (בתחום חיובי או שלילי). אם היא קטנה מ-10 או גדולה מ-170, המכשיר שטוח ומציגים "Device is flat" והזווית, ואחרת "Device isn't flat" והזווית.
4. צבע רקע: מאתרים את ה-layout הראשי עם findViewById(android.R.id.content), וקובעים עם setBackgroundColor צבע ירוק כשהמכשיר שטוח ואדום כשהוא מוטה.
בדיקה
על שולחן, המכשיר נחשב שטוח והרקע ירוק. כשמטים אותו בציר x או y, כשהזווית עוברת 10, הרקע הופך לאדום וההודעה מתחלפת. השולחן של המרצה לא מפולס לגמרי, ולכן הערכים לא היו מדויקים לגמרי.
כך אפשר לבנות לוגיקה על תזוזת המכשיר, כמו משחק שמגיב להטיה.
השיעור הבא בקורס: Device Shake

פרקי ההרצאה: Device Inclination

  1. 00:00

    חישוב זווית הטיה מערכי Accelerometer

  2. 00:40

    נרמול הגרביטציה לפי נוסחה

  3. 01:42

    חישוב הזווית עם ארק קוסינוס

  4. 02:19

    בדיקה אם המכשיר שטוח

תמלול ההרצאה: Device Inclination

הטקסט המלא של הדקות הראשונות בהרצאה «Device Inclination» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    אז יש לנו את ערכי האקסלרומטר X, Y ו-Z ובואו פשוט נבצע איזושהי לוגיקה מסוימת איתם. ומה שאנחנו הולכים לעשות זה פשוט לקבל את הזווית שבה המכשיר מוטה יחסית למצב שטוח.

  2. 00:19

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

  3. 00:30

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

  4. 00:43

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

  5. 00:53

    אז בואו נראה מה בעצם אנחנו צריכים לעשות. יש לנו כאן float, גרוויטי נורמליזיישן, ככה זה נקרא הדבר הזה. כל מיני מונחים של עולם המתמטיקה. יש לנו פה math.square אנחנו רוצים לקבל שורש של הריבוע של x ועוד הריבוע של y ועוד הריבוע של z.

  6. 01:23

    ויש לנו איזשהו ערך שנקרא גרוויטי נורמליזיישן. אורייט, נרמול של הגרביטציה. לאחר מכן פלוט נורמליזד Z ובשווה ל-Z לחלק ל-Gravity Normalization.

  7. 01:42

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

  8. 01:54

    ונבצע פה איזשהו אמרה ל-Int ויש לנו גראונדינג שאנחנו צריכים לבצע על זה. דיג ריז מ-Math Arc Cosinus ACOS של ה-Normalized Z.

  9. 02:17

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

  10. 02:34

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

  11. 03:05

    אז בואו ניגש ל-text-value שלנו ונגדיר שאנחנו device is flat, פחות או יותר, כן? בואו נרד פה שורה ונדפיס את הזווית.

  12. 03:24

    הזווית שלנו זה ה-inclination, זווית ההטיה שלנו. אלס וניקח

לקורס המלא: קורס פיתוח אפליקציות לאנדרואיד

ההרצאה הקודמת: חיישן Accelerometer

ההרצאה הבאה: Device Shake

הרצאות קשורות מקורסים אחרים

  • Device Events
  • בדיקות בענן Amazon AWS Device Farm - חלק 1

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון