19
Budapest, 2005 Budapesti Műszaki Főiskola Neumann János Informatikai Főiskolai Kar Szoftvertechnológia Intézet TUDOMÁNYOS DIÁKKÖRI DOLGOZAT MACS, NÉGY LÁBÚ MECHANIKA Szerzők: Kancsár Dániel mérnök informatikus szak, III. évfolyam Sípos Péter mérnök informatikus szak, I. évfolyam Konzulens: Vámossy Zoltán főiskolai docens

MACS, NÉGY LÁBÚ MECHANIKA - bmfnik.hubmfnik.hu/macs/letoltesek/TDK Doksi.pdf · 3. oldal, összesen: 19 Bevezető Absztrakt A dolgozat témája lépegető hardver kidolgozása,

  • Upload
    buinhu

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Budapest, 2005

Budapesti Műszaki Főiskola Neumann János Informatikai Főiskolai Kar Szoftvertechnológia Intézet

TUDOMÁNYOS DIÁKKÖRI DOLGOZAT

MACS, NÉGY LÁBÚ MECHANIKA

Szerzők: Kancsár Dániel mérnök informatikus szak, III. évfolyam Sípos Péter mérnök informatikus szak, I. évfolyam

Konzulens: Vámossy Zoltán főiskolai docens

2. oldal, összesen: 19

Tartalomjegyzék TARTALOMJEGYZÉK ............................................................................................................................................. 2

BEVEZETŐ.................................................................................................................................................................. 3

ABSZTRAKT ............................................................................................................................................................... 3 ROBOT ....................................................................................................................................................................... 3 ROBOT, AUTOMATA, ANIMAT ..................................................................................................................................... 3

RÉSZEGYSÉGEK....................................................................................................................................................... 4

HASONLÓ RENDSZEREK.............................................................................................................................................. 4 ÁTTEKINTÉS............................................................................................................................................................... 4

Célfüggvény .......................................................................................................................................................... 4 Döntéshozó algoritmusok ..................................................................................................................................... 5 Felhasználói interfész ........................................................................................................................................... 5 Keretrendszer........................................................................................................................................................ 5

EREDMÉNYEK........................................................................................................................................................... 6

SZOFTVER .................................................................................................................................................................. 6 Motorvezérlő......................................................................................................................................................... 6 3Drobot................................................................................................................................................................. 7 Külső kommunikáció LPT porton keresztül .......................................................................................................... 8

HARDVER................................................................................................................................................................... 8 Külső kommunikáció LPT porton keresztül .......................................................................................................... 8 Léptető motorok.................................................................................................................................................... 9 Elektronika ........................................................................................................................................................... 9 Galvanikus leválasztás........................................................................................................................................ 10 Demultiplexer ..................................................................................................................................................... 10 Meghajtó fokozat ................................................................................................................................................ 11

TOVÁBBI FEJLESZTÉSEK.................................................................................................................................... 12

SZOFTVER ................................................................................................................................................................ 12 3Dmátrix............................................................................................................................................................. 12 Játék.................................................................................................................................................................... 12

HARDVER................................................................................................................................................................. 12 Soros kommunikáció........................................................................................................................................... 12 Rádiós adatátvitel ............................................................................................................................................... 12 Látás ................................................................................................................................................................... 12

HIVATKOZÁSOK .................................................................................................................................................... 13

FÜGGELÉK ............................................................................................................................................................... 14

3. oldal, összesen: 19

Bevezető

Absztrakt A dolgozat témája lépegető hardver kidolgozása, amely számítógépről kiadott parancsok

végrehajtásával haladni képes. A másodlagos cél egy olyan keret-, vezérlőprogram kidolgozása amelyen keresztül utasítások adhatóak ki az egységnek.

Robot

A kifejezés 1921-ben jelent meg Karel Capek cseh író R.U.R. – Rossum Univerzális Robotjai – című színművében. A szó egyébként visszavezethető a szláv nyelvekben megtalálható „robota, rábótá” (munka) szóra. Capek felfogásában a robot már önálló, memóriával rendelkező, tanulásra is képes szerkezet, bizonyos értelemben véve emberhelyettesítő. [1]

Robot, automata, animat Mivel nincs egységesen elfogadott definíció a robot fogalmára, a következő szempontok

teljesülése esetén beszélünk robotról: - programozhatóság - érzékelők - írható/olvasható memória - adaptációs képesség - tanulási képesség

illetve automatáról: - programozhatóság - érzékelők

Az animat kifejezés az angol állat (animal) szóból származik, és a robotika egy speciális

ágának tekinthető. Állatok gépi modelljének megépítését foglalja magába. Létezik nyolc-, hat-, négy-, három-, két-, sőt egylábú animat is. A legnehezebb feladat a járási stratégia kidolgozása, azaz hogy lépés közben hány lába maradjon a talajon, és ezalatt a súlypontja hova essen. A statikus stabilitás szerint például a négylábú lépegető robotnak egyszerre három lába van a talajon, a súlypontja pedig a három láb által bezárt háromszögön belülre esik.

4. oldal, összesen: 19

Részegységek

Hasonló rendszerek

A robotokat mozgatási technikájuk alapján két nagy csoportra lehet bontani, a kerekekkel és a lábakkal rendelkezőkre. Mindkettő fajtából sok projekt és bőséges irodalom van. Talán a lábakkal rendelkező robotok vezérlése nehezebb. Külön figyelmet kell fordítani a stabilitásra, súlypontra, a bonyolult vezérlő programra, de a kihívás mellett objektív pozitívuma, hogy képes leküzdeni a térbeli akadályokat.

Számszerű összehasonlítási alapul egy lengyel fejlesztő, non-profit, magán projektjeit vettem. [2] [1. Táblázat]

Az első szembetűnő különbség a súlyban van, a mi LEGO-s megoldásunk sokkal nagyobb súlyt mutat, mint a nagyobb, alumíniumból készített társai. Ennek oka abban rejlik, hogy mi nem drága, kicsi, könnyű szervomotorokat használunk, hanem olcsó, nagy, nehéz léptetőmotorokat. A fő indoklása ennek az anyagiak. Igaz a léptető motorokat nem pont robotokhoz tervezték, szoftverből kell figyelni, hogy hány lépést tettünk a bázisponthoz képest. Mivel a motor körbe fordul ezért pontos helyzetállapothoz csak így juthatunk.

A lábak helyzetében, hosszában is eltérést tapasztaltunk. Alapvetően ez a más jellegű megoldás miatt van, mi nem kiemeljük az első részével a lábakat, hanem elforgatjuk saját tengelyük körül, ez inkább a hüllők mozgására hasonlít, mint az emlősökére.

A párhuzamos port használata a sorossal szemben egyelőre azért indokolt, mert nem adatátvitelre használjuk, hanem csak kevés számú egység vezérlésére. Viszont a soros vezérlésre mindenképpen indokolt áttérni. Nemcsak a könnyebb adatszállítás miatt, hanem mert a mikrokontrollerek és tartozékaik soros vezérlést igényelnek. Természetesen a témában léteznek céges, profit orientált projektek is, pl. az Iguana Robotics TomCat nevű projektje [3], ahol ugyancsak a lábak minél jobb vezérlése a cél.

Áttekintés

Az alapkoncepciónk a projektre egy olyan fizikai entitás megvalósítása, amit egy keretrendszeren (framework) keresztül tudunk egy felhasználói interfészen vezérelni. Az ilyesfajta megvalósítás azért lényeges, mert a későbbi fejlesztések eredményeképpen szeretnénk azt elérni, hogy bizonyos célfüggvények megadásával úgymond egy program vezérelje a fizikai objektumot. Mindezt úgy, hogy ez a vezérlőprogram nem tudja azt, hogy ő épp egy fizikai entitást irányít vagy egy virtuális játékot játszik, és ezt az elvet segíteni képes a keretrendszer és a felhasználói interfész szétválasztása. [1.Ábra]

Célfüggvény

A célfüggvénynek az automatikus vezérlésnél van haszna. Segítségével tudjuk közölni az algoritmussal, hogy az aktuális eredmény jobbnak vagy rosszabbnak tekinthető az előző állapothoz képest.

5. oldal, összesen: 19

Döntéshozó algoritmusok

A döntéshozó algoritmus két bemenete, hogy jobb állapotba került e az előző eredmény, lépés óta. Valamint egy környezet ahonnan meg kell tennie a következő lépést. Ezen két adat alapján kell eldöntenie, hogy melyik irányban haladjon tovább. Az egyszerűség kedvéért a négy alapirány is tökéletesen megfelel.

Felhasználói interfész

A tervezett felhasználói interfészen csak olyan dolgok szerepelhetnek, amik az entitás magas szintű vezérlését teszik lehetővé. Pl.: előre, hátra, fordul, objektumkövetés.

Keretrendszer

A keretrendszernek interfésszel kell rendelkeznie az automatikus vezérlés és a felhasználói vezérlés felé is, ha ez a kettő teljesült, akkor csak a megkapott parancsokat kell lefordítania és továbbítania az entitás felé.

6. oldal, összesen: 19

Eredmények

Szoftver

Motorvezérlő A jelenlegi vezérlést ez a program valósítja meg. A párhuzamos porton keresztül történő

adatküldésre lett kitalálva. A párhuzamos port felső 4bitjét a motorok megcímzésére, az alsó 4bitet pedig az adatok kiküldésére használja. Ez a fizikai világban egy demultiplexerrel valósul meg.

A programban a működésnek két módja van. Az első, ha egy motort vezérlünk. Ilyenkor ki kell választani egy motort, ez be fog íródni a kiküldött jel felső 4 bitjébe, azután pedig a motorhoz tartozó szekvenciát illetve fél-teljes lépést kell kiválasztani. A fél és teljes lépések lényege a következő. A villanymotorokban, amiket használunk 4 tekercs van. A szekvenciában leírtak szerint, pl. 1,2,4,8 válnak aktívvá. Egyszerre csak egy. (egy teljes szekvencia = egy impulzus) A teljes lépésnél pontosabb működésre is lehet motorjainkat bírni, ennek a módja a fél lépés. A szekvencia megmarad, csak un. köztes állapotokba is hozzuk a tekercseinket, pl. 1,2 állapot között a kettő közötti állapot a kettő összege lesz, vagyis 1,3,2. Ha ezt így végigszámoljuk

13. Ábra, http://www.bmfnik.hu/macs [7]

7. oldal, összesen: 19

az egész szekvenciára akkor egy fél-lépéses szekvenciát kapunk. A 1,2,4,8 fél lépésben 1,3,2,6,4,12,8,9. Ennek előnye, hogy pontosabban tudjuk villanymotorjainkat mozgatni. Viszont az megeshet, hogy egy villanymotornak nem 1,2,4,8 a sorrendi állapota, ezért ezt az értéket külön is beállíthatjuk. Fontos megjegyezni, hogy miután egy kívánt állapotba hoztuk a villanymotort a melegedés elkerülése érdekében mindig alapállapotba kell hozni. Magyarán le kell kapcsolni a tekercseket, állapotváltozás ilyenkor nem lesz és nem is fog melegedni. [2. Ábra]

A többmotoros vezérlés ugyanúgy működik, mint az egymotoros. Megoldásban ez úgy jön ki, hogy a motorokra kimenő vezérlést elmentjük egy szöveges fájlba, az egyes sorok a lépéseknek, motorvezérléseknek felelnek meg. Vagyis csupán annyi a dolgunk, hogy szekvenciálisan végiglépkedjünk a rekordokon és egyesével végrehajtsuk a vezérlést. [3. Ábra]

Egy vezérlési sor a következőképpen néz ki: - Motor azonosító, 1-16 - Szekvencia - Lépés, 1; fél lépés, 0 - Előre, 1; hátra, 0 - Fok, 1+ A program tesztelése egy saját magunk által létrehozott „port tesztelő” készülékkel

történt. [4. Ábra] A bemenő jele a párhuzamos port kimenő jele, a 8 adatbit mindegyike rá van kötve egy optokapun keresztül egy LED-re, ha az adott szálon van jel, akkor ég a LED.

Célunk úgy mozgatni a hardvert, hogy a fentebb leírt módon felépített állományokat végrehajtva tipikus mozgások hajtódjanak végre. Pl.: testhossznyit előre.txt, jobbra 15fok.txt, balra 15fok.txt, lábakalapállapotba.txt. Az így meghatározott állományokat azután csak be kell tölteni, végre kell hajtatni. Igaz, fontos megjegyezni, hogy a lábakat minden állomány végén be kell állítani egy olyan pózba amit a következő fázis elkezdésekor feltételezünk. Indításkor érdemes beállítani a lábakat egy default pózba és azután bizonyos működési idő után újra és újra visszaállítani őket oda.

3Drobot A program vizuális megjelenítésre, modellezésre szolgál. Mivel az entitásunk tükrözéssel készült, és a motoroknak fix helye van, ezért a súlypontot csupán geometriai számításokból is meg lehet határozni, ezt is megvalósítja a program. Lehet a motorvezérlő programtól függetlenül is használni, de vele együtt is. Az egyes motorok össze vannak kötve a 3D-s modell megfelelő pontjával így az a vezérlés, ami kimegy a számítógépről az a modellező programban is meg fog jelenni. Így tehát nem szükséges, hogy a hardver rá legyen kötve a PC-re, a szimuláció eredményeképpen virtuálisan tesztelhetők az egyes mozgásokat leíró állományok a stabilitás szempontjából. [5. Ábra]

8. oldal, összesen: 19

Külső kommunikáció LPT porton keresztül

WindowsNT előtti rendszereken ez közvetlen portcimzéssel is megvalósítható volt, pl. Port[$378] := 255;. A WindowsNT-n és az arra alapuló rendszereken (2000,XP) viszont már tiltva van a közvetlen bus címzés. Ezért egy [6] weblapon felelhető IO.DLL segítségével tervezzük használni a párhuzamos portot. Ez egy teljesen ingyenesen használható könyvtár. Ezzel a DLL-el hasonló egyszerűséggel használható a párhuzamos port, pl. PortOut($378,255);. Mindkettő programsor a maximális jelet küldi ki. A párhuzamos porton egyszerre 8 adatbit (25510 = 111111112 , 256 állapot) küldhető ki, és 5 adatbit (32 állapot) fogadható.

Hardver

Külső kommunikáció LPT porton keresztül

A párhuzamos portot vagy interfészt Centronics portnak is nevezik, mivel a Centronics cég fejlesztette ki a saját nyomtatói számára, még a PC-k megjelenése elõtt. Tehát alapvetően a számítógép és a nyomtató közötti kommunikációra való. Régebben ez egyirányú volt, csak a PC adta az adatokat a nyomtatónak. Ma már sokkal intelligensebbek a nyomtatók is ezért, õk is küldözgetnek jeleket a gépnek (kifogyott a papír v. a tinta stb.). Ám a PC-kben ez a port nem csak erre való, sok más feladatot is elláthat. A két számítógép közötti adatátvitel egyik legegyszerűbb módja. De lehet rá kötni külsõ winchestert, lapolvasót, külsõmodemet ,vagy akár az általunk épített áramköröket.

A párhuzamos port csak fizikailag tekinthető egy portnak, mert valójában három további regiszterre bomlik. Ezek a Data(8), a Status(5), és a Control(4). Mindhárom felhasználhatósága bizonyos mértékben korlátozott iránya és sávszélessége miatt. Némelyik láb alapesetben negált formában áll rendelkezésre. [6. Ábra] [2. Táblázat] A projektben ezt a portot használjuk a robot és a gép közti kommunikációra. Ebből is csak a data regisztert, mivel az alapvető mozgásfunkciókra elég a 8 (2*4) bit. A data regisztert a számítógépen a 378-as porton érjük el alapból, bár a regiszter címe a BIOS-ban változtatható. A 8 bitet elektronika segítségével 2*4 bitre osztjuk, és külön feladatot kapnak. Az első 4 biten (D0 – D3) kapja a motor adatokat, vagyis a léptetőmotorok lépésutasításait, a második 4 biten (D4 – D7) pedig a címzést. Így egyszerre 16 motor vezérlése válik lehetővé.

9. oldal, összesen: 19

Léptető motorok

A léptetőmotor egy olyan elektromos készülék, amely az elektromos impulzusokat diszkrét mechanikus mozgássá alakítja. A léptetőmotorok lelke a többtekercses rendszer, illetve a számos Észak-dél pólussal rendelkező rotor. Előnyei: - Az elfordulási szög egyértelműen meghatározható a az impulzusok számából.

- Maximális nyomatékot képes leadni állás közben is (Ha a tekercsek gerjesztve vannak). - Precíz pozícionálhatóság, és ismétlési lehetőség. - Kiváló reakcióidő az indításra/ megállásra/ irányváltásra. - Minimális belső mechanikai kopás, hosszú élettartam. - Egyszerűen elérhető nagyon alacsony forgási sebesség terhelés alatt is. - Széles határok közt állítható forgási sebesség, egyszerűen az impulzusok

frekvenciájával. Hátrányai: - Rezonancia léphet fel ha nem folyamatosan vezérelt. - Nehezen használható extrém nagy sebességeknél. Nyitott körös működés: A léptetőmotor egyik legnagyobb előnye hogy nincs szükség visszacsatolt információra a pozíció meghatározására. Vagyis nem igényel drága és bonyolult érzékelőket, és visszacsatolási rendszereket. Egyszerűen csak a kiküldött impulzusokat kell számon tartani, amiből meghatározhatjuk a léptetőmotor helyzetét. Típusok:

A léptetőmotorok különböző fajtáinál felépítésben és működésben is vannak bizonyos eltérések. Felépítés szempontjából három fajta motort különböztetünk meg: a változó reluktanciájú, az állandó mágneses, illetve a hibrid motorokat. Ezek pontos jelentését nem fejtem ki, mert itteni alkalmazásuk miatt nem bírnak nagy jelentősséggel. Viszont működésük szempontjából két csoportra lehet őket osztani, az unipoláris illetve a bipoláris hajtásúakra.

- Bipoláris hajtásnál a tekercsek páronként sorban vagy párhuzamosan vannak kötve, és a két végződés van kivezetve. Ennek meghajtásához tranzisztor mátrixra van szükségünk a meghajtásra, ugyanis itt a tekercseken fordul az áram iránya. [7. Ábra]

- Unipoláris hajtásnál tekercs páronként van egy közös kivezetés ahol a tápfeszültséget kapja, és tranzisztorokkal nyitjuk a megfelelő ágat. [8. Ábra]

Elektronika A vezérlő elektronika képezi a hidat a motorok és a számítógép között. Ennek következtében feladata igen sokrétű. Feldolgozza a beérkező adatot, majd ő megfelelő motornak felerősítve továbbítja. Ezenfelül a motoroktól visszaérkező jeleket figyeli, és továbbítja a számítógép felé.

10. oldal, összesen: 19

Galvanikus leválasztás Mivel a léptetőmotorok a számítógép TTL jelszintjénél lényegesebben nagyobb feszültségen (12-24V) üzemelnek, ezért külön tápellátást igényelnek. Hogyha egy ilyen szintű jel kerülne a számítógép portjára, nagy valószínűséggel tönkre is tenné. Ezért első lépésben galvanikusan le kell választani az interfész ki- és bemeneteit. A galvanikus leválasztás azt jelenti, hogy a jelet valamilyen nem elektromos jellé alakítjuk, ezt érzékeljük és vissza alakítjuk elektromos jellé. Ezt transzformátorral, vagy optocsatolóval végezhetjük. Ez utóbbi olcsóbb és egyszerűbb megoldás, ezért csak ennek az ismertetésére térek ki. Az optocsatoló, mint neve is mutatja fénnyé alakítja a jelet, majd azt vissza elektronikus jellé. Általában egy LED-et és egy fotótranzisztort tartalmaz (van olyan is amelyikben fototirisztor van, ezekkel közvetlenül lehet vezérelni nagyfeszültségű eszközöket). Az egyszerű DIL tokozásúak a legelterjedtebbek. Általában 4 vagy 6 lábuk van. Az ilyenekben csak 1 LED és 1 fotótranzisztor van. Ilyenek típusok pl.: CNY17, 4N25, TCDT1103G. [9. Ábra]

Látható, hogy a fotótranzisztor bázisa is ki van vezetve. Ez arra jó, hogy méréssel tudjuk ellenőrizni, hogy jó-e, vagy, hogy a vezérelt áramkör is bele tudjon szólni a saját bemeneteibe. A leválasztás használata a bemeneteknél is fontos. Egy lehetséges megoldás pl. ha egy optocsatolót teszünk a portra úgy, hogy a LED-et vezérli a mi áramkörünk és a tranzisztor a számítógépet. Adatbevitelnél fontos megjegyezni, hogy az állapotregiszter nem igazi regiszter, mert nem tárolja a bemenetén kapott értékeket. Erről nekünk kell gondoskodni, ha az alkalmazás megkívánja. Tehetünk pl. D tárolókat a LED-ek elé. [10. Ábra]

Az ábrán látható, hogy a 12-es lábhoz másképp kell bekötni az optocsatolót. Ez azért van, mert ez egy ponált bemenet, tehát +5V-ra kell kötni. A +5V-ot a számítógépről kell levenni. Ezt egyrészt tehetjük a Game Port 1-es kivezetéséről, másrészt a tápegység valamelyik csatlakozójáról. Ezen mindig a piros vezeték a +5V.

Demultiplexer Miután rendelkezésre állnak a galvanikusan leválasztott ki- és bemenetek, elkezdhetjük a jelet feldolgozni. A párhuzamos portról a Data regiszteren 8 bitet fogadunk. Ezt úgy osztottuk szét, hogy D0-D3 –ig kapjuk a motor vezérlését, D4-D7 –ig pedig a címzést. A címzésünk tehát egy 4 bites bináris szám, amely 0-15 vehet fel értékeket. Ezért minden egyes értéket megfeleltetünk egy motornak. A négy bites szám szétbontását végzi a demultiplexer. [11. Ábra]

Erre a célra a 74C154N 4 bemenetű, 16 kimenetű demultiplexert használjuk (24 = 16). Rendelkezik 4 ponált bemenettel, 2 negált ÉS kapcsolatban álló engedélyező lábbal, valamint 16 negált kimenettel, illetve táp és testponttal (az ábrán nincs jelölve). A demultiplexer kimenetei egy-egy tranzisztort vezérelnek, ami a léptetőmotorok tápfeszültségét kapcsolja ki-be. Így egyszerre minden motor megkapja a vezérlést, ám végrehajtani csak az fogja amelyik megkapja az engedélyezést, ennek következtében a tápfeszültséget is.

11. oldal, összesen: 19

Meghajtó fokozat Ez lényegéből nem áll másból, mint egy tranzisztor mezőből. Mivel a motorok unipolárisan vannak kötve, így motoronként 4+1 tranzisztorra van szükségünk. A 4 NPN tranzisztor bázisa kapja a D0-D3 –ról érkező vezérlést és engedi a megfelelő tekercsen folyni az áramot. A PNP tranzisztor fogadja a demultiplexertől érkező engedélyező jelet, ami az egész motor tápellátását vezérli. [12. Ábra]

12. oldal, összesen: 19

További fejlesztések

Szoftver

3Dmátrix Későbbi fejlesztések alapját képezi ez a program, a lézeres távolságmérővel kinyert információk modellezésére alkalmas, objektumkereső algoritmusok végrehajtását támogatja. A látásnál használt 60*40 pont megjelenítésére használt. Mentés, betöltés lehetőségekkel. (XML, Szöveges fájl) A program szemléltetésre szolgál, hogy az ember számára (számunkra) is látható legyen, hogy mi is az amit látunk, illetve az, amit látnunk kellene.

Játék Egy a mobiltelefonokról ismert „kígyó” nevű játék sajátos implementációja. A döntéshozó algoritmusok későbbi tesztelésére lett fejlesztve.

Hardver

Soros kommunikáció

A soros kommunikáció előnye a párhuzamossal szemben abban rejlik, hogy adatot, csomagokat továbbít, nem pedig vezérlőinformációt. Amennyiben megnövekedne a kommunikáció adatmennyisége a szoftver és az hardver között jó alternatívát biztosít. Az adatforgalom további csökkentésére a hardveren elhelyezett feldolgozóegység és memória szolgáltat lehetőséget.

Rádiós adatátvitel

A kábeles adatátvitel egyik alternatívája a rádiós adás. Nagyobb szabadságot biztosít, mint az infrás illetve a kábeles megoldás és létezik előre legyártott IC hozzá sokat könnyítve ezzel dolgunkon. Viszont alapfeltétele az, hogy sorosan legyen hozzácsatolva egy jelfeldolgozó egység (PIC).

Látás Az működési elv lényege a mára eléggé elterjedt lézeres távolságmérőn alapszik. Ennek lényege, hogy egy modulált lézersugarat bocsát ki magából, majd a kimenő és visszaverődő lézersugár fáziskülönbségéből kiszámolja a távolságot. Nos a lézeres helymeghatározó is ezt teszi, csak míg a távolságmérő 1 pont távját, addig ez n*m pontét határozza meg. Így kapunk egy mátrixot, melynek értékei a különböző koordináták távolságát tartalmazzák, amiből egy program segítségével egy képet készíthetünk.

13. oldal, összesen: 19

Hivatkozások [1] http://www.rezandras.hu/mozi_geplelek.htm [2] http://www.leggedrobots.com [3] http://www.iguana-robotics.com/researchtc.htm [4] http://www.radiometrix.com/html/products/apnt1.html [5] http://www.vcomsoft.com/infopage/PARALLELPORTDATA.html [6] http://www.geekhideout.com [7] http://www.bmfnik.hu/macs

14. oldal, összesen: 19

Függelék 1. Táblázat, összehasonlítás a leggedrobots.com adataival.

Fejlesztő www.leggedrobots.com Típus R0 R1 R2 Hosszúság 28 [cm] 28 [cm] 40 [cm] Szélesség 20 [cm] 20 [cm] 24 [cm] Magasság 24 [cm] 24 [cm] 27 [cm] Súly 1.1 [kg] 1.0 [kg] 1.3 [kg] Sebesség 5 cm/s 15 cm/s ? cm/s Tápellátás 12V DC, külső 12V DC, külső 12V DC, külső vagy belső

4x3V Lit. Battery Lábak két rész 165:80 mm két rész 165:80 mm két rész 22:10 cm Láb távolság 20 [cm] 20 [cm] 26 [cm] Lábszélesség N/A N/A 12.5 [cm] Anyag Alumínium Alumínium Alumínium Forgató motorok N/A N/A Micro Motorok B138F.12.1470Meghajtó motorok Micro Motorok B138F.12.1470 Micro Motorok L149.12.392 Micro Motorok L149.12.392 Lábak visszacsatolása Potentiometer 5k Potentiometer 4,7k Potentiometer 4,7k Motorvezérlés 6x ST L293D 6x ST L293D 8x ST L293D Mikroprocesszor PIC16F77 20MHz PIC16F77 16MHz PIC16F876, PIC16F77 16MHzÉrzékelők Gravity sensor ADXL202 Gravity sensor ADXL202 N/A Belső kommunikáció N/A N/A I2C Külső kommunikáció RS232 via cable RS232 via cable RS232 via cable Programkód PIC16 Assembly, MPLAB IDE PIC16 Assembly, MPLAB PIC16 Assembly, MPLAB

Fejlesztő saját Típus M0 Hosszúság 26 [cm] Szélesség 16 [cm] Magasság 13 [cm] Súly 2.4 [kg] Sebesség ? cm/s Tápellátás 12V DC, külső Lábak két rész, 14:14 cm Láb távolság 33 [cm] Lábszélesség N/A Anyag LEGO (műanyag) Forgató motorok Léptető motorok EM34-93 Meghajtó motorok N/A Lábak visszacsatolása Mikrokapcsolók Motorvezérlés Saját Mikroprocesszor külső, PC Érzékelők N/A Belső kommunikáció N/A Külső kommunikáció LPT via cable Programkód külső, Delphi

15. oldal, összesen: 19

1. Ábra, áttekintés.

2. Ábra, motorvezérlő, egy motor vezérlése.

16. oldal, összesen: 19

3. Ábra, motorvezérlő, több motor vezérlése.

4. Ábra, lpt port tesztelő.

17. oldal, összesen: 19

5. Ábra, 3Drobot.

6. Ábra, D0-D7 – Data, S3-S7 – Status, C0-C3 – Control. [4]

2. Táblázat, A lábak elnevezése utal arra, hogy a nyomtató és számítógép közötti kommunikációra szánták. [5] Láb száma Elnevezés (SPP) Irány (in-out) Regiszter Negált 1 Strobe in/out Control Igen 2 Data 0 out Data - 3 Data 1 out Data - 4 Data 2 out Data - 5 Data 3 out Data - 6 Data 4 out Data - 7 Data 5 out Data - 8 Data 6 out Data - 9 Data 7 out Data - 10 Ack. out Status - 11 Busy in Status Igen 12 Paper out in Status - 13 Select in Status - 14 Auto-Linefeed in/out Control Igen 15 Error/Fault in Status - 16 Initialize in/out Control - 17 Select in/out Control Igen 18-25 Ground Gnd -

18. oldal, összesen: 19

7. Ábra, Bipoláris vezérlés.

8. Ábra, Unipoláris vezérlés.

9. Ábra, A DIL6 tokozású optocsatolók bekötése.

10. Ábra, D tárolók a LED-ek előtt.

19. oldal, összesen: 19

11. Ábra, demultiplexer.

12. Ábra, meghajtó fokozat.