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

אוסף של מסופי ANSI: 10 שלבים
אוסף של מסופי ANSI: 10 שלבים

וִידֵאוֹ: אוסף של מסופי ANSI: 10 שלבים

וִידֵאוֹ: אוסף של מסופי ANSI: 10 שלבים
וִידֵאוֹ: עדכון מסוף סליקה 2024, יולי
Anonim
אוסף מסופי ANSI
אוסף מסופי ANSI

פרויקט זה התחיל כדרך להציג 80 טקסט של עמודות על צג LCD המתאים להפעלת מעבד תמלילים מיושן כגון Wordstar. נוספו תצוגות שונות אחרות בגודלן בין 0.96 עד 6 אינץ '. התצוגות משתמשות במכשיר PCB יחיד וכן בסקיצה/תוכנית אחת של Arduino.

יש חיבור RS232 טורי לחיבור למחשב ושקע PS/2 למקלדת. התצוגות נבחרו לייצג את התצוגות הנפוצות במחירים נוחים. בהתאם לזיכרון הדרוש הצגים משתמשים ב- Arduino Nano, Uno או Mega.

שלב 1: סיכום תצוגות

סיכום התצוגות
סיכום התצוגות

ישנם מסכים שונים ברזולוציית 480x320. זה מאפשר גופן 9x5 וטקסט של עמודה 80. ישנם לוחות שונים ברזולוציה 320x240, עם גופנים 9x5 וגם גופן זעיר 7x3 המאפשר 80 טקסט של עמודות. יש גם לוחות קטנים יותר עם 160x120 ו 128x64 פיקסלים. כמו כן תצוגות טקסט בגודל 20x4 ו -16x2, ולבסוף לוח תצוגת כוכבי פרץ בגודל 12x2 מגזרים.

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

תצוגות קטנות יותר משתמשות ב- Arduino Uno. לוחות גדולים יותר זקוקים ליותר זיכרון ולכן השתמשו במגה. לוח התצוגה של starburst משתמש בננו.

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

שלב 2: חומרה

חוּמרָה
חוּמרָה

ה- PCB תוכנן לעבודה עם כמה שיותר תצוגות. קל לשנות בין מגה ליו באמצעות ארבעה מגשרים. ישנם נגדי מחלק מתח למסכים הפועלים על 3V. סיכות I2C יוצאות בקבוצה כך שניתן לחבר את התצוגות ישירות. הטרמינל פועל ב -9600 באוד, ולמרות שניתן להגדיל אותו, חלק גדול מהתצוגות הגדולות יותר לא יצייר מחדש הרבה יותר מהר מזה. מקלדת PS2 מתחברת לשקע DIN6. מקלדות USB יעבדו גם עם תקע מתאם זול. אתה יכול לבצע בדיקת loopback פשוטה על ידי הצטרפות לסיכה 2 ו -3 ב- D9 ולאחר מכן יופיעו על המסך תווים שהוקלדו במקלדת.

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

יש גם לוח נפרד לתצוגת led starburst - ראה מאוחר יותר במדריך זה.

שלב 3: תוכנה

להלן קובץ בשם Package.txt זהו למעשה קובץ.zip אז הורד ושנה אותו (הוראות שימוש אינן מאפשרות קבצי zip). הסקיצה/התוכנית של Arduino כלולה וזוהי תוכנית אחת המשמשת את כל התצוגות. יש גם את כל קבצי ה- zip לכל אחת מהתצוגות.

בתחילת התוכנית סדרה של הצהרות #define. אל תגיב על זה שמתאים לתצוגה. השתמש בכלים/לוח לבחירת Uno, Mega או Nano. החלפת לוחות היא פשוטה כמו שינוי שורה אחת בקוד.

אחד האתגרים בעבודה עם מסכים רבים הוא שכולם זקוקים למנהלי תוכנה משלהם. כל אלה כלולים בחבילה. הבדיקה כללה לקיחת החבילה והתקנה מחדש במכונה חדשה לגמרי מאפס. אתה יכול גם קוד מקור מ- Github ו- Adafruit ו- LCDWiki. ישנם כמה מקרים שבהם גרסאות חדשות יותר אינן פועלות ולכן כל גרסאות העבודה כלולות בזיפ. מדי פעם היו מקרים שבהם נהג אחד הפסיק נהג אחר לפעול מכיוון שהם השתמשו באותו שם קובץ אך בגירסאות שונות. יש תיאור בהערות בראש התוכנית המראה כיצד להתקין כל מנהל התקן. רובם מותקנים מה- Arduino IDE עם סקיצה/כלול ספרייה/הוספת ספריית ZIP וזה לוקח את קובץ ה- zip ומכניס אותו ל- c: / users / computername / mydocuments / arduino / libraries.

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

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

// תצוגות שונות, השאירו את אחת מההגדרות הבאות ללא הגדרה#הגדר DISPLAY_480X320_LCDWIKI_ILI9486 // 3.5 אינץ ', 480x320, טקסט 80x32, מגה, 16 ביט, מתחבר למגה 36 פינים (ושני סיכות מתח). Http://www.lcdwiki.com /3.5inch_Arduino_Display-Mega2560. איטי יותר מכמה מהאפשרויות שלהלן אך גופן קריא יותר ומסך גדול יותר, אתחול של 5 שניות //#הגדר DISPLAY_480X320_MCUFRIEND_ILI9486 // 3.5 ", 480x320, טקסט 80x32, מגה, 5x9 גופן, רק עבור מגה אבל שימושים בלבד סיכות uno, כוח, D0-D14, A0-A5, פונט יותר נחמד מאשר מודול 40 פינים ssd1289 אבל הרבה יותר איטי https://www.arduinolibraries.info/libraries/mcufriend_kbv https://github.com/adafruit/Adafruit -GFX-Library //#define DISPLAY_320X240_MCUFRIEND_ILI9341 // 2.4 ", 320x240, טקסט 53x24, mega //#define DISPLAY_320X240_SSD1289_40COL // 3.5", 320x240, טקסט 40x20, mega, ספריית UTFT (ללא גופנים קטנים יותר) מהיר //#define DISPLAY_320X240_SSD1289_53COL // 3.5 ", 320x240, טקסט 53x24, מגה, 9x5 גופן, יכול לערוך גופן. מהיר //#define DISPLAY_320X240_SSD1289_80COL // 3.5", 320x240, טקסט 80x30, מגה, זעיר גופן, יכול, נהג מהיר יותר מהשניים לעיל, המהיר מכולם ככונן ישיר של 16 סיביות לתצוגה במקום spi/i2c //#define DISPLAY_160X128_ST7735 // 1.8 ", 160x128, טקסט 26x12, uno (ILI9341) SPI 128x160 //#define DISPLAY_128X64_OLED_WHITE // 0.96 ", 128x64, טקסט 21x6, mega, I2C, לבן על שחור (ספריית ה- tft ללוח זה בתוספת כל הקוד ועוד המקלדת נגמרת מאחסון התוכניות, למרות שצרכי האיל קטנים מאוד, כך שרק פועל במגה) //#define DISPLAY_20X4 // טקסט 20x4, uno, LCD עם I2C, טקסט LCD https://www.arduino.cc/en/Reference/LiquidCrystal //#define DISPLAY_16X2 // טקסט 16x2, uno, מתחבר ל- uno, משתמש בסיכות 4 עד 10 //#define DISPLAY_STARBURST // טקסט 12x2, תצוגת nano, starburst עם בקר ננו //#define DISPLAY_320X240_QVGA_SPI_ILI9341 / /2.2 ", 320x240, טקסט 11x8, uno, פונט גדול, uno, אותות 3v, תצוגת SPI 9 פינים ראה הוראות Bodmer-uno https://www.instructables.com/id/Arduino-TFT-display-and-font- ספרייה/ קבל את ה- zip בתחתית והכנס ידנית את gfx ו- 9341 לתיקיית הספרייה של arduino

שלב 4: תקן ANSI

תקן ANSI
תקן ANSI

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

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

הקוד צריך בתים אחד לאחסון הדמות ובייט אחד לאחסון הצבעים (3 סיביות לחזית, 3 לרקע, אחד להבהיר/עמום ואחד להדגשה). אז תצוגה בגודל 80x30 תזדקק ל 2400x2 = 4800 בייטים, שיתאימו למגה אבל לא ליו.

שלב 5: תצוגות

תצוגות
תצוגות
תצוגות
תצוגות
תצוגות
תצוגות

למעלה תמונות של כל תצוגה בודדת. ישנן תמונות מלפנים ומאחור של כל תצוגה והן מייצגות רבות מהמותגים הקיימים ב- ebay או דומה. חלקם הם I2C, חלקם מקבילים, חלקם עם גופנים גדולים יותר, חלקם יכולים להציג 80 עמודות מלאות המתאימות ל- Wordstar ולתוכניות עיבוד תמלילים ישנות אחרות. יש פירוט נוסף בטקסט קוד הארדואינו.

שלב 6: סכמטי

להלן שני קבצים. הם נקראים בשם.txt מכיוון ש- Instructables אינו מטפל בקבצי zip. הורד אותם ושנה אותם בשם.zip.

יש את הסכימה ואת פריסת הלוח כקובצי pdf. יש גם חבילה ל- PCB Seeed. אלה הם הגרברים ואם אתה הולך ל- Seeed ומעלה את זה זה אמור להציג את הגרברים ואז תוכל להכין PCB. הלוח בן 14 הקטעים גדול ועולה לא מעט יותר, אך הקטן יותר מתאים בפורמט 10x10 ס מ המועדף על ידי Seeed ולכן הוא סביר למדי עבור 5 או 10 לוחות - למעשה עולה משלוח יותר מהלוחות.

זה בהחלט אפשרי להשתמש ברבים מהתצוגות מבלי שתצטרך PCB. ישנם מודולי שקע PS2, מגנים/מודולים RS232 כולם זמינים ב- eBay או דומה. כמה תצוגות כמו אלה של I2C פשוט יכולות להשתמש בכמה חוטי חיבור. חלקם כמו צגי SSD1289 מגיעים עם לוחות מתאם ויכולים להתחבר ישירות למגה.

שלב 7: תצוגת Starburst

תצוגת Starburst
תצוגת Starburst

תצוגת starburst היא לוח גדול יותר ומשתמש בננו ומספר שבבי 74xx לביצוע הכפלות. היו הרבה ניסויים כדי לקבוע כמה תצוגות אתה יכול להרבות לפני שהן נהיו עמומות מדי או שההבהוב הפך להיות מורגש מדי. התצוגות הגיעו מ- Futurlec https://www.futurlec.com/LEDDisp.shtml 14 תצוגות הקטע יכולות גם לבצע אותיות קטנות וניתן לשנות אותן בקוד במידת הצורך. שנה את שם הקבצים מ- txt ל-.zip

שלב 8: הוספת קוד להצגות אחרות

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

הבא הוא לרדת לשורה 451 ולהוסיף את קוד ההפעלה. כאן אתה מגדיר את צבע הרקע ואת הסיבוב ויוזם את התצוגה.

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

my_lcd. Draw_Char (xPixel, yPixel, c, tftForecolor, tftBackcolor, 1, 0); // x, y, char, קדמה, גב, גודל, מצב

הבא הוא ללכת לשורה 664 ולהוסיף את הקוד כדי לצייר פיקסל. שוב, לפעמים זו רק שורה אחת למשל:

tft.drawPixel (xPixel, yPixel, tftForecolor);

לבסוף עבור לשורה 727 והוסף את הקוד כדי לצייר קו אנכי עבור הסמן, למשל

tft.drawFastVLine (xPixel, yPixel, fontHeight, tftForecolor);

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

שלב 9: הפגנת Wordstar

הדבר נעשה באמצעות מחשב CP/M, וישנן אפשרויות רבות זמינות כאן. הייתי צריך משהו מהיר להתקנה, אז השתמשתי בחיקוי ב- ESP32 (Google ESP32 CP/M). יש הרבה מחשבי רטרו אחרים, למשל, אמולציית FPGA של גרנט סירל ו- RC2014 למי שמעדיף להשתמש ב- Z80 אמיתי. מחשבי רטרו רבים נוטים להשתמש בתוכנית מסוף במחשב כתצוגה, למשל Teraterm. ניפוי רב של פרויקט ANSI זה כלל הפעלה של תוכנית מסוף ותוכנית ANSI במקביל וודא שהמסכים נראים זהים.

שלב 10: מחשבות נוספות

ככל שהתצוגות גדלות הן הופכות איטיות יותר ויותר. ציור מחדש של תו כרוך בציור מחדש של כל פיקסל בתו זה מכיוון שצריך לצייר גם את צבע הרקע, כך שהכל תלוי כמה מהר אתה יכול לצייר פיקסל. יש כמה שינויים, למשל אם תצוגה לא מצליחה להתעדכן בכניסת הנתונים, פשוט אחסן את הטקסט במאגר המסך ולאחר מכן בצע מחדש מסך מלא כאשר לא נכנס יותר טקסט. תצוגות רבות שאתה רואה עבורן מכירה מציגה תמונה יפה על המסך, אך מה שאולי לא יראה הוא כמה זמן לקח להציג את התמונה הזו, ובמקרים מסוימים היא יכולה להיות 5 שניות או יותר. I2C ו- SPI נהדרים עבור התצוגות הקטנות יותר אבל כל דבר מעל 50 עמודות צריך אוטובוס נתונים של 8 או 16 סיביות.

וורדסטאר מעט מסורבל לשימוש ב -9600 באוד ו -19200 הרבה יותר שימושי לגלול טקסט, אבל התצוגות ממש לא יכולות לעמוד בקצב.

התצוגה המהירה ביותר בה השתמשתי הייתה בשבב הפרופלור עם שני שבבי ראם חיצוניים של 512k 812k, ליצירת אוטובוס נתונים מקביל של 16 סיביות. כל גופן נטען מראש באיל. מפל של שבבי נגד 74xx שימשו כדי לשחרר את הנתונים לתצוגה. המשמעות היא שלא היה עיבוד פנימי בתוך המעבד לאסוף ולפלט נתונים, וקצב הרענון היה מהיר ככל ששבב המדחף יכול להחליף סיכה. באופן מפתיע, התצוגות הצליחו לעמוד בקצב הזה, אפילו במהירות 20 מגה -הרץ, ולכן ניתן היה לבצע עדכון מסך מלא תוך 30 מילי -שניות בלבד. שיעור כזה מהיר מספיק כדי לבצע גלילה חלקה, כמו שאתה רואה בטלפונים ניידים.

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

עבור תצוגות גדולות יותר זה עשוי להיות זול יותר להשתמש במסך טלוויזיית LCD או במסך VGA ולהסתכל על כמה אמולטורים של ANSI שקודדו, למשל ESP32, שמניעים VGA ישירות.

אני מקווה שתמצא פרוייקט שימושי.

ג'יימס מוקהם

אדלייד, אוסטרליה

מוּמלָץ: