Obsah:
- Krok 1: Súhrn zobrazení
- Krok 2: Hardvér
- Krok 3: Softvér
- Krok 4: Štandard ANSI
- Krok 5: Displeje
- Krok 6: Schéma
- Krok 7: Displej Starburst
- Krok 8: Pridanie kódu pre iné displeje
- Krok 9: Demonštrácia Wordstar
- Krok 10: Ďalšie myšlienky
Video: Zbierka terminálov ANSI: 10 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Tento projekt začal ako spôsob zobrazenia 80 stĺpcového textu na LCD displeji, ktorý je vhodný na spustenie staromódneho textového procesora, akým je napríklad Wordstar. Pribudli rôzne ďalšie displeje s veľkosťou od 0,96 do 6 palcov. Displeje používajú jednu dosku plošných spojov a jednu skicu/program Arduino.
K dispozícii je sériové pripojenie RS232 na pripojenie k počítaču a zásuvka PS/2 pre klávesnicu. Displeje boli vybrané tak, aby predstavovali displeje bežne dostupné za rozumné ceny. V závislosti od potrebnej pamäte displeje používajú Arduino Nano, Uno alebo Mega.
Krok 1: Súhrn zobrazení
Existujú rôzne displeje s rozlíšením 480 x 320. To umožňuje písmo 9x5 a 80 stĺpcového textu. Existujú rôzne dosky s rozlíšením 320x240, s písmami 9x5 a tiež veľmi malým písmom 7x3, ktoré umožňujú text v stĺpci 80. Existujú aj menšie dosky s rozmermi 160x120 a 128x64 pixelov. Tiež textové displeje 20x4 a 16x2 a nakoniec štrnásť segmentová zobrazovacia doska 12burx starburst.
Niektoré displeje používajú I2C, niektoré sú SPI a pre väčšie displeje 16 -bitová dátová zbernica pre rýchlejšie rýchlosti aktualizácie.
Menšie displeje používajú Arduino Uno. Väčšie dosky vyžadujú viac pamäte, a preto použite Mega. Doska displeja starburst používa nano.
Na tomto mieste by som mohol spomenúť, že fotografie nevyhovujú mnohým displejom. Malý biely oledový displej je veľmi ostrý a jasný, vďaka čomu bolo pre fotoaparát ťažšie zaostriť a LED dióda starburst vyzerá v reálnom živote oveľa ostrejšie.
Krok 2: Hardvér
Doska plošných spojov bola navrhnutá tak, aby pracovala s čo najväčším počtom displejov. Prepínanie medzi Mega a Uno je jednoduché pomocou štyroch prepojok. Pre displeje, ktoré pracujú na 3V, existujú odpory s deličom napätia. Piny I2C sú vyvedené v skupine, takže displeje je možné priamo zapojiť. Terminál beží na 9600 baudoch, a aj keď sa to dá zvýšiť, mnohé z väčších displejov nebudú prekresľovať oveľa rýchlejšie. Klávesnica PS2 sa zapája do zásuvky DIN6. Klávesnice USB budú fungovať aj s lacným konektorom adaptéra. Môžete vykonať jednoduchý test spätnej slučky spojením pinov 2 a 3 na D9 a potom sa na displeji zobrazia znaky napísané na klávesnici.
V niektorých prípadoch nie je PCB potrebný a je možné získať prácu s vopred pripravenými modulmi dostupnými na ebay, napr. Adaptéry PS2, dosky adaptérov RS232 a displeje, ktoré sa pripájajú priamo na dosky arduino.
K dispozícii je tiež samostatná doska pre LED diódu starburst - pozri ďalej v tomto návode na obsluhu.
Krok 3: Softvér
Nasleduje súbor s názvom Package.txt Toto je vlastne súbor.zip, takže ho stiahnite a premenujte (Instructables nepovoľuje súbory zip). Súčasťou je skica/program Arduino a toto je jediný program, ktorý používajú všetky displeje. K dispozícii sú tiež všetky súbory.zip pre každé z displejov.
Na začiatku programu je séria príkazov #definovať. Odkomentujte ten, ktorý zodpovedá zobrazeniu. Pomocou Nástroje/Doska vyberte Uno, Mega alebo Nano. Výmena tabúľ je taká jednoduchá ako zmena jedného riadka v kóde.
Jednou z výziev pri práci s mnohými displejmi je, že všetci zrejme potrebujú svoje vlastné softvérové ovládače. To všetko je súčasťou balenia. Testovanie zahŕňalo prevzatie balíka a jeho úplnú reinštaláciu na nový stroj úplne od začiatku. Môžete tiež získať zdrojový kód z Github a Adafruit a LCDWiki. Existuje niekoľko prípadov, keď novšie verzie nefungujú, takže všetky pracovné verzie sú zahrnuté v zip. Občas sa vyskytli prípady, keď jeden ovládač zastavil druhý, pretože používal rovnaký názov súboru, ale rôzne verzie. V komentároch v hornej časti programu je popis, ktorý ukazuje, ako nainštalovať jednotlivé ovládače. Väčšina je nainštalovaná z IDE Arduino s knižnicou Sketch/Include Library/Add ZIP a to vezme súbor zip a vloží ho do c: / users / computername / mydocuments / arduino / libraries.
Ak používate iba jeden displej, niektoré z týchto libarií nemusí byť nainštalované. Minimálne potrebujete dva súbory klávesnice a jeden pre konkrétny displej. Niektoré displeje zdieľajú kód. Podrobnejšie pokyny sú v komentároch v hornej časti programu vrátane získania knižnice gfx od spoločnosti Adafruit.
Pretože všetky displeje používajú rovnakú skicu Arduino, zmena displejov je len otázkou odkomentovania jedného z nižšie uvedených riadkov:
// Rôzne displeje, ponechajte jeden z nasledujúcich komentárov#define DISPLAY_480X320_LCDWIKI_ILI9486 // 3,5 ", 480x320, text 80x32, mega, 16 bit, zapojí sa do mega 36 pinov (a 2 napájacích pinov). Http://www.lcdwiki.com /3.5inch_Arduino_Display-Mega2560. Pomalšie ako niektoré z nižšie uvedených možností, ale čitateľnejšie písmo a väčšia obrazovka, 5-sekundové spustenie //#define DISPLAY_480X320_MCUFRIEND_ILI9486 // 3,5 ", 480x320, text 80x32, mega, 5x9 písmo, iba pre mega, ale používa iba kolíky uno, napájanie, D0-D14, A0-A5, krajšie písmo ako 40pinový modul ssd1289, ale oveľa pomalšie https://www.arduinolibraries.info/libraries/mcufriend_kbv https://github.com/adafruit/Adafruit -Knižnica -GFX //#definujte DISPLAY_320X240_MCUFRIEND_ILI9341 // 2,4 ", 320x240, text 53x24, mega //#definujte DISPLAY_320X240_SSD1289_40COL // 3,5", 320x240, text 40x20, mega, UTFT knižnica (žiadne fonty menšie ako 8x12). Rýchle //#definovanie DISPLAY_320X240_SSD1289_53COL // 3,5 ", 320x240, text 53x24, mega, 9x5 písmo, môže upravovať písmo. Rýchle //#definovanie DISPLAY_320X240_SSD1289_80COL // 3,5", 320x240, text 80x30, mega, drobné 7x3 písmo, môže upravovať písmo, rýchlejší ovládač ako dva vyššie uvedené, najrýchlejší zo všetkých týchto spôsobov je 16 -bitový priamy pohon na displej, a nie spi/i2c //#define DISPLAY_160X128_ST7735 // 1,8 ", 160x128, text 26x12, uno (ILI9341) SPI 128x160 //#define DISPLAY_128X64_OLED_WHITE // 0,96 ", 128x64, text 21x6, mega, I2C, olovo biele na čiernom (v knižnici tft pre túto dosku plus všetok kód plus klávesnica dochádza pamäť programu, aj keď potreby pamäte RAM sú veľmi malé, takže iba beží na mega) //#define DISPLAY_20X4 // text 20x4, uno, LCD s I2C, textový LCD https://www.arduino.cc/en/Reference/LiquidCrystal //#define DISPLAY_16X2 // text 16x2, uno, zapojí sa do uno, používa piny 4 až 10 //#definuje DISPLAY_STARBURST // text 12x2, nano, starburst displej s nano ovládačom //#define DISPLAY_320X240_QVGA_SPI_ILI9341 / /2,2 ", 320x240, text 11x8, uno, veľké písmo, uno, signály 3v, 9-pinový SPI displej pozri Bodmer's Instructables-uno https://www.instructables.com/id/Arduino-TFT-display-and-font- knižnica/ v spodnej časti získajte zip a ručne vložte gfx a 9341 do priečinka knižnice arduino
Krok 4: Štandard ANSI
ANSI umožňuje jednoduché príkazy na vyčistenie obrazovky, pohyb kurzora a zmenu farieb. Na niekoľkých fotografiách je ukážka všetkých farieb popredia a pozadia. Sú to červená, žltá, zelená, modrá, azúrová, purpurová, čierna, biela, tmavošedá, svetlošedá a farby môžu byť jasné alebo slabé, takže je k dispozícii 16 farieb v popredí a 16 v pozadí.
Je celkom možné uvažovať o pridaní v „grafickom“režime, kde môžete kresliť obrázky s oveľa vyšším rozlíšením na úrovni pixelov a 256 alebo viac farieb. Hlavnými obmedzeniami sú vnútorná pamäť Arduina a čas potrebný na odoslanie obrázka po sériovom prepojení pri 9600 baudoch.
Kód potrebuje jeden bajt na uloženie znaku a jeden bajt na uloženie farieb (3 bity pre popredie, 3 pre pozadie, jeden pre jasné/tmavé a jeden pre tučné). Displej s rozmermi 80 x 30 bude teda potrebovať 2 400 x 2 = 4 800 bajtov, ktorý sa zmestí do Mega, ale nie do Uno.
Krok 5: Displeje
Hore sú fotografie každého jednotlivého displeja. Na prednom a zadnom paneli každého displeja sú fotografie, ktoré predstavujú mnoho značiek dostupných na ebay alebo podobných stránkach. Niektoré sú I2C, niektoré sú paralelné, niektoré majú väčšie písma, niektoré môžu zobrazovať celých 80 stĺpcov vhodných pre Wordstar a ďalšie staré programy na spracovanie textu. V texte arduino kódu je viac podrobností.
Krok 6: Schéma
Nasledujú dva súbory. Sú pomenované ako.txt, pretože Instructables nespracováva súbory.zip. Stiahnite si ich a premenujte ich na.zip.
Existuje schéma a rozloženie dosky ako súbory PDF. Existuje aj balík pre Seeed PCB. Toto sú Gerbery a ak pôjdete na Seeed a odovzdáte to, malo by sa vám zobraziť Gerbery a potom si môžete dať vyrobiť DPS. 14 -segmentová doska je veľká a stojí o niečo viac, ale menšia sa zmestí do preferovaného formátu Seeed 10 x 10 cm, takže je celkom rozumná pre 5 alebo 10 dosiek - v skutočnosti sú náklady na dopravu vyššie ako dosky.
Je celkom možné použiť mnoho displejov bez potreby dosky plošných spojov. Na ebay alebo podobné sú k dispozícii zásuvkové moduly PS2, štíty/moduly RS232. Niektoré displeje, ako napríklad I2C, môžu používať iba niekoľko káblov. Niektoré ako displeje SSD1289 sú dodávané s doskami adaptéra a je ich možné zapojiť priamo do zariadenia Mega.
Krok 7: Displej Starburst
Displej starburst je väčšia doska a na multiplexovanie používa čipy Nano a niekoľko 74xx. Vykonalo sa veľa experimentov, aby sa zistilo, koľko displejov je možné multiplexovať, kým sa nestanú príliš tmavé alebo blikanie príliš nápadné. Displeje pochádzajú z webu Futurlec https://www.futurlec.com/LEDDisp.shtml 14 -segmentové displeje môžu používať aj malé písmená a v prípade potreby ich je možné v kóde zmeniť. Premenujte tieto súbory z.txt na.zip
Krok 8: Pridanie kódu pre iné displeje
Pre ostatné displeje je možné pridať kód. Prvým krokom je niečo, čokoľvek zobraziť. Môže to byť pixel alebo písmeno. Ide predovšetkým o hľadanie ovládačov, ich stiahnutie, testovanie, zistenie, že sa nebudú kompilovať, potom odinštalovanie tohto ovládača, aby to neskôr nespôsobilo zmätok, a potom vyskúšajte nový. Ďalším krokom je získanie písmena na zobrazenie v správnej farbe, pretože niektoré displeje, ktoré v skutočnosti vyzerajú rovnako, invertujú farby. Našťastie to zvyčajne vyrieši iba jedno číslo v spúšťacom kóde. Ďalším krokom je napísať niekoľko riadkov a definovať, či sa má používať uno alebo mega, šírka displeja, výška, veľkosť písma, kolíky klávesnice a súbory ovládačov, ktoré sa majú použiť. Začínajú na riadku 39 v kóde a môžete skopírovať formát existujúcich displejov.
Ďalej musíte prejsť na riadok 451 a pridať štartovací kód. Tu nastavíte farbu pozadia a rotáciu a spustíte zobrazenie.
Ďalej musíte prejsť na riadok 544 a pridať kód na zobrazenie znaku. V niektorých prípadoch je to iba jeden riadok, napr
my_lcd. Draw_Char (xPixel, yPixel, c, tftForecolor, tftBackcolor, 1, 0); // x, y, char, fore, back, size, mode
Ďalej musíte prejsť na riadok 664 a pridať kód na nakreslenie pixelu. Opäť platí, že niekedy je to iba jeden riadok, napríklad:
tft.drawPixel (xPixel, yPixel, tftForecolor);
Nakoniec prejdite na riadok 727 a pridajte kód, aby ste napríklad nakreslili zvislú čiaru pre kurzor
tft.drawFastVLine (xPixel, yPixel, fontHeight, tftForecolor);
Program triedi veci, ako je množstvo pamäte, ktoré je potrebné vyhradiť pre vyrovnávaciu pamäť obrazovky, na základe šírky obrazovky a veľkosti písma.
Krok 9: Demonštrácia Wordstar
To sa uskutočnilo pomocou počítača CP/M a tu je k dispozícii veľa možností. Potreboval som niečo rýchlo nastaviť, takže som použil emuláciu na ESP32 (Google ESP32 CP/M). K dispozícii je mnoho ďalších retro počítačov, napríklad emulácia Grant Searle FPGA a RC2014 pre tých, ktorí uprednostňujú používanie skutočného Z80. Mnoho retropočítačov má tendenciu používať ako displej terminálový program na počítači, napr. Teraterm. Veľa ladenia tohto projektu ANSI zahŕňalo paralelné spustenie terminálového programu a programu ANSI a zabezpečenie toho, aby obrazovky vyzerali identicky.
Krok 10: Ďalšie myšlienky
Ako sa displeje zväčšujú, sú stále pomalšie. Prekreslenie znaku zahŕňa prekreslenie každého pixelu v tomto znaku, pretože je potrebné nakresliť aj farbu pozadia, takže všetko závisí od toho, ako rýchlo môžete nakresliť pixel. Existuje niekoľko vylepšení, napríklad ak displej nemôže držať krok s prichádzajúcimi údajmi, stačí uložiť text do vyrovnávacej pamäte obrazovky a potom, keď už neprichádza žiadny text, prekresliť celú obrazovku. Mnoho displejov, ktoré vidíte výpredaj ukazuje pekný obrázok na obrazovke, ale to, čo nemusia, je to, ako dlho trvalo zobrazenie tohto obrázka, a v niektorých prípadoch to môže byť 5 sekúnd alebo viac. I2C a SPI sú skvelé pre menšie displeje, ale čokoľvek nad asi 50 stĺpcami potrebuje 8 alebo 16 bitovú dátovú zbernicu.
Wordstar je trochu nepraktický na 9600 baudov a 19200 je oveľa viac použiteľný na posúvanie textu, ale displeje naozaj nestíhajú.
Najrýchlejší displej, ktorý som použil, bol na vrtuľovom čipe s dvoma 8 -bitovými externými 512k RAM čipmi, aby sa vytvorila 16 -bitová paralelná dátová zbernica. Každé písmo bolo vopred načítané do barana. Na vytlačenie údajov na displej bola použitá kaskáda 74xx čítacích čipov. To znamenalo, že v rámci načítavania a odosielania údajov procesora nedochádzalo k internému spracovaniu a obnovovacia frekvencia bola taká rýchla, ako dokázal čip Propeller prepnúť pin. Displeje s tým prekvapivo dokázali držať krok, dokonca aj pri 20 MHz, a tak bolo možné vykonať aktualizáciu celej obrazovky iba za 30 milisekúnd. Takáto sadzba je dostatočne rýchla na to, aby posúvala plynulo, ako vidíte na mobilných telefónoch.
Vrtuľový čip bol špičkový pred viac ako desiatimi rokmi a v súčasnosti existuje viac možností vrátane modelov ESP8266 a ESP32, ktoré majú veľké množstvo vnútorného RAM. Tieto čipy však stále nemajú veľký počet pinov, takže stále môže byť prospešné použiť spôsob old-skool externého RAM RAM čipu, ktorý je vytesnený na displej.
Pri väčších displejoch môže byť lacnejšie použiť LCD TV obrazovku alebo VGA obrazovku a pozrieť sa na niektoré kódované ANSI emulátory, napr. ESP32, ktoré poháňajú VGA priamo.
Dúfam, že vám tento projekt bude užitočný.
James Moxham
Adelaide, Austrália
Odporúča:
Počítadlo krokov - mikro: bit: 12 krokov (s obrázkami)
Počítadlo krokov - mikro: bit: Tento projekt bude počítadlom krokov. Na meranie našich krokov použijeme senzor akcelerometra, ktorý je vstavaný v Micro: Bit. Zakaždým, keď sa Micro: Bit zatrasie, pridáme k počtu 2 a zobrazíme ho na obrazovke
Akustická levitácia s Arduino Uno krok za krokom (8 krokov): 8 krokov
Akustická levitácia s Arduino Uno krok za krokom (8 krokov): Ultrazvukové meniče zvuku L298N Dc napájací adaptér ženského adaptéra s mužským DC kolíkom Arduino UNOBreadboard Ako to funguje: Najprv nahráte kód do Arduino Uno (je to mikrokontrolér vybavený digitálnym a analógové porty na prevod kódu (C ++)
Bolt - Nočné hodiny pre bezdrôtové nabíjanie DIY (6 krokov): 6 krokov (s obrázkami)
Bolt - Nočné hodiny bezdrôtového nabíjania DIY (6 krokov): Indukčné nabíjanie (tiež známe ako bezdrôtové nabíjanie alebo bezdrôtové nabíjanie) je typ bezdrôtového prenosu energie. Na prenos elektriny do prenosných zariadení používa elektromagnetickú indukciu. Najbežnejšou aplikáciou je bezdrôtové nabíjanie Qi
Ako rozobrať počítač pomocou jednoduchých krokov a fotografií: 13 krokov (s obrázkami)
Ako rozobrať počítač jednoduchými krokmi a obrázkami: Toto je návod, ako rozobrať počítač. Väčšina základných komponentov je modulárna a dá sa ľahko odstrániť. Je však dôležité, aby ste o tom boli organizovaní. Pomôže to zabrániť strate súčiastok a tiež pri opätovnej montáži
Od Roomby k Roveru iba 5 krokov!: 5 krokov
Od Roomby po Rover za pouhých 5 krokov !: Roboti Roomba sú zábavným a jednoduchým spôsobom, ako ponoriť prsty do nohy vo svete robotiky. V tomto návode podrobne popíšeme, ako previesť jednoduchú Roombu na ovládateľný rover, ktorý súčasne analyzuje svoje okolie. Zoznam dielov 1.) MATLAB2.) Roomb