English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية 
PS2 мишката и BASIC Stamp компютър
Colin Fahey

1. Въведение

В тази статия се описва как един PS/2 мишката може да бъде emulated с BASIC Stamp компютър. 

Това проучване е неформален. 
ps2_mouse_interior.jpg
Вътрешността на един стар стил (движи топката) компютърна мишка: на "Microsoft Intellimouse"  (I заменя на оптични сензори с дълги кабели.)
Мишка има два аспекта: "X" и "Y".  Когато мишката се придвижват "хоризонтално," на "X" колело се върти във вътрешността на мишката.  Когато мишката е преместен "вертикално" (по площ), на "Y" колело се върти във вътрешността на мишката.  За произволно движение на мишката, за "X" и "Y" колела се движат в зависимост от "хоризонтални" и "вертикални" компоненти на движение на мишката. 
ps2_mouse_interruptor_wheels.jpg
Оптични interruptor шайби във вътрешността на мишката
Съобщение на дупки в колелата във вътрешността на мишката.  Когато колелото се върти, на инфра-червени (IR) излъчваната светлина от IR Лек При Диод (LED) се прекъсва многократно, в размер, пропорционален на размера на колело ротация.  Така, мишка знае колко "увеличение" (наричани също "кърлежи)" на мишката ос е преместен в конкретен период от време. 

Определяне посоката на движение включва използването на 2 леки сензори, разположени в непосредствена близост заедно, покрай една ос успоредно на движението на волана.  (И в двете сензори са в един 3-пинов компонент е показано по-долу.) 
mouse_sensor01.jpg
Мишка IR сензор за осветление (има две IR детектори в един пакет)
В центъра на ПИН на пакета е положително напрежение колектор; 
Отляво и отдясно пина са отляво и отдясно сензор за изхода емитери. 

Нека името на двата сензора в пакет "A" и "B".  Предполагам колелото е първоначално в ъгъл на завъртане, така че светлината IR е блокиран от достигането на двете сензори. 

Тъй като колелото се върти, IR на светлината от emitter евентуално ще бъдат в състояние да премине през дупка в колелото и да се постигне една от двете сензори, като сензор "A".  Ако колелото продължава въртящи се в същата посока, в крайна сметка втората сензор, "B", ще бъде в състояние да получените IR светлина.  Ако колелото продължава въртящи се в същата посока, в крайна сметка на IR светлина ще бъде блокиран от достигането на сензора "A".  Ако колелото продължава въртящи се в същата посока, в крайна сметка на IR светлина ще бъде блокиран от достигането на сензора "B". 

Така, редицата е: 
(A,B):   ..., (0,0), (1,0), (1,1), (0,1), ...
Ако колелото се върти в обратна посока, на 4-план последователност е показано по-горе, ще се промени, като се започне от сегашното положение.
С тези два сензора сигнали, ние можем да се определи честота на въртене и посоката.
ps2_mouse_circuit_board.jpg
Схема на борда на Microsoft Intellimouse
За да разберете повече за това как мишката движение интерпретира светлината сензори и комуникира с персоналните компютри (PC) (чрез PS/2 сигнали), учи в I кръг борда. 

В микрочип е следното име отпечатани върху него: SPCP05A. 

А търсенето на Интернет за думата "SPCP05A" показва, че чип се произвежда от фирма на име "Sunplus Technology Co.".  Информация за "SPCP05A" микрочип могат да бъдат придобити от тази компания. 

Ето и техническите спецификации на "SPCP05A" микрочип: 
sunplus_ps2_3dmouse_datasheet.pdf
(Техническите спецификации на "SPCP05A" микрочип)
1125022 bytes
MD5: 359a9210275e021cc19a5e2391499dc5
Следните изображение показва сигналите на пина на "SPCP05A (PS/2 3D mouse)" микрочип.
spcp05a_chip_signals_bmp01.jpg
Сигналите на пина на "SPCP05A (PS/2 3D mouse)" микрочип
В "SPCP05A" всъщност е мъничък компютър!  Той е един набор инструкции, както и RAM и ROM, както и вътрешни време и др  В действителност, описанието на "SPCP05A" микрочип в информацията, предоставена от Sunplus Co.  едва се отнася до конкретната употреба на микрочип за "компютърна мишка" вериги.  Този чип е гъвкави микроконтролера. 

Учи в I кръг следи от веригата борда на Microsoft Intellimouse да формират следните приблизителни схеми:
ps2_mouse_my_schematic.jpg
Приблизителна схеми на Microsoft Intellimouse  (Аз съм липсват няколко кондензатори, но това е почти постоянно своите схеми.)
Bui Van Chu, в Австралия, прочетете моята статия ме изпраща и по-пълни схеми, което изглежда по следния изображение.
ms_ps2_mouse_schematic.jpg
В PS/2 мишката схеми, изпратено до мен от Bui Van Chu от Австралия
В цикъл е много проста. 

Бутоните на мишката (в ляво, средата, в дясно) отиват директно към материали на микрочип. 

Трите двойки от светлината сензори, (("X", "Y", "Z"), (хоризонтални за движение, вертикално движение, както и средата на мишката колело)) изпращат сигнали директно към други материали за чип. 

В PS/2 сигнали DATA и CLK (часовник) също съответстват на I/O сигнали за чип. 

I разбира от схеми веднага след като се завърши изготвянето тя (по следните маршрути на борда на схема). 

Едно нещо не разбирам, първоначално е бил начинът, по който IR LEDs бяха свързани с микрочип (ПИН 16: "PB1"), вместо на своите отрицателни терминали (катод) просто са свързани директно към земята.  Това е важно!

2. Моят първи опит за контрол на движението на мишката

Следните коментари се отнасят за движение по една ос (като "X", или хоризонтално положение, ос). 

Първото нещо, аз се опитах се движат в един обект между IR LED и сензор за деца - да се симулира ефект на въртящо се колело в рамките на мишката.  Това работи.  I биха могли да доведат до курсора на мишката директно да се движат из екрана, просто се движат в пречка през IR лъч светлина многократно, в една и съща посока. 

Напред, аз се отстраняват от 3-пинов сензор за част от веригата на мишката борда, както и приложени към проводника схема борда на мястото на датчика.  I ръчно един тел, свързани с положителни напрежение да симулирате сензор дейност.  I двете сигнали, свързани с мощност по следния модел (такъв, че представлява "0" "разстояние," и представлява "по" "1"):
(0,0), (1,0), (1,1), (0,1), ...
Това работи.  Мога да преместите курсора на мишката директно върху екрана, от тази tedious, свързваща и прекъсват на проводника в схемите е показано по-горе.  Заден модела от текущото състояние в редицата ще преместите курсора в обратна посока. 

Защото нещата ще са така добре, реших за свързване на проводника за релета (контролирани от RS-232).  Това би същество позволете ми да правя точно това, което направих в насипно състояние с проводника: свързване на датчик сигнали за мощност терминал в подходяща последователност.  Единствената разлика ще бъде фактът, че на човека (ми) не би да направят tedious, свързваща и прекъсват. 

Но ...  той не работи! 

След много за коригиране на резистори и кондензатори и т.н., които направих странно откритие: Ако бях докосване някои терминали в схема, по който работи перфектно!  Решаването на този мистерии се появява в следващия раздел. 

3. В инфра-червени (IR) светлината трябва да бъде модулирано

След няколко frustrating експерименти имах нова мисъл: The IR светлината биха могли да бъдат pulsing най-висока честота, както и чип можеше да се очаква да получи тази честота.  Постоянни светлина (или симулирано ми постоянно сензор за производство) биха могли да бъдат отхвърлени.  Бях малко многословни от факта, че фоновото осветление на пода халогенна лампа е приемливо, но знаеше, че дори лампи с нажежена жичка са откриваеми модулация. 

Аз се опитах pulsing един IR LED най-висока честота и блокиране на сензори в зависимост от модела се очаква.  Тя работи! 

Това е то!  В IR LEDs в борда на мишката цикъл трябва да мига в най-висока скорост, както и микрочип, трябва да очакваме това мига, в допълнение към относително ниска ставка на светлината прекъсване от въртящи се колела (с дупки). 

По pulsing на IR LEDs, и очаква това pulsing в отблокирани сензор изходния сигнал, на чип може да отхвърли всякакви сигнали от околния IR се намесва с мишката операция.  Така например, бездомни светлината от другите (постоянна) IR източници, няма да interefere с мишката. 

I свързани аудио усилвател с мощност сензор, и тогава нека да сензор за околната светлина в подадените от моя етаж халогенна лампа.  Чух отчетлив тон (60 Hz).  Когато dimmed лампата, е нараснал размер на тон, а накрая спря, когато светлината е спряло.  Така че, този сензор за лесно да взима предвид 60 Hz модулация в нажежена крушка, на моя етаж халогенна лампа! 

Гледам, сега, по схеми на PS/2 мишката схема борда, значението на IR LEDs са свързани с карфичка на микрочип (вместо на ток) е очевидна.  В микрочип контролира мига на IR LEDs чрез I/O ПИН кода, както и да микрочип, корелиращи намерението си за флаш на ID LEDs със сензор за получените материали, както и по този начин отхвърли бездомни сигнали (поради не-мига IR светлината).  (Въпреки това, за съответствие не е необходимо.  Просто откриването на минимален брой мига си струва да бъде праг за приемане сензор за вход.) 

4. IR сензори с bandpass филтри

Можете да намерите IR специални сензори, опаковани в транзистор като форма с три води, които са "включени" към конкретни модулират IR светлината честоти (например, 38 kHz). 
tuned_sensor01.jpg
Мелодия IR сензор за осветление (максимална чувствителност към светлина 38 kHz модулация)
Bandpass движение се съдържа в рамките на устройство, заедно с IR фото-транзистори. 

Значи, IR LED може да бъде по принцип pulsed на честотата на 38 kHz, така че сензор ще се появи светлината и нека електрическите сигнали отидете на сензора изходи. 

Да предадат информация, светлината от IR LED може да бъде прекъснат по една сравнително ниска ставка (напр.  1 до 100 пъти в секунда).  Тази ниска честота pulsing е в постоянна връзка с висока честота pulsing; т.е.  на ниска честота pulsing могат да бъдат смятани за модулиране на висока честота pulsing.  Високата честота-pulsing е като "превозвач на вълната," при която информацията сигнал (относително ниска честота на модулация) е извършена. 

Струва ми се обаче, потвърдили, че IR сензори в Microsoft Intellimouse не разполагат с такива модулация филтриране.  Все пак, схема дошли изискват IR, че светлината се модулират, в някои начин, в допълнение към ниска честота на прекъсвания на светлината от колелото с дупки. 

Следната схема илюстрира разликата в сензора сигнали за постоянно IR LED светлина и мига IR LED светлина за различните фази на мишката колело включване.
ps2_mouse_quadrature_sketch.jpg
Сензор изход сигнали за постоянно IR леки случаи и на мига IR леки случай.

5. Симулирането на входа на мишката използвате компютъра BASIC Stamp

В "BASIC Stamp 2" компютър разполага с достатъчно programmability за изпълнение на PS/2 протокол.  Следователно, "BASIC Stamp 2" компютър може да бъде свързан директно към PS/2 пристанището на персоналните компютри (PC) и може да съревновавам един PS/2 мишката или клавиатурата. 

5.1 В протокола PS/2

През годините 1998 чрез 2003, по-голямата част от личните компютри са PS/2 портове за мишка и клавиатура. 

В PS/2 пристанището разполага с 4 сигнали: (1) CLOCK; (2) DATA; (3) +5V; (4) GROUND. 

В PS/2 порт позволява на устройствата за изпращане на данни на хост, и в приемащата могат да изпращат данни за устройства.  Всички страни по PS/2 порт (обикновено просто устройство и домакин), трябва да си поделят сигнали и да открие друга страна, ако в момента се използват сигнали. 

Как може сигнали се разпределят?  А сигнал (например CLOCK или DATA) обикновено е "плаващ" високо, което означава, че сигнал е свързан с положително напрежение чрез резистори с висока устойчивост (например, 4 kilo-Ohms).  Така сигнал се интерпретира като логически "високо" от всички страни, слушане.  Всяка страна може да тегли линия ниско (чрез TTL логика), когато страната възнамерява да изпрати данните.  Когато дадена страна е завършил изпращане на пакет, той ви позволява отиде на сигнали за неопределено време, така че те плаваш високо отново. 

За да изпратите данните от едно устройство (например, мишката или клавиатурата) на персоналните компютри (PC), трябва да изпрати данните в 11-битов пакети, състоящи се от следните бита: (1) проекта битов ("0"); (2) 8 бита данни (LSB първи); (3) паритет битов "(нечетен" паритет); (4) спрат битов "(1)."  Имайте предвид, че "равенството" е "нечетен," когато общият брой на "1" битове в данните бита и паритета битови комбинирани е нечетен брой. 

Следната диаграма илюстрира пренос на данни от един пакет: 
ps2_clock_data_dev2pc01_adj.jpg
PS/2 протокол: устройство ще бъде домакин на (PC) пакет
В DATA линия трябва да бъде определен за правилното стойност, преди предприемането на CLOCK линия ниско.  В DATA стойност трябва да остане в стаята, докато CLOCK линия се връща обратно към по-високи.  Когато CLOCK линия е потвърдено да бъде висока, на DATA стойност може да се променя към следващата битова стойност. 

Типичните часовник на скоростта е сравнително бавно, за 10 kHz да 17 kHz.  Това е 100 microseconds чак до 70 microseconds часовник за всеки период от време. 

Сценарият на приемащата (PC) изпращане на данни към устройство, подобно на устройство за изпращане на данни на хост, но във всички случаи устройството за управление на CLOCK сигнал по време на предаване на данни само себе си.  Освен това, данните, изпратени от битов домакин (при устройство за настройка CLOCK ниско) трябва да бъде latched, когато устройството позволява на CLOCK сигнал направи преход към по-високи. 

Едно търсене в Интернет ще се разкрият много от описанията на PS/2 сигнали и информация за протокола. 

5.2 PS/2 мишката данни пакети

Когато ботуши до компютъра, операционната система започва и евентуално да комуникира с мишката, за да определите типа на мишката.  По подразбиране мишката май се държи като родово PS/2 мишката.  Въпреки това, ако прецени, че операционната система на мишката всъщност е "3D PS/2" мишката (например, мишка с колело), той може да кажете на мишката, за да променят към 3D PS/2 мишката протокол. 

При преместване на мишката, или натиснете бутона на мишката или съобщение, движение на мишката изпраща данни на хост (PC), което показва какво състояние са настъпили промени след предишното състояние указание. 

Общите PS/2 мишката следните три изпраща пакети до Водещ: 
    ------------------------
    D7 D6 D5 D4 D3 D2 D1 D0  (The D0 bit (LSB) is sent first)
    ------------------------
(1) YV XV YS XS  1  0  R  L  (overflow, sign, buttons)
(2) X7 X6 X5 X4 X3 X2 X1 X0  (X movement; -128 to +127)
(3) Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0  (Y movement; -128 to +127)

L  = Left  Button State (1 = pressed down)
R  = Right Button State (1 = pressed down)
XS = Direction of X movement (1 = LEFT)
YS = Direction of Y movement (1 = UP)
XV = Overflow of X movement value (1 = X overflow occured)
YV = Overflow of Y movement value (1 = Y overflow occured)
X7,...,X0 : X movement; 8-bit 2's-complement signed byte (-128 to +127)
Y7,...,Y0 : Y movement; 8-bit 2's-complement signed byte (-128 to +127)

Here are examples of data sent to the host (PC):
------------------------------------------------
(The least-significant bit of each data byte is sent first.)
Move Left  1 unit    :  0x18, 0xFF, 0x00
Move Right 1 unit    :  0x08, 0x01, 0x00
Move Down  1 unit    :  0x28, 0x00, 0xFF
Move Up    1 unit    :  0x08, 0x00, 0x01
Press   Left  Button :  0x09, 0x00, 0x00
Release Left  Button :  0x08, 0x00, 0x00
Press   Right Button :  0x0C, 0x00, 0x00
Release Right Button :  0x08, 0x00, 0x00
Той е много често да има "3D PS/2" мишката (например, с мишката колело, че действа и като среден бутон).  Такава мишка изпраща четири данни пакети на приемащата (PC). 
    ------------------------
    D7 D6 D5 D4 D3 D2 D1 D0  (The D0 bit (LSB) is sent first)
    ------------------------
(1) YV XV YS XS  1  M  R  L  (overflow, sign, buttons)
(2) X7 X6 X5 X4 X3 X2 X1 X0  (X movement; -128 to +127)
(3) Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0  (Y movement; -128 to +127)
(4) Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0  (Z movement; -128 to +127)

This is very similar to the generic PS/2 mouse,
with a few additions:

M = Middle Button State (1 = pressed down)
Z7,...,Z0 : Mouse wheel movement; 8-bit 2's-complement signed byte
    (The Z value is forced to a range of -8 to +7)

5.3 Моят първи цикъл да симулирате един PS/2 мишка

Следните схеми ми беше първия работен техника, за да ми "BASIC Stamp 2" компютъра, за да изпратите PS/2 мишката данни на хост (PC).
2002june03_basicstamp_to_ps2mouse_circuit.jpg
Схеми на схема BASIC Stamp да позволи на компютъра да изпраща пакети до PS/2 домакин (PC).
Имайте предвид, че този цикъл ел.  изолати ми BASIC Stamp компютъра от приемащата (PC) компютър.  Също така имайте предвид, че тази схема е само да отговарят на изискванията на електрическа PS/2 пренос на данни (от устройството да бъде домакин).  По този начин мога да изпрати PS/2 клавиатура съобщения от същата тази схема, ако включете към PS/2 клавиатура пристанище на приемащата (PC)! 

След получаване на сигнала е по принцип не са инвазивни (т.е., за слушане не се намесва в електрически сигнали), единственото нещо, трябва да позволи на "BASIC Stamp" компютъра, за да получите PS/2 CLOCK и DATA сигнали е пряка връзка от тези сигнали към други BASIC Stamp I/O пина (конфигурирани да бъдат елементи).  Бих искал да опитате някои видове буферен - но определено не може да използва един опто-изолатор пряко, тъй като това ще постави натоварване на "плаващите" сигнали (като по този начин се "потъва" тях!).  Мога да използвате +5V на власт на буфер, а след това след това използването на буфера производство за шофиране опто-изолаторите, че в крайна сметка изпраща сигнали до BASIC Stamp I/O пина (конфигуриран като суровини). 

Следните изображение показва BASIC Stamp 2 моя компютър, свързан към схема за съвпадение на схеми-горе. 
2002june03_basicstamp_mousecircuit01_adj.jpg
BASIC Stamp 2 компютър, свързан към PS/2 мишката пристанището чрез опто-изолатор цикъл.
Следните BASIC Stamp 2 програма, написана в PBASIC език за програмиране, бе моят първи успешен опит за контрол на PS/2 мишката чрез BASIC Stamp 2 компютър. 

Програмата прави просто да преместите курсора на мишката по малък диагонал ред. 
'====================================================================
'{$STAMP  BS2} 'STAMP directive (specifies a BS2)

    DIR0 = %1 'Set pin 0 to OUTPUT
    DIR1 = %1 'Set pin 1 to OUTPUT
    OUT0 = %0 'Set DATA line high (pin low)
    OUT1 = %0 'Set CLOCK line high (pin low)
    tempData    VAR  BYTE
    tempParity  VAR  BYTE

'--------------------------------------------------------------------

MainLoop:

    tempCounter  VAR  WORD

    FOR tempCounter = 0 TO 10
    tempData = $28
    GOSUB TransmitPacket
    tempData = $01
    GOSUB TransmitPacket
    tempData = $ff
    GOSUB TransmitPacket
    tempData = $00
    GOSUB TransmitPacket
    PAUSE 100
    NEXT

    FOR tempCounter = 0 TO 10
    tempData = $18
    GOSUB TransmitPacket
    tempData = $ff
    GOSUB TransmitPacket
    tempData = $01
    GOSUB TransmitPacket
    tempData = $00
    GOSUB TransmitPacket
    PAUSE 100
    NEXT

    GOTO MainLoop

STOP

'--------------------------------------------------------------------

TransmitPacket:

    GOSUB ComputeParity       'First, compute parity

    tempData   = ~tempData    'Invert data bits
    tempParity = ~tempParity  'Invert parity bit

    '==== Start Bit ====
    OUT0 = %1 'Set data line low (output high)
    PULSOUT 1, 25   ' Pulse line 1 for (25*2) = 50 usec

    '==== Data Bits ====
    OUT0 = tempData.BIT0
    PULSOUT 1, 25
    OUT0 = tempData.BIT1
    PULSOUT 1, 25
    OUT0 = tempData.BIT2
    PULSOUT 1, 25
    OUT0 = tempData.BIT3
    PULSOUT 1, 25
    OUT0 = tempData.BIT4
    PULSOUT 1, 25
    OUT0 = tempData.BIT5
    PULSOUT 1, 25
    OUT0 = tempData.BIT6
    PULSOUT 1, 25
    OUT0 = tempData.BIT7
    PULSOUT 1, 25

    '==== Parity Bit ====
    OUT0 = tempParity.BIT0
    PULSOUT 1, 25

    '==== Stop Bit (high) ====
    OUT0 = %0  ' pin low is DATA high
    PULSOUT 1, 25

    PAUSE 1 ' Necessary? Provides 1 msec gap between packets...

RETURN

'--------------------------------------------------------------------

ComputeParity:

    tempParity = $01
    tempParity = tempParity + tempData.BIT0
    tempParity = tempParity + tempData.BIT1
    tempParity = tempParity + tempData.BIT2
    tempParity = tempParity + tempData.BIT3
    tempParity = tempParity + tempData.BIT4
    tempParity = tempParity + tempData.BIT5
    tempParity = tempParity + tempData.BIT6
    tempParity = tempParity + tempData.BIT7
    tempParity = tempParity & $01

RETURN

'====================================================================
Тази програма работи перфектно.  Давам го пуснете за часове, и то безупречно извършени курсора на мишката директно се движат между два точното местоположение на екрана.  Това е, което бях търси: прецизно управление на мишката, така че да могат да взаимодействат със софтуер. 

След като търсенето в Интернет I открили, че някой друг използва един компютър, за да BASIC Stamp интерфейс PS/2 (симулацията на клавиатурата).  Този човек е използвал PBASIC инструкция SHIFTOUT да се справят с CLOCK и DATA сигнали, което е наистина страхотно.  Това ще направя моите "TransmitPacket" subroutine много по-кратък, може би 5 реда код общо! 

АЗ също видях, че други хора използват TTL буфери, с материали, свързани директно от PS/2 сигнали (CLOCK и DATA), и резултатите, свързани директно към пина на микроконтролера чип.  В същата схема, производство линии от микроконтролера отидох директно на база пина за транзистори, които са им колектори, свързани директно към PS/2 сигнали.  Всичко това пряк прикачване на различни писти изглежда като лош представа за мен, би един цикъл запържваме другата.  Не знам какво ще направя, ако пържени PS/2 на пристанището в моя PC.  Покупка на нова дънна платка, АЗ отгатвам!  Извинение за ъпгрейд.  Мисля, че не е едно пристанище PS/2 дънната платка meltdown е вероятно, но, ама не мигновено изключване на компютъра ми, когато случайно кратко-circuited на +5V и GROUND сигнали отидеш на PS/2 мишката.  Може би това е функция!  Мога да добавите нов бутон на мишката, че току-що къси писти на мишката власт за бързо изключване на PC.  ;-) 

Ето връзка с информацията, относно използването на SHIFTOUT за PS/2 протокол:
http://ourworld.compuserve.com/homepages/steve_lawther/keybinfo.htm
Потърсете следната връзка:
KEYBTST.ZIP   gives a very basic program for the parallax
-----------
BASIC stamp II, to send key-codes to the PC's keyboard port.
It also gives a write-up of the XT and AT keyboard interfaces
(although IMO some details could be wrong / different to the
keyboards I've looked at).
Локално-кеширано копие на файла:
keybtst.zip

10655 bytes
MD5: c5667557f96db53fb878bd11bfbe4f74
Следният линк дава допълнителна информация относно PS/2 мишката interfacing:
http://panda.cs.ndsu.nodak.edu/ ~ achapwes/PICmicro/PS2/ps2.htm
colinfahey.com
Информация за контакти
English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية