Контроллер для детской машинки на Arduino Mega 2560

Автор HECTEPOB, 16 Нояб. 2014 в 21:35

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Tygra

Вот здесь http://imall.iteadstudio.com/open-pcb/pcb-prototyping.html делают не дорого платы двух сторонние, мелким оптом, по 5-10 шт. Дешевле варианта я не нашел.

skros

в воскресенье повторил подвеску как у автора

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

все материалы из леруа











Tygra

Это скорее не пыльник, а грязезащитный чехол. Вентиляция двигу тоже нужна.

skros

Цитата: Tygra от 30 Июнь 2015 в 13:51
Это скорее не пыльник, а грязезащитный чехол. Вентиляция двигу тоже нужна.

точно чехол, места для вентиляции там достаточно

skros

#256
приехали драйверы, как бы  с управляющими сигналами понятно, а выводы на мотор меня смутили - их 4, а не два

B-, B+, M+, M-

что это? и куда подключать мои два  провода от мотора?

такс М наверное мотор, а В внешнее питание для мотора

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

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

автор, для электродифиренциала вы мониторите ток на каждом движке, это два драйвера и соответственно по два моста и по два контакта на каждый драйвер
5. R_IS, Сигнал тока через верхний ключ правого полумоста  (подтянут через 10к к массе, при токе от 0-43А на выводе напряжение от 0В до +5В)
6. L_IS, Сигнал тока через верхний ключ левого полумоста

вы оба контакта мониторите?  R_IS и L_IS на левом моторе и R_IS и L_IS на правом моторе?


skros

#257
с подключением мотора и питания разобрался, остальные вопросы остались


HECTEPOB

[user]skros[/user],
Я мониторю ток активных верхних ключей, т. Е.  Сигналы на АЦП заведены все,  считываются в кольцевые буфера тоже все,  а выбор по каким работать (какие выравнивать)  осуществляется в зависимости от того,  в какую сторону едем.

HECTEPOB

[user]skros[/user],
Если выводы мотора разомкнуты,  он мало препятствует принудительному вращению. Если выводы замкнуты накоротко,  то мотор сопротивляется гораздо сильнее. Получается он как бы является генератором на котором висит "бесконечная" нагрузка.
Соответственно если машина ехала и включается "нейтраль", то остановка произойдет относительно плавно (но конечно не настолько, как в настоящем авто, поскольку сопротивление редуктора довольно сильное). Если на ходу включается "тормоз" машина встает колом или срывается на юз,  ребенок носом бьется об руль.

skros

ага понял..............а вы при отпускании педали не делаете плавное уменьшение pwm? сразу pwm в ноль и нейтраль?

skros

и я вот все думаю две думы:
1. когда включать тормоз на моторе? потому как при отпущенной педали, редуктор и так затормозит движение, но если машина едет с горки? делать отдельную педаль для тормоза? да и в таком случаи закорачивание движка может сломать редуктор, т.к. машина двигается с горки
2. блокировка диффиренциала - уменьшение питания свободного колеса и прибавление питания нагруженного, нужна ли она?, у нас каждый мотор работает от своего драйвера, при нажатии педали и так растет напруга на всех движках, какая разница крутиться у нас свободное колесо или нет? или я не прав?

Tygra

1) Для педальки я бы сделал так, газ в пол - плавный старт, где то посередине, то эмуляция нейтралки, т.е. относительно плавно останавливается, педаль отпущена полностью - тормоз.
2) При повороте одно колесо проходит путь больше чем другое, соответственно и нагрузка на них разная, разница очень большая, редукторам от этого лучше не становится. И расход энергии лишний и износ больше, почему бы не устранить если можно.

skros

по п1 как я понимаю редукторам будет кранты если машина едет с горки
по п2 я сейчас говорю про блокировку дифференциала, когда одно колесо в воздухе, а второе в яме, например

тут как бы надо разделять понятия работы двигателя и скорость автомобиля (я ее кстати буду мерить спидометром)........т.е. двигатель может и не работать, а машина двигаться при этом с большой скоростью (горка)

HECTEPOB

#264
[user]skros[/user],
У меня сделано так:

1. Сигнал с педали считывается в АЦП и кладется в кольцевой буфер с частотой примерно 20кГц.
2. По прерыванию от переднего фронта первого канала РУ (частота 50 Гц) кольцевой буфер усредняется (чтобы избавиться от "дребезга" сигнала с датчика, берется сумма всех элементов буфера и делится на количество элементов) и среднее значение кладется в другой (более длинный) кольцевой буфер.
3. В основном цикле программы с неизвестной плавающей частотой вычисляется базовое значение управляющего воздействия, как линейное преобразование среднего значения педали газа по второму буферу (вычисляется так же, как и для первого буфера).
4. Получается, что базовое управляющее воздействие не только плавно растет, в случае если педаль резко нажали в пол, но и плавно спадает, если педаль резко отпустили.
5. По сигналам потребляемого тока вычисляется значение коррекции базового управляющего воздействия.
6. На один мотор подается база + коррекция, на второй база - коррекция.
7. Тормоз на мотор подается в случае, когда базовое воздействие меньше определенного порога.

Tygra

Допустим с хорошего уклона, где при весе ребенка в 13-15кг , колеса встают колом и идут юзом, при условии еще хорошей резины, с хорошим протектором. Ничего с редукторами не стало. Это конечно не значит что они не могут сломаться, но сложно рассчитывать когда сдохнет редуктор, а механический тормоз делать сложно в механическом плане. По поводу диффа, то дифф не полноценен, т.е. не будет такого что одно колесо в воздухе крутится, а второе стоит на земле и из-за диффа никуда не тянет. У диффа есть пределы смещения и как бы авто блокировка. Т.е. вывешенное колесо то будет быстрее крутится чем то что на земле, но до определенного порога, итого все равно движки будут тянуть в любом случае.

skros

вот я про это и говорю, нужна ли блокировка диффа

Добавлено 08 Июль 2015 в 20:54

Цитата: HECTEPOB от 08 Июль 2015 в 17:39
[user]skros[/user],
У меня сделано так:


слишком замудрено помоему)..........но сначала надо самому реализовать механизм управления драйверами, а уж потом объективно оценивать

Tygra


HECTEPOB

[user]Tygra[/user], [user]skros[/user], Да какая разница на ассе или не на ассе. Если понимаешь физику процесса, то ничего сложного нет, вот код на ардуино как делается кольцо и его усреднение:

  const int THROTTLE_RING_SIZE = 10;
unsigned long throttleRing[THROTTLE_RING_SIZE];
int throttleIndex = 0;
.....................
throttleDuration = pulseIn(throttlePin, HIGH);

  throttleRing[throttleIndex] = throttleDuration;
 
  sum = 0;
   
  for(i=0; i<THROTTLE_RING_SIZE; i++)
  {
    sum+=throttleRing[ i ];
  }
 
  throttleDuration = sum/THROTTLE_RING_SIZE;
  throttleIndex++;
  if(throttleIndex==THROTTLE_RING_SIZE) throttleIndex = 0;
  // Дальше используем значение throttleDuration


В чем сложность?

Добавлено 08 Июл 2015 в 22:01:50

[user]skros[/user],
Я думал делать самоблок по простому принципу, если один из сигналов тока меньше определенного подобранного порога, то тупо вваливать во второй мотор максимальную безопасную мощность, пока правда руки не дошли, но работать скорее всего будет ок

skros

#269
да я так и считываю значения из портов, только в основном лупе и цикл =100.......я про то есть ли смысл делать аналоговую педаль, нажал на педаль - питание растет плавно до максимума текущего ограничителя, отпустил падает

по дифу - сразу вваливать наверное нельзя - получиться резкий рывок, плавно от педали рост..........но есть но, если есть ограничение скоростей, то на маленьких ограничениях ты не получишь максимальной мощности в виду ограничителя.

я на руле сделал две кнопки без фиксации, одну думаю сделать типа турбо - снимает ограничение на скорость пока нажата, а вторую для блока дифа, вот теперь думаю нужна ли она, ведь по идеи попал одним колесом в яму, нажал кнопку турбо и тапку в пол, оба колеса получат максимальное питание, если отключить свободное колесо, то второе не получит больше того что имеет сейчас, так ведь?


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