Мазмұны:

ANSI терминалдар жинағы: 10 қадам
ANSI терминалдар жинағы: 10 қадам

Бейне: ANSI терминалдар жинағы: 10 қадам

Бейне: ANSI терминалдар жинағы: 10 қадам
Бейне: My top 12 Favourite disney princess 👸🏻🤩 2024, Шілде
Anonim
ANSI терминалдар жинағы
ANSI терминалдар жинағы

Бұл жоба СКД дисплейінде Wordstar сияқты ескірген мәтіндік процессорды іске қосуға арналған 80 бағаннан тұратын мәтінді көрсету әдісі ретінде басталды. Өлшемі 0,96 -дан 6 дюймге дейінгі әр түрлі басқа дисплейлер қосылды. Дисплейлерде бір ПХД, сондай -ақ бір Arduino эскизі/бағдарламасы қолданылады.

Компьютерге қосылу үшін RS232 сериялық қосылымы және пернетақта үшін PS/2 ұясы бар. Дисплейлер әдетте қол жетімді бағаларды ұсыну үшін таңдалған. Қажетті жадқа байланысты дисплейлер Arduino Nano, Uno немесе Mega қолданады.

1 -қадам: Дисплейлердің қысқаша мазмұны

Дисплейлердің қысқаша мазмұны
Дисплейлердің қысқаша мазмұны

480x320 ажыратымдылығымен әр түрлі дисплейлер бар. Бұл 9x5 қаріп пен 80 бағаннан тұратын мәтінге мүмкіндік береді. 320х240 ажыратымдылығы бар, 9x5 қаріптері бар, сонымен қатар 80 баған мәтініне мүмкіндік беретін өте кішкентай 7x3 қаріптері бар түрлі тақталар бар. Сонымен қатар 160x120 және 128x64 пиксельді кішірек тақталар бар. Сондай -ақ 20x4 және 16x2 мәтіндік дисплейлер, ақырында 12х2 он төрт сегменттегі жұлдызды жарылыс дисплей тақтасы.

Кейбір дисплейлерде I2C пайдаланылады, кейбіреулері - SPI және үлкен дисплейлер үшін 16 биттік деректер шинасы, жаңартудың жылдамдығын жоғарылатады.

Кішкене дисплейлерде Arduino Uno қолданылады. Үлкен тақталарға көбірек жад қажет, сондықтан Mega қолданыңыз. Жұлдызды жарылыстың дисплей тақтасында нано қолданылады.

Бұл жерде фотосуреттер көптеген дисплейлерге әділдік бермейді деп айта аламын. Кішкене ақ түсті экраны өте таза және жарқын, бұл камераның фокустауын қиындатты, ал жұлдызды жарық диодты дисплей нақты өмірде әлдеқайда айқын көрінеді.

2 -қадам: Жабдық

Аппараттық құрал
Аппараттық құрал

ПХД мүмкіндігінше көп дисплеймен жұмыс істеуге арналған. Mega мен Uno арасында төрт секіргішті ауыстыру оңай. 3В жұмыс істейтін дисплейлер үшін кернеуді бөлетін резисторлар бар. I2C түйреуіштері дисплейге тікелей қосылуы үшін топқа шығарылады. Терминал 9600 байда жұмыс істейді, бірақ оны ұлғайтуға болады, бірақ көптеген үлкен дисплейлер бұдан жылдамырақ қайта түсірмейді. PS2 пернетақтасы DIN6 ұясына қосылады. USB пернетақталары арзан адаптермен жұмыс істейді. Сіз D9 -дегі 2 -ші және 3 -ші түйреуіштерді қосу арқылы қарапайым кері айналдыру тестін жасай аласыз, содан кейін дисплейде пернетақтада терілген таңбалар пайда болады.

Кейбір жағдайларда ПХД қажет емес және ebay-де алдын ала дайындалған модульдермен жұмыс жасауға болады, мысалы, PS2 адаптерлері, RS232 адаптерлік тақталары мен тікелей arduino тақталарына қосылатын дисплейлер.

Жұлдызды жарық диодты дисплейге арналған бөлек тақта бар - осы нұсқаулықты кейінірек қараңыз.

3 -қадам: Бағдарламалық қамтамасыз ету

Төменде Package.txt деп аталатын файл бар. Бұл шын мәнінде.zip файлы, сондықтан оны жүктеңіз және атын өзгертіңіз (Instructables zip файлдарына рұқсат бермейді). Arduino эскизі/бағдарламасы кіреді және бұл барлық дисплейлерде қолданылатын жалғыз бағдарлама. Сонымен қатар дисплейлердің әрқайсысы үшін.zip файлдары бар.

Бағдарламаның басында #define операторы бар. Дисплейге сәйкес келетінді өшіріңіз. Tools/Board көмегімен Uno, Mega немесе Nano таңдаңыз. Тақталарды өзгерту кодтағы бір жолды өзгерту сияқты қарапайым.

Көптеген дисплейлермен жұмыс істеудегі қиындықтардың бірі - олардың барлығына өздерінің бағдарламалық қамтамасыз ету драйверлері қажет сияқты. Мұның бәрі пакетке кіреді. Тестілеу пакетті алып, оны нөлден бастап жаңа машинаға қайта орнатуды қамтыды. Сіз сондай -ақ Github, Adafruit және LCDWiki -ден бастапқы кодты ала аласыз. Жаңа нұсқалар жұмыс істемейтін бірнеше жағдайлар бар, сондықтан барлық жұмыс нұсқалары zip -ке қосылады. Кейде бір драйвер екіншісінің жұмысын тоқтатады, себебі олар бір файл атауын, бірақ әр түрлі нұсқаларын қолданады. Бағдарламаның жоғарғы жағындағы түсініктемелерде әр драйверді қалай орнату керектігін сипаттайтын нұсқаулық бар. Көбісі Arduino IDE -ден Sketch/Include Library/ZIP кітапханасын қосу арқылы орнатылады және бұл zip файлын алады және оны c: / users / computername / mydocuments / arduino / library -ке қояды.

Егер сіз тек бір дисплейді қолдансаңыз, онда бұл либериялардың кейбірін орнатудың қажеті жоқ. Кем дегенде сізге екі пернетақта файлдары және бір дисплей үшін бір файл қажет. Кейбір дисплейлер кодты бөліседі. Бағдарламаның жоғарғы жағындағы түсініктемелерде егжей -тегжейлі нұсқаулар бар, соның ішінде Adafruit -тен gfx кітапханасын алу.

Барлық дисплейлер бірдей Arduino эскизін қолданатындықтан, дисплейлерді өзгерту тек төмендегі жолдардың бірін өшіру болып табылады:

// Әр түрлі дисплейлер, төмендегілердің бірін түсіндірусіз қалдырыңыз#DISPLAY_480X320_LCDWIKI_ILI9486 // 3,5 «, 480x320, мәтіні 80x32, мега, 16 биттік, мега 36 істікшеге (және 2 қуат түйреуішіне) қосылады. Http://www.lcdwiki.com /3.5inch_Arduino_Display-Mega2560. Төмендегі опцияларға қарағанда баяу, бірақ оқылатын қаріп пен үлкен экран, 5сек жүктеу //#DISPLAY_480X320_MCUFRIEND_ILI9486 // 3,5 «, 480x320, мәтін 80x32, мега, 5x9 қаріп тек мега үшін ғана қолданылады. бір түйреуіштер, қуат, D0-D14, A0-A5, ssd1289 40 істікшелі модульге қарағанда жақсы қаріп, бірақ әлдеқайда баяу https://www.arduinolibraries.info/libraries/mcufriend_kbv https://github.com/adafruit/Adafruit -GFX-Library //#DISPLAY_320X240_MCUFRIEND_ILI9341 // 2.4 «, 320x240, 53x24 мәтіні, mega //#DISPLAY_320X240_SSD1289_40COL // 3.5», 320x240, мәтін 40x20, мега, UTFT кітапханасынан 8 кіші (қаріп жоқ). Жылдам //#DISPLAY_320X240_SSD1289_53COL // 3.5 «, 320x240, мәтін 53x24, мега, 9x5 қаріп, қаріпті өңдей алады. Жылдам //#анықтау DISPLAY_320X240_SSD1289_80COL // 3.5», 320x240, мәтін 80x30 қаріп, мега, кішкентай, жоғарыдағы екеуіне қарағанда жылдам жүргізуші, бұның ішінде спи/i2c орнына дисплейге 16 биттік тікелей жету //#анықтау DISPLAY_160X128_ST7735 // 1.8 «, 160x128, мәтін 26x12, uno (ILI9341) SPI 128x160 //#анықтау DISPLAY_128X64_OLED_WHITE // 0,96 дюйм, 128х64, мәтін 21x6, мега, I2C, қара түспен боялған (осы тақтаның tft кітапханасы плюс барлық код плюс пернетақта бағдарламаның жадында қалады, егер қошқарға қажеттілік өте аз болса, тек мегада жұмыс істейді) //#DISPLAY_20X4 анықтау // мәтін 20x4, uno, I2C бар СКД, СКД мәтіні https://www.arduino.cc/kz/Reference/LiquidCrystal //#анықтау DISPLAY_16X2 // мәтін 16x2, uno, uno -ға қосылады, 4 -тен 10 -ға дейінгі түйреуіштерді қолданады //#DISPLAY_STARBURST анықтаңыз // мәтін 12x2, нано, жұлдызды жарылыс дисплейі нано контроллермен //#DISPLAY_320X240_QVGA_SPI_ILI9341 анықтаңыз / /2,2 дюйм, 320х240, мәтін 11x8, біркелкі, үлкен шрифт, uno, 3в сигналдар, SPI дисплейінің 9 істікшесі Bodmer's Instructables бөлімін қараңыз-uno https://www.instructables.com/id/Arduino-TFT-display-and-font- кітапхана/ төменгі жағында zip алыңыз және gfx және 9341 қолмен arduino кітапхана қалтасына енгізіңіз

4 -қадам: ANSI стандарты

ANSI стандарты
ANSI стандарты

ANSI қарапайым командаларға экранды тазалауға, жүгіргіні жылжытуға және түстерді өзгертуге мүмкіндік береді. Кейбір фотосуреттерде алдыңғы және фондық түстерді көрсететін демо бар. Бұл қызыл, сары, жасыл, көк, көгілдір, күлгін, қара, ақ, қою сұр, ақшыл сұр, түстер ашық немесе күңгірт болуы мүмкін, сондықтан 16 алдыңғы және 16 фондық түстер бар.

Пиксель деңгейінде және 256 немесе одан да көп түстермен жоғары ажыратымдылықтағы суреттерді салуға болатын «графикалық» режимді қосу туралы ойлануға болады. Негізгі шектеулер - Arduino ішкі жады және суретті сериялық сілтемені 9600 bod жіберуге кететін уақыт.

Кодқа таңбаны сақтау үшін бір байт және түстерді сақтау үшін бір байт қажет (алдыңғы биіктікте 3 бит, фон үшін 3, ашық/күңгірт және біреуі қалың үшін). Сонымен, 80x30 дисплейге 2400x2 = 4800 байт қажет, ол Mega -ге сәйкес келеді, бірақ Uno емес.

5 -қадам: көрсетеді

Көрсетулер
Көрсетулер
Көрсетулер
Көрсетулер
Көрсетулер
Көрсетулер

Жоғарыда әр дисплейдің жеке суреттері бар. Әр дисплейдің алдыңғы және артқы жағындағы фотосуреттер бар және олар ebay немесе осыған ұқсас көптеген брендтерді бейнелейді. Кейбіреулері I2C, кейбіреулері параллель, кейбіреулері үлкенірек қаріптерге ие, кейбіреулері Wordstar және басқа да ескі мәтіндік өңдеу бағдарламаларына сәйкес келетін толық 80 бағанды көрсете алады. Ардуино кодының мәтінінде толығырақ.

6 -қадам: схемалық

Төменде екі файл бар. Instructables.zip файлдарын өңдемейтіндіктен, олар.txt деп аталады. Оларды жүктеп алып, оларды.zip деп өзгертіңіз.

Pdf файлдары ретінде схема мен тақтаның орналасуы бар. Сондай -ақ, Seeed PCB пакеті бар. Бұл герберлер, егер сіз Seeed -ке кіріп, оны жүктесеңіз, ол герберлерді көрсетуі керек, содан кейін сіз ПХД жасай аласыз. 14 сегменттің тақтасы үлкен және бағасы біршама қымбат, бірақ кішірек тақтасы Seeed 10x10 см форматына сәйкес келеді, сондықтан 5 немесе 10 тақта үшін өте қолайлы - іс жүзінде жеткізу бағасы тақталарға қарағанда қымбат.

Дисплейдің көп бөлігін ПХД қажет етпей -ақ қолдануға әбден болады. PS2 розеткалық модульдері, RS232 қалқандары/модульдері бар. Кейбір дисплейлер I2C сияқты бірнеше сымдарды қолдана алады. Кейбіреулер SSD1289 дисплейлері адаптер тақталарымен бірге келеді және тікелей Mega -ге қосыла алады.

7 -қадам: Starburst дисплейі

Starburst дисплейі
Starburst дисплейі

Жұлдызды жарылыс дисплейі үлкенірек тақта және мультиплекстеу үшін нано мен 74xx чиптерін қолданады. Қанша дисплейдің тым күңгірттеніп кетуіне немесе тым қатты жыпылықтауға дейін мультиплекс жасауға болатынын анықтау үшін көптеген эксперименттер болды. Дисплейлер Futurlec сайтынан алынды https://www.futurlec.com/LEDDisp.shtml 14 сегменттің дисплейлері кіші әріптерді де орындай алады және оларды қажет болған жағдайда кодта өзгертуге болады. Бұл файлдарды.txt файлынан.zip деп өзгертіңіз

8 -қадам: Басқа дисплейлерге код қосу

Басқа дисплейлерге кодты қосуға болады. Бірінші қадам - бірдеңе, кез келген нәрсені алу, көрсету. Бұл пиксель немесе әріп болуы мүмкін. Бұл негізінен драйверлерді іздеуді, жүктеуді, тестілеуді, оны жинақтамауды табуды, содан кейін драйверді жоюды қажет етеді, сондықтан ол кейінірек шатаспайды, содан кейін жаңасын іздейді. Келесі қадам - дұрыс түсті көрсету үшін әріпті алу, себебі кейбір дисплейлер түстерді өзгертеді. Бақытымызға орай, әдетте, іске қосу кодындағы бір ғана нөмір мұны шешеді. Келесі қадам - уно немесе мега, дисплейдің ені, биіктігі, қаріп өлшемі, пернетақта түйреуіштері және қандай драйвер файлдарын қолдану керектігін анықтау үшін бірнеше жолдар жазу. Олар кодтың 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) эмуляциясын қолдандым. Басқа көптеген ретро компьютерлер бар, мысалы, Grant Searle FPGA эмуляциясы және нақты Z80 пайдалануды қалайтындар үшін RC2014. Көптеген ретрокомпьютерлер дисплей ретінде дербес компьютердегі терминалды бағдарламаны қолданады, мысалы Teraterm. Бұл ANSI жобасын жөндеудің көп бөлігі терминалды бағдарлама мен ANSI бағдарламасын қатар жүргізуді және экрандар бірдей көрінетініне көз жеткізуді қамтиды.

10 -қадам: Қосымша ойлар

Дисплейлердің көлемі ұлғайған сайын олар баяу және баяу болады. Кейіпкерді қайта сызу осы таңбадағы әрбір пиксельді қайта сызуды қамтиды, себебі фонның түсі де суреттелуі керек, сондықтан бәрі пиксельді қалай тез салуға болатынына байланысты. Кейбір түзетулер бар, мысалы, егер дисплей кіретін деректерді сақтай алмаса, мәтінді экран буферінде сақтаңыз, содан кейін мәтін келмейтін кезде толық экранды қайта өңдеңіз. Сіз көретін көптеген дисплейлер сату экранда әдемі суретті көрсетеді, бірақ олар көрсете алмайтын нәрсе - бұл суретті көрсету үшін қанша уақыт қажет, ал кейбір жағдайларда ол 5 секунд немесе одан да көп болуы мүмкін. I2C және SPI кіші дисплейлер үшін өте қолайлы, бірақ шамамен 50 бағаннан асатын кез келгенге 8 немесе 16 биттік деректер шинасы қажет.

Wordstar 9600 бауда қолдануға сәл ыңғайсыз, ал 19200 мәтінді айналдыру үшін әлдеқайда ыңғайлы, бірақ дисплейлер шынымен де ілесе алмайды.

Мен қолданған ең жылдам дисплей 16 биттік параллельді деректер шинасын жасау үшін 812 биттік сыртқы 512к жиіліктері бар пропеллер чипінде болды. Әр қаріп қошқарға алдын ала жүктелген. Деректерді дисплейге шығару үшін 74xx есептегіш чиптерінің каскады пайдаланылды. Бұл процессордың деректерді алу мен шығаруда ішкі өңдеулердің болмауын білдірді және жаңарту жылдамдығы пропеллер чипі түйреуішті ауыстыра алатындай жылдам болды. Бір таңқаларлығы, дисплейлер 20 МГц жиілігінде де бұл көрсеткішті сақтай алды, сондықтан толық экранды 30 миллисекундта ғана жаңартуға болады. Мұндай жылдамдық ұялы телефондарда көріп тұрғандай біркелкі жылжу үшін жеткілікті жылдам.

Пропеллер чипі осыдан он жыл бұрын озық болды және қазірде көп мөлшерде ішкі қошқарға ие ESP8266 және ESP32 нұсқалары бар. Дегенмен, бұл чиптерде әлі де көп түйреуіштер жоқ, сондықтан дисплейге орнатылған сыртқы қошқар чипінің ескі әдісін қолдануға әлі де болады.

Үлкен дисплейлер үшін СКД теледидарын немесе VGA экранын пайдалану және кодталған ANSI эмуляторларының кейбірін қарау арзанырақ болуы мүмкін, мысалы, VGA -ды тікелей басқаратын ESP32.

Сізге бұл жоба пайдалы деп үміттенемін.

Джеймс Мохэм

Аделаида, Австралия

Ұсынылған: