Activity
Ага, оно BaronPilot называется, забыл, вот ссылка на проект www.elenafrancesco.org/old/arduino/baronpilot/
он невероятно старый, еще времен, когда multiwii был исключительно на WiiMOtionPlus, зато код чистый и там легко находится работа с аппой
вот тут можно посмотреть как у меня почти этот код используется github.com/SovGVD/…/rccamera.ino
Спасибо! BaronPilot и вправду помог. Код янтарно чистый)
Берем любой открытый проект, например Baron (самый простой), MultiWii или MegaPirateNG/Arducopter и нагло выковыриваем от туда код работы с приемником. (что я сделал кстаи для своей нажималки кнопки на фотике)
Первый раз слышу про Baron. Если от туда проще всего, то не затруднит ли вас дать ссылочку на его исходники? Поисковики на запрос Baron выдают уж очень много всего ненужного))
Здравствуйте!
Мучаюсь какой день с такой вот проблемой:
Есть Atmega328p на платке для управления коптером (мультивишная), есть радиоприемник, есть пульт. Необходимо выводить по UART значение ШИМ поступающего с радиоприемника. Естественно решить задачу в лоб не получилось, а именно за счет функций digitalRead() и micros(). Значения всегда не точны и есть разборос. Как я понимаю это из-за погрешностей библиотек данных функций.
Итак вопрос:😒
Как грамотно реализовать считывание ШИМ (в мкс) на платах типа Arduino?
Дык, не правильно, газ 1мс, направление (YAW) 2мс, а остальные 1.5мс (т.е. среднее значение).
Да! Получилось!)
Огромное спасибо всем за помощь)
для ардуино есть библиотека Servo. Ею элементарно просто вы можете повторить сигнал канала приемника.
myservo.write(0); - “ручка в нуле”
myservo.write(255); - “ручка на максимуме” .
Смотрите примеры.
Да. Только не 255, а 180.
Пробовал. Пытался подобрать значения так чтобы было похоже на нужное мне отклонение. Перебрал все множество от 10 до 80 для газа и для других каналов от 120 и до 180 - бесполезно
я вас правильно понял, на нормальном пульте будет как я написал. но в вие например АРМ можно сделать по отдельному каналу например, может и в куке можно…?
Пробовал ставить 1мс и 2мс . Газ 1мс и другие по 2мс. Не включается…
купите аппаратуру…
Видимо придется. Куплю, а там уже буду снимать показания с приемника и пытаться их воспроизвести.
по каналу питча 1000мкС по каналу рола 2000мкС
.
Крайние положения ручки = 1мс и 2мс. Четыре варианта крайнего положения двух каналов перебрать несложно. В чем вопрос?!
Предполагаю что вы ни так поняли меня. 1мс и 2 мс - это действительно крайнее положение ручки.
Но мне конкретно нужно что-то вроде этого)
Начинаю думать, что наверно действительно стоит приобрести пульт с приемником…
вожна длительность каждого, и с хорошей точностью… плюс минус 4 мкС вызывают дёргание сервы
а 4 мкС это погрешность ардуиновской библиотеки micros()
подергивание действительно есть. небольшое, но есть…
хотелось бы узнать, нужна ли синхронизация импульсов с каждого канала ПРИЕМНИКА? или приемник обычно выдает просто ШИМ на выходе ИЗ КАЖДОГО КАНАЛА уже заранее раскодировав сигнал?
Надо посмотреть какие стандартные значения используются в куке для арминга (“вправо-низ” думаю что это оно, хотя с куком не знаком) и такие же выдавать в каналы.
А как это можно посмотреть? Будь у меня пульт и приемник - я бы знал какие значения должны быть, но увы)
ТОлько вот заведете Вы моторы, а дальше что?
Есть Трансиверы NRF24L01 2.4GHz. С их помощью можно соединить два контроллера. Написать программку для управления с компьютера не сложно будет если разберусь с работой данной платы)
Один канал с приёмника действительно можно рассматривать как ШИМ с длительностью импульса от от 1 до 2мс и периодом повторения 20мс
Да) Так у меня и задача стоит такая, что бы с ардуино у меня шло 4 ШИМа и ими я бы регулировал работу платы.
Возникает такой вопрос: должны ли эти 4 ШИМа быть синхронизированы или плате важна лишь длинна импульса каждого сигнала?
T.S. в библиотеке ардуино есть стандартная библиотека Servo используйте её, вполне адекватно работает, для ленивых arduino.ru/Reference/Library/Servo
Именно ею и пользуюсь) но вся проблема в том чтобы подобрать такие значения, с помощью этой библиотеки, чтобы плата подумала что я отклонил ручку управления “вправо-низ”.
Как бы ШИМ - широтно-импульсная модуляция, напряжение всегда одно и тоже, только оно либо есть либо нет. Почитайте про ШИМ, желательно наверное не википедию, я там нихрена не понял, и про принципы работы сервопривода/сервомашинки.
Это я понимаю. Но оно либо есть, либо его нет только в отдельный момент времени. И чем дольше (чем дольше рабочий цикл) оно есть тем ближе значение напряжения будет к тому что возникает в отдельный взятый момент. Ведь так?)
Читал тут arduino.ru/Tutorial/PWM
Нет, не правильно понимаете, почитайте тут www.rcdesign.ru/articles/radio/tx_intro
Тут у нас уже несколько каналов.
С приемника с отдельного канала подается только один сигнал.
Так будет выглядеть сигнал с одного канала приемника?
Или Вы не правильно выразились или Вам надо учить матчасть, в частности что такое ШИМ.
Вот я и пытаюсь разобраться. При помощи ШИМ мы можем регулировать напряжение которое легко померить и которым можно производить управление. Или же тут имеет большее значение длительность циклов?
Спасибо большое! Думаю эта информация должна помочь. Завтра проверю)
А потом что, когда взлетит?
Есть Трансиверы NRF24L01 2.4GHz. С их помощью можно соединить два контроллера. Написать программку для управления с компьютера не сложно будет если разберусь с работой данной платы)
Здравствуйте форумчане. Помогите разобраться.
В наличии есть вот такой контроллер.
Проблема в том что у меня нет приемника и пульта радиоуправления. Но есть Arduino UNO. С его помощью я пытаюсь обмануть контроллер и подать на те разъемы где должен быть приемник ШИМ. Для активации платы необходимо эмулировать перемещение стика в крайне правое-нижнее положение. Какое должно быть напряжение (ШИМ) на управляющих пинах при отклонении стика в данное положение?