Kazalo:

Najlažji monitor Arduino VESC: 4 koraki
Najlažji monitor Arduino VESC: 4 koraki

Video: Najlažji monitor Arduino VESC: 4 koraki

Video: Najlažji monitor Arduino VESC: 4 koraki
Video: Lesson 02 Arduino IDE Software | Robojax Arduino Step By Step Course 2024, Julij
Anonim
Najlažji monitor Arduino VESC
Najlažji monitor Arduino VESC

Zdravo, v tem projektu bomo olajšali monitor VESC. To bi bilo koristno, če želite spremljati svojo temperaturo in ugotoviti težave, kot sem jih imel pri pregrevanju Vesca (kar sem ugotovil prav s tem monitorjem), ali pa ga preprosto uporabite za pritrditev zaslona na desko ali krmilo in pazite na hitrost, kilometrina, odstotek baterije in še veliko več. Pa pojdimo k gradnji!

1. korak: Deli

Deli
Deli
Deli
Deli

1. - Arduino (uporabljam UNO, lahko pa uporabite tudi katero koli drugo ploščo, vključno z esp8266 ali esp32)

2. - nekaj kablov za povezovanje (poskusite najti konektor za vaš konektor za vesc, ker bo veliko lažje odklopiti 1 velik priključek v primerjavi z veliko majhnimi kabli)

3. - zaslon (uporabljam 124 x 32 Oled, lahko pa uporabite katero koli drugo s spreminjanjem knjižnice)

4. - neobvezno - plošča (to je za ljudi, ki ne želijo spajkati, ali za tiste, ki to želijo začasno)

5. - USB kabel za vaš arduino

Korak: Povežite dele skupaj

Povezovanje delov skupaj
Povezovanje delov skupaj
Povezovanje delov skupaj
Povezovanje delov skupaj
Povezovanje delov skupaj
Povezovanje delov skupaj

Zaslon: Vcc do 3.3V

Gnd do Gnd

Sck (ali scl) na A5

Sda do A4

VESC: 5V od Vesca do Vina na Arduinu

Gnd do Gnd

RX na VESC v TX na Arduinu

TX na VESC v RX na Arduinu

3. korak: Nalaganje in spreminjanje kode po vaših željah

KODA:

/** koda 2020, ki jo je napisal Lukas Janky VESC monitor z zaslonom Oled Če me želite vprašati, me kontaktirajte na [email protected] ali na navodila. Upam, da vam bo to pomagalo.

*/

#include #include #include #include #include #include #include #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET 4 Zaslon Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire);

VescUart UART;

int rpm; plavajoča napetost; plavajoči tok; int moč; plavajoča amfra; plavajoči tach; plavajoča razdalja; plavajoča hitrost; plavajoča moč; odstotek plavajoče batper;

Filter SimpleKalmanFilter1 (2, 2, 0,01);

void setup () {

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

/ ** Nastavitev vrat UART (Serial1 na Atmega32u4)*/ // Serial1.begin (19200); while (! Serijsko) {;}

/ ** Določite, katera vrata želite uporabiti kot UART*/ UART.setSerialPort (& Serial);

}

void loop () {

//////////// Branje vrednosti ////////// if (UART.getVescValues ()) {

rpm = (UART.data.rpm)/7; // '7' je število parov polov v motorju. Večina motorjev ima 14 polov, zato je napetost 7 parov polov = (UART.data.inpVoltage); tok = (UART.data.avgInputCurrent); moč = napetost*tok; amphour = (UART.data.ampHours); vat = amfurna*napetost; tach = (UART.data.tachometerAbs)/42; // '42' je število polov motorja, pomnoženo s 3 razdaljo = tach*3.142*(1/1609)*0.72*(16/185); // O/ min motorja x Pi x (1/ metri v milji ali km) x Premer kolesa x (motorni jermenica/ jermenica) hitrost = vrt/ min*3,142*(60/1609)*0,72*(16/185); // število vrtljajev motorja x Pi x (sekunde v minuti / metri v milji) x premer kolesa x (jermenica motorja / kolesni jermen) odstotek obremenitve = ((napetost-38,4) / 12)*100; // ((Napetost akumulatorja - najmanjša napetost) / število celic) x 100

}

//////////// Filter ////////// // izračunamo ocenjeno vrednost s Kalman Filter float powerfiltered = Filter1.updateEstimate (moč);

display.fillScreen (0); display.setCursor (10, 5); display.setTextColor (1); display.setTextSize (1); display.print (napetost);

display.setCursor (10, 20); display.setTextColor (1); display.setTextSize (1); display.print (moč);

display.setCursor (10, 40); display.setTextColor (1); display.setTextSize (1); display.print (vrt / min);

display.setCursor (10, 55); display.setTextColor (1); display.setTextSize (1); display.print (trenutno); display.display ();

zamuda (50);

}

Iz kode lahko spremenite in prikažete poljubno vrednost

4. korak: Preverite, ali deluje

Preverjanje, če deluje
Preverjanje, če deluje
Preverjanje, če deluje
Preverjanje, če deluje
Preverjanje, če deluje
Preverjanje, če deluje

Zdaj, ko preverite, ali deluje, je čas, da ga spajkate in svojim vrednostim dodate oznake, kot so volti ali amperi. Spajkajte ga na arduino nano, tako da bo manjši ali pa ga celo prenesete z drugim arduinom na daljinski upravljalnik. vendar za to obstaja veliko drugih vadnic (iskanje oddajnih vrednosti z arduinom). Upam, da vam je to pomagalo rešiti vašo težavo ali narediti lepo telemetrijo vesc.

Priporočena: