Технический форум по робототехнике.
Tsi329 » 08 янв 2013, 15:37
Mirmik писал(а):Помогите, спасайте меня

. Не могу разобраться с портами.
Написано по поводу встроенного UART (железо MR3020):
сервис ser2net транслирует обмен на TCP порт 2000
Вопрос: каким образом вообще с этим портом можно установить связь?
Как установить связь с портом со стороны компа из под Windows?
Есть такая замечательная бесплатная утилитка HW VSP3 - Virtual Serial Port
http://www.hw-group.com/products/hw_vsp/index_en.htmlОна эмулирует COM-порт на компьютере, считывая и отсылая данные в сетевой порт.
(как раз твой случай). Мною проверено - работает на ура.
Mirmik писал(а):Как установить связь с портом со стороны компа из под Linux?
Фактически меня интересует не сам UART, а именно вопрос общения с портами в локальной сети.
Если не интересует UART или тебе надо делать под Linux, то можно просто на прямую читать/писать в
этот открытый порт сети на любом языке программирования. Вот тебе кусок класса на C++ и QT.
К слову после долгих поисков единственно верное решение среды разработки ИМНО.
- Код: Выделить всё • Развернуть
int Arduino::Create(Ui::cvRobotClass *pui)
{
m_pTcpSocket = new QTcpSocket(this);
OpenSocket();
connect(m_pTcpSocket, SIGNAL(connected()), SLOT(slotConnected()));
connect(m_pTcpSocket, SIGNAL(disconnected()), SLOT(slotDisconnected()));
connect(m_pTcpSocket, SIGNAL(readyRead()), SLOT(slotReadyRead()));
connect(m_pTcpSocket, SIGNAL(error(QAbstractSocket::SocketError)),
this, SLOT(slotError(QAbstractSocket::SocketError))
);
return 1;
}
void Arduino::OpenSocket(void)
{
m_nNextBlockSize=0;
UIOpenSocket(false);
m_pTcpSocket->connectToHost(ui->eIPAddress->text(), ui->sbPort->value());
}
void Arduino::CloseSocket(void)
{
m_pTcpSocket->disconnectFromHost();
}
void Arduino::slotConnected(void)
{
ui->eRec->append("Connected\n");
UIOpenSocket(true);
}
void Arduino::slotDisconnected(void)
{
ui->eRec->append("Disconnected\n");
UIOpenSocket(false);
}
void Arduino::slotError(QAbstractSocket::SocketError err)
{
QString strError =
"Error: " + (err == QAbstractSocket::HostNotFoundError ?
"The host was not found." :
err == QAbstractSocket::RemoteHostClosedError ?
"The remote host is closed." :
err == QAbstractSocket::ConnectionRefusedError ?
"The connection was refused." :
QString(m_pTcpSocket->errorString())
);
ui->eRec->append(strError);
}
void Arduino::slotReadyRead(void)
{
QString str;
if (!m_pTcpSocket->canReadLine())
m_pTcpSocket->waitForReadyRead();
// using socket readLine method
str = QString(m_pTcpSocket->readLine());//.simplified();
}
void Arduino::SendCommand(const QString &str)
{
if(!m_pTcpSocket->isOpen()) return;
m_pTcpSocket->write(str.toAscii());
}
SASolovjov » 13 янв 2013, 23:26
Подскажите пожалуйста как написать bash-скрипт чтобы отправить через telnet данные на удаленный сервер? Имею роутер с подключенным через FTDI адаптер датчик температуры DS18B20, который считывает с него показания температуры. Все это хозяйство хочу использовать в проекте
народный мониторинг. Подробности про подключение датчика
здесь
elmot » 14 янв 2013, 00:47
На мой взгляд, имеется явный перебор устройств. Целую Малину задействовать под термометр... Я бы постарался обойтись просто роутером, наверняка удастся, лишив роутер одного из светодиодов. По пооду отправки данных прямо сейчас ответить не смогу, но посмотрю, что там можно отчебучить.
SASolovjov » 14 янв 2013, 01:06
Спасибо за быстрый ответ, на счет малинки это я так, может пригодится кому, попробую сам с ней разобраться, скрипты на пхп есть и есть куда сам пхп поставить, а вот с роутером засада, нет памяти для установки пхп. На сколько я понял самое оптимальное для этого это expect, но его тоже надо ставить, а репозиторий openwrt его не знает, и я не знаю влезет ли он вообще. В общем желательно все это сделать без доустановки чего либо. А gpio думаю не придется использовать раз через сом пошло, пока руки не дошли но думаю можно обойтись и внутренним.
Mirmik » 14 янв 2013, 17:17
Есть такая замечательная бесплатная утилитка HW VSP3 - Virtual Serial Port
Угу, спасибо, заработала сразу.
о можно просто на прямую читать/писать в
этот открытый порт сети на любом языке программирования.
Да... Это мне и надо. Дело в том, что у меня управление роботом идет через UART сплошным потоком.
Сейчас у меня используется и постоянная отправка POST запросов javascript методом SetInterval, где-то каждые 50 мс... Но разные браузеры на это дело смотрят по разному, постоянно сбоят и дают не хилую задержку.
Так что код буду изучать, пасибо...
alexram1991 » 20 янв 2013, 06:30
Добрый вечер !
Тоже прикупил роутер mr3020 и решил разобраться с ним
Перепрошил последней прошивкой с Wiki ,подключил камеру C110, подключил к домашней сети ,но бьюсь уже пол дня с UART-ом не хочет работать ни встроенный ни внешний на FTDI ,светодиоды RX TX на FTDI не горят когда нажимаю команды с веб морды mr3020.После FTDI у меня ATMEGA8 которая по командам с роутера должна зажигать один из четырех светодиодов ,но он ничего не зажигает.
Я так понял что для FTDI мне нечего устанавливать не надо ?Так почему роутер нечего не шлют ?FTDI у меня точно рабочая я ей бут ATMEGA8 шью .
И еще вопрос выше написано что для внутреннего UART-а нужна программка на компьютере HW Virtual Serial Port она я так понял открывает на компьтере виртуальный ком порт Она в моем случаи необходима ?Что я только не опробовал внутренний UART не чего не хочет слать.Что я мог упустить?Прошу помогите
=DeaD= » 21 янв 2013, 12:12
Какая скорость уарта?
alexram1991 » 21 янв 2013, 23:01
Скорость 57600.
Через putty у меня приходят данные если замыкаю RX и TX друг с другом на конце и через встроенный и через FTDI но через веб-морду не в какую не реагирует все скорости настроил в файлах: serial когда пользовался встроенный UART-ом ставил "/dev/ttyATH0" а когда через FTDI "/dev/ttyUSB0" .В файлах rc.local и ser2net.conf скорости выставлены одинаково.Не могу понять что не так ?
elmot » 22 янв 2013, 01:22
а что в serial.cgi?
Дуина там не перезагружается, часом?
svavan » 22 янв 2013, 14:37
Все привет!
Решил сделать апгрейд тележке и загубил по моему стабилизатор напряжения питания подключаемого к роутеру USB устройства. У кого-то есть схема роутера? Необходимо опознать стабилизатор и понять какая нога за что отвечает и можно ли его заменить и на что? Предполагаемое место гибели детальки обвел как и положено красным мелом на фото ниже.
- Вложения
-

elmot » 22 янв 2013, 15:56
Где-то была схема от 703го.
У меня есть подозрение, что это не стабилизатор(ног многовато), а ключ питания USB.
svavan » 22 янв 2013, 16:43
Может и ключ, если подать 5В со входа питания роутера на USB то камера начинает нормально работать. А на той ноге ключа где должно быть 5В, напряжение всего 0.12В. Деталька померла скорее всего от повышенного напряжения на входе роутера, протупил я немного и нечаянно подал напряжение повыше. А и греется эта деталька прилично (значит не все еще сгорело), даже если в USB ничего не вставлено.
elmot » 22 янв 2013, 17:54
Ну значит по-минимуму ее можно просто замкнуть, я думаю.
ИМХО в 703м на этом месте стоит TPS2041BDBV
U6 здесь -
http://squonk42.github.com/TL-WR703N/
svavan » 22 янв 2013, 18:38
Спасибо! "Будем искать!"
elmot » 22 янв 2013, 18:40
Лучше сначала прозвонить и убедиться, что это оно.