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

גרפיקה על צג SSD1306 I2C OLED 128x64 עם מעגל פייתון באמצעות M4 Express Itsybitsy: 13 שלבים (עם תמונות)
גרפיקה על צג SSD1306 I2C OLED 128x64 עם מעגל פייתון באמצעות M4 Express Itsybitsy: 13 שלבים (עם תמונות)

וִידֵאוֹ: גרפיקה על צג SSD1306 I2C OLED 128x64 עם מעגל פייתון באמצעות M4 Express Itsybitsy: 13 שלבים (עם תמונות)

וִידֵאוֹ: גרפיקה על צג SSD1306 I2C OLED 128x64 עם מעגל פייתון באמצעות M4 Express Itsybitsy: 13 שלבים (עם תמונות)
וִידֵאוֹ: Arduino — растровые изображения из I2C EEPROM на OLED-дисплей 128x64 2024, יולי
Anonim
גרפיקה במסך SSD1306 I2C OLED 128x64 עם מעגל פייתון באמצעות M4 Express Itsybitsy
גרפיקה במסך SSD1306 I2C OLED 128x64 עם מעגל פייתון באמצעות M4 Express Itsybitsy

תצוגת OLED SSD1306 היא מסך קטן (0.96 אינץ ') זול, זמין, I2C, מונוכרום, עם 128x64 פיקסלים, שניתן להתממשק אליו בקלות (רק 4 חוטים) ללוחות פיתוח של מעבדים כגון Raspberry Pi, Arduino או Adafruit Itsybitsy M4 Express, CircuitPlayground Express או התקני CircuitPython אחרים. ניתן להוריד מנהלי התקנים מהאינטרנט.

שגרות גרפיות עבור Arduinos היו זמינות כבר זמן מה אך לא עבור מערכות פיתוח אחרות.

מנהלי ההתקנים הבסיסיים מאפשרים למשתמשים:

  • נקה את המסך לשחור או לבן. oled.fill (ג)
  • כתוב מחרוזת טקסט למסך במיקום מוגדר (x, y) oled.text ("טקסט", x, y, c)
  • צייר נקודה במיקום שצוין (x, y) oled.pixel (x, y, c)
  • טען קובץ תמונה למסך. (לא בשימוש בפרויקט זה)
  • עדכן את התצוגה oled.show ()

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

  • שורות
  • מעגלים
  • קופסאות חלולות
  • בלוקים מוצקים
  • תווים מוגדרים מראש

אני אשתמש ב- Adafruit Itsybitsy M4 Express כדי להדגים את השיטות אך ניתן להעביר את הקוד בפייתון בקלות למערכות פיתוח אחרות.

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

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

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

שלב 1: מה אנחנו צריכים לפרויקט זה

מה אנחנו צריכים לפרויקט הזה
מה אנחנו צריכים לפרויקט הזה

חוּמרָה:

  • תצוגת מונו מסוג SSD1306 I2C 128x64 פיקסלים
  • Itsybitsy M4 Express
  • כבל microUSB ל- USB - לתכנת הלוח
  • לוח לחם
  • 1 פוטנציומטר של 10K אוהם
  • מתג כפתור אחד
  • חיבור חוט - צבעים שונים יכולים לעזור
  • מחשב (לכתוב את הקוד ולהעלות אותו) - מחשב נייד ישן מאוד יעשה.

תוֹכנָה:

עורך מו - לכתיבת קוד והעלאת הסקריפט ל- Itsybitsy

הגדרת ה- Itsybitsy מוסברת כאן:

הגרסה האחרונה של CircuitPython:

ספריות CircuitPython:

עורך מו:

שלב 2: המעגל

המעגל
המעגל

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

שלב 3: גרסת הלוח של המעגל

גרסת הלוח של המעגל
גרסת הלוח של המעגל

בחלק העליון והתחתון של לוח הלחם יש מסילות חשמל. בעזרת חוט אדום חברו את מסילות +ve יחד. בעזרת חוט שחור חבר את המסילות -ve יחד.

הצטרף לסיכה 3V של ה- Itsybitsy למסילה התחתונה +ve - חוט אדום. (עמודה 12)

הצטרף לסיכת G (GND) של ה- Itsybitsy למסילה העליונה - חוט שחור. (עמודה 12)

בעמודות 33 ו -34, חבר את סיכות ה- VCC וה- GND של SSD1306 למסילות החשמל העליונות.

בעזרת חוט ורוד חברו את סיכות ה- SCL יחד.

בעזרת חוט אפור חברו את סיכות ה- SDA יחד.

בעזרת חוטים אדומים ושחורים חבר את הפינים החיצוניים של הפוטנטיומטר למסילות החשמל העליונות ובחוט ירוק חבר את סיכת המרכז (המגב) ל- A5 ב- Itsybitsy.

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

שלב 4: טעינת הגופן

טוען את הגופן
טוען את הגופן

הורד את קובץ הגופן וגרור אותו לכונן CIRCUITPY. (זהו האיסיביצי.)

לחץ פעמיים על תיקיית lib והסתכל ברשימת מנהלי ההתקנים שכבר טענת.

שלב 5: הוספת מנהלי התקנים נוספים

הוספת מנהלי התקנים נוספים
הוספת מנהלי התקנים נוספים

תצטרך את הדברים הבאים בתיקיית lib:

  • simpleio.mpy
  • adafruit_bus_device
  • adafruit_framebuf.mpy
  • adafruit_ssd1306.mpy

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

כעת אתה מוכן להוריד את הסקריפט.

לאחר טעינתו בעורך Mu תוכלו לשמור אותו ב- Itsybitsy בשם main.py.

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

הדפים הבאים מספקים מידע נוסף על אופן הפעולה של התוכנית.

שלב 6: הגדר את המכשירים

הגדר את המכשירים
הגדר את המכשירים

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

שלב 7: הגדר תווים וצייר קווים אופקיים ואנכיים

הגדר תווים וצייר קווים אופקיים ואנכיים
הגדר תווים וצייר קווים אופקיים ואנכיים
הגדר תווים וצייר קווים אופקיים ואנכיים
הגדר תווים וצייר קווים אופקיים ואנכיים

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

קווים אופקיים ואנכיים קלים לצייר בעזרת לולאה. אתה רק צריך לזכור שאתה צריך את הנקודה הנוספת בסוף. שורה בין (0, 7) ל- (5, 7) תזדקק ל -6 נקודות: כאשר x שווה ל- 0, 1, 2, 3, 4 ו -5 בתורו.

פקודת הנקודה הבסיסית היא oled.pixel (x, y, color) - 0 הוא שחור ו -1 הוא לבן.

המקור (0, 0) נמצא בחלק השמאלי העליון של המסך, 0 - 127 פיקסלים אופקי (משמאל לימין) ו- 0 - 63 אנכית (מלמעלה למטה).

שלב 8: קופסאות, בלוקים וקווים משופעים

קופסאות, בלוקים וקווים משופעים
קופסאות, בלוקים וקווים משופעים

הקופסאות בנויות מקווים אופקיים ואנכיים.

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

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

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

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

שלב 9: סמל תואר, השתלמות, תרשים עמוד ומעגל

סמל תואר, השתלמות, גרף עוגות ומעגל
סמל תואר, השתלמות, גרף עוגות ומעגל

סמל התואר נוצר מ -4 פיקסלים.

שגרת היישור () מוסיפה רווחים נוספים מול המספר ליישור נכון של ערכים קצרים במרחב קבוע.

שגרת התרשים (v) מציירת גרף עמודות אופקי ונותן את האחוז שנבחר. הערך נכתב בקצה הימני באמצעות 'T' לייצוג 100 (טון או למעלה).

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

שלב 10: איסוף אשפה, כותרות ומעגלים

איסוף אשפה, כותרות ומעגלים
איסוף אשפה, כותרות ומעגלים

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

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

הכותרת להדגמת השורות כתובה בהמשך.

שלב 11: הדגמת שורות

הדגמת שורות
הדגמת שורות

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

שלב 12: הלולאה הראשית: תרשים עמודות ותווים מוגדרים

הלולאה הראשית: תרשים עמודות ותווים מוגדרים
הלולאה הראשית: תרשים עמודות ותווים מוגדרים

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

אם הכפתור מוחזק כלפי מטה התווים המוגדרים מוחלפים כמו 1/0 ו- True/False. לולאה זו פועלת לאט למדי מכיוון שציור התווים שהוגדרו מראש הוא תהליך איטי. אתה יכול להאיץ את העניינים על ידי התייחסות לחלקם.

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

מוּמלָץ: