SPIvargapesa

Allikas: Digilabor

SPI vargapesa plaat. Valmis kevadel 2014 aine robootika projekt raames. Dokumentatsioon on valmistatud liikumismooduli eeskuju järgides.

SPI vargapesa plaat sai loodud eesmärgiga saada lahti kohmakatest USB juhtmetest roboti sees ja vähendada probleeme, kus mõne mooduli ühendus ära kaob. Kuni püsib ühendus SPI vargapesa plaadiga, võib jooksvalt sinna seadmeid külge lisada.

SPI vargapesa plaat on mõeldud roboti juhtimiseks. Alammoodulitele jääb alles võimalus neid juhtida USB juhtme kaudu. Seda tuleb kasutada, kui soovite moodulit täpsemalt seadistada näiteks PID parameetreid muuta.

Sisukord

Funktsionaalsus

  • 8 SPI pesa alammoodulitega suhtlemiseks:
    • eelprogrammeeritud juhtima liikumismoodulit ja pallihaldusmoodulit
  • 6 eraldiseiseisvate katkestustega I/O pesa:
    • 2 I/O pesa eelprogrammeeritud optilise pallianduri kasutamiseks
    • 2 I/O pesa eelprogrammeeritud lülitite kasutamiseks ning võimalusega lisada debounce kondensaatorid
    • 2 I/O pesa riistvaralise valmidusega pidada UART suhtlust.
  • Plaadi juhtimine USB pesa kaudu
  • Eelprogrammeeritud Atmel ATmega 32U2 mikroprotsessor

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 SPI master SPI slave Kirjeldus Näited
sda:x

kui ei ole selle id-ga seadet ühendatud

0101010d
xxxxxxxx
d - direction bit
x - speed bit
vaikevastus
vaikevastus
Vastab liikumismooduli käsule sdx
Pallihaldusmooduli plaadil käivitab dribbleri kiirusega 0-16
a - SPI pesa nr
x - ratta/rulliku pöörlemiskiirus
toetab ka mitut argumenti
sd1:100 - seab SPI 1 pesas asuva mooduli ratta kiiruseks 100
sd2:-150;3:15 - seab SPI 2 pesas asuva mooduli ratta kiiruseks -150 ja SPI 3 pesas asuva mooduli ratta kiiruseks 15
fsa:0|1 0110010x
x - oleku bit
vaikevastus lülitab pallihaldusmooduli või liikumismooduli fs režiimi sisse (1) või välja (0)
a - SPI pesa nr
fs6:0 - lülitab 6. pesas fs režiimi välja
fs1:1 - lülitab 1. pesas fs režiimi sisse
ca 01011100 vaikevastus Pallihaldusmooduli plaadil käivitab laadimisrežiimi
a - SPI pesa nr
c6 - käivitab pesas 6 asuva pallihaldusmooduli laadimisrežiimi
ka 01100000 vaikevastus Pallihaldusmooduli plaadil käivitab löömisrežiimi väärtusega 2000
a - SPI pesa nr
k6 - käivitab pesas 6 asuva pallihaldusmooduli löömisrežiimi väärtusega 2000

Vaikevastus - vastus, mida slave seade hoiab alati enne suhtlemise algust oma saatmisregistris. Kuna slave seade ei oma kontrolli selle üle, kunas ta suhelda saab, siis vaikevastuses hoitakse infot, mida kõige tõenäolisemalt master seade temalt küsida tahab.

Liikumismooduli puhul on vaikevastuseks bait ( 1 , ok , s1 , s2 , 0 , 0 , 0 , dir ) , kus bit ok märgib kas liikumismooduli plaadil on kõik korras, bit s1 märgib, kas on stall 1 olek, bit s2 märgib, kas on stall 2 olek ja bit dir märgib kummas suunas mootor liigub. (nt. 11000001 kui kõik on korras ja ratas liigub negatiivses suunas) Kui master seade küsib kohe ka järgmist baiti, siis järgmises baidis on ratta liikumise kiirus (nt. 00001010 kui ratas liigub kiirusega 10).

Pallihaldusmooduli vaikevastuseks on 0.

Lisakäsud

Käsk Vastus Kirjeldus Näited
gb1 ball1:i\n Tagastab B1 pessa ühendatud anduri oleku
i - anduri olek
vaikimisi tagastab 0, kui andurit pole ühendatud
gb1
tagastab B1 pesas oleva anduri oleku
gb2 ball2:i\n Tagastab B2 pessa ühendatud anduri oleku
i - anduri olek
vaikimisi tagastab 0, kui andurit pole ühendatud
gb2
tagastab B2 pesas oleva anduri oleku
gs1 switch1:i\n Tagastab S1 pessa ühendatud anduri (lüliti) oleku
i - anduri olek
vaikimisi tagastab 0, kui andurit pole ühendatud
gs1
tagastab S1 pesas oleva anduri oleku
gs2 switch2:i\n Tagastab S2 pessa ühendatud anduri (lüliti) oleku
i - anduri olek
vaikimisi tagastab 0, kui andurit pole ühendatud
gs2
tagastab S2 pesas oleva anduri oleku
ar0|1 sensors<B1,B2,S1,S2>\n
saadetakse, kui mõni nendest muutub
Lülitab automaatse sensorite oleku saatmise välja/sisse.
Kui automaatne saatmine on lülitatud sisse (1) siis mistahes sensori oleku muutumise korral tagastatakse kõikide sensorite olekud eelkirjeldatud kujul.
Vaikimisi on automaatne saatmine lülitatud välja (0).
ar1
Lülitab automaatse olekute saatmise sisse

B1/B2 pesas sobib palliandurina kasutada näiteks IS471F optilist andurit, mida on kirjeldatud Andurite lehel.

S1/S2 pesas sobib lülitina kasutada suvalist lülitit, kuid automaatse saatmise korral tuleb kindlasti kasutada "debounce" kondensaatorit. Selleks tuleb joota plaadile C5 ja C6 kondensaatorid. Sobib väärtus näiteks 100nF.

Püsivara

Viimati uuendatud 30.06.2014

lähtekood

Tarkvara plaadile laadimiseks

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.


Ühilduvad plaadid

liikumismoodul Coil_2012


Pesad

SPI1 - SPI8 - Igasse pesasse saab ühendada SPI toega plaadi.

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


BALL - Pesa palli mooduli haldamiseks

  1. B2
  2. B1
  3. VCC
  4. GND


UART - Pesa palli mooduli haldamiseks

  1. RX
  2. TX
  3. VCC
  4. GND

UART - Pesa palli mooduli haldamiseks

  1. S2
  2. S1
  3. VCC
  4. GND

Disain

Versioon 2.0

  1. Skeem v2.0
  2. Plaat v2.0


Farnelli nimekiri

Koostatud: 20.04.2014

Kogused on ühe SPI vargapesa jaoks. Tellitavad kogused ei pruugi klappida farnelli miinimum kogustega, enne tellimist VAATA üle!

1748524, 1, ATMEGA32U2-AU
1800751, 1, FUSE, PTC RESET, SMD, 8V, 500MA
1515723, 1, FERRITE BEAD, 0.35OHM, 500MA, 0603
2101363, 1, CERAMIC RESONATOR, 16MHZ, SMD
1125348, 1, MINI USB TYPE B, RECEPTACLE, SMT
148519, 8, AMP - 7-215079-6 - CONNECTOR
9802274, 8, ESDA6V1SC6 - DIODE ARRAY
1759123, 2, CAP, MLCC, Y5V, 100NF, 0603
1759039, 1, CAP, MLCC, Y5V, 1UF, 25V, 0603
2112741, 1, CAP, MLCC, X5R, 4.7UF, 16V, 0603
1759453, 1, CAP, MLCC, Y5V, 10UF, 1206
2074219, 2, RESISTOR, 0603, 22R, 1%, ANTI SULFUR
2331999RL, 32, RESISTOR, POWER, 560R, 0.2W, 1%, 0603
2078907, 3, RESISTOR, ANTI SULPHUR, 1K, 0.1W, 1%
1527581, 2, RESISTOR, 0603, 10K 1% 50PPM
2078928, 1, RESISTOR, ANTI SULPHUR, 0603, 1M0
1685062, 1, LED, SMD, 0603, RED
2251490, 1, LED, 0603, TRUEGREEN
2292962, 2, SWITCH, TACTILE, SPST, 0.05A, 12V, SMD
149068, 8, MICROMATCH-6 plug
149032, 3, MICROMATCH-4 plug
3784710, 3, MICROMATCH-4 connector
Personaalsed tööriistad
Navigeerimine
Käsitöö