Tartalomjegyzék:

A legegyszerűbb Arduino VESC monitor: 4 lépés
A legegyszerűbb Arduino VESC monitor: 4 lépés

Videó: A legegyszerűbb Arduino VESC monitor: 4 lépés

Videó: A legegyszerűbb Arduino VESC monitor: 4 lépés
Videó: Clock Shield для Arduino, собери себе часы, пятничный DIY 2024, Július
Anonim
A legegyszerűbb Arduino VESC monitor
A legegyszerűbb Arduino VESC monitor

Szia, Ebben a projektben egyszerű VESC monitort készítünk. Ez hasznos lehet, ha figyelni szeretné a hőmérsékletét, és olyan problémákat szeretne megtudni, mint a Vesc túlmelegedésem (amit csak ezzel a monitorral tudtam meg), vagy egyszerűen használhatja a kijelző táblához vagy a kormányhoz való rögzítéséhez, és figyelheti a sebességét, futásteljesítmény, akkumulátor százalékos arány és még sok más. Tehát menjünk bele az építésbe!

1. lépés: Alkatrészek

Alkatrészek
Alkatrészek
Alkatrészek
Alkatrészek

1. - Arduino (UNO -t használok, de bármilyen más táblát is használhat, beleértve az esp8266 vagy esp32)

2. - néhány kábel a csatlakoztatáshoz (próbálja megtalálni a csatlakozót a vesc csatlakozójához, mert sokkal könnyebb lesz 1 nagy csatlakozót kihúzni, mint sok kis kábelt)

3. - kijelző (124 x 32 Oled -et használok, de bármit használhat a könyvtár megváltoztatásával)

4. - opcionális - kenyérlap (ez azoknak szól, akik nem akarnak forrasztani, vagy azoknak, akik ideiglenesen meg akarják csinálni)

5. - USB kábel az arduino készülékéhez

2. lépés: Az alkatrészek összekapcsolása

Az alkatrészek összekapcsolása
Az alkatrészek összekapcsolása
Az alkatrészek összekapcsolása
Az alkatrészek összekapcsolása
Az alkatrészek összekapcsolása
Az alkatrészek összekapcsolása

kijelző: Vcc - 3.3V

Gnd - Gnd

Sck (vagy scl) A5 -re

Sda - A4

VESC: 5V Vesc -től Vinig az Arduino -n

Gnd - Gnd

RX a VESC -n a TX -re az Arduino -n

TX a VESC -ről az RX -re az Arduino -n

3. lépés: A kód feltöltése és módosítása tetszés szerint

KÓD:

/** 2020 kód Lukas Janky VESC monitor Oled kijelzővel Ha valamit meg kell kérdeznie, lépjen kapcsolatba velem a [email protected] e -mail címen vagy az utasításaimon. Remélem, hogy ez segíteni fog.

*/

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

VescUart UART;

int rpm; úszó feszültség; úszó áram; int hatalom; úszó amfór; úszó tach; úszó távolság; lebegési sebesség; úszó wattóra; úszó ütési százalék;

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

void setup () {

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

/ ** UART port beállítása (Serial1 az Atmega32u4 -en)*/ // Serial1.begin (19200); míg (! Sorozat) {;}

/ ** Adja meg, hogy mely portokat használja UART*/ UART.setSerialPort (& Serial);

}

void loop () {

////////// Értékek olvasása ////////// if (UART.getVescValues ()) {

rpm = (UART.adata.rpm)/7; // A '7' a motor pólusainak száma. A legtöbb motor 14 pólusú, ezért 7 pólusú feszültség = (UART.data.inpVoltage); jelenlegi = (UART.data.avgInputCurrent); teljesítmény = feszültség*áram; amphour = (UART.data.ampHours); wattóra = amfór*feszültség; tach = (UART.data.tachometerAbs)/42; // A '42' a motorpólusok száma szorozva 3 távolsággal = tach*3,142*(1/1609)*0,72*(16/185); // Motor fordulatszáma x Pi x (1/ méter mérföldben vagy km -ben) x Kerékátmérő x (motortárcsa/ tárcsa) sebesség = fordulat/ perc*3,142*(60/1609)*0,72*(16/185); // Motor fordulatszáma x Pi x (másodperc percben / méter mérföldben) x Kerékátmérő x (motortárcsa / tárcsa) batpercentage = ((feszültség-38,4) / 12)*100; // ((Akkumulátor feszültsége - minimális feszültség) / cellák száma) x 100

}

////////// Filter ////////// // kiszámítja a becsült értéket a Kalman Filter float powerfiltered segítségével = Filter1.updateEstimate (teljesítmény);

display.fillScreen (0); display.setCursor (10, 5); display.setTextColor (1); display.setTextSize (1); kijelző.nyomtatás (feszültség);

display.setCursor (10, 20); display.setTextColor (1); display.setTextSize (1); display.print (teljesítmény);

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 (aktuális); display.display ();

késleltetés (50);

}

A kívánt kód bármely értékét módosíthatja és megjelenítheti

4. lépés: Ellenőrizze, hogy működik -e

Ellenőrzés, hogy működik -e
Ellenőrzés, hogy működik -e
Ellenőrzés, hogy működik -e
Ellenőrzés, hogy működik -e
Ellenőrzés, hogy működik -e
Ellenőrzés, hogy működik -e

Most, amikor ellenőrzi, hogy működik -e, ideje forrasztani, és címkéket hozzáadni az értékekhez, például Volt vagy Amper. Forrasztja az arduino nanóra, így kisebb lesz, vagy akár más arduino -val is továbbíthatja a távirányítóra. de ehhez sok más oktatóanyag is rendelkezésre áll (keresés az értékeket továbbító arduino segítségével). Remélem, hogy ez segített megoldani a problémát, vagy szép kis telemetriát csinálni.

Ajánlott: