roboforum.ru

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

Выбор среды разработки для OpenCV

Re: Выбор среды разработки для OpenCV

Сообщение Tsi329 » 22 июн 2012, 12:30

И так. Я еще продвинулся дальше - добавил в проект функцию слежения за синим мячом.
https://www.youtube.com/watch?v=kkTrVvRii_o
Не судите строго. Это первое мое использование OpenCV ;)

Параллельно этому был настроен джойстик и теперь робот может передвигаться по полу при помощи джойстика. Мелочь, а приятно.

В ближайшее время буду подключать шесть ультразвуковых сенсоров по периметру робота и добавлять компас. Компас нужен прежде всего для того, чтобы сообщить роботу, что повернуться надо именно на 30 градусов, например, а не "на глазок" как делалось ранее.

Собственный Shield для Arduino Mega придется перепаять с нуля. Так как сейчас там из-за DC-DC и 5В<->3В конвертера мало места. DC-DC я уберу, так как уже заказал UBEC вместо него. А вот 5В<->3,3В исключу из проекта вообще. Это старое наследие времен использования в проекте Mini2440.

Думаю, и пока нет решения, как правильно реализовать работу с энкодерами на колесах в связке Encoders->Arduino->WR703N->PC.
Tsi329
 
Сообщения: 135
Зарегистрирован: 24 авг 2010, 11:48
Откуда: Минск
прог. языки: C++,C,Asm

Re: Выбор среды разработки для OpenCV

Сообщение noonv » 25 июн 2012, 08:45

Tsi329 писал(а):noonv, в любом случае очень заинтересован посмотреть на твой проект. Как у тебя будет получаться, выложи, пожалуйста.

хорошо - очень постараюсь на этой неделе :)
Аватара пользователя
noonv
 
Сообщения: 600
Зарегистрирован: 21 май 2007, 22:57
Откуда: Калининград
прог. языки: C++

Re: Выбор среды разработки для OpenCV

Сообщение Tsi329 » 19 июл 2012, 09:04

Кто-нибудь может подсказать, как реализовать программный ping-опрос робота на базе моей среды обработки?
Фактически нужна функция, которая сообщала бы значения ping-а в микросекундах или говорила, что связи нет.
Т.е. всё полностью аналогично стандартному ping-у:
Код: Выделить всёРазвернуть
ping -t 192.168.1.120


noonv писал(а):хорошо - очень постараюсь на этой неделе :)

:)
Tsi329
 
Сообщения: 135
Зарегистрирован: 24 авг 2010, 11:48
Откуда: Минск
прог. языки: C++,C,Asm

Re: Выбор среды разработки для OpenCV

Сообщение Angel71 » 19 июл 2012, 10:44

общий смысл без колбэков такой
Код: Выделить всёРазвернуть
Ping pingSender = new Ping ();
PingReply reply = pingSender.Send ("www.wtf.com");
if (reply.Status == IPStatus.Success)
{
  Console.WriteLine ("Address: {0}", reply.Address.ToString ());
  Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
  Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
  Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
  Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
}
else
{
  Console.WriteLine (reply.Status);
}


с колбэками, как вариант примерно так
Код: Выделить всёРазвернуть
AutoResetEvent waiter = new AutoResetEvent (false);
Ping pingSender = new Ping ();
pingSender.PingError += new PingErrorEventHandler(PingErrorCallback);
pingSender.PingStarted += new PingStartedEventHandler(PingStartedCallback);
pingSender.PingResponse += new PingResponseEventHandler(PingResponseCallback);
pingSender.PingCompleted += new PingCompletedEventHandler (PingCompletedCallback);
string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
byte[] buffer = Encoding.ASCII.GetBytes (data);
int timeout = 12000;
PingOptions options = new PingOptions (64, true);
pingSender.SendAsync(who, timeout, buffer, options, waiter);
waiter.WaitOne ();
...
private static void PingCompletedCallback (object sender, PingCompletedEventArgs e)
{
  if (e.Cancelled)
  {
    Console.WriteLine ("Ping canceled.");
    ((AutoResetEvent)e.UserState).Set();
  }
  if (e.Error != null)
  {
    Console.WriteLine ("Ping failed:");
    Console.WriteLine (e.Error.ToString ());
    ((AutoResetEvent)e.UserState).Set();
  }
  PingReply reply = e.Reply;
  if (reply == null) return;
  Console.WriteLine ("ping status: {0}", reply.Status);
  if (reply.Status == IPStatus.Success)
  {
    Console.WriteLine ("Address: {0}", reply.Address.ToString ());
    Console.WriteLine ("RoundTrip time: {0}", reply.RoundtripTime);
    Console.WriteLine ("Time to live: {0}", reply.Options.Ttl);
    Console.WriteLine ("Don't fragment: {0}", reply.Options.DontFragment);
    Console.WriteLine ("Buffer size: {0}", reply.Buffer.Length);
  }
  ((AutoResetEvent)e.UserState).Set();
}

но это шутка по поводу текстового редактора студии. вам вообще как минимум сюда сначала нужно заглянуть. только смотря чего от пинга требуется, можно легко и в пару сот строк кода не влезть, если писать мультиплатформеный на сокетах.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Выбор среды разработки для OpenCV

Сообщение Tsi329 » 21 июл 2012, 23:43

Спасибо. Буду изучать.
Tsi329
 
Сообщения: 135
Зарегистрирован: 24 авг 2010, 11:48
Откуда: Минск
прог. языки: C++,C,Asm

Пред.

Вернуться в Компьютерное зрение

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

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