Activity

Считывание ШИМ с радиоприемника
SovGVD:

Ага, оно BaronPilot называется, забыл, вот ссылка на проект www.elenafrancesco.org/old/arduino/baronpilot/
он невероятно старый, еще времен, когда multiwii был исключительно на WiiMOtionPlus, зато код чистый и там легко находится работа с аппой
вот тут можно посмотреть как у меня почти этот код используется github.com/SovGVD/…/rccamera.ino

Спасибо! BaronPilot и вправду помог. Код янтарно чистый)

Считывание ШИМ с радиоприемника
SovGVD:

Берем любой открытый проект, например Baron (самый простой), MultiWii или MegaPirateNG/Arducopter и нагло выковыриваем от туда код работы с приемником. (что я сделал кстаи для своей нажималки кнопки на фотике)

Первый раз слышу про Baron. Если от туда проще всего, то не затруднит ли вас дать ссылочку на его исходники? Поисковики на запрос Baron выдают уж очень много всего ненужного))

Считывание ШИМ с радиоприемника

Здравствуйте!
Мучаюсь какой день с такой вот проблемой:
Есть Atmega328p на платке для управления коптером (мультивишная), есть радиоприемник, есть пульт. Необходимо выводить по UART значение ШИМ поступающего с радиоприемника. Естественно решить задачу в лоб не получилось, а именно за счет функций digitalRead() и micros(). Значения всегда не точны и есть разборос. Как я понимаю это из-за погрешностей библиотек данных функций.
Итак вопрос:😒
Как грамотно реализовать считывание ШИМ (в мкс) на платах типа Arduino?

Управление без радиуправления.
Dynamitry:

для ардуино есть библиотека Servo. Ею элементарно просто вы можете повторить сигнал канала приемника.
myservo.write(0); - “ручка в нуле”
myservo.write(255); - “ручка на максимуме” .
Смотрите примеры.

Да. Только не 255, а 180.
Пробовал. Пытался подобрать значения так чтобы было похоже на нужное мне отклонение. Перебрал все множество от 10 до 80 для газа и для других каналов от 120 и до 180 - бесполезно

Управление без радиуправления.
puh21:

я вас правильно понял, на нормальном пульте будет как я написал. но в вие например АРМ можно сделать по отдельному каналу например, может и в куке можно…?

Пробовал ставить 1мс и 2мс . Газ 1мс и другие по 2мс. Не включается…

SergDoc:

купите аппаратуру…

Видимо придется. Куплю, а там уже буду снимать показания с приемника и пытаться их воспроизвести.

Управление без радиуправления.
puh21:

по каналу питча 1000мкС по каналу рола 2000мкС

.

TeHoTaMy:

Крайние положения ручки = 1мс и 2мс. Четыре варианта крайнего положения двух каналов перебрать несложно. В чем вопрос?!

Предполагаю что вы ни так поняли меня. 1мс и 2 мс - это действительно крайнее положение ручки.
Но мне конкретно нужно что-то вроде этого)
Начинаю думать, что наверно действительно стоит приобрести пульт с приемником…

Управление без радиуправления.
puh21:

вожна длительность каждого, и с хорошей точностью… плюс минус 4 мкС вызывают дёргание сервы

а 4 мкС это погрешность ардуиновской библиотеки micros()

подергивание действительно есть. небольшое, но есть…
хотелось бы узнать, нужна ли синхронизация импульсов с каждого канала ПРИЕМНИКА? или приемник обычно выдает просто ШИМ на выходе ИЗ КАЖДОГО КАНАЛА уже заранее раскодировав сигнал?

serenya:

Надо посмотреть какие стандартные значения используются в куке для арминга (“вправо-низ” думаю что это оно, хотя с куком не знаком) и такие же выдавать в каналы.

А как это можно посмотреть? Будь у меня пульт и приемник - я бы знал какие значения должны быть, но увы)

serenya:

ТОлько вот заведете Вы моторы, а дальше что?

Orangeshotman:

Есть Трансиверы NRF24L01 2.4GHz. С их помощью можно соединить два контроллера. Написать программку для управления с компьютера не сложно будет если разберусь с работой данной платы)

Управление без радиуправления.
UserM:

Один канал с приёмника действительно можно рассматривать как ШИМ с длительностью импульса от от 1 до 2мс и периодом повторения 20мс

Да) Так у меня и задача стоит такая, что бы с ардуино у меня шло 4 ШИМа и ими я бы регулировал работу платы.
Возникает такой вопрос: должны ли эти 4 ШИМа быть синхронизированы или плате важна лишь длинна импульса каждого сигнала?

puh21:

T.S. в библиотеке ардуино есть стандартная библиотека Servo используйте её, вполне адекватно работает, для ленивых arduino.ru/Reference/Library/Servo

Именно ею и пользуюсь) но вся проблема в том чтобы подобрать такие значения, с помощью этой библиотеки, чтобы плата подумала что я отклонил ручку управления “вправо-низ”.

Управление без радиуправления.
serenya:

Как бы ШИМ - широтно-импульсная модуляция, напряжение всегда одно и тоже, только оно либо есть либо нет. Почитайте про ШИМ, желательно наверное не википедию, я там нихрена не понял, и про принципы работы сервопривода/сервомашинки.

Это я понимаю. Но оно либо есть, либо его нет только в отдельный момент времени. И чем дольше (чем дольше рабочий цикл) оно есть тем ближе значение напряжения будет к тому что возникает в отдельный взятый момент. Ведь так?)
Читал тут arduino.ru/Tutorial/PWM

UserM:

Нет, не правильно понимаете, почитайте тут www.rcdesign.ru/articles/radio/tx_intro


Тут у нас уже несколько каналов.
С приемника с отдельного канала подается только один сигнал.

Так будет выглядеть сигнал с одного канала приемника?

Управление без радиуправления.
serenya:

Или Вы не правильно выразились или Вам надо учить матчасть, в частности что такое ШИМ.

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

Управление без радиуправления.
DVE:

Центр - 1.5мс.

Примерно как-то так, если я правильно понял вопрос.

PS: Контроллер я бы купил другой, этот устарел года на 3 😃 Откуда только народ такой антиквариат добывает…

Спасибо большое! Думаю эта информация должна помочь. Завтра проверю)

Smolett:

А потом что, когда взлетит?

Есть Трансиверы NRF24L01 2.4GHz. С их помощью можно соединить два контроллера. Написать программку для управления с компьютера не сложно будет если разберусь с работой данной платы)

Управление без радиуправления.

Здравствуйте форумчане. Помогите разобраться.
В наличии есть вот такой контроллер.

Проблема в том что у меня нет приемника и пульта радиоуправления. Но есть Arduino UNO. С его помощью я пытаюсь обмануть контроллер и подать на те разъемы где должен быть приемник ШИМ. Для активации платы необходимо эмулировать перемещение стика в крайне правое-нижнее положение. Какое должно быть напряжение (ШИМ) на управляющих пинах при отклонении стика в данное положение?