ДО курс по робототехнике

22 августа 2013 г.

Передача параметров между блоками. Частые ошибки.

(C)http://legoms.ru/

В программе LEGO MINDSTORMS предусмотрена передача и прием данных от одного блока другому. Это необходимо, когда надо обрабатывать данные получаемые от датчиков, производить математические и/или логические операции, при выводе информации на дисплей (экран) контроллера. В этой статье мы рассмотрим основные ошибки при передаче данных (параметров) от блока к блоку.
Четыре самые распространенные из  возможных ошибок при подключении блоков:
1. Несоответствие типа передаваемых данных 
Каждый вход или выход блока может работать только с определенным типом данных. В программе используется три типа данных:
  • строковые - данный тип данных представляет собой массив строковых символов. Данную информацию можно выводить на экран.
  • числовые - используется для выполнения математических операций, операций сравнения и определения диапазона.
  • логические - используется для выполнения логических операций и проверки состояний датчиков и исполнительных механизмов.
Поэтому надо следить за тем, какие данные вы передаете от блока к блоку: они должны быть однотипными.  
Пример: Предположим, что вы хотели бы вывести на экране NXT цифровое значение.
Передача параметров между блоками. Частые ошибки.
В данном примере допущена ошибка "несоответствие типов данных", так как мы пытаемся передать числовой тип данных на вход, который может обработать только строковые данные. Для того, чтобы это сделать, надо перевести числовое значение в строковое. На данном рисунке показано как правильно вывести значение на экран NXT.
Передача параметров между блоками. Частые ошибки.
2. Создание линиями передачи данных циклов
Иногда требуется получить данные от блока, обработать их
и передать назад к исходному блоку. 
Пример: Предположим, что нужно создать программу, которая считывает данные с двигателя, производит над ними операцию и возвращает их обратно.
На данном рисунке показана программа с ошибкой.
Передача параметров между блоками. Частые ошибки.
Ниже приведен пример, как правильно это сделать. чтобы не создавать цикл.  
Передача параметров между блоками. Частые ошибки.
3. Отсутствие входных данных 
Многие блоки не могут нормально функционировать без входных данных. 
Пример: Предположим, что вы хотите передать данные через несколько блоков. 
Логические, математические, модули сравнения, нахождение диапазона преобразования типа данных и другие блоки обработки данных требуют наличие входных данных. В программе представленной ниже, видно что с датчика звука не поступают данные на блок математических операций. Эта программа содержит ошибку и не может быть загружена в контроллер NXT.
Передача параметров между блоками. Частые ошибки.
На следующем рисунке представлена исправленая программа. Данные из датчика звука теперь могут быть переданы через блок математических операций к блоку преобразования типов (числа в текст).
Передача параметров между блоками. Частые ошибки.
4. Объедение нескольких выходов на один вход
Недопустимо подключать несколько выходов на один вход.
На следующем рисунке показана ошибка с объединением двух выходов на один вход. Для исправления данной ошибки необходимо удалить ошибочные цепи.
Передача параметров между блоками. Частые ошибки.
На этом рисунке представлена исправленная программа.
Передача параметров между блоками. Частые ошибки.
Удаление линии передачи данных от блока к блоку.
Чтобы удалить линию передачи данных от выхода до входа, необходимо щелкнуть по входному порту, куда подключена линия.
Передача параметров между блоками. Частые ошибки.

Комментариев нет:

Отправить комментарий