Проект "Безколлекторная Лама4"

MPetrovich
Volante24:

А также есть очень полезный тьюториал от AVR.

А шо це такэ?

Volante24:

Нет, буквально так не пройдет. Нужно же знать, когда ESC включает и когда выключает свой PWM. Он-то это знает, но чтобы его спросить, нужно внутрь программы лезть, а этого никто не может. А иначе нужно подпитываться к выводу самого процессора или затворам ключей, ну или вроде того, Питающая частота там вовсе не фиксирована, только на малый интервал времени. Короче, полно мороки, а для чего? Вращается мотор, или нет – проще датчик поставить

Так зачем лезть в регулятор? Ведь когда ESC включает обмотку видно на проводе. При чём здесь ШИМ? Даже если частота не фиксированная, можно легко привязаться к фронту или спаду импульса, от изменения частоты и длительности ничего не измениться.
Датчик поставить вовсе не проще. К тому же алгоритм обработки его сигнала будет повторять алгоритм обработки сигнала противоЭДС на одном питающем мотор проводе.
Я вообще наловчился делать так: включаю передатчик и медленно триммером газа довожу до момента, когда моторы начинают дёргаться, потом немножко сдвигаю триммер назад и дальше уже работаю стиком. При самом нижнем положении стика моторы ещё вращаются, но верт начинает резко терять высоту. Когда садиться, то ещё молотит лопастями. Я убираю триммер газа вниз и верт глохнет.

Volante24:

Аккумулятор один или два?

Один, конечно.

Volante24
MPetrovich:

Полюбуйтесь на красавца.

Уже пора перерисовывать V3 в V8

MPetrovich
Volante24:

Уже пора перерисовывать V3 в V8

Я считаю, что лучше по праву добавить надпись “TURBO”.

Нарыл в сети книжку на русском “Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL”(2004), автор Евстифеев. Однако, там нет про АTiny13, есть только 11, 12, 26 и пр. Но про архитектуру и систему команд вполне можно почитать. Обидно, что нет ни одного примера куска программы с разбором. Я не очень люблю такие издания, являющиеся по сути усечёнными переводами даташитов.
Смотрел сегодня разные регуляторы для б/к моторов и пришёл к выводу, что накрайняк можно обойтись без программного ограничения тока через регуль. Существуют маломощные регули (до 10А), в которых уже предусмотрена защита от перегрузки и перегрева. Если использовать регулятор с защитой по току, срабатывающей, скажем, при 4А, то можно просто установить их. Единственный вопрос, который мне не ясен - как проявляет себя эта защита? То ли она срабатывает как отсечка тока до нуля с последующим прерзапуском выкл/вкл питания, то ли ток доходит до определённого порога и дальше просто не увеличивается. Я склонен считать, что скорее первый вариант, поскольку регули маломощные и малогабаритные и если достаточно долго держать на максимальном токе, то просто погорят ключи.

Хотел ещё спросить знающих людей - как подключается отдельный гироскоп? Меня интересует откуда приходит сигнал на вход и куда уходит с выхода? По картинкам у гиры два разъёма двойной и торйной. Двойной, надо думать питание, а торйной вход+выход+земля. Так или нет? Подскажите, сведущие в этом вопросе.

Volante24
MPetrovich:

Хотел ещё спросить знающих людей - как подключается отдельный гироскоп? Меня интересует откуда приходит сигнал на вход и куда уходит с выхода? По картинкам у гиры два разъёма двойной и торйной. Двойной, надо думать питание, а торйной вход+выход+земля. Так или нет? Подскажите, сведущие в этом вопросе.

Простейшие гиро, которые я держал в руках (и сейчас держу), просто включаются между серво и приемником – они должны модифицировать длительность PPM импульса. Соответственно, все как у птичек. Два обычных тройных провода, один папа, другой мама.

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

Вы с английским в ладах? Все, что я использовал для информации и обучения, было на английском (взято, по-моему, с сайта AVR). Там прямо и примеры программ, с пояснениями. Но тут нашел у себя в букмарках русский url с обучением микроконтроллерам, правда, я туда не лазал.

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

PigTail

на русском можно посмотреть www.gaw.ru, www.avr.h15.ru, www.avr123.nm.ru

sergej-08

Всем привет !!!
Чайниковский вопрос - есть ли разница между в-тайл миксерами от разных производителей для применения в схеме, предложенной уважаемым автором темы ? Конкретнее - если вместо www.hobbycity.com/hobbycity/…/uh_viewItem.asp?idPr… (у них какой-то хронический затык с его поставкой ) применить www.hobbycity.com/hobbycity/…/uh_viewItem.asp?idPr… ?
Заранее - спасибо !!!

PigTail

Должон потянуть, мне тут прошивка на тини13 попадалась с в-миксером, если надо поищу ссыдку

М_Ф
sergej-08:

Всем привет !!!
Чайниковский вопрос - есть ли разница между в-тайл миксерами от разных производителей для применения в схеме, предложенной уважаемым автором темы ? Конкретнее - если вместо www.hobbycity.com/hobbycity/…/uh_viewItem.asp?idPr… (у них какой-то хронический затык с его поставкой ) применить www.hobbycity.com/hobbycity/…/uh_viewItem.asp?idPr… ?
Заранее - спасибо !!!

У меня есть и тот и другой. Оба работают.

MPetrovich
PigTail:

на русском можно посмотреть www.gaw.ru, www.avr.h15.ru, www.avr123.nm.ru

Не знаю как принято у AVRовцев, а у PICовцев я практически с ходу нашёл подробные примеры программ на ассемблере с разбором каждой строчки. На сайтах же, которые указаны выше ничего похожего нема. Или я не понял где смотреть, или там этого нет. Если не прав, то ткните меня носом - буду благодарен. А вообще, если на этом форуме кто-то решиться открыть ликбез по программированию, то думаю тема будет иметь немалый спрос.
На праздники возил свой верт на просторы степей в Липецкую область. Ещё раз убедился, что против ветра летать невозможно. Нужно управление вторым ротором, иначе вся дурь б/к моторов идёт на взмывание верта вверх до неразличимости в небе, а ветер ещё больше ускоряет вертикальное перемещение плюс ещё и сносит черти куда. Оттого спускать верт на землю жуткое мучение, а ронять его метров с 50 отчего-то жалко. Полёты кончились тем, что сожрало половину зубов на шестерне внешнего вала и верт стал крутиться по часовой стрелке. Сегодня наконец заменил вал.

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

Я вот что подумал: а зачем вообще эти миксеры, если они ни фига не воспринимают сигнал с гироскопа? Не проще поставить по гироскопу на каждый мотор и они будут пропорционально компенсировать угловое ускорение путём изменения длительности импульсов РРМ соответствующих моторов. Только включить их нужно “навстречу”, т.е. чтобы один отслеживал хвост, а другой нос. По весу и по размеру проигрыша быть не должно.

Volante24
MPetrovich:

Не проще поставить по гироскопу на каждый мотор и …

А зачем весь этот кибуц?

Не знаю как принято у AVRовцев, а у PICовцев я практически с ходу нашёл подробные примеры программ на ассемблере с разбором каждой строчки. На сайтах же, которые указаны выше ничего похожего нема. Или я не понял где смотреть, или там этого нет.

Ну вот тут я что-то нашел:

babelfish.altavista.com/…/trurl_pagecontent?lp=ja_…

Там внизу есть AVR super introduction (NO.1 и дальше, правда, почему-то по нисходящей). Это, правда, не по-русски; номинально на английском, но лишь номинально, английский там такой, что впору караул кричать, по-моему просто машинный перевод с японского. Мне кажется, руководство я видел где-то в другом месте, это лишь потому, что примеры прямо из нашей RC жизни.

MPetrovich:

Не знаю как принято у AVRовцев, а у PICовцев я практически с ходу нашёл подробные примеры программ на ассемблере с разбором каждой строчки. На сайтах же, которые указаны выше ничего похожего нема.

По-моему, здесь:

www.avr-asm-tutorial.net/avr_en/index.html

и дальше. смотрим в Index самое первое, Beginner’s introduction to AVR assembler language:

www.avr-asm-tutorial.net/avr_en/…/index.html

Ну и, наверное, все прочее тоже.

MPetrovich

Ну, блин, ты и нашёл! Я по английски понимаю по одному-два слова из предложения, а ты хочешь, чтобы я такой объём текста переварил!
Скажите мне лучше, господа программеры, на чём-таки программируется AVR - на СИ, на Ассемблере или ещё на чём? Я не въезжаю. Понимаю, что компилятору наплевать на чём ты пишешь, лишь бы он сам мог тебя перевести, но мне-то как быть? Учить Си? Это то ещё удовольствие! И ещё вопрос - написав по примрам программу для какого-нибудь AVRа, могу ли я перетранслировать её в программу для нужного мне чипа? Или надо курочить всю программу от иницмализации до последнего бита в регистрах?

Volante24
MPetrovich:

Ну, блин, ты и нашёл! Я по английски понимаю по одному-два слова из предложения, а ты хочешь, чтобы я такой объём текста переварил!

Я ж не знал! Ну, раньше или позже все одно придется выучить, это как раз самый безболезненный путь. Так что дерзай. Да и в любом случае, ты же не хочешь вместо Go to, писать “пошел на …”!

Скажите мне лучше, господа программеры, на чём-таки программируется AVR - на СИ, на Ассемблере или ещё на чём?

Я тот еще специалист, но скажу: кто на Ассемблере, а кто на С. Я бы сказал – начинайте на ассемблере, и удовольствие (как в Лего играть!), и полезно. А если пойдет, то продвинутые программы можно на С.

И ещё вопрос - написав по примрам программу для какого-нибудь AVRа, могу ли я перетранслировать её в программу для нужного мне чипа?

Можно, но с некоторыми изменениями. Если в программа использует четвертый таймер, а в ATTINY13 он лишь один с двумя счетчиками – ясно, придется что-то переобозначать. Но мнемоника у всего там вроде такая, что это проследить и сделать несложно. Ну, названия выводов на пины меняются, наверное, инициализацию чипа и портов нужно подогнать. Но, насколько я понимаю, собственно команды одни и те же.

CrazyElk

MPetrovich

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

  2. forum.ixbt.com/?id=48 место обитания не злобных любителей AVR и ARM. (Помогите начать работать с микроконтроллерами). www.avr123.nm.ru - краткий курс бойца на AVR. Сайт несколько странный по дизайну и стилю но многим новичкам по их отзывам помог (оценить сам не могу не новичек).

  3. Си учить. Если не стоит задача супер все контролировать или вытесать код микронных размеров в ассемблер лезть не стоит ниже аргументирую почему.

  4. если написана программа для AVRа то для чипа того же или близкого семейства в 90% случаев все сведется к замене одного фала описателя чипа и/или коррекции макро определений. Если это принципиально другой чип и/или если программа использует блоки котрые принципиально в чипе отсутствуют переписывать. Насколько много и сложно зависит болше от того насколько “качественно” написано - качество приходит с опытом. Надо писать и читать теорию. Как пример - новички сплошь и рядом по коду раскидывают “магические числа”. Надо буфер на 10 символов или скажем для выбранного чипа делить надо частоту на 8 так везде так и пишут 10 и 8 (а то и 5+5 напишут ) жизнь идет чип и потребности меняются и выясняется что программа всем хороша но на новой технической базе надо везде буфер сделать 15, а делитель скажем 5 - начинаются мучения по поиску какие именно из 10 щедро разбросанных по коду надо менять на 15 (в том числе и пресловутые 5+5 надо отыскать) и какие из 8 относятся к делителю а какие просто рядом стояли. Чуть более опытный в самом начале определяет константу BUFFER_SIZE и SCALE_DIVIDER и использует имена а не магические значения - вся коррекция- заменить в одном месте в определение число. Есть аналогичные правила на структуру программы … если им следовать то первоначальное написание несколько удлиняется, но переделка и портирование становятся намного легче. Разумный баланс дело навыка.

  5. Займетесь микропроцессорами подружитесь с Jtag и отладкой программы в кристалле. Don’t Think! Look == Не гадай, посмотри - правило экономящее кучу времени при поиске ошибок. Не только в микроконтроллерах в программирование вообще - отладчик лучший друг программиста и им надо пользоваться. + к этому лутше 2 раза прочитать/перечитать КАК должно работать в документации чем 20 пытаться угадать как это может работать X-переменируя.

По поводу почему С а не ассемблер.

Изучая Ассемблер вы хорошо изучите как именно думает микроконтроллер, как он устроен, какие в нем есть блоки и как именно к ним обращаются в какой момент на каких ножках и в ответ на какие действия/команды что появятся, вы доподлинно будете знать как именно что и где размещено в память, какая она бывает … как … . Это безусловно полезно но не обязательно, а часто для решения конкретных задач совершенно излишне. Грубо говоря Ассемблере это подробная технологическая карта по шагам куда надо двигать инструмент, когда пускать когда поднимать чтобы скажем отфрезеровать окружность . КАК делать с опорой на конкретные чипы и инструкции. Как пример чтобы сложить два целых числа

a=b+c;
(не то чтобы единственно возможный и самый правильный алгоритм но как пример)
Загрузить значение переменной b из памяти в регистр. (помним где место расположения переменной b в памяти)
Загрузить значение с из памяти в регистр. (помним где место расположения переменной c в памяти)
Сложить регистры (отмечая в уме регистр куда поместит результат процессор)
Сохранить значение регистра где резуьтат сложения в память по тому адресу где расположена переменная a (адрес переменной a в памяти)
(УФ готово сложили)

естественно с опытом человек пишет инструкции не задумываясь да и код этот можно оформить проще но не в этом суть. Смысл примера в том что на ассемблере вы формулируете не то что хочется сделать - сложить числа, а подробно описываете как именно это сделать конкретному процессору на его языке. В ассемблере есть безусловно облегчающие программирование технологические приемы макросы, библиотеки … контроллеры собраны в семейств и наборы команд у них до безобразия похожи … но тем не мнение это подробная инструкция КАК

С в отличие от ассемблера это инструкция не КАК, а рассказ ЧТО надо сделать. На С вы пишите ЧТО именно надо сделать a=b+c; и все. КАК это сделать на конкретном процессоре решает компилятор. И смею заверить очень неплохо это делает. Не многие люди и в редких ситуациях способны написать инструкцию КАК лутше современного компилятора. Если добавить сюда то что для С производители подготавливают и раздают библиотеки ЧТО может сделать чип или КАК делать на том или ином чипе стандартную операцию именно для Си чаще всего то если вы не собираетесь заниматься жестокой оптимизацией пишите ЧТО надо делать а не КАК. Как это сделать современный компилятор разберется. И грамотно написанная программа ЧТО делать переносится намного проще не то чтобы внутри семейства а и между типами если нет принципиальной невозможности гораздо проще с AVR на ARM или PIC перенести Си. чем подробный план ASM КАК это делает конкретный AVR переизложить в ASM в инструкци КАК это сделать PIC-у.

Бесплатый сыр естественно бывает только в мышеловках. Создатели стандартных библиотек для контроллеров и их семейств на Си закладываются на гораздо более широкий спектор возможных случаев чем может встретится в конкретной программе - поэтому код библиотечных функций может быть излишне большим с точки зрения потребностей конкретной программы. Тут оптимизации конечно возможны НО но жизнь идет и то что еще вчера казалось нереальным случаем (ну скажем ввод даных в научном формате и работа с плавающей точкой) сегодня становится неизбежной необходимостью. Так что излишняя оптимизация 10 раз может выйти боком. При том что для одиночных поделок разница в цене между скажем ATTiny13 пол доллара и несколько десятков байт оперативной памяти и ARM7 десять долларов и 32 килобайта оперативной памяти (про скорости и перечень переферии даже не говорим) совершено не оправдывает месяц ухищрений потраченный на то чтобы втиснуть именно в десяток батйт оперативки программу котрая с огромным запасом ложится в килобаты ARM-а и ли ATMega. ТОже самое не стоит фантазировать как программно эмулировать USB порт дергая ножки контроллера (а это возможно и хорошие примеры есть и иногда это даже оправданно) если он есть готовый в железе с библиотеками как его применять и примерами у старшего чипа. В современном любительском электронном мире проще взять кристалл/микроконтроллер с запасом и сосредоточится на формулировке ЧТО делать, чем выцарапывать такты, байты и центы подробно расписывая КАК это сделать именно на этом дешевеньком и простом чипе. (в массовом производстве конечно другое дело экономия месячными усилиями доллара на миллионой партии дает миллион долларов 😃 но на одиночной поделки всего то доллар будет. Вопрос удовольствия - а я смог - это естественно отдельная песня)

Сорри если излишне подробно и много.

WBR CrazyElk

М_Ф
MPetrovich:

Я вот что подумал: а зачем вообще эти миксеры, если они ни фига не воспринимают сигнал с гироскопа? Не проще поставить по гироскопу на каждый мотор и они будут пропорционально компенсировать угловое ускорение путём изменения длительности импульсов РРМ соответствующих моторов. Только включить их нужно “навстречу”, т.е. чтобы один отслеживал хвост, а другой нос. По весу и по размеру проигрыша быть не должно.

У меня вот гироском за 100$. Буду летать на одном. С двумя дороговато 😁

MPetrovich
М_Ф:

У меня вот гироском за 100$. Буду летать на одном. С двумя дороговато 😁

Нет предела совершенству! Однако я имел в виду гироскопы малость попроще, этак за 20-25$.
Тем не менее, теоретически схема выглядит достаточно логично.

Volante24
CrazyElk:

Сорри если излишне подробно и много.

WBR CrazyElk

Здорово! И, гдавное, все правильно. Но – глазами профессионала. А чтобы на своей шкуре оценить всю правильность сказанного, не потеряв по дороге интерес, нужно сделать несколько простейших игрушек на простейших чипах – как в конструкторе. Мне так каатца…

PigTail

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

m_denisov

Здравствуйте, уважаемые гуру электоники, програмисты и просто грамотные специалисты!

Читал тему достаточно внимательно но так и не смог найти ответа на один вопрс, начну с истории.
После того как один из учасников форума про Xtreme сделал тест энергопотребления стандартных коллекторных Xtreme моторов, и стало известно, что в режиме висения они потребляют (или могут потреблять) около 5A, мне пришла вголову мысль, на основе проекта автора темы про безколлекторники, собрать тоже самое, только для мощных коллекторных моторов Xtreme SE. Поехал в Мир увлечений и RC-Ocean и закупил следующие детали: 2 регулятора E-Sky EK2-0600A (20A других не было), GYRO E-SKY EK2-0704A, и такой микшер. все соединил согласно схеме, только без разрыва плюса второго регуля, поскольку в случае разрыва работал только один мотор. Сбрал попробовал на коленке- все вроде работает но, один мотор, к ESC которого подлучена батарея, вращается примерно в два раза быстрее другого. При подключении батареи к ESC другого мотора ситуация повторялась аналогичным образом, быстрее вращался мотор к ESC которого подключена батарея. При установке на вертолет предположение полностью подтвердилось.

Я хотел спросить, уважаемых форумчан, как же правильно пдключить питание.
Оба ESC параллельно? Даст ли это стабильность и не сожгет ли электронику? Из сообщений форума я ответа не нашел…
Надеюсь тухлых помидоров ниукого нет, и швыряться ими никто не умеет 😃

MPetrovich

Вчера произошло непонятное мне до сих пор событие. Включил питание вертолета (подсоединил разъём батареи), как обычно прозвучал писк одного из регуляторов и… пошёл дым из одного из моторов(он вращал верхние лопасти) - того, чей регуль не пропищал как положено. Я по быстрому вырубил питание и пошёл разбирать верт. Выяснилось, что тот мотор, который дымил, не запускается, а только подёргивается. Регуль, который стоял на нём тоже стал работать некорректно - он то пускает мотор, то нет, и если пускает, то не так, как исправный, т.е. не сразу, а с некоторой задержкой по сравнению с исправным. Снял я оба бесколлекторника и поставил обратно коллекторники, поскольку смысла в смешанном варианте не вижу никакого.
Кто-нибудь имеет предположения что за хрень приключилась у меня? Или может кто-то уже пострадал подобным образом? Самое непонятное, что сгорел тот мотор, который никогда не грелся. Для полноты картины скажу ещё, что у меня триммер газа был выведен вверх примерно на 3/4 хода, чтобы при сбросе газа моторы сразу не затыкались.
В связи с этим прискорбным происшествием, я задумался какой регуль и мотор теперь заказывать. По этому вопросу также хотелось бы выслушать мнения.

m_denisov:

…Я хотел спросить … как же правильно пдключить питание.
Оба ESC параллельно?..

Питание обоих ESC нужно осуществлять непосредственно от аккумулятора. Однако, совершенно непонятно с какой целью проводился данный эксперимент и почему вопрос про коллекторники задан в теме про бесколлекторники?

Volante24
m_denisov:

Я хотел спросить, уважаемых форумчан, как же правильно пдключить питание.
Оба ESC параллельно? Даст ли это стабильность и не сожгет ли электронику? Из сообщений форума я ответа не нашел…
Надеюсь тухлых помидоров ниукого нет, и швыряться ими никто не умеет 😃

Вы поставили мощные бесколлекторные регуляторы? А зачем? Ведь штатные должны выдерживать ампер 8 или 10 на каждый!

Симтомы непонятны, и нужно бы сначала разобраться, что происходит. Вольтметр есть? Измерьте напряжение на выходе +5В обоих ESC, на разных режимах. Некоторые стабилизаторы имеют минимальный допустимый ток нагрузки, может, тот, который отключен, выдает слишком много, Можно пробовать нагружать и второй ESC чем-нибудь, хоть лампочкой или резистором 30-300ом. И проверьте, что с землей у обоих все в порядке. Предполагается, что схема собрана правильно, прочесть не представляется возможным.

Нормально можно оба ESC включать параллельно, но я бы все же рекомендовал понять, что происходит.