INHOUDSOPGAWE:

Die maklikste Arduino VESC -monitor: 4 stappe
Die maklikste Arduino VESC -monitor: 4 stappe

Video: Die maklikste Arduino VESC -monitor: 4 stappe

Video: Die maklikste Arduino VESC -monitor: 4 stappe
Video: VESC firmware and configuration tutorial 2024, Julie
Anonim
Die maklikste Arduino VESC -monitor
Die maklikste Arduino VESC -monitor

Hi, in hierdie projek maak ons 'n maklike VESC -monitor. Dit sal handig wees as u u temperatuur wil monitor en probleme wil uitvind soos ek met my Vesc -oorverhitting gehad het (wat ek net met hierdie monitor agtergekom het), of u kan dit eenvoudig gebruik om die skerm aan u bord of stuur te koppel en na u spoed te kyk, kilometers, battery persentasie en nog vele meer. Laat ons dus begin bou!

Stap 1: Onderdele

Dele
Dele
Dele
Dele

1. - Arduino (ek gebruik UNO, maar u kan ook enige ander bord gebruik, insluitend esp8266 of esp32)

2. - 'n paar kabels om aan te sluit (probeer om 'n aansluiting vir u Vesc -aansluiting te vind, want dit sal baie makliker wees om 1 groot aansluiting teen baie klein kabels te ontkoppel)

3. - vertoon (ek gebruik 124 x 32 Oled, maar u kan enige ander gebruik deur biblioteek te verander)

4. - opsioneel - broodbord (dit is vir mense wat nie wil soldeer nie of vir diegene wat dit tydelik wil doen)

5. - USB -kabel vir u arduino

Stap 2: Koppel dele aan mekaar

Koppel dele aan mekaar
Koppel dele aan mekaar
Koppel dele aan mekaar
Koppel dele aan mekaar
Koppel dele aan mekaar
Koppel dele aan mekaar

skerm: Vcc tot 3.3V

Gnd tot Gnd

Sck (of scl) na A5

Sda tot A4

VESC: 5V van Vesc na Vin op Arduino

Gnd tot Gnd

RX op VESC na TX op Arduino

TX op VESC na RX op Arduino

Stap 3: Laai die kode op en verander dit volgens u voorkeur

KODE:

/** 2020 -kode deur Lukas Janky VESC -monitor met Oled -skerm As u my iets wil vra, kontak my op [email protected] of op my instruksies. Ek hoop dat dit u sal help.

*/

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

VescUart UART;

int rpm; dryfspanning; dryfstroom; int krag; dryf amfor; float tach; dryfafstand; dryfsnelheid; dryf watthour; vlot batpersentasie;

SimpleKalmanFilter Filter1 (2, 2, 0.01);

ongeldige opstelling () {

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

/ ** Stel UART -poort op (Serial1 op Atmega32u4)*/ // Serial1.begin (19200); terwyl (! Reeks) {;}

/ ** Definieer watter poorte u as UART*/ UART.setSerialPort (& Serial) moet gebruik;

}

leemte -lus () {

////////// Lees waardes ////////// if (UART.getVescValues ()) {

rpm = (UART.data.rpm)/7; // Die '7' is die aantal poolpare in die motor. Die meeste motors het 14 pole, dus 7 poolpare spanning = (UART.data.inpVoltage); huidige = (UART.data.avgInputCurrent); krag = spanning*stroom; amphour = (UART.data.ampHours); wattour = amphour*spanning; tach = (UART.data.tachometerAbs)/42; // Die '42' is die aantal motorpale vermenigvuldig met 3 afstand = tach*3.142*(1/1609)*0.72*(16/185); // Motor RPM x Pi x (1/ meter in myl of km) x Wieldiameter x (motor katrol/ katrol) snelheid = rpm*3.142*(60/1609)*0.72*(16/185); // Motor RPM x Pi x (sekondes in 'n minuut / meter in myl) x Wieldiameter x (motor katrol / wiel katrol) batpersentasie = ((spanning-38.4) / 12)*100; // ((Batteryspanning - minimum spanning) / aantal selle) x 100

}

////////// Filter //////////// bereken die beraamde waarde met Kalman Filter float powerfiltered = Filter1.updateEstimate (power);

display.fillScreen (0); display.setCursor (10, 5); display.setTextColor (1); display.setTextSize (1); vertoon.afdruk (spanning);

display.setCursor (10, 20); display.setTextColor (1); display.setTextSize (1); vertoon.afdruk (krag);

display.setCursor (10, 40); display.setTextColor (1); display.setTextSize (1); vertoon.afdruk (rpm);

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

vertraging (50);

}

U kan die waarde wat u wil hê, verander en vertoon

Stap 4: Kontroleer of dit werk

Kontroleer of dit werk
Kontroleer of dit werk
Kontroleer of dit werk
Kontroleer of dit werk
Kontroleer of dit werk
Kontroleer of dit werk

As u nou kyk of dit werk, is dit tyd om dit te soldeer en etikette by u waardes soos volt of ampère te voeg. Soldeer dit op arduino nano, sodat dit kleiner sal wees, of u kan dit selfs met ander arduino na u afstandsbediening stuur. maar daarvoor is baie ander tutoriale (soek die oordrag van waardes met arduino). Ek hoop dat dit u gehelp het om u probleem op te los of 'n mooi klein teleskopiese telemetrie te maak.

Aanbeveel: