Liikumismoodul2012

Allikas: Digilabor

(Ümber suunatud leheküljelt Liikumismoodul)

There is a new version of motor controller available: Kommunikatsioonimoodul

Aines Robootika projekt 2012 valminud liikumismoodul, mille põhiosad on mootor, draiveriplaat, ratas ja kinnitusplokk. Draiveriplaat võimaldab USB kaudu juhtida ühte harjadega alalisvoolumootorit. Plaat sisaldab mikrokontrollerit, mis vahendab USB-st tulnud käske elektriliselt isoleeritud mootoridraiverile.

Sisukord

Funktsionaalsus

  • Kuni 5A mootori juhtimine. Mootoridraiveri maksimaalne väljundvool on viis amprit.
  • USB suhtlus. Soovituslikus konfiguratsioonis toimub mooduliga suhtlemine üle USB.
  • SPI suhtluse tugi. Elektrooniline valmidus, puudub tarkvaraline realisatsioon.
  • Draiveri juhtimine mikrokontrollerit kasutamata. Elektroonika plaadil on pesa, mis ühendub enkooderi ja läbi elektrilise isolaatori mootoridraiveri külge. Seega on võimalik moodulit otse juhtida saates draiverile PWM ja suuna signaale ning lugedes enkooderi signaale.
  • Kvadratuur-enkooderi tugi. Moodulis sisalduva mootori tagumise osa külge on ühendatud enkooder, mille tugi on realiseeritud kontrolleris.
  • Draiveri toite polaarsuskaitse. Mootoridraiveri poolne elektroonika on kaitstud vastupidise polaarsusega toite ühendamise eest.

Tarkvara

Draiver

Mooduli kasutamiseks Windows operatsioonisüsteemiga on vaja paigaldada Teensy USB serial draiver.

Ühendamine

USB kaabli ühendamisel mooduli ja arvutiga tekib arvutisse virtuaalne jadaliidese port (COM). Ühenduse loomiseks võib kasutada programmi HTerm järgmiste seadetega:

  • Baud rate: 115200
  • Data bits: 8
  • Stop bits: 1
  • Paarsus- ja muud kontrollid väljas
  • Send on enter: CR-LF

Pärast ühenduse loomist saab moodulile saata käske.

Käsustik

Kõik käsud lõppevad \n (10, 0x0A, LF) või \r (13, 0x0D, CR) sümboliga.

Käsk Vastus Kirjeldus Näited
sdx seab ratta kiiruse PID-kontrolli kasutades
x - ratta kiirus [-190 ... 190]
ratta pöörlemiskiirus 190 on saavutatav toitepingega üle 12V
"-" märk tähistab vastupidist ratta pöörlemissuunda
PID-kontroll lülitatakse automaatselt sisse

Ratta pöörlemiskiiruse arvutamise valem:
\omega_{cyc} = \frac{62.5}{18.75 \times 64} \times \omega_{a}

ωcyc - pöörlemiskiirus [pööret sekundis]
ωa - pöörlemiskiirus mootoriplaadi ühikutes
62.5 - kiiruse mõõtmise sagedus [Hz]
18.75 - reduktori ülekandetegur
64 - kiiruse lugemite arv ühe mootori pöörde kohta

kiirusele 100 vastab pöörlemiskiirus 5,2 pööret/sekundis
70mm dimeetriga ratta joonkiiruseks sellisel pöörlemiskiirusel on ligikaudu 1,14 m/s

sd50 - seab ratta kiiruseks 50
sd-100 - seab ratta kiiruseks -100
wlx seab ratta kiiruse PID-kontrolli kasutamata
x - PWMi täitetegur [-255 ... 255]
"-" märk tähistab vastupidist ratta pöörlemissuunda
PID-kontroll lülitatakse automaatselt välja
wl100 - seab ratta kiiruseks 100
wl-150 - seab ratta kiiruseks -150
dr0|1 seab ratta pöörlemissuuna
0|1 - määrab pöörlemissuuna, salvestatakse püsivalt
dr0 - seab pöörlemissuuna ühes suunas
dr1 - seab pöörlemissuuna vastassuunas
pd0|1 lülitab PID-kontrolli sisse või välja
0|1 - 0 lülitab välja, 1 sisse
esmasel käivitamisel on PID-kontroll sisse lülitatud
pd0 - lülitab PID-kontrolli välja
pd1 - lülitab PID-kontrolli sisse
s <s:x>\n tagastab ratta pöörlemiskiiruse
x - ratta kiirus [-190 ... 190]
s - tagastab ratta pöörlemiskiiruse
idx seab kontrolleri id
x - id (positiivne täisarv)
salvestatakse püsivalt
id3 - seab kontrolleri id väärtuseks arvu 3
? <id:x>\n tagastab kontrolleri id
x - id (positiivne täisarv)
? - tagastab kontrolleri id
gs0|1 lülitab kiiruse automaatse saatmise sisse või välja
0|1 - 0 lülitab välja, 1 sisse
kiiruse saatmine toimub sagedusel 62.5 Hz
gs0 - lülitab automaatse saatmise välja
gs1 - lülitab automaatse saatmise sisse
st sooritab mootori polaarsustesti
käivitab mootori lühiajaliselt ja kontrollib enkooderilt saadud kiirust sisemiselt seatud kiirusega
kui kiirused on erimärgilised muudetakse mootori polaarsus kontrolleris
polaarsus salvestatakse püsivalt
st - sooritab mootori polaarsustesti
fs0|1 lülitab automaatse mootori peatamise sisse või välja
0|1 - 0 lülitab välja, 1 sisse
vaikimisi peatatakse mootor 1,6 sekundit pärast viimast kiiruse seadmise käsku
esmasel käivitamisel on automaatne peatamine sisse lülitatud
fs0 - lülitab automaatse mootori peatamise välja
fs1 - lülitab automaatse mootori peatamise sisse
pgx muudab PIDi P osa kordajat
x - P osa kordaja
salvestub püsivalt
mõistlik väärtus on 6
igx muudab PIDi I osa jagajat
x - P osa jagaja
salvestub püsivalt
mõistlik väärtus on 8
gg <pid:x,y>\n tagastab PIDi P ja I osa kordajad
x - P osa kordaja
i - I osa jagaja

Lisaks saadetavad andmed

Andmete kuju Kirjeldus
<stall:x> Teavitab ratta blokeerituse (stall) olekust.
x - blokeerituse tase
Blokeeritud olek tuvastatakse kui mootori kiirus on väiksem kui 5 ja PWM pulsi laius on maksimaalne (pidev kõrge signaal).
x = 0 - mootor ei ole blokeeritud
x = 1 - mootori blokeerituse hoiatus. Kõrgema taseme loogika peaks sellele reageerima enne kui tase 2 (vea olek) peale läheb. Hoiatus (<stall:1>) saadetakse kui mootor on olnud blokeeritud olekus järjest ühe sekundi.
x = 2 - mootori blokeerituse viga. Mootorit ei juhita ajutiselt. Veateade <stall:2> saadetakse kui mootor on olnud blokeeritud olekus järjest viis sekundit. Vea ilmumisel peatatakse mootori juhtimine viieks sekundiks. Selle aja möödumisel saadetakse blokeerituse lõpu teade (<stall:0>) ja juhitavus taastatakse (mootori kiirust on võimalik taas muuta).
Teateid saadetakse ainult oleku muutumisel.

Püsivara

Viimati uuendatud 23.09.2013

Lisatud mootori blokeerituse tuvastamine ja kaitse

Lähtekood

Firmware 16u2

Firmware 32u2

  • Hetkel ei ole realiseeritud SPI suhtlus

Püsivara paigaldamine

Windows

  1. Lae alla ja paigalda FLIP
  2. Sisene ATmega bootloaderisse:
    1. Hoia all HWB nuppu
    2. Vajuta RST nuppu
    3. Lase lahti HWB nupp
    • Kui ATmega-le ei ole varem paigaldatud püsivara siseneb ATmega kohe bootloaderisse.
  3. Paigalda vajadusel bootloaderi draiver
    • Draiveri leiad <FLIPi kaust>/usb (näiteks C:\Program Files (x86)\Atmel\Flip 3.4.7\usb).
  4. Ava FLIP
  5. Vali sobiv ATmega (Ctrl + S -> ATmega32U2)
  6. Lae hex fail (Ctrl + L)
  7. Ava USB-bootloader ühendus (Ctrl + U)
  8. Eemalda linnuke Reset valiku eest (nupu Start Application kõrvalt)
  9. Püsivara paigaldamiseks vajuta Run
  10. ATmega programmi käivitamiseks vajuta Start Application
  • Nüüd alustab ATmega pärast reseti või toite ühendamist kohe programmi täitmist.


Vaata Ka

U4_devboard dfu-programmer

Elektroonika

Pesad
Skeem
Plaat
  1. Enkooderi pesa
  2. SPI pesa
  3. Loogika pesa
  4. USB pesa
  5. Aku/Toite ühenduspesa
  6. Mootori ühenduspesa

Pesad

SPI - kasutamiseks USB toe puudumisel

  1. GND
  2. Vcc
  3. SS
  4. SCK
  5. MOSI
  6. MISO


Enkooder - integreeritud magnetanduri ühenduspesa

  1. GND
  2. Vcc
  3. ENCA - enkooderi kanal A väljund
  4. ENCB - enkooderi kanal B väljund


Loogika - draiveri juhtimiseks ilma mikrokontrollerita

  1. GND
  2. Vcc
  3. FAULT - mootoridraiveri veaoleku väljund
  4. DIR2 - mootoridraiveri DIR2 sisend
  5. DIR1 - mootoridraiveri DIR1 sisend
  6. PWM - mootoridraiveri PWM sisend
  7. ENCA - enkooderi kanal A väljund
  8. ENCB - enkooderi kanal B väljund


Disain

Versioon 0.6

Elektroonika skeem

Elektroonika plaat

Gerber

Mittevajalikud/valikulised komponendid

  • LDO pingeregulaator LD2980CM50TR ei vaja kondensaatorit C3. Vastav kondensaator on lisatud teiste regulaatoritega ühildumiseks.
  • Mootoridraiveri MC33886 jalg 20 tuleks jätta ühendamata ehk mitte joota takistit R11. Selle takisti ühendamisel ei toimi draiveri väljundid. Takisti on lisatud ühildumaks mootoridraiveriga MC33887, mille vastav jalg on ENABLE signaali sisend.

Komponendid

Komponent Tähistus Kogus Mouser Farnell
ATMEGA8U2AU U1 1 556-ATMEGA8U2-AU 1841607
SI8441IS1 U2 1 Si8441AA-D-IS1 9570659
MC33887-HSOP U3 1 841-MC33886PVW
NFET-SOIC8 U4 1 621-DMS3015SSS-13 1863728
LDO U5 1 511-LD2980CM50 1556768
PTC 100mA F2 1 576-1206L020-C 1800751
FUSE 5A 1206 F3 1 637-F1206SB5000V032 1832091
RESONATOR SMD 4.5x2.0 Y1 1 581-PBRC16.00MR70X 2101363
MINI-USB X1 1 154-15320-E 1125348
ZENER 12V SOD123 D1 1 78-MMSZ4699-V 1859692
CPOL 3.5-8 470uF-25V C7 1 667-EEU-FR1E471LB 1219470
ENC MICROMATCH-4 X3 1 571-215079-4 148507
SPI MICROMATCH-6 X2 1 571-215083-6 148519
LOGIC_IN MICROMATCH-8 X5 1 571-2150798 148593
MOTOR, PWR M02 3.5MM JP1, JP2 2 538-39357-0002 3882615
33nF 0603 C5 1
100nF 0603 C3, C4, C9 - C13 7
1uF 0603 C2, C8 2
10uF 1206 C1, C6, C14 3
22 0603 R1, R2 2
560 0603 R5, R9, R14 - R17 6
1k 0603 R6, R7, R8 3
10k 0603 R3, R4, R10 - R12 5
100k 0603 R13 1
LED 0603 LED1, LED2, LED4 3
RST_SW, HWB_SW 3.9x2.9 SW1, SW2 2
Micromatch 4 Plug 1 571-215083-4 149032
Micromatch 6 Plug 1 571-215083-6 149068
Micromatch 8 Plug 1 571-215083-8 149070


Farnelli nimekiri

Koostatud: 03.09.2014

Kogused on ühe mootoriplaadi jaoks. Ei sisalda draiverit, mis pole Farnellist saadaval ning LEDe.

1748524, 1, mootoriplaat 32u2
2423288, 1, mootoriplaat isolator,
1863728, 1, mootoriplaat mosfet,
1556768, 1, mootoriplaat ldo,
1800751, 1, mootoriplaat ptc fuse
1832091, 1, mootoriplaat fuse,
1218536, 1, mootoriplaat resonator
2112367, 1, mootoriplaat mini usb,
2061479, 1, mootoriplaat zener,
1219475, 1, mootoriplaat cap 470uF,
148507, 1, mootoriplaat mm4
148519, 1, mootoriplaat mm6
148593, 1, mootoriplaat mm8
149032, 1, mootoriplaat mm4 wire
149068, 1, mootoriplaat mm6 wire
149070, 1, mootoriplaat mm8 wire
3882615, 2, mootoriplaat terminal
1759113, 1, mootoriplaat 33nF
1759123, 7, mootoriplaat 100nF
1759039, 2, mootoriplaat 1uF
1759453, 3, mootoriplaat 10uF
2074219, 2, mootoriplaat 22R
2073348, 9, mootoriplaat 1k
2073349, 5, mootoriplaat 10k
2073350, 1, mootoriplaat 100k,
2292962, 2, mootoriplaat switch

Mooduli osad

Põhiplokk
Mootor käigukasti ja enkooderiga
Elektroonika plaat
Tavaline ratas
Üherealine omniratas
Kaherealine omniratas
Kruvid, 12tk
Mini-USB kaabel

Koostamine

Mootori kinnitamine ploki külge

Võtta kinnitusplokk, mootor, 2 kuni 6 kuuskantkruvi ning 2.5mm kuuskantvõti. Paigutada mootor ja plokk omavahel kokku. Seejärel kinnitada kruvidega mootor ploki külge.

Elektroonikaplaadi kinnitamine ploki külge

Võtta elektroonikaplaat, 2 ristpeakruvi ja sobiv kruvikeeraja. Kinnitada elektroonikaplaat mootori ja kinnitusploki küljele, kasutades M3 ristpeakruve.

Mootori toitejuhtmete ühendamine elektroonikaplaadi külge

Vaja läheb väikest lapikut kruvikeerajat, millega kinnitada vajalikud juhtmed kruviterminali külge. Mootori toitejuhtmed ühenduvad plokipoolse kruviterminali külge.

Enkooderi pistiku ühendamine elektroonikaplaadi külge

Enkooderi pistik ühendub 4-klemmilise punase ühenduspesa külge.

Ratta ühendamine mootori võllile

Valida sobiv ratas ja 1.5mm kuuskantvõti. Paigutada ratas mootorivõlli külge ja kinnitada seadekruviga.

Mooduli kinnitamine põhja külge

Võtta aluspõhi, 2 peitpea kuuskantruvi (M3) ja 2mm kuuskantvõti. Mooduli plokk kinnitatakse altpoolt kahe kuuskantkruviga põhja külge.

Toitejuhtmete kinnitamine elektroonikplaadi külge

Vaja läheb väikest lapikut kruvikeerajat. Toitejuhtmed ühenduvad mitteplokipoolse kruviterminali külge. Positiivse toitepinge juhe ühendub välimise klemmi külge. Maapotensiaali juhe ühendub sisemise (USB pistiku poolse) klemmi külge.

USB pistiku ühendamine elektroonikplaadi külge

Mini-B USB pistik ühendub Mini-B USB pessa.

Mehhaanika

Soovituslik ploki kinnituskoha ehitus põhjaplaadil.

Personaalsed tööriistad
Navigeerimine
Käsitöö