• Компьютеры бесподобны: всего за несколько секунд они могут сделать такую грандиозную кучу ошибок, какую не в состоянии сделать множество людей за многие месяцы работы.

Тест блока EV3

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

  • имя блока,
  • состояние батареи
  • типы и режимы подключенных к блоку датчиков

Все данные программа выводит в консоль MS Windows.

При желании нетрудно переписать данную программу так, чтобы она выводила данные не в консоль MS Windows, а непосредственно на экран блока: это можно сделать и за один раз и последовательно, реагируя на нажатия кнопки.

Также, используя этот код и результаты его работы, можно создать программу, которая сама будет искать, к какому порту подключен нужный датчик (иногда возникают проблемы, связанные с тем, что «кто-то» подключил датчик не к тому порту 🙂 ).

Вы можете скопировать указанный ниже код программы в IDE Small Basic, подключить блок EV3 к компьютеру и запустить:

TextWindow.WriteLine("Имя EV3 блока: " + EV3.BrickName)
TextWindow.WriteLine("Процент заряда батареи: " +  EV3.BatteryLevel + "%")
TextWindow.WriteLine("Напряжение батареи: " +  Text.GetSubText(EV3.BatteryVoltage,1,4) + " Вольт")
TextWindow.WriteLine("Ток: " +  Text.GetSubText(EV3.BatteryCurrent,1,4) + " Ампер")
TextWindow.WriteLine("Датчики:")
For i = 1 To 4
  TextWindow.Write("Порт: " + i + " тип: " + Sensor.GetType(i))
  TextWindow.WriteLine(" имя: " + Sensor.GetName(i) + " режим: " + Sensor.GetMode(i))
EndFor

Также можно рассмотреть вот такой вариант программы, которая может работать непосредственно на блоке EV3 без контакта с компьютером и выводит на экран блока информацию о состоянии батареи. При желании эту программу можно расширить, добавив в неё весь вышеприведённый функционал.

While "True"
    LCD.StopUpdate()
    LCD.Clear()
    LCD.Text(1, 30,30, 1, "Battery Level")
    LCD.Text(1, 50,50, 2, EV3.BatteryLevel)
    LCD.Update()
    Program.Delay(1000)
EndWhile

Поделиться: