Форум myROBOT.ru » Лаборатория » Электронная мастерская » Уровень заряда аккумулятора.

Страниц (1): [1]
 

1. GPPSoft - 24 Февраля, 2014 - 04:57:33 - перейти к сообщению
Здравствуйте. Решил собрать робота на колесах под управление Raspberry pi с веб камерой на борту. Поназаказывал разных комплектующих, среди которых есть данный аккумулятор. Хотелось бы сделать индикатор зарада, т.е некий контролер который бы подключался к Rpi к примеру по шине i2c и передавал уровень заряда. Ну или еще какие-нибудь варианты. Я просто больше по части программирования... Электронникой занимался очень давно, еще в школе. Вот захотелось смастерить. И правильно ли я сделал что заказал данные конвертеры? Хочется чтобы все питалось от одного аккумулятора. Т.е драйверы двигателей и сама плата будет запитана от одного аккумулятора. Заранее спасибо за ответы!
2. elmot - 24 Февраля, 2014 - 09:03:00 - перейти к сообщению
1) Это литий, заводим через делитель на АЦП и меряем любым МК.
2) Не удивляйтесь, если вдруг реальная емкость акка окажется не 8000мАч, а где-нибудь 2000. Оч подозрительно выглядит. Маловат. А китайцы такие китайцы... Литий лучше покупать в проверенных местах, а не на ебеях или китайских биржах.
3)Конвертер - бог знает, непонятно, что у него с токами. Выглядит нормально, но чота больно дешев. По баксу - недорого, если что не так не оч жалко такой.
4) Я делал видео через распберри, мне не понравилось. Лучше получается через роутер. Распебрри на боте вообще какая-то странная штука. Для простых задач слишком много жрет и слишком много наворотов, а для сложных, типо распознавания - слишком туп. Плюс проблемы с USB и отсутствие других интерфейсов.


на правах рекламы:
http://roboforum.ru/wiki/OR-WRT
3. GPPSoft - 24 Февраля, 2014 - 14:49:26 - перейти к сообщению
Спасибо за ответ!
elmot пишет:
Это литий, заводим через делитель на АЦП и меряем любым МК.

А можно немного по подробнее? Не очень-то шарю.
elmot пишет:
Не удивляйтесь, если вдруг реальная емкость акка окажется не 8000мАч, а где-нибудь 2000. Оч подозрительно выглядит. Маловат. А китайцы такие китайцы... Литий лучше покупать в проверенных местах, а не на ебеях или китайских биржах.

Да вот уже тоже понял что тупанул. Но вроде он толстенький. Спросил у продавца, он заверил что может быть чуть ниже. Если не устроит, то обещал вернуть деньгу.
elmot пишет:
Я делал видео через распберри, мне не понравилось.

Ну не знаю... У меня просто супер показывает. Задержки практически нет. Ну или нет вообще если не придираться и не всматриваться. Вы наверное python или php юзали?

elmot пишет:
Распебрри на боте вообще какая-то странная штука. Для простых задач слишком много жрет и слишком много наворотов, а для сложных, типо распознавания - слишком туп. Плюс проблемы с USB и отсутствие других интерфейсов.


Мне часа-полтора покатушек вполне устроят Подмигивающий
Платформу взял такую .

p.s: весь софт буду писать сам.
4. elmot - 24 Февраля, 2014 - 19:59:30 - перейти к сообщению
GPPSoft пишет:

elmot пишет:
Это литий, заводим через делитель на АЦП и меряем любым МК.

А можно немного по подробнее? Не очень-то шарю.

http://www.meanders.ru/delitnapr.shtml
На борту любого МК есть АЦП, которым можно померять поделенное напряжение. Напрямую подавать нельзя - сгорит. Там еще есть кое-каки тонкости, но преодолимые.

Цитата:
elmot пишет:
Я делал видео через распберри, мне не понравилось.

Ну не знаю... У меня просто супер показывает. Задержки практически нет. Ну или нет вообще если не придираться и не всматриваться. Вы наверное python или php юзали?

Нет, конечно. mjpeg-streamer. Роутер явно лучше работал. Мне было с чем сравнить.

Цитата:

Платформу взял такую .

p.s: весь софт буду писать сам.


Да ради бога. Начинайте с загрузчика гы-гы! не в себе

Для начала пойдет, но тоже есть недостатки.
- У таких колес сцепление с поверхностью посредственное, будет мешать.
- Слишком длинная и узкая колесная база, будут проблемы с поворотами.

А вот моторы сразу с энкодерами - толково.
5. GPPSoft - 25 Февраля, 2014 - 04:00:20 - перейти к сообщению
elmot пишет:
Да ради бога. Начинайте с загрузчика

Да в качестве "загрузчика" Linux-a хватит Голливудская улыбка . Имелся в виду софт для управления железом и передачи-приема изображения. Управление из браузера и мобильного Android устройства. Говорю же, для меня главная "проблема" это железная часть... Так что я тут еще успею "намусорить" в разделах. С софтом думаю проблем не будет.

elmot пишет:
Нет, конечно. mjpeg-streamer. Роутер явно лучше работал. Мне было с чем сравнить.

Возможно. Но много факторов влияет на скорость и качество. Я же использую интерфейс V4L и java обертку над ним. Очень советую ее для тех кто программирует на java. Так же отличная библиотека для работы с GPIO и д.р.pi4j . Прикупил еще датчик положения и серву для поворота камеры . Хочется графически отображать положение и заряд аккумулятора на кадрах.
elmot пишет:
Конвертер - бог знает, непонятно, что у него с токами. Выглядит нормально, но чота больно дешев.

Еще вот такой взял.

elmot пишет:
А вот моторы сразу с энкодерами - толково.

Да как я понял там тупо диск с прорезями. Самих датчиков нет. Посоветуете?

Огромное спасибо за советы!
6. elmot - 25 Февраля, 2014 - 13:03:07 - перейти к сообщению
GPPSoft пишет:

elmot пишет:
Нет, конечно. mjpeg-streamer. Роутер явно лучше работал. Мне было с чем сравнить.

Возможно. Но много факторов влияет на скорость и качество. Я же использую интерфейс V4L и java обертку над ним.

Собственно mjpeg-streamer тоже работает через v4l, только на С и без оберток, так что не думаю, что прога на яве внезапно покажеллучшие результаты. ну да дело хозяйское.
GPPSoft пишет:

Да как я понял там тупо диск с прорезями. Самих датчиков нет. Посоветуете?
Огромное спасибо за советы!


Не, не посоветую. у меня такие моторы без энкодеров. Барахляленькие, но работают.
7. GPPSoft - 09 Апреля, 2014 - 15:54:19 - перейти к сообщению
elmot пишет:

Собственно mjpeg-streamer тоже работает через v4l, только на С и без оберток, так что не думаю, что прога на яве внезапно покажеллучшие результаты. ну да дело хозяйское.

Вот. Все таки собрал.
8. GPPSoft - 22 Апреля, 2014 - 15:25:05 - перейти к сообщению
Пытаюсь замерить напряжение аккумулятора с помощью Atmega168 на внутреннем резонаторе 8Mhz с использованием делителя на резисторах.

Код:
CODE:

int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 10000.0;
float R2 = 1000.0;
int value = 0;

void setup() {
analogReference(INTERNAL);// опираемся на 1.1 вольт
}

--------------------------------------------------------
void getBatteryStatus(){
value = analogRead(analogInput);
vout = (value * 1.1) / 1023.0;
vin = vout / (R2/(R1+R2));
Serial.println(vin);
}


Но почему-то точность хромает очень сильно. В то время когда мой китайский мультиметр показывает 12.3 вольта, то МК вычисляет 12.10. Интересно, что если я меряю напряжение за конвертером на котором установлено к примеру 8.48, то показания довольно точные, почти один в один. Объясните пожалуйста природу этих отклонений. Спасибо!
9. elmot - 22 Апреля, 2014 - 16:00:13 - перейти к сообщению
Ну это не большое отклонение, ок 2%.
А потом, если от силовой части помеха идет, то там что угодно намеряться может. Надо усреднять. Гуглить скользящее среднее.
10. GPPSoft - 22 Апреля, 2014 - 17:19:45 - перейти к сообщению
elmot пишет:
Ну это не большое отклонение, ок 2%.
А потом, если от силовой части помеха идет, то там что угодно намеряться может. Надо усреднять. Гуглить скользящее среднее.

Т.е все нормально? Вот человек на одном альтернативном форуме отписался:

Цитата:

Чего тут объяснять? У мультиметра разрешение около 20 бит, у авр - 10 бит. Итог: 5/1024 = 0,00488 v. Чтоб мерить 12 вольт, нужен делитель не менее /3. Итог: 0,00488 * 3 = 0,0146 вольт. Это минимальное разрешение ацп. Теперь возьмем гуляние данных 1 разряд (это елси все очень хорошо сделано). Итог: 0,0146 * 2 = 0.03 вольта.

Почему делим на 1023 ????
Завязывай с флоат...


P.S: вот, когда вчера с этими делителями-ххх разбирался... Сжег одну Raspberry Pi. Фатально. Чертовы провода Улыбка
11. Роботов - 22 Апреля, 2014 - 17:55:22 - перейти к сообщению
Резисторы-то какие стоЯт? +/- 10% наверное. Отсюда и неточность измерения.
12. GPPSoft - 23 Апреля, 2014 - 09:10:22 - перейти к сообщению
Роботов пишет:
Резисторы-то какие стоЯт? +/- 10% наверное. Отсюда и неточность измерения.


Да, как выяснилось резисторы не очень точные. Грустный. Ну и опорное не ровно 1.1. Вообщем совместил, но точность до DT380 не дотягивает Улыбка. Ну и скачат данные. Как я понял нужно еще искать скользящее среднее. Может еще что-то посоветуете? Спасибо!

Код:
CODE:

int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 9990.0;
float R2 = 1015.0;
int value = 0;

//Не очень пока разбираюсь в "низкоуровневом" программировании под МК
//Но как я понял этот код изменяет попорное до 1.1 и меряет его.
long readVcc() {
long result;
// Read 1.1V reference against AVcc
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
delay(2); // Wait for Vref to settle
ADCSRA |= _BV(ADSC); // Convert
while (bit_is_set(ADCSRA,ADSC));
result = ADCL;
result |= ADCH<<8;
result = 1125300L / result; // Back-calculate AVcc in mV
return result;
}

void getBatteryStatus(){
value = analogRead(analogInput);
vout = (value * (readVcc()/1000.0)) / 1023.0;
vin = vout / (R2/(R1+R2));
Serial.println(vin);
delay(500);
}

Вывод(DT830B показывает 12.30):
CODE:

12.57
12.65
12.45
12.57
12.57
12.68
12.53
12.51
12.54
12.68
12.56
12.60
12.57
12.68
12.53
12.48
12.57
12.68
12.53
12.57
12.57
12.68
12.59
12.57
12.57
12.65
12.57
12.57
12.57
12.57
12.57
12.54


Не знаю плохо это или хорошо?
13. elmot - 24 Апреля, 2014 - 12:51:14 - перейти к сообщению
Для без усреднения - весьма неплохо. 2% амплитуды. На уровне хорошего стрелочного вольтметра.