MultiWii

Covax

Друзья, повесил БАНО через ключ на PIN8, вместо повербаззера, чтобы показывал разряд батареи, все отлично работает, но я не хочу чтобы БАНО полностью гасло, а вместо полной отключки горели диоды хотя бы в четверть накала постоянно. Что нужно поправить в прошивке, чтобы в PIN8 отдавало не от 0, а от 1 до 5 вольт?

#define BUZZERPIN_PINMODE pinMode (8, OUTPUT);
#define BUZZERPIN_ON PORTB |= 1;
#define BUZZERPIN_OFF PORTB &= ~1;

VitaliyRU
Covax:

Друзья, повесил БАНО через ключ на PIN8, вместо повербаззера, чтобы показывал разряд батареи, все отлично работает, но я не хочу чтобы БАНО полностью гасло, а вместо полной отключки горели диоды хотя бы в четверть накала постоянно. Что нужно поправить в прошивке, чтобы в PIN8
отдавало не от 0, а от 1 до 5 вольт?

Попробуйте так

  #define BUZZERPIN_ON               analogWrite(8,255);
  #define BUZZERPIN_OFF              analogWrite(8,64);

Компилиться, но проверить не на чем.

Alex_from_Israel
Covax:

Друзья, повесил БАНО через ключ на PIN8, вместо повербаззера, чтобы показывал разряд батареи, все отлично работает, но я не хочу чтобы БАНО полностью гасло, а вместо полной отключки горели диоды хотя бы в четверть накала постоянно. Что нужно поправить в прошивке, чтобы в PIN8 отдавало не от 0, а от 1 до 5 вольт?

Это же цифровой пин! Нужно на аналоговые вешать и менять в прошивке логику работы. Проще повесить на свободный порт и написать простейшую программу мигания светодиодом, но без использования делея. На Ардуино.ру есть пример такой программки.

Прошу прощения, не заметил, что используете ПВМ пин, который 8. Работает, но стоит ли так использовать штатный баззер?. Хотя и так можно.

Covax

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

Короче, вот этот пример, про который говорил Алекс, там нужен ПИН с ШИМом (PIN8 разве с ШИМом? Вот же пины с ШИМом на ардуине 3, 5, 6, 9, 10, и 11. ), которые заняты у меня моторами и РУ, и переписывать ради этого прошивку Мультивия я честно говоря не смогу, поставлю блин резистор параллельно ключу…

Alex_from_Israel:

Прошу прощения, не заметил, что используете ПВМ пин, который 8. Работает, но стоит ли так использовать штатный баззер?. Хотя и так можно.

У меня светодиоды запитаны через ключ IRLU, так что сейчас они мигают полностью выключаясь, а мне надо чтобы чуточку горело, а то в темноте непонятно где коптер и крыша едет чуток от неопределенности)

p.s. светодиодные полоски 5050 это конечно ацкий сотона, можно книжку читать под ними…

Alex_from_Israel

Совсем запутался. У Вас ПроМини дефайны стоят? У меня Мега, и баззер на цифровом выходе. ПВМ это и есть ШИМ, и с ключем Вашим он будет работать в “полнакала”, конечно, это же тоже цифра, но за счет работы с системным таймером, он выдает серию прямоугольных импульсов разной скважности. Или, проще говоря, какое то время ноль, какое то время единица, за счет разного времени продолжительности этих импульсов результирующее напряжение будет от 0 до +5 вольт. Если у Вас все ШИМ заняты, тогда ничего не остается, как городить свое БАНО. Это не проблема, только моргание светодиодами, с которого начинается любое обучение программированию на контроллерах, основную программу повесит, на время делея. Нужно использовать прерывания от системного таймера командой millis. Это очень хорошо описано на Ардуиновском сайте. И даже по русски, на Ардуино.ру.

У меня такие полоски на лучах стоят. Очень удобно. Только они от 12 вольт работают. Я сляпал контроллер на ключах от регулей, благо их у меня куча паленых, получилась платка 10х20 мм, которую прилепил на конец ленточки и затянул термоусадкой. Выходы с нее +12 и 3 на порты. Ну и земля, есстественно. Единица на порте включает соответственный сектор светодиода. Можно комбинировать цвет кодом.

Covax

У меня почти Арудина Мини, потому и горожу огород. В Мультивие мигание светодиода относительно разряда батареи уже реализовано на ПИН8, только официально туда вешают баззер. Мне нуна, еще раз повторяю, чтобы при выключении светодиоды чуток горели, видимо на Мини это программно сделать трудно в случае Мультивия, так как ШИМы заняты, повешу резистор паралелльно.

Alex_from_Israel

Знаком я с этой реализацией! Выкинул ее из кода, когда подключил датчик тока/напряжения. В Вие у меня все это хозяйство отлично работало. Помудохался, пока коэффициенты подобрал, пришлось для этого городить вольтметр на параллельном LCD. Сериального, как в коде, у меня нет. А в Пирате такое наворочено, что разобраться просто не могу. Я железячник, в программировании почти совсем дилетант.

Covax

Вот вот, мультивий еще дает шанс разобраться в коде, пират говорит “куда б* лезешь?” 😃
Алекс, а можете прилепить к сообщению свою прошивку с исправленным кодом и подобранными коэфф, и номиналы резисторов, если не жалко?

Alex_from_Israel

Не жалко, только там нет резисторов. Есть платка 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

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

Siorinex

DEV 20110714 - п-ц!
LEVEL - включайте только в том случае, если вам некуда девать пропеллеры!
Включил, блин… Включаю моторы, тут эта хрень на минимальной тяге “тупо вращать моторы” делает “мёртвую петлю”!
Передний-левый проп - в Ж, раздробил один из коннекторов контроллеров движков, чуть не испоганил стяжками обмотки мотора…

BATT - традиционно матерится на то, что “A2 не прописан”, и т.д. и т.п.

Итого - что делается в прошивке уже какую ДЕВ-версию - я фз! С мая все те-же глюки, кажется!

P.S. Эта скотина при включении очень “хорошо” реагирует на стики в “нейтральном” положении! А с учётом того, что полной нейтрали достичь практически нереал - надо как-то её загрубить в этом самом “нейтральном” положении!

SovGVD
Siorinex:

DEV 20110714 - п-ц!

а вы в курсе чем отличается dev от релиза?

mx400mx400
mx400mx400:

Может кто сталкивался? Собираю коптер… Ардуина + платка wii. От акб стартует норально, моторами крутит,пытался подлетнуть даже… Вроде ведет себя адекватно. При подключении к USB + прога конфигуратор ардуина запускается через раз,виснет и.т.д. Иногда может поработать несколько минут и зависнуть. При внешнем питании и USB комп вообще пишет неопределенное устройство.

Отвечу сам на свой вопрос. Может комуто пригодиться…
Проблема была в питании ардуины и несогласовании уровней сигналов с датчиками. Попилил платку multiwii (подключил по i2c),подключил нунчак по аналогу. Стало наоборот ) От usb работает а от внешнего питания нет.
Выяснилось что ардуина с датчиками устойчиво работает только в диапазоне от 4.8-4.95v . Тоесть когда подключал к usb напруга падала через диод в схеме до 4.8 и все работало. Если подключать от внешнего источника питания напруга поднималась до 5.05v и все сдыхало…
Выкинул из платки multiwii подпирающие резисторы 1.8к по выходу и с питанием стало получше.
Все летает,теперь борюсь с вибрацией и разбираюсь с настройками pid. Пока сломал 3 винта ))

SovGVD

у меня аналогичная ситуация - слепил мозги на WMP и нунчаке для летающего крыла, по USB всё адекватно, при питании от BEC с регуля (по идее теже 5в, но не 0.5, а 2А) не работает ничего =) буду припаивать itg3205 с пиленного wmp, и походу придется без акселя пока что (лень матушка не дает мне спилить adxl аналоговый с нунчака)

mx400mx400
SovGVD:

у меня аналогичная ситуация - слепил мозги на WMP и нунчаке для летающего крыла, по USB всё адекватно, при питании от BEC с регуля (по идее теже 5в, но не 0.5, а 2А) не работает ничего =) буду припаивать itg3205 с пиленного wmp, и походу придется без акселя пока что (лень матушка не дает мне спилить adxl аналоговый с нунчака)

Ток тут не при делах. напряжение разное немного при питании от usb и от внешнего источника. Померяй тестером )

Covax
Siorinex:

LEVEL - включайте только в том случае, если вам некуда девать пропеллеры!

Я ж 1001 раз говорил что в мультивие надо быть очень аккуратно с полем LEVEL 0,045, я сразу опускаю его ВСЕГДА до 0,030 минимум, иначе переворот. Level в DEV отлично летает, сегодня завтра будет видео с фвп.

SovGVD
mx400mx400:

Померяй тестером )

тестер говорит что вместо 3.3 выдается 3.02, при питании от USB 3.3 четко показывает, стаб тупит? в общем забил пока - надо с коптером добавловаться, а потом уже крыло

Siorinex
SovGVD:

а вы в курсе чем отличается dev от релиза?

В курсе, но должны-же быть изменения к лучшему, помимо того, что в DEV в последнее время ГУЙ более логичный и разнесено по модулям?!

Кажется разобрался с основной причиной этого “полёта шмеля”: не достаточно раскомментировать в опциях “AllInOne”! Надо как и прежде в Sensors для BMA180 выбрать адрес 82! Гррр…

sulaex
mx400mx400:

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

уважаемый, если вас не затруднит, сделайте пожалуйста скрин настроек, состав железа (желательно линки где покупали), фотографии рамы, делали ли вы настройки пропеллеров, моторов?
уж больно красиво он у вас висит, буду очень благодарен 😃

mahowik

+1
тож самое хотел спросить! суперска висит учитывая “подушку”!
каккие сенсоры, моторы, регули, пропы, номер прошивки, ПИД-ы, размер рамы и т.д. ? думаю тут многие будут благодарны! 😃
Либо может у вас просто есть хороший вертолетный опыт?