Виндузятникам посвящается.
Проект
https://github.com/sim-/tgy написан под AVRA, код полностью совместим с асмом атмела. Все что надо сделать в AVR Studio - создать новый проект визардом, указать проект тип - Atmel AVR assembler, выбрать проц - atmega8 (A, L по вкусу). Сохраниться. Подключить исходный код tgy.asm, открыть его, поиском найти: #include "tp.inc" и заменить его (или закомментировать ";" и добавить нужный ini) на нужный ini. Например на: #include "bs_nfet.inc"
Все ini файлы всех хоббийных контроллеров лежат в папке проекта. Находится нужный ini или по названию регулятора в файле " README.md" или эмпирическим путем. Лично мне проще прозвонить все контакты авр на новом контроллере (чтоб найти всякие доп. вкусняшки типа rs232 обьединенным с PPM сигналом регулятора или узнать, что есть аналоговый датчик напряжения аккумулятора). Все, компилим проект, если появились ошибки типа неподкл. m8def.inc, находим и подключаем вручную.
Теперь конфигурация, на примере хотелок Мура
мысли по допиливанию:
1. можно ему сделать реверс?
2. можно управлять командами, а не шимом?
3. можно максимальную скорость задрать до максимума?
4. можно куданибуть допаять светодиод, для индикации достижения нужных оборотов?
1.За реверс отвечает "RC_PULS_REVERSE" в tgy.asm. Ваш КО
.equ RC_PULS_REVERSE = 1 ; Enable RC-car style forward/reverse throttle
Можно добавить электронное торможение двигателем "MOTOR_BRAKE" (для car)
Можно ограничить стартовый пуск SLOW_THROTTLE (не палить контроллеры пока чайник)
2. Вот тут варианты. У всего проекта tgy тяжелое наследство PPM управления, если команды перестают поступать с опред. частотой, то контроллер выключит двигатель по "потеря сигнала". Это относится и к ppm (USE_INT0) и к уарт (USE_UART), i2c и spi не проверял но 99% тоже. Проще всего, например для уарт - посылать команды постоянно, ноги уарта для tgy растут из:
http://home.versanet.de/~b-konze/blc_6a/blc_6a.htmНаходится в тексте tgy.asm:
- Код: Выделить всё • Развернуть
; This is Bernhard's serial protocol implementation in the UART
; version here: http://home.versanet.de/~b-konze/blc_6a/blc_6a.htm
; This seems to be implemented for a project described here:
; http://www.control.aau.dk/uav/reports/10gr833/10gr833_student_report.pdf
; The UART runs at 38400 baud, N81. Input is ignored until _= 0xf5
; is received, вхере :) (пипец, почините форум) we start counting to MOTOR_ID, at which
; the received byte is used as throttle input. 0 is POWER_OFF,
; _= 200 is FULL_POWER.
Лично я пошел по пути выпиливания всего лишнего из кода, как-нибудь выложу, сейчас еще код не устаканен.
3. делается сооств. командой управления мощностью (говорю про уарт)
4. найти свободный пин (все пины контроллера обьявляются в соотв. ini) . Сам код - 2 строчки, когда начнешь крутить регуль, тогда допишем.
Советую начинать мучить регуль со стандартного PPM сигнала сервотестером или приемником. Отключить все уарты spi i2c, оставить только USE_INT0, кажись так во всех ini по умолчанию
- Код: Выделить всё • Развернуть
.equ USE_INT0 = 1
.equ USE_I2C = 0
.equ USE_UART = 0
.equ USE_ICP = 0
Кто начнет химичить с регулем подключенным к аккуму на 100C тот сам себе буратино, все меры предосторожности есть в ссылках и упоминались тут.
Писал по памяти, пробуйте, жгите, по мере поступления углей, буду корректировать пост.