Obsah:

Najľahší monitor Arduino VESC: 4 kroky
Najľahší monitor Arduino VESC: 4 kroky

Video: Najľahší monitor Arduino VESC: 4 kroky

Video: Najľahší monitor Arduino VESC: 4 kroky
Video: ASUS má najľahší 14-palcový notebook a poznáme cenu herného smartfóna 2024, November
Anonim
Najľahší monitor Arduino VESC
Najľahší monitor Arduino VESC

Ahoj, v tomto projekte urobíme ľahký monitor VESC. To by bolo užitočné, keď chcete monitorovať svoju teplotu a zistiť problémy, ktoré som mal s prehriatím Vesc (čo som zistil práve pri tomto monitore), alebo ho môžete použiť jednoducho na pripevnenie displeja k doske alebo riadidlám a sledovanie rýchlosti, počet najazdených kilometrov, percento batérie a mnoho ďalších. Poďme teda do stavby!

Krok 1: Diely

Časti
Časti
Časti
Časti

1. - Arduino (používam UNO, ale môžete použiť aj akúkoľvek inú dosku vrátane esp8266 alebo esp32)

2. - niekoľko káblov na pripojenie (pokúste sa nájsť konektor pre váš konektor pre vesc, pretože bude oveľa jednoduchšie odpojiť 1 veľký konektor oproti mnohým malým káblom)

3. - displej (používam 124 x 32 Oled, ale môžete použiť akékoľvek iné zmenou knižnice)

4. - voliteľné - breadboard (toto je pre ľudí, ktorí nechcú spájkovať alebo pre tých, ktorí to chcú robiť dočasne)

5. - USB kábel pre vaše arduino

Krok 2: Spojenie dielov dohromady

Spojenie dielov dohromady
Spojenie dielov dohromady
Spojenie dielov dohromady
Spojenie dielov dohromady
Spojenie dielov dohromady
Spojenie dielov dohromady

displej: Vcc až 3,3V

Gnd to Gnd

Sck (alebo scl) do A5

Sda do A4

VESC: 5V od Vesc po Vin na Arduine

Gnd to Gnd

RX na VESC až TX na Arduino

TX na VESC až RX na Arduino

Krok 3: Nahranie a úprava kódu podľa vašich preferencií

KÓD:

/** 2020 kód od Lukáša Jankyho Monitor VESC s oledovým displejom Ak sa ma potrebujete na niečo opýtať, kontaktujte ma na [email protected] alebo na mojich pokynoch. Dúfam, ž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; plávajúce napätie; plavákový prúd; vnútorná sila; plaváková amfora; float tach; plaváková vzdialenosť; plaváková rýchlosť; plaváková watthodina; plavák batpercentage;

Filter filtra SimpleKalman1 (2, 2, 0,01);

neplatné nastavenie () {

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

/ ** Nastaviť port UART (Serial1 na Atmega32u4)*/ // Serial1.begin (19200); while (! Serial) {;}

/ ** Definujte, ktoré porty sa majú používať ako UART*/ UART.setSerialPort (& Serial);

}

prázdna slučka () {

////////// Čítanie hodnôt ////////// if (UART.getVescValues ()) {

otáčky za minútu = (UART.data.rpm)/7; // '7' je počet párov pólov v motore. Väčšina motorov má 14 pólov, preto napätie 7 dvojíc pólov = (UART.data.inpVoltage); aktuálne = (UART.data.avgInputCurrent); výkon = napätie*prúd; amphour = (UART.data.ampHours); watthour = amphour*napätie; tach = (UART.data.tachometerAbs)/42; // '42' je počet pólov motora vynásobený 3 vzdialenosťami = tach*3,142*(1/1609)*0,72*(16/185); // Otáčky motora x Pi x (1/ meter v míli alebo km) x Priemer kolesa x (remenice/ kladka motora) rýchlosť = ot/ min*3,142*(60/1609)*0,72*(16/185); // Otáčky motora x Pi x (sekundy za minútu / metre v míli) x Priemer kolesa x (kladka / kladka motora) batpercentage = ((napätie-38,4) / 12)*100; // ((Napätie batérie - minimálne napätie) / počet článkov) x 100

}

////////// Filter ////////// // // vypočítajte odhadovanú hodnotu pomocou Kalmanovho filtra float powerfiltered = Filter1.updateEstimate (power);

display.fillScreen (0); display.setCursor (10, 5); display.setTextColor (1); display.setTextSize (1); display.print (napätie);

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

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

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

oneskorenie (50);

}

Z kódu, ktorý chcete, môžete upraviť a zobraziť akúkoľvek hodnotu

Krok 4: Kontrola, či funguje

Kontrola, či to funguje
Kontrola, či to funguje
Kontrola, či to funguje
Kontrola, či to funguje
Kontrola, či to funguje
Kontrola, či to funguje

Teraz, keď skontrolujete, či funguje, je čas na jeho spájkovanie a pridanie štítkov k vašim hodnotám, ako sú volty alebo ampéry. Spájkujte ho na arduino nano, aby bol menší, alebo ho dokonca môžete prenášať s iným arduino na diaľkový ovládač. ale na to je mnoho ďalších návodov (hľadanie hodnôt prenášajúcich pomocou arduina). Dúfam, že vám to pomohlo vyriešiť váš problém alebo vytvoriť peknú malú Vesc telemetriu.

Odporúča: