roboforum.ru

Технический форум по робототехнике.

Подскажите как в robotC работать с hitechnic multiplexor

SpyBotics , NXT , и другие конструкторы лего.
Сборка, программирование и обмен опытом.
Самодельные роботы для школьных соревнований.

Подскажите как в robotC работать с hitechnic multiplexor

Сообщение stillyet » 27 авг 2015, 10:10

Добрый день, не смог найти нигде нормальную информацию по работе в роботс с хайтековским датчиком. На странице описания датчика есть пример, но после загрузки в нхт никакой реакции не произошло, никак не могу найти как обращаться к кнопкам мультиплесора. Изначально требуется ждать отзыв о состоянии 16 датчиков. Т.е. в нхт блок вставляется 4 мультиплексора и показания записываются в массив. Никак не могу найти способ опросить каждый датчик касания. Спасибо
stillyet
 
Сообщения: 4
Зарегистрирован: 04 июн 2015, 23:25

Re: Подскажите как в robotC работать с hitechnic multiplexor

Сообщение stillyet » 27 авг 2015, 22:26

Вот ссылка на сам датчик http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NTX1060 Для работы с мультиплексором используется NXT блок и RobotC 3.62. На странице описания датчика предлагается вот такая программа:
[list=]
task main()
{
SensorType[S3] = sensorHiTechnicTouchMux; // Configure the sensor.
while (true)
{
int nButtonsMask;
//
// The sensor value is a 4-bit map indicating which of the possible four
// touch sensors are pressed.
//
nButtonsMask = SensorValue[S3];
if (nButtonsMask & 0x01)
nxtDisplayTextLine(1, "Btn 1: Pressed");
else
nxtDisplayTextLine(1, "Btn 1:");
if (nButtonsMask & 0x02)
nxtDisplayTextLine(2, "Btn 2: Pressed");
else
nxtDisplayTextLine(2, "Btn 2:");
if (nButtonsMask & 0x04)
nxtDisplayTextLine(3, "Btn 3: Pressed");
else
nxtDisplayTextLine(3, "Btn 3:");
if (nButtonsMask & 0x08)
nxtDisplayTextLine(4, "Btn 4: Pressed");
else
nxtDisplayTextLine(4, "Btn 4:");
wait1Msec(100);
}
}[/list]
В программе предлагается обращение к датчикам: 0х01, 0х02, 0х04, 0х08.
Для того, чтобы проверить работу мультиплексора мне подобной программы достаточно, чтобы понять принцип обращения к кнопкам и уже на этой основе работать дальше. Если запустить эту программу на NXT блоке что происходит:
на экране сразу появляются следующие сообщения:
Btn 1: Pressed
Btn 2:
Btn 3: Pressed
Btn 4:
Чтобы я не делал, какие бы кнопки не менял, или не нажимал, реакции не наблюдается никакой. Если отсоединить мультиплексор от блока, то
Btn 1:
Btn 2:
Btn 3:
Btn 4:
Попробовал эмпирическим путем подбирать 0х00 и т.д. реакции не последовало никакой. Изменял программу, но никаких внешних действий не возникало.
Если кто-то знает и работал с этими мультиплексорами, подскажите какую библиотеку использовать и какими командами обращаться к кнопкам. Спасибо за внимание.

Добавлено спустя 3 часа 49 минут 46 секунд:
Перепробовал 4 мультиплексора, 3 NXT блока, все время получал одинаковый результат:
Btn 1: Pressed
Btn 2:
Btn 3: Pressed
Btn 4:
Попробовал другой файл: hitechnic-touchmux-test1.c, из образцов. Результат тот же.
stillyet
 
Сообщения: 4
Зарегистрирован: 04 июн 2015, 23:25


Вернуться в LEGO роботы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1