Управляем чем угодно откуда угодно

Управлялка на QT

Обсуждение клиентского ПО для доступа к виртурилке, управления и мониторинга

Re: Управлялка на QT

Сообщение sanya555 » 06 май 2014, 11:26

Может попробовать ниже скорость? Как можно частоту i2c на виртурилке поменять?
sanya555
 
Сообщения: 74
Зарегистрирован: 10 фев 2014, 13:20

Re: Управлялка на QT

Сообщение phoenix367 » 06 май 2014, 15:14

По дефолту в ядре и так уже 100 кГц стоит. Ниже уже некуда.
phoenix367
 
Сообщения: 193
Зарегистрирован: 09 сен 2013, 00:19

Re: Управлялка на QT

Сообщение sanya555 » 06 май 2014, 15:24

Как я понимаю, чтоб поменять частоту надо в исходниках поменять частоту и собрать систему?
А вы на 400кГц пробовали работать?
sanya555
 
Сообщения: 74
Зарегистрирован: 10 фев 2014, 13:20

Re: Управлялка на QT

Сообщение phoenix367 » 06 май 2014, 15:43

sanya555 писал(а):Как я понимаю, чтоб поменять частоту надо в исходниках поменять частоту и собрать систему?
А вы на 400кГц пробовали работать?


Ну у меня все на 400 кГц и работает. На 100 сбои начинаются, если камера включена. Видимо пропускной способности шины не хватает. Частоту надо менять в исходниках ядра.
phoenix367
 
Сообщения: 193
Зарегистрирован: 09 сен 2013, 00:19

Re: Управлялка на QT

Сообщение sanya555 » 06 май 2014, 15:47

А вам не сложно свой образ выложить куда нибудь, просто я собрал прошивку, а система перегружается все время, не знаю в чем дело.
sanya555
 
Сообщения: 74
Зарегистрирован: 10 фев 2014, 13:20

Re: Управлялка на QT

Сообщение phoenix367 » 08 май 2014, 23:01

образ можно скачать по ссылке https://drive.google.com/file/d/0BzFuv7bViLGRcmdCYlF4SGQ4U0k/edit?usp=sharing
phoenix367
 
Сообщения: 193
Зарегистрирован: 09 сен 2013, 00:19

Re: Управлялка на QT

Сообщение sanya555 » 12 май 2014, 09:23

Спасибо, буду пробовать дальше. Кстати заказал еще датчик MPU9150, может с ним все более стабильно будет, да и фильтрация у него встроенная уже.
sanya555
 
Сообщения: 74
Зарегистрирован: 10 фев 2014, 13:20

Re: Управлялка на QT

Сообщение sanya555 » 27 май 2014, 10:45

Всем привет!! Датчик MPU 9150 у меня прекрасно заработал и выдает достаточно хорошие результаты. Но возник вопрос к phoenix367.
Я никак не могу правильно принять данные датчика с платы в своей проге написанной на Qt.
Пример передачи данных по запросу с виртурилки:
Код: Выделить всё
int tcp_server::run_community()
{
    double buf[3];
    int read_buf[3];
    int commx, commy, commz;
    int bytes_read;     
   
    double roll=0, pitch=0, yaw=0;
    roll = 213.6;
   
   // imu_data1.get_data(&yaw, &pitch, &roll);
   
    buf[0] = 213.4;
    buf[1] = 234.7;
    buf[2] = 324.9;
   
    //buf[0] = roll;
    //buf[1] = pitch;
    //buf[2] = yaw;
 
    create_server();
   
 if (bind(listener, (struct sockaddr*)&addr, sizeof(addr)) < 0)
    {
        perror("bind");
        return 2;
    }
   
    listen(listener, 1);
   
    while(1)
    {
        sock = accept(listener, NULL, NULL);
        if(sock < 0)
        {
            perror("accept");
            return 3;
        }
       
        while(1)
        {   bytes_read = recv(sock, read_buf, 12, 0);
            if (bytes_read <= 0) break;
            commx = ntohl(read_buf[0]);
            commy = ntohl(read_buf[1]);
            commz = ntohl(read_buf[2]);
                     
            printf("we rec %i , %i , %i  \n ", commx, commy, commz);
         if(commx == 0) send(sock, buf, 3*sizeof(double) , 0);
         
        }
        close(sock);
    }
    return 0;
}


А вот как я принимаю их в своей программе
Код: Выделить всё
 QDataStream in(tcpSocket);
            double yaw, pitch, roll;
        in >> yaw >> pitch >> roll;
        qDebug() << yaw << pitch << roll;
     

но в итоге получаю вовсе не то чего ожидаю, может вы подскажете как правильно принимать данные в Qt/c++ с обычного с++?

UPD:
Решил проблему, вот код если кому пригодится
Код: Выделить всё
QDataStream in(tcpSocket);
      in.setByteOrder(QDataStream::LittleEndian);//set Byte Order
     
      double yaw=0, pitch=0, roll=0;
      in >> yaw >> pitch >> roll;
   
      iyaw = qFromLittleEndian(yaw);//convert to double
      ipitch = qFromLittleEndian(pitch);//convert to double
      iroll = qFromLittleEndian(roll);//convert to double
sanya555
 
Сообщения: 74
Зарегистрирован: 10 фев 2014, 13:20

Пред.

Вернуться в Софт на управляющих устройствах (iOS, Android, Win/Mac/Linux)

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

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