Obsah:

Nejjednodušší monitor Arduino VESC: 4 kroky
Nejjednodušší monitor Arduino VESC: 4 kroky

Video: Nejjednodušší monitor Arduino VESC: 4 kroky

Video: Nejjednodušší monitor Arduino VESC: 4 kroky
Video: Lesson 4: What are Binary, Decimal, Hexadecimal and Octal Number, Arduino Serial Monitor | Robojax 2024, Listopad
Anonim
Nejjednodušší monitor Arduino VESC
Nejjednodušší monitor Arduino VESC

Ahoj, v tomto projektu uděláme snadný monitor VESC. To by bylo užitečné, pokud chcete sledovat svoji teplotu a zjistit problémy, jaké jsem měl s přehříváním Vesc (což jsem zjistil právě u tohoto monitoru), nebo jej můžete použít jednoduše k připevnění displeje na desku nebo řídítka a sledovat rychlost, počet najetých kilometrů, procento baterie a mnoho dalších. Pojďme tedy do stavby!

Krok 1: Díly

Díly
Díly
Díly
Díly

1. - Arduino (používám UNO, ale můžete také použít jakoukoli jinou desku včetně esp8266 nebo esp32)

2. - některé kabely pro připojení (zkuste najít konektor pro váš konektor pro vesc, protože bude mnohem snazší odpojit 1 velký konektor oproti spoustě malých kabelů)

3. - displej (používám 124 x 32 Oled, ale můžete použít jakýkoli jiný změnou knihovny)

4. - volitelně - prkénko (to je pro lidi, kteří nechtějí pájet nebo pro ty, kteří to chtějí dělat dočasně)

5. - USB kabel pro vaše arduino

Krok 2: Spojení dílů dohromady

Spojení dílů dohromady
Spojení dílů dohromady
Spojení dílů dohromady
Spojení dílů dohromady
Spojení dílů dohromady
Spojení dílů dohromady

displej: Vcc až 3,3V

Gnd to Gnd

Sck (nebo scl) do A5

Sda do A4

VESC: 5V od Vesc po Vin na Arduinu

Gnd to Gnd

RX na VESC až TX na Arduinu

TX na VESC až RX na Arduinu

Krok 3: Nahrání a úprava kódu podle vašich preferencí

KÓD:

/** 2020 kód od Lukáše Jankyho Monitor VESC s Oledovým displejem Pokud se mě potřebujete na cokoli zeptat, kontaktujte mě na [email protected] nebo na mých instruktážích. Doufám, že vám to pomůže.

*/

#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; plovoucí napětí; plovoucí proud; int síla; float amphour; float tach; plovoucí vzdálenost; plovoucí rychlost; float watthour; plovoucí batpercentage;

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

neplatné nastavení () {

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

/ ** Nastavení portu UART (Serial1 na Atmega32u4)*/ // Serial1.begin (19200); while (! Serial) {;}

/ ** Definujte, které porty chcete použít jako UART*/ UART.setSerialPort (& Serial);

}

prázdná smyčka () {

////////// Přečíst hodnoty ////////// if (UART.getVescValues ()) {

rpm = (UART.data.rpm)/7; // '7' je počet párů pólů v motoru. Většina motorů má 14 pólů, proto 7 pólových párů napětí = (UART.data.inpVoltage); aktuální = (UART.data.avgInputCurrent); výkon = napětí*proud; amphour = (UART.data.ampHours); watthour = amphour*napětí; tach = (UART.data.tachometerAbs)/42; // '42' je počet pólů motoru vynásobený 3 vzdálenostmi = tach*3,142*(1/1609)*0,72*(16/185); // Otáčky motoru x Pi x (1/ metr v míli nebo km) x Průměr kola x (řemenice motoru/ kladka) rychlost = ot/ min*3,142*(60/1609)*0,72*(16/185); // Otáčky motoru x Pi x (sekundy za minutu / metry v míli) x Průměr kola x (kladka / kladka motoru) batpercentage = ((napětí-38,4) / 12)*100; // ((Napětí baterie - minimální napětí) / počet článků) x 100

}

////////// Filtr ////////// // vypočítat odhadovanou hodnotu pomocí Kalmanova filtru Float powerfiltered = Filter1.updateEstimate (power);

display.fillScreen (0); display.setCursor (10, 5); display.setTextColor (1); display.setTextSize (1); display.print (napětí);

display.setCursor (10, 20); display.setTextColor (1); display.setTextSize (1); display.print (napájení);

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

display.setCursor (10, 55); display.setTextColor (1); display.setTextSize (1); display.print (aktuální); display.display ();

zpoždění (50);

}

Můžete upravit a zobrazit libovolnou hodnotu z požadovaného kódu

Krok 4: Kontrola, zda funguje

Kontrola, zda funguje
Kontrola, zda funguje
Kontrola, zda funguje
Kontrola, zda funguje
Kontrola, zda funguje
Kontrola, zda funguje

Nyní, když zkontrolujete, zda funguje, je čas na jeho pájení a přidání štítků k vašim hodnotám, jako jsou volty nebo zesilovače. Pájejte ho na arduino nano, takže bude menší, nebo jej dokonce můžete přenášet s jiným arduinem na dálkový ovladač. ale k tomu je mnoho dalších návodů (vyhledávání přenášející hodnoty pomocí arduina). Doufám, že vám to pomohlo vyřešit váš problém nebo vytvořit pěknou malou telemetrii Vesc.

Doporučuje: