Talaan ng mga Nilalaman:
- Hakbang 1: Buod ng Mga Ipinapakita
- Hakbang 2: Hardware
- Hakbang 3: Software
- Hakbang 4: Ang Pamantayan ng ANSI
- Hakbang 5: Nagpapakita
- Hakbang 6: Skematika
- Hakbang 7: Ipakita ang Starburst
- Hakbang 8: Pagdaragdag ng Code para sa Ibang Mga Ipinapakita
- Hakbang 9: Pagpapakita ng Wordstar
- Hakbang 10: Karagdagang Mga Saloobin
Video: Isang Koleksyon ng Mga ANSI Terminal: 10 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Ang proyektong ito ay nagsimula bilang isang paraan ng pagpapakita ng 80 haligi ng teksto sa isang LCD display na angkop para sa pagpapatakbo ng isang makalumang word processor tulad ng Wordstar. Iba't ibang iba pang mga pagpapakita ay idinagdag mula sa 0.96 hanggang sa 6 pulgada. Ang mga ipinapakita ay gumagamit ng isang solong PCB pati na rin ang isang Arduino sketch / programa.
Mayroong isang serial na koneksyon sa RS232 para sa koneksyon sa isang computer at isang PS / 2 na socket para sa isang keyboard. Ang mga ipinapakita ay pinili upang kumatawan sa mga karaniwang magagamit sa makatuwirang mga presyo. Nakasalalay sa memorya na kinakailangan ang mga display ay gumagamit ng isang Arduino Nano, Uno o Mega.
Hakbang 1: Buod ng Mga Ipinapakita
Mayroong iba't ibang mga pagpapakita na may resolusyon na 480x320. Pinapayagan nito ang isang 9x5 font at 80 haligi ng teksto. Mayroong iba't ibang mga board na may resolusyon na 320x240, na may 9x5 na mga font at din isang napakaliit na 7x3 font upang payagan ang 80 haligi ng teksto. Mayroon ding mas maliit na mga board na may 160x120 at 128x64 pixel. Nagpapakita rin ng 20x4 at 16x2 na teksto, at sa wakas isang 12x2 labing-apat na segment na board na display ng starburst.
Ang ilang mga display ay gumagamit ng I2C, ang ilan ay SPI at para sa mas malaking display, isang 16 bit na data bus para sa mas mabilis na bilis ng pag-update.
Ang mas maliit na mga display ay gumagamit ng Arduino Uno. Ang mga malalaking board ay nangangailangan ng mas maraming memorya at kaya gumamit ng isang Mega. Gumagamit ang starburst display board ng isang Nano.
Sa puntong ito maaari kong banggitin ang mga larawan ay hindi gumagawa ng hustisya sa marami sa mga ipinapakita. Ang maliit na puting oled display ay napaka-malutong at maliwanag na naging mahirap para sa camera na mag-focus, at ang display na pinangunahan ng starburst ay mukhang mas matalas sa totoong buhay.
Hakbang 2: Hardware
Ang PCB ay dinisenyo upang gumana sa maraming mga display hangga't maaari. Madali itong baguhin sa pagitan ng isang Mega at Uno gamit ang apat na jumper. Mayroong mga resistors ng divider ng boltahe para sa mga display na tumatakbo sa 3V. Ang mga I2C pin ay inilabas sa isang pangkat upang ang mga pagpapakita ay maaaring mai-plug in nang direkta. Ang terminal ay tumatakbo sa 9600 baud, at habang ito ay maaaring dagdagan, marami sa mga mas malaking display ay hindi magre-redraw ng mas mabilis kaysa dito. Ang PS2 keyboard ay naka-plug in sa isang DIN6 socket. Gagana rin ang mga USB keyboard sa isang murang adapter plug. Maaari kang gumawa ng isang simpleng pagsubok ng loopback sa pamamagitan ng pagsali sa pin 2 at 3 sa D9 at pagkatapos ay lilitaw ang mga character na na-type sa keyboard sa display.
Sa ilang mga kaso ang isang PCB ay hindi kinakailangan at posible upang makuha ang mga bagay na gumagana sa mga paunang ginawa na mga module na magagamit sa ebay, hal, mga adaptor ng PS2, mga board ng adapter ng RS232 at ipinapakita na direktang mai-plug sa mga arduino board.
Mayroon ding isang hiwalay na board para sa starburst led display - tingnan sa paglaon sa Instructable na ito.
Hakbang 3: Software
Nasa ibaba ang isang file na tinatawag na Package.txt Ito ay talagang isang.zip file kaya i-download at palitan ang pangalan nito (Hindi pinapayagan ng mga Instructable ang mga zip file). Kasama ang Arduino sketch / programa at ito ay isang solong programa na ginagamit ng lahat ng ipinapakita. Mayroon ding lahat ng mga.zip file para sa bawat isa sa mga ipinapakita.
Sa simula ng programa ay isang serye ng # na tumutukoy sa mga pahayag. I-uncomment ang isa na tumutugma sa display. Gumamit ng Mga Tool / Lupon upang piliin ang Uno, Mega o Nano. Ang pagpapalit ng mga board ay kasing simple ng pagbabago ng isang linya sa code.
Ang isa sa mga hamon na nagtatrabaho sa maraming mga pagpapakita ay tila kailangan nila lahat ng kanilang sariling mga driver ng software. Lahat ng ito ay kasama sa package. Kasama sa pagsubok ang pagkuha ng pakete at muling pag-install nito sa isang bagong makina na kumpleto mula sa simula. Maaari ka ring maghanap ng code mula sa Github at Adafruit at LCDWiki. Mayroong isang pares ng mga pagkakataon kung saan hindi gagana ang mga mas bagong bersyon kaya ang lahat ng mga gumaganang bersyon ay kasama sa zip. Paminsan-minsan ay may mga pagkakataong pinahinto ng isang drayber ang isa pa sa pagtatrabaho habang ginagamit nila ang parehong pangalan ng file ngunit magkakaibang mga bersyon. Mayroong isang paglalarawan sa mga komento sa tuktok ng programa na nagpapakita kung paano i-install ang bawat driver. Karamihan ay naka-install mula sa Arduino IDE na may Sketch / Isama ang Library / Magdagdag ng ZIP library at kinukuha ang zip file at inilalagay ito sa c: / mga gumagamit / computername / mydocuments / arduino / mga aklatan.
Kung gumagamit ka lamang ng isang display pagkatapos ang ilan sa mga libaryong ito ay hindi kailangang mai-install. Sa isang minimum na kailangan mo ang dalawang mga file ng keyboard at ang isa para sa partikular na pagpapakita. Ang ilan ay nagpapakita ng pagbabahagi ng code. Mayroong mas detalyadong mga tagubilin sa mga komento sa tuktok ng programa, kabilang ang pagkuha ng gfx library mula sa Adafruit.
Tulad ng lahat ng mga ipinapakita ay gumagamit ng parehong sketch ng Arduino, ang pagpapalit ng mga display ay isang bagay lamang sa pag-aalala ng isa sa mga linya sa ibaba:
// Iba't ibang pagpapakita, iwanan ang isa sa mga sumusunod na hindi kumpleto # tukuyin ang DISPLAY_480X320_LCDWIKI_ILI9486 // 3.5 ", 480x320, teksto 80x32, mega, 16 bit, plugs sa mega 36 pin (at 2 power pin).https://www.lcdwiki.com /3.5inch_Arduino_Display-Mega2560. Mas mabagal kaysa sa ilan sa mga pagpipilian sa ibaba ngunit isang mas nababasa na font at mas malaking screen, 5sec bootup // # define DISPLAY_480X320_MCUFRIEND_ILI9486 // 3.5 ", 480x320, text 80x32, mega, 5x9 font, para lamang sa mega ngunit ginagamit lamang ang mga uno pin, lakas, D0-D14, A0-A5, mas mahusay na font kaysa sa module ng ssd1289 40 pin ngunit mas mabagal https://www.arduinolibraries.info/libraries/mcuf Friend_kbv https://github.com/adafruit/Adafruit -GFX-Library // # tukuyin ang DISPLAY_320X240_MCUFRIEND_ILI9341 // 2.4 ", 320x240, teksto 53x24, mega // # tukuyin ang DISPLAY_320X240_SSD1289_40COL // 3.5", 320x240, teksto 40x20, mega, UTFT library (walang mga font na mas maliit sa 8x12). Mabilis // # tukuyin ang DISPLAY_320X240_SSD1289_53COL // 3.5 ", 320x240, text 53x24, mega, 9x5 font, maaaring mag-edit ng font. Mabilis // # tukuyin ang DISPLAY_320X240_SSD1289_80COL // 3.5", 320x240, teksto 80x30, mega, maliit na maliit na 7x3 font, maaaring i-edit ang font, mas mabilis na driver kaysa sa dalawa sa itaas, pinakamabilis sa lahat ng mga ito bilang 16 bit direct drive sa display kaysa sa spi / i2c // # kahulugan DISPLAY_160X128_ST7735 // 1.8 ", 160x128, teksto 26x12, uno (ILI9341) SPI 128x160 // # tukuyin DISPLAY_128X64_OLED_WHITE // 0.96 ", 128x64, text 21x6, mega, I2C, oled white on black (ang tft library para sa board na ito kasama ang lahat ng code kasama ang keyboard ay nauubusan ng imbakan ng programa, kahit na ang mga pangangailangan ng ram ay napakaliit, kaya lamang tumatakbo sa isang mega) // # tukuyin ang DISPLAY_20X4 // teksto 20x4, uno, LCD na may I2C, teksto ng LCD https://www.arduino.cc/en/Referensi/LiquidCrystal // # tukuyin ang DISPLAY_16X2 // teksto 16x2, uno, plugs sa uno, gumagamit ng mga pin 4 hanggang 10 // # tukuyin ang DISPLAY_STARBURST // text 12x2, nano, starburst display na may nano controller // # tukuyin ang DISPLAY_320X240_QVGA_SPI_ILI9341 / / 2.2 ", 320x240, text 11x8, uno, malaking font, uno, 3v signal, 9 pin SPI display see Bodmer's Instructables - uno https://www.instructables.com/id/Arduino-TFT-display-and- font- library / kunin ang zip sa ibaba at manu-manong ilagay ang gfx at 9341 sa folder ng arduino library
Hakbang 4: Ang Pamantayan ng ANSI
Pinapayagan ng ANSI para sa mga simpleng utos na i-clear ang screen, ilipat ang cursor sa paligid at upang baguhin ang mga kulay. Sa ilan sa mga larawan mayroong isang demo na ipinapakita ang lahat ng mga kulay sa harapan at background. Ang mga ito ay pula, dilaw, berde, asul, cyan, magenta, itim, puti, maitim na kulay-abo, light grey, at ang mga kulay ay maaaring maliwanag o malabo kaya mayroong 16 harapan at 16 na kulay sa background.
Posibleng mag-isip tungkol sa pagdaragdag sa isang mode na 'graphics' kung saan maaari kang gumuhit ng mas mataas na mga larawan na may resolusyon sa antas ng pixel at may 256 o higit pang mga kulay. Ang pangunahing mga limitasyon ay ang panloob na memorya ng Arduino at ang oras na kinakailangan upang magpadala ng isang larawan pababa sa isang serial link sa 9600 baud.
Kailangan ng code ang isang byte upang maiimbak ang character at isang byte upang maiimbak ang mga kulay (3 bits para sa harapan, 3 para sa background, isa para sa maliwanag / malabo at isa para sa naka-bold). Kaya't ang isang 80x30 display ay mangangailangan ng 2400x2 = 4800 bytes, na magkakasya sa isang Mega ngunit hindi isang Uno.
Hakbang 5: Nagpapakita
Sa itaas ay ang mga larawan ng bawat indibidwal na pagpapakita. Mayroong mga larawan mula sa harap at likod ng bawat display at kinakatawan nila ang marami sa mga tatak na magagamit sa ebay o katulad. Ang ilan ay I2C, ang ilan ay kahanay, ang ilan ay may mas malaking mga font, ang ilan ay maaaring magpakita ng isang buong 80 haligi na angkop para sa Wordstar at iba pang mga lumang programa sa pagproseso ng salita. Mayroong higit pang detalye sa teksto ng arduino code.
Hakbang 6: Skematika
Nasa ibaba ang dalawang mga file. Pinangalanan sila bilang.txt dahil hindi pinangangasiwaan ng Mga Instructable ang.zip file. I-download ang mga ito at palitan ang pangalan ng mga ito bilang.zip.
Mayroong eskematiko at ang layout ng board bilang mga PDF file. Mayroon ding isang pakete para sa Nakitang PCB. Ito ang mga gerbers at kung pupunta ka sa Seeed at i-upload ito dapat itong ipakita ang mga gerbers at maaari kang makakuha ng mga PCB na ginawa. Ang 14 na segment ng board ay malaki at nagkakahalaga ng kaunti pa, ngunit ang mas maliit ay umaangkop sa Nakitang ginustong 10x10cm na format kaya't makatwiran para sa 5 o 10 board - sa katunayan ang gastos sa pagpapadala ay higit sa mga board.
Posibleng posible na gumamit ng maraming mga display nang hindi nangangailangan ng PCB. Mayroong mga module ng socket ng PS2, mga kalasag / modyul na RS232 na magagamit sa ebay o katulad. Ang ilang mga ipinapakita tulad ng mga I2C ay maaari lamang gumamit ng ilang mga wire ng hookup. Ang ilan tulad ng ipinakitang SSD1289 ay mayroong mga adapter board at maaaring mai-plug deretso sa isang Mega.
Hakbang 7: Ipakita ang Starburst
Ang display ng starburst ay isang mas malaking board at gumagamit ng isang Nano at isang bilang ng 74xx chips upang gawin ang multiplexing. Mayroong maraming mga eksperimento upang matukoy kung gaano karaming mga display ang maaari mong multiplex bago sila masyadong lumabo o ang napapansin ng flicker. Ang mga ipinakita ay nagmula sa Futurlec https://www.futurlec.com/LEDDisp.shtml Ang 14 na ipinapakita na segment ay maaari ding gumawa ng mga lower case na letra at maaaring mabago sa code kung kinakailangan. Palitan ang pangalan ng mga file na ito mula sa.txt patungong.zip
Hakbang 8: Pagdaragdag ng Code para sa Ibang Mga Ipinapakita
Posibleng idagdag sa code para sa iba pang mga pagpapakita. Ang unang hakbang ay upang makakuha ng isang bagay, anuman, upang maipakita. Maaari itong maging isang pixel o isang titik. Pangunahin na nagsasangkot ito ng paghahanap para sa mga driver, pag-download ng isa, pagsubok dito, paghanap na hindi ito makakaipon, pagkatapos ay i-uninstall ang driver na iyon upang hindi ito maging sanhi ng pagkalito sa paglaon, pagkatapos ay subukan ang bago. Ang susunod na hakbang ay upang makakuha ng isang liham upang maipakita sa tamang kulay, dahil ang ilang mga pagpapakita na mukhang magkapareho talagang babaligtarin ang mga kulay. Sa kasamaang palad kadalasan isang numero lamang sa startup code ang aayusin ito. Susunod na hakbang ay ang pagsulat ng ilang mga linya upang tukuyin kung gagamit ng isang uno o mega, ang lapad ng display, taas, laki ng font, mga keyboard pin at aling mga driver file ang gagamitin. Nagsisimula ito sa linya 39 sa code at maaari mong kopyahin ang format ng mga umiiral na ipinapakita.
Susunod ay bumaba sa linya 451 at idagdag sa startup code. Dito mo itinakda ang kulay ng background at ang pag-ikot at simulan ang display.
Susunod ay upang pumunta sa linya 544 at idagdag sa code upang ipakita ang isang character. Sa ilang mga kaso ito ay isang linya lamang, hal
my_lcd. Draw_Char (xPixel, yPixel, c, tftForecolor, tftBackcolor, 1, 0); // x, y, char, maaga, likod, laki, mode
Susunod ay pumunta sa linya 664 at idagdag sa code upang gumuhit ng isang pixel. Muli, minsan ito ay isang linya lamang hal:
tft.drawPixel (xPixel, yPixel, tftForecolor);
Panghuli pumunta sa linya 727 at idagdag ang code upang gumuhit ng isang patayong linya para sa cursor, halimbawa
tft.drawFastVLine (xPixel, yPixel, fontHeight, tftForecolor);
Pinagsasama-sama ng programa ang mga bagay tulad ng kung magkano ang memorya na ilalaan para sa buffer ng screen batay sa lapad ng screen at laki ng font.
Hakbang 9: Pagpapakita ng Wordstar
Ginawa ito gamit ang isang computer na CP / M, at maraming mga pagpipilian na magagamit dito. Kailangan ko ng isang mabilis na i-set up, kaya gumamit ng isang pagtulad sa isang ESP32 (Google ESP32 CP / M). Maraming iba pang mga Retro computer na magagamit, halimbawa, ang pagtulad sa FPGA ng Grant Searle, at ang RC2014 para sa mga mas gusto na gumamit ng totoong Z80. Maraming mga retrocomputer ay may posibilidad na gumamit ng isang programa ng terminal sa isang PC tulad ng ipinapakita, hal. Teraterm. Maraming pag-debug sa proyektong ANSI na ito na kasangkot sa pagpapatakbo ng isang programa ng terminal at ang programa ng ANSI nang kahanay at tiyakin na ang mga screen ay mukhang magkapareho.
Hakbang 10: Karagdagang Mga Saloobin
Tulad ng ipinapakita na pagtaas ng sukat mas mabagal at mabagal ang mga ito. Ang pag-redraw ng isang character ay nagsasangkot sa pag-redraw ng bawat pixel sa character na iyon bilang ang kulay sa background ay dapat na iguhit din, kaya't ang lahat ay bumaba sa kung gaano kabilis maaari kang gumuhit ng isang pixel. Mayroong ilang mga pag-aayos, halimbawa kung ang isang display ay hindi makakasabay sa papasok na data, iimbak lamang ang teksto sa buffer ng screen at pagkatapos ay gawin ang isang buong screen redraw kapag wala nang papasok na teksto. Maraming mga display na nakikita mo ang sale ay nagpapakita ng isang magandang larawan sa screen, ngunit ang maaaring hindi nila ipakita ay kung gaano katagal bago maipakita ang larawang iyon, at sa ilang mga kaso maaari itong maging 5 segundo o higit pa. Ang I2C at SPI ay mahusay para sa mas maliit na mga display ngunit anumang higit sa 50 mga haligi ay nangangailangan ng isang 8 o 16 bit na data bus.
Ang Wordstar ay medyo hindi mahirap gawin upang magamit sa 9600 baud at ang 19200 ay mas magagamit para sa pag-scroll ng teksto, ngunit ang mga ipinapakita ay talagang hindi makakasabay.
Ang pinakamabilis na display na ginamit ko ay sa Propeller chip na may dalawang 8 bit external 512k ram chips, upang lumikha ng isang 16 bit parallel data bus. Ang bawat font ay paunang na-load sa ram. Ang isang kaskad ng 74xx counter chips ay ginamit upang mai-orasan ang data sa display. Nangangahulugan ito na walang panloob na pagproseso sa loob ng pagkuha ng CPU at pag-output ng data, at ang rate ng pag-refresh ay kasing bilis ng Propeller chip na maaaring magpalipat-lipat ng isang pin. Nakakagulat, ang mga ipinapakita ay nakakasabay dito, kahit na sa 20Mhz, at sa gayon posible na gawin ang isang buong pag-update sa screen sa 30 milliseconds lamang. Ang uri ng rate na iyon ay sapat na mabilis upang mag-scroll nang maayos, tulad ng nakikita mo sa mga mobile phone.
Ang Propeller chip ay napakahusay higit sa sampung taon na ang nakakalipas, at maraming mga pagpipilian ngayon kasama na ang ESP8266 at ESP32 na mayroong maraming halaga ng panloob na ram. Gayunpaman, ang mga chips na iyon ay wala pa ring maraming bilang ng mga pin, kaya maaari pa ring maging karapat-dapat sa paggamit ng old-skool na paraan ng isang panlabas na ram chip na na-orasan sa display.
Para sa mas malaking pagpapakita ay maaaring mas mura ito upang gumamit ng isang LCD TV screen o VGA screen at tingnan ang ilan sa mga ANSI emulator na na-code, hal. Ang ESP32, na direktang nagdadala ng VGA.
Inaasahan kong napakinabangan mo ang proyektong ito.
James Moxham
Adelaide, Australia
Inirerekumendang:
Sistema ng Koleksyon ng Feedback: 4 na Hakbang
Sistema ng Koleksyon ng Feedback: Palaging kawili-wili upang mangolekta ng mga post-event at pagawaan ng feedback. Upang malutas ang problemang iyon, gumawa kami ng isang sistema ng pagkolekta ng feedback na nakabatay sa arduino. Sa proyektong ito gagawa kami ng isang aparato na electronics na kukunin ang puna ayon sa bawat pindot na pinindot,
Pagbuo ng isang DIY Arduino sa isang PCB at Ilang Mga Tip para sa Mga Nagsisimula: 17 Mga Hakbang (na may Mga Larawan)
Pagbuo ng isang DIY Arduino sa isang PCB at Ilang Mga Tip para sa Mga Nagsisimula: Ito ay sinadya bilang isang gabay sa sinumang paghihinang ng kanilang sariling Arduino mula sa isang kit, na maaaring mabili mula sa A2D Electronics. Naglalaman ito ng maraming mga tip at trick upang matagumpay itong mabuo. Malalaman mo rin ang tungkol sa kung ano ang lahat ng iba't ibang mga sangkap
Pagpapakita ng Temperatura at Humidity at Koleksyon ng Data Sa Arduino at Pagproseso: 13 Mga Hakbang (na may Mga Larawan)
Pagpapakita ng Temperatura at Humidity at Koleksyon ng Data Sa Arduino at Pagproseso: Intro: Ito ay isang Proyekto na gumagamit ng isang Arduino board, isang Sensor (DHT11), isang Windows computer at Pagproseso (isang libreng maida-download) na programa upang ipakita ang Temperatura, data ng Humidity sa digital at form ng bar graph, oras ng pagpapakita at petsa at magpatakbo ng isang count up time
Circuit ng Koleksyon ng ECG: 5 Mga Hakbang
Circuit ng Koleksyon ng ECG: PAUNAWA: Hindi ito isang medikal na aparato. Ito ay para sa mga layuning pang-edukasyon na gumagamit lamang ng mga simulate signal. Kung ginagamit ang circuit na ito para sa totoong mga sukat ng ECG, mangyaring tiyaking ang circuit at ang mga koneksyon sa circuit-to-instrument ay gumagamit ng wastong pagkakahiwalay
Ano ang Gagawin Sa Mga Random na Koleksyon ng Motor: Project 2: Mga Ilaw ng Umiikot (Model UFO): 12 Hakbang (na may Mga Larawan)
Ano ang Gagawin Sa Mga Random na Koleksyon ng Motor: Project 2: Umiikot na Mga ilaw (Model UFO): Kaya, mayroon pa rin akong isang Random na Koleksyon ng Motor … Ano ang gagawin ko? Well, isipin natin. Paano 'ang laban sa isang LED light spinner? (Hindi hinawakan ng kamay, paumanhin ang mga mahilig sa manunulid.) Mukhang medyo tulad ng isang UFO, parang isang halo sa pagitan ng isang weed-whacker at isang blender