FFU ACPS 2 – automatikus parkolórendszer szimulálása
Szerzők: Rana Dávid Tóth Silvester Németh Balázs
Komárom
2009
Tartalomjegyzék
1
Bevezetés.............................................................................................................. 3
1.1
Cél ................................................................................................................ 3
1.2
Eredmény ...................................................................................................... 4
2
A szoftver............................................................................................................. 7
2.1
Az OpenGL grafika ....................................................................................... 7
2.1.1 2.2
A GLScene komponens csomag ............................................................ 8
A vezérlőprogram adatfeldolgozása és a GLScene komponens csomag kapcsolata 9
2.2.1
A vezérlőprogram adatfeldolgozása matematikai eszközökkel ............. 10
3
Ismerkedés a FFU ACPS 2-vel ......................................................................... 17
3.1
Adatok a rendszerben .................................................................................. 17
3.2
Kezelőfelület ............................................................................................... 18
3.2.1
Menüpanel .......................................................................................... 19
3.2.2
Információs panel ................................................................................ 20
3.2.3
Adat panel ........................................................................................... 21
3.2.4
Lejátszás panel .................................................................................... 21
3.2.5
Tervek ................................................................................................. 22
3.2.6
Egyéni adatok...................................................................................... 22
3.2.7
Testreszabás ........................................................................................ 26
3.2.8
Vizuális funkciók ................................................................................ 27
4
Ismerkedés a FFU ACPS 2 Editorral ............................................................... 28
4.1
Új adatbázis ................................................................................................ 28
4.1.1
Alaprajz............................................................................................... 29
4.1.2
Kerekek ............................................................................................... 29
4.1.3
Léptetőmotor ....................................................................................... 30
4.1.4
Tér / Parkolóhely ................................................................................. 30
4.1.5
Helyzet-meghatározás ......................................................................... 31
4.1.6
Általános beállítások ........................................................................... 32
4.2
Adatbázis beállítása ..................................................................................... 33
4.3
Adatbázis mentése....................................................................................... 33 1
4.4
Adatbázis törlése ......................................................................................... 34
4.5
Nyelvek ...................................................................................................... 34
4.6
Kilépés ........................................................................................................ 34
5
Periféria ............................................................................................................. 35
6
Felhasznált irodalom ......................................................................................... 41
2
1 Bevezetés Ezen dokumentáció témája egy csapatmunka. Néhány évvel ezelőtt, a komáromi Selye János Egyetemen, egy három tagból álló baráti társaság, úgy gondolta, ideje megmutatni a világnak mit is tanultak eddig, és mi mindenre képesek, ha valamit elhatároznak. Van közöttük aki programozik, aki számol és programozik, és aki az elektronikát kóstolgatja. De mindhárman ambiciózus informatikusok! Ez a három fiatalember elhatározta, hogy tudásukat összevetve megpróbálnak létrehozni egy olyan berendezést, ami hasznos, új és ami képviseli a tudásuk színvonalát. Összefogásuk eredményeként, megszületett a FFU ACPS projekt, mely egy önvezérelt robot autót takar maga mögött. A FFU ACPS egy angol szavakból álló rövidítés mely így értelmezhető: FFU Automatic Car Parking System. Tehát magyar fordításban FFU Önvezérelt Gépjármű Parkoló Rendszer. A FFU kifejezést, még mindig homály fedi. A FFU-nak nincs különösebb jelentése. Ez a kis csapat, a poén kedvéért nevezte el magát így, s végül egy tekintélyes diákközösséggé nőtte ki magát, amelynek mára már dicséretre méltó sport és tudományos eredményei vannak, és saját internetes oldalt is működtet. De visszatérve a projekthez, ez a három céltudatos fiatalember megálmodott, megtervezett, és megépített egy olyan elektronikus rendszert, amely beépíthető minden gépjárműbe, és leegyszerűsítheti tulajdonosaik mindennapjait. Az alapgondolat, a parkolás megkönnyítése. Ebben a projektben ezt is fogjuk bemutatni, de a határ csak a csillagos ég. Hiszen a gépjárművek átalakítása önvezérelt gépezetté, már nem a jövő zenéje, hanem a holnap valósága. Ebben próbál részt venni a FFU ACPS. Egyenlőre csak parkolni képes, de ez csak a kezdet. Mivel még fejlesztés alatt áll, ezért kellően megfelelő idő és energia ráfordításával bármilyen, fantáziánk szülte automatika beleépíthető.
1.1 Cél A FFU ACPS egy olyan terv megvalósulásának alapja, ami feltételezi, hogy a jövőben egyre több minden lesz automatizálva. Így például, a garázs előtt hagyott autó felismeri a garázstól való helyzetét, és képes lesz sofőr nélkül beállni. S hogy ez mi módon vihető végbe? A válasz egyszerű, vagyis a modern számítástechnika és elektronika segítségével. Úgy gondoljuk, ezen két tudományág vegyítésével, az emberiség fantasztikus dolgokra lehet képes. A FFU ACPS alapjai is ezen az elven nyugszanak, s az automatizáció segítségével meg is valósulhatott. Az automatizáció, a műszaki tudományok egy olyan ágazata, amely számítógépes programok és elektronikus áramkörök segítségével önálló munkavégzésre alkalmas robotokat alkot. 3
1.2 Eredmény A mi munkánk is automatizáció, ugyanis egy számítógép által futtatott program elektronikus impulzusai hatására, a gépjárműben lévő áramkörök a megfelelő módon vezérlik a gépjárműt meghajtó motorokat.
1.ábra: Automata parkoló rendszer blokkvázlata
Az 1.ábrán látható az automata parkoló rendszer blokkvázlata, ami dióhéjban vázolja a működési elvet. 3 fontos egységre osztható fel. Első a szoftvercsomag, mely az egész rendszert felügyeli, útvonalat számol, teszteli az útvonalat, szimulálja a beállást, végül USB és LPT portokon keresztül, használható jelsorozatot küld a garázsba épített elektronikus moduloknak. Jelsorozat alatt olyan impulzusokat értünk, amik valójában 2,8V alatt és fölött mozognak. Azt a feszültséget, mely 2,8V alatti, 0-nak hívják, 2,8V felettit pedig 1-nek. Az 1es általában, és a mi esetünkben is 3,5V. Ezeket a feszültségtől függő impulzusokat biteknek nevezzük. Minden számítógép szoftver, ezen egyesekkel, és nullákkal kommunikál a külvilággal és a rá csatlakoztatott perifériákkal. Mi esetünkben a periféria a garázs illetve a makett gépjármű. Például a nyomtatót irányító szoftver is ilyen impulzusokat generál a printer vezérléséhez, és ilyen bitsorozatokat küld a billentyűzet is a számítógépnek, mikor lenyomunk egy billentyűt. (Minden billentyűnek más bitekből álló kódja van, amit a 4
számítógép felismer, s ezáltal tud különbséget tenni az között, hogy melyik betűt jelenítse meg a képernyőn. Ami szintén periféria.) Mivel a szoftver egy nem kézzelfogható dolog, ezért szüksége van olyan eszközre ami a valóság számára érzékelhetővé teszi őt. Ez az eszköz a már előbb emlegetett bitsorozat. A bitekre előre meghatározott módon, áramkörök reagálnak. Azt már a laikusok is tudják, hogy az elektromos áram átalakítható fénnyé, hővé, kinetikus energiává. Ez az alapja, az automatizációnak, és így vezérelhető bármilyen eszköz, egy megfoghatatlan, test nélküli szoftver segítségével. Lehet az pár grammos mobiltelefon, vagy akár több tonnás daru! Az 1.ábrán látható következő fontos egység a rádió adóvevő. Ezek az egységek biztosítják a vezeték nélküli kapcsolatot a szoftver és perifériái között. Ez a modul képes arra, hogy a biteket olyan, térben terjedő elektromágneses hullámmá alakítsa, ami fénysebességgel juttatja el az impulzusokat a célállomáshoz.
Ezt az elektromágneses hullámot,
rádióhullámnak nevezzük. Erre nagy szükség van, mivel ha elektromos vezetékekkel lenne létesítve a kapcsolat, akkor az autó útját kiszámíthatatlanul befolyásolná a kábel súlya, illetve visszatartó ereje. Nem beszélve arról, hogy fel is csavarodhat. A szoftver által küldött impulzusokat rádióhullám formájában megkapja a rádióvevő egység, ami az elektromágneses hullámot visszaalakítja elektromos árammá. A rádióvevő egység, az elektromágneses hullámot, már a feldolgozott formában tovább küldi a vezérlőáramköröknek, amik úgy dolgozzák fel az impulzusokat, hogy az a motorok számára használható legyen. Eddig leírtakban vázoltuk, hogy milyen összefüggések alapján irányítja a szoftver az autót. De az, hogy mi módon dönti el a program, hogy az autónak melyik a legoptimálisabb útvonal a garázsig, még kifejtésre vár. Ennek a problémának a kulcsa a helyzet-meghatározó rendszer. Az ő segítségével képes meghatározni a szoftver, hogy a garázshoz képest hol helyezkedik el az autó. Az egész helyzet-meghatározást az ultrahang adóvevők biztosítják. A hang terjedési idejéből kiszámítható az ultrahang adó, illetve vevő közötti távolság. A vevők
5
2.ábra: Helyzet-meghatározási pontok
a garázs bizonyos pontjain helyezkednek el, ugyanúgy az adók a makett autó mobil adott pontjain foglalnak helyet. Az 2. ábrán látható, mely távolságok lemérésére van szükség ahhoz, hogy a szoftver megállapíthassa az autó helyzetét, a garázshoz képest. Az A1 és A2 pontokon találhatóak az ultrahangvevők, míg a B1 és B2 pontokon, pedig az ultrahangos jeladók.
6
2 A szoftver A FFU ACPS 2 szoftver Delphi programozási nyelvben készült. Többek közt azért választottam a Delphi programozási nyelvet, mert a Delphi fejlesztői környezet jobb más hozzá hasonló programozási nyelvtől. A Delphi az egyik legeffektívebb eszköz, mellyel a Windows operációs rendszer alatt alkalmazásokat hozhatunk létre. Az alkalmazás létrehozásának maximálisan leegyszerűsített fázisa van. A Windows alatti programozás eseményekkel irányított programozás. A programozónak csak a rendszer különféle eseményeire kell reagálnia. A program irányítását az operációs rendszer végzi. Jómagam a Delphi 2005-ös verzióját választottam, melyben többek közt megírtam a „FFU ACPS 2“ c. automatikus parkoló rendszert is. A szoftver ”lelke” lényegében az OpenGL grafikai rendszer, mely megjeleníti a teljes adatbázisban fellelhető adatokat. A szoftver lényegében szimulálja a valóságban végbement változásokat (gépjármű mozgását). A szoftver célja kiszámolni a legoptimálisabb útvonalat a gépjármű és a garázs közt. A szimuláció e útvonal vizuális megjelenítése gépjármű segítségével. A szimuláció valóságban is végbemegy a csatlakoztatott gépjármű bevonásával,.
2.1 Az OpenGL grafika „Az OpenGL hardverfüggetlen programozási felületet biztosító háromdimenziós grafikus alprogramrendszer, melyet a Silicon Graphics Inc. fejlesztett ki. A GL (Graphics Library) több programozási nyelvből elérhető függvénykönyvtárakon keresztül. Az SG (Silicon Graphics) munkaállomások közismert előnye a gyors és igényes grafika, amit hardver oldalról a grafikus kártyába épített egy vagy több geometriai társprocesszor támogat. Ez a koncepció olyan sikeresnek bizonyult, hogy vezető hardver- és szoftvergyártó cégek (többek között a DEC, IBM, Intel, Microsoft és Silicon Graphics) összefogásával létrehoztak egy munkacsoportot, amely ez alapján specifikálta az OpenGL-t. A legtöbb munkaállomás kategóriájú számítógép támogatja az OpenGL-t, de a PC-s világban használt WIN'95, WIN'98, Windows NT, Windows 2000 és Windows XP operációs rendszerek alatt az IBM PC (és vele kompatibilis) gépeken is futtathatunk ilyen alkalmazásokat. Természetesen a UNIX típusú operációs rendszereknek a PC-ken használatos különböző változatai (pl. Linux) is támogatják az OpenGL alkalmazások futtatását. Az egyes grafikus kártyák eltérő képességűek a beépített geometriai társprocesszorok (grafikai gyorsítók) típusától és számától függően. 7
Az OpenGL nem geometriai modellezőrendszer, tehát nincsenek benne összetett geometriai objektumok megadására alkalmas parancsok. Bár – mint mondtuk – az OpenGL nem interaktív rajzoló- vagy grafikus rendszer, azonban rendkívül alkalmas a geometriai modellezőrendszerek, CAD rendszerek, grafikus rendszerek, de még az interaktív játékprogramok grafikai igényeinek kielégítésére is. Ennek köszönhetően széles körben elterjedt. Az OpenGL-t használó alkalmazások több géptípuson, így minden munkaállomás kategóriájú gépen és a nálunk legnépszerűbb PC-ken is futtathatók, még a programok forrásnyelvi szintű portabilitása is megoldható.“ [3] „Az OpenGL segítségével egyszerű, térben elhelyezkedő 3D-s grafikus primitíveket jeleníthetünk meg a képernyőn. Ennek során megválaszthatjuk a térből síkba való leképezés módját, az objektumok színét, megvilágítását és mintázatát. A síkbeli képen többféle módon figyelembe vehetjük azt is, hogy az elemek a térbeli elhelyezkedésből következően takarják egymást.“ [4]
2.1.1 A GLScene komponens csomag A GLScene egy OpenGL programozáshoz készült komponens csomag, mely hatékony eszközöket foglal magába. Ezt a komponens csomagot a Delphi JEDI csoport – egy kiváló Delphi programozókat tömörítő társaság – hozott létre. Többek között az ő fejlesztésük a JVCL csomag, a DirectX for Delphi és a GLScene is. A komponens gyűjtemény segítségével könnyedén tudunk 3D-s alkalmazásokat fejleszteni. Támogatja az idSoftware által létrehozott MD2 és MD3 objektumok megjelenítését, animálását, időjárás effektusok (eső, köd, hó, villám, tűz) létrehozását és még számtalan egyéb dolgot.
8
2.2 A vezérlőprogram adatfeldolgozása és a GLScene komponens csomag kapcsolata A GLScene csomag több komponenst is tartalmaz. A vezérlőprogram a széles választék közül a következőket használja fel:
TGLScene – nézőpont, kameramódok, megvilágítás és objektumok csoportosítására szolgál.
TGLSceneViewer – a TGLScene komponens beállításait, objektumait és különböző lehetőségeit jeleníti meg a felhasználó számára a képernyőn.
TGLMaterialLibrary – a TGLScene komponens objektumaihoz tartozó textúrákat (alkatokat) és azoknak lehetőségeit tároljuk. A TGLScene szoros kapcsolatban van a már említett komponensekkel. Többek közt
tartalmazza a megjelenítendő objektumokat, ezért ezek a komponensek hozzávannak rendelve egymáshoz, tehát egymástól függőek. A vezérlőprogram a következő objektumokkal dolgozik:
GLCamera – többek közt a kameramódra és a perspektívára szolgáló objektum.
GLLightSource – a megvilágításra és annak tulajdonságaira szolgáló objektum.
DummyCube – az objektumok csoportosítására szolgál.
GLLines – vonalak (szakaszok), melyek a helyzet-meghatározási távolságokat jelenítik meg. Ezeknek a távolságoknak a hossza a helyzet-meghatározási pontok (A1, A2, B1, B2) térben való fekvésétől függnek.
GLFreeForm – szabad formák, melyek a környezetet és a gépjárművet jelenítik meg. Ez az objektum támogatja a “3ds“ kiterjesztésű adatállományokat, mellyel a szoftver is dolgozik. Lényeges tudnivaló az, hogy e objektum tulajdonságai közül a térben való fekvése (position[x, y, z]) és forgatása a tengelyek körül (pitchangle, rollangle, turnangle) az objektum középpontjára vonatkozik.
9
2.2.1 A vezérlőprogram adatfeldolgozása matematikai eszközökkel A vezérlőprogram a mentett adatok segítségével számol. Ezek az adatok record típusban kerülnek mentésre a FFU ACPS 2 Editor segítségével, melynek kiterjesztése “ffuacps2”. A record típusban megtaláljuk a kvóták értékeit és még további információkat a gépjárműről és használójáról. A matematikai számítások a kvóták értékétől függően változnak.
2.2.1.1 A gépjármű mozgása közben leírt ívek meghatározása A gépjármű kanyarodása után végbemenő leírt ív hossza az elülső kerekek által közbezárt szögétől függ. Kanyarodás után a gépjármű és kerekei előre ill. hátramenetnél különböző íveket írnak le. Ezek az ívek megtalálhatók az 5 koncentrikus kör valamelyikén, melyet az 3.ábrán láthatunk. Ezeknek a koncentrikus köröknek a középpontja a K pont. A P pont a gépjármű középpontját szemlélteti, a γ szög pedig az elülső kerekek által közbezárt szögét.
k
γ
90°-γ
P r K
90°
a
3.ábra: A gépjármű mozgása közben leírt ívek
Ahhoz, hogy megtudjuk határozni a gépjármű helyzetét az előzőhöz képest, szükségünk van annak a foknak az értékére, amelyet kanyarodásnál előre ill. hátramenetnél 10
bezár (4.ábrán látható β szög). A β szög értéke attól az értéktől függ, melyet a gépjármű egy meghajtási lépés mozgása közben leír, tehát minél nagyobb az r (k kör sugara), annál kisebb a β szög értéke, mivel nagyobb sugarú körnek nagyobb a kerülete is, ezért az egy meghajtási lépés hossza többször fordul elő a k körvonalon. Bal első kerék íve Bal hátsó kerék íve
k
Gépjármű középpontjának íve Jobb első kerék íve Jobb hátsó kerék íve
P2 r q α
β r P1
β
α
90°
K
w 4.ábra: Egy meghajtási lépés alatt leírt ívek
Az ábrán látható q ill. w azokat a távolságokat
szemléltetik,
a gépjármű az előző helyzetéhez képest változott. koordináta
Ha
ezt
P2
amik q
Descartes-féle
rendszerben
P1
szeretnénk
szemléltetni, akkor a q megfelelne annak ε
az értéknek, amelyet a Pn pont a Pn-1 ponthoz képest csúszott az y tengelyen, a w értéke pedig annak, amit a P pontok az x tengely szerint csúsztak.
δ K
w
5.ábra: Gépjármű csúsztatása egy meghajtási lépésnél
Az 5.ábra a q ill. a w értékeinek kiszámítására ad magyarázatot. Mivel ismerjük a δ és ε szögek értékét, ezért a koszinusz függvény segítségével kiszámolhatók az egyes P pontok közti távolságok. 11
2.2.1.2 A gépjármű elhelyezkedése a parkoló téren Ahhoz, hogy megtudjuk határozni a legoptimálisabb útvonalat a parkolóhely és a gépjármű közt, szükségünk van a gépjármű pontos helyzetére a parkoló téren, mivel a vezérlőprogram e helyzetből indul ki az útvonal meghatározásakor. A következő ábra ezt a meghatározást szemlélteti:
A1
a1a2
A2
90°
a2b1 a1b1 d c
B1
v→ B2
V
6.ábra: Gépjármű helyzetének meghatározása a parkoló téren
A 6.ábrán a B1, B2 pontok (adók) a gépjárműben elhelyezett helyzet-meghatározási pontokat, az A1, A2 pontok (vevők) pedig a gépjárművön kívül fekvő helyzet-meghatározási pontokat szemléltetik. A bemenő jeleken keresztül megkapjuk az egyes pontok közti távolságokat. A vezérlőprogram kiindulásként elfogadja az a1b1 és a2b1 távolságok értékét. Az a1a2 távolság az adatbázisból (recordból) ismert. Az │A1,B2│ és │A2,B2│ értékét feltételezi, hogy igazak, de nem fogadja el. Ezeket az értékeket felhasználva megkapjuk az A1A2V háromszöget, melynek oldalai: a1a2, c és d. Ha a Descartes-féle koordináta rendszerben gondolkodunk és összekötjük a B1 és V pontokat, egy v→ irányvektort kapunk. Ez a vektor határozza meg a B2 pont helyzetét a B1 ponthoz viszonyítva.
12
2.2.1.3 Útvonalszámítás a gépjármű és a parkolóhely közt Ahhoz hogy kiszámítható
legyen a legoptimálisabb útvonal a gépjármű és
a parkolóhely közt, ismernünk kell a gépjármű
pontos
helyzetét
G – parkolóhely T – parkoló tér
G
a parkoló téren. Ha ezt ismerjük, kiszámítható azaz útvonal, amely a gépjárművet a parkoló tér alsó
T
részére navigálja (7.ábrán látható II. vagy IV. területrész). A gépjármű
első
I.
III.
II.
IV.
lépése
nagyban függ attól, hogy a parkoló tér mely területrészén helyezkedik el, továbbá attól, hogy milyen szöget
zár
be
a parkoló
tér
középvonalaihoz képest. A 8.ábrán látható
P
pont
a gépjármű
7.ábra: Területrészek a parkolótéren
középpontját szemlélteti. A T1, T2, T3
és
T4
szimbólumok
a képsíkokat
szemléltetik. A T1 képsíkba azok a szögek
T1
T3 0°
esnek, melyek értéke nagyobb 0-nál, de kisebb 90-nél, a T2-be azok, melyek értéke nagyobb 90-nél, de kisebb 180-nál, az T4-be a 180-nál
90°
nagyobbak, de a 270-nél kisebbek és a T3-ba
0° < 90° >
P
90° < 180° >
azok, melyek nagyobbak 270-nél, de kisebbek
270° < 360° >
270°
180° < 270° >
360-nál. A gépjármű elülső részét az ábrán látható
nyíl
szemlélteti.
Az
útvonal
megszerkesztése szempontjából a gépjármű abba a képsíkba fog esni, mely tartalmazza a gépjármű elülső részét, tehát az ábrán
180°
T2
T4
8.ábra: Képsíkok a gépjármű forgatásánál
szereplő nyilat. A vezérlőprogram felismeri és értékeli a gépjármű helyzetét, és annak megfelelően számol. A számolást az előre elkészített útvonal minták szerint végzi el. Az útvonal minták a 9.ábrán láthatóak. A vezérlőprogram akkor választja az I.a megoldást, ha a gépjármű elülső része a feljebb említett T2 vagy a T3 képsíkba, az I.b 13
megoldást pedig akkor, ha a T1 vagy a T4 képsíkba esik és a gépjármű a parkoló tér szintén feljebb említett I. területrészén helyezkedik el. A II.a megoldást abban az esetben választja, ha a gépjármű elülső része a T2 vagy a T3 képsíkba, a II.b megoldást pedig akkor, ha a T1 vagy a T4 képsíkba esik és a gépjármű a parkoló tér II. területrészén helyezkedik el.
2 1
1
3
I.a
II.a
I.b
2
II.b
1 2 3
1 2
9.ábra: Útvonal-tervezés az egyes területrészeken
A III. területrészen történő útvonal megoldás az I. területrész teljes tükörképe, éppúgy, mint a IV. a II. területrésznek. Miután a gépjármű a kiszámított útvonal segítségével elfoglalta pozícióját a parkoló tér alsó részén, kiszámítódnak azok az útvonallépés sorozatok, mellyel a parkolóhelyre áll be. E útvonaltervezés többek közt 2 megoldás közül születik, mint azt a következő ábra is szemlélteti:
14
G – parkolóhely, T – parkoló tér, A – gépjármű
G
G 4
3
T
T
r 2
3 2
1
1
r
A
A < (2*r) - h
> (2*r) - h
10.ábra: Útvonal tervezés a parkoló
11.ábra: Útvonal tervezés a parkoló tér alsó
tér alsó részétől – Első eset
részétől – Második eset
A 10.ábra azt az esetet szemlélteti, mikor a gépjármű- és a parkolóhely középvonala közti távolság nem haladja meg azt az értéket, melyet a gépjármű maximális kanyarodás során leírt kör átmérője (2*r) megad, figyelembe véve azt a h számot, melyet ebből az értékből kivonunk. A h értéke a gépjármű paramétereiből adódik, figyelembe véve a gépjármű középpontjának helyzetét. A 11.ábra azt az esetet szemlélteti, mikor a gépjármű- és a parkolóhely középvonala közti távolság meghaladja azt az értéket, melyet a gépjármű maximális kanyarodás során leírt kör átmérője (2*r) megad, figyelembe véve a h számot, melyet ebből az értékből kivonunk. A 2. lépés értéke az az érték lesz, amit a középvonalak közti távolság és a leírt kör átmérőjének különbsége megad, figyelembe véve a h számot. A következő ábra azt az esetet szemlélteti, mikor a vezérlőprogram által kiszámolt középvonalak távolsága nem haladja meg a 10.ábrán látható (2*r)-h értéket:
15
t
P3 r α Q ki2
90°
u
P2
β
90°- β
ki1 r α r 90°
P1
α
β
90°
K p1p2
p2p3 t
e 12.ábra: Útvonal tervezés a parkoló tér alsó részétől – Első eset tervrajza
A ki1 és ki2 körívek értékei a β szög nagyságától függnek. A β szög nagysága megközelítőleg kiszámítható az e és t távolságokból. E szög értéke első lépésként 0-val egyenlő. A szög értékét egy sorozatban mindig növeljük egy tetszőleges, lehető legkisebb n számmal. A β szöget addig növeljük n-el, míg a a Descartes-féle koordináta rendszerben a Q pont x koordinátájához hozzáadott t távolság nem lesz nagyobb, vagy egyenlő a parkolóhely középpontja által megadott x koordinátájával. A megkapott r sugarú, K (vagy Q) középpontú ki1 (vagy ki2) köríven kiszámítható azoknak a meghajtási lépéseknek a darabszáma, amelyet a gépjármű a tér aljáról a parkolóhely középvonaláig megtesz.
16
3 Ismerkedés a FFU ACPS 2-vel A következőkben a FFU ACPS 2 kezelőfelületét fogjuk ismertetni. Mielőtt a kezelőfelületet ismertetnénk, szeretnénk a program nevéről pár gondolatot szólni. Mielőtt a program lényegi funkcióját elemeznénk a program mivoltát kell megértenünk. Ennek legegyszerűbb módja, ha a nevét vesszük alapul. Az „ACPS“ egy rövidítés mely a következő szavakból tevődik össze: A – Automatic C – Car P – Parking S – System Lényegében egy olyan szoftverről van szó, mely az egyéb külső hardware-i elemeinek segítségével képes bármilyen típusú gépjárművet leparkoltatni egy garázsba vagy más matematikailag pontosan körbehatárolható helyre. A világon több nagy, neves autógyártó cég is kifejlesztett már hasonló technológiákat, de ezek közül egyiket sem lehetne univerzálisan bevált technológiának nevezni. Az autógyártók technológia mindig csak saját terméküket tudták vezérelni esetlegesen saját termékcsaládjuk összes tagját. Ezzel ellentétben viszont a FFU ACPS 2 rendszere egy univerzálisan minden gépjárműre alkalmazható technológiát kínál. Ahhoz, hogy mindent átfogó képet kapjunk a rendszer működéséről meg kell ismerkednünk a szoftver kezelőfelületével, szoftver megoldásaival éppúgy, mint a hardware-i megoldásokkal. A következő fejezetekben ezeket fogjuk mélyebben nagyító alá venni.
3.1 Adatok a rendszerben A vezérlőprogram adatbázissal dogozik, a file-okat megtaláljuk a könyvtáron belül különböző mappákban. A mappák tartalma: „Adat\Kormany\“ – A FFU ACPS 2 vezérlőprogram beolvasandó kormány adatait tartalmazza (“*.3ds“ fájlok). „Adat\Nyelv\“ – Az adott nyelvek szavait tartalmazza txt szövegformátumban a FFU ACPS 2 vezérlőprogramhoz. „Adat\Editor\“ – A FFU ACPS 2 Editort tartalmazza. 17
„Kepek\“ – A FFU ACPS 2 és Editor vezérlőprogramok megjelenítendő képeit tartalmazza. „Kurzor\“ – A FFU ACPS 2 vezérlőprogram ikonjait tartalmazza (“*.ico” fájlok).
3.2 Kezelőfelület A FFU ACPS 2 vezérlőprogram Borland Delphi 2005 Personal Edition fejlesztői környezetben készült így Microsoft operációs rendszerekből jól ismert grafikai elemeket tartalmazza. A felhasználót az első indítás után a következő kép fogadja:
13.ábra: Kezdőablak
1. Adatbázis beolvasása – egy már létező adatbázis beolvasása, Kattintáskor egy előugró párbeszédablakban választhatjuk ki az adatbázist. A szoftver csak *.ffuacps2 kiterjesztésű adatbázisokat ismer fel. 2. Szerkesztő indítása – ha még nem áll rendelkezésünkre adatbázis, akkor a beépülő szerkesztő segítségével könnyedén létrehozhatunk egyet. Kattintásra elindul a FFU ACPS 2.0 Editor ahol az adatbázist létrehozhatjuk. A Szerkesztőből való kilépés után lehetőség van a főprogramba való visszalépésre. 3. Kilépés – A programból való kilépés. 4. Névjegykártya – Az előugró ablakban a készítők mutatkoznak be, közzétéve elérhetőségüket is. 5. Szoftver súgója – Beépített súgó, amely minden kérdésedre választ ad. 6. Verziószám – Itt találod azt az információt, hogy a szoftver mely verzióját használod. A jelenleg legfrissebb verzió a 2.0-ás. 18
3.2.1 Menüpanel Erről a panelről érhető el a szoftver összes funkciója. A rajta található menüpontok segítségével állíthatjuk be és szabhatjuk testre a szoftvert. A panel nem helyezhető át és nem távolítható el.
14.ábra: Menüpanel
1. Adatbázis beolvasása – egy már meglévő adatbázis beolvasása. Kattintáskor egy előugró párbeszédablakban választhatjuk ki az adatbázist. A szoftver csak *.ffuacps2 kiterjesztésű adatbázisokat ismer fel. 2. Szerkesztő indítása – ha még nem áll rendelkezésünkre adatbázis, akkor a beépülő szerkesztő segítségével könnyedén létrehozhatunk egyet. Kattintásra elindul a FFU ACPS 2.0 Editor ahol az adatbázist létrehozhatjuk. A Szerkesztőből való kilépés után lehetőség van a főprogramba való visszalépésre. 3. Tervek – itt ellenőrizhetjük le adatbázisunk adatait, amelyeket előleg a szerkesztő segítségével hoztunk létre. 4. Egyéni adatok – a közzétett szimulációs és parkolási adatok módosítására szolgáló menüpontok. Ezek az adatok a Szerkesztőtől függetlenek. 5. Háttérszín – A programban használt háttérszínek megválasztása 6. Testreszabás
–
A
szoftver
vizuális
elemeinek
testre
szabása
(panelek
elhelyezkedése/láthatósága, helyzet-meghatározási pontok, nyelvek). 7. Vizuális funkciók – itt válthatunk szimuláció és a tényleges hardveri támogatás között. 8. Információ – itt találhatjuk a szoftver súgóját valamint a névjegykártyát. 9. Kilépés – a szoftverből kilépés lehetősége. Ha gépjárművünket sikeresen beparkoltuk nyugodt lelkiismerettel használjuk ezt a gombot.
19
3.2.2 Információs panel Itt információkat kapunk a szimuláció vagy parkolás állapotáról, a beolvasott profilról és gépjárműről. 1. Profilnév – itt az adatbázisunk profilnevét találjuk, általában ez megegyezik a felhasználó nevével. 1. Profilkép – egy, a felhasználó által a szerkesztőben megadott kép, amelyet a szoftver hozzácsatolt a profiljához.
Általában
itt
vagy
a
felhasználó
önarcképe vagy az általa használt gépjármű képe található. 2. Gépjármű típus – a felhasználó gépjárműjének típusa. Ez is módosítható a szerkesztő segítségével. 3. Kanyarodás – egy animációs ablak, amely szimuláció vagy 15.ábra: Információs panel
a
tényleges
hardveres
parkolásnál
játszik szerepet. Itt láthatjuk azt, ha a gépjármű kanyarodást
hajt
végre,
tehát
elfordítja
a
kormánykerekét. Ha az animáció az óra mutatójának járásával egyirányú, akkor a gépjármű kerekei jobbra fordulnak, tehát a gépjármű felkészül a jobbra való kanyarodáshoz. Amennyiben az animáció ellentétes irányú akkor a gépjármű kereke bal irányba mozdul el, hogy előkészítse a gépjárművet a balra való kanyarodáshoz. 4. Meghajtás – a gépjármű előre és hátrahaladásáról kapunk információ animáció segítségével. 5. Információs nyilak – itt információt kapunk arról, hogy a gépjármű milyen mozgást végez (hátra, balra, jobbra, előre) valamint arról, hogy a kormánykerék hány fokban van elfordítva.
20
3.2.3 Adat panel Itt a grafikai megjelenítést tudjuk változtatni, látjuk a gépkocsi pontos helyzetét a helyzet-meghatározási pontok szerint, látjuk mikor történik adatküldés a szoftver és a hardveres periféria között valamint, hogy milyen útvonalat csináltunk
vagy generáltattunk
ki a
számítógéppel
a
szimulációhoz vagy parkoláshoz. 1. Kameramód
–
itt
a
kamera
mozgását
tudjuk
befolyásolni a. Normál használat b. Kamera mozgatása fel, le, jobbra, balra c. Kamera mozgatása szabadon d. Kameranézet távolítása vagy közelítése 2. Helyzetmeghatározási távolság – itt látjuk hogy milyen távolság van az egyes helyzet-meghatározási pontok között 3. Adatküldés – itt animációt láthatunk, ha történik adatforgalom a periféria és a szoftver között (ez csak csatlakoztatott perifériával működik). 4. Útvonal lista – a szoftver beépített intelligenciája 16.ábra: Adat panel
automatikusan
generál
egy
útvonalat
melynek
végeredménye a sikeres parkolás, de lehetősége van a felhasználónak saját útvonal készítésére is. Itt ezeket a listákat láthatjuk. A lista csak akkor nem üres, ha éppen szimulációt hajtunk végre vagy parkolunk.
3.2.4 Lejátszás panel Itt a szimulációt/parkolást irányíthatjuk és eme művelet végrehajtásának állapotáról kapunk információt.
21
17.ábra: Lejátszás panel
1. Leállítás – a szimuláció/parkolás megállítása 2. Szünet – a szimuláció/parkolás szüneteltetése 3. Lejátszás - a szimuláció/parkolás indítása 4. Információs rész – itt információt kapunk arról, hogy a szoftver összesen mennyi lépés segítségével hajtja végre a szimulációt/parkolást, éppen melyik lépésnél tart valamint egy becsült idő amennyi alatt a szimuláció/parkolás végrehajtható. 5. Folyamat – a szimuláció/parkolás folyamatát követhetjük nyomon.
3.2.5 Tervek A kattintás után egy menüből kiválaszthatjuk, hogy milyen adatokat szeretnénk megnézni, választhatunk a Gépjármű/Tér – Parkolóhely/Helyzetmeghatározás valamint az összegzés menüpont közül. A kívánt menüpont kiválasztása után megnyílik egy információs ablak a kívánt információval. Az információs ablak azt is lehetővé teszi, hogy egyes csoportosított adatok között válthassunk. Ezt könnyedén megtehetjük az ablak tetején megtalálható fülek segítségével.
3.2.6 Egyéni adatok
Itt nagyon precíz beállításokat végezhetünk. Lehetőségünk nyílik: -
a helyzetmehatározási távolságokat beállítani manuálisan
-
saját útvonalistát készíteni
-
beállítani a kanyarodás és lépések közt eltelt időt
-
irányítani a gépjárművet manuálisan
22
3.2.6.1 Helyzetmeghatározási pontok beállítása
18.ábra: Helyzetmeghatározási pontok
1. Helyzet-meghatározási pontok között lévő távolságokat adhatjuk meg milliméterben. 2. A felhasználó által megadott helyzet-meghatározási távolságok nem mindig pontosak, ezért ezt a gombot használva a szoftver leellenőrzi az adatok hitelességét, és ha szükséges pontosítja azokat. 3. A gépjárműt helyezhetjük el a parkoló térben olyan helyre ahol az a valóságban megtalálható, vagy amire szükségünk van a szimulációhoz. Vigyázat, használatával a helyzet-meghatározási pontok közt lévő távolságok változnak! 4. Vizuális ablak, amelyben láthatjuk a gépkocsi, helyzet-meghatározási pontok által kiszámolt helyzetét. Ha a helyzet-meghatározási pontok láthatóságát bekapcsoltuk a szoftverben, akkor láthatjuk az ábrán látható külön színnel jelölt vonalakat is amelyek az egyes helyzet-meghatározási pontokat kötik össze. 5. A beállítások ezzel a gombbal fogadhatjuk el. Megnyomására a beállított adatok mentődnek és az ablak bezáródik. A szoftver ezentúl az új adatok alapján működik tovább. 6. Ha nem szeretnénk módosítást eszközölni a már beállítottakon, akkor ezt a gombot használjuk. Vigyázat, ha megnyomjuk minden, amit az ablakban tettünk meg nem 23
történté válik! A szoftver ebben az esetben az éppen aktuális adatokkal dolgozik továbbra is.
3.2.6.2 Egyéni útvonal lista készítése Itt saját útvonalat készíthetünk, ami alapján a szimuláció/parkolás történik.
19.ábra: Egyéni útvonal lista
1. A listába az egyes irányok és a lépésszámok kerülnek, ezek határozzák meg az útvonalat, amelyet a gépkocsi leír a szimuláció/parkolásnál. A rövidítések előtt található szám mindig a lépésszámot jelöli. Az egyes rövidítések a következőket jelentik: a. GE – gépjármű előre b. GH – gépjármű hátra c. KB – Gépjármű kanyarodása balra d. KJ – Gépjármű kanyarodása jobbra 2. A listából tudunk egy kijelölt elemet törölni ezzel a gombbal. 3. A teljes listát törölhetjük ezzel a gombbal. 4. A lépésszámot megadhatjuk a billentyűzet numerikus részét használva vagy egérrel a beviteli mező jobb oldalán található fel/le nyilak segítségével.
24
5. Erre a gombra kattintva az útvonallista kiegészül a következővel (ha pl.: lépések száma = 10): “10 GE”. Ez azt jelenti, hogy a gépjármű haladjon előre 10 lépést. 6. Erre a gombra kattintva az útvonallista kiegészül a következővel (ha pl.: lépések száma = 10): “10 GH”. Ez azt jelenti, hogy a gépjármű haladjon hátra 10 lépést. 7. Erre a gombra kattintva az útvonallista kiegészül a következővel (ha pl.: lépések száma = 10): “10 KB”. Ez azt jelenti, hogy a gépjármű fordítsa el kerekeit balra pontosan 10 lépést. 8. Erre a gombra kattintva az útvonallista kiegészül a következővel (ha pl.: lépések száma = 10): “10 KJ”. Ez azt jelenti, hogy a gépjármű fordítsa el kerekeit jobbra pontosan 10 lépést. 9. Ezen gombra való kattintás után az így elkészült egyéni útvonallista elmentődik, és az balak bezáródik. 10. Megnyomása után az ablak bezáródik, és az eddig létrehozott útvonallista törlődik. Ha már volt előtte létrehozva egyéni útvonallista akkor az nem törlődik, az továbbra is felhasználható.
3.2.6.3 Kanyarodási és meghajtási lépések között eltelt idő beállítása A szoftver egy előre definiált idővel dolgozik (alapértelmezés). Ez egy átlagos sebességet biztosít mind a szimulációnál mind a parkolásnál. A sebességet a csúszkák segítségével állíthatjuk be. Ha balra toljuk akkor a sebességet csökkenteni, ha jobbra akkor a sebességet növelni tudjuk.
20.ábra: Kanyarodási- és meghajtási lépések közti idő
25
3.2.6.4 Gépjármű irányítása manuálisan A gépkocsit irányíthatjuk a billentyűzeten található kurzorbillentyűk segítségével, vagy egyszerűen a megfelelő gomb lenyomásával. Ezen funkció a szimulációra valamint a csatlakoztatott gépjárműre is kihat.
21.ábra: Kézi vezérlés
3.2.7 Testreszabás Itt beállíthatjuk, melyik panelt szeretnénk láthatóvá tenni esetleg elrejteni, a panelek hol helyezkedjenek el, valamint, hogy a helyzet-meghatározási távolságok láthatóak legyenek-e.
22.ábra: Testreszabás almenü pontjai
Egy fontos beállítási lehetőség, hogy beállíthatjuk, hogy a szoftver milyen helyzetben vagy időközönként ellenőrizze az adatok pontosságát (Helyzetmeghatározás a meghajtási lépések között). Választhatunk: -
1 – minden meghajtási ciklus után + elején 26
-
2 meghajtási ciklus után + elején
-
3 meghajtási ciklus után + elején
-
4 meghajtási ciklus után + elején
-
5 meghajtási ciklus után + elején
-
6 meghajtási ciklus után + elején
-
7 meghajtási ciklus után + elején
-
8 meghajtási ciklus után + elején
-
9 meghajtási ciklus után + elején
-
10 meghajtási ciklus után + elején
-
Csak az elején
-
0 – nincs helyzetmeghatározás A legpontosabb és a legmegbízhatóbb beállítás a legelső (– minden meghajtási ciklus
után + elején) – ebben az esetben minden előre és hátramenet előtt és után leellenőrzi az adatait, hogy pontosak e. Amennyiben eltérést észlel, korrigálja az adatokat és újratervez. Ha a felsorolt beállítási lehetőségek közül a legutolsót választjuk, akkor a szoftver a szimuláció/parkolás közben nem ellenőrzi adati pontosságát. Ezen beállítási lehetőség használatát csak saját felelősségre használjuk. Jelenleg a szoftver két különböző nyelvet támogat (Magyar, Angol). Az alapértelmezett nyelv a magyar. Ha nyelvet váltunk, akkor a szoftverben használt összes felirat a kívánt nyelvre változik és a következő indítás után visszaolvasódik.
3.2.8 Vizuális funkciók Itt két lehetőség közül választhatunk: -
CPU – ebben az esetben csak szimulációkat végezhetünk.
-
CPU + Csatlakoztatott gépjármű – ebben az esetben végezhetünk csak szimulációkat valamint tényleges parkolást is. A csatlakoztatott gépjárművet a szoftver nem érzékeli automatikusan. Hogy érzékelni tudja, először ezt a funkciót kell bekapcsolnunk. Ha ezt választjuk és még sincs csatlakoztatva gépjármű, akkor a szoftver visszatér szimuláció módba.
27
4 Ismerkedés a FFU ACPS 2 Editorral A FFU ACPS 2.0 szoftver egy beépített adatbázis szerkesztővel is rendelkezik, melynek segítségével az adatokat könnyen és egyszerűen vihetjük be a rendszerbe. A szerkesztőben lehetőségünk nyílik nemcsak új adatbázis létrehozására, hanem egy már létező adatbázis megnyitására is. Ezeket az adatbázisokat, könnyedén menthetjük, valamint törölhetjük is. A szerkesztő nagyon sok beépített ellenőrző mechanizmust tartalmaz, amely meggátolja, hogy olyan adatokat vihessünk be a rendszerbe, amely gátolná annak zökkenőmentes működését, vagy esetleg a szoftver meghibásodásához vezetne. Először is nézzük meg, hogy milyen lehetőségeink vannak a szerkesztő használatánál.
23.ábra: Editor főmenüje
4.1 Új adatbázis Az adatok 4 különböző csoportba lettek besorolva (Gépjármű, Tér/Parkolóhely, Helyzet-meghatározás, Általános beállítások) amelyek közül 2 még további alcsoportokat is tartalmaz.
24.ábra: Új adatbázis
28
4.1.1 Alaprajz Ha értünk a 3D-s szoftverekhez, például a 3D Studio Max-hoz, akkor a benne készített autónkat könnyen használhatjuk a FFU ACPS 2.0-ban. Az alaprajz menüpontnál lényegében a gépkocsi alapdimenzióira, valamint a gépjármű karosszériájának kinézetére vagyunk kíváncsiak.
25.ábra: Gépjármű alaprajzának beállításai
4.1.2 Kerekek A kerekek pontos elhelyezkedésének ismerete nagyon fontos, mivel ezek segítségével lehet kiszámítani a gépkocsi által leírt út ívét. Az első látásra bonyolultnak tűnő rubrikaáradat könnyen megfejthető a mellékelt sematikus ábrának köszönhetően.
29
26.ábra: Gépjármű kerekeinek beállításai
4.1.3 Léptetőmotor A gépkocsi modellt 2 léptetőmotor hajtja melyek külön-külön irányíthatóak. Az egyik a meghajtásért a másik pedig a kanyarodásért felelős. Ezen a fülön az ezzel kapcsolatos beállításokat végezhetjük el.
4.1.4 Tér / Parkolóhely A parkolás elég nehéz, ha nincs parkolóhely. Ezen a fülön a parkolóhellyel kapcsolatos beállításokat találjuk. Itt megtalálhatóak nemcsak a parkolóhely dimenzióinak megadására szolgáló rubrikák egy sematikus ábra mellékelésével, hanem a parkolóhely 3D-s kinézetét ábrázoló grafikus állomány feltöltésére szolgáló gomb is.
30
27.ábra: Tér / Parkolóhely alaprajzának beállításai
4.1.5 Helyzet-meghatározás A Helyzet-meghatározás fontos, hogy meg tudjuk állapítani a gépkocsi és a parkolóhely viszonyított helyzetét. Csakúgy, mint a gépjárműn éppúgy a parkolóhelyen is két helyzet-meghatározó pontot helyeztünk el. Ezek térbeli elhelyezkedésének koordinátái kiemelkedő fontosságú adatoknak számítanak a parkolási útvonal számításánál.
28.ábra: Gépjármű helyzetmeghatározási pontjainak beállításai
31
29.ábra: Tér helyzetmeghatározási pontjainak beállításai
4.1.6 Általános beállítások Itt a program által használt alapbeállításokat találjuk. Olyanokat, mint Profilnév, gépjárműnév, gépjárműkép, valamint a mentési útvonalat. A profilnév lényegében megegyezik a felhasználó nevével. A gépjárműnév pedig a felhasználó gépkocsijának típusa. A profilhoz kép is csatolható, amelyről aztán könnyen azonosítható később a profil. A mentési útvonalnál csak egy könyvtárat kell megadni és a program automatikusan a megadott könyvtárba menti az összes olyan állományt, amely a program akadás-mentes működéséhez szükséges.
30.ábra: Általános beállítások
32
4.2 Adatbázis beállítása Itt egy már régebben létrehozott adatbázis olvashatunk vissza a szerkesztőbe. Ez jó akkor, ha a gépjárművünkön valamilyen paraméter megváltozott, esetleges új parkolóhelyünk van. Az így módosított adatok természetesen újból elmenthetőek.
4.3 Adatbázis mentése Ez az opció csak akkor látható, ha már van mit elmenteni, tehát ha létrehoztunk, vagy beolvastunk egy adatbázist. A mentés előtt lefut egy ellenőrző algoritmus, amely leellenőrzi, hogy a minimálist, amelyet a szoftver megkövetel megadtuk-e. Ha esetlegesen hibákat vél felfedezni, azokat egy párbeszédablakban adja a felhasználó tudtára, amelyből könnyen megállapítható, hogy mit kell kijavítanunk ahhoz, hogy minden tökéletesen működjön. Ha esetleg túl sok javítani való volna, akkor az így kigenerált listát elmenthetjük, hogy később is tudjunk foglalkozni vele. Ha nem talál hibát az ellenőrző, akkor az adatokat elmenti abba a mappába, amelyet a mentési útvonalnál megadtunk.
31.ábra: Hibamegjelenítő
33
4.4 Adatbázis törlése Ez a menüpont arra szolgál, hogy egy már létrehozott és elmentett adatbázist, amit nem szeretnénk használni, letöröljünk a merevlemezről. Tehát ebben az esetben egy könyvtárról van szó, amely teljes tartalma törlődni fog.
4.5 Nyelvek Jelenleg a program két nyelvet tartalmaz, melyek között a használat közben is bármikor válhatunk. Választhatunk Magyar és Angol nyelv között. Az egyes fordítások tartalmazzák az összes gomb, felirat és bármilyen szócikk fordítását, amelyet a szerkesztő tartalmaz.
4.6 Kilépés Kilépésnél két lehetőség közül választhat a felhasználó. Választhat, hogy teljes mértékben kilép a programból, vagy visszalép a főprogramba. Ha az első változatot használja a felhasználó, akkor a szoftver bezáródik. Ha viszont a másodikat, akkor elindul a FFU ACPS 2.0.
34
5 Periféria Ezen fejezet célja, azon áramkörök ismertetése melyek a perifériát alkotják, és fizikailag megvalósítják a FFU ACPS nevű projektet. Az első és legfontosabb áramkör, az S/P átalakító. Ez egy olyan elektronika, ami leegyszerűsíti a periféria, illetve a számítógép közti kapcsolatot. A FFU ACPS-nek a működéséhez, és irányításához szükség van néhány, vezérlő funkcióval rendelkező elektromos impulzusra. Ezeket a jeleket el kell juttatni az elsődleges perifériába, ami ebben az esetben, a garázst jelenti. A jeleket vagy rádióhullámmal továbbítjuk, vagy vezetékekkel kötjük össze a kiindulási pontjuktól, a célállomásukig. A mi esetünkben, az egyszerűség kedvéért a vezetékes megoldást választottuk, mert kevésbé költséges, és gyorsabban kivitelezhető, mint a rádióhullámú átvitel. Ha nem lenne ez a S/P átalakító, vagyis soros párhuzamos átalakító, akkor azt hiszem elvesznénk a számítógép, és a garázs közt húzódó huzalok, vezetékek erdejében. A soros párhuzamos átalakító ebben az erdőben segít tájékozódni, mégpedig úgy, hogy a vezetékek számát egyetlen egy kábelre redukálja. Így a mozgásban is nagyobb rugalmasságra teszünk szert, és a FFU ACPS üzembe helyezése is leegyszerűsödik.
32.ábra: S/P átalakító lábkiosztása
Ez az átalakító, egy léptetőregiszter, mely a 32. ábrán látható. A léptetőregiszter a 4094-es IC-be van integrálva, mely feltöltődik a számítógép által sorban küldött jelekkel, majd egy impulzus hatására párhuzamos állapotba kerülve, egyszerre kiereszti őket. Így vezérelve, a léptetőregiszter adott lábaira kapcsolt áramköröket. Szükség van még egy órajelre, ami 35
irányítja a léptetőregiszterbe juttatott jelek szabályos lépését. Magyarán ez lépteti a beolvasott jeleket, a regiszterek közt. Ezeknek a lépéseknek összhangban kell lenniük az USB-ről küldött jelek frekvenciájával. Hogy ezt a szinkronizációt megoldjuk, az órajel küldését a számítógéppel végeztetjük el, az LPT port szabadon maradt lábai segítségével. A számítógépet a garázzsal, valójában 2 kábel köti össze. Egyik, a fentebb említett S/P átalakítóval rendelkező USB csatlakozó, a másik pedig a paralel portra kapcsolt kábel. Ebből azaz előnyünk származik, hogy a paralel portról folyamatos jeleket tudunk továbbítani. Ilyen folyamatos jelekre is szükségünk van, ugyanis a rádió adóvevőket csak így tudjuk hibamentesen vezérelni. A soros jelküldés hátránya, hogy különböző impulzusokat kell továbbítani egymás után. Ebben az esetben, ha 1-es után 0 következik, akkor az már nem jelent folyamatos áramellátást. Azt pedig nem engedhetjük meg, ha az autó meghajtását rádióhullámokkal irányítjuk. Az ilyen jelkiesés, az autó útjának szaggatott lefolyásában nyilvánulhatna meg. Az autó nem haladna előre folyamatosan, ami rontaná a projekt minőségét. A már sokat emlegetett rádió adóvevő egy olyan áramkör, ami vezeték nélküli kapcsolatot biztosít a számítógép és a vezérlendő motorok között. A rádióhullámok frekvenciája 9 KHztől 3 GHz-ig terjed. Ahhoz, hogy elmagyarázhassam, ennek jelentését, egy csepp fizikával kell megfűszereznem beszámolómat. Az elektromos áram, szabad elektronok mozgását jelenti az elektromos vezetőkben. Ezen elektronok mozgása, elektromágneses hullámokat gerjeszt, amelyek a szabad térben terjednek tovább. Az elektromágneses hullám másodpercenkénti rezgésszáma a frekvencia. Ha megfelelő méretű antennát csatlakoztatunk az áramkörhöz, ezeket a hullámokat úgy kilehet küldeni a nagyvilágba, hogy egy megfelelő vevővel fogni lehessen őket. Minden rádiózással kapcsolatos technika, ezen az elven működik, így a miénk is. Ezeket az elektromágneses hullámokat a rádióvevő, a vezérlőegység számára használható elektromos árammá alakítja át.
36
33.ábra: Léptetőmotort vezérlő áramkör
Az autó motorjait vezérlő áramkörök lelke (33. ábra) egy-egy 74 194-es IC (Integrated Curcuit). Ez az integrált áramkör egy másik IC által generált órajel segítségével, ami nevezetesen LM555, hajtja meg a léptetőmotorokat. Az órajel frekvenciája befolyásolja azt, hogy a motorok milyen sebességgel végezzék el a lépéseket. Az órajel frekvenciáját az RT potenciométer állapota határozza meg. Az áramkör lelkének 12, 13, 14, 15-ös lábai, egymást követően küldenek feszültség impulzusokat az ULN2803-as darlington meghajtóra (IC3), mely elegendő feszültséget kapcsol a léptetőmotor adott tekercsére. A tekercsen mágneses erőtér keletkezik, amely magához vonzza a léptetőmotor rotorján levő mágnest. Így fordul egyet a motor tengelye. Ha a tekercseket a darlington meghajtóban levő tranzisztorok egymás után kapcsolják össze a szükséges feszültséggel, a motor rotorja, forgó mozgást végez. Ez a forgó mozgás, fogaskerekek segítségével az autó kerekeire vihető és ezen a módon teljesül munkánk feltétele, vagyis az, hogy létrehozzunk egy hasznos, önvezérelt autót. A 74 194-es IC 9-es illetve 10-es lábára juttatott impulzus határozza meg a motor forgásának irányát. Ezen 37
elv alapján működik a perifériában használt mindkét motor. Kettő, mert egyik a meghajtásért felelős, míg a másik a kanyarodást biztosítja. A FFU ACPS következő fontos eleme a pozicionálást végző áramkör együttes. Ez az ultrahangos jeladó, illetve vevő, és egy számláló áramkör szimbiózisa. Amikor az ultrahangos adó 40KHz-es hangfrekvenciát bocsájt ki magából, akkor abban a pillanatban a számítógép elindítja, az elsődleges periférián található számolót. Ez a counter egészen addig számol, míg az ultrahangot észlelő vevőáramkör, le nem állítsa őt. Mikor ez megtörtént a számoló a 34. ábrán látható MM74C150-es multiplexer segítségével a szoftverbe olvastatja a jelet. Ez annak az eltelt időnek felel meg, amíg az ultrahang a gépkocsitól odaért a garázsig. Ahhoz, hogy pontosan meg tudjuk határozni az autó helyzetét, négy távolságot kell mérnünk, de ezt már vázoltam az 1.2-es fejezetben. A számítógép a kapott értékekből kiszámolja az autó helyzetét a garázshoz képest. Mikor ez megtörtént, a FFU ACPS szoftvere a megfelelő impulzusok küldésével beparkoltatja a makett gépkocsit a kívánt helyre. Ez a számoló 2 darab 74LS390-es dekadikus számolóból, és a már fentebb említett multiplexerből áll. Egy 74LS390-ben 2 darab 10-es osztót tartalmaz, tehát 100-at oszt. A két IC 10.000-et. Ezek a számolók impulzusokat számolnak. Tehát ahhoz, hogy pontos időt számoljanak, a megszámolt impulzusok frekvenciájának egyeznie kell az idő múlásával. Ha mikro szekundumokat akarunk számolni, akkor minden mikro szekundumban kell a számolóra jelet küldenünk. Ezt a 35. ábrán látható kristály oszcillátor oldja meg. Ez tartalmaz egy 10MHz-es kristályt, amiről azt kell tudni, hogy feszültség hatására 10 MHz-et generál. Ez pontosan megegyezik a mikro szekundumonkénti jelküldés frekvenciájával. Ez a kristály a SN74LS00-ás IC-vel egy kristály oszcillátort alkot, ami így képes lesz az általunk használni kívánt impulzusáram előállítására. A SN74LS00-ás IC 11-es lábáról kapja a megfelelő frekvenciájú jelsorozatot a számoló IC első lába.
38
34.ábra: Számoló - counter
35.ábra: A kristály oszcillátor, és a számoló első tagjának összekapcsolása
39
36.ábra: Ultrahangos adó-vevő
Az ultrahangadó illetve vevő áramkörök a 36. ábrán láthatók, ahol az IC1 generálja az ultrahanghoz szükséges frekvenciát. Ezt az IC2 finomítja, az IC3 pedig felerősíti, hogy a vevő számára is érzékelhető legyen. A vevő áramkörben az RX vevőmikrofonról kapott jelet az IC4-es integrált áramkör dolgozza fel, használható elektromos jellé. A dokumentációban olvasható matematikai, programozói és elektronikai megoldások vegyítésével megszületett a FFU ACPS nevű automatizációs csapatmunka, melynek első lépése a valós szimuláció kedvéért, egy makett autó beparkoltatása a garázsba, teljesen számítógép által vezérelve.
40
6 Felhasznált irodalom [1]
BAKO, M.: Automatizácia knižníc. 2.vyd. 1980. ISBN 80-8046-020-5.
[2]
BIELIKOVÁ, M.: Príspevok k tvorbe konfigurácie softvérového systému s využitím znalostí. Bratislava: FEI STU, 1995. 136 s. Kandidátska dizertačná práca.
[3]
IIT, BME Irányítástechnikai és Informatika Tanszék, Benedek Balázs: OpenGL, forrás: http://www.iit.bme.hu/~benedek/mirrors/OpenGL/opengl/, 2006.július
[4]
DELPHI FORFUN HOME, forrás: http://www.delphiforfun.org/, 2008.november
[5]
GLSCENE, OPENGL SOLUTION FOR DELPHI, forrás: http://www.glscene.org/, 2008.július
[6]
CIRCUIT
EXPLANATION
FOR
THE
ULTRASONIC
ALARM,
forrás:
http://www.interq.or.jp/japan/se-inoue/e_soniarm4.htm , 2008.július [7]
CIRCUIT
DRAWING
FOR
THE
ULTRASONIC
ALARM,
forrás:
http://www.interq.or.jp/japan/se-inoue/e_soniarm1.htm, 2008.július [8]
8 STAGE SHIFT AND STORE BUS REGISTER WITH 3-STATE OUTPUTS, forrás: http://www.st.com/stonline/books/pdf/docs/2069.pdf, 2008.július
[9]
CIRCUIT
EXPLANATION
FOR
ULTRASONIC
RANGE
METER,
forrás:
http://www.interq.or.jp/japan/se-inoue/e_pic6_63.htm, 2008.július [10] UNIPOLAR
AND
BIPOLAR,
STEPPER
MOTOR
DRIVERS,
forrás:
http://home.cogeco.ca/~rpaisley4/Stepper.html, 2008.július [11] UNIPOLAR,
STEPPER
MOTOR
DRIVERS,
forrás:
http://home.cogeco.ca/~rpaisley4/Unipolar.html, 2008.július
41