Բովանդակություն:

ANSI տերմինալների հավաքածու. 10 քայլ
ANSI տերմինալների հավաքածու. 10 քայլ

Video: ANSI տերմինալների հավաքածու. 10 քայլ

Video: ANSI տերմինալների հավաքածու. 10 քայլ
Video: Սխալ 3E, 3C, EA (Samsung լվացքի մեքենա) 2024, Հուլիսի
Anonim
ANSI տերմինալների հավաքածու
ANSI տերմինալների հավաքածու

Այս նախագիծը սկսվեց որպես 80 սյունակ տեքստ LCD էկրանին ցուցադրելու միջոց, որը հարմար է հնացած բառամշակիչ գործարկելու համար, ինչպիսին է Wordstar- ը: Ավելացվել են տարբեր այլ ցուցադրիչներ ՝ 0.96 -ից մինչև 6 դյույմ չափերով: Էկրաններն օգտագործում են մեկ PCB, ինչպես նաև մեկ Arduino էսքիզ/ծրագիր:

Կա սերիական RS232 միացում `համակարգչին միանալու համար և PS/2 վարդակից` ստեղնաշարի համար: Theուցադրական սարքերն ընտրվել են ՝ մատչելի գներով մատչելի: Կախված անհրաժեշտ հիշողությունից, դիսփլեյները օգտագործում են Arduino Nano, Uno կամ Mega:

Քայլ 1: Sumուցադրությունների ամփոփում

Sumուցադրությունների ամփոփում
Sumուցադրությունների ամփոփում

Կան տարբեր դիսփլեյներ ՝ 480x320 թույլատրությամբ: Սա թույլ է տալիս 9x5 տառատեսակ և 80 սյունակ տեքստ: Կան տարբեր տախտակներ `320x240 թույլատրությամբ, 9x5 տառատեսակներով և նաև շատ փոքր 7x3 տառատեսակով` 80 սյունակ տեքստ թույլ տալու համար: Կան նաև ավելի փոքր տախտակներ ՝ 160x120 և 128x64 պիքսելներով: Նաև 20x4 և 16x2 տեքստային էկրաններ, և վերջապես ՝ 12x2 տասնչորս հատվածի աստղադիտման տախտակ:

Որոշ դիսփլեյներ օգտագործում են I2C, ոմանք ՝ SPI, իսկ ավելի մեծ դիսփլեյների համար ՝ 16 բիթանոց տվյալների ավտոբուս ՝ ավելի արագ թարմացման արագությունների համար:

Փոքր էկրաններն օգտագործում են Arduino Uno- ն: Ավելի մեծ տախտակները ավելի շատ հիշողության կարիք ունեն, ուստի օգտագործեք Mega: Աստղաշատ ցուցադրման տախտակն օգտագործում է Nano:

Այս պահին ես կարող եմ նշել, որ լուսանկարներն արդարություն չեն ցուցաբերում շատ ցուցադրումների նկատմամբ: Փոքր սպիտակ ձեթով էկրանը շատ փխրուն և պայծառ է, ինչը դժվարացրել է ֆոտոխցիկի կենտրոնացումը, իսկ աստղային պայթյունով էկրանն իրական կյանքում շատ ավելի կտրուկ տեսք ունի:

Քայլ 2: Սարքավորումներ

Սարքավորումներ
Սարքավորումներ

PCB- ն նախագծված է հնարավորինս շատ էկրաններով աշխատելու համար: Չորս թռիչքի միջոցով հեշտ է փոխվել Mega- ի և Uno- ի միջև: Կան լարման բաժանարար դիմադրիչներ `3 Վ լարման վրա աշխատող դիսփլեյների համար: I2C կապանքները դուրս են բերվում խմբով, որպեսզի ցուցադրումները միացվեն ուղղակիորեն: Տերմինալը աշխատում է 9600 baud- ով, և եթե դա կարող է ավելացվել, շատ ավելի մեծ էկրաններ չեն վերագրանցվի, քան սա: PS2 ստեղնաշարը միանում է DIN6 վարդակին: USB ստեղնաշարերը կաշխատեն նաև էժան ադապտերային վարդակից: Դուք կարող եք կատարել մի պարզ loopback թեստ ՝ D9- ում միացնելով 2 -րդ և 3 -րդ կապերը, այնուհետև էկրանին կհայտնվեն ստեղնաշարի վրա մուտքագրված նիշերը:

Որոշ դեպքերում PCB- ն անհրաժեշտ չէ, և հնարավոր է ձեռք բերել ebay- ում առկա նախապես պատրաստված մոդուլներով աշխատող բաներ, օրինակ ՝ PS2 ադապտերներ, RS232 ադապտերային տախտակներ և ցուցադրումներ, որոնք միանում են անմիջապես arduino տախտակներին:

Կա նաև առանձին տախտակ աստղագայթային լուսադիոդային ցուցադրման համար - տե՛ս ավելի ուշ այս Հրահանգում:

Քայլ 3: Softwareրագրակազմ

Ստորև բերված է Package.txt անունով ֆայլ: Սա իրականում.zip ֆայլ է, այնպես որ ներբեռնեք և վերանվանեք այն (Instructables- ը թույլ չի տալիս zip ֆայլեր): Ներառված է Arduino- ի ուրվագիծը/ծրագիրը, և սա մեկ ծրագիր է, որն օգտագործվում է բոլոր էկրանների կողմից: Կան նաև բոլոր.zip ֆայլերը յուրաքանչյուր ցուցադրման համար:

Theրագրի սկզբում տեղադրված են #սահմանվող հայտարարությունների շարք: Մեկնաբանեք այն, որը համապատասխանում է ցուցադրմանը: Օգտագործեք Գործիքներ/տախտակ ՝ Uno, Mega կամ Nano ընտրելու համար: Տախտակները փոխելը նույնքան պարզ է, որքան կոդի մեկ տող փոխելը:

Շատ էկրանների հետ աշխատելու մարտահրավերներից մեկն այն է, որ նրանց բոլորին թվում է, թե իրենց ծրագրային ապահովման վարորդներն են պետք: Սրանք բոլորը ներառված են փաթեթում: Փորձարկումը ներառում էր փաթեթը վերցնելը և այն ամբողջովին զրոյից նոր մեքենայի վրա նորից տեղադրելը: Կարող եք նաև կոդի աղբյուր բերել Github- ից և Adafruit- ից և LCDWiki- ից: Կան մի քանի դեպք, երբ նոր տարբերակները չեն աշխատում, այնպես որ բոլոր աշխատանքային տարբերակները ներառված են zip- ում: Երբեմն լինում էին դեպքեր, երբ մեկ վարորդը մյուսին կանգնեցնում էր մեկին, քանի որ նրանք օգտագործում էին նույն ֆայլի անունը, բայց տարբեր տարբերակներ: Theրագրի վերևում գտնվող մեկնաբանություններում կա նկարագրություն, որը ցույց է տալիս, թե ինչպես տեղադրել յուրաքանչյուր վարորդ: Դրանցից շատերը տեղադրված են Arduino IDE- ից ՝ Sketch/Include Library/Add ZIP գրադարանով:

Եթե դուք օգտագործում եք միայն մեկ ցուցադրում, ապա այս գրադարաններից մի քանիսը տեղադրման կարիք չեն ունենա: Առնվազն ձեզ անհրաժեշտ են երկու ստեղնաշարի ֆայլեր և մեկը `հատուկ ցուցադրման համար: Որոշ էկրաններ ցուցադրում են համօգտագործման կոդը: Topրագրի վերևում գտնվող մեկնաբանություններում կան ավելի մանրամասն հրահանգներ, ներառյալ gafx գրադարանը Adafruit- ից ստանալը:

Քանի որ բոլոր էկրաններն օգտագործում են Arduino- ի նույն ուրվագիծը, ցուցադրման փոփոխությունները պարզապես ստորև նշված տողերից մեկը չմեկնաբանելու խնդիր է.

// Տարբեր դիսփլեյներ, թողեք հետևյալներից մեկը ՝ առանց մեկնաբանության: /3.5inch_Arduino_Display-Mega2560: Ստորև բերված որոշ տարբերակներից ավելի դանդաղ, բայց ավելի ընթեռնելի տառատեսակ և ավելի մեծ էկրան, 5 վայրկյան բարձրացում //#սահմանել DISPLAY_480X320_MCUFRIEND_ILI9486 // 3.5 ", 480x320, տեքստ 80x32, մեգա, բայց 5x9 տառատեսակ uno կապում, հզորություն, D0-D14, A0-A5, ավելի գեղեցիկ տառատեսակ, քան ssd1289 40 պին մոդուլը, բայց շատ ավելի դանդաղ https://www.arduinolibraries.info/libraries/mcufriend_kbv https://github.com/adafruit/Adafruit -GFX- Գրադարան //#սահմանել DISPLAY_320X240_MCUFRIEND_ILI9341 // 2.4 ", 320x240, տեքստ 53x24, մեգա //#սահմանել DISPLAY_320X240_SSD1289_40COL // 3.5", 320x240, text 40x20, mega, UTFT գրադարան (ոչ տառատեսակ) Արագ //#սահմանել DISPLAY_320X240_SSD1289_53COL // 3.5 ", 320x240, տեքստ 53x24, մեգա, 9x5 տառատեսակ, կարող է խմբագրել տառատեսակը: Արագ //#սահմանել DISPLAY_320X240_SSD1289_80COL // 3.5", 320x240, տեքստ 80x30, մեգա, փոքր տառատեսակ 7x3, ավելի արագ, քան վերը նշված երկուսը, այս ամենից ամենաարագը ՝ 16 բիթ ուղիղ շարժիչ դեպի էկրան, այլ ոչ թե spi/i2c //#define DISPLAY_160X128_ST7735 // 1.8 ", 160x128, տեքստ 26x12, uno (ILI9341) SPI 128x160 //#սահմանել DISPLAY_128X64_OLED_WHITE // 0.96 ", 128x64, տեքստ 21x6, մեգա, 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 -ի կապերը //#սահմանում DISPLAY_STARBURST // տեքստ 12x2, նանո, աստղանիշի ցուցադրում նանո վերահսկիչով //#define 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- գրադարան/ ստացեք zip- ը ներքևում և gfx- ը և 9341 -ը ձեռքով տեղադրեք arduino գրադարանի թղթապանակի մեջ

Քայլ 4: ANSI ստանդարտ

ANSI ստանդարտ
ANSI ստանդարտ

ANSI- ն թույլ է տալիս պարզ հրահանգներ մաքրել էկրանը, կուրսորը շրջել և փոխել գույները: Լուսանկարներից մի քանիսի վրա ցուցադրական պատկեր կա, որը ցույց է տալիս առաջին պլանի և ֆոնի բոլոր գույները: Սրանք կարմիր, դեղին, կանաչ, կապույտ, կապույտ, մագենտա, սև, սպիտակ, մուգ մոխրագույն, բաց մոխրագույն են, իսկ գույները կարող են լինել պայծառ կամ մռայլ, այնպես որ կան 16 առաջին պլանի և 16 ֆոնի գույներ:

Միանգամայն հնարավոր է մտածել «գրաֆիկական» ռեժիմում ավելացնելու մասին, որտեղ կարող եք նկարել շատ ավելի բարձր լուծաչափի պատկերներ պիքսելային մակարդակով և 256 կամ ավելի գույներով: Հիմնական սահմանափակումներն են Arduino- ի ներքին հիշողությունը և 9600 baud արագությամբ սերիական հղումով նկար ուղարկելու ժամանակը:

Կոդին անհրաժեշտ է մեկ բայթ ՝ կերպարը պահելու և մեկ բայթ ՝ գույները պահելու համար (3 բիթ ՝ առաջին պլանի համար, 3 բիթ ՝ հետին պլանում, մեկը ՝ պայծառ/մռայլ և մեկ ՝ համարձակ): Այսպիսով, 80x30 էկրանին կպահանջվի 2400x2 = 4800 բայթ, որը տեղավորվելու է Mega- ում, բայց ոչ Uno- ում:

Քայլ 5:.ուցադրում

Ուցադրում է
Ուցադրում է
Ուցադրում է
Ուցադրում է
Ուցադրում է
Ուցադրում է

Վերևում ներկայացված են յուրաքանչյուր առանձին ցուցադրման լուսանկարներ: Կան լուսանկարներ յուրաքանչյուր ցուցադրման առջևի և հետևի մասից, և դրանք ներկայացնում են ebay- ում կամ նմանատիպ ապրանքանիշերից շատերը: Ոմանք I2C են, ոմանք զուգահեռ են, ոմանք ունեն ավելի մեծ տառատեսակներ, ոմանք կարող են ցուցադրել ամբողջ 80 սյունակ, որոնք հարմար են Wordstar- ի և բառերի մշակման այլ հին ծրագրերի համար: Արդուինոյի կոդի տեքստում ավելի մանրամասն կա:

Քայլ 6: Սխեմատիկ

Ստորև բերված է երկու ֆայլ: Նրանք կոչվում են.txt, քանի որ Instructables- ը չի կառավարում.zip ֆայլերը: Ներբեռնեք դրանք և վերանվանեք որպես.zip.

Կա սխեմատիկ և տախտակի դասավորությունը որպես pdf ֆայլեր: Կա նաև փաթեթ ՝ Seeed PCB- ի համար: Սրանք գերբերներն են, և եթե գնում եք Seeed և ներբեռնում եք այն, ապա այն պետք է ցուցադրի գերբերները, իսկ հետո կարող եք պատրաստել PCB- ներ: 14 հատվածի տախտակը մեծ է և բավականին ավելի թանկ արժե, բայց փոքրը տեղավորվում է Seeed- ի նախընտրելի 10x10 սմ ձևաչափով, այնպես որ բավականին խելամիտ է 5 կամ 10 տախտակի համար. Իրականում առաքման արժեքը ավելի շատ է, քան տախտակները:

Միանգամայն հնարավոր է օգտագործել էկրաններից շատերը ՝ առանց PCB- ի կարիք ունենալու: Կան PS2 վարդակից մոդուլներ, RS232 վահաններ/մոդուլներ, որոնք բոլորը հասանելի են ebay- ում կամ նմանատիպ: Որոշ ցուցադրումներ, ինչպիսիք են I2C- ն, պարզապես կարող են օգտագործել մի քանի լարեր: Ոմանք, ինչպիսիք են SSD1289 էկրանները, ունեն ադապտերային տախտակներ և կարող են միացվել անմիջապես Mega- ին:

Քայլ 7: Starburst Display

Starburst Display
Starburst Display

Աստղային պայթյունը ավելի մեծ տախտակ է և օգտագործում է Nano և մի շարք 74xx չիպսեր ՝ մուլտիպլեքսավորումը կատարելու համար: Շատ փորձեր կային ՝ որոշելու, թե քանի էկրան կարող եք մուլտիպլեքսավորել, նախքան դրանք չափազանց մռայլվելը կամ թրթռոցը չափազանց նկատելի դառնալը: Theուցադրությունները ստացվել են 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, fore, back, size, mode

Հաջորդը գնալ 664 տող և ավելացնել կոդը ՝ պիքսել նկարելու համար: Կրկին, երբեմն սա ընդամենը մեկ տող է, օրինակ.

tft.drawPixel (xPixel, yPixel, tftForecolor);

Ի վերջո, անցեք 727 տող և ավելացրեք ծածկագիրը, օրինակ, կուրսորի ուղղահայաց գիծ գծելու համար

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

Programրագիրը տեսակավորում է այնպիսի բաներ, ինչպիսիք են `որքան հիշողություն հատկացնել էկրանի բուֆերի համար` ելնելով էկրանի լայնությունից և տառատեսակի չափից:

Քայլ 9: Wordstar ցուցադրում

Դա արվել է CP/M համակարգչի միջոցով, և այստեղ առկա են բազմաթիվ տարբերակներ: Ինձ պետք էր ինչ -որ բան արագ կարգավորել, ուստի օգտագործեցի նմանակում ESP32- ի վրա (Google ESP32 CP/M): Կան բազմաթիվ այլ ռետրո համակարգիչներ, օրինակ ՝ Grant Searle- ի FPGA նմանակումը և RC2014- ը նրանց համար, ովքեր նախընտրում են օգտագործել իրական Z80- ը: Շատ հետադարձ համակարգիչներ հակված են որպես ցուցադրման համակարգչի վրա օգտագործել տերմինալային ծրագիր, օրինակ ՝ Teraterm: Այս ANSI նախագծի վրիպազերծումը ներառում էր տերմինալային ծրագրի և ANSI ծրագրի զուգահեռ աշխատանքը և համոզվել, որ էկրանները նույնական տեսք ունեն:

Քայլ 10: Հետագա մտքեր

Էկրանների չափսերի մեծացման հետ նրանք դառնում են ավելի դանդաղ և դանդաղ: Նիշերի գծագրումը ենթադրում է այդ բնույթի յուրաքանչյուր պիքսել վերագրանցում, քանի որ պետք է նկարել նաև ֆոնի գույնը, ուստի ամեն ինչ կախված է նրանից, թե որքան արագ կարող եք նկարել պիքսել: Կան որոշ շտկումներ, օրինակ, եթե էկրանը չի կարող համահունչ լինել մուտքի տվյալներին, պարզապես տեքստը պահեք էկրանի բուֆերում և այնուհետև ամբողջ էկրանով վերագծեք, երբ այլևս տեքստ չի գալիս: վաճառքը ցուցադրում է բավականին գեղեցիկ պատկեր էկրանին, բայց այն, ինչ նրանք կարող են ցույց չտալ, այն է, թե որքան ժամանակ է պահանջվել այդ նկարի ցուցադրման համար, իսկ որոշ դեպքերում դա կարող է լինել 5 վայրկյան կամ ավելի: I2C- ն և SPI- ն հիանալի են փոքր էկրանների համար, բայց մոտ 50 սյունակից ավելի բաների համար անհրաժեշտ է 8 կամ 16 բիթանոց տվյալների հաղորդուղի:

Wordstar- ը մի փոքր դժվար է օգտագործել 9600 baud- ում, իսկ 19200 -ը շատ ավելի օգտագործելի է տեքստը ոլորելու համար, բայց էկրաններն իսկապես չեն կարող հետ պահել:

Ամենաարագ ցուցադրումը, որը ես օգտագործել եմ, եղել է Propeller chip- ի վրա `երկու 8 բիթանոց արտաքին 512k խոյերի չիպերով` 16 բիթանոց զուգահեռ տվյալների ավտոբուս ստեղծելու համար: Յուրաքանչյուր տառատեսակ նախապես բեռնված էր խոյի մեջ: 74xx հաշվիչ չիպերի կասկադն օգտագործվել է տվյալները էկրանին դուրս հանելու համար: Սա նշանակում էր, որ պրոցեսորի ներսում ներքին վերամշակում չի կատարվել տվյալների հավաքման և դուրսբերման համար, և թարմացման արագությունը նույնքան արագ էր, որքան Propeller չիպը կարող էր միացնել քորոցը: Surարմանալի է, որ դիսփլեյները կարողացան հետևել դրան, նույնիսկ 20 ՄՀց հաճախականությամբ, ուստի հնարավոր եղավ ամբողջ էկրանով թարմացում կատարել ընդամենը 30 միլիվայրկյանում: Այդպիսի դրույքաչափը բավական արագ է ՝ սահուն սահելու համար, ինչպես տեսնում եք բջջային հեռախոսներում:

Պտուտակային չիպը առաջատար էր ավելի քան տասը տարի առաջ, և այժմ ավելի շատ տարբերակներ կան, ներառյալ ESP8266 և ESP32, որոնք ունեն մեծ քանակությամբ ներքին խոյ: Այնուամենայնիվ, այդ չիպսերը դեռ չունեն հսկայական քանակությամբ կապում, ուստի դեռևս կարող են արժանի լինել արտաքին խոյերի չիպի հին ձևով, որը ցուցադրվում է էկրանին:

Ավելի մեծ էկրանների դեպքում կարող է ավելի էժան լինել օգտագործել LCD հեռուստացույցի կամ VGA էկրան և դիտել կոդավորված ANSI էմուլատորներից մի քանիսը, օրինակ ՝ ESP32- ը, որոնք ուղիղ VGA են վարում:

Հուսով եմ, որ այս նախագիծը օգտակար կգտնեք:

Jamesեյմս Մոքշեմ

Ադելաիդա, Ավստրալիա

Խորհուրդ ենք տալիս: