Re: Радиоуправляемый кораблик своими руками.
Добавлено: Вс июн 21, 2020 16:39:28
самое удобное меню было у sashamelja... никаких переключателей и стоков. Только кнопки.
1- зашёл в меню,
2- выбрал что надо,
3- вышел из меню (всё сохранилось автоматом в EEPROM). Всё предельно просто и понятно))
Ну можно всё делать и через одну кнопку... это не принципиально.
Начальное положение добавить не проблема (в прошлых прошивках это было).
А как сделать отклонение сервы программно... я без понятия))
Серва работает на таймере:
ICR3H=0b00000100; // верхний предел 1250
ICR3L=0b11100010; // 500.000 Hz/50 Hz = 1250/8 имп = 1ms / 500 шаг. 1 шаг = 2 us.
OCR3AH=0b00000010; // серво -начальное 750 = 1,5 mc (1...2)
OCR3AL=0b11101110; // серво -начальное 750 = 1,5 mc (1...2)
TCCR3A=0b10000010; // быстрая ШИМ - OC3A - сброс при совпадении TCNT3 и OCR3A
TCCR3B=0b00011010; // 4 МГц/8=500.000 Hz
Как сделать таймер с плавной регулировкой длительности импульсов ? Причём линейной ! Наука пока не придумала))
Можно поставить дополнительно стикам подстроечный резистор и крутить вручную "расход" руля... будет почти линейно.
Или добавить график "расхода" руля программно... Но линейности не будет.
Проверь для начала свой GPS модуль.
1- Подключи к меги128 экран, кнопки и залей прошивку пульта sashamelja (см. выше).
2- Посмотри какая у тебя версия GPS и какая точность твоего GPS.
Добавлено after 2 minutes 30 seconds:
Должно быть примерно так (там ещё есть азимут... примерно): Добавлено after 35 minutes 21 second:
P.S.
1- Длительность импульсов можно менять с помощью таймера - программно, меняя коэффициент пересчёта таймера. Но плавности и линейности не будет.
2- Длительность импульсов можно менять с помощью таймера - аппаратно, меняя частоту таймера. Некоторые таймеры умеют работать от внешнего генератора. Будет всё плавно и линейно. Но нужен внешний генератор. Например такой: ))
1- зашёл в меню,
2- выбрал что надо,
3- вышел из меню (всё сохранилось автоматом в EEPROM). Всё предельно просто и понятно))
Ну можно всё делать и через одну кнопку... это не принципиально.
Начальное положение добавить не проблема (в прошлых прошивках это было).
А как сделать отклонение сервы программно... я без понятия))
Серва работает на таймере:
ICR3H=0b00000100; // верхний предел 1250
ICR3L=0b11100010; // 500.000 Hz/50 Hz = 1250/8 имп = 1ms / 500 шаг. 1 шаг = 2 us.
OCR3AH=0b00000010; // серво -начальное 750 = 1,5 mc (1...2)
OCR3AL=0b11101110; // серво -начальное 750 = 1,5 mc (1...2)
TCCR3A=0b10000010; // быстрая ШИМ - OC3A - сброс при совпадении TCNT3 и OCR3A
TCCR3B=0b00011010; // 4 МГц/8=500.000 Hz
Как сделать таймер с плавной регулировкой длительности импульсов ? Причём линейной ! Наука пока не придумала))
Можно поставить дополнительно стикам подстроечный резистор и крутить вручную "расход" руля... будет почти линейно.
Или добавить график "расхода" руля программно... Но линейности не будет.
Проверь для начала свой GPS модуль.
1- Подключи к меги128 экран, кнопки и залей прошивку пульта sashamelja (см. выше).
2- Посмотри какая у тебя версия GPS и какая точность твоего GPS.
Добавлено after 2 minutes 30 seconds:
Должно быть примерно так (там ещё есть азимут... примерно): Добавлено after 35 minutes 21 second:
P.S.
1- Длительность импульсов можно менять с помощью таймера - программно, меняя коэффициент пересчёта таймера. Но плавности и линейности не будет.
2- Длительность импульсов можно менять с помощью таймера - аппаратно, меняя частоту таймера. Некоторые таймеры умеют работать от внешнего генератора. Будет всё плавно и линейно. Но нужен внешний генератор. Например такой: ))