Hardver

Mini soros konzol az MM8D-hez

Hardver

Ez egy egyszerű soros konzol, amely adatmegjelenítésre és adatbevitelre használható. Egyszerre három (különböző) soros interfészt tud kezelni: 3.3V TTL-t egykártyás számítógépekhez és mikrokontrollerekhez, hagyományos RS-232-t és USB-n keresztüli soros portot.

tápfeszültség:5 V
áramfelvétel:kb. 30 mA
mechanikai méretek:100x60x50 mm
szigetelési osztály:0. osztály
IP védettség:IP 00
készülékház anyaga:termoplaszt (PC), csak fedlap
kijelző méret:20x4 katakter
karakterkészlet:ASCII 32-127
kapcsolat:3.3V TTL, RS-232 and USB soros
vételi puffer mérete:255 byte
Ez egy Raspberry Pi Pico alapú eszköz. A kijelző 20x4 karakteres folyadékkristályos kijelző, amely a nagyobb méretű virtuális képernyő 20x4 méretű területét jeleníti meg. Ez a terület gombokkal mozgatható. A virtuális képernyő alapértelmezett mérete 80x25 karakter, ez az érték a programban állítható be.

Az áramkör három soros porttal rendelkezik, beállítástól függően mindhárom használható adat- és rendszerüzenet átvitelre, vagy mindkettőre egyszerre. A #0 soros port USB-porton keresztüli, az 1-es egy 3,3V-os TTL-port, a #2-es egy hagyományos RS-232-es soros port. Serial #1 csatlakoztatható egy 5 V-os TTL soros porthoz külső szintváltó áramkörrel. Alapértelmezett port sebességek: 115200, 9600 és 9600 bit/s, ezek az értékek a programban állíthatók be.

A konzol négy üzemmóddal rendelkezik, az első három csak megjelenítésre használható, ezek előre programozottak, a negyedik az egyedi megoldásoknak van fenntartva. A módok közötti jumperekkel választhatunk. Ebben az alkalmazásban csak a MODE #3 használható. Látogassa meg az eredeti oldalt a többi üzemmóddal kapcsolatos információkért.

Működési módok:
MODE #3/0csak olvasható mód, nincs kurzor, 20x4 méretű megjelenített terület, a megjelenített lapok között a nyomógombokkal lapozhatunk, a PB4 gombbal válthatunk alüzemmódot.
MODE #3/1csak olvasható mód, nincs kurzor, 20x4 méretű megjelenített terület, a megjelenített lapok között a nyomógombokkal lapozhatunk, a PB4 gombbal válthatunk alüzemmódot.
MODE #3/2csak olvasható mód, nincs kurzor, 20x4 méretű megjelenített terület 80x25 * méretű virtuális képernyőn, a megjelenített terület vízszintesen és függőlegesen mozgatható a nyomógombokkal, a PB4 gombbal válthatunk alüzemmódot, a PB5 gombbal állíthatjuk meg a sorok automatikus görgetését.
*: A virtuális képernyő mérete a programban beállítható.

Gombok funkciója:
gomb MODE #3/0 MODE #3/1 MODE #3/2
PB0    
PB1    
PB2 Pg Up Pg Up
PB3 Pg Dn Pg Dn
PB4 alüzemmód váltása alüzemmód váltása alüzemmód váltása
PB5     naplógörgetés tiltása
Oldalak

Szoftver

Az eszközt működtető program az Arduino IDE fejlesztőrendszeren készült. Ezt az alkalmazást először fel kell készíteni a Raspberry Pi Pico-val való együttműködésre, amelyhez a leírás megtalálható az interneten: (például itt).

Beállítás
A program telepítése előtt be kell állítania ezeket a fordítási direktívákat:

#define LCD_8BIT               // enable 8 bit mode of the LCD
#define COM_USB                // enable Serial #0 port
#define COM_TTL                // enable Serial #1 port
#define COM_RS232C             // enable Serial #2 port
// #define COM_USB_MESSAGES    // enable console messages on Serial #0 port
// #define COM_TTL_MESSAGES    // enable console messages on Serial #1 port
// #define COM_RS232C_MESSAGES // enable console messages on Serial #2 port
és állandókat:

const int     lcd_bloffinterval = 60000;                // LCD backlight off time
const byte    lcd_xsize         = 20;                   // horizontal size of display
const byte    lcd_ysize         = 4;                    //vertical size of display
const byte    virtscreenxsize   = 80;                   // horizontal size of virtual screen
const byte    virtscreenysize   = 25;                   // vertical size of virtual screen
const int     com_speed[3]      = {115200, 9600, 9600}; // speed of the USB serial port

Hogyan működik?
Indításkor a program inicializálja a soros portokat, és ha a konzol üzenetek engedélyezve vannak, állapotüzenetet küld. Ezt követően beállítja a GPIO portokat, törli a virtuális képernyőt és inicializálja a kijelzőt. Beállítja saját működési módját a jumpereknek megfelelően (JP2-3). A kijelzőn rövid információk jelennek meg a készülékről.

A program ezután folyamatosan figyeli az összes soros portot, a gombok állapotát és az üzemmódválasztó jumperek állapotát. Ha az egyik porton adat érkezik, a szoftver eldönti annak típusát. Ha ez egy egyszerű szöveges naplófájl rekord, akkor azt tárolja a virtuális képernyőn tárolja. Ha ez egy bináris csatornaadat, akkor azt a állapot és felülírás tárolóban tárolja.

MODE #3/0-ban a szoftver a tárolt állapotadatokból, MODE #3/1-ben a tárolt felülírási adatokból létrehozza az aktuális oldalt. MODE #3/2-ben az LCD-kijelző a virtuális képernyő egy részét ablakként jeleníti meg. Ez az „ablak” a gombokkal mozgatható. A virtuális képernyő mérete és az „ablak” mozgatásának lehetősége a kiválasztott módtól függ.

A program 60 másodpercnyi inaktivitás után kikapcsolja a háttérvilágítást, majd visszakapcsolja, ha adat érkezik vagy egy gombot megnyomnak.

A vezérlőkről bejövő adat
Bejövő (bináris) adat Mode #3-ban (CH #0)
byte funkció érték
0: 'C' 0x43      
1: 'H' 0x48      
2: csatornamszám 0x00      
3: túláramvédelem hiba 0x00: zárva 0x01: nyitva    
4: vízszivattyú nyomáshiba (nincs víz) 0x00: jó 0x01: rossz      
5: vízszivattyú nyomáshiba (dugulás) 0x00: jó 0x01: rossz      
6: külső hőmérséklet °C-ban 0x00-0x80      
7: szivattyú és az első szelep állapota 0x00: kikapcsolva 0x01: bekapcsolva 0x02: mindig kikapcsolva 0x03: mindig bekapcsolva
8: szivattyú és a második szelep állapota 0x00: kikapcsolva 0x01: bekapcsolva 0x02: mindig kikapcsolva 0x03: mindig bekapcsolva
9: status of water pump and tube #3 szivattyú és a harmadik szelep állapota 0x00: kikapcsolva 0x01: bekapcsolva 0x02: mindig kikapcsolva 0x03: mindig bekapcsolva
A: nem használt 0x00      
B: nem használt 0x00      
C: nem használt 0x00      

Bejövő (bináris) adat Mode #3-ban (CH #1-8)
byte funkció érték
0: 'C' 0x43      
1: 'H' 0x48      
2: csatornaszám 0x01-0x08      
3: hőmérséklet °C-ban 0x00-0x80      
4: relatív páratartalom 0x00-0x80      
5: relatív nemkívánt gáz koncentráció 0x00-0x80      
6: működési mód 0x00: átszövetés 0x01: gomba 0x7F: kikapcsolt csatorna  
7: kézi üzemmód 0x00: automata 0x01: kézi    
8: túláramvédelem hiba 0x00: zárva 0x01: nyitva    
9: ajtó állapota (riasztó) 0x00: zárva 0x01: nyitva    
A: világítás kimenet állapota 0x00: kikapcsolva 0x01: bekapcsolva 0x02: mindig kikapcsolva 0x03: mindig bekapcsolva
B: ventilátor kimenet állapota 0x00: kikapcsolva 0x01: bekapcsolva 0x02: mindig kikapcsolva 0x03: mindig bekapcsolva
C: fűtés kimenet állapota 0x00: kikapcsolva 0x01: bekapcsolva 0x02: mindig kikapcsolva 0x03: mindig bekapcsolva

Bejövő (szöveges) naplóbejegyzés Mode #3-ban
Példa sorok:
    "221213 114421 I Configuration is loaded."
    "221213 114427 W CH2: MM6D is not accessible."
    "221213 114427 E ERROR #18: There is not enabled channel!"
dátum (yymmdd) idő (hhmmss) szint rövid magyarázat
221213 114421 I Configuration is loaded.
221213 114427 W CH2: MM6D is not accessible.
221213 114427 E ERROR #18: There is not enabled channel!

Kezelőszervek és csatlakozók

1:F1 biztosíték - tápfeszültség
2:J1 csatlakozó - tápfeszültség bemenet
3:J2 csatlakozó - TTL soros port
4:J3 csatlakozó - RS-232 soros port
5:J4 csatlakozó - nyomógombok
6:JP1 jumper - RESET
7:JP2-3 jumperek - üzemmódválasztó
8:USB csatlakozó

Kapcsolási rajz

Polikarbonát fedlap

Letölthető anyagok

megnevezés változat formátum megjegyzés
hardver dokumentáció v220726 tar.gz  
csak Gerber fájlok v0.1 zip Rendeld meg itt: PCBWay

Működtető program

megnevezés változat OS arch. formátum megjegyzés
forrásnyelvű csomag v0.1     tar.gz C++
bináris csomag v0.1   arm tar.gz  
Github git clone https://github.com/pozsarzs/mini_serial_console_mm8d-sw.git

 Hackster Project page on Hackster.io

Stand with Ukraine!