Контроллер для кордовых электричек
а это схема и чертеж кросс платы на любую Pro Mini
с номиналами радиодеталей все вроде правильно
Кросс плата EasyEDA.zip
С ПРОГРАММАТОРОМ ПОКА ИЩУ ПОСЛЕДНИЙ БАГ,
нашел и слегка напрягся. в общем от UART надо избавляться ((
помехи приводят к рассинхронизации, лишние биты рушат весь обмен,
даже простое ожидание, пока правятся данные приводит к сбою при записи.
ну или думать, как изменить обмен
вплоть до того, что передавать каждый байт данных из пакета двумя байтами,
первый с номером байта в пакете, второй сам байт ((
или на самом деле валить от UART в сторону i2c а еще лучше на ESP32
в общем, ошибка в том, что если просто подождать несколько минут,
то при записи данных из программатора в таймер вылезает ошибка.
причина в накапливающихся “данных” в буфере приема, по сути помех.
А как эти помехи туда попадают? В принципе мы подключились, считали , и отключились,редактируем, подключаемся и записываем, записали отключились. Или как то работает не так?
Второй вариант не хранить в программаторе ничего, а просто на нем отображать вводимые данные.
А как эти помехи туда попадают?
да х его з, этого я тоже пока не понимаю,
есть еще предположение, что в какой то момент в буфере приема таймера “зависает” байт или несколько,
сейчас буду прикручивать Софт сериал и смотреть что читает таймер от программатора.
Сегодня пол дня дома, буду ковырять дальше.
Или как то работает не так?
Примерно так, но физического отключения нет. Хотя на этапе корректировки вполне можно отключиться.
В общем есть мысль, чистить буферы перед началом обмена.
Но я же инициирую обмен со стороны программатора,
- отправляю команду на чтение,
- жду подтверждение,
- передаю данные,
- передаю контрольную сумму,
- жду ответ от программатора о получении пакета
- таймер присылает ответ - CRC ERROR.
Т.е. он принимает пакет, принимает переданную CRC сравнивает и видит ошибку приема.
Ни хрена не понимаю.
Если бы данных было мало, программатор бы не получил ответа и была ба ошибка тайм аута T/O ERROR
В общем прикручу USB-UART на свободные ноги и буду смотреть,
что конкретно принимает таймер от программатора
Источник ошибки обмена установлен и удален.
В архивах исправленные версия программатора и программы таймера
Programmer_v1.zip
Timer_for_Plane_v6.1_wo_Gyro.zip
Временные параметры пока ограничены 1800 секунд или 30 минут (так исторически сложилось)
Следующим номером нашей программы “вкрячивание” MPU6050
выглядеть будет примерно так
ая кросс плата
J3 и J4 точки подключения модуля MPU6050
вот такого
ZY MPU-6050
есть необходимость проверить гувернер на оборотах выше 9000,
на днях протравлю и распаяю новую кросс-плату, а старую, без гироскопа,
готов отправить в любую точку России почтой для тестирования
у меня просто нет мотора для тестирования на таких оборотах
Приветствую. Готов протестить ваш сетап по полной программе, главное чтобы был получен правильный результат.
Для этого нужно иметь
- Arduino Pro Mini любого формата типа такой 5V 16MHz
aliexpress.ru/item/1005006323591165.html?sku_id=12… - Arduino Uno - абсолютно любая версия
- LCD1602 + KeyPad, такая
aliexpress.ru/item/1005005312660267.html?sku_id=12…
Два последних, это программатор, что бы можно было менять настройки без подключения таймера к компьютеру.
В наличии из представленных деталей у нас ничего нет, но при необходимости всё можем заказать.
у нас ничего нет, но при необходимости всё можем заказать.
настройки можно и с компа поменять ), а потом прошить Ардуинку.
но для программирования Pro Mini потребуется еще USB-UART преобразователь.
хотя, прошить можно и с помощью UNO.
Понятно, разберёмся.
Заказал, жду детальки, соберу отпишусь по результатам.
А схема сборки всего этого в кучу в каком файлике лежит?
mini, USB2UART, nano, UNO+LCD_keypad_sheld и GY-521 есть в наличии.
Доброе утро всем.
Нет никакой особой схемы сборки.
LCD+KEY штатно ставится на UNO
кросс плата (это ее рисунок)
штатно ставится на Pro Mini, четыре угловые пины как раз по углам Pro Mini
К J1 присоединяются провода от фаз мотора
К J2 регулятор оборотов.
На новой версии кросс платы добавлен светодиод, кнопка и разъем для подключения внешней кнопки
Выглядит все это примерно так
Пяти пиновый разъем на Pro Mini для подключения программатора/
Через него же подключается USB-UART для прошивки
В выходные протестирую MPU-6050 и сделаю новую кросс-плату.
провел предварительный тест MPU-6050, в общем нужно предусмотреть калибровку гироскопа.
без калибровки, данные плывут сильно, с калибровкой, тоже плывут, но намного медленнее.
в идеале гироскоп надо будет калибровать перед каждым вылетом.
но в принципе хватит и одной калибровки на день.
при калибровке гироскоп должен находится горизонтально и неподвижно
от нескольких секунд до десятков, это как повезет.
Теперь по обработке изменения угла.
Вот статья от Гайвера
alexgyver.ru/arduino-mpu6050/?ysclid=lnnlcbtk8a954…
Получить данные от гироскопа получится не чаще 100 раз в секунду,
само получение данных и их “интерпретация” в теле программы занимает не меньше 2 мс.
кроме того, есть еще основная программа гувернера,
а значит корректировку по данным гироскопа получится делать не чаще 50 раз в секунду,
а лучше сделать 20-30 раз в секунду, что бы программа не “спотыкалась” об прерывания.
Вопрос, этого достаточно.
Скорее всего и расчет текущего значения оборотов программой гувернера стоит синхронизировать
с получением данных от гироскопа.