avatar_verial

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

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

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

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

verial




все это не мое а разработчика программы.

https://beta.ivc.no/wiki/index.php/Bobby_Car_Hoverboard_Upgrade

ветрогенератор из колеса от гироскутера
Идея утопическая вот здесь видео человека который мало мальски добился неких результатов
https://www.youtube.com/watch?v=LsNIfac0w7k
www.youtube.com/watch?time_continue=97&v=CReXwjuXxQ0

Этим опусом я начну и постараюсь довести до читателя полную структуру программы изменяющую гироскутер в любое иное изделие для нужд потребителя и вашей инженерной мысли.
Прежде всего хочу выразить благодарность за разработку а главное за выкладывание полной рабочей версии программы https://github.com/NiklasFauth
если вы знаете английский напишите ему мое спасибо буду очень вам признателен :-)
https://github.com/NiklasFauth/hoverboard-firmware-hack

Что может программа:
1. Управление от RC передатчика ppm-sum в этом случае работают два колеса не зависимо друг от друга (вперед, назад, вправо и в лево).


приемник подключается на прямую к контроллеру гироскутера.
https://www.youtube.com/watch?v=6N5pherI_90
https://youtu.be/DC2d-nitgi8
https://youtu.be/DwN6J3kJmpg
2. Управление от джойстика необходим джойстик от видеоигры плейстейшен. (вперед,назад, вправо и в лево).

https://www.youtube.com/watch?v=7CN5YMYpEIk&lc=UgwKWdpvHVZB72yG6WN4AaABAg
3. Управление переменным сопротивлением, вперед, назад и переключение скоростей информация предоставлена Viktor_7

https://electrotransport.ru/index.php?topic=35544.msg1432507#msg1432507

Подходит для самокатов и машинок можно ставить ограничение по скорости максимальная скорость 25 км час.
https://www.youtube.com/watch?v=ptQPcxOCI44
4. То что использую Я это управление arduino по протоколу uart.
https://www.youtube.com/watch?v=gKouvaMtdbg
5. Танковое управление от двух джойстиков организуется только при помощи двух контроллеров.
https://www.youtube.com/watch?v=xPtFhArhz-8
Выбирайте на ваше усмотрение.
Дальше больше  :exactly:

Сам контроллер гироскутера



Управление только ручкой газа.
Цель - из платы контроллера гироскутера сделать 2wd контроллер,вращение колес только в одном направлении без электронного или рекуперативного торможения и поддержания скорости с отпущенной ручкой газа,в дальнейшем из двух плат сделать 4wd.
Из известного мне:
1.NiklasFauth накодил hoverboard-firmware-hack.
2.На его основе EmanuelFeru создал hoverboard-firmware-hack(With SINUSOIDAL BLDC control. Offers much quieter and smoother motor operation.)
3.Продолжением стало hoverboard-firmware-hack-FOC.
4.Аппаратно советуют adc1 и adc2 притянуть к земле 100кОм резисторами.
5.Питание  органа управления брать с 3.3v ,садить на adc2.
6.Берем  FOC,ставим нужный софт и далее правим те файлы которые относятся лично к нам.
config.h(hoverboard-firmware-hack-FOC) - 507 строк
Строка 7,8
// ############################### VARIANT SELECTION ###############################
// PlatformIO: uncomment desired variant in platformio.ini
раскомментировал строку 13 ,студия подсвечивает что код все равно неактивный(почему?)
7.// ############################### DO-NOT-TOUCH SETTINGS ###############################
Тут явно просят не трогать таким как я.
8.// ############################### BATTERY ###############################
строка 68 это напряжение в миливольтах.
9.// ############################### TEMPERATURE ###############################
тут строки про температуру в цельсиях и  значениях интерпретированных для adc
10.// ############################### MOTOR CONTROL #########################
строки 128,129 тип управления мотором,и метода управления(синус не синус,моментом не моментом)
11.// Field Weakening / Phase Advance
строки 138-142 непонятны..
12./ ############################### DEBUG SERIAL ###############################
с этим разделом не понятно что делать(строки 192-198 исключить?)
13.// ############################### DEBUG LCD ###############################
Этот раздел по умолчанию исключен
14.// ################################# VARIANT_ADC SETTINGS ############################
  #define CONTROL_ADC                   // use ADC as input. disable CONTROL_SERIAL_USART2, FEEDBACK_SERIAL_USART2, DEBUG_SERIAL_USART2!
  // #define ADC_PROTECT_ENA               // ADC Protection Enable flag. Use this flag to make sure the ADC is protected when GND or Vcc wire is disconnected (Открыть для защиты пилота от  обрыва земли или питания)
  #define ADC_PROTECT_TIMEOUT 30        // ADC Protection: number of wrong / missing input commands before safety state is taken(Видимо значение времени для верхней строки)
  #define ADC_PROTECT_THRESH  400       // ADC Protection threshold below/above the MIN/MAX ADC values(разница в значении для определения обрыва?)
  // #define ADC1_MID_POT                  // ADC1 middle resting poti: comment-out if NOT a middle resting poti(открыть если есть центральное положение потенциометра)
  #define ADC1_MIN            0         // min ADC1-value while poti at minimum-position (0 - 4095)(Для чего  и как используется эта и две нижнии строки)
  #define ADC1_MID            2048      // mid ADC1-value while poti at minimum-position (ADC1_MIN - ADC1_MAX)
  #define ADC1_MAX            4095      // max ADC1-value while poti at maximum-position (0 - 4095)
  // #define ADC2_MID_POT                  // ADC2 middle resting poti: comment-out if NOT a middle resting poti(открыть если есть центральное положение потенциометра)
  #define ADC2_MIN            0         // min ADC2-value while poti at minimum-position (0 - 4095)(значение  напряжения положения ручки газа в отпущенном состоянии,выраженном как  4095/3300*на напряжение ручки газа  в миливольтах)
  #define ADC2_MID            2048      // mid ADC2-value while poti at minimum-position (ADC2_MIN - ADC2_MAX)(Это для чего?)
  #define ADC2_MAX            4095      // max ADC2-value while poti at maximum-position (0 - 4095)(значение  напряжения в максимальном положении ручки газа в ,выраженном как  4095/3300*на напряжение ручки газа  в миливольтах)




Так как программа написана на языке С++ ее надо скомпилировать для так сказать волшебного превращения в прошивку для контроллера гироскутера.
https://www.youtube.com/watch?v=uh2cceejSr4

рассмотрим настройку программы под свои проекты.
это файл в программе где вы делаете свои установки config.h

#pragma once
#include "stm32f1xx_hal.h"

// ############################### Менять данные запрещено 100% выход из строя контроллера ну или его не работа

#define PWM_FREQ         16000      // PWM частота 16 кГц
#define DEAD_TIME        32         // PWM deadtime

#define DELAY_IN_MAIN_LOOP 5        // in ms. default 5. it is independent of all the timing critical stuff. do not touch if you do not know what you are doing.

#define TIMEOUT          5          // number of wrong / missing input commands before emergency off

В верху шапка программы здесь менять ничего не рекомендуется
в низу само тело установки, рассмотрим его более детально.




// ############################### GENERAL ###############################

// How to calibrate: connect GND and RX of a 3.3v uart-usb adapter to the right sensor board cable (be careful not to use the red wire of the cable. 15v will destroye verything.). if you are using nunchuck, disable it temporarily. enable DEBUG_SERIAL_USART3 and DEBUG_SERIAL_ASCII use asearial terminal.

// Battery voltage calibration: connect power source. see <How to calibrate>. write value nr 5 to BAT_CALIB_ADC. make and flash firmware. then you can verify voltage on value 6 (devide it by 100.0 to get calibrated voltage).
#define BAT_CALIB_REAL_VOLTAGE        43.0       //   установить напряжение измеренное тестером на вашем аккумуляторе  (в данный момент используется 43 вольта)

#define BAT_CALIB_ADC                 1704       // BAT_CALIB_ADC -это калибровочный коэффициент для расчёта напряжения, т.е. число 1704 - это количество
                                                                          отсчётов, при подаче на вход делителя напряжения НАПРЯЖЕНИЯ = 43.0

#define BAT_NUMBER_OF_CELLS     10        // количество ячеек в аккумуляторе: 10s
#define BAT_LOW_LVL1_ENABLE     0         //   вкл/выкл звука при низком напряжении, 1 or 0
#define BAT_LOW_LVL1            3.6           //     пищит на этом уровне напряжения. [В/эл.]
#define BAT_LOW_LVL2_ENABLE     1     //       to beep or not to beep, 1 or 0
#define BAT_LOW_LVL2            3.5       //          your battery is almost empty. Charge now! [V/cell]
#define BAT_LOW_DEAD            3.37      //       undervoltage poweroff. (while not driving) [V/cell]

#define DC_CUR_LIMIT     15         // DC current limit in amps per motor. so 15 means it will draw 30A out of your battery. it does not disable motors, it is a soft current limit.

// Board overheat detection: the sensor is inside the STM/GD chip. it is very inaccurate without calibration (up to 45В°C). so only enable this funcion after calibration! let your board cool down. see <How to calibrate>. get the real temp of the chip by thermo cam or another temp-sensor taped on top of the chip and write it to TEMP_CAL_LOW_DEG_C. write debug value 8 to TEMP_CAL_LOW_ADC. drive around to warm up the board. it should be at least 20В°C warmer. repeat it for the HIGH-values. enable warning and/or poweroff and make and flash firmware.
#define TEMP_CAL_LOW_ADC        1655      // temperature 1: ADC value
#define TEMP_CAL_LOW_DEG_C      35.8      // temperature 1: measured temperature [В°C]
#define TEMP_CAL_HIGH_ADC       1588      // temperature 2: ADC value
#define TEMP_CAL_HIGH_DEG_C     48.9      // temperature 2: measured temperature [В°C]
#define TEMP_WARNING_ENABLE     0         // to beep or not to beep, 1 or 0, DO NOT ACTIVITE WITHOUT CALIBRATION!
#define TEMP_WARNING            60        // annoying fast beeps [В°C]
#define TEMP_POWEROFF_ENABLE    0         // to poweroff or not to poweroff, 1 or 0, DO NOT ACTIVITE WITHOUT CALIBRATION!
#define TEMP_POWEROFF           65        // overheat poweroff. (while not driving) [В°C]

#define INACTIVITY_TIMEOUT 8        // установка времени отключения если вы не используете включено устройство

// ############################### LCD DEBUG ###############################

Здесь вы включаете или выключаете работу дисплея ( дисплей 128х64 i2c ssd1306 или 1602 i2c
выводит  напряжение и обороты каждого колеса.

//#define DEBUG_I2C_LCD             // standard 16x2 or larger text-lcd via i2c-converter on right sensor board cable

// ############################### UART протокол ###############################

#define DEBUG_SERIAL_USART3         // PB10,PB11  disable if I2C (nunchuck or lcd) is used!
#define DEBUG_BAUD       115200     // UART
//#define DEBUG_SERIAL_SERVOTERM
#define DEBUG_SERIAL_ASCII          // "1:345 2:1337 3:0 4:0 5:0 6:0 7:0 8:0\r\n" сам протокол

// ############################### INPUT ###############################

// ###### CONTROL VIA UART (serial) ######
//#define CONTROL_SERIAL_USART2       // left sensor board cable, disable if ADC or PPM is used!

скорость передачи общения между контроллером и Ардуино
#define CONTROL_BAUD       19200    // control via usart from eg an Arduino or raspberry

эту строчку надо вписать в ваш скетч для управления ардуино.
// for Arduino, use void loop(void){ Serial.write((uint8_t *) &steer, sizeof(steer)); Serial.write((uint8_t *) &speed, sizeof(speed));delay(20); }

// ###### использование PPM-SUMM######
// left sensor board cable. Channel 1: steering, Channel 2: speed.
//#define CONTROL_PPM                 // use PPM-Sum as input. disable DEBUG_SERIAL_USART2!
//#define PPM_NUM_CHANNELS 6          // количество каналов

// ###### CONTROL VIA TWO POTENTIOMETERS ######
// ADC-calibration to cover the full poti-range: connect potis to left sensor board cable (0 to 3.3V) (do NOT use the red 15V wire in the cable!). see <How to calibrate>. turn the potis to minimum position, write value 1 to ADC1_MIN and value 2 to ADC2_MIN. turn to maximum position and repeat it for ADC?_MAX. make, flash and test it.
#define CONTROL_ADC                 // use ADC as input. disable DEBUG_SERIAL_USART2!
#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               // max ADC2-value while poti at maximum-position (0 - 4095)

// ###### CONTROL VIA NINTENDO NUNCHUCK ######
// left sensor board cable. keep cable short, use shielded cable, use ferrits, stabalize voltage in nunchuck, use the right one of the 2 types of nunchucks, add i2c pullups. use original nunchuck. most clones does not work very well.
//#define CONTROL_NUNCHUCK            // use nunchuck as input. disable DEBUG_SERIAL_USART3!

// ############################### DRIVING BEHAVIOR ###############################

// inputs:
// - cmd1 and cmd2: analog normalized input values. -1000 to 1000
// - button1 and button2: digital input values. 0 or 1
// - adc_buffer.l_tx2 and adc_buffer.l_rx2: unfiltered ADC values (you do not need them). 0 to 4095
// outputs:
// - speedR and speedL: normal driving -1000 to 1000
// - weakr and weakl: field weakening for extra boost at high speed (speedR > 700 and speedL > 700). 0 to ~400

#define FILTER              0.1  // lower value == softer filter. do not use values <0.01, you will get float precision issues.
#define SPEED_COEFFICIENT   0.5  // higher value == stronger. 0.0 to ~2.0?
#define STEER_COEFFICIENT   0.5  // higher value == stronger. if you do not want any steering, set it to 0.0; 0.0 to 1.0
#define INVERT_R_DIRECTION
#define INVERT_L_DIRECTION
#define BEEPS_BACKWARD 1    // 0 or 1

//Turbo boost at high speeds while button1 is pressed:
//#define ADDITIONAL_CODE \
if (button1 && speedR > 700) { /* field weakening at high speeds */ \
  weakl = cmd1 - 700; /* weak should never exceed 400 or 450 MAX!! */ \
  weakr = cmd1 - 700; } \
else { \
  weakl = 0; \
  weakr = 0; }

// ###### МАЛЕНЬКАЯ МАШИНКА ######
// for better bobbycar code see: https://github.com/larsmm/hoverboard-firmware-hack-bbcar
// #define FILTER              0.1
// #define SPEED_COEFFICIENT   -1
// #define STEER_COEFFICIENT   0

// #define ADDITIONAL_CODE \
if (button1 && speedR < 300) { /* drive backwards */ \
  speedR = speedR * -0.2f;   \
  speedL = speedL * -0.2f; } \
else { \
  direction = 1; } \
if (button1 && speedR > 700) { /* field weakening at high speeds */ \
  weakl = speedR - 600; /* weak should never exceed 400 or 450 MAX!! */ \
  weakr = speedR - 600; } \
else { \
  weakl = 0; \
  weakr = 0; }

// ###### КРЕСЛО ######
// #define FILTER              0.05
// #define SPEED_COEFFICIENT   0.5
// #define STEER_COEFFICIENT   -0.2

// #define ADDITIONAL_CODE if (button1 && scale > 0.8) { /* field weakening at high speeds */ \
  weakl = speedL - 600; /* weak should never exceed 400 or 450 MAX!! */ \
  weakr = speedR - 600; } \
else {\
  weakl = 0;\
  weakr = 0;

// ############################### VALIDATE SETTINGS ###############################

#if defined CONTROL_SERIAL_USART2 && defined CONTROL_ADC
  #error CONTROL_ADC and CONTROL_SERIAL_USART2 not allowed. it is on the same cable.
#endif

#if defined CONTROL_SERIAL_USART2 && defined CONTROL_PPM
  #error CONTROL_PPM and CONTROL_SERIAL_USART2 not allowed. it is on the same cable.
#endif

#if defined DEBUG_SERIAL_USART3 && defined CONTROL_NUNCHUCK
  #error CONTROL_NUNCHUCK and DEBUG_SERIAL_USART3 not allowed. it is on the same cable.
#endif

#if defined DEBUG_SERIAL_USART3 && defined DEBUG_I2C_LCD
  #error DEBUG_I2C_LCD and DEBUG_SERIAL_USART3 not allowed. it is on the same cable.
#endif

#if defined CONTROL_PPM && defined CONTROL_ADC && defined CONTROL_NUNCHUCK || defined CONTROL_PPM && defined CONTROL_ADC || defined CONTROL_ADC && defined CONTROL_NUNCHUCK || defined CONTROL_PPM && defined CONTROL_NUNCHUCK
  #error only 1 input method allowed. use CONTROL_PPM or CONTROL_ADC or CONTROL_NUNCHUCK.
#endif

есть еще один файл установки main  но он для продвинутых пользователей его я разберу позже.




забегу немного в перед эта прошивка https://github.com/btsimonh/hoverboard-firmware-hack работает с RPiZeroW платформа для робота.


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

ЭФЭ

#define BAT_CALIB_ADC                 1704       // adc-value measured by mainboard (value nr 5 on UART debug output)
Не совсем понятна эта строка. Калибровка батареи? Что означает цифра  1704  ?

verial

#2
Цитата: ЭФЭ от 24 Дек. 2018 в 16:32
#define BAT_CALIB_ADC                 1704       // adc-value measured by mainboard (value nr 5 on UART debug output)
Не совсем понятна эта строка. Калибровка батареи? Что означает цифра  1704  ?
АЦП максимум может выдать 4096 отчётов, которое равно максимальному напряжению 3,3 вольта, а 1704 это где-то 1,39 вольт на входе АЦП.
Каждый человек индивидум оставьте его в этом состоянии.

ЭФЭ

Если я правильно понял, - на 10 ноге STM32 происходит контроль АКБ через делители из сопротивлений 15кОм + 15кОм + 1кОм. При напряжении питания 43Вольта на десятой ноге контроллера окажется около 1.387 Вольт. (43/31=1,387).
Т.е. плату для калибровки придётся дважды прошивать? Сначала прошить авторский вариант, затем подать точную напругу 43 Вольт, через UART считать данные ADC, изменить значение BAT_CALIB_ADC в новый config  и повторно прошить?

ЭФЭ

Цитата: verial от 26 Дек. 2018 в 10:36я просто пишу данные аккумулятора там где указал за место 43 вольт и все.
Мало данных для калибровки. Для каждой материнской платы нужны индивидуальные калибровочные коэффициенты. Вчера полвечера переводил и гуглом и яндексом. Попробую объяснить.
1 подключить  адаптер UART-USB к контактам GND, RX, и 3.3 v. и программа terminal на компьютере. Раскрыть  DEBUG_SERIAL_USART3 и DEBUG_SERIAL_ASCII. Все аварийные режимы и и бипперы в конфиге в положение OFF или 0.
2 включить материнскую плату. Считанные терминальной программы данные прописать в BAT_CALIB_ADC , реальное напряжение на АКБ вписать в BAT_CALIB_REAL_VOLTAGE.
3: С помощью термопары или иных датчиков температуры замерить  температуру корпуса в цельсии, вписать в TEMP_CAL_LOW_DEG_C . Данные с терминальной программы вписать в TEMP_CAL_LOW_ADC .
Разогреть ( феном) корпус контроллера до 45..50 градусов и вписать реальную температуру в цельсиях и данные с терминальной программы в TEMP_CAL_HIGH_DEG_C и TEMP_CAL_HIGH_ADC соответственно.
_____
Т.к. корпус контроллера окружен радиатором, он же и будет являться температурным датчиком всего устройства. Для калибровки необходимо указать два значения, минимум ( комнатная температура) и макс ( разогретый феном до 45..50 гр.). Этого достаточно, чтобы программа сама вычислила предельную температуру в более 60 гр.
4: В случае применения аналоговой ручки газа или джойстика положение минимум и максимум вписать данные от терминальной программы в значении ADC1_MIN и ADC1_MAX соответственно.

verial

4: В случае применения аналоговой ручки газа или джойстика положение минимум и максимум вписать данные от терминальной программы в значении ADC1_MIN и ADC1_MAX соответственно.
использую только эти параметры остальное считаю малоэффективным.
Каждый человек индивидум оставьте его в этом состоянии.

ЭФЭ

#6
[user]verial[/user], да. Можно конечно выключить (программно) пищалку контроля аккума и от перегрева ( у автора они как раз отключены по умолчанию. Включаются после обязательной калибровки). Но, зато знать, как это можно включить и контролировать.
Ведь, разобрамшись в каждой строке конфига, это же за@бись.

Добавлено 27 Дек 2018 в 11:54

______
Пока я в качестве наблюдателя, т.к. в доме стройка и компьютер с гироскутером по разным углам.
Вопрос:
Что за терминальная программа к адаптеру  UART- USB? Дайте пожалуйста ссылку на почитать.

verial

Цитата: ЭФЭ от 27 Дек. 2018 в 11:49
[user]verial[/user], да. Можно конечно выключить (программно) пищалку контроля аккума и от перегрева ( у автора они как раз отключены по умолчанию. Включаются после обязательной калибровки). Но, зато знать, как это можно включить и контролировать.
Ведь, разобрамшись в каждой строке конфига, это же за@бись.

Добавлено 27 Дек 2018 в 11:54

______
Пока я в качестве наблюдателя, т.к. в доме стройка и компьютер с гироскутером по разным углам.
Вопрос:
Что за терминальная программа к адаптеру  UART- USB? Дайте пожалуйста ссылку на почитать.
http://digitalchip.ru/terminal-1-9b-rabotaem-s-com-portom
Каждый человек индивидум оставьте его в этом состоянии.

ЭФЭ

#8
Цитата: VITAMIN1 от 07 Янв. 2019 в 22:09Как именно реализована задняя скорость и лимит скоростей?
Задняя скорость включается путем замыкания ADC1 на общую (масса, GND) и активируется после установки ручку газа на минимум. И имеет пониженную максимальную скорость. Вместо переключателя скорости из резистивных делителей можно временно подключить один переменный резистор. Придётся лишь пометить на  на ручке четыре сектора (опытным путем). Включателя задней скорости в этом случае не уснанавливать. В минимальном положении ручки резистора и есть задний ход.

VITAMIN1

Тоесть там не на постоянную идет переключение. А просто импульс.


Вот ещё вопрос.
На плату насколько знаю нельзя вернуть стоковую прошивку.
Если плата прошита прошивкой одного программиста. Могут ли быть проблемы при прошивке на другую, изза того что управление спаяно под первую. ? Возврат к первой?

У меня сейчас управление с левого уарта, под педаль газа. Питание на педаль отведено с центра платы, там где программатор цепляется. Если попробовать чтото другое прошить будут проблемы?

BigMo велочоппер

verial

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

ЭФЭ

Цитата: VITAMIN1 от 09 Янв. 2019 в 12:11Странно. На данный момент у меня кроме курка к плате не подведено ничего.
Если ADC1 на воздухе, в моём случае работа была на второй скорости. Подключи два сопротивления по 1 кОм последовательно к 3.3v и массой. Средняя точка к входу ADC. Туда же и кнопку на массу. Будет максимальная скорость вперёд и задний ход кнопкой.

verial

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

ЭФЭ

[user]verial[/user], прошивка от Viktor_7. Если на входе ADC1  1/2Uпит. (делитель из двух одинаковых последовательных резистора) гироскутер имеет скорость с максимальным лимитом.

VITAMIN1

#14
[user]ЭФЭ[/user], я медик по образованию. В электричестве понимаю только схемы картинки)))

Про два сопротивления и их номинал понял. А вот куда цеплять и как нет.

И это наверное касается прошивки с гикхаба. У меня не она.

Сейчас нет свободной платы для эксперимента. Да и резисторов дома не валяется. Это минимум в чип и дип ехать. А со словами
Цитата: ЭФЭ от 09 Янв. 2019 в 20:45делитель из двух одинаковых последовательных резистора
меня продавцы наверное пошлют далеко. Резисторы то разные бывают. Это я как бы понимаю. К сожалению изза пробелов в образовании могу только четкие указания понимать, маневр невозможен(((
Сейчас используемая прошивка дает около 10-12кмч на 36в при весе болид+райдер около 40кг.

BigMo велочоппер

VITAMIN1

У меня подключение к левому уарту.

Минус ручки газа к четвертому проводу, сигнальный провод к второму проводу, а плюс ручки к +3.3 вольт на плате(из самого верхнего пина разъёма для программирования)
Вроде так
BigMo велочоппер

ЭФЭ

#16



Упрощённая схема включения ручки газа, кнопки "назад" и делителя на максимальную скорость для прошивки от Viktor_7.

verial

#17
1 ком +1 ком это минимальная скорость до 5 км час

так на верху у меня в посте фото как подключать от viktor-7 не пойму что там не понятного только это под его прошивку вперед и назад.
Один момент, схематическое решение должно быть обязательно привязано к программе а именно к файлу config если вы льете прошивку взятую из интернета то должна быть схема подключения если ее нет то у вас ничего не получиться максимум сожгете процессор так что давайте ссылку где вы скачали прошивку.
Каждый человек индивидум оставьте его в этом состоянии.