0

ML-R motori

Spoj ML-R Motor Driver 4x3.6A kontrolera s 4 motora i Teensyjem 3.2

  • Spojite kablove po zelenim linijama, sve osim baterije. Gdje je samo zelena linija, bez slike kabla, koristite običan žensko-ženski Dupont kabel.
  • Na slici su N20 motori s Pololu enkoderima. Jednostavnije su rješenje N20 bez enkodera, s ML-R Motor N20 Connector, na koji ide standardni ML-R Cable KK254-KK254 10 cm (mrm-kk2.54-2.54-10) kabel. Ako izaberete enkodere, morat ćete ili sami raditi kablove, ili koristiti obične Dupont žice, koje se mogu spojiti i na enkoder i na izlaz iz drivera motora.
  • Isključite prekidač.
  • Provjerite sve spojeve.
  • Priključite bateriju i odmah provjerite ne grije li se neki element, posebno na regulatoru napajanja. Ako je to slučaj ODMAH isključite bateriju. Vrlo vjerojatno je nešto krivo spojeno. Provjerite još jednom.
  • Isključite bateriju. Umetnite Teensy 3.1/3.2 pločicu u podnožje. Ponovite operaciju spajanja - provjere zagrijavanja.
  • Pokrenite kod naveden dolje.

Kod

Kod MRMS_Motors_PWM.zippokreće ciklički sva 4 motora, u jedan pa u drugi smjer. Relativno je jednostavan, ali potrebno je poznavanje C jezika.

Nešto napredniji primjeri upravljanja motorima Arduinom su u ovoj biblioteci: https://www.github.com/PribaNosati/MRMS. Slijedi primjer korištenja ovog načina.

Uključite klasu u vaš kod naredbom na početku .ino datoteke:

#include "Motors.h"

U skinutoj Motors.h su 2 parametra koja je moguće mijenjati:

#define MAX_MOTORS 8
#define SerialPortMotors Serial2
U prvom se maksimalan broj motora može smanjiti, za uštedu memorije, ili povećati, ako ih stvarno ima tako puno. Drugi je za definiciju UARTa na koji se vrši ispis, ako je potreban. Ako se na Serial2 spoji npr. Bluetooth, konfiguracija ostaje kakva je ovdje. Ako se koristi UART 1, samo se upiše Serial1 umjesto Serial2.

Definirajte objekt kao globalnu varijablu (izvan loop, setup i drugih funkcija):

Motors motors;
Ova definicija vrijedi za PWM/PWM kontrolere, kao što su ML-R Motor Driver 4x3.6A (mrm-mot4x3.6), ML-R Motor Driver 4x3.6A B (mrm-mot4x3.6b) i ML-R Motor Driver 2x125A (mrm-mot2x125). Koristite li PH/EN kontroler (ML-R Motor Driver 1x50A (mrm-mot1x50) ili ML-R Motor Driver 1x125A (mrm-mot1x125)), objekt definirajte ovako:
Motors motors(false);

Jedan po jedan dodajte sve motore u funkciji setup:

motors.add(25, 5, false);
motors.add(3, 4, false);
motors.add(32, 20, true);
motors.add(21, 22, true);
Prva 2 argumenta su pinovi na koje je spojen, treći znači da je motor na lijevoj strani robota (inače je na desnoj). Moguć je i 4. argument, koji okreće smjer rotacije motora. Znači, spojite motor, vidite da pogoni robota natrag, kad biste željeli naprijed - vrijeme je za ovaj parametar. Prva bi naredba izgledala ovako:
motors.add(25, 5, false, true);

Za pokretanje robota koristite funkciju go:

motors.go(30, -30);

Zaustavljate ga ovako:

motors.go(0, 0);
U ovom slučaju motori koče maksimalno. Upravljanje motorima putem 2 PWM pina ima prednost u odnosu na PH/EN (1 PWM i jedan digitalni za smjer motora) da se može birati kako kočiti: maksimalno (što radi go(0, 0)) ili pustiti robota da se giba usporeno. U kodu je kočenje načinjeno na uvijek maksimalan način, što je moguće promijeniti (za PWM/PWM).

Funkciju za testiranje motora pozivate npr. ovako:

motors.test(1);
Pogledajte opcije funkcije test. Drugi parametar je uvjet (funkcija) za prekid testa. O njoj više u primjerima naredbi.

Spoj ML-R Motor Driver 4x3.6A B kontrolera s Arduinom Mega 2560

  • Spojite sve kablove osim baterije. Na Arduino pinove 10 i 11 spojite ulaze M1 i M2 kontrolera motora. Arduino se napaja iz ML-R pretvarača napona, naponom 5 V na Arduino ulaze 5V i GND. Alternativno je moguće napajati Arduino direktno iz baterije, na ulaze VIn i GND. Potonje je rješenje nešto lošije. Pazite, kontroler i Arduino Mega moraju imate zajedničkih 0V (GND)!
  • Na N20 motor stavite ML-R Motor N20 Connector pa ga spojite ML-R Cable KK254-KK254 10 cm (mrm-kk2.54-2.54-10) na izlaz kontrolera.
  • Isključite prekidač.
  • Provjerite sve spojeve.
  • Priključite bateriju, npr. ML-R JST-KK3.96 kablom i odmah provjerite ne grije li se neki element, posebno na regulatoru napajanja. Ako je to slučaj ODMAH isključite bateriju. Vrlo vjerojatno je nešto krivo spojeno. Provjerite još jednom.
  • Skinite ovaj kod: MRMS_Motor1x_PWM2x.zip. Skinite datoteke Motors.h i Motors.cpp i instalirajte (npr. običnim kopiranjem) među Arduino datoteke. Pokrenite .ino datoteku, npr. u Arduino okolini.