Управление без радиуправления.
Здравствуйте форумчане. Помогите разобраться.
В наличии есть вот такой контроллер.
Проблема в том что у меня нет приемника и пульта радиоуправления. Но есть Arduino UNO. С его помощью я пытаюсь обмануть контроллер и подать на те разъемы где должен быть приемник ШИМ. Для активации платы необходимо эмулировать перемещение стика в крайне правое-нижнее положение. Какое должно быть напряжение (ШИМ) на управляющих пинах при отклонении стика в данное положение?
Центр - 1.5мс.
Примерно как-то так, если я правильно понял вопрос.
PS: Контроллер я бы купил другой, этот устарел года на 3 😃 Откуда только народ такой антиквариат добывает…
Для активации платы необходимо эмулировать перемещение стика в крайне правое-нижнее положение.
А потом что, когда взлетит?
Может человек к конкурсу КРОКа готовится 😃
Спасибо большое! Думаю эта информация должна помочь. Завтра проверю)
А потом что, когда взлетит?
Есть Трансиверы NRF24L01 2.4GHz. С их помощью можно соединить два контроллера. Написать программку для управления с компьютера не сложно будет если разберусь с работой данной платы)
Какое должно быть напряжение (ШИМ) на управляющих пинах при отклонении стика в данное положение?
Или Вы не правильно выразились или Вам надо учить матчасть, в частности что такое ШИМ.
Или Вы не правильно выразились или Вам надо учить матчасть, в частности что такое ШИМ.
Вот я и пытаюсь разобраться. При помощи ШИМ мы можем регулировать напряжение которое легко померить и которым можно производить управление. Или же тут имеет большее значение длительность циклов?
При помощи ШИМ мы можем … и которым можно производить управление.
Нет, не правильно понимаете, почитайте тут www.rcdesign.ru/articles/radio/tx_intro
Как бы ШИМ - широтно-импульсная модуляция, напряжение всегда одно и тоже, только оно либо есть либо нет. Почитайте про ШИМ, желательно наверное не википедию, я там нихрена не понял, и про принципы работы сервопривода/сервомашинки.
Как бы ШИМ - широтно-импульсная модуляция, напряжение всегда одно и тоже, только оно либо есть либо нет. Почитайте про ШИМ, желательно наверное не википедию, я там нихрена не понял, и про принципы работы сервопривода/сервомашинки.
Это я понимаю. Но оно либо есть, либо его нет только в отдельный момент времени. И чем дольше (чем дольше рабочий цикл) оно есть тем ближе значение напряжения будет к тому что возникает в отдельный взятый момент. Ведь так?)
Читал тут arduino.ru/Tutorial/PWM
Нет, не правильно понимаете, почитайте тут www.rcdesign.ru/articles/radio/tx_intro
Тут у нас уже несколько каналов.
С приемника с отдельного канала подается только один сигнал.
Так будет выглядеть сигнал с одного канала приемника?
Гуглить нужно PPM (Pulse-position modulation)
Так будет выглядеть сигнал с одного канала приемника?
Нет, не так. Один канал с приёмника действительно можно рассматривать как ШИМ с длительностью импульса от от 1 до 2мс и периодом повторения 20мс, но несколько каналов должны быть синхронизированы.
T.S. в библиотеке ардуино есть стандартная библиотека Servo используйте её, вполне адекватно работает, для ленивых arduino.ru/Reference/Library/Servo
делал и совтовый шим на ардуино, если надо скину проект, только там нужно таймер задействовать. в библиотеке всё вполне норм работает.
Один канал с приёмника действительно можно рассматривать как ШИМ с длительностью импульса от от 1 до 2мс и периодом повторения 20мс
Да) Так у меня и задача стоит такая, что бы с ардуино у меня шло 4 ШИМа и ими я бы регулировал работу платы.
Возникает такой вопрос: должны ли эти 4 ШИМа быть синхронизированы или плате важна лишь длинна импульса каждого сигнала?
T.S. в библиотеке ардуино есть стандартная библиотека Servo используйте её, вполне адекватно работает, для ленивых arduino.ru/Reference/Library/Servo
Именно ею и пользуюсь) но вся проблема в том чтобы подобрать такие значения, с помощью этой библиотеки, чтобы плата подумала что я отклонил ручку управления “вправо-низ”.
или плате важна лишь длинна импульса каждого сигнала?
вожна длительность каждого, и с хорошей точностью… плюс минус 4 мкС вызывают дёргание сервы
а 4 мкС это погрешность ардуиновской библиотеки micros()
Именно ею и пользуюсь) но вся проблема в том чтобы подобрать такие значения, с помощью этой библиотеки, чтобы плата подумала что я отклонил ручку управления “вправо-низ”.
Надо посмотреть какие стандартные значения используются в куке для арминга (“вправо-низ” думаю что это оно, хотя с куком не знаком) и такие же выдавать в каналы. ТОлько вот заведете Вы моторы, а дальше что?
вожна длительность каждого, и с хорошей точностью… плюс минус 4 мкС вызывают дёргание сервы
а 4 мкС это погрешность ардуиновской библиотеки micros()
подергивание действительно есть. небольшое, но есть…
хотелось бы узнать, нужна ли синхронизация импульсов с каждого канала ПРИЕМНИКА? или приемник обычно выдает просто ШИМ на выходе ИЗ КАЖДОГО КАНАЛА уже заранее раскодировав сигнал?
Надо посмотреть какие стандартные значения используются в куке для арминга (“вправо-низ” думаю что это оно, хотя с куком не знаком) и такие же выдавать в каналы.
А как это можно посмотреть? Будь у меня пульт и приемник - я бы знал какие значения должны быть, но увы)
ТОлько вот заведете Вы моторы, а дальше что?
Есть Трансиверы NRF24L01 2.4GHz. С их помощью можно соединить два контроллера. Написать программку для управления с компьютера не сложно будет если разберусь с работой данной платы)
А как это можно посмотреть? Будь у меня пульт и приемник - я бы знал какие значения должны быть, но увы)
Почитать ветку про кук контроллер, полагаю что там должно быть это
(“вправо-низ” думаю что это оно,
по каналу питча 1000мкС по каналу рола 2000мкС
приемник обычно выдает просто ШИМ на выходе ИЗ КАЖДОГО КАНАЛА уже заранее раскодировав сигнал?
так и есть… на каждом канале свой “чистый” сигнал.
хотелось бы узнать, нужна ли синхронизация импульсов с каждого канала ПРИЕМНИКА? или приемник обычно выдает просто ШИМ на выходе ИЗ КАЖДОГО КАНАЛА уже заранее раскодировав сигнал?
А как это можно посмотреть? Будь у меня пульт и приемник - я бы знал какие значения должны быть, но увы)
Синхронизация импульсов каналов между собой не требуется. Главное - длительность импульса. На каждом канале приемника длительность импульса пропорциональна положению ручки передатчика. Крайние положения ручки = 1мс и 2мс. Четыре варианта крайнего положения двух каналов перебрать несложно. В чем вопрос?!
по каналу питча 1000мкС по каналу рола 2000мкС
.
Крайние положения ручки = 1мс и 2мс. Четыре варианта крайнего положения двух каналов перебрать несложно. В чем вопрос?!
Предполагаю что вы ни так поняли меня. 1мс и 2 мс - это действительно крайнее положение ручки.
Но мне конкретно нужно что-то вроде этого)
Начинаю думать, что наверно действительно стоит приобрести пульт с приемником…
Кук он ведь доступен в исходниках. Можете просто отключить арминг движков при включении, это должно быть несложно. Правда взлететь это Вам не поможет, действительно быстрее купить пульт чем сделать и отладить полноценное управление с компа.
Предполагаю что вы ни так поняли меня.
я вас правильно понял, на нормальном пульте будет как я написал. но в вие например АРМ можно сделать по отдельному каналу например, может и в куке можно…?
В вие тоже АРМ не сделать одним каналом, должны быть соблюдены условия, как то газ в нуле, датчики откалиброваны, коптер находится не под углом, и т.д. и КУК без управления руками (аппой) никуда не полетит, ну разве что в хозяина, оставте вы это дело от греха подальше, разберитесь (по написанному) как оно работает (по какаим принципам) и купите аппаратуру…
я вас правильно понял, на нормальном пульте будет как я написал. но в вие например АРМ можно сделать по отдельному каналу например, может и в куке можно…?
Пробовал ставить 1мс и 2мс . Газ 1мс и другие по 2мс. Не включается…
купите аппаратуру…
Видимо придется. Куплю, а там уже буду снимать показания с приемника и пытаться их воспроизвести.
для ардуино есть библиотека Servo. Ею элементарно просто вы можете повторить сигнал канала приемника.
myservo.write(0); - “ручка в нуле”
myservo.write(255); - “ручка на максимуме” .
Смотрите примеры.