avatar_verial

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

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

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

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

verial

У него получилось как и  меня очень давно, не подключил третий провод оставил в воздухе из за этого получил сильный удар в колесо и сгорели мосфеты.Могу только предположить что у ацп крышу сносит :-D
Каждый человек индивидум оставьте его в этом состоянии.

ЭФЭ

#37
Тестовый вариант устройства управления гироскутером с прошивкой от Viktor_7
Красный провод левого уарта (от греха подальше) отрезал от +12 и впаял к +3.3в. Разъём мамка к левому уарту отрезал от боковой платы гироскопа, т. к. один хер он ужу не нужен. Так же отрезал кнопку вкл, удлинил провод и к тумблер включения. Получилось компактно и ничего не болтается.






ЭФЭ

Подключение 3.3в к уарту и 9-контактное гнездо для оперативного перепрограммирования от Никлоса с гитхаба. https://github.com/Jan--Henrik/transpOtterNG/blob/master/Image/docs/connect_programming_jack.jpg

Степан Иванченко

Подскажите пожалуйста как управлять приводом по UART?
Прошил плату , поуправлял потенциометром , но не смог разобраться с командами для управления через UART.
Прошивку использовал модифицированную, на основе прошивки Никласа github.com/p-h-a-i-l/hoverboard-firmware-hack
я так понял, что я должен раскоментить контроль через UART протокол и есть ряд команд для его использования.
в файле protocol.c как я понял есть инфа про использование этого протокола + в Readme еще одной прошивки нашел команды , но не понял как их использовать.
github.com/btsimonh/hoverboard-firmware-hack тут лежат команды
Вообще хочется в идеале связать с arduino.



verial

1:345 2:1337 3:0 4:0 5:0 6:0 7:0 8:0\r\n
этот протокол вам ни о чем не говорит?
а вот эту строчку надо вписать в скетч ардуино
void loop(void)
Serial.write((uint8_t *) &steer, sizeof(steer));
Serial.write((uint8_t *) &speed, sizeof(speed));
delay(20);

Добавлено 01 Фев. 2019 в 07:43

Цитата: Сергей1952 от 31 Янв. 2019 в 16:39
Столкнулся с проблемой-не могу скомпилировать прошивку даже из исходных архивов В директории buld 74 файла в том числе нех нулевого размера а bin нет вообще. Делал все как на видио все директории  англицкие операционки ХР и Win7
Подскажите что делаю не так





Попытка скомпилировать архив с гитхаба


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

Сергей1952

Да единственное отличие у него директории в корне а у меня чуть глубже.

Степан Иванченко

Эти строчки видел, к сожалению под рукой не было 3.3 вольт ардуинки , использовал usb - uart переходник на ftdi. Пытался ей просто в компорт скормить что-нибудь , но не вышло. И да, в прошивке что я нашел два протокола , тот который вы показали и ещё один.  Погодите , 1:345 это уставка на мотор и ТД?

verial

там управление специфичное тоже пытался разобраться но не получилось просто в арде написал простенький скетч управление от джойстика и все.

Добавлено 01 Фев. 2019 в 11:56

Цитата: Сергей1952 от 01 Фев. 2019 в 10:38
Да единственное отличие у него директории в корне а у меня чуть глубже.
может из зи того что надо в корень, у меня все компилиться?
Каждый человек индивидум оставьте его в этом состоянии.

Сергей1952

#44
Попробую Попробовал-результат прежний! O_O
Проблема решена-It's definitely a problem with the latest toolchain. If you want something more recent: On Windows, the toolchain  6-2017-q1-update (6.3.1) doesn't have this problem (and I'm pretty sure 7.3.1 doesn't either).

Otherwise I'm hitting the same problem on Windows with gcc-arm-none-eabi-8-2018-q4-major (8.2.1), but it works on my Linux system. Using the 6.3.1 release of objcopy on the 8.2.1 output seems to work too. Если по русски то 8 версия глючит под видой.
Поставил 5-2016 года - все компилится.

verial

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

Сергей1952

https://yadi.sk/i/LZE25GEboKpxrQ Вот видио как  воткнуть видио в 4 мега доступные здесь я не представляю. 

ЭФЭ

Господа, как вам (нам) такое управление?

В одном из боковых плат имеется блютуз на микросхеме CC2541  управляемый GD32F130C6T6. Есть ли какая информация о связи по блютузу джойстика VR Box (собран на микросхеме ST17H26) c микросхемой CC2541?

Степан Иванченко

Verial, если не трудно, сбросьте скетч или пример управления с помощью ардуинки который у вас работает. Я так понимаю , переменная speed хранит скорость? Пытался ее в цикле просто для проверки увеличивать на единицу, чет не прокатило. И что подразумевает переменная steer.  К сожалению , опыта с ардуино не так много.

verial

void setup(){
Serial1.begin(19200);
  pinMode(0, INPUT);
  pinMode(1, INPUT);
  }

void loop(){
 
  int steer= analogRead(0);

steer=map(steer,100,650,-1000,1000);
constrain(steer, -1000,1000);

int speed=analogRead(1);

speed=map(speed,100,650,-1000,1000);
constrain(speed,-1000,1000);


  Serial1.write((uint8_t *) &steer, sizeof(steer));
     Serial1.write((uint8_t *) &speed, sizeof(speed));
    delay(20);

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

Степан Иванченко

Спасибо, делал примерно то же самое, буду ковырять.

Сергей1952

Ну вот у меня наконец поехало с джойстика в обе стороны и подруливание колесами враздрай Джойстик с центральным положением стика в файле  main.c нужно вставить 2 строки в секции управления через ацп
// ADC values range: 0-4095, see ADC-calibration in config.h
      cmd1 = CLAMP(adc_buffer.l_tx2 - ADC1_MIN, 0, ADC1_MAX) / (ADC1_MAX / 1000.0f);  // ADC1
      //cmd1 = (cmd1 - 500) * 2; // steer zero  in middle position
      cmd2 = CLAMP(adc_buffer.l_rx2 - ADC2_MIN, 0, ADC2_MAX) / (ADC2_MAX / 1000.0f);  // ADC2
      //cmd2 = (cmd2 - 500) * 2;
те которые помечены// Скорость регулируется  в файле config.h  SPEED_COEFFICIENT  -чем больше тем быстрее
STEER_COEFFICIENT меняет динамику поворота знак - в какую сторону будет поворот.
#define FILTER              0.05  // lower value == softer filter. do not use values <0.01, you will get float precision issues.
#define SPEED_COEFFICIENT   1  // higher value == stronger. 0.0 to ~2.0?
#define STEER_COEFFICIENT   -0.2  // higher value == stronger. if you do not want any steering, set it to 0.0; 0.0 to 1.0
Не трогайте
#define ADC1_MIN 0                // min ADC1-value while poti at minimum-position (0 - 4095)
#define ADC1_MAX 4095               // max ADC1-value while poti at maximum-position (0 - 4095)
#define ADC2_MIN 0                 // min ADC2-value while poti at minimum-position (0 - 4095)
#define ADC2_MAX 4095
Переменные глобальные поплывет контроль напряжения и температуры и может что-то еще
Я ребенку оставил коэффициенты рекомендованные для кресла. Под UARP у меня другой скетч в арду
Джойстик лучше использовать от радиоуправления -резисторы в закрытом исполнении и есть возможность коррекции 0 точки но и ардуиновский работает без проблем . Да пока насиловал контроллер столкнулся с проблемой - вылетают мосфеты -полудохлые АКБ и вмс вырубает батарею эдс в обмотках выносит мосфеты лечится защитным диодом в цепи питания-я поставил https://electrotransport.ru/go.php?url=aHR0cHM6Ly93d3cuY2hpcGRpcC5ydS9wcm9kdWN0LzEuNWtlNjhjYQ==
это оттестированые джойстики.
это скетч


kor

В bldc.c есть функция:
inline void blockPhaseCurrent(int pos, int u, int v, int *q)
которая похоже вызывается каждые 10мкс там-же в bldc.c :
blockPhaseCurrent(posl, adc_buffer.rl1 - offsetrl1, adc_buffer.rl2 - offsetrl2, &curl);
и возвращает новое значение переменной curl, (по падению напряжения на фетах расчитывает фазный ток левого мотора похоже). Далее использование этой переменной curl я нигде не нахожу. Выходит величина фазного тока не контролируется и не ограничивается, так ли это, подскажите кто знает?

verial

Ардуино не справилась со своими поставленными задачами перешел на stm32
пока идет тяжело упирается :pardon: мозг кипит но дело движется вперед.



Ну это атрибут внешней связи с роботом( пока в изучении).


довольно проходимая получилась платформа.
https://www.youtube.com/watch?v=DC2d-nitgi8
Каждый человек индивидум оставьте его в этом состоянии.