فهرست مطالب:

مجموعه ای از پایانه های ANSI: 10 مرحله
مجموعه ای از پایانه های ANSI: 10 مرحله

تصویری: مجموعه ای از پایانه های ANSI: 10 مرحله

تصویری: مجموعه ای از پایانه های ANSI: 10 مرحله
تصویری: گوز زدن پریانکا چوپرا هنرپیشه بالیوود در یکی از برنامه های لایف تلویزیونی |C&C 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 ، و در نهایت یک صفحه نمایش 12 2 2 چهارده قسمتی starburst.

برخی از نمایشگرها از I2C استفاده می کنند ، برخی SPI و برای نمایشگرهای بزرگتر ، یک گذرگاه داده 16 بیتی برای سرعت بیشتر در به روز رسانی.

نمایشگرهای کوچکتر از Arduino Uno استفاده می کنند. تخته های بزرگتر به حافظه بیشتری نیاز دارند و بنابراین از Mega استفاده کنید. صفحه نمایش ستاره ای از نانو استفاده می کند.

در این مرحله ممکن است اشاره کنم که عکس ها در مورد بسیاری از نمایشگرها عدالت را رعایت نمی کنند. صفحه نمایش کوچک سفید رنگ بسیار واضح و روشن است که باعث می شود فوکوس دوربین سخت تر شود و صفحه نمایش ستاره ای با انفجار در زندگی بسیار واضح تر به نظر می رسد.

مرحله 2: سخت افزار

سخت افزار
سخت افزار

PCB طوری طراحی شده است که تا حد امکان با صفحه نمایش کار کند. تغییر بین Mega و Uno با استفاده از چهار پرش آسان است. برای نمایشگرهایی که روی ولتاژ 3 ولت کار می کنند ، مقاومت تقسیم ولتاژ وجود دارد. پین های I2C به صورت گروهی بیرون آورده می شوند تا نمایشگرها به طور مستقیم به برق متصل شوند. ترمینال با سرعت 9600 کار می کند ، و در حالی که می توان آن را افزایش داد ، بسیاری از نمایشگرهای بزرگتر سریعتر از این دوباره ترسیم نمی شوند. صفحه کلید PS2 به سوکت DIN6 متصل می شود. صفحه کلیدهای USB همچنین با یک پلاگین آداپتور ارزان کار خواهند کرد. شما می توانید با اتصال پین 2 و 3 در D9 یک تست حلقه باز ساده را انجام دهید و سپس نویسه های تایپ شده روی صفحه کلید روی صفحه ظاهر می شوند.

در برخی موارد نیازی به PCB نیست و می توان با ماژول های از پیش ساخته شده در ebay کار کرد ، به عنوان مثال آداپتورهای PS2 ، بردهای آداپتور RS232 و نمایشگرهایی که مستقیماً به بردهای آردوینو متصل می شوند.

همچنین یک صفحه جداگانه برای صفحه نمایش led starburst وجود دارد - بعداً در این دستورالعمل مشاهده کنید.

مرحله 3: نرم افزار

در زیر فایلی به نام Package.txt آمده است این در واقع یک فایل.zip است بنابراین آن را بارگیری کرده و نام آن را تغییر دهید (Instructables به فایل های فشرده اجازه نمی دهد). شامل طرح/برنامه آردوینو است و این یک برنامه واحد است که توسط همه نمایشگرها استفاده می شود. همچنین همه فایل های.zip برای هر یک از نمایشگرها وجود دارد.

در ابتدای برنامه مجموعه ای از بیانیه های #تعریف شده قرار دارد. موردی را که مربوط به صفحه نمایش است ، کامنت گذاری نکنید. از ابزارها/برد برای انتخاب Uno ، Mega یا Nano استفاده کنید. تغییر تابلوها به سادگی تغییر یک خط در کد است.

یکی از چالش های کار با بسیاری از نمایشگرها این است که به نظر می رسد همه آنها به درایور نرم افزار خود نیاز دارند. همه اینها در بسته موجود است. آزمایش شامل برداشتن بسته و نصب مجدد آن بر روی دستگاه جدید به طور کامل از ابتدا بود. همچنین می توانید از Github و Adafruit و LCDWiki کد تهیه کنید. چند مورد وجود دارد که نسخه های جدیدتر کار نمی کنند ، بنابراین همه نسخه های کارکرده در zip گنجانده شده است. گاهی اوقات مواردی وجود داشت که یک راننده کار دیگری را متوقف می کرد زیرا از نام فایل یکسانی استفاده می کردند اما از نسخه های مختلف استفاده می کردند. توضیحاتی در نظرات بالای برنامه وجود دارد که نحوه نصب هر درایور را نشان می دهد. اکثر آنها از Arduino IDE با Sketch/Include Library/Add ZIP کتابخانه نصب می شوند و این فایل زیپ را می گیرد و در کتابخانه های c: / users / computername / mydocuments / arduino / قرار می دهد.

اگر فقط از یک صفحه نمایش استفاده می کنید ، برخی از این کتابخانه ها نیازی به نصب ندارند. حداقل به دو فایل صفحه کلید و یکی برای صفحه نمایش خاص نیاز دارید. برخی از کد های اشتراک گذاری را نمایش می دهند. دستورالعمل های دقیق تری در نظرات بالای برنامه وجود دارد ، از جمله دریافت کتابخانه gfx از Adafruit.

از آنجا که همه نمایشگرها از یک طرح آردوینو یکسان استفاده می کنند ، تغییر نمایشگرها فقط به دلیل عدم اظهار نظر در یکی از خطوط زیر است:

// نمایشگرهای مختلف ، یکی از موارد زیر را بدون نظر بگذارید#define DISPLAY_480X320_LCDWIKI_ILI9486 // 3.5 "، 480x320 ، متن 80x32 ، مگا ، 16 بیت ، به مگا 36 پین (و 2 پین برق) متصل می شود. https://www.lcdwiki.com /3.5inch_Arduino_Display-Mega2560. کندتر از برخی از گزینه های زیر اما فونت قابل خواندن و صفحه بزرگتر ، راه اندازی 5 ثانیه //#define DISPLAY_480X320_MCUFRIEND_ILI9486 // 3.5 "، 480x320 ، متن 80x32 ، مگا ، فقط 5x9 فونت ، فقط برای پین های uno ، power ، 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 ، مگا //#تعریف DISPLAY_320X240_SSD1289_40COL // 3.5" ، 320x240 ، متن 40x20 ، مگا ، مگا ، UTFT کتابخانه (بدون فونت) سریع //#تعریف DISPLAY_320X240_SSD1289_53COL // 3.5 "، 320x240 ، متن 53x24 ، مگا ، فونت 9x5 ، قابلیت ویرایش فونت. سریع //#تعریف DISPLAY_320X240_SSD1289_80COL // 3.5" ، 320x240 ، متن 80x30 ، قلم کوچک ، قلم کوچک ، 7x3 ، راننده سریعتر از دو مورد فوق ، سریعتر از همه اینها به عنوان درایو مستقیم 16 بیتی روی صفحه نمایش به جای spi/i2c //#تعریف DISPLAY_160X128_ST7735 // 1.8 "، 160x128 ، متن 26x12 ، uno (ILI9341) SPI 128x160 //#تعریف DISPLAY_128X64_OLED_WHITE // 0.96 "، 128x64 ، متن 21x6 ، مگا ، I2C ، سفید رنگ مشکی (کتابخانه tft برای این برد به همراه تمام کد و صفحه کلید ذخیره برنامه را تمام می کند ، حتی اگر نیازهای قوچ بسیار کوچک باشد ، بنابراین فقط روی مگا اجرا می شود) به uno متصل می شود ، از پین های 4 تا 10 استفاده می کند //#تعریف DISPLAY_STARBURST // متن 12x2 ، نانو ، صفحه نمایش ستاره دار با کنترل نانو //#تعریف 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- Library/ zip را در پایین دریافت کنید و gfx و 9341 را به صورت دستی در پوشه کتابخانه arduino قرار دهید

مرحله 4: استاندارد ANSI

استاندارد ANSI
استاندارد ANSI

ANSI اجازه می دهد تا دستورات ساده ای برای پاک کردن صفحه ، حرکت دادن مکان نما و تغییر رنگ ها وجود داشته باشد. در تعدادی از عکس ها نمایشی وجود دارد که تمام رنگ های پیش زمینه و پس زمینه را نشان می دهد. اینها قرمز ، زرد ، سبز ، آبی ، فیروزه ای ، سرخابی ، مشکی ، سفید ، خاکستری تیره ، خاکستری روشن هستند و رنگ ها می توانند روشن یا کم نور باشند ، بنابراین 16 رنگ پیش زمینه و 16 رنگ پس زمینه وجود دارد.

کاملاً ممکن است در مورد افزودن در حالت "گرافیکی" فکر کنید که در آن می توانید تصاویر با وضوح بسیار بالاتر در سطح پیکسل و با 256 یا بیشتر رنگ بکشید. محدودیت های اصلی حافظه داخلی آردوینو و زمان لازم برای ارسال تصویر از طریق پیوند سریال در 9600 baud است.

کد برای ذخیره کاراکتر و یک بایت برای ذخیره رنگ (3 بیت برای پیش زمینه ، 3 بیت برای پس زمینه ، یکی برای روشن/کم نور و دیگری برای پررنگ) نیاز دارد. بنابراین یک صفحه نمایش 80x30 به 2400x2 = 4800 بایت نیاز دارد که در یک مگا قرار می گیرد اما در Uno مناسب نیست.

مرحله 5: نمایش می دهد

نمایش می دهد
نمایش می دهد
نمایش می دهد
نمایش می دهد
نمایش می دهد
نمایش می دهد

در بالا عکس های هر صفحه نمایش جداگانه وجود دارد. عکس هایی از جلو و پشت هر صفحه نمایش وجود دارد و نشان دهنده بسیاری از مارک های موجود در ebay یا موارد مشابه است. برخی I2C ، برخی موازی ، برخی فونت های بزرگتر دارند ، برخی می توانند 80 ستون کامل مناسب برای Wordstar و سایر برنامه های قدیمی پردازش کلمه را نمایش دهند. جزئیات بیشتری در متن کد آردوینو وجود دارد.

مرحله ششم: شماتیک

در زیر دو فایل آمده است. آنها به عنوان.txt نامگذاری شده اند زیرا Instructables فایل های zip را کنترل نمی کند. آنها را بارگیری کرده و نام آنها را به.zip تغییر دهید.

شماتیک و طرح برد به صورت فایلهای pdf وجود دارد. همچنین بسته ای برای Seeed PCB وجود دارد. اینها ژربرها هستند و اگر به Seeed بروید و این را بارگذاری کنید ، باید gerber ها را نمایش دهد و سپس می توانید PCB ها را تهیه کنید. تخته 14 قسمتی بزرگ است و هزینه آن کمی بیشتر است ، اما تخته کوچکتر در قالب 10x10cm ترجیحاً Seeed قرار می گیرد ، بنابراین برای 5 یا 10 تخته کاملاً منطقی است - در واقع هزینه حمل و نقل بیشتر از تخته ها است.

استفاده از بسیاری از نمایشگرها بدون نیاز به PCB کاملاً امکان پذیر است. ماژول های سوکت PS2 ، سپر/ماژول RS232 وجود دارد که همه در ebay یا موارد مشابه موجود است. برخی از نمایشگرها مانند I2C می توانند از چند سیم اتصال استفاده کنند. برخی از نمایشگرهای SSD1289 دارای برد آداپتور هستند و می توانند مستقیماً به مگا متصل شوند.

مرحله 7: نمایش Starburst Display

نمایش Starburst
نمایش Starburst

نمایشگر starburst یک صفحه بزرگتر است و از نانو و تعدادی تراشه 74xx برای انجام مالتی پلکس استفاده می کند. آزمایش های زیادی انجام شد تا مشخص شود چند صفحه نمایش را می توانید قبل از تیره شدن یا چشمک زدن بیش از حد قابل مالتی پلکس کنید. نمایشگرها از Futurlec آمده اند https://www.futurlec.com/LEDDisp.shtml صفحه نمایش های 14 قسمتی همچنین می توانند حروف کوچک را انجام دهند و در صورت نیاز می توان آنها را در کد تغییر داد. نام این فایلها را از.txt به.zip تغییر دهید

مرحله 8: افزودن کد برای سایر نمایشگرها

امکان افزودن کد برای سایر نمایشگرها وجود دارد. اولین قدم این است که چیزی ، هر چیزی را برای نمایش به دست آورید. این می تواند یک پیکسل یا یک حرف باشد. این امر عمدتا شامل جستجوی درایورها ، بارگیری یکی ، آزمایش آن ، پیدا نکردن آن کامپایل ، و سپس حذف آن درایور است تا بعداً باعث سردرگمی نشود ، سپس سعی کنید یک درایور جدید را امتحان کنید. گام بعدی این است که یک حرف برای نمایش در رنگ مناسب دریافت کنید ، زیرا برخی از نمایشگرهایی که یکسان به نظر می رسند رنگ ها را معکوس می کنند. خوشبختانه معمولاً فقط یک شماره در کد راه اندازی این مشکل را برطرف می کند. گام بعدی این است که چند خط بنویسید تا مشخص شود آیا از uno یا mega استفاده می کنید ، عرض صفحه ، ارتفاع ، اندازه فونت ، پین های صفحه کلید و کدام فایل های درایور استفاده کنید. اینها از خط 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 از Grant Searle و RC2014 برای کسانی که ترجیح می دهند از Z80 واقعی استفاده کنند. بسیاری از رایانه های قدیمی از برنامه ترمینال روی رایانه به عنوان صفحه نمایش استفاده می کنند ، به عنوان مثال Teraterm. بسیاری از اشکال زدایی این پروژه ANSI شامل اجرای یک برنامه ترمینال و برنامه ANSI به صورت موازی و اطمینان از ظاهر یکسان صفحه ها بود.

مرحله 10: افکار بیشتر

با افزایش اندازه صفحه نمایش ، آنها کندتر و کندتر می شوند. ترسیم مجدد یک کاراکتر شامل ترسیم مجدد هر پیکسل در آن کاراکتر است زیرا رنگ پس زمینه نیز باید ترسیم شود ، بنابراین همه چیز به این می رسد که چگونه می توانید پیکسل را به سرعت ترسیم کنید. برخی از اصلاحات وجود دارد ، به عنوان مثال اگر صفحه نمایش نتواند با داده های وارد شده همگام باشد ، فقط متن را در بافر صفحه ذخیره کنید و سپس در صورت وارد نشدن متن بیشتر ، صفحه را مجدداً ترسیم کنید. فروش تصویر زیبایی را روی صفحه نمایش می دهد ، اما چیزی که ممکن است نشان ندهند این است که چقدر طول کشید تا آن تصویر نمایش داده شود و در برخی موارد می تواند 5 ثانیه یا بیشتر باشد. I2C و SPI برای نمایشگرهای کوچکتر عالی هستند اما هر چیزی که بیش از 50 ستون داشته باشد به گذرگاه داده 8 یا 16 بیتی نیاز دارد.

Wordstar برای استفاده در 9600 baud کمی سخت است و 19200 برای پیمایش متن بسیار بیشتر قابل استفاده است ، اما صفحه نمایش ها واقعاً نمی توانند همگام شوند.

سریعترین نمایشگری که من استفاده کردم روی تراشه پروانه با دو تراشه 8 بیتی 512k خارجی 8 بیتی برای ایجاد یک گذرگاه داده موازی 16 بیتی بود. هر فونت از قبل در رم بارگذاری شده بود. از آبشار تراشه های شمارنده 74xx برای خروج داده ها از صفحه نمایش استفاده شد. این بدان معناست که هیچ پردازش داخلی در واکشی و خروج داده های CPU انجام نمی شود و نرخ بازسازی به همان سرعتی است که تراشه Propeller می تواند یک پین را تغییر دهد. به طور شگفت انگیزی ، صفحه نمایش ها توانستند این وضعیت را حتی در 20 مگاهرتز حفظ کنند و بنابراین امکان به روز رسانی تمام صفحه در تنها 30 میلی ثانیه وجود داشت. این نرخ به اندازه ای سریع است که می توان پیمایش را بدون مشکل انجام داد ، مانند آنچه در تلفن های همراه مشاهده می کنید.

تراشه پروانه بیش از ده سال پیش پیشرفته بود و در حال حاضر گزینه های بیشتری از جمله ESP8266 و ESP32 وجود دارد که دارای مقدار زیادی رم داخلی هستند. با این حال ، این تراشه ها هنوز تعداد زیادی پین ندارند ، بنابراین استفاده از روش قدیمی قدیمی تراشه رم خارجی که روی صفحه نمایش قرار می گیرد هنوز می تواند مفید واقع شود.

برای نمایشگرهای بزرگتر ممکن است استفاده از صفحه تلویزیون LCD یا صفحه VGA ارزان تر باشد و برخی از شبیه سازهای ANSI که کدگذاری شده اند را بررسی کنید ، به عنوان مثال ESP32 ، که VGA را مستقیماً هدایت می کند.

امیدوارم این پروژه برای شما مفید واقع شده باشد.

جیمز موکسام

آدلاید ، استرالیا

توصیه شده: