Sensoriai ir programinė įranga

Download Report

Transcript Sensoriai ir programinė įranga

Sensoriai ir programinė įranga
Šiandien
•
•
•
•
Apie pratybas
NXT architektūra ir galimybės
I2C sąsajos architektūra
Trumpai apie DSS servisus, CCR, manifestus
Pratybos ir surenkami balai
• Pratybų metu galima surinkti 7 balus.
Išimtinais atvejais gali būti skirti 10 egzamino
balų.
• Dirbama 2-3 žmonių grupėse. Grupės tikslas
semestro gale pristatyti veikiantį robotą.
• Trys etapai:
– Aprašymo patvirtinimas (3-4 lapai) iki kovo 26d.
– Pagrindiniai sprendimai. Iki balandžio 23d.
– Galutinis variantas. Iki semestro pabaigos.
Aprašymas
• Iki kovo 26d.
• Sudaro:
– Pagrindinė sritis, kuriose bus specializuojamasi – navigacija,
žemėlapio sudarymas, vaizdų atpažinimas, sensorių apjungimas,
judėjimo valdymas, namų valymas ir pan. ir t.t.
– Kaip atrodys galutinis variantas;
– Kokie “servisai” bus sukurti ir kaip bus naudojami
– Planas, pagal kurį bus dirbama. Iki kada kas planuojama
padaryti;
– Kuo bus remiamasi – literatūra, šaltiniai, interneto puslapiai;
– Galimos problemos, kaip jos bus sprendžiamos;
– Aprašymo apimtis 3-4 puslapiai
Bendravimas tarp komandų
• Galimas ir labai sveikintinas bendravimas tarp
atskirų komandų bandant sukurti sudėtingesnį
robotą.
Pvz.:
– Viena komanda daro sensorių informacijos
apdorojimą
– Kita sudaro žemėlapį
– Trečia atlieka kelio parinkimą pagal jau turimą
sensorių informaciją ir žemėlapį
NXT viduje
Techninės charakteristikos
• Atmel® 32-bit ARM® procesorius, AT91SAM7S256
- 256 KB FLASH
- 64 KB RAM
- 48 MHz
• Atmel® 8-bit AVR procesorius, ATmega48
- 4 KB FLASH
- 512 Byte RAM
- 8 MHz
Išvedimo portai
1. MA0 – PWM signalas varikliukams
2. MA1 – PWM signalas varikliukams
3. GND - įžeminimas
4. POERMA – 4.3 V maitinimas
5. TACHOA0 – įvedimo reikšmė iš
varikliuko
6. TACHOA1 - įvedimo reikšmė iš
varikliuko
Įvedimo portai
1. ANA – analoginis įvedimas, kuris paruodamas 10 bitų
D/A konverteriui. Apklausimo dažnos 333 Hz
2. GND - įžeminimas
3. GND - įžeminimas
4. IPOWERA – maitinimas 4.3 V
5. DIGIAI0 – skaitmeninis įvedimas ir išvedimas (CLK)
6. DIGIAI1 – skaitmeninis įvedimas ir išvedimas (DATA)
DIGIAI0 ir DIGIAI1 naudojami I2C bendravimui su
prietaisais. Apsikeitimo greitis 9600 bit/s
I2C
• Kompiuterinė komunikacijos magistralė
naudojama prijungti lėto veikimo išorinius
prietaisus prie kompiuterio ar mobilaus telefono.
• Sukurta apie 1980 metus Philips Semiconductors
įmonės
• Pirminis panaudojimas buvo sujungti išorinius
įrenginius su vidiniu TV kompiuteriu ir naudojama
televizoriuose siekiant sumažinti laidų skaičių
• Naudojami du signaliniai laidai.
I2C (2)
• Duomenų perdavimo greičiai:
– 100 kbs (standartinis režimas)
– 400 kbs (greitas režimas)
– 3.4 Mbps (didelio greičio režimas)
• Duomenų perdavimo būdas:
– Serijinis, 8 bitų, dvikryptis
• Šeimininko – tarno bendravimo būdas tarp
prietaisų
• Adresavimas: 7bitų (arba 10bitų). Galima prie
vienos linijos pajungti 112 prietaisų.
I2C (3)
• Dvi signalinės linijos:
– SDA(Serial Data) ir SDC (Serial Clock).
I2C bendravimas
Pasyvūs sensoriai
• Pasyvūs sensoriai:
– Prisilietimo sensorius
– Šviesos sensorius
– Garso sensorius
– Temperatūros sensorius (jei toks būtų)
• Skaitmeniniai sensoriai
– Ultragarso sensorius
Didelio greičio portas
• Port 4 gali būti panaudotas greitam duomenų
apsikeitimui:
– 921 Kbit/sek
Displėjus (100x64)
Bluetooth
• Class II įrenginys palaikantis bendravimą 10
metrų atstumu.
• Procesorius su bluetooth mikroschema
bendrauja 460 K bit/sek greičiu
• Įrenginiai gali bendrauti tarpusavyje
Kita
• Garsas – yra, garsiakalbis – 21mm, 16 omų
• ARV7 (“pagrindinės smegenys”) sujungtos su
ARM(“nugaros smegenys”) I2C jungtimi.
Galimos sąsajos
• Laidinė:
–
–
–
–
Analoginė
I2C
Serijinė (RS232)
USB
• Nutolusi
– IR
– Bluetooth
– “wi-fi”
Galimi sensoriai
NXTCam
Seka 8 objektus (pagal vartotojo nustatytas spalvas) 30
kadrų per sekundę greičiu.
Pajungiamas tiesiogiai prie NXT brick.
Dlink DCS-950, pajungiamas per 802.11g prie kompiuterio.
Galimi sensoriai
Pagreičio sensorius. Matuojamas
trijų ašių pagreitėjimas, pagal
kiekvieną ašį.
Magnetinis kompasas.
Galimi sensoriai
IR spinduliais pagrįstas atstumo
matuoklis. 20cm – 150cm.
Kiti variantai:
10 – 80 cm
4 – 30 cm
Giroskopas, vienos ašies.
Galimi sensoriai
• Teoriškai galima pajungti bet kokį analoginį
matavimo prietaisą (kuris keičia varžą) arba
naudoja I2C protokolą
• Pagrindinė problema – nestandarinė jungtis
(bet ir tai apeinama)
Web servisai ir SOA
• Web servisas apibrėžiamas kaip cliento su
serveriu bendravimo būdas naudojant XML
pranešimus ir laikantis SOAP standarto.
• SOAP protokolas skirtas apsikesti XML tipo
pranešimais tarp kompiuterių tinklį, paprastai
HTTP/HTTPS protokolu.
• SOA - Service Oriented Architecture.
Kompiuterinių sistemų architektūros stilius
kuriant ir naudojant veiklos procesus apjungtus į
servisus.
Sinchroninis ir asinchroninis
programavimas
• Sinchroninis – veiksmai atliekami iš eilės,
apsikeitimo duomenys tarp procesų nėra
saugomi buferyje, procesas laukia tol, kol
gauna visus duomenis
• Asinchroninis – komunikacija tarp procesų
naudoja neriboto dydžio buferius. Siuntėjas
nelaukia po duomenų išsiuntimo. Gavėjas
laukia tik tada, kai gavimo buferis yra tuščias
(pranešimų gavimo siuntimo sistema)
Orchestravimas
• Atskirų servisų sujungimas į atliekamų
veiksmų seką, kuri aprašoma aukšto lygio
programavimo kalba arba įrankui
Sinchroninis programavimas
• Kodėl yra rašomas sinchroniniu būdu
programos:
– Taip yra lengviau. Atliekant asinchroniniu būdu
kreipinius į resursus, reikia atskirti iniciavimo
operaciją ir atsakymo gavimo operaciją nuo
pagrindinio proceso
– Sunku sukoordinuoti veiksmus gavus atsakymą
CCR Concurrency and Coordination Runtime
• Tikslas: susitvarkyti su konkurencija, praleliai
naudoti programinę įrangą ir susitvarkyti su
dalinėmis klaidomis.
DSS
• Servisai yra pagrindiniai blokai, kurie naudojami
kuriant robotų aplikacijas su Robotics Studio
• DSS yra paremtas web servisais.
• Kas gali būti laikoma servisu robotics studio:
– Techninė įranga kaip sensoriai ar aktuatoriai
– Programinės įrangos komponentai kaip vartotojo
sąsaja, saugyklos, direktorijų saugyklos
– Agregacijos: sensorių apjungimas ir pan.
Serviso identifikatorius
Kontrakto identifikatorius
Būsena
Partneriai
Serviso
apdorojimo
Serviso
apdorojimo
Serviso
apdorojimo
Serviso
apdorojimo
elementai
(handlers)
elementai
(handlers)
elementai
elementai(handlers)
(handlers)
Pranešimai
Pranešimai
Pranešimai
Pranešimai
Pagrindinis
portas
DSS komponentai
• Serviso identifikatorius
– serviso identifikatorius leidžia komunikuoti su
servisu
– Pasiekti servisą per tinklo naršyklę
• Kontrakto identifikatorius
– “kontraktas” tai tikslus aprašymas ką servisas gali
veikti, kokius veiksmus jis atlieka
Forma: http://schemas.tempuri.org/[year]/[month]/[name].html
DSS komponentai (2)
• Serviso būsena
– Aprašo dabartinę serviso būseną. Būsena gali būti
lengvai išsaugoma.
• Serviso partneriai
– Servisai gali būti apjungti siekiant pateikti
aukštesnio lygio funkcijas. Parneriai yra kiti
servisai su kuriais šis servisas bendrauja ir nuo
kurių galbūt priklauso teisingas veikimas
DSS komponentai (3)
• Pagrindinis portas
– Į pagrindinį portą patenka pranešimai iš kitų
servisų
– Servisai nėra sujungti tiesiogiai, jie bendrauja
pranešimais
• Serviso apdorojimo procedūros (‘handlers’)
– Kiekvienai operacijai apibrėžtai pagrindiniame
porte reikalinga apdorojimo procedūra.
DSS komponentai (4)
• Įvykių pranešimai
– Dažniausiai naudojamas veikimo principas, tai kitų
servisų “prenumerata”. Servisas generuoja įvykių
pranešimus, kurie yra serviso būsenos pasikeitimo
pasekmė.
Pranešimų siuntimas
“Manifest” bylos
• “Manifest” bylose yra aprašoma kokie servisai
bus vykdomi paleidimo metu
• Saugoma techninės įrangos konfiguracija
• Naudojant “abstrakčius” servisus, kaip
“generic motor”, “generic bumper” galima
tiesiog pakeisti techninę įrangą pakeičiant
manifesto bylas