Sommario:

Il monitor VESC Arduino più semplice: 4 passaggi
Il monitor VESC Arduino più semplice: 4 passaggi

Video: Il monitor VESC Arduino più semplice: 4 passaggi

Video: Il monitor VESC Arduino più semplice: 4 passaggi
Video: COLLEGARE E CONFIGURARE VESC *un tutorial veloce per uno skate veloce* 2024, Luglio
Anonim
Il monitor VESC Arduino più semplice
Il monitor VESC Arduino più semplice

Ciao, in questo progetto renderemo facile il monitor VESC. Questo sarebbe utile quando vuoi monitorare la tua temperatura e scoprire problemi come ho avuto con il surriscaldamento del mio Vesc (che ho scoperto proprio con questo monitor) o puoi usarlo semplicemente per attaccare il display alla tua tavola o al manubrio e guardare la tua velocità, chilometraggio, percentuale della batteria e molto altro. Quindi passiamo alla costruzione!

Passaggio 1: parti

Parti
Parti
Parti
Parti

1. - Arduino (sto usando UNO ma puoi anche usare qualsiasi altra scheda inclusa esp8266 o esp32)

2. - alcuni cavi per il collegamento (prova a trovare il connettore per il tuo connettore per Vesc perché sarà molto più facile scollegare 1 connettore grande rispetto a molti cavi piccoli)

3. - display (sto usando Oled 124 x 32 ma puoi usarne un altro cambiando libreria)

4. - opzionale - breadboard (per chi non vuole saldare o per chi vuole farlo temporaneamente)

5. - Cavo USB per il tuo arduino

Passaggio 2: collegare le parti insieme

Collegamento delle parti insieme
Collegamento delle parti insieme
Collegamento delle parti insieme
Collegamento delle parti insieme
Collegamento delle parti insieme
Collegamento delle parti insieme

display: Vcc a 3.3V

Gnd a Gnd

Sck (o scl) in A5

Sda in A4

VESC: 5V da Vesc a Vin su Arduino

Gnd a Gnd

RX su VESC a TX su Arduino

TX su VESC a RX su Arduino

Passaggio 3: caricamento e modifica del codice secondo le tue preferenze

CODICE:

/** Codice 2020 di Lukas Janky Monitor VESC con display Oled Se hai bisogno di chiedermi qualcosa, contattami su [email protected] o sui miei istruttori. Spero che questo ti aiuterà.

*/

#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 giri/min; tensione di galleggiamento; corrente di galleggiamento; potere int; amperora galleggiante; tachimetro galleggiante; distanza di galleggiamento; velocità del galleggiante; wattora galleggiante; percentuale di galleggiante;

SimpleKalmanFilter Filtro1(2, 2, 0,01);

void setup() {

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

/** Imposta la porta UART (Serial1 su Atmega32u4) */ // Serial1.begin(19200); mentre (!Serial) {;}

/** Definisce quali porte utilizzare come UART */ UART.setSerialPort(&Serial);

}

ciclo vuoto() {

////////// Leggi valori ////////// if (UART.getVescValues()) {

rpm = (UART.data.rpm)/7; // Il '7' è il numero di coppie di poli nel motore. La maggior parte dei motori ha 14 poli, quindi 7 coppie di poli tensione = (UART.data.inpVoltage); corrente = (UART.data.avgInputCurrent); potenza = tensione*corrente; amphour = (UART.data.ampHours); wattora = amperora*tensione; tach = (UART.data.tachometerAbs)/42; // Il '42' è il numero di poli del motore moltiplicato per 3 distanza = tach*3.142*(1/1609)*0.72*(16/185); // RPM motore x Pi x (1/metri in un miglio o km) x Diametro ruota x (puleggia motore/puleggia ruota) velocità = giri/min*3.142*(60/1609)*0.72*(16/185); // RPM motore x Pi x (secondi in un minuto / metri in un miglio) x Diametro ruota x (puleggia motore / puleggia) batpercentuale = ((tensione-38,4)/12)*100; // ((Tensione batteria - tensione minima) / numero di celle) x 100

}

////////// Filter ////////// // calcola il valore stimato con il filtro Kalman float powerfiltered = Filter1.updateEstimate(power);

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

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

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(corrente); display.display();

ritardo(50);

}

Puoi modificare e visualizzare qualsiasi valore dal codice che desideri

Passaggio 4: verificare se funziona

Verificando se funziona
Verificando se funziona
Verificando se funziona
Verificando se funziona
Verifica se funziona
Verifica se funziona

Ora, quando controlli se funziona, è il momento di saldarlo e aggiungere etichette ai tuoi valori come Volt o Ampere. Saldalo su arduino nano in modo che sia più piccolo o puoi persino trasmetterlo con altri arduino al tuo telecomando. ma per questo ci sono molti altri tutorial (ricerca trasmettendo valori con arduino). Spero che questo ti abbia aiutato a risolvere il tuo problema o a fare una bella telemetria vesc.

Consigliato: