Телеметрия для Авто

belyay

Вчерашний вечер принес первые плоды.

YuriK=

Сергей подскажите как у вас реализован датчик скорости?

belyay
YuriK=:

Сергей подскажите как у вас реализован датчик скорости?

будет на датчике холла, и два магнита на внутренней стороне обода. считаем сколько пришло импульсов за 500 мс дальше вычитаем из расчета длины колеса.
Датчик холла тот который выдает “0” при наличии магнитного поля.

belyay

Прошу помощи.
при расчете “выкаченных mA*h” Ir=Ir+(I/8)/3.6;
где Ir- “выкаченные mA*h”, I - 10 бит данных поступившие с борта.
например I-80 (10A, так как 20mV на 1 ампер)
80/8=10/3,6=2.7777777777777777777777777777778
так вот он считает только то что до запятой даже не округляет.
как можно представить функцию без использования “float” ?

RW9UAO

используйте фиксированную точку. например, переменную 4-х байтную, типа long. ваше значение умножайте на 1000 и так храните. перед выводом на экран поделите на 1000.

belyay

Уперся в написание протокола передачи данных. мне нужно сначала послать знак признака переменной (< - ADC0, > - ADC1, @ - ADC2 и т.д. ) потом надо передать саму переменную но так как переменная больше 8 бит ее надо разделить и отправить.
В как приемнике организовать условие что бы данные из буфера RX записались в нужную переменную???
if (getchar() == ‘<’)
ub=getchar();
С одним таким условием записывается переменная, а если поставить больше условий
if (getchar() == ‘<’)
sb=getchar();
if (getchar() == ‘>’)
ub=getchar();
то нечего не пишется. 😦
может надо после определения признака переменной сдвинуть буфер ???

olegbs

Не влезал глубоко в твою тему, но а если:
char temp=getchar();
switch(temp)
{
case ‘<’:
sb=getchar(); break;
case ‘>’:
ub=getchar(); break;
default:

}
Можно еще попробовать функцию, которая не считывает символ из буфера и удаляет прочтенное значение (getchar()), а только считывает значение. Сейчас уже не помню (спрыгнул с сишки), вроде peek зовется.

belyay

Получилось закодировать, передать и раскодировать 6 переменных по 8 бит. скорость 2400 бит/с (скорость обновления данных получилась большая) приемник передатчик этот (не для рекламы), просто хотел посмотреть на что он годиться. вышел на стадион передатчик положил на землю, стабильное расстояние 50м. , отошел на 100 метров тоже берет без ошибок. так это при том что нет контрольной суммы для проверки подлинности результатов.

belyay

Всем доброго дня, вчера вытравил плату передатчика.

TX.rar

7 days later
belyay

Сегодня делали вылазку на стадион. Немного погоняли, жаль забыли взять нормальную камеру, что бы заснять работу телеметрии. Так что снимали телефоном

Связь держит практически до 100 метров иногда проскакивают ошибки но работает.

характеристики: измерение 2х банок акка; замер температуры двигателя, регулятора (ESC) и LiPo; замер тока, расчет выкаченных mAh, время с момента включения; Температура воздуха (датчик установленный на приемнике); скорость; напряжение акка приемника.
Теперь по меню…(кнопка вверх) установка максимальных значений температур, минимальных значений акков. включение выключение звука.
дальше (кнопка вправо) установка длины круга колеса (для расчета скорости), установка контрастности дисплея, установка яркости подсветки дисплея, чувствительность включение подсветки по фоторезистору.
еще (кнопка влево) средня скорость, максимальная скорость. (кнопка вниз) сброс времени и выкаченных mAh.

ubd

Ну прикольно! Молодец!
Только мне применить ни где…
Я авиамоделист. И у меня уже БПЛА летает, с автопилотом, ну телеметрия само собой.

7 days later
Protez1999

как реалезована снятие информации о напряжении банок??? я имею ввиду железо. я когда делал для скорости использовал стандартгый traxxas комплект датчик хола и магнит.

belyay

ADC0 - 1 банка, ADC1 - аккумулятор, 2 банка = аккумулятор- 1 банка. делитель напряжения 18кОм на 2кОм резисторы 1%

Protez1999

а если можно схематично делитель как что подрублено. ну или на словах. на сколько понял к балансировочнм разьемам запитано?

я пульт делал у меня проблема была что мог принять тока 1 значение с передатчика. потом как то стал читать поочередно порт и смог читать по несколько значений.

belyay

Верно, балансировочный разъем подключается.

Protez1999

а какие кондеры на кристале и стабилизаторе? делал на атмеге но что то грелся у меня стабилизатор.

а как определить выкаченый ток?

belyay

на стабилизаторе 1000х25в плюс 100n. на входа ADC не ставил, поставил на AREF 100n и на AVCC поставил индуктивность и 100n.

Protez1999:

а как определить выкаченый ток?

Ir=Ir+((I*10)/2.88); // по прерыванию раз в секунду.
где Ir - выкаченные, I - ADC полученное с передатчика. тип Ir, I - unsigned long int

Protez1999

а в железе как это выглядит?какой датчик считывает?

www.ebay.com/itm/261086921764
у меня такойже тока на 433 но так толком и не разобрался как им передавать могу тока от 1 до 9 передать и все. может подскажите код?

belyay
Protez1999:

какой датчик считывает?

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

Protez1999

он на провода рега которые от акума идут вешается??? и насчет передатчка я у вас спрашивал. У меня непонятная библиотека не него поэтому так мало могу передовать

Жалко что блютуз мало берет можноб былоб к компу подрубать или к смарту на андройде. и не пришлосьбы паять приемник.

Что то я вообще подвис а если эти приемник и передатчик просто повесить на ком порт ардуины и на 1 ардуине передавать а на второй читать с ком порта она покажит данные?

belyay
Protez1999:

Что то я вообще подвис а если эти приемник и передатчик просто повесить на ком порт ардуины и на 1 ардуине передавать а на второй читать с ком порта она покажит данные?

да, но и мусора будет тоже много, передатчик желательно питать более чем 5 вольт.

Protez1999:

он на провода рега которые от акума идут вешается???

разрывается + провод от акка до регуля.

Protez1999:

насчет передатчка

я передаю по USARTу
1 байт признак переменной
2 байт переменная
3 байт 2 часть переменной (если она больше чем 255)
4 байт контрольная сумма
в током же порядке принимаю на приемнике, потом обрабатываю…
скорость передачи 2400 передача идет без пауз, иначе приемник с передатчиком теряют связь.

Исходники, не судите строго, первая моя программа.

Telemtry_avto.rar