MultiWii
Набрел в интернете на такую плату …ckdevices.com/…/Mongoose-9DoF-IMU-with-Barometric… может кто уже пробовал?
прошивка dev20110714, P 2.5, level 0.020
попробуй вот такие пиды для плавного лету мне очЧЧЧ понравилось
чувак пишет что при больших “Д” коптер будет плавать как субмарина www.rcgroups.com/forums/showpost.php?p=17215161&po…
и самое главное что полет получается плавный и мега устойчивый (за счет большого “П” - компенсация большому “Д”) даж при резком сбросе газа и потере высоты не идет в расколбас rcopen.com/forum/f123/topic221574/3094
Все, облетал, после дождичка, ладно в ветер его не очень то колбасило, но в штиль это очень сиабильно! А я минимально жду от коптера стабильности и предсказуемости, мегапирату в моем исполнении и нежелании возится до уср*ки с ПИДАми такой полет не светил к сожалению… Так что в этом сезоне я 100% вернулся в секту мултивиеводов Ж) Да, испытал баро! Никуда его особо не несет, все делает плавно но гуляет в пределах 2-3 метров, конечно есть минуты когда он четко висит на одном уровне, но погулять он может, там что для фвп его можно брать в помошники на первых парах смело! Александр, обязательно попробую, спасибо!
ну и плюс цитатка: In both cases I decreased the pitch & roll “D” to absolute maximum(Note this is a negative value). I can see no downside to this and in both cases I was able to increase “P” as well because the large “D” coefficient trys to resist angular acceleration which dampens the feedback (wobble) normaly caused by a large “P”. Both machines are now flying better and the low throttle descent wobble has been greatly reduced/nearly eliminated.
Both machines fly like submarines now. They are so well dampened that it’s like flying in water rather than air
ТОесть он на максимум поставил pitch & roll D, и поднимал P до наступления расколбаса? Я не понял до какого значения он P поднимал…
ну по идее по стандартной схеме, т.е. можно увеличивать Р до появления колебаний, потом уменьшить на 10%…
я лично читал на родном вийском форуме что при D ~=40-45 нужно брать P около 10-12 для компенсации… я для теста взял 35 для D и 8-9 для P ну и полетел себе плавненько как до этого не летал 😃 далее не эксперементировал т.к. и так вполне устроило все 😃
НО это все про акро мод… со стаб модом у меня трабл какойто как перешел с аналога на I2C… разберусь вот с эмиграцией свойей тогда буду заказывать аксель нормальный 😃
Александр, ты ж вроде в Минске был? 😃
Поддаю газу у меня коптер чуток вправо разворачивает (в стаб моде), что надо крутить не помнишь?
Александр, ты ж вроде в Минске был?
нравятся мне на города на “М” 😃 теперь вот Монреаль… неделю всего… адаптатасьен так сказать 😃
Поддаю газу у меня коптер чуток вправо разворачивает (в стаб моде), что надо крутить не помнишь?
ну по идее “I” (для стаб мода LEVEL “I” соот-но) отвечает за хидинг холд его попробуй поднять… а в акро не крутит?
Прикупил Arduino Proto Shield
Макетка, втыкаемая вторым уровнем на Сидуину-Ардуину, ну и на Мэпл тоже.
На неё жёстко впаяю AllInOne, ибо задолбал своими отпадами, ну и разъёмы для подключения моторов и т.д., т.к. “взрыв на макаронной фабрике” самого достал.
Из плюсов - будет переносимость всего на Мэпл без перепайки.
Из минусов - у шелда не предусмотрены контакты “дополнительного” коннектора, на который в Сидуине подвешен приёмник…
Собственно - приёмник можно будет перевесить на a0-a7 и поменять нужные строки в коде, что-нить придумав на тему A3 (тест батареи)…
Друзья, повесил БАНО через ключ на PIN8, вместо повербаззера, чтобы показывал разряд батареи, все отлично работает, но я не хочу чтобы БАНО полностью гасло, а вместо полной отключки горели диоды хотя бы в четверть накала постоянно. Что нужно поправить в прошивке, чтобы в PIN8 отдавало не от 0, а от 1 до 5 вольт?
#define BUZZERPIN_PINMODE pinMode (8, OUTPUT);
#define BUZZERPIN_ON PORTB |= 1;
#define BUZZERPIN_OFF PORTB &= ~1;
Друзья, повесил БАНО через ключ на PIN8, вместо повербаззера, чтобы показывал разряд батареи, все отлично работает, но я не хочу чтобы БАНО полностью гасло, а вместо полной отключки горели диоды хотя бы в четверть накала постоянно. Что нужно поправить в прошивке, чтобы в PIN8
отдавало не от 0, а от 1 до 5 вольт?
Попробуйте так
#define BUZZERPIN_ON analogWrite(8,255);
#define BUZZERPIN_OFF analogWrite(8,64);
Компилиться, но проверить не на чем.
Друзья, повесил БАНО через ключ на PIN8, вместо повербаззера, чтобы показывал разряд батареи, все отлично работает, но я не хочу чтобы БАНО полностью гасло, а вместо полной отключки горели диоды хотя бы в четверть накала постоянно. Что нужно поправить в прошивке, чтобы в PIN8 отдавало не от 0, а от 1 до 5 вольт?
Это же цифровой пин! Нужно на аналоговые вешать и менять в прошивке логику работы. Проще повесить на свободный порт и написать простейшую программу мигания светодиодом, но без использования делея. На Ардуино.ру есть пример такой программки.
Прошу прощения, не заметил, что используете ПВМ пин, который 8. Работает, но стоит ли так использовать штатный баззер?. Хотя и так можно.
С цифровым пином такое не прокатит? Просто хотелось бы воспользоваться заложенной в скетч возможностью контролировать напряжение частотой мигания светодиодов. Я конечно могу решить эту проблему тупо железно поставив параллельно ключу резистор правильно подобранный, но хотелось бы программно…
Короче, вот этот пример, про который говорил Алекс, там нужен ПИН с ШИМом (PIN8 разве с ШИМом? Вот же пины с ШИМом на ардуине 3, 5, 6, 9, 10, и 11. ), которые заняты у меня моторами и РУ, и переписывать ради этого прошивку Мультивия я честно говоря не смогу, поставлю блин резистор параллельно ключу…
Прошу прощения, не заметил, что используете ПВМ пин, который 8. Работает, но стоит ли так использовать штатный баззер?. Хотя и так можно.
У меня светодиоды запитаны через ключ IRLU, так что сейчас они мигают полностью выключаясь, а мне надо чтобы чуточку горело, а то в темноте непонятно где коптер и крыша едет чуток от неопределенности)
p.s. светодиодные полоски 5050 это конечно ацкий сотона, можно книжку читать под ними…
Совсем запутался. У Вас ПроМини дефайны стоят? У меня Мега, и баззер на цифровом выходе. ПВМ это и есть ШИМ, и с ключем Вашим он будет работать в “полнакала”, конечно, это же тоже цифра, но за счет работы с системным таймером, он выдает серию прямоугольных импульсов разной скважности. Или, проще говоря, какое то время ноль, какое то время единица, за счет разного времени продолжительности этих импульсов результирующее напряжение будет от 0 до +5 вольт. Если у Вас все ШИМ заняты, тогда ничего не остается, как городить свое БАНО. Это не проблема, только моргание светодиодами, с которого начинается любое обучение программированию на контроллерах, основную программу повесит, на время делея. Нужно использовать прерывания от системного таймера командой millis. Это очень хорошо описано на Ардуиновском сайте. И даже по русски, на Ардуино.ру.
У меня такие полоски на лучах стоят. Очень удобно. Только они от 12 вольт работают. Я сляпал контроллер на ключах от регулей, благо их у меня куча паленых, получилась платка 10х20 мм, которую прилепил на конец ленточки и затянул термоусадкой. Выходы с нее +12 и 3 на порты. Ну и земля, есстественно. Единица на порте включает соответственный сектор светодиода. Можно комбинировать цвет кодом.
У меня почти Арудина Мини, потому и горожу огород. В Мультивие мигание светодиода относительно разряда батареи уже реализовано на ПИН8, только официально туда вешают баззер. Мне нуна, еще раз повторяю, чтобы при выключении светодиоды чуток горели, видимо на Мини это программно сделать трудно в случае Мультивия, так как ШИМы заняты, повешу резистор паралелльно.
Знаком я с этой реализацией! Выкинул ее из кода, когда подключил датчик тока/напряжения. В Вие у меня все это хозяйство отлично работало. Помудохался, пока коэффициенты подобрал, пришлось для этого городить вольтметр на параллельном LCD. Сериального, как в коде, у меня нет. А в Пирате такое наворочено, что разобраться просто не могу. Я железячник, в программировании почти совсем дилетант.
Вот вот, мультивий еще дает шанс разобраться в коде, пират говорит “куда б* лезешь?” 😃
Алекс, а можете прилепить к сообщению свою прошивку с исправленным кодом и подобранными коэфф, и номиналы резисторов, если не жалко?
Не жалко, только там нет резисторов. Есть платка AttoPilot со Спаркфана, подключена на аналоговые входы, там где радио. Только с Мегой будет работать, на Нано нет свободных ШИМ входов.
static float vbatRaw = 0.0f; //used for smoothing voltage reading
static float ibatRaw = 0.0f; //used for smoothing current reading
#if defined(VBAT)
vbatRaw = analogRead(V_BATPIN); // smoothing of vbat readings
vbat = vbatRaw / VBATSCALE; // result is Vbatt in 0.1V steps
voltageAvg = vbat;
if ( (vbat>VBATLEVEL1_3S)
#if defined(POWERMETER)
&& ( (pMeter[PMOTOR_SUM] < pAlarm) || (pAlarm == 0) )
#endif
)
//VBAT ok AND powermeter ok, buzzer off
{
buzzerFreq = 0; buzzerState = 0; BUZZERPIN_OFF
// Left_RGB_RED;
// RIGHT_RGB_GREEN;
// REER_RGB_WITE;
Это в annexCode()
#define THROTTLEPIN 0 //PIN 62 = PIN A8
#define ROLLPIN 1 //PIN 63 = PIN A9
#define PITCHPIN 2 //PIN 64 = PIN A10
#define YAWPIN 3 //PIN 65 = PIN A11
#define AUX1PIN 4 //PIN 66 = PIN A12
#define AUX2PIN 5 //PIN 67 = PIN A13
#define CAM1PIN 6 //PIN 68 = PIN A14
#define CAM2PIN 7 //PIN 69 = PIN A15
#define ISR_UART ISR(USART0_UDRE_vect)
#define V_BATPIN A3 // Analog PIN 3
#define I_BATPIN A2 // Analog PIN 2
Это в def.h
Еще в config.h
/* for V BAT monitoring
vbat = analogRead(A2) / 12.99
ibat = analogRead(A3) / 7.4*/
#define VBAT // comment this line to suppress the vbat code
#define VBATSCALE 12.99f // AttoPilot V & I sensing board
#define IBATSCALE 7.4f // AttoPilot V & I sensing board
#define VBATLEVEL1_3S 10.7f // 10,7V
#define VBATLEVEL2_3S 10.3f // 10,3V
#define VBATLEVEL3_3S 0.99f // 9.9V
Прошу прощения!
Это один из вариантов, для нормальной работы нужно объявить переменные
static int vbatRaw
static int ibatRaw
и переменные
в начале MultiWii_dev
float vbat
float ibat
это глобальные переменные, должны иметь область видимости для всего скетча
Поскольку в результате значение будет с плавающей запятой, то и арифметические операции лучше не проводить. Только сравнение.
DEV 20110714 - п-ц!
LEVEL - включайте только в том случае, если вам некуда девать пропеллеры!
Включил, блин… Включаю моторы, тут эта хрень на минимальной тяге “тупо вращать моторы” делает “мёртвую петлю”!
Передний-левый проп - в Ж, раздробил один из коннекторов контроллеров движков, чуть не испоганил стяжками обмотки мотора…
BATT - традиционно матерится на то, что “A2 не прописан”, и т.д. и т.п.
Итого - что делается в прошивке уже какую ДЕВ-версию - я фз! С мая все те-же глюки, кажется!
P.S. Эта скотина при включении очень “хорошо” реагирует на стики в “нейтральном” положении! А с учётом того, что полной нейтрали достичь практически нереал - надо как-то её загрубить в этом самом “нейтральном” положении!
DEV 20110714 - п-ц!
а вы в курсе чем отличается dev от релиза?