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

Orangeshotman
serenya:

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

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

UserM:

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


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

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

UserM

Гуглить нужно PPM (Pulse-position modulation)

Orangeshotman:

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

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

puh21

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

делал и совтовый шим на ардуино, если надо скину проект, только там нужно таймер задействовать. в библиотеке всё вполне норм работает.

Orangeshotman
UserM:

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

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

puh21:

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

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

puh21
Orangeshotman:

или плате важна лишь длинна импульса каждого сигнала?

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

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

serenya
Orangeshotman:

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

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

Orangeshotman
puh21:

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

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

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

serenya:

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

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

serenya:

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

Orangeshotman:

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

serenya
Orangeshotman:

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

Почитать ветку про кук контроллер, полагаю что там должно быть это

puh21
serenya:

(“вправо-низ” думаю что это оно,

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

Orangeshotman:

приемник обычно выдает просто ШИМ на выходе ИЗ КАЖДОГО КАНАЛА уже заранее раскодировав сигнал?

так и есть… на каждом канале свой “чистый” сигнал.

TeHoTaMy
Orangeshotman:

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

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

Orangeshotman
puh21:

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

.

TeHoTaMy:

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

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

DVE

Кук он ведь доступен в исходниках. Можете просто отключить арминг движков при включении, это должно быть несложно. Правда взлететь это Вам не поможет, действительно быстрее купить пульт чем сделать и отладить полноценное управление с компа.

puh21
Orangeshotman:

Предполагаю что вы ни так поняли меня.

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

SergDoc

В вие тоже АРМ не сделать одним каналом, должны быть соблюдены условия, как то газ в нуле, датчики откалиброваны, коптер находится не под углом, и т.д. и КУК без управления руками (аппой) никуда не полетит, ну разве что в хозяина, оставте вы это дело от греха подальше, разберитесь (по написанному) как оно работает (по какаим принципам) и купите аппаратуру…

Orangeshotman
puh21:

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

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

SergDoc:

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

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

Dynamitry

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

Orangeshotman
Dynamitry:

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

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

UserM
Orangeshotman:

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

Дык, не правильно, газ 1мс, направление (YAW) 2мс, а остальные 1.5мс (т.е. среднее значение).

Orangeshotman
UserM:

Дык, не правильно, газ 1мс, направление (YAW) 2мс, а остальные 1.5мс (т.е. среднее значение).

Да! Получилось!)
Огромное спасибо всем за помощь)

sashaNar

Ардуина по умолчанию своей библиотекой крутит серву на 180 градусов, так что значения “угла” для регулей надо подбирать свои. Вроде как от 60 до 120, не помню.

gorbln
Orangeshotman:

Есть Трансиверы NRF24L01 2.4GHz

Я, конечно, понимаю, что 2 доллара - это не 70 за аппу. Но вы в курсе параметров этих трансиверов?
мощность - 0 dBm - это 1 mW. То есть - ну, пару метров, если повезёт - 10.

Если чешутся руки и возникает стойкое отвращение к готовым приёмопередатчикам - присмотритесь к модулям RFM22.

Вот, например.