Агуулгын хүснэгт:

ANSI терминалуудын цуглуулга: 10 алхам
ANSI терминалуудын цуглуулга: 10 алхам

Видео: ANSI терминалуудын цуглуулга: 10 алхам

Видео: ANSI терминалуудын цуглуулга: 10 алхам
Видео: ТАКОВ МОЙ ПУТЬ В L4D2 2024, Долдугаар сарын
Anonim
ANSI терминалуудын цуглуулга
ANSI терминалуудын цуглуулга

Энэхүү төсөл нь Wordstar гэх мэт хуучирсан текст боловсруулагчийг ажиллуулахад тохиромжтой LCD дэлгэц дээр 80 баганатай текстийг харуулах замаар эхэлсэн юм. 0.96 -аас 6 инчийн хэмжээтэй өөр өөр дэлгэцүүдийг нэмж оруулав. Дэлгэц нь нэг ПХБ, түүнчлэн нэг Arduino ноорог/програмыг ашигладаг.

Компьютерт холбох RS232 цуваа холболт, гарны PS/2 залгуур байдаг. Дэлгэцийг боломжийн үнээр түгээмэл хэрэглэгддэг дэлгэцийг харуулахаар сонгосон. Санах ойгоос хамааран дэлгэц нь Arduino Nano, Uno эсвэл Mega ашигладаг.

Алхам 1: Дэлгэцийн хураангуй

Дэлгэцийн хураангуй
Дэлгэцийн хураангуй

480x320 нарийвчлалтай янз бүрийн дэлгэцүүд байдаг. Энэ нь 9х5 хэмжээтэй фонт, 80 баганатай текстийг зөвшөөрдөг. 320x240 нягтралтай, 9x5 фонт бүхий 7x3 хэмжээтэй 80 баганатай текстийг багтаасан төрөл бүрийн самбар байдаг. Мөн 160x120 ба 128x64 пиксел хэмжээтэй жижиг самбарууд байдаг. Мөн 20х4 ба 16х2 хэмжээтэй текст дэлгэц, эцэст нь 12х2 хэмжээтэй арван дөрвөн сегмент бүхий одны тэсрэлтийн дэлгэцийн самбар.

Зарим дэлгэц нь I2C ашигладаг, зарим нь SPI бөгөөд илүү том дэлгэцийн хувьд 16 битийн өгөгдлийн автобусыг илүү хурдан шинэчлэх боломжийг олгодог.

Жижиг дэлгэцүүд нь Arduino Uno ашигладаг. Том самбаруудад илүү их санах ой хэрэгтэй тул Mega ашиглана уу. Starburst дэлгэцийн самбар нь нано ашигладаг.

Энэ үед зургууд нь олон дэлгэц дээр шударга ёсыг хангаагүй гэж би хэлэх болно. Бяцхан цагаан олед дэлгэц нь маш тод, гэрэл гэгээтэй бөгөөд энэ нь камер анхаарлаа төвлөрүүлэхэд хүндрэл учруулж, одны гэрэлтүүлэгтэй дэлгэц нь бодит амьдрал дээр илүү хурц харагдаж байна.

Алхам 2: Техник хангамж

Техник хангамж
Техник хангамж

ПХБ нь аль болох олон дэлгэцтэй ажиллахаар хийгдсэн. Дөрвөн үсрэгч ашиглан Мега ба Юно хоёрын хооронд шилжихэд хялбар байдаг. 3V дээр ажилладаг дэлгэцүүдэд хүчдэл хуваагч эсэргүүцэл байдаг. I2C тээглүүрийг бүлгээр гаргаж ирдэг бөгөөд ингэснээр дэлгэцийг шууд залгах боломжтой болно. Терминал нь 9600 baud дээр ажилладаг бөгөөд үүнийг нэмэгдүүлэх боломжтой боловч том дэлгэцийн ихэнх нь үүнээс хамаагүй хурдан дахин зурагдахгүй. PS2 гар нь DIN6 залгуурт холбогддог. USB гар нь хямд адаптер залгууртай ажиллах болно. Та D9 дээрх 2 ба 3 -р зүүг холбосноор энгийн эргэх тест хийж болно, дараа нь гар дээр бичсэн тэмдэгтүүд дэлгэц дээр гарч ирнэ.

Зарим тохиолдолд ПХБ шаардлагагүй бөгөөд eBay дээр бэлэн модулиудтай ажиллах боломжтой байдаг, жишээлбэл PS2 адаптер, RS232 адаптер самбар, arduino самбар дээр шууд залгах дэлгэц гэх мэт.

Оддын гэрэлтүүлгийн дэлгэцийн тусдаа самбар байдаг - энэ зааварчилгааны дараа үзнэ үү.

Алхам 3: Програм хангамж

Доорх нь Package.txt нэртэй файл юм. Энэ нь үнэндээ.zip файл тул татаж аваад нэрийг нь өөрчилнө үү (Instructables нь zip файлыг зөвшөөрдөггүй). Arduino ноорог/програмыг багтаасан бөгөөд энэ нь бүх дэлгэц дээр ашиглагддаг цорын ганц програм юм. Дэлгэц бүрийн хувьд бүх.zip файлууд байдаг.

Хөтөлбөрийн эхэнд цуврал #тодорхойлолтуудыг оруулсан болно. Дэлгэцтэй тохирч байгаа зүйлийг комментоор бичихгүй. Tools/Board ашиглан Uno, Mega эсвэл Nano -г сонгоно уу. Самбарыг өөрчлөх нь кодын нэг мөрийг өөрчлөхтэй адил хялбар юм.

Олон дэлгэцтэй ажиллахад тулгардаг бэрхшээлүүдийн нэг нь тэд бүгд өөрсдийн програм хангамжийн драйвер хэрэгтэй байгаа юм шиг санагддаг. Эдгээрийг бүгд багцад оруулсан болно. Туршилт нь багцыг авч, эхнээс нь шинэ машин дээр дахин суулгах явдал байв. Та мөн Github, Adafruit, LCDWiki -ээс код авах боломжтой. Шинэ хувилбарууд ажиллахгүй байгаа хэд хэдэн тохиолдол байдаг тул бүх ажлын хувилбаруудыг zip -д оруулсан болно. Заримдаа нэг файлын нэрийг өөр хувилбараар ашигладаг байсан тул нэг жолооч нөгөөгөө ажиллуулахаа больсон тохиолдол гардаг. Програмын дээд хэсэгт коммент хэсэгт драйвер бүрийг хэрхэн суулгахыг тайлбарласан болно. Ихэнх нь Arduino IDE -ээс Sketch/Include Library/ZIP Library -ийг нэмж суулгасан бөгөөд энэ нь zip файлыг авч c: / users / computername / mydocuments / arduino / library -д байрлуулдаг.

Хэрэв та зөвхөн нэг дэлгэц ашиглаж байгаа бол эдгээр libaries -ийн заримыг суулгах шаардлагагүй болно. Наад зах нь танд гарны хоёр файл хэрэгтэй бөгөөд нэг дэлгэц дээр нэг файл хэрэгтэй болно. Зарим дэлгэц код хуваалцдаг. Хөтөлбөрийн дээд хэсэгт байгаа тайлбар дээр Adafruit -аас gfx номын санг авах гэх мэт илүү дэлгэрэнгүй заавар байдаг.

Бүх дэлгэцүүд ижил Arduino ноорог ашигладаг тул дэлгэцийг өөрчлөх нь доорх мөрүүдийн аль нэгийг тайлбарлахад л үлддэг.

// Янз бүрийн дэлгэц, доорх тайлбаруудын аль нэгийг нь тайлбарлаагүй үлдээгээрэй /3.5inch_Arduino_Display-Mega2560. Доорх зарим сонголтуудаас арай удаан боловч илүү унших боломжтой фонт, том дэлгэцтэй, 5сек ачаалах //#DISPLAY_480X320_MCUFRIEND_ILI9486 // 3.5 ", 480x320, текст 80x32, мега, 5x9 фонтыг зөвхөн мега зориулалттай. uno pin, power, D0-D14, A0-A5, ssd1289 40 pin модулаас илүү гоё фонт боловч арай удаан 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-аас бага (no12). Хурдан //#тодорхойлох DISPLAY_320X240_SSD1289_53COL // 3.5 ", 320x240, текст 53x24, мега, 9х5 фонт, фонтыг засах боломжтой. Хурдан //#тодорхойлох DISPLAY_320X240_SSD1289_80COL // 3.5", 320x240, текст 80x30 фонт, мега, жижиг, дээрх хоёроос хурдан драйвер, эдгээрээс хамгийн хурдан нь spi/i2c гэхээсээ илүү 16 битийн шууд дэлгэц юм.##тодорхойлох DISPLAY_160X128_ST7735 // 1.8 ", 160x128, текст 26x12, uno (ILI9341) SPI 128x160 //#define DISPLAY_128X64_OLED_WHITE // 0.96 ", 128x64, текст 21x6, mega, I2C, хар цагаан өнгөтэй (энэ самбарын tft номын сан, бүх код, гарны програмын хадгалах сан дууссан, гэхдээ хуцны хэрэгцээ маш бага байгаа тул зөвхөн мега дээр ажилладаг) //#DISPLAY_20X4 тодорхойлох // текст 20x4, uno, I2C бүхий LCD, LCD текст https://www.arduino.cc/en/Reference/LiquidCrystal //#тодорхойлох DISPLAY_16X2 // текст 16x2, uno, uno -д залгаад 4 -өөс 10 хүртэлх зүү ашигладаг //#DISPLAY_STARBURST тодорхойлох // текст 12x2, нано, нано хянагчтай одны дэлгэцийн дэлгэц //#DISPLAY_320X240_QVGA_SPI_ILI9341 тодорхойлох / /2.2 ", 320x240, текст 11x8, uno, том фонт, uno, 3v дохио, 9 зүү бүхий SPI дэлгэцийг Bodmer's Instructables дээрээс үзнэ үү-uno https://www.instructables.com/id/Arduino-TFT-display-and-font- номын сан/ доод хэсэгт байгаа зипийг аваад gfx болон 9341 -ийг гараар arduino номын сангийн хавтсанд оруулна уу

