Следующий пример на EV3 Basic показывает, как на блоке EV3 может происходить автономный ввод текстовой информации. Программа может работать как в режиме подключения к компьютеру, так и в автономном режиме — с компиляцией для работы на блоке EV3.

Вид экрана блока во время работы программы
Вы можете скопировать указанный ниже код в IDE MS Small Basic с установленной библиотекой EV3 и подключенным блоком Lego EV3 и запустить:
mytext=""
LCD.Clear()
LCD.Text(1, 0, 3, 1, "<= Backspace => Enter")
line[1] = "0123456789."
line[2] = "ABCDEFGHIJK"
line[3] = "LMNOPQRSTUV"
line[4] = "WXYZ - < >"
LCD.Text(1, 0, 16, 2, line[1])
LCD.Text(1, 0, 38, 2, line[2])
LCD.Text(1, 0, 60, 2, line[3])
LCD.Text(1, 0, 82, 2, line[4])
LCD.Rect(1, 0, 103, 178, 25) ' рисуем прямоугольник
col = 6 ' текущий столбец
row = 2 ' текущая строка
x = 81 'x координата выделенного символа 'F'
y = 35 'y координата выделенного символа 'F'
LCD.InverseRect(x, y, 16, 22) 'инвертируем символ 'F'
loop = "True" ' цикл, пока переменная истинна
While loop
Buttons.Wait()
Button = Buttons.GetClicks()
LCD.InverseRect(x, y, 16, 22) ' очистить инверсию символа
If Button = "R" Then
col = 1 + Math.Remainder(col, 11) ' прыжок из столбца 11 к 1
ElseIf Button = "L" Then
col = 11 - Math.Remainder(12 - col, 11) 'прыжок из столбца 1 к 11
ElseIf Button = "U" Then
row = 4 - Math.Remainder(5 - row, 4) ' прыжок со строки 4 к 1
ElseIf Button = "D" Then
row = 1 + Math.Remainder(row, 4) ' прыжок со строки 1 к 4
ElseIf Button = "E" Then
If row = 4 and col > 6 Then
If col = 9 then 'backspace
If mytext <> "" Then
' удалить последний символ из mytext
mytext = Text.GetSubText(mytext, 1, Text.GetLength(mytext) - 1)
Else ' нечего удалять
Speaker.Tone(100, 1000, 1000)
EndIf
ElseIf col = 11 Then 'Enter
Loop = "False" ' не повторять цикл
Else 'col=7,8 или 10 не доступны с строке 4
Speaker.Tone(100, 1000, 1000)
EndIf
Else 'средняя кнопка нажата
If Text.GetLength(mytext) <> 11 Then
mytext = mytext + Text.GetSubText(line[row], col, 1)
Else ' уже введено 11 символов
Speaker.Tone(100, 1000, 1000)
EndIf
EndIf
EndIf
x = -15 + col * 16 ' рассчитать координату x символа для подсвечивания
y = -9 +row*22 ' рассчитать координату y символа для подсвечивания
LCD.InverseRect(x,y,16,22)
LCD.Text(1,1,107,2," ") ' очистить текстовую строку
LCD.Text(1,1,107,2,mytext)
EndWhile
LCD.Clear()
LCD.Text(1,0,16,2,"Here is")
LCD.Text(1,0,38,2,"your text:")
LCD.Text(1,0,82,2,mytext)
Program.Delay(8000) ' отображаем в течении 8 секунд