Sadržaj:
- Korak 1: Dijelovi
- Korak 2: Povežite dijelove zajedno
- Korak 3: Otpremanje i izmjena koda prema vašim željama
- Korak 4: Provjerite radi li
Video: Najlakši Arduino VESC monitor: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Zdravo, u ovom projektu ćemo olakšati VESC monitor. Ovo bi bilo korisno kada želite pratiti svoju temperaturu i otkriti probleme kao što sam ja imao s pregrijavanjem Vesca (što sam otkrio upravo s ovim monitorom) ili ga možete koristiti jednostavno za pričvršćivanje zaslona na ploču ili upravljač i paziti na brzinu, kilometraža, postotak baterije i još mnogo toga. Pa idemo u zgradu!
Korak 1: Dijelovi
1. - Arduino (koristim UNO, ali možete koristiti i bilo koju drugu ploču, uključujući esp8266 ili esp32)
2. - neki kabeli za povezivanje (pokušajte pronaći konektor za vaš konektor za vesc jer će biti mnogo lakše odspojiti 1 veliki konektor u odnosu na puno malih kabela)
3. - ekran (koristim 124 x 32 Oled, ali možete koristiti bilo koji drugi promjenom biblioteke)
4. - opcionalno - matična ploča (ovo je za ljude koji ne žele lemljenje ili za one koji to žele privremeno)
5. - USB kabel za vaš arduino
Korak 2: Povežite dijelove zajedno
displej: Vcc do 3.3V
Gnd do Gnd
Sck (ili scl) prema A5
Sda do A4
VESC: 5V od Vesca do Vina na Arduinu
Gnd do Gnd
RX na VESC -u na TX na Arduinu
TX na VESC u RX na Arduinu
Korak 3: Otpremanje i izmjena koda prema vašim željama
KOD:
/** 2020 kod od Lukasa Jankyja VESC monitor sa Oled ekranom Ako me želite pitati bilo šta, kontaktirajte me na [email protected] ili na moje instrukcije. Nadam se da će vam ovo pomoći.
*/
#include #include #include #include #include #include #include #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 #define OLED_RESET 4 Adafruit_SSD1306 displej (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire;
VescUart UART;
int rpm; plivajući napon; plovna struja; int power; plutajući amfur; float tach; float distance; brzina plovka; float watthour; postotak koncentracije plovka;
SimpleKalmanFilter Filter1 (2, 2, 0.01);
void setup () {
Serial.begin (115200); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.fillScreen (0); display.display ();
/ ** Postavljanje UART porta (Serial1 na Atmega32u4)*/ // Serial1.begin (19200); while (! Serijski) {;}
/ ** Definirajte koje portove ćete koristiti kao UART*/ UART.setSerialPort (& Serial);
}
void loop () {{100} {101}
//////////// Pročitajte vrijednosti ////////// if (UART.getVescValues ()) {
rpm = (UART.data.rpm)/7; // '7' je broj parova polova u motoru. Većina motora ima 14 polova, stoga je napon 7 parova polova = (UART.data.inpVoltage); trenutna = (UART.data.avgInputCurrent); snaga = napon*struja; amphour = (UART.data.ampHours); vat = amfur*napon; tach = (UART.data.tachometerAbs)/42; // '42' je broj polova motora pomnožen sa 3 udaljenost = tach*3.142*(1/1609)*0.72*(16/185); // Obrtaji motora x Pi x (1/ metara u milji ili km) x Promjer kotača x (remenica motora/ remenica) brzina = o/ min*3,142*(60/1609)*0,72*(16/185); // Obrtaji motora x Pi x (sekunde u minuti / metri u milji) x Promjer kotača x (remenica motora / remenica) postotak snage = ((napon-38,4) / 12)*100; // ((Napon baterije - minimalni napon) / broj ćelija) x 100
}
//////////// Filter ////////// // izračunajte procijenjenu vrijednost pomoću Kalman Filter float powerfiltered = Filter1.updateEstimate (power);
display.fillScreen (0); display.setCursor (10, 5); display.setTextColor (1); display.setTextSize (1); display.print (napon);
display.setCursor (10, 20); display.setTextColor (1); display.setTextSize (1); display.print (napajanje);
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 (trenutno); display.display ();
kašnjenje (50);
}
Možete promijeniti i prikazati bilo koju vrijednost iz koda koji želite
Korak 4: Provjerite radi li
Sada kada provjerite radi li vrijeme je za njegovo lemljenje i dodavanje oznaka vašim vrijednostima poput volti ili pojačala. Lemite ga na arduino nano tako da će biti manji ili ga čak možete prenijeti s drugim arduinom na daljinski upravljač. ali za to postoje mnogi drugi vodiči (pretražujte vrijednosti prenošenja pomoću arduina). Nadam se da vam je ovo pomoglo u rješavanju vašeg problema ili u izradi lijepe male Vesc telemetrije.
Preporučuje se:
Najlakši kartonski USB upravljač: 6 koraka (sa slikama)
Najlakši kartonski USB upravljač: Budući da je karantena i da smo zaglavili kod kuće, često igramo video igre. Trkačke igre jedna su od najboljih igara ikad, ali korištenje tipkovnice postaje dosadno i mnogo je teže koristiti od vašeg Xbox ili PS kontrolera. Zbog toga sam odlučio da
Najlakši način da napravite robota za kontrolu pokreta: 7 koraka (sa slikama)
Najlakši način da napravite robota za kontrolu pokreta: Kontrolirajte igračke poput superheroja. Naučite kako napraviti automobil s pokretima. Ovdje se radi o tome kako sami napraviti automobil s pokretima. U osnovi ovo je jednostavna primjena troosnog žiroskopa MPU-6050, akcelerometra. Možete učiniti još mnogo toga
Najlakši način programiranja mikrokontrolera!: 9 koraka
Najlakši način programiranja mikrokontrolera !: Jeste li zanimljivi s mikrokontrolerom koji koristi mnogo manje energije? Danas ću vam predstaviti STM32 Ultra Low Power - L476RG, koji troši 4 puta manje energije od Arduino Mega i ima snažan Cortex procesor. Takođe neću
Najlakši otpadni mikroskop za mobitele: 4 koraka
Najlakši otpadni mikroskop za mobilne uređaje: Oduvijek sam bio fasciniran makro svijetom. A to što je dostupno jednostavno kao i na mobilnom telefonu mnogima je zanimljivo. Uspio sam uspjeti sa stvarima za koje vjerovatno smatrate da leže uokolo. Ono što vam treba: 1.Tapta (napisao je to samo da popuni stranicu x
Najlakši način da napravite kompaktno svjetlo !! 3 JEDNOSTAVNA KORAKA !!: 3 koraka
Najlakši način da napravite kompaktno svjetlo !! 3 JEDNOSTAVNA KORAKA !!: Ono što će vam trebati - limena folija 1 AA baterija (neke AAA baterije će raditi) 1 mini sijalica (žarulje se koriste za većinu svjetiljki; pogledajte sliku) Ravnalo (ako je potrebno)