вторник, 22 мая 2012 г.

Пишем программы на NXC, а запускаем в RobotC Virtual World

RobotC Virtual Worlds без сомнения очень полезная штука, особенно когда касается возможности учитсья программировать Lego-роботов без наличия настоящего конструктора.
Но не всегда хочется изучать новый язык программирования, только для того, чтобы запускать роботов в виртуальной среде дома.
Тем более, если реального робота потом придется программировать все равно в другом.

Еще один камень, который можно бросить, в сторону языка RobotC, то что некоторые его конструкции не очень очевидны и довольно сложны для изучения ребятам, которые только знакомяться с программированием. Например, это можно сказать про операции с моторами – не сразу можно догадаться, что робот поедет сразу, как только данные о необходимой скорости занесены в специальные ячейки массива motor.
motor[motorB] = 100;
motor[motorC] = 100;
Другой момент касается довольно сложных программных структур, только для того, чтобы повернуть одно из колес робота на один поворот:
nMotorEncoder[motorB]=0;
while (nMotorEncoder[motorB] < 360) {
  motor[motorB] = 100;
}

Не правда ли подобные конструкции в языке Not Exactly C выглядят более лаконичными:
OnFwd(OUT_BC, 100);
и
RotateMotor(OUT_B, 100, 360);
Поэтому естественно желание изучать программирование на более простом языке NXC, но запускать виртуального робота при этом в RobotC Virtual World.

Теперь такая возможность существует. Проект NXC API for RobotC Virtual World (nxc4rvw) предоставляет библиотеку, которая будучи подключенной в ваших программах в среде RobotC позволяет писать код на NXC.



Проект очень молодой – поддерживаются только основные команды опроса сенсоров и управления моторами. Но если вам нужна поддержка дополнительных функций – напишите авторам проекта или даже еще лучше подключайтесь к нему - будете реализовывать нужную вам функциональность сами – это поможет вам изучить сразу два языка и NXC, и RobotC.

3 комментария:

  1. Здравствуйте!
    Когда запускаю программу в NXC virtual world с пд-регулятором, она не работает, т.к. на белом датчики показывают 100%, а на черном 0% и поэтому коэффициент получается огромный.
    Как можно с этой проблеммой справиться? (не переделывая поля на оттенки серого)

    ОтветитьУдалить
  2. ROBLOX is driven by an ever growing player base of over 300,000 creator players who generate an infinite variety of highly immersive experiences.

    These experiences range from 3D games and contests, to interactive adventures where friends can take on new personas exploring what it would be like to be a dinosaur, a miner in a quarry or an astronaut out in space.

    ОтветитьУдалить
  3. Можно на языке NXC программировать роботы Vex-iq ?

    ОтветитьУдалить

Related Posts Plugin for WordPress, Blogger...