Объект для работы с Nxt-устройствами
07.12.2016
Объект NXT предназначен для управления роботизированной платформой Lego Mindstorms NXT brick и создаётся с использованием конструктора CreateNxt:
myObject.CreateNxt()
Пример.
Выполнить
Методы объекта:
- Beep( int freq, int dur ) - посылает устройству команду воспроизвести звук заданной частоты (Гц) и длительности (мс)
myObject.Beep( 200, 1000); // Сигнал с частотой 200Гц и длительностью 1 сек
- Brake( (str) motors ) - посылает устройству команду торможения указанных моторов
myObject.Brake( 'AB' ); // тормозит моторы A и B
- CheckConnection():bool - проверяет, есть ли соединение с устройством
- Disconnect() - разъединяет связь с устройством
- Drive( (str) motors, int power, int rotations, options ) - запускает указанные двигатели устройства с заданной мощностью (указавается в процентах) и оборотами. Отрицательное значение мощности - реверс, задание 0 для оборотов приведёт к работе моторов, пока не будет получена команда Stop.
myObject.Drive( 'AB', 60, 3 ); // Запуск моторов A и B с мощностью 60% и числом оборотов 3
- GetCurrentProgram():str - возвращает информацию о выполняющейся в текущий момент времени программе NXT-G
- IsBluetoothEnabled():bool - проверяет, доступен ли Bluetooth на телефоне/планшете
- IsMotorIdle( (str) motor ):bool - проверяет, работают ли указанные моторы в настоящее время
- PlaySoundFile( str file, int repeat ) - посылакт устройству команду воспроизвести доступный на устройстве звуковой файл ( .rso). В параметре repeat задаётся количество повторов воспроизведения
myObject.PlaySoundFile( 'myFile.rso' ,2 );
- ReadColorSensor( int input, (str) mode ) - принимает данные с датчика цвета:
- input - номер порта от 1 до 4
- mode - одно из значений "ColorDetect", "LightSense", "RedSense", "GreenSense", "BlueSense"
При выборе режима "ColorDetect" метод возвращает число от 1 до 6, соответствующий цветам: black, blue, green, yellow, red, white. Для преобразования числа в название цвета служит метод ToColorName. В остальных режимах возвращается интенсивность света или цветовой составляющей в диапазоне от 0 до 1023.
myObject.ReadColorSensor( 1 , "LightSense" );
- ReadDistanceSensor( int input ):float - принимает данные от датчика расстояния на заданном порту (от 1 до 4). Возвращает значение в см.
- ReadMail( int mailbox,('Text','Number','Logic') type, bool remove ) - читает отправленное устройством сообщение. В параметре mailbox задаётся номер почтового ящика от 1 до 10. В параметре type указывается тип отправляемого значения. В параметре remove задаётся true, еслинужно удалить сообщение после его чтения, или false, если сообщение нужно оставить
- ReadLightSensor( int input, bool active ):int - принимает данные датчика освещения от 0 до 100. Задайте true параметру Active, если при считывании необходимо, чтобы белый цвет был включён.
- ReadTouchSensor( int input ):bool - принимает данные от датчика касания на заданном порту (от 1 до 4). Возвращает true при касании.
- ReadSoundSensor( int input, ('DB', 'DbA') mode ) - принимает данные от датчика звука на указанном порту (от 1 до 4) в децибелах или взвешенных децибелах
- SendMail( int mailbox, ('Text','Number','Logic') type, str msg ) - отправляет сообщение устройству, которое может быть прочитано нормальной NXT-G программой, запущенной на устройстве. В параметре mailbox задаётся номер почтового ящика от 1 до 10. В параметре type указывается тип отправляемого значения
- SetInvert( bool invert ) - посылает устройству команду инвертировать направление команд для моторов, при указании true в параметре
myObject.SetInvert( true );
- SetLampColor( int input, (str) clr ) - посылает устройству команду включить световому модулю заданный цвет:
- input - номер порта от 1 до 4
- clr - название цвета 'White', 'Red', 'Green', 'Blue', 'Off'
myObject.SetLampColor( 2, 'Green' );
- SetOnConnected( callback ) - задаёт функцию для выполнения действия после успешного установления связи с устройством
- ShowDevices() - показывает диалог со списком спаренных NXT-устройств для выбора того, с которым нужно установить связь.
- StartProgram( str name ) - запускает на выполнение программу NXT-G (.rxe)
myObject.StartProgram( 'myProg.rxe' );
- Stop( str motors ) - посылает устройству команду отключить подачу энергии заданным моторам и остановить их.
myObject.Stop( 'C' );
- StopProgram() - останавливает выполнение NXT-G программы (.rxe), которая выполняется в текущий момент времени