• 3541
  • 2
  • 2
Нравится блог?
Подписывайтесь!

Навигейшн

Чем мне нравится НХТ, так это тем, что вместо никому не нужного "Хелло ворлд" мы получаем вполне реальное действие от программы. В планах было реализовать бота, который бы перемещался в пространстве не напарываясь на преграды.

Язык БрикСи является обрезанным Си для этой серии Лего, поэтому разобраться в нем не составило никакого труда.

Алгоритм программы таков.

Бесконечный цикл
{
Сканируем пространство:
-Считываем показатель ультразвука
-Сохраняем параметр
-Поворачиваем на 45 градусов
Производим действие 8 раз ( 8 х 45 = 360)
Находим максимум из полученного массива.
Передвигаемся дальше:
-Разворачиваемся до указанного максимума
-Едем вперед
}

Сам код

#define US_PORT S4 //Переменная для номера порта с сенсором ультразвка
task main() // Тело программы
{
int max = 0; //Назначаем переменные
int maxnumber = 0;
unsigned int maxnumbert = 0;
long variation[];
ArrayInit(variation, 0, 8);
SetSensorLowspeed(US_PORT); //Говорим голове, где находится сенсор
//Открываем цикл
while(1)
{
//Скидываем значения
maxnumber = 0;
//Собираем информацию
for(int i = 0; i < 8; i++)
{
variation[i] = SensorUS(US_PORT);
Wait(50);
OnRev(OUT_B, 75);
Wait(1000);
Off(OUT_B);
Wait(1000);
}
// Находим максимум в массиве
for(int i = 0; i < 8; i++) { if(variation[i] > maxnumber)
{
maxnumber = variation[i];
maxnumbert = i;
}
}
//Разворачиваем перед открытым пространством
OnFwd(OUT_B, 75);
Wait((7 - maxnumbert) * 1000);
Off(OUT_B);
//Едем вперед
OnFwd(OUT_BC, 75);
Wait(3000);
Off(OUT_BC);
}
}

Мы не индусы и нам не платят за строчку, поэтому упрощаем основную часть до такого вида:

for(int i = 0; i < 8; i++)
{
variation[i] = SensorUS(US_PORT);
if(variation[i] > maxnumber)
{
maxnumber = variation[i];
maxnumbert = i;
}
Wait(50);
OnRev(OUT_B, 75);
Wait(1000);
Off(OUT_B);
Wait(1000);
}

Очень много тонкостей, над которыми нужно поработать. Например, сохранение в файл для записи пути, чтобы в экстренный случай вернуться обратно, быстрые повороты и т.д.

nxtmindstorm
5 мая 2010, 14:30
586

Загрузка...
Loading...

Комментарии

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

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

О проститутках, ЗППП и других сексуальных страстях

О проститутках, ЗППП и других сексуальных страстях

У меня обширный сексуальный опыт, и я этим не хвастаюсь. Будь у меня возможность, променял бы это всё на одного партнёра. Но так как с личной жизнью не заладилось, а секс я очень люблю, то приходилось изворачиваться.
bez_prav
18 окт. 2017 / 18:01
Отчего в Казахстане предвзятое отношение к отечественному продукту?

Отчего в Казахстане предвзятое отношение к отечественному продукту?

Вы когда-нибудь пользовались казахстанской косметикой? Я тоже нет, поэтому сразу же откликнулась на приглашение своего фейсбук-френда протестировать отечественные крема… из Степногорска.
Shimanskaya
16 окт. 2017 / 11:32
  • 2956
  • 34
Я помню тот день, когда мне позвонили друзья и сообщили: «Она выходит замуж». Часть 2

Я помню тот день, когда мне позвонили друзья и сообщили: «Она выходит замуж». Часть 2

Я знал дату свадьбы. За неделю до свадьбы в соцсети "Вконтакте" на все мои последние фото, был проставлен лайк с её профиля. Сердце забилось сильнее. В душе загорелась наивная, крошечная надежда.
Dominator-kz
17 окт. 2017 / 15:41
Льготное кредитование для молодежи Алматы. Не хоромы, но для начала неплохо

Льготное кредитование для молодежи Алматы. Не хоромы, но для начала неплохо

Если вам нет 35 лет и у вас нет своего жилья, то есть интересная гос.программа. Нишевая программа - молодые семьи Алматы до 35 лет, семья - это как минимум 2 супруга без детей.
DanaJarlygapova
19 окт. 2017 / 16:21
Мой парень – «тиран». Почему я вступила в такие отношения?

Мой парень – «тиран». Почему я вступила в такие отношения?

История из моей жизни. Я вспоминаю эти отношения и сама не могу понять - как так произошло? А дело в том, что вы и сами не заметите. Это наступает плавно и динамично.
Altynai_JA
18 окт. 2017 / 14:17
Доверяют ли граждане Казахстана полицейским? Социальный опрос

Доверяют ли граждане Казахстана полицейским? Социальный опрос

Борьба с оборотнями в погонах идёт не один год, но без особого эффекта. Это даёт повод подробнее поговорить о нашей полиции и её проблемах. Как относятся к полицейским казахстанцы?
voiceQZ
20 окт. 2017 / 18:42
  • 2233
  • 39
«Автобусная неделя». Выдержит ли аким Шымкента давку в общественном транспорте?

«Автобусная неделя». Выдержит ли аким Шымкента давку в общественном транспорте?

Аким Шымкента Габидулла Абдрахимов нашёл решение накопившихся проблем городского транспорта. Все ключевые работники акимата некоторое время будут сами ездить на автобусах.
openqazaqstan
18 окт. 2017 / 10:53
  • 1837
  • 34
Сказ об офисных планктонах. А какой работник ты?

Сказ об офисных планктонах. А какой работник ты?

Я проработала во многих компаниях и повстречала очень много разных интересных людей. Исходя из моих наблюдений, могу описать несколько категорий работников. Может, речь пойдет о ком-то из вас…
Altynai_JA
18 окт. 2017 / 17:51
  • 1795
  • 16
Аркадий Волож привел в Казахстан «Яндекс.Лицей». Плакать или радоваться?

Аркадий Волож привел в Казахстан «Яндекс.Лицей». Плакать или радоваться?

"Яндекс.Лицей" зашел в казахстанские школы. План - учить бесплатно программированию, формировать себе кадры и выйти на мощность 10 тысяч школьников в год.
Zhumanova
18 окт. 2017 / 8:36
  • 1652
  • 14