Мазмұны:

Ең оңай Arduino VESC мониторы: 4 қадам
Ең оңай Arduino VESC мониторы: 4 қадам

Бейне: Ең оңай Arduino VESC мониторы: 4 қадам

Бейне: Ең оңай Arduino VESC мониторы: 4 қадам
Бейне: Робототехника Arduino комплектиси 2024, Қараша
Anonim
Ең оңай Arduino VESC мониторы
Ең оңай Arduino VESC мониторы

Сәлем, Бұл жобада біз VESC мониторын оңай жасаймыз. Егер сіз температураңызды бақылап, менің Vesc қызып кетуім сияқты проблемаларды білгіңіз келсе (мен оны дәл осы мониторда білдім) немесе оны дисплейді тақтаға немесе рульге бекіту және жылдамдығыңызды бақылау үшін қолдануға болады., жүгіріс, батареяның пайызы және тағы басқалар. Ендеше, құрылысқа кірісейік!

1 -қадам: бөлшектер

Бөлшектер
Бөлшектер
Бөлшектер
Бөлшектер

1. - Arduino (Мен UNO қолданамын, бірақ сіз кез келген басқа тақтаны пайдалана аласыз, оның ішінде esp8266 немесе esp32)

2. - қосуға арналған кейбір кабельдер (vesc коннекторының коннекторын табуға тырысыңыз, себебі үлкен кабельдерге қарағанда 1 үлкен қосқышты ажырату әлдеқайда жеңіл болады)

3. - дисплей (мен 124 x 32 Oled қолданамын, бірақ сіз кітапхананы өзгерту арқылы кез келгенін қолдана аласыз)

4. - қосымша - нан тақтасы (бұл дәнекерлегісі келмейтіндерге немесе уақытша жасағысы келетіндерге арналған)

5. - Сіздің arduino үшін USB кабелі

2 -қадам: бөлшектерді бір -біріне қосу

Бөлшектерді біріктіру
Бөлшектерді біріктіру
Бөлшектерді біріктіру
Бөлшектерді біріктіру
Бөлшектерді біріктіру
Бөлшектерді біріктіру

дисплей: кернеу 3.3В дейін

Gnd - Gnd

A5 дейін тексеріңіз (немесе scl)

S4 - A4

VESC: 5V Весктен Ардуинодағы Винге дейін

Gnd - Gnd

RES VESC -тен Arduino -ға TX

VESC бойынша TX - Arduinoдағы RX

3 -қадам: Сіздің қалауыңыз бойынша кодты жүктеу және өзгерту

КОД:

/** 2020 коды Лукас Янки VESC мониторы Oled дисплейімен Егер сізге бірдеңе сұрау қажет болса, [email protected] электронды поштасына немесе менің нұсқаулықтарыма хабарласыңыз. Бұл сізге көмектеседі деп үміттенемін.

*/

#қосу #қосу #қосу #қосу #қосу #қосу #қосу #ЭКРАНДЫҢ ЕҢДІГІН 128 анықтау #SCREEN_HEIGHT 64 анықтау #OLED_RESET 4 Adafruit_SSD1306 дисплейін анықтау (SCREEN_WIDTH, SCREEN_HEIGHT, & BIGHT)

VescUart UART;

int rpm; өзгермелі кернеу; өзгермелі ток; ішкі қуат; жүзу амфуры; жүзу тақасы; жүзу қашықтығы; жүзу жылдамдығы; суда жүзу; қалқып жүру пайызы;

SimpleKalmanFilter сүзгісі1 (2, 2, 0.01);

жарамсыз орнату () {

Serial.begin (115200); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.fillScreen (0); display.display ();

/ ** UART портын орнату (Serme1 Atmega32u4 жүйесінде)*/ // Serial1.begin (19200); while (! сериялық) {;}

/ ** Қандай порттарды UART ретінде пайдалану керектігін анықтаңыз*/ UART.setSerialPort (& Serial);

}

void loop () {

////////// Мәндерді оқу ///////// if (UART.getVescValues ()) {

айн/мин = (UART.data.rpm)/7; // '7' - қозғалтқыштағы полюстер жұптарының саны. Көптеген қозғалтқыштарда 14 полюс бар, сондықтан 7 полюсті жұп кернеуі = (UART.data.inpVoltage); ағымдағы = (UART.data.avgInputCurrent); қуат = кернеу*ток; amphour = (UART.data.ampHours); ваттур = амфор*кернеу; tach = (UART.data.tachometerAbs)/42; // '42' - қозғалтқыш полюстерінің саны 3 қашықтыққа көбейтілген = tach*3.142*(1/1609)*0.72*(16/185); // Қозғалтқыштың айналу жылдамдығы x Pi x (миля немесе км -де 1/ метр) x Дөңгелектің диаметрі х (қозғалтқыштың шкиві/ доңғалақ) жылдамдығы = айн/ мин*3,142*(60/1609)*0,72*(16/185); // Қозғалтқыш RPM x Pi x (минутта / секундта мильде) x Дөңгелектің диаметрі x (қозғалтқыш шкиві / доңғалақты дөңгелек) батпроцент = ((кернеу-38,4) / 12)*100; // ((Батарея кернеуі - минималды кернеу) / ұяшықтар саны) x 100

}

////////// Сүзгі ////////// // Kalman Filter қалқымалы сүзгі көмегімен есептелген мәнді есептеңіз powerfiltered = Filter1.updateEstimate (қуат);

display.fillScreen (0); display.setCursor (10, 5); display.setTextColor (1); display.setTextSize (1); баспа (кернеу);

display.setCursor (10, 20); display.setTextColor (1); display.setTextSize (1); көрсету.баспа (қуат);

display.setCursor (10, 40); display.setTextColor (1); display.setTextSize (1); көрсету.баспа (айн / мин);

display.setCursor (10, 55); display.setTextColor (1); display.setTextSize (1); display.print (ағымдағы); display.display ();

кешіктіру (50);

}

Сіз қалаған кодтан кез келген мәнді өзгерте және көрсете аласыз

4 -қадам: оның жұмыс істейтінін тексеру

Оның жұмыс істейтінін тексеру
Оның жұмыс істейтінін тексеру
Оның жұмыс істейтінін тексеру
Оның жұмыс істейтінін тексеру
Оның жұмыс істейтінін тексеру
Оның жұмыс істейтінін тексеру

Енді сіз оның жұмыс істеп тұрғанын тексергенде, оны дәнекерлеуге және вольт немесе ампер сияқты құндылықтарға белгілер қосуға уақыт келді. Оны arduino наноға дәнекерлеңіз, сондықтан ол кішірек болады немесе сіз оны басқа ардуиномен қашықтан басқару пультіне жібере аласыз. бірақ бұл үшін басқа да көптеген оқулықтар (arduino көмегімен мәндерді іздеу). Бұл сіздің мәселеңізді шешуге немесе кішкентай вескалық телеметрияны жасауға көмектесті деп үміттенемін.

Ұсынылған: