Sisukord:

ANSI terminalide kogu: 10 sammu
ANSI terminalide kogu: 10 sammu

Video: ANSI terminalide kogu: 10 sammu

Video: ANSI terminalide kogu: 10 sammu
Video: Не выбрасывайте двигатель стеклоподъемника автомобиля 2024, Juuli
Anonim
ANSI terminalide kogu
ANSI terminalide kogu

See projekt sai alguse viisist kuvada 80 veeru teksti LCD-ekraanil, mis sobib vanamoodsa tekstitöötlusprogrammi, näiteks Wordstari käitamiseks. Lisati mitmesuguseid muid kuvasid suurusega 0,96 kuni 6 tolli. Ekraanid kasutavad ühte trükkplaati ja ühte Arduino visandit/programmi.

Arvutiga ühendamiseks on RS232 jadaühendus ja klaviatuuri jaoks PS/2 pesa. Ekraanid valiti esindama neid, mis on tavaliselt saadaval mõistliku hinnaga. Sõltuvalt vajalikust mälust kasutavad kuvarid Arduino Nano, Uno või Mega.

1. samm: kuvamiste kokkuvõte

Ekraanide kokkuvõte
Ekraanide kokkuvõte

Ekraanid on eraldusvõimega 480x320. See võimaldab 9x5 fonti ja 80 veeruga teksti. Seal on erinevaid tahvleid eraldusvõimega 320x240, 9x5 fonti ja ka väga pisike 7x3 font, mis võimaldab 80 veergude teksti. On ka väiksemaid tahvleid 160x120 ja 128x64 pikslitega. Samuti 20x4 ja 16x2 tekstiekraanid ning lõpuks 12x2 neljateistkümne segmendiga täheplaat.

Mõned kuvarid kasutavad I2C -d, mõned SPI -d ja suuremate kuvarite puhul 16 -bitine andmesiin kiirema värskendamiskiiruse jaoks.

Väiksemad kuvarid kasutavad Arduino Unot. Suuremad tahvlid vajavad rohkem mälu ja seega kasutage Mega. Tähekujuline ekraaniplaat kasutab Nano.

Siinkohal võiksin mainida, et fotod ei tee paljudele kuvaritele õigust. Pisike valge OLED -ekraan on väga karge ja särav, mis raskendas kaamera fokuseerimist ning tähepurskega LED -ekraan näeb reaalses elus palju teravam välja.

Samm: riistvara

Riistvara
Riistvara

PCB on loodud töötama võimalikult paljude kuvaritega. Nelja hüppaja abil on lihtne vahetada Mega ja Uno vahel. 3V toitel töötavate kuvarite jaoks on olemas pingejaotustakistid. I2C tihvtid tuuakse välja rühmana, nii et kuvarid saab otse ühendada. Terminal töötab 9600 baudiga ja kuigi seda saab suurendada, ei joonista paljud suuremad ekraanid sellest palju kiiremini ümber. PS2 klaviatuur ühendatakse DIN6 pesaga. USB -klaviatuurid töötavad ka odava adapteripistikuga. Saate teha lihtsa tagasilöögikatset, ühendades D9 tihvtid 2 ja 3 ning seejärel ilmuvad ekraanile klaviatuuril sisestatud märgid.

Mõnel juhul pole PCB-d vaja ja eBay-s saadaval olevate moodulitega (nt PS2-adapterid, RS232-adapterplaadid ja ekraanid, mis ühendatakse otse arduino-plaatidega) on võimalik asjad tööle saada.

Tähepurskega LED -ekraani jaoks on olemas ka eraldi tahvel - vt hiljem selles juhendis.

Samm: tarkvara

Allpool on fail nimega Package.txt See on tegelikult.zip -fail, nii et laadige see alla ja nimetage see ümber (Instructables ei luba zip -faile). Kaasas on Arduino visand/programm ja see on üks programm, mida kasutavad kõik kuvarid. Samuti on iga kuvari jaoks olemas kõik.zip -failid.

Programmi alguses on rida #määratlusi. Tühistage kommentaarile see, mis vastab ekraanile. Kasutage tööriistu/plaati, et valida Uno, Mega või Nano. Tahvlite vahetamine on sama lihtne kui koodi ühe rea muutmine.

Üks väljakutseid paljude kuvaritega töötamisel on see, et kõik vajavad oma tarkvaradraivereid. Kõik need on pakendis. Testimine hõlmas pakendi võtmist ja uuele masinale uuesti nullist uuesti installimist. Samuti saate lähtekoodi hankida Githubist ja Adafruitist ning LCDWikist. On paar juhtumit, kus uuemad versioonid ei tööta, nii et kõik töötavad versioonid on ZIP -is. Aeg -ajalt esines juhtumeid, kus üks draiver peatas teise töötamise, kuna kasutas sama failinime, kuid erinevaid versioone. Programmi ülaosas olevates kommentaarides on kirjeldus, mis näitab, kuidas iga draiverit installida. Enamik neist on installitud Arduino IDE -st koos Sketch/Include Library/Add ZIP teegiga ja see võtab zip -faili ja paneb selle c: / users / computername / mydocuments / arduino / raamatukogudesse.

Kui kasutate ainult ühte ekraani, ei pea mõnda neist raamatukogudest installima. Vähemalt vajate kahte klaviatuurifaili ja ühte konkreetse ekraani jaoks. Mõned kuvad jagavad koodi. Programmi ülaosas olevates kommentaarides on üksikasjalikumad juhised, sealhulgas gfxi kogu hankimine Adafruitist.

Kuna kõik kuvarid kasutavad sama Arduino visandit, on kuvarite vahetamine vaid ühe alloleva rea kommenteerimata jätmine:

// Erinevad kuvarid, jätke üks järgmistest kommentaarideta /3.5inch_Arduino_Display-Mega2560. Aeglasem kui mõned alltoodud suvandid, kuid loetavam font ja suurem ekraan, 5-sekundiline alglaadimine //#define DISPLAY_480X320_MCUFRIEND_ILI9486 // 3.5 ", 480x320, tekst 80x32, mega, 5x9 font, ainult mega jaoks, kuid kasutab ainult uno nööpnõelad, toide, D0-D14, A0-A5, ilusam font kui ssd1289 40-pin moodul, kuid palju aeglasem https://www.arduinolibraries.info/libraries/mcufriend_kbv https://github.com/adafruit/Adafruit -GFX-raamatukogu //#define DISPLAY_320X240_MCUFRIEND_ILI9341 // 2.4 ", 320x240, tekst 53x24, mega //#define DISPLAY_320X240_SSD1289_40COL // 3.5", 320x240, tekst 40x20, mega, UTFT raamatukogu (ilma fontideta, mis on väiksemad kui 8x12) Kiire //#define DISPLAY_320X240_SSD1289_53COL // 3.5 ", 320x240, tekst 53x24, mega, 9x5 font, saab fonti redigeerida. Fast //#define DISPLAY_320X240_SSD1289_80COL // 3.5", 320x240, tekst 80x30, mega, pisike 7x3 font, saab fonti redigeerida, kiirem draiver kui kaks ülaltoodut, kiireim neist 16 -bitise otse draivina ekraanile, mitte spi/i2c //#define DISPLAY_160X128_ST7735 // 1.8 ", 160x128, tekst 26x12, uno (ILI9341) SPI 128x160 //#define DISPLAY_128X64_OLED_WHITE // 0,96 ", 128x64, tekst 21x6, mega, I2C, olete valge ja must (selle plaadi TFT -kogu, kogu kood ja klaviatuur saavad programmi salvestusruumi otsa, kuigi mälu vajadused on väga väikesed, seega ainult töötab megaga) //#define DISPLAY_20X4 // tekst 20x4, uno, LCD koos I2C -ga, tekst LCD https://www.arduino.cc/en/Reference/LiquidCrystal //#define DISPLAY_16X2 // tekst 16x2, uno, ühendub uno -ga, kasutab nööpnõelaid 4 kuni 10 //#define DISPLAY_STARBURST // tekst 12x2, nano, tähekujuline ekraan koos nanokontrolleriga //#define DISPLAY_320X240_QVGA_SPI_ILI9341 / /2,2 ", 320x240, tekst 11x8, uno, suur font, uno, 3v signaalid, 9-pin SPI-ekraan, vt Bodmeri juhiseid-uno https://www.instructables.com/id/Arduino-TFT-display-and-font- teegi/ hankige zip allosas ja pange gfx ja 9341 käsitsi arduino raamatukogu kausta

4. samm: ANSI standard

ANSI standard
ANSI standard

ANSI võimaldab ekraani tühjendamiseks, kursori liigutamiseks ja värvide muutmiseks lihtsaid käske. Mõnel fotol on demo, mis näitab kõiki esiplaani ja taustavärve. Need on punased, kollased, rohelised, sinised, tsüaansinised, magenta, mustad, valged, tumehallid, helehallid ning värvid võivad olla heledad või hämarad, seega on esiplaanil 16 ja taustal 16 värvi.

On täiesti võimalik mõelda graafikarežiimi lisamisele, kus saate joonistada palju suurema eraldusvõimega pilte pikslite tasemel ja 256 või enama värviga. Peamised piirangud on Arduino sisemälu ja aeg, mis kulub pildi saatmiseks 9600 baudiga jadaühenduse kaudu.

Kood vajab märgi salvestamiseks ühte baiti ja värvide salvestamiseks ühte baiti (3 bitti esiplaanil, 3 tausta, üks heledat/hämarat ja üks paks). Nii et 80x30 ekraan vajab 2400x2 = 4800 baiti, mis mahub mega, kuid mitte Uno.

5. samm: kuvab

Kuvab
Kuvab
Kuvab
Kuvab
Kuvab
Kuvab

Ülal on fotod igast eraldi kuvarist. Iga ekraani esi- ja tagaküljel on fotosid ning need esindavad paljusid ebay või sarnaste kaubamärkide kaubamärke. Mõned on I2C, mõned on paralleelsed, mõnel on suuremad fondid, mõnel saab kuvada täisveergu 80, mis sobivad Wordstarile ja teistele vanadele tekstitöötlusprogrammidele. Arduino koodi tekstis on rohkem üksikasju.

6. samm: skemaatiline

Allpool on kaks faili. Neid nimetatakse.txt -ks, kuna Instructables ei käsitle.zip -faile. Laadige need alla ja nimetage need ümber.zipiks.

Seal on skemaatiline ja tahvli paigutus pdf -failidena. Samuti on pakett Seeed PCB jaoks. Need on gerberid ja kui lähete lehele Seeed ja laadite selle üles, peaks see kuvama gerberid ja saate seejärel PCB -sid teha. 14 segmendiga plaat on suur ja maksab üsna palju rohkem, kuid väiksem sobib Seeed eelistatud 10x10 cm formaadile, seega on see 5 või 10 plaadi jaoks üsna mõistlik - tegelikult maksab saatmine rohkem kui lauad.

Paljusid kuvareid on täiesti võimalik kasutada ilma trükkplaati vajamata. Ebayst vms on saadaval PS2 pesamoodulid, RS232 kilbid/moodulid. Mõned kuvarid, näiteks I2C, võivad lihtsalt kasutada mõnda ühendamisjuhet. Mõnel, näiteks SSD1289 ekraanil, on adapterplaadid ja need saab otse Mega külge ühendada.

Samm 7: Starburst Display

Starburst Display
Starburst Display

Starburst -ekraan on suurem plaat ja kasutab multipleksimiseks Nano ja mitmeid 74xx kiipe. Tehti palju katseid, et teha kindlaks, mitu kuvarit saate multipleksida, enne kui need liiga hämaraks muutuvad või värelus liiga märgatavaks muutub. Ekraanid pärinevad Futurlecilt https://www.futurlec.com/LEDDisp.shtml 14 segmendi kuvarid võivad teha ka väiketähti ja neid saab vajadusel koodis muuta. Nimetage need failid ümber.txt -st.zip -failiks

8. samm: koodi lisamine teistele kuvaritele

Teiste kuvarite jaoks on võimalik koodi lisada. Esimene samm on midagi kuvada. See võib olla piksel või täht. See hõlmab peamiselt draiverite otsimist, nende allalaadimist, testimist, selle leidmist ei kompileeri, seejärel selle draiveri desinstallimist, et see hiljem segadust ei tekitaks, ja seejärel proovida uut. Järgmine samm on saada õige värviga kuvatav täht, kuna mõned identsed kuvarid pööravad värvid ümber. Õnneks parandab selle tavaliselt ainult üks number käivituskoodis. Järgmine samm on kirjutada paar rida, et määratleda, kas kasutada uno või mega, ekraani laiust, kõrgust, fondi suurust, klaviatuuri nööpnõelu ja milliseid draiverifaile kasutada. Need algavad koodi 39. realt ja saate kopeerida olemasolevate kuvarite vormingu.

Järgmisena tuleb minna reale 451 ja lisada käivituskood. Siin saate määrata taustavärvi ja pööramise ning käivitada kuva.

Järgmisena tuleb minna reale 544 ja lisada tähemärgi kuvamiseks kood. Mõnel juhul on see vaid üks rida, nt

my_lcd. Draw_Char (xPixel, yPixel, c, tftForecolor, tftBackcolor, 1, 0); // x, y, sümbol, ees, taga, suurus, režiim

Järgmine on minna reale 664 ja lisada kood piksli joonistamiseks. Jällegi on see mõnikord ainult üks rida, näiteks:

tft.drawPixel (xPixel, yPixel, tftForecolor);

Lõpuks minge reale 727 ja lisage kood, et joonistada näiteks kursorile vertikaalne joon

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

Programm sorteerib ekraani laiuse ja fondi suuruse põhjal selliseid asju nagu mälu eraldamine ekraanipuhvri jaoks.

9. samm: Wordstari demonstratsioon

Seda tehti CP/M arvuti abil ja siin on palju võimalusi. Mul oli vaja midagi kiiresti seadistada, seega kasutasin ESP32 (Google ESP32 CP/M) emulatsiooni. Saadaval on ka palju teisi retroarvuteid, näiteks Grant Searle'i FPGA emulatsioon ja RC2014 neile, kes eelistavad kasutada tõelist Z80. Paljud retroarvutid kasutavad kuvarina arvutipõhist terminaliprogrammi, nt Teraterm. Selle ANSI projekti silumine hõlmas palju terminaliprogrammi ja ANSI programmi paralleelset käivitamist ning ekraanide identiteedi tagamist.

10. samm: täiendavaid mõtteid

Kui kuvarid suurenevad, muutuvad need aeglasemaks ja aeglasemaks. Märgi ümberjoonistamine hõlmab selle tähemärgi iga piksli uuesti joonistamist, kuna ka taustavärv tuleb joonistada, nii et kõik sõltub sellest, kui kiiresti saate piksli joonistada. On mõningaid muudatusi, näiteks kui ekraan ei suuda saabuvate andmetega sammu pidada, salvestage lihtsalt tekst ekraanipuhvrisse ja joonistage täisekraan uuesti, kui teksti enam ei tule. Paljud ekraanid, mida näete müük näitab ekraanil ilusat pilti, kuid mida nad ei pruugi näidata, on see, kui kaua selle pildi kuvamiseks kulus ja mõnel juhul võib see olla 5 sekundit või rohkem. I2C ja SPI sobivad suurepäraselt väiksemate kuvarite jaoks, kuid kõik, mis ületab 50 veergu, vajab 8- või 16 -bitist andmesiini.

Wordstari kasutamine 9600 baudi juures on pisut keeruline ja 19200 on teksti kerimiseks palju kasutatavam, kuid kuvarid ei suuda tõesti sammu pidada.

Kiireim ekraan, mida olen kasutanud, oli propelleri kiibil koos kahe 8 -bitise välise 512k ram -kiibiga, et luua 16 -bitine paralleelne andmesiin. Iga font laaditi rammi ette. Andmete kuvamiseks ekraanile kasutati 74xx loendurikiipide kaskaadi. See tähendas, et protsessori sisemine töötlemine andmete hankimisel ja väljastamisel puudus ning värskendussagedus oli nii kiire, kui propelleri kiip suutis tihvti vahetada. Üllataval kombel suutsid kuvarid sellega sammu pidada, isegi 20Mhz, ja nii oli võimalik täisekraanvärskendust teha vaid 30 millisekundiga. Selline kiirus on piisavalt kiire, et sujuvalt kerida, nagu näete mobiiltelefonides.

Propelleri kiip oli tipptasemel üle kümne aasta tagasi ja nüüd on rohkem võimalusi, sealhulgas ESP8266 ja ESP32, millel on palju sisemist mälu. Nendel kiipidel pole aga endiselt tohutul hulgal nööpnõelasid, nii et ekraani väljundiga välise rammi kiibi vana-skooli viisi kasutamine võib siiski olla väärt.

Suuremate kuvarite puhul võib olla odavam kasutada LCD -teleriekraani või VGA -ekraani ja vaadata mõningaid kodeeritud ANSI -emulaatoreid, nt ESP32, mis juhivad otse VGA -d.

Loodan, et leiate selle projekti kasulikuks.

James Moxham

Adelaide, Austraalia

Soovitan: