Полезная информация


avatar_verial

Программа для переделки гироскутера.

Автор verial, 23 Дек. 2018 в 08:29

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

verial

С измененым конструктивом плат очень мало не вижу смысла у себя это оставлять но проделали огромный труд тут молодцы.
В Москве Бой продают по 250-300 рублей и колеса по 500.
Каждый человек индивидум оставьте его в этом состоянии.

starik2000

   Небольшой отчет.  Может кому в дальнейшем пригодится.  Мне бы инфа пригодилась.
  Батарейка 10s8p емкость 16-17АЧ
Вес ездока 105кг.
Максимальная скорость 33кмч.
Под конец теста 26.
Проехал 14км, газ в пол без остановки. По прямой, асфальт.
И встал.  Но тут виной плата бмс. Перегрелась - сам виноват , крайне неправильно поставил.Это переделаю потом.
  На конец испытаний напряжения на плате гироскутера  под нагрузкой 33.5в, на акб 34.5в.
Спустя пол часа достал батарею и тестером акб 37.3 показало.

verial

#884
https://www.youtube.com/watch?v=aPKW-yHzyKU
Программа для контроллера   https://github.com/EmanuelFeru/hoverboard-firmware-hack-FOC/tree/4fbf2549c979eeebf393ff067568cf7e58425570

Программа для STM32
#define CONTROL_SERIAL_USART3
#define FEEDBACK_SERIAL_USART3
#define DEBUG_SERIAL_USART3
#define HOVER_SERIAL_BAUD   38400       // [-] Скорость передачи данных в Бодах для HoverSerial (используется для связи с ховербордом)
#define SERIAL_BAUD         115200      // [-] Скорость передачи данных для встроенного последовательного порта (используется для последовательного монитора)
#define START_FRAME         0xABCD      // [-] Определение начального кадра для надежной последовательной связи
#define TIME_SEND           100         // [ms] Интервал времени отправки
int d = 0;
int s = 300;
typedef struct {
  uint16_t start;
  int16_t  steer;
  int16_t  speed;
  uint16_t checksum;
} SerialCommand;
SerialCommand Command;
unsigned long TimeSend = 0;
// ########################## SETUP ##########################
void setup()
{
Serial1.begin(HOVER_SERIAL_BAUD);// настраиваем частоту канала
Serial2.begin(HOVER_SERIAL_BAUD);//  настраиваем частоту канала
}
// ########################## LOOP ##########################
void loop(void)
{
  unsigned long timeNow = millis();
  if (TimeSend > timeNow) return;                                                                     // Отправляйте команды каждые 100 мс
  TimeSend = timeNow + TIME_SEND;
Send(d,s);  // <---------------------------------------------- Send(Steer, Speed); -1000 bis +1000
}
// ########################## SEND ##########################
void Send(int16_t uSteer, int16_t uSpeed)
{
  // Создаем протокол- команду
  Command.start    = (uint16_t)START_FRAME;                                                                    // Начало
  Command.steer    = (int16_t)uSteer;                                                                                  // Поворот в градусах
  Command.speed    = (int16_t)uSpeed;                                                                               // Скорость
  Command.checksum = (uint16_t)(Command.start ^ Command.steer ^ Command.speed); //Делаем командную строку.

  // Непосредственно передача
  Serial1.write((uint8_t *) &Command, sizeof(Command));
  Serial2.write((uint8_t *) &Command, sizeof(Command));
}

Просто тестовая программа для проверки работоспособности и правильности вращения колес.
Каждый человек индивидум оставьте его в этом состоянии.

NaN


Тележка. Прошивка FOC, spd mode. Скорость задушена до 100 оборотов (так комфортно идти рядом и управлять) и 6 ампер на колесо. Speed и steering поставил одинаково 8192 (хз почему и как сильно оно отличается от других цифр, но решил что мне нужен одинаковый коэфф). При зажатом в макс газе при включении поворота телега два колеса стопорит, два колеса вращает в нужном направлении, поэтому продвижение вперед как бы стопорится, но зато удобно и безопасно. Сильно не хватает резины по злее, особенно, когда одно колесо повисает.

Balbes323

#886
Что-то мне подсказывает, провал 300 мс по напряжению плата тоже не увидит. Либо увидит, но проигнорирует. Там по измерению напряжения очень неплохой фильтр стоит, с такой же неплохой инерционностью. Имхо, нужно лог писать, только тогда понятно будет, что у него происходит.

Добавлено 27 Окт 2020 в 19:36

Вот видео, как реагирует плата на изменение напряжения. На дисплее то же значение, что и в usart3 летит.
https://vk.com/video7134404_456239085
Осталось 99%...

verial

Каждый человек индивидум оставьте его в этом состоянии.

Khankor

Подскажите, при заливке программы на плату выходит ошибка:
Error: libusb_open() failed with LIBUSB_ERROR_ACCESS
Error: open failed
Что может быть?

Balbes323

Программатору прошивку обновил? Попробуй шить прямо из visual studio code. Platformio поддерживает загрузку стлинком, при первой попытке он сам скачает и поставит все, что для этого нужно.
Осталось 99%...

Balbes323

У кого есть сложности с английским языком (я с вами). Я использую программу https://yandex.ru/turbo/4pda.ru/s/2020/07/03/372836/  не реклама, прошу не пинать, сам пользуюсь, т.к. с английским совсем хреново. В ней встроен переводчик с и на английский, значительно облегчает жизнь на буржуйском форуме.
Осталось 99%...

starik2000

Возникло дикое желание подключитт велокомпьютер к плате.
  Первая мысль была взять  минус и один из проводов с датчиков хола.
  Но там получается помойму 15 импульсов на оборот колеса.   Может кто в курсе, если на плате точка, где можно взять 1 импульс на оборот?

Я понимаю что к плате можно дисплей подключить.
Но геморроя с приданием этому всему гламурный вид, гораздо больше, чем 10$ , чем стоит хороший всепогодный велокомпьютер с подсветкой

Balbes323

Цитата: starik2000 от 17 Дек. 2020 в 12:56
  Но там получается помойму 15 импульсов на оборот колеса.   Может кто в курсе, если на плате точка, где можно взять 1 импульс на оборот?
Такой точки нет. Вариантов 3:
Перепрограммируй компьютер, записав длину за 1 импульс. Но это возможно не во всех.
Собери счётчик с выдачей импульсов 15:1, например, на аттини.
Допиши функцию в прошивку и выводи какие нужно импульсы в уарт или в порт программатора
Осталось 99%...

verial

Каждый человек индивидум оставьте его в этом состоянии.

kepp

кто смог разобраться ,как вывести все это на смартфон и как?




Добавлено 23 Дек. 2020 в 13:38

то что через блютуз адаптер понятно,а вот что поменять в коде и что за приложение для андроида,не понятно  :eureka: /:-)

Jenya_m

Цитата: Jenya_m от 24 Дек. 2020 в 16:45Да не работает так. Не пойму может в прошивке косяк.
Ну ткните носом уже как это сделать. Припаял  rx и gnd с правого uart к COM1.
Сам ком-порт  работает, символы возвращает.
#define DEBUG_SERIAL_USART3 это разкоментировал
//#define SIDEBOARD_SERIAL_USART3 1   а это закоментировал
//#define FEEDBACK_SERIAL_USART3               
прошивка слепилась, прошилась, колёса вертятся, а на ком-потре как помехи что-ли.

Jenya_m

Цитата: Dj.Ad от 21 Окт. 2020 в 18:02
нет не видно,
включил правое колесо, которое более менее понятно что как расписано, в режиме TRQ_MODE заработало))) но опять есть но, задаю 100 оборотов, с юарта он крутит 600

но момента прям ппц прибавилось и стартут мгновенно) поставил ограничение 10 и 12 А
#define I_MOT_MAX       10              // [A] Maximum single motor current limit
#define I_DC_MAX        12              // [A] Maximum stage2 DC Link current limit for Commutation and Sinusoidal types (This is the final current protection. Above this value, current chopping is applied. To avoid this make sure that I_DC_MAX = I_MOT_MAX + 2A)
#define N_MOT_MAX       1000 

как до 1000 то раскрутить?


с другим колесом явно проблема в перепутанных проводах, иил адресах холлов
Друг, как получить такую картинку с отладкой?

Dj.Ad

Цитата: Jenya_m от 25 Дек. 2020 в 02:18Друг, как получить такую картинку с отладкой?
это через ардуино( подключено к правому уарту, видимо это 3й) и открыт монитор порта

Dj.Ad

Цитата: Shadow_ru от 23 Окт. 2020 в 23:16И в режиме SPD можно посылать значения меньше 50 в управлении.
подскажи где отключить торможение колес, при нулевом задании скорости колеса заторможены и идет что то типа рекупирации, не уверен работаю от блока питания, а он то точно не умеет рекупирировать, но не суть, как мне отключить этот тормоз?

и да странная особенность, оригинальный архив с FOC режимом, если его собрать в режим SPD , то нифига он не работает, скачал другой архив FOC, на этой странице, собрал с управлением на уарт и SPD режим и он заработал, и старая плата видимо имеено из за этого не работала в этом режиме что изначально прошивка была где то косячная. это я еще купил пару гироскутеров, вот решил опять, и один даже раздобыл с контроллером STM(его пока не шил), второй GD и оба с драйверами полевиков на транзисторах

ну или может кто знает где отключить торможение колес?

kepp

Цитата: Dj.Ad от 27 Дек. 2020 в 12:35где отключить торможение колес?
возможно это?
или там где то рядом строчки
#define STANDSTILL_HOLD_ENABLE
Поможет включить функцию стояночного тормоза. После полной остановки и неактивной ручки акселератора наше транспортное средство будет невозможно сдвинуть с места, мотор-колеса будут сопротивляться, естественно в ущерб заряду батареи.