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

Показаны сообщения с ярлыком ПРОБЛЕМА. Показать все сообщения
Показаны сообщения с ярлыком ПРОБЛЕМА. Показать все сообщения

22 августа 2013 г.

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

(C)http://legoms.ru/

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

3 апреля 2013 г.

Накрылся NXT.. Странное жужжание.. Как быть?

Случилось со мной тут несчастье. Не знаю как это произошло, но блок перестал грузиться. на экране ничего нет, только слышится тихое, еле слышное жужжание. На нажатие кнопок не реагирует.Но что-то как-то.. разобрался, и воскресил его:) Уф... Славно. А то уже испугался! Так вот, что же я сделал:
  1. Пытаюсь сначала выполнить резет NXT. Для этого:
  • Убедитесь что NXT включен
  • Нажмите кнопку перезакгрузки, расположенную на задней панели NXT в пазе обслуживания(Tehnic hole) LEGO, в верхнем левом углу. Для нажатия например можно использывать скрепку, либо спичку, либо стержень от ручки. Держим меньше 4-х секунд.
  • Ждем немного времени. Если экран заработа - то Ура!! Если нет, то тогда пунк 2
  2. Значит у нас все плохо. Необходимо переустановить Firmware. Для этого выполняем первую и вторую инструкцию из пункта 1, но на это раз уже ждем больше 4-х секунд. Хочу сразу отметить, что вы не увидите никакой реакции от NXT на это действие. Не ждите сразу от него ни пищания, ни изображения на экране.

  3. Установите на компьютер програмное обеспечение LEGO MINDSTORMS NXT. Если установлено, идем дальше.

  4. Подключите NXT к компьютеру. Ждем 2-3 минуты.
  5. Запускаем LEGO MINDSTORMS NXT на компьютере.
  6. Перейдите на выпадающее меню "Инструменты" (Tools) на панели программного обеспечения и выберите "Обновить прошивку" Update NXT Firmware.

  7. Выберите прошивку, которая поставлялась с программным обеспечением NXT или скачайте новую.
  8. Нажмите "Загрузить" (Download)
   9. Начался процесс обновления прошивки. Как полосочка над download будет зеленая, значит апгрейд закончился. Можно снова работать с NXT.


Вот кратенькая инструкция, надеюсь она кому-нибудь будет полезна. Интересно и полезно всем почитаться инструкцию для NXT. 


Всем отлично настроения, и новых изобретений!
(С)NiNoXT