Алхам 4: ANSI стандарт

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

ANSI нь дэлгэцийг цэвэрлэх, курсороо хөдөлгөж, өнгийг өөрчлөх энгийн командуудыг зөвшөөрдөг. Цөөн хэдэн зураг дээр бүх урд болон арын өнгийг харуулсан демо байна. Эдгээр нь улаан, шар, ногоон, цэнхэр, цэнхэр, ягаан, хар, цагаан, хар саарал, цайвар саарал бөгөөд өнгө нь тод эсвэл бүдэг байж болох тул урд талын 16, арын 16 өнгө байдаг.

Та пикселийн түвшинд 256 ба түүнээс дээш өнгөөр илүү өндөр нарийвчлалтай зураг зурах боломжтой "график" горимд оруулах талаар бодох боломжтой. Гол хязгаарлалтууд нь Arduino -ийн дотоод санах ой болон 9600 baud дээр цуврал линкээр зураг илгээх хугацаа юм.

Кодод тэмдэгтийг хадгалахын тулд нэг байт, өнгийг хадгалахын тулд нэг байт хэрэгтэй болно (урд талд 3 бит, арын дэвсгэр дээр 3, тод/бүдэг, нэг нь тод өнгөтэй). Тиймээс 80х30 хэмжээтэй дэлгэцэнд 2400x2 = 4800 байт хэрэгтэй бөгөөд энэ нь Mega -д багтах боловч Uno биш юм.

Алхам 5: Дэлгэц

Дэлгэц
Дэлгэц
Дэлгэц
Дэлгэц
Дэлгэц
Дэлгэц

Дээр дурдсан дэлгэц бүрийн гэрэл зураг байна. Дэлгэц бүрийн урд ба хойд талын гэрэл зургууд байдаг бөгөөд тэдгээр нь ebay эсвэл үүнтэй төстэй олон брэндүүдийг төлөөлдөг. Зарим нь I2C, зарим нь зэрэгцээ, зарим нь том фонттой, зарим нь Wordstar болон бусад хуучин текст боловсруулах програмд тохирсон 80 баганыг харуулах боломжтой. Ардуино кодын текст дээр илүү дэлгэрэнгүй мэдээлэл бий.

Алхам 6: Схем

Доорх хоёр файл байна. Instructables нь.zip файлуудыг зохицуулдаггүй тул тэдгээрийг.txt гэж нэрлэдэг. Тэднийг татаж аваад.zip гэж нэрлэ.

Pdf файл хэлбэрээр схем ба самбарын байршил байдаг. Мөн Seeed ПХБ -ийн багц байдаг. Эдгээр нь герберүүд бөгөөд хэрэв та Seeed руу орж үүнийг байршуулах юм бол герберүүдийг харуулах ёстой бөгөөд та дараа нь ПХБ хийх боломжтой болно. 14 сегментийн самбар нь том хэмжээтэй бөгөөд арай илүү үнэтэй боловч жижиг нь Seeed -ийн 10х10см хэмжээтэй форматтай таарч байгаа тул 5 эсвэл 10 самбарын хувьд нэлээд боломжийн байдаг - үнэндээ тээвэрлэлт нь самбараас илүү үнэтэй байдаг.

ПХБ шаардлагагүй олон дэлгэцийг ашиглах боломжтой. PS2 сокет модулиуд, RS232 бамбай/модулиуд бүгд ebay эсвэл үүнтэй төстэй хэлбэрээр байдаг. I2C дэлгэц гэх мэт зарим дэлгэцүүд хэдхэн холбох утсыг ашиглаж болно. Зарим SSD1289 дэлгэцүүд нь адаптер самбартай бөгөөд мега руу шууд залгах боломжтой байдаг.

Алхам 7: Starburst дэлгэц

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) дээрх эмуляцийг ашигласан. Бусад олон чимэг компьютерууд байдаг, жишээлбэл, Grant Searle -ийн FPGA эмуляци, жинхэнэ Z80 ашиглахыг хүсдэг хүмүүст зориулсан RC2014. Олон ретрокомпьютерууд Тературм гэх мэт дэлгэц дээрх терминал програмыг компьютер дээрээ ашиглах хандлагатай байдаг. Энэхүү ANSI төслийг дибаг хийх явцад терминал болон ANSI програмыг зэрэг ажиллуулж, дэлгэц ижил төстэй эсэхийг шалгах шаардлагатай байв.

Алхам 10: Цаашдын бодол

Дэлгэцийн хэмжээ нэмэгдэх тусам тэд улам бүр удааширч байна. Тэмдэгтийг дахин зурах нь тухайн тэмдэгт дэх пиксел бүрийг дахин зурах явдал юм, учир нь арын өнгийг зурах шаардлагатай байдаг тул бүх зүйл пикселийг хэр хурдан зурахаас хамаарна. Зарим тохируулга байдаг, жишээлбэл, хэрэв дэлгэц ирж буй өгөгдлийг дагаж чадахгүй бол текстийг дэлгэцийн буферт хадгалаад дараа нь текст ирэхгүй бол бүтэн дэлгэцийн дахин зураг авалт хий. Таны харж буй олон дэлгэц Борлуулалт нь үзэсгэлэнтэй зургийг дэлгэцэн дээр харуулдаг боловч харуулахгүй байж болох зүйл бол энэ зургийг үзүүлэхэд хэр удаан хугацаа шаардагддаг, зарим тохиолдолд 5 секунд ба түүнээс дээш байж болно. I2C ба SPI нь жижиг дэлгэцүүдэд тохиромжтой боловч 50 орчим баганаас дээш хэмжээтэй бүх зүйлд 8 эсвэл 16 битийн өгөгдлийн автобус хэрэгтэй.

Wordstar нь 9600 baud дээр ашиглахад жаахан төвөгтэй бөгөөд 19200 нь текстийг гүйлгэхэд илүү ашиглагддаг боловч дэлгэц нь үнэхээр гүйцэхгүй байна.

Миний ашиглаж байсан хамгийн хурдан дэлгэц нь 8 битийн 512k хэмжээтэй хоёр чиптэй Propeller чип дээр байсан бөгөөд 16 битийн зэрэгцээ өгөгдлийн автобус үүсгэсэн. Фонт бүрийг хуцанд урьдчилан ачаалсан болно. Өгөгдлийг дэлгэцэн дээр гаргахын тулд 74xx тоолуурын чип бүхий каскадыг ашигласан. Энэ нь CPU дотор өгөгдөл авах, гаргах дотоод боловсруулалт хийгдээгүй гэсэн үг бөгөөд шинэчлэлтийн хурд нь сэнсний чип зүүг сольж чаддаг шиг хурдан байв. Гайхалтай нь дэлгэцүүд 20 МГц давтамжтай байсан ч үүнийг гүйцэлдүүлж чадсан тул ердөө 30 миллисекундын дотор бүтэн дэлгэцийн шинэчлэлтийг хийх боломжтой байв. Ийм хурд нь гар утсан дээр харж байгаа шиг гүйлгэх ажлыг жигд хийхэд хангалттай хурдан юм.

Сэнсний чип нь арав гаруй жилийн өмнө хамгийн орчин үеийн байсан бөгөөд одоо их хэмжээний дотоод хуцтай ESP8266 ба ESP32 зэрэг олон сонголтууд гарч ирэв. Гэсэн хэдий ч эдгээр чипсүүд асар олон тооны зүүгүй хэвээр байгаа тул дэлгэцэн дээр байрлуулсан гадаад хуцны чипийг хуучин аргаар ашиглах нь ашигтай байж магадгүй юм.

Илүү том дэлгэцийн хувьд LCD телевизор эсвэл VGA дэлгэц ашиглаж, кодлогдсон ANSI эмуляторуудыг харах нь илүү хямд байж магадгүй, жишээлбэл VGA -ийг шууд удирддаг ESP32.

Энэ төсөл танд хэрэгтэй гэж найдаж байна.

Жеймс Мокхам

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

Зөвлөмж болгож буй: