İçindekiler:

En Kolay Arduino VESC Monitörü: 4 Adım
En Kolay Arduino VESC Monitörü: 4 Adım

Video: En Kolay Arduino VESC Monitörü: 4 Adım

Video: En Kolay Arduino VESC Monitörü: 4 Adım
Video: Electric unicycle project. Arduino control of VESC with bidirectional motor rotation. 2024, Temmuz
Anonim
En Kolay Arduino VESC Monitörü
En Kolay Arduino VESC Monitörü

Selam, Bu projede kolay VESC monitör yapacağız. Bu, sıcaklığınızı izlemek ve Vesc'in aşırı ısınmasıyla ilgili sorunlarımı bulmak istediğinizde (ki bunu sadece bu monitörde öğrendim) ya da kartınıza veya gidonunuza ekran takmak ve hızınızı izlemek için kullanabilirsiniz., kilometre, pil yüzdesi ve daha fazlası. Öyleyse binaya geçelim!

Adım 1: Parçalar

Parçalar
Parçalar
Parçalar
Parçalar

1. - Arduino (UNO kullanıyorum ancak esp8266 veya esp32 dahil olmak üzere başka herhangi bir kartı da kullanabilirsiniz)

2. - bağlantı için bazı kablolar (vesc için konektörünüz için konektör bulmaya çalışın çünkü 1 büyük konektörü çok sayıda küçük kabloya kıyasla çıkarmak çok daha kolay olacaktır)

3. - display (124 x 32 Oled kullanıyorum ama diğerlerini kitaplığı değiştirerek kullanabilirsiniz)

4. - isteğe bağlı - breadboard (lehim yapmak istemeyenler veya geçici olarak yapmak isteyenler içindir)

5. - Arduino'nuz için USB kablosu

Adım 2: Parçaları Birbirine Bağlama

Parçaları Birbirine Bağlama
Parçaları Birbirine Bağlama
Parçaları Birbirine Bağlama
Parçaları Birbirine Bağlama
Parçaları Birbirine Bağlama
Parçaları Birbirine Bağlama

ekran: Vcc - 3.3V

Gnd'den Gnd'ye

Sck (veya scl) - A5

Sda'dan A4'e

VESC: Arduino'da Vesc'den Vin'e 5V

Gnd'den Gnd'ye

VESC'de RX'ten Arduino'da TX'e

VESC'de TX'den Arduino'da RX'e

Adım 3: Kodu Tercihinize Göre Yükleme ve Değiştirme

KOD:

/** Lukas Janky tarafından 2020 kodu Oled ekranlı VESC monitör Bana herhangi bir şey sormanız gerekirse, [email protected] adresinden veya talimatlarımdan bana ulaşın. Umarım bu size yardımcı olur.

*/

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

VescUart UART;

int rpm; şamandıra gerilimi; şamandıra akımı; int gücü; yüzer amfi; şamandıra takozu; yüzer mesafe; şamandıra hızı; şamandıra watthour; yüzer yarasa yüzdesi;

SimpleKalmanFilter Filtre1(2, 2, 0.01);

geçersiz kurulum() {

Seri.başla(115200); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.fillScreen(0); display.display();

/** UART portunu ayarla (Atmega32u4 üzerinde Seri1) */ // Serial1.begin(19200); while (!Seri) {;}

/** UART olarak hangi portların kullanılacağını tanımlayın */ UART.setSerialPort(&Serial);

}

boşluk döngüsü () {

////////// Değerleri oku ///////// if (UART.getVescValues()) {

rpm = (UART.data.rpm)/7; // '7' motordaki kutup çiftlerinin sayısıdır. Çoğu motorun 14 kutbu vardır, bu nedenle 7 kutup çifti voltaj = (UART.data.inpVoltage); akım = (UART.data.avgInputCurrent); güç = voltaj*akım; amphour = (UART.data.ampHours); wattsaat = amper*voltaj; tak = (UART.data.tachometerAbs)/42; // '42', 3 mesafe ile çarpılan motor kutuplarının sayısıdır = tach*3.142*(1/1609)*0.72*(16/185); // Motor RPM x Pi x (mil veya km cinsinden 1 / metre) x Tekerlek çapı x (motor kasnağı / çark kasnağı) hız = rpm*3.142*(60/1609)*0.72*(16/185); // Motor devri x Pi x (dakikada saniye / mil cinsinden metre) x Tekerlek çapı x (motor kasnağı / çark kasnağı) pil yüzdesi = ((voltaj-38,4)/12)*100; // ((Pil voltajı - minimum voltaj) / hücre sayısı) x 100

}

////////// Filtre ////////// // Kalman Filtresi ile tahmini değeri hesaplayın float powerfiltered = Filter1.updateEstimate(power);

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

display.setCursor(10, 20); display.setTextColor(1); display.setTextSize(1); display.print(güç);

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(geçerli); display.display();

gecikme(50);

}

Koddan istediğiniz değeri değiştirebilir ve görüntüleyebilirsiniz

Adım 4: Çalışıp Çalışmadığını Kontrol Etme

Çalışıp Çalışmadığını Kontrol Etme
Çalışıp Çalışmadığını Kontrol Etme
Çalışıp Çalışmadığını Kontrol Etme
Çalışıp Çalışmadığını Kontrol Etme
Çalışıp Çalışmadığını Kontrol Etme
Çalışıp Çalışmadığını Kontrol Etme

Şimdi çalışıp çalışmadığını kontrol ettiğinizde, lehimleme ve Volt veya Amper gibi değerlerinize etiket ekleme zamanı. Daha küçük olması için arduino nano'ya lehimleyin veya diğer arduino ile uzaktan kumandanıza iletebilirsiniz. ama bunun için başka birçok öğretici var (arduino ile iletim değerlerini arayın). Umarım bu, sorununuzu çözmenize veya güzel küçük vesc telemetrisi yapmanıza yardımcı olmuştur.

Önerilen: