Мазмуну:

Эң оңой Arduino VESC монитору: 4 кадам
Эң оңой Arduino VESC монитору: 4 кадам

Video: Эң оңой Arduino VESC монитору: 4 кадам

Video: Эң оңой Arduino VESC монитору: 4 кадам
Video: Урок №1. Знакомство с Arduino. BeyondRobotics 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 -кадам: Бөлүктөрдү бирге туташтыруу

Бөлүктөрдү бириктирүү
Бөлүктөрдү бириктирүү
Бөлүктөрдү бириктирүү
Бөлүктөрдү бириктирүү
Бөлүктөрдү бириктирүү
Бөлүктөрдү бириктирүү

дисплей: VC 3.3V чейин

Гнддан Гндге

A5ке текшерүү (же scl)

Ададан А4ка чейин

VESC: 5V Vesc тартып Arduino боюнча Винге чейин

Гнддан Гндге

VXC боюнча RX Arduinoдогу TXке

VXC боюнча TX Arduinoдогу RXке

3 -кадам: Сиздин каалооңузга ылайыктуу кодду жүктөө жана өзгөртүү

КОД:

/** 2020 коду Лукас Янки VESC монитору менен Oled дисплейи Эгерде менден бир нерсе сураш керек болсо, [email protected] же менин көрсөтмөлөрүм боюнча мага кайрыл. Бул сизге жардам берет деп үмүттөнөм.

*/

#кошуу #кошуу #кошуу #кошуу #кошуу #кошуу #кошуу #экрандын кеңдигин аныктоо 128 #экрандын_бийиктигин аныктоо 64 #аныктоо OLED_RESET 4 Adafruit_SSD1306 дисплейи (SCREEN_WIDTH, SCREEN_HEIGHT, & WEIGHT;

VescUart UART;

int rpm; сүзүүчү чыңалуу; сүзүүчү ток; int power; сүзүүчү амфур; калкып жүрүүчү так; сүзүү аралыгы; сүзүү ылдамдыгы; сүзүү калкып чыгуучу пайыз;

SimpleKalmanFilter Filter1 (2, 2, 0.01);

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

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

/ ** UART портун орнотуу (Atmega32u4те Serial1)*/ // Serial1.begin (19200); while (! Сериялык) {;}

/ ** Кайсы портторду UART катары колдонууну аныктаңыз*/ UART.setSerialPort (& Serial);

}

void loop () {

////////// Эгерде баалуулуктарды окуңуз ///////// if (UART.getVescValues ()) {

rpm = (UART.data.rpm)/7; // '7' - мотордогу уюл жуптарынын саны. Көпчүлүк кыймылдаткычтарда 14 уюл бар, ошондуктан 7 уюл жуп чыңалуу = (UART.data.inpVoltage); учурдагы = (UART.data.avgInputCurrent); кубат = чыңалуу*ток; amphour = (UART.data.ampHours); watthour = амфур*чыңалуу; tach = (UART.data.tachometerAbs)/42; // '42' - бул 3 аралыкка көбөйтүлгөн мотор мамыларынын саны = tach*3.142*(1/1609)*0.72*(16/185); // Motor RPM x Pi x (миля же кмде 1/ метр) x Wheel диаметр x // Motor RPM x Pi x (мүнөт ичинде секунда / миляда) x Дөңгөлөктүн диаметри x (мотор шкив / дөңгөлөк) батперцент = ((чыңалуу-38,4) / 12)*100; // ((Батарея чыңалуусу - минималдуу чыңалуу) / клеткалардын саны) x 100

}

////////// Фильтр ////////// // Калман Фильтринин жардамы менен болжолдуу маанини эсептегиле float 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.print (rpm);

display.setCursor (10, 55); display.setTextColor (1); display.setTextSize (1); display.print (учурдагы); display.display ();

кечиктирүү (50);

}

Сиз каалаган коддон каалаган маанини өзгөртө жана көрсөтө аласыз

4 -кадам: Анын иштээрин текшерүү

Иштей тургандыгын текшерүү
Иштей тургандыгын текшерүү
Иштей тургандыгын текшерүү
Иштей тургандыгын текшерүү
Иштей тургандыгын текшерүү
Иштей тургандыгын текшерүү

Эми анын иштеп жаткандыгын текшергенде, аны ширетүү жана Вольт же Ампер сыяктуу баалуулуктарыңызга этикеткалар кошуу убактысы келди. Аны arduino наносуна ээрчиңиз, андыктан ал кичирээк болот же аны башка ардуино менен алыскы контролеруңузга өткөрүп бере аласыз. бирок бул үчүн башка көптөгөн окуу куралдары (arduino менен баалуулуктарды издөө). Бул сиздин көйгөйүңүздү чечүүгө же кичинекей веск телеметриясын түзүүгө жардам берди деп үмүттөнөм.

Сунушталууда: