Სარჩევი:

ყველაზე მარტივი Arduino VESC მონიტორი: 4 ნაბიჯი
ყველაზე მარტივი Arduino VESC მონიტორი: 4 ნაბიჯი

ვიდეო: ყველაზე მარტივი Arduino VESC მონიტორი: 4 ნაბიჯი

ვიდეო: ყველაზე მარტივი Arduino VESC მონიტორი: 4 ნაბიჯი
ვიდეო: 1. რა არის Arduino? როგორ მუშაობს კომპიუტერი? 2024, ნოემბერი
Anonim
ყველაზე მარტივი Arduino VESC მონიტორი
ყველაზე მარტივი Arduino VESC მონიტორი

გამარჯობა, ამ პროექტში ჩვენ გავაკეთებთ მარტივ VESC მონიტორს. ეს გამოგადგებათ, როდესაც გსურთ თქვენი ტემპერატურის მონიტორინგი და გაარკვიოთ ისეთი პრობლემები, როგორიც მე მქონდა Vesc– ის გადახურებისას (რაც ამ მონიტორზე აღმოვაჩინე), ან შეგიძლიათ გამოიყენოთ ის უბრალოდ დაფაზე ან საჭეზე ეკრანის დასამაგრებლად და თქვენი სიჩქარის დასათვალიერებლად. გარბენი, ბატარეის პროცენტი და მრავალი სხვა. მოდით შევიდეთ შენობაში!

ნაბიჯი 1: ნაწილები

ნაწილები
ნაწილები
ნაწილები
ნაწილები

1. - Arduino (მე UNO– ს ვიყენებ, მაგრამ თქვენ ასევე შეგიძლიათ გამოიყენოთ ნებისმიერი სხვა დაფა, მათ შორის esp8266 ან esp32)

2. - რამდენიმე კაბელი დასაკავშირებლად (შეეცადეთ იპოვოთ კონექტორი თქვენი კონექტორისთვის vesc– სთვის, რადგან გაცილებით ადვილი იქნება 1 დიდი კონექტორის გამორთვა ბევრი პატარა კაბელის წინააღმდეგ)

3. - ჩვენება (მე ვიყენებ 124 x 32 Oled– ს, მაგრამ თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი სხვა ბიბლიოთეკის შეცვლით)

4. - სურვილისამებრ - პურის დაფა (ეს არის მათთვის, ვისაც არ სურს შედუღება ან მათთვის, ვისაც ამის დროებით გაკეთება სურს)

5. - USB კაბელი თქვენი არდუინოსთვის

ნაბიჯი 2: ნაწილების ერთმანეთთან დაკავშირება

ნაწილების ერთმანეთთან დაკავშირება
ნაწილების ერთმანეთთან დაკავშირება
ნაწილების ერთმანეთთან დაკავშირება
ნაწილების ერთმანეთთან დაკავშირება
ნაწილების ერთმანეთთან დაკავშირება
ნაწილების ერთმანეთთან დაკავშირება

ჩვენება: Vcc to 3.3V

Gnd to Gnd

Sck (ან scl) A5– მდე

Sda to A4

VESC: 5V Vesc– დან Vin– ზე Arduino– ზე

Gnd to Gnd

RX VESC– დან TX– ზე Arduino– ზე

TX VESC– დან RX– მდე Arduino– ზე

ნაბიჯი 3: ატვირთეთ და შეცვალეთ კოდი თქვენი სურვილისამებრ

კოდი:

/** 2020 წლის კოდი ლუკას იანკის VESC მონიტორის მიერ ოლედის ჩვენებით თუ რამე მკითხოთ, დამიკავშირდით [email protected] ან ჩემს ინსტრუქციებზე. იმედი მაქვს, რომ ეს დაგეხმარებათ.

*/

#ჩართეთ #ჩართეთ #ჩართეთ #ჩართეთ #ჩართეთ #ჩართეთ #ჩართეთ #განსაზღვრეთ SCREEN_WIDTH 128 #განსაზღვრეთ SCREEN_HEIGHT 64 #განსაზღვრეთ OLED_RESET 4 Adafruit_SSD1306 ჩვენება (SCREEN_WIDTH, SCREEN_HEIGHT, & Wire, & Wire, VescUart UART;

int rpm; მცურავი ძაბვა; float current; int ძალა; float amphour; float tach; მცურავი მანძილი; მცურავი სიჩქარე; float watthour; float batpercentage;

SimpleKalmanFilter Filter1 (2, 2, 0.01);

void setup () {

Serial.begin (115200); ჩვენება. დასაწყისი (SSD1306_SWITCHCAPVCC, 0x3C); display.fillScreen (0); ჩვენება. ჩვენება ();

/ ** UART პორტის დაყენება (Serial1 Atmega32u4– ზე)*/ // Serial1.begin (19200); ხოლო (! სერიული) {;}

/ ** განსაზღვრეთ რომელი პორტები გამოიყენოთ UART*/ UART.setSerialPort (და სერიული);

}

ბათილი მარყუჟი () {

////////// კითხულობს მნიშვნელობებს /////////// თუ (UART.getVescValues ()) {

rpm = (UART.data.rpm)/7; // '7' არის ძრავის ბოძების წყვილი. ძრავების უმეტესობას აქვს 14 პოლუსი, შესაბამისად 7 პოლუს წყვილი ძაბვა = (UART.data.inpVoltage); მიმდინარე = (UART.data.avgInputCurrent); სიმძლავრე = ძაბვა*დენი; ამფური = (UART.data.ampHours); watthour = ამფორი*ძაბვა; tach = (UART.data.tachometerAbs)/42; // '42' არის საავტომობილო ბოძების რაოდენობა გამრავლებული 3 მანძილზე = tach*3.142*(1/1609)*0.72*(16/185); // საავტომობილო RPM x Pi x (1/ მეტრი მილში ან კმ -ში) x ბორბლის დიამეტრი x (საავტომობილო ტალღოვანი/ ბორბლიანი მანქანა) სიჩქარე = rpm*3.142*(60/1609)*0.72*(16/185); // საავტომობილო RPM x Pi x (წამი წუთში / მეტრი მილში) x ბორბლის დიამეტრი x (საავტომობილო ტალღა / ბორბალი) batpercentage = ((ძაბვა -38.4) / 12)*100; // ((ბატარეის ძაბვა - მინიმალური ძაბვა) / უჯრედების რაოდენობა) x 100

}

////////// ფილტრი ////////// // გამოთვალეთ სავარაუდო მნიშვნელობა Kalman Filter float powerfiltered = Filter1.updateEstimate (სიმძლავრე);

display.fillScreen (0); display.setCursor (10, 5); display.setTextColor (1); display.setTextSize (1); ჩვენება. ბეჭდვა (ძაბვა);

display.setCursor (10, 20); display.setTextColor (1); display.setTextSize (1); ჩვენება. ბეჭდვა (ძალა);

display.setCursor (10, 40); display.setTextColor (1); display.setTextSize (1); ჩვენება. ბეჭდვა (rpm);

display.setCursor (10, 55); display.setTextColor (1); display.setTextSize (1); ჩვენება. ბეჭდვა (მიმდინარე); ჩვენება. ჩვენება ();

დაგვიანება (50);

}

თქვენ შეგიძლიათ შეცვალოთ და აჩვენოთ ნებისმიერი მნიშვნელობა თქვენთვის სასურველი კოდიდან

ნაბიჯი 4: შეამოწმეთ მუშაობს თუ არა

შემოწმება მუშაობს თუ არა
შემოწმება მუშაობს თუ არა
შემოწმება მუშაობს თუ არა
შემოწმება მუშაობს თუ არა
შემოწმება მუშაობს თუ არა
შემოწმება მუშაობს თუ არა

ახლა, როდესაც შეამოწმებთ მუშაობს თუ არა, დროა შედუღოთ და დაამატოთ ეტიკეტები თქვენს მნიშვნელობებზე, როგორიცაა ვოლტი ან ამპერი. შეაერთეთ arduino nano– ზე, ასე რომ ის უფრო პატარა იქნება, ან შეგიძლიათ სხვა arduino– ით გადასცეთ თქვენს დისტანციურ კონტროლერს. მაგრამ ამისათვის ბევრი სხვა გაკვეთილია (მოძებნეთ მნიშვნელობები არდუინოს საშუალებით). ვიმედოვნებ, რომ ეს დაგეხმარათ თქვენი პრობლემის გადაჭრაში ან ლამაზი პატარა ვესტ ტელემეტრიის მიღებაში.

გირჩევთ: