TEREPFELMÉRŐ LÁNCTALPAS ROBOT
Budapesti Műszaki Főiskola Kandó Kálmán Villamosmérnöki Kar Műszertechnikai és Automatizálási Intézet
TUDOMÁNYOS DIÁKKÖRI DOLGOZAT
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
Budapest, 2007.
Szerző:
Somlyai László villamosmérnöki szak, III. évfolyam
Konzulens:
Sándor Tamás adjunktus
1.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
TARTALOMJEGYZÉK 1. RÖVID TARTALMI ÖSSZEFOGLALÁS: ............................................................................... 3 2. RÉSZLETES SPECIFIKÁCIÓ................................................................................................... 4 3. AZ EGYES PROBLÉMÁK MEGFOGALMAZÁSA ÉS LEHETSÉGES MEGOLDÁSUK . 5 3.1. 3.2. 3.3. 3.4. 3.5.
A MECHANIKAI SZERKEZET FELÉPÍTÉSE .................................................................................. 6 A MEGHAJTÁS .......................................................................................................................... 7 A VEZÉRLÉSEK......................................................................................................................... 8 A TÁJÉKOZÓDÁS ...................................................................................................................... 8 KÜLSŐ KOMMUNIKÁCIÓS LEHETŐSÉGEK ................................................................................ 9
4. AZ ÁRAMKÖRÖK MEGVALÓSÍTÁSA ÉS AZ ÁRAMKÖRI ELEMEK KIVÁLASZTÁSA . 10 4.1. 4.2. 4.3. 4.4.
MEGHAJTÁS ........................................................................................................................... 10 A VEZÉRLŐELEKTRONIKA ..................................................................................................... 14 AZ ULTRAHANGOS TÁVOLSÁGMÉRŐ ..................................................................................... 15 KÜLSŐ KOMMUNIKÁCIÓS LEHETŐSÉGEK .............................................................................. 17
5. AZ ÁRAMKÖRÖK MEGTERVEZÉSE .................................................................................. 18 5.1. 5.2. 5.3.
A TELJES KAPCSOLÁSI RAJZ ................................................................................................... 18 PCB ....................................................................................................................................... 18 NYÁK ELKÉSZÍTÉSÉNÉL ALKALMAZOTT TECHNIKA ............................................................ 18
6. A SZOFTVERFEJLESZTÉS, FEJLESZTŐI KÖRNYEZET ................................................ 21 6.1. 6.2. 6.3. 6.4.
A MOTORMEGHAJTÁS, FORDULATSZÁM SZABÁLYOZÁS ....................................................... 22 ULTRAHANGOS TÁVOLSÁGMÉRÉS ......................................................................................... 26 AZ EGYES ELEMEK KÖZÖTTI, BELSŐ KOMMUNIKÁCIÓK ........................................................ 28 A KOMMUNIKÁCIÓS SZABVÁNY KIALAKÍTÁSA ÉS A DÖNTÉSHOZATAL ................................ 29
7. TESZTELÉS, AZ ÁRAMKÖRÖK ÉLESZTÉSE ................................................................... 36 7.1. 7.2. 7.3. 7.4.
AZ ULTRAHANGOS EGYSÉG TESZTELÉSE ............................................................................... 37 AZ OPTIKAI TÁVADÓ TESZTELÉSE ......................................................................................... 38 A MOTOR SZABÁLYZÁS TESZTELÉSE ..................................................................................... 38 A KÉSZ ROBOT ....................................................................................................................... 39
8. FELHASZNÁLHATÓSÁG, KÉSŐBBI TOVÁBBFEJLESZTÉS .......................................... 40 9. FELHASZNÁLT IRODALOM ................................................................................................. 41 10. MELLÉKLETEK ...................................................................................................................... 42
Budapest, 2007.
2.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
1. Rövid tartalmi összefoglalás: A cél egy önjáró, magától tájékozódó robot készítése, mely külső beavatkozás nélkül képes navigálni. Képes legyen felmérni a környezetében elhelyezkedő tárgyak távolságát és irányát, így meg tudjon határozni egy útvonalat az útjába kerülő akadályok elkerülésével. Fejlett döntéshozatali rendszerkialakítása, ha több lehetőség van, akkor képes legyen kiválasztani az optimálisabb haladási útvonalat. A tájékozódást egy ultrahangos egység teszi lehetővé, ezzel lehet meghatározni a távolságokat, és az irányt. Az egységet egy elosztott mikroprocesszoros rendszer vezérli, így bonyolultabb feladatok elvégzésére is képes, nagyobb számítási feladatok könnyen megvalósíthatóak. Beprogramozható neki egy tervezett út-irány, amit képes lekövetni, az akadályok kikerülésével. Mechanikai kialakítás szempontjából fontos, hogy különféle terepviszonyok között tudjon akadálymentesen közlekedni, ezért lánctalpas kivitelben készül. A lánctalp további előnye még, hogy nagyon jó az irányíthatósága, például képes a helyben való megfordulásra. A sebessége változtatható legyen az egyes terepviszonyoknak megfelelően, és az esetleges egyéb okok miatt. Saját energiaforrással rendelkezzen, így teljesen önálló tud lenni,
Budapest, 2007.
3.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
2. Részletes specifikáció -
Egy jól irányítható, szűk helyeken is könnyen mozgó jármű.
-
Különféle terepviszonyok között képes haladni.
-
Nagy teherbírású, a későbbi bővítések miatt. Minimális teherbírása 2 kg.
-
Saját energiaforrás.
-
Üzemidő minimum 2 óra, egy feltöltéssel.
-
A körülötte lévő tárgyak távolságának és irányának a meghatározása.
-
A minimum 2m-es sugarú körben képes érzékelni.
-
Cm pontosságú mérés.
-
A merőeszköz szórása kisebb, mint 20-30 fok.
-
Akadály érzékelése esetén a mért értékekből a döntési logika segítségével, a haladási útvonal megtervezése.
-
A meghajtás fordulatszám szabályozott, gyors beállási idővel.
-
Helyben való megfordulás.
-
Külső kommunikációs lehetőségek, legalább soros port.
-
Későbbi bővítő modulok számára csatlakozófelület kialakítása.
-
Számítógépről való tesztelés, parancsok és útvonalterv megadása.
Budapest, 2007.
4.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
3. Az egyes problémák megfogalmazása és lehetséges megoldásuk A tervezés és kivitelezés során, a specifikációkból felmerülő problémák, amikre megoldást kell találni. Ha több megoldás is lehetséges egy adott feladatra, akkor ezek közül a legideálisabb kiválasztása. A felmerülő kérdések: A mechanikai szerkezet felépítése: milyen anyagból készüljön, formai kinézet, tartósság, minél egyszerűbb kialakítás. A meghajtás: a meghajtás fajtája, a motorok típusa, nyomatéka, fordulatszáma, a motorokat meghajtó elektronika megtervezése. A vezérlések: a vezérlőelektronika kiválasztása, a mikroprocesszor(ok) típusának kiválasztása. A tájékozódás: A tájékozódást segítő eszköz/szenzor kiválasztása, az előírt adatok ismeretében. Kommunikációs lehetőségek: Az eszköz külső kommunikációs lehetőségeinek a meghatározása. Mind az utasítások, útvonaltervek, az esetleges tesztelési kommunikációk biztosítása. Későbbi bővítési lehetőségek: milyen fejlesztések várhatóak a jövőben, ezt figyelembe véve különböző lehetőségek kialakítása a későbbi modulok számára.
Budapest, 2007.
5.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
3.1. A mechanikai szerkezet felépítése Első lépéskén fontos meghatározni, hogy milyen anyagokból, elemekből épüljön fel a robot. Figyelembe kell venni, a megvalósíthatóságot, mivel fejlesztésről van szó, a könnyű módosíthatóságot és bővítési lehetőséget biztosítani kell. Olyan elemeket kell kiválasztani, amik viszonylag tartósak, az aktuális feladatra megfelelnek. Lehetne fémből, vagy műanyagból építeni, esetleg előre elkészített elemekből. A fém vagy műanyag alapanyagokból való építés nehézkesebb ki kell alakítani a vázszerkezetet, ehhez meg kell munkálni az anyagot. A későbbi módosításra is kevesebb mód van. Figyelembe véve azt, hogy könnyen és gyorsan módosítható legyen ezért előre elkészített szabványelemekből építettem meg. Ezek az elemek LEGO TECHNIC alkatrészek, melyek műanyagból vannak és viszonylag nagy a szilárdságuk. Egy kisebb robot megépítéséhez tökéletesen megfelelnek. Természetesen egy nagyobb robot elkészítése már nem lehetséges ezzel a módszerrel, ott már fémből célszerű építkezni. A LEGO sokféle szabványelemet tartalmaz, jól megoldhatóak vele az egyes problémák. A TECHNIC alkatrészek kimondottan mechanikai feladatok megoldására készültek, jól megoldhatóak velük különböző mozgó egységek megvalósítása. Így például a meghajtás, fogaskerekek segítségével áttételek elhelyezésére lehetőség van. A robotot 2 motor hajtja meg, amik 2 hernyótalpat mozgatnak a robot mindkét oldalán. A lánctalpnak köszönhetően sokféle terepviszony között képes haladni az eszköz. Irányváltás szempontjából is nagyon jók a hernyótalpak, képes helyben megfordulni.
3.1. ábra - A robot mechanikai felépítése
Budapest, 2007.
6.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
3.2. A meghajtás El kell dönteni, hogy milyen motorok, erőátviteli rendszerek lesznek alkalmazva. Motor szempontjából a követelmények, hogy erős legyen, mivel nagy teherbírásúra kell tervezni a járművet, de a nagy haladási sebesség nem követelmény. Mivel a robot LEGO-ból készült így célszerű úgynevezett LEGO motorokat használni. Ezek a motorok úgy vannak kialakítva, hogy a LEGO szabványelemekhez könnyen illeszthetőek. Többféle motor is létezik erre a célra, de talán ami a legjobb nyomaték-sebesség aránnyal rendelkezik az 5292es típus. A két meghajtómotor 5292-es típusú (3.2. ábra) LEGO TECHNIC motor. Ezek a motorok maximálisan 9V-os a tápellátást bírnak el. Néhány adat a felhasznált motorokról: A 9V-os tápellátás esetén üzemi forgatónyomatéka: 2,48 Ncm, erre az üzemre jellemző tengelyforgási sebessége 920 rpm (fordulat másodpercenként). Az üzemi áramfelvétele a motornak 0.78A. Továbbá a zárlati teljesítménye (indulás pillanatában) 3.2A, erre az áramkörök tervezésénél figyelni kell, hiszen tranziens állapotban jóval nagyobb áramot vesz fel a motor, mint üzemi állapotában. A maximálisan leadott nyomatékát 3.2A mellett adja le, ez 12 Ncm nagyságú. A motorok főtengelyforgása egy fogaskerekekből felépülő erőátviteli rendszeren keresztül jut el a hernyótalpakra, mely harmadára lassítja a forgási sebességet, és így a nyomaték 3 szorosára növekszik. Ezzel a megoldással a hernyótalpat meghajtó hengerre közel ω =300rpm* forgási sebesség kerül. A hernyótalpat közvetlenül meghajtó hengerek átmérőjének ismeretében, amik d=30 mm átmérőjűek, meghatározható a maximálisan elérhető sebesség a következő módon: Az átmérő ismeretében kiszámolható a kerület, ha hozzávesszük a percenkénti körbefordulások számát, akkor megkapjuk a percenként megtett utat. Kerülete a dobnak: K = d ∗ π = 30 ∗ 3.14 = 94.2mm Maximális sebesség: v = K ∗ ω (szögsebesség) = 94.2mm ∗ 300rpm = 28260
mm m = 0.47 min s
3.2. ábra - A meghajtásra felhasznált motor * rpm: teljes körbefordulások száma percenként.
Budapest, 2007.
7.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
3.3. A vezérlések Ezen a ponton kell eldönteni, hogy milyen elektronikával legyen megvalósítva a robot vezérlése. Több lehetőség van erre a feladatra, ha viszonylag egyszerű feladatokat kellene elvégeznie, abban az esetben analóg áramkörök és kisebb logikai hálózat is megfelelne a feladatra. Például ha az lenne a feladat, hogy ha valami az útjában van, akkor csak kerülje ki egy bizonyos módon. Itt azonban ennél komplexebb feladatokat kell megoldania, így nem elég egy egyszerű logikai hálózat, mikroprocesszoros rendszerre van szükség. A mikroprocesszor nagy számítási feladatok elvégzésére képes, így rá lehet bízni több feladatot is, amit egyébként analóg és digitális áramkörökkel kellene megvalósítani. Lehetőség van a későbbi könnyű bővítésekre is a mikroprocesszor esetében, ha erre a tervezéskor gondoltunk, például szabványos csatolófelületek, kommunikációs csatornák kialakítása. Továbbá előre kivezetett I/O lábak, amikre további eszközök, érzékelők csatlakoztathatóak.
3.4. A tájékozódás Ahhoz, hogy a robot önmagától tudjon tájékozódni valamilyen érzékelő berendezésre van szükség. Fontos hogy ezzel az érzékelővel megállapíthatóak legyenek a robot környezetében elhelyezkedő tárgyak távolsága és iránya, vagyis vektoriálisan tudja elhelyezni a tárgyakat. Továbbá már messziről tudja érzékelni az akadályokat, hogy mielőtt odaér, már korrigálni tudja a haladási útvonalat. Az érzékelő lehetséges fajtái:
-
Helyzetkapcsoló
-
Optikai érzékelő
-
Hangfrekvenciás érzékelő
-
Vizuális érzékelés
A helyzetérzékelőkkel az a probléma, hogy csak akkor érzékelnek, mikor az érzékelő nekimegy az objektumnak, tehát viszonylag kis távolságból és közvetlenül kell érintkeznie a tárggyal az érzékelőnek. Ez nem jó megoldás mivel a cél, hogy már messziről kiválasszon egy optimális útvonalat az akadályok elkerülésére. Másik megoldás az optikai érzékelők, ezeknek több fajtája van a pontosság szempontjából. Ha sima Infra LED adót alkalmazunk, akkor viszonylag nem nagy távolságra tudunk vele érzékelni, de már nem kell közvetlen kapcsolat a tárggyal, hogy érzékeljük. Ebben az esetben az irány még könnyen meghatározható, de a távolságméréshez nagyon pontos mérés szükséges. Ennek oka a fényterjedési sebessége, ami 300000km/s. Budapest, 2007.
8.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
A másik optikai érzékelő, amivel nagy távolságokat lehet mérni a lézeres mérés, az irány meghatározása itt sem probléma, de a távolság mérésére itt is igen pontos mérés szükséges. Nagyon kicsi az eltelt idő a leadott jeltől a visszaérkező jelig. És felmerül a kérdés, hogy kelle ilyen kifinomult mérőeszköz. A legjobbnak látszó megoldás a hangfrekvenciás érzékelők fajtája, ebben az esetben a hanghullámok terjedési sebességét (344m/s) kihasználva mérjük a távolságot. Az adóból elindul egy burst jel, ami egy bizonyos hanghullám, és a vevőbe ennek a tárgyról visszaverődött jele érkezik időeltolódással. Tehát meglehet mérni az eltelt időt, míg a hang megteszi az utat. Ismervén a hangterjedés sebességét kiszámolható a távolság a következő jól s ⎡m⎤ ismert képlettel: v = ⎢ ⎥ ⇒ s = v ∗ t [m] t⎣s⎦ Ez a mérési módszer most tökéletesen megfelel a viszonylagos egyszerűsége és elfogadható pontossága miatt. A mérés elvégzése nem igényel nagyon kifinomult eszközöket sem. Az mérőegység neve ultrahangos távolságmérő, mivel az ultrahang sávtartományban sugároz, így nem hallható az emberi fül számára. A negyedik megoldás a vizuális képfelismerés, igazából ez lenne a legjobb megoldás, mert ezzel kapjuk a legtöbb információt a környezetről, de ennek a bonyolultsága a legnagyobb. Ez a módszer egy későbbi fejlesztésbe van tervezve, így lecserélésre kerülne az ultrahangos távolságmérő.
3.5. Külső kommunikációs lehetőségek El kell dönteni, hogy milyen külső kommunikációkra van szükség. Például vezetékes, vagy vezeték nélküli kommunikáció egy PC-vel, vagy egy külső modullal. Esetleg GPS kommunikáció a helyzet-meghatározáshoz. A feladat egy önjáró robot elkészítése így nincs szükség a külső kommunikációkra. Mivel egy soros kommunikáció minimum elő van írva, egyelőre csak ez kerül kiépítésre. Ezzel lehetőség van számítógéphez való csatlakoztatásra, hogy le lehessen tölteni esetleges szervizadatokat, vagy megadni neki új információkat, és a tesztelésnél fontos szerepe lehet egy PC-nek, ami megkönnyítheti a feladatot. Továbbá kiépítésre kerül egy későbbi vezeték nélküli kommunikációs eszköz számára szükséges csatlakozási pont, a későbbi távirányíthatóság miatt.
Budapest, 2007.
9.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
4. Az áramkörök megvalósítása és az áramköri elemek kiválasztása A teljes elektronika moduláris kialakítású, az egyes feladatok illetve feladatcsoportok elvégzéséért egy-egy modul felelős, így első lépésként 2 nagy egységre bontható a teljes elektronika: egy vezérlőelektronikára, és egy motorvezérlőre. A vezérlőelektronika felelős a távolságmérésért, kommunikációkért, a döntéshozatalokért és a későbbi bővítő egységek kezeléséért. A másik egység a meghajtásért felel, a motorok vezérléséért. Ez a motorvezérlő tudja megállítani, elindítani a két motort, megváltoztatni a forgásirányukat, és ami még fontos, hogy állandó fordulatszámon tudja tartani a motorokat. A tápellátás kérdése: felmerül a kérdés, hogy milyen tápegységet kapjon az egység, mivel kritérium hogy saját energiaforrással rendelkezzen, így célszerű egy akkumulátort választani. Mivel a motorok tápellátása 9V, így ez optimális tápellátás a 9V-os akkumulátor.
4.1. Meghajtás A meghajtás vezérlésért felelős elektronika egy különálló modul, ami hozzákapcsolódik a vezérlőelektronikához. A meghajtásnál figyelembe kell venni a következő szempontokat:
-
A motorok sebessége változtatható legyen
-
A motorok forgásiránya is változtatható kell, hogy legyen
-
A kijelölt sebesség megtartása, a külső befolyásoló tényezők ellenére
-
Az alábbi pontokban meghatározott kritériumok mind a két motor esetében külön értendők.
A kritériumokból felmerülő problémák meghatározása:
Első szempont a sebesség változtathatósága. Erre a lehetőségek analóg vagy digitális fordulatszám változtatás. Mivel a vezérlőelektronika digitális ezért célszerű a motorvezérlést is digitális áramkörökkel készíteni, így a kettő közötti kommunikáció könnyebb. Ha ezt a feladatot is egy mikroprocesszor látja el, akkor a későbbiekben történő változtatás jelentősen könnyebb, mint egy analóg áramkör esetén, mert a processzor programja könnyen átírható, ellentétben egy huzalozott logikával szemben. Továbbá az áramkör bonyolultsága is kisebb lesz, mivel az áramköröket a programozás váltja fel. A digitális fordulatszám változtatás egyik eszköze a PWM (Pulse Width Modulation – Impulzus Szélesség Moduláció). A működési elve a következő: a motor egy állandó frekvenciájú, és állandó amplitúdójú négyszögjelet kap, aminek a kitöltési tényezőjének a megváltoztatásával lehet a motort vezérelni. Minél kisebb a kitöltési tényező, annál kevesebb ideig kap a motor feszültséget, így lassabban forog, de ahogy növeljük a kitöltési tényezőt, több ideig kap feszültséget, úgy egyre gyorsabban forog.
Budapest, 2007.
10.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
A következő, hogy a kijelölt sebességet megtartsa a motor, erre úgy van lehetőség, hogy figyeljük a forgási sebességet, és ha változik, akkor beavatkozunk. Ehhez egy szabályzási kört kell felállítani. Mivel mikroprocesszoros a rendszer, így a szabályzás bevonható a processzorba, a szabályzó eszköz maga lesz a processzor. Ez egy digitális szabályozási kör, ahol mintavételezni kell. A visszacsatolásnál vett mintákat digitális formában kell eljuttatni a szabályzóhoz (a PIC-hez). A forgásirány változtatás lehetősége: jelen esetben a tápellátása a rendszernek egy 9V-os akkumulátor, ezért egy 0-9V-os rendszeren kell megoldani a polaritás váltást a motor pólusain. Ennek egy lehetséges módja a H-híd, ami 4 db tranzisztorból áll. Egyéb lehetőség lenne még egy polaritás váltó áramkör elkészítése is, de ez egyéb, bonyolultabb áramközöket igényelne, és mivel nagy áramok folyhatnak a rendszeren, így problémás lehet. Ezeket a polaritás váltókat kisebb áramoknál lehet nagyon jól alkalmazni. Továbbá szükség van a motor forgási sebességének mérésére, erre az optikai érzékelés megfelelő, impulzusszámlálásos elven, ami digitális mérés, így könnyen számolható processzorral. További sebességmérési lehetőségek: mágneses elvű impulzusszámlálás, tachometer, valamint léptetőmotor esetében lehet számolni a lépéseket. A processzor kiválasztása és a szabályzás blokkvázlata:
Milyen processzort is érdemes erre a célra választani? A támasztott követelményekből meghatározható: -
lehetőleg 2 PWM modullal rendelkezzen, a két motor fordulatszám szabályzása miatt
-
lehetőség legyen a fordulatszámmérésére (például: számláló bemenetekkel rendelkezzen)
-
külső kommunikációs lehetőség, hogy a vezérlőelektronikával tudjon kommunikálni
-
rendelkezzen néhány I/O porttal.
Ezen kritériumoknak feleljen meg, és ár szempontjából, ha lehet, minél gazdaságosabb legyen. Én erre a feladatra a PIC18F452-es típusú mikrokontrollert választottam, mivel megfelel a támasztott kritériumoknak és ár szempontjából is elfogadható. Jelen esetben egy szabályzási kört kell felépíteni, aminek alapja egy számítóegység lesz, a PIC.
4.1. ábra - A szabályzás blokkvázlata
Budapest, 2007.
11.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
A mintavételes szabályzási kör (4.1. ábra) lelke jelen esetben a PIC, ez az egység tartalmazza a különbségképzőt és a szabályozó elemet. A végrehajtó és a beavatkozó a logikai hálózat, ami a PWM jelet eljuttatja az egyes FET-ekhez, és egy illesztésről is gondoskodik, további része a beavatkozó, ami nem más, mint a H-híd, ez a meghajtó fokozat. Az érzékelő egy optikai fénysorompó. Az egyes alkatrészek kiválasztása:
A H-hídnál MOSFETEK alkalmazása (4.2. ábra), mivel a FET-ek térvezérlésűek, nem kell nagy áram a meghajtásukhoz, továbbá igen kicsi dinamikus ellenállással ( r ≈ 0.2Ω − 0.5Ω ) rendelkeznek, így igen kicsi a disszipációjuk. A FET-ekhez szükség van egy szintillesztésre, mivel 9V-os tápon vannak, és a processzor TTL jelszinttel dolgozik, ezért beiktatásra kerül egy open collector-os inverter is (74SN16N).
4.2. ábra - A végrehajtó és beavatkozó kapcsolási rajza
A működési elve a következő:
Az M1I lábon lehet kiválasztani a forgásirányt, az egyik P csatornás FET-re (Q1-re) negálva, míg a másikra (Q2-re) ponáltan kerül a jel, így az egyik P csatornás FET lezár, a másik kinyit, továbbá két NAND kapura is negálva és ponálva kerül az M1I jel. Ezek a NAND kapuk engedik át a PWM jelet az N csatornás FET-ekre. Ezzel a megvalósítással mikor az egyik P csatornás FET nyitva van, a vele átlósan elhelyezkedő N csatornás MOSFET lehet csak nyitva, azt is a PWM jel határozza meg, hogy mikor. Felhasznált alkatrészek típusai:
-
N csatornás MOSFET: P csatornás MOSFET: NAND kapu: Inverter:
Budapest, 2007.
STP16NE06FP IRF9Z34N SN74HC00N SN7416N
12.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
Az érzékelő:
4.3. ábra - Az érzékelő kapcsolási rajza
Az optikai érzékelő (4.3 ábra) feladata a fordulatszám mérése. Maga az érzékelő két részből tevődik össze, egy adó (LED) és egy vevő (foto tranzisztor). A P3-mas csatlakozó 1,2es lábára kerül a LED. 2, 3-as lábra a fotótranzisztor. A 2-es láb a tranzisztor kollektora, amihez R2 ellenállás tartozik, és a 3-mas ponton az emitter, a bázisát a fény intenzitása vezérli. Az R1-es ellenállás a LED munkapontját állítja be. Az illesztésért két schmitt-triggeres CMOS inverter felel, a CMOS áramkör szükségességét az indokolja, hogy nem kell nagy vezérlőáram a meghajtásához, mivel térvezérlésű, és ezek a foto tranzisztorok általában kis teljesítményűek. A schmitt-triggerrel kialakított hiszterézises null-komparátor alkalmas a zajos és szabálytalan jelek négyszögjellé alakítására. Speciális felhasználási területe: szinuszos alakú jelek négyszögesítése és elromlott négy szögalakú (digitális) jelek regenerálása (vissza négyszögesítése). A 4.4-es ábra szemlélteti.
4.4. ábra – schmitt-trigger
Az érzékelőnél felhasznált alkatrészek típusa:
-
Inverter (open collector): Hcc40106BF
Budapest, 2007.
13.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
4.2. A vezérlőelektronika A vezérlőelektronika feladata az információgyűjtés, döntéshozatal, és az utasítások kiadása. Ez tulajdonképpen a főprocesszor, ami egy PIC18F452-es mikrokontroller. Ebbe az egységbe futnak be az információk, mint például: a távolságméréssel kapcsolatos adatok, külső forrásból érkezett utasítások, a megtett út visszajelzése. Ezek függvényében végzi a számításokat, döntéshozatalokat, majd kiadja az utasításokat, például a motorvezérlőnek. Szükség van egy kommunikációs rendszerre az egyes eszközök között: főprocesszor, motorvezérlés, távolságmérés, külső kommunikáció, hogy az információkat az egyes modulok között lehessen cserélgetni. Erre a feladatra az SPI (Serial Peripheral Interface) buszt alkalmazok, ez egy MASTERSLAVE kapcsolaton alapuló soros kommunikáció. A MASTER eszköz a főprocesszor lesz, és a többi eszköz SLAVE. A MASTER eszköz feladata a kommunikációk lebonyolítása, vezérlése. Minden SLAVE eszköz rendelkezik egy választóbittel, ami tulajdonképpen egy chip select, és rendelkezik egy interrupt (megszakítást kérő) lábbal, amivel kérheti a MASTER-től a kommunikáció lehetőségét. Az alábbi ábrán egy MASTER-SLAVE kapcsolat látszik két processzor között (forrás: PIC18F452 adatlap):
4.5. ábra - SPI kommunikáció blokkvázlata
A kommunikációban egyszerre mindig csak 2 eszköz vehet részt, az egyik a MASTER és valamelyik SLAVE eszköz.
Budapest, 2007.
14.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
4.3. Az ultrahangos távolságmérő A távolságok mérése ultrahangos mérőegységgel történik. Az irány meghatározásának módja, hogy a mérőegységet egy léptetőmotorra helyezem. Az elfordulás szöge adja meg az irányt. Az egység alapvetően 3 részre bontható:
-
Vezérlő és számítóegység
-
Adó egység
-
Vevő egység
A vezérlő egység: feladata a mérés ütemezése, és a számítások elvégzése. Mivel az ultrahangos egység a vezérlőpanelen kap helyet így célszerű az ide tervezett processzort használni, ami egy PIC18F452-es. Ez a mikrokontroller lesz a vezérlő és számítóegység, feladata ütemezni a mérést és a kapott eredmények alapján a távolság meghatározása. Az adó egység: a mérőjel illesztése az ultrahangos transmitter-hez (ez egy hangszóró). A vezérlő által leadott TTL jelből, ami 0 és 5V körött váltakozik, létrehoz egy látszólagos +9V és -9V között ingadozó négyszögjelet (4.6. ábra). Ezzel a jelet felerősítettük, és egy teljesítményillesztést is kap.
4.6. ábra - Az ultrahangos egység adó része
Az Ultrasonic_out vezetéken érkezik a jel a vezérlőből, és a P1-es csatlakozóra kerül az adó hangszórója. Az illesztésnél open collector-os inverterek vannak használva, így létre lehet hozni egy látszólagos +9 és -9V-os jelet. A 7406-os IC 40mA-ig terhelhető a kimenetein, ami elég az adó meghajtására. A vevőegység: feladata, hogy a visszaverődött jelet érzékelje, felerősítse és illessze a vezérlőhöz. A visszaérkezett jel egy igen gyenge, amplitúdó modulált szinusz jel. Fel kell erősíteni a jelet. Ez két műveleti erősítővel (TL082P) történik, az első fok egy invertáló erősítő, erősítése 100 szoros. A második fok szintén invertáló, az erősítése változtatható: 1-től 146 szorosig. A teljes erősítés a kettő szorzata, így a maximális erősítés: 14600 szoros. Az erősítőkön nullpont eltolásos módszer segítségével lehetőség van egy szimmetrikus jelet +- os
Budapest, 2007.
15.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
táppal erősíteni. Az egység érzékenységét az erősítés határozza meg. A felerősített jelet egy demodulátorba vezetem, ami egy burkológörbét húz a jelre, ezt egyen irányítva belekerül a komparátorba. A komparátor egyik bemenete egy referencia feszültség a másik a felerősített demodulált jel. Egészen addig 0 a kimenete a komparátornak, míg a visszaérkezett jel amplitúdója nem éri el a referenciajelet. Abban a pillanatban, ahogy elérte átbillen 5V-ra, az inverter pedig illeszti a vezérlőhöz.
4.7. ábra - Az ultrahangos egység vevő része
A mérés főbb lépései:
-
a vezérlő (PIC18F452) elküld egy mérőjelet, ami 40Khz-es burst jel
-
a jel elküldésének a kezdetén elindít egy számlálót
-
várakozás a visszavert jelre
-
amikor a visszaverődött jel eléri a vevőt, a jelformálás végén egy impulzus jelzi az állapotot
-
amikor megérkezett az impulzus megáll a számlálás
-
a számláló tartalmazza az eltelt időt, amíg a hang oda-vissza megtette az utat
-
ezt az időt el kell 2-vel osztani, majd a v =
s képletből meghatározható a t
távolság -
ismert adatok: az idő és a hangterjedési sebessége. s = v ∗ t{v; t − ismert }
Budapest, 2007.
16.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
A mérés tovább pontosítható hőmérsékletméréssel, ugyanis a hang terjedési sebessége függ a hőmérséklettől. Így a sebesség is változó lesz a képletben, ami számítással megközelíthető. A hőmérsékletmérésre thermo senzor alkalmazható, ami digitális formában adja meg a hőmérsékletet. Ezt az információt a mikroprocesszornak kell eljutatni hiszen, ez végzi a távolságszámítást, tehát itt kell korrigálni a sebességet. Ez egy későbbi fejlesztés során kerül beépítésre. Az eszköz a rendszerbuszt (SPI) fogja majd használni, ez az áramkör tervezése során beépítésre kerül. Az felhasznált alkatrészek típusa:
-
Inverter (open collector-os): SN7406N Műveleti erősítő TL082P Komparátor LM293JG
4.4. Külső kommunikációs lehetőségek Külső kommunikációs lehetőségnek jelenleg egy soros port csatlakozás van kiépítve, ez például egy PC-hez köthető. RS232-es szintillesztő található a bemeneti csatlakozónál, ennek az illesztőnek a feladata az RS232-höz tartozó szabvány jelszint és a TTL szabvány (a mikrokontroller ezzel kommunikál) közötti átalakítás. Az illesztőhöz csatlakozik a két mikrovezérlő, lehetőség van egy jumper-rel (P10) kiválasztani, hogy melyik eszköz kommunikáljon külső forrással. A MAX232 TX_TTL és RX_TTL lába a P10-es jumper-re kerül, aminek a négy kimenete: (RX_p1 és TX_p1) ezek a főprocesszorhoz, míg a (RX és TX láb) a motorszabályzó processzorhoz mennek (4.8. ábra). Ezzel lehetőség van akár mind a két processzor soros porti tesztelésére is, külön-külön.
4.8. ábra - Soros port szintillesztése
Budapest, 2007.
17.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
5. Az áramkörök megtervezése Az áramkörök tervezéséhez az Altium Designer programot használtam, mind a schematich, mind a PCB-k (nyomtatott áramkörök) megtervezéséhez.
5.1. A teljes kapcsolási rajz Elsőként az áramkörrajzok elkészítése a feladat, a korábba már meghatározott egyes részegységek összekapcsolása. A főpanel (mainbord) kapcsolási rajza: 1. számú melléklet A motorvezérlő kapcsolási rajza:
2.számú melléklet
5.2. PCB A kapcsolási rajzok felhasználásával megkezdődhet a nyomtatott áramkörök tervezése. Lépései nagyvonalakban: a NYÁK méretének meghatározása, az alkatrészek, áramköri elemek elhelyezése, egyéb segédrajzolatok, furatok hozzáadása, a huzalozás paramétereinek meghatározása (vezetővastagság, forszemek átmérője…). A főpanel PCB-je:
3. számú melléklet
A motorvezérlő PCB-je:
4. számú melléklet
5.3. NYÁK elkészítésénél alkalmazott technika Az itt ismertetett technikával amatőr körülmények között készíthető igazi "nyomtatott áramkör". Nincs kézi rajzolás! Valódi számítógépes tervezés és gyártás házilag! Az elv a következő: a lézernyomtató (és a fénymásoló is) hőre olvadó festéket hengerel a papírra. Ez a festék remekül ellenáll mind a vas-kloridos, mind a sósav hidrogén-peroxidos maratásnak. A cél, hogy mi is fel tudjuk vinni ezt a festéket a kinyomtatott papírról a tiszta, sima NYÁK-ra. Erre a célra az un. tojáspapír, Tiszalux fényes és az un. műnyomó papír is mint hordozó papír a legalkalmasabb. A tojáspapír, Tiszalux fényes (és a műnyomó papír is) műanyag bevonata miatt a sima papírtól sárgásabb színű. Ez a műanyag bevonat megakadályozza, a festéket, hogy a papír belsejébe beszivárogjon. Így a festék a papír külső felületén megmarad. A kinyomtatott mintázatott (vezető pályák) a festékkel lefelé ráhelyezve a tiszta nyákra, megfelelő hő közlésével rá lehet vasalni a tiszta, sima nyákra. A rávasalt papír festéken keresztül rátapad a nyákra. Hideg vízbe beáztatva a papír fellazul (felhólyagosodik), 5.1. ábra – A PCB óvatosan lehúzva a papír eltávolítható és a tiszta festéket hátrahagyva kész is a maratásra a "nyomtatott" áramkör. Budapest, 2007.
18.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
Gyártási technológia:
Kétoldalas NYÁK gyártása: a számítógéppel megtervezett nyákot (pl.: Altium-mal) a felső oldalt (Top layer) tükrözve, az alsó oldalt (Botton layer) simán kinyomtatjuk lézernyomtatóval tojáspapírra (vagy műnyomóra). Lézernyomtató híján sima papírra, majd fénymásolóval másoltatjuk tojáspapírra. A nyomtatásnál használt festékmennyiséget (kontrasztot) kísérlettel kell meghatároznunk. Sem a túl sok, sem a túl kevés festék nem jó. Kevés festék esetén bizonytalan, vékony vezetőpálya lesz az eredmény, vastag festék esetén szétlapult, vastag, nem egyenletes vezetőpálya lesz az eredmény vasalás után. A NYÁK előkészítése: a karcoktól és zsírtól meg kell tisztítani és megszárítani. A kétoldalas film pozícionálása: Először az egyik oldalt, egy száraz, tiszta közepes hőmérsékletre beállított vasalóval egyenletesen levasalom a NYÁK lemezre. Ez a legkritikusabb része a dolognak. Kb. akkor jó a vasalás, amikor egyenletesen a teljes felületen lelapul a papír, és enyhén átdomborodik a festék (súrló fényben megnézve kidomborodik a papír, ami alatt festék van). Nem szabad túlzottan rányomni a vasalót, mert szétlapítja a vezetőpályákat. Többszöri vasaló tologatással az egész felületet, fokozottan ügyelve a szélekre is, levasaljuk. Vigyázzunk, hogy ne mozduljon meg a papír a nyákhoz képest! A megolvadt festék ráragad a nyákra és egyben a papírra is, ez rögzíti a papírt a nyákhoz. A vasalás után közvetlenül, míg meleg a festék egy gumihengerrel érdemes többször is áthengerelni mindkét oldalán. A levasalt papírral várunk egy kicsit, hogy meg szilárduljon a tinta és egy előre elkészített hideg vizes tálba merítjük az egész nyákot, úgy, hogy teljesen ellepje a víz. Hagyjuk bőven ázni a papírt (5.2. ábra) addig, míg fel nem hólyagosodik azokon a részeken, ahol nincs alatta tinta. Ez akár 20 perc is lehet. Itt lehet következtetni a vasalás minőségére is, mert a papírnak csak a tintamentes részeken szabad felhólyagosodnia, ahol tinta van, ott a nyákhoz kell rögzítődnie stabilan (látszatra). Szépen ki kell rajzolódnia a mintázatnak. Ha alaposan felázott a papír, szélét megfogva, több darabba le lehet hántani. A festék részeken, szálak maradnak a nyákon. Ezt a víz alatt az ujjunk hegyével, érzéssel le lehet dörzsölni.
5.2. ábra – A műnyomó papír eltávolítása
Ellenőrizzük a mintázat minőségét. Ha nem sikerült, acetonos ronggyal dörzsikélve le lehet szedni a festéket és kezdhetjük elölről az egészet. Ha jónak tűnik, mehet is a maratóba, de előtte a másik felét le kell ragasztani, hogy nem marja le a marató.
Budapest, 2007.
19.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
Az így félig elkészült NYÁK egyik oldalán pár átmenő furatot kell fúrni, így lehetőség van a másik oldali pozicionálásra. A másik oldalt is elő kell készíteni, meg kell tisztítani, majd a furatok segítségével pozícionálva rá lehet vasalni. A többi lépés megegyezik az első oldalnál alkalmazottakkal. Maratás után acetonos ronggyal le lehet dörzsölni a festéket és vékony Akrilan lakkal befújva megakadályozható a réz oxidációja (és jól forrasztható marad). Az elkészült NYÁK-ok az 5.3-mas ábrán láthatóak:
5.3. ábra – Az elkészült nyomtatott áramkörök
Budapest, 2007.
20.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
6. A szoftverfejlesztés, fejlesztői környezet A szoftverfejlesztés két mikrovezérlőre kell megvalósítani, a MASTER és a motorvezérlő mikrokontrollerre. A motormeghajtó PIC feladata az SPI-on kapott sebességértékek beállítása és megtartása a motorokon, valamint a megtett út mérése és visszaküldése a MASTER PICnek. A MASTER vagy főprocesszor feladata már összetettebb. Vezérelnie kell a rendszerhez kapcsolt eszközöket, az SPI buszon keresztül (motorvezérlő PIC, a későbbi hőmérsékletmérés és vezeték nélküli kommunikáció), továbbá az ultrahangos távolságmérés lebonyolítása és a döntéshozatalok. Ezen információk függvényében kell kiadnia az új utasításokat a motorvezérlőnek. Az eszközök kapcsolata, és a köztük lévő kommunikációs csatornák az alábbi 6.1.-es ábrán láthatóak:
6.1. ábra - A rendszer blokkvázlata
A két mikrokontroller, valamint a később még csatlakoztatásra kerülő eszközök az SPI buszon kommunikálnak. A programfejlesztést a Michrochip cég által kiadott MPLAB 7.6-os verziójú programjában végeztem a két PIC18F452-es mikrokontrollerre. A programozásnál fontos szempont volt a moduláris kialakítás, az egyes feladatok, műveletek szubrutinokban való elhelyezése.
Budapest, 2007.
21.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
6.1. A motormeghajtás, fordulatszám szabályozás A motoron elhelyezett optikai érzékelő, ami áttételek segítségével 3X gyorsabban forog a motor főtengelyénél, ott található egy korong, ami 40 lyukat tartalmaz. Így a motor tengelyének 1 körbefordulásával 3x40, azaz 120 impulzust ad a távadó. Ezeket az impulzusokat a mikrokontroller két TIMER bemenetén számolja a rendszer (mindkét motorhoz 1-1 TIMER). A TIMER-ek használhatók számlálóként is, ilyenkor egy külső jelforrás él változásaira inkrementálódnak (eggyel növekednek). Jelen esetben a TIMER0 és a TIMER1 van felhasználva erre a célra. Szükséges még egy időzítés, ami a mintavételi időt határozza meg erre a feladatra a TIMER3 maradt mivel a TIMER2 már a PWM jel előállításánál fel van használva. A TIMER3 konfigurálása: timer3_init bcf bsf bsf bsf bsf bsf bcf bsf bcf bsf return
T3CON,RD16 T3CON,T3CCP2 T3CON,T3CCP1 T3CON,T3CKPS1 T3CON,T3CKPS0 T3CON,T3SYNC T3CON,TMR3CS T3CON,TMR3ON PIR2,TMR3IF PIE2,TMR3IE
;2db 8 bites regiszter (TMR3H,TMR3L) ;előosztó (1:8) ; ;szinkronizálás belső órajelhez ;belső órajel forrás választása ;timer3 bekapcsolása ;timer3 megszakítás jelző flag bit törlése ;timet3 megszakítás engedélyezése
Miután beállítottuk a TIMER3-mat, meg kell határozni a TMR3-nak adandó értéket, hogy a kívánt időnként szakítson meg, ugyanis a két 8 bites regiszter mindig inkrementálódik, és amikor túlcsordul generál egy megszakítást. Ki kell számolni, hogy mennyitől növeljük a regiszter értékét. Egy belső órajel ciklus 10MHz-es órajel és 4 szeres PLL mellett 10MHz, ami 100ns. 8-as előosztó van beállítva, tehát 800ns-onként inkrementálódik a TMR0 regiszter. Egy 20ms-os 20ms mintavételi idő beállításához szükséges TMR0 növelések száma: i{db} = = 25000{db} 800ns Ezt ki kell vonni a regiszter maximális értékéből ami 216 = 65536 A kezdőérték: kezdo = 65536 D − 25000 D = 40536 D = 9 E 58 H Ezt az értéket kell a TMR3 regiszterbe kezdőértéknek megadni. Minden megszakítás első lépéseként újra be kell állítani, hiszen túlcsorduláskor nullázódik a regiszter értéke. Ezzel létre is hoztunk egy 20ms-os mintavételi időt. A TIMER0 és TIMER1 inicializálása, ezek lesznek a számlálók a motorhoz kapcsolt optikai távadóhoz. A szabályzás folyamatábrája a 6.2.-es ábrán látható. A mintavételi idő alatt (minden esetben megegyező - 20ms) számoljuk az optikai távadó jelének felfutó éleit. A mintavételi idő leteltével összehasonlítjuk egy referenciaértékkel, amivel szeretnénk, hogy haladjon a jármű. Ha a mért érték kisebb a referenciánál, akkor gyorsítani kell a motoron, mivel lassabb
Budapest, 2007.
22.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
a forgási sebessége a kívántnál. Ezért a PWM kitöltését növelni kell. Ha gyorsabb, mint a kívánt érték, a PWM kitöltési tényezőjét csökkentjük. Létezik egy harmadik eset is, ha megegyezik a két érték, ilyenkor nem kell csinálni semmit, marad a PWM kitöltési tényezője az előző érték.
6.2. ábra - A motor szabályzásának folyamatábrája
Ezt a vizsgálatot mind a két motoron el kell végezni és külön beállítani az új PWM értéket. Ebben az esetben mindig ugyanakkora mértékben módosítjuk a kitöltési tényezőt, egy elég lassú szabályzás lesz az eredménye. A szabályzás gyorsításának módja, ha már megszületett a döntés a PWM kitöltésének növelése, vagy csökkentése szükséges, akkor ezen belül újabb döntéseket kell hozni. Például milyen mértékű legyen a kitöltési tényező módosítása. Ha nagy az eltérés a referencia és a mért érték körött, akkor nagyobb, ha kicsi az eltérés, akkor viszont egész kismértékű beavatkozásra van szükség. A sebesség, referenciajel értékének számítása: A legcélszerűbb az lenne, ha rpm-ben lehetne megadni a motorok forgási sebességét. Közvetlenül azonban nem lehetséges, ki kell számolni, hogy a kívánt rpm értékhez hány impulzus tartozik. A motor főtengelyének a forgási sebessége harmadára lassul, mire meghajtja a hernyótalpakat, az érzékelőnél pedig 3-szorosára gyorsul, így tehát 9-szer forog gyorsabban az optikai távadó, mint a hernyótalpat meghajtó dob. 1{körbefordulás} = 9 ∗ 40{impulzus}
Budapest, 2007.
23.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
Ahhoz, hogy meghatározhassuk rpm értékbe, figyelembe kell venni azt is, hogy 20msonként veszünk mintát, nem percenként. ⎡ impulzus ⎤ 1[rpm] = 9 ∗ 40 = 360 ⎢ ⎥ vagyis 1 teljes körbefordulás 360 impulzust jelent. ⎣ perc ⎦
A sebesség
m -ban, és az impulzusérték közti kapcsolat: s
Ismert a 3.2-es pont alapján a következő: Kerülete a dobnak: K = d ∗ π = 30 ∗ 3.14 = 94.2mm = 0.0942m
⎡ m ⎤ Sebesség meghatározása: v ⎢ = K [m]∗ ω [rpm] (szögsebesség) ⎣ min ⎥⎦ 1m megtétele során küldött jelek száma: x =
1m = 3821.6[db] 0.0942m
imp imp ⎡m⎤ = 76.43imp _ min tavételenként = 76.43 1⎢ ⎥ = 3821.6 s 20ms ⎣s⎦ 1m megtétele másodpercenként 76.43 lefutó élt generál a számláló bemenetén. Ebből a képletből már egy egyenes arányossággal meg lehet határozni, hogy egy kívánt sebességértékhez hány impulzust szükséges beállítani a szabályzóban. A motor fordulatszám szabályozásának az algoritmusa az alábbi részen látható, ez egy az alap szabályzás, a beavatkozás mértéke mintavételi időpillanatokban mindig ugyanolyan nagyságú, csak az iránya változik. A későbbiekben lehetőség van egy komplexebb döntéshozási rendszert kialakítani így a szabályzás minősége javítható. Végül egy általános állásos szabályzás átmeneti függvénye látható a 6.3-mas ábrán:
6.3. ábra - Állásos szabályozás
Budapest, 2007.
24.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT ;A mintavételezés befejeződött (20ms), döntéshozatal, PWM változtatása int_timer3 movf TMR0L,W ;az impulzusszámlálás elmentése movwf m1imp ;fordulattal arányos impulzusszám movf TMR1L,W ;az impulzusszámlálás elmentése movwf m2imp ;fordulattal arányos impulzusszám clrf TMR0L clrf TMR1L bcf PIR2,TMR3IF ;timer3 megszakítás jelző flegbit törlése movlw 09eh ;a TMR3 feltöltése movwf TMR3H ;a korábban movlw 058h ;kiszámolt movwf TMR3L ;értékkel call tavell ;a távolság ellenőrzése, amit meg kell tenni ;-----------M1-es motor állítása movf m2_speed,W cpfsgt m1imp call m1iim1 movf m2_speed,W cpfslt m1imp call m1dm1 ;-----------M2-es motor állítása movf m1_speed,W cpfsgt m2imp call m1ii movf m1_speed,W cpfslt m2imp call m1d return
;ha lassabb a forgási sebesség ;mint az előírt akkor növelni kell ;kitöltési tényező növelése ;ha lassabb a forgási sebesség ;mint az előírt akkor csökkenteni kell ;kitöltési tényező csökkentése ;ha lassabb a forgási sebesség ;mint az előírt akkor növelni kell ;kitöltési tényező növelése ;ha lassabb a forgási sebesség ;mint az előírt akkor csökkenteni kell ;kitöltési tényező csökkentése
;----------- Megfutásfigyelés: a PWM kitöltési tényezője ne csorduljon túl m1ii movlw 0f0h cpfslt CCPR2L ;a pwm kitöltése ne csorduljon túl return incf CCPR2L ;a kitöltési tényező növelése return m1d movlw 01h cpfsgt CCPR2L ;a pwm kitöltése ne csorduljon túl return decf CCPR2L ;a kitöltési tényező csökkentése return m1iim1 movlw 0f0h cpfslt CCPR1L ;a pwm kitöltése ne csorduljon túl return incf CCPR1L ;a kitöltési tényező növelése return m1dm1 movlw 01h cpfsgt CCPR1L ;a pwm kitöltése ne csorduljon túl return decf CCPR1L ;a kitöltési tényező csökkentése return
Budapest, 2007.
25.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
6.2. Ultrahangos távolságmérés Az ultrahangos távolságmérő szubrutinjai: A burst jel küldése: ;Ultrahang burst jel küldés, mérőjel burst bcf INTCON3,INT2IE bcf INTCON,TMR0IF movlw 050h movwf TMR0H movlw 000h movwf TMR0L movlw 0eh movwf temp2 clrf TMR3H clrf TMR3L clk bsf PORTA,4 call delayd nop nop nop bcf PORTA,4 call delayd nop nop nop decfsz temp2 goto clk nop call delayv bcf INTCON3,INT2IF bsf INTCON3,INT2IE return ;--------------------------------------------------------------;Ultrahang 40KHz létrehozásához késleltetés delayd movlw 026h movwf temp1 ided decfsz temp1 goto ided return ;---------------------------------------------------------------
;A INT2 megszakítás tiltása ;A TMR0 megszakítás jelző bit ;TMR0 feltöltése
;Hány impulzusnyi jel legyen ;Az időmérés előkészítése ;A mérőjel kiküldése
;1.5ms os késleltetés ;INT2 flag törlése ;INT2 megszakítás engedélyezés
Ezzel a programrészlettel van megvalósítva a 40KHz-es burstjel (mérőjel) kiküldése, 15 impulzus időn át. A küldés pillanatában el kell indítani egy számlálót, ami méri az eltelt időt. Az adás kezdete előtt le kell tiltani a visszaérkező jel figyelését, mivel az adás során áthallás van, így rögtön megszakítana. Az áthallás csúszását, és a visszhangokat figyelembe véve egy körülbelül 1-1.5ms-os késleltetés után van csak engedélyezve a visszavert jel érzékelése.
Budapest, 2007.
26.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
A jel visszaérkezése: Ultrasonic bcf bcf btfss return movff movff clrf clrf bcf return
;A számlált impulzusokat a temp2 tartalmazza INTCON3,INT2IE ;INT2 megszakítás tiltása INTCON3,INT2IF ;INT2 megszakítást jelző bit törlés stat,7 ;Volt-e adás? TMR3H,temp2 TMR3L,temp1 TMR3H TMR3L stat,7
;Az eltelt idő kiolvasása ;A regiszter törlése
Amikor a visszaverődött jel eléri a vevőt, jelformálás után az INT2-es megszakításlábra kerül, ahol egy lefutó élként megszakítást generál. A számlálót, mely megmérte az eltelt időt a mérőjel kiküldése és visszaérkezése között kiolvassuk, majd számítást kell rajta végezni a hang terjedési sebességének ismeretében. Ismert adatok: Az órajel frekvencia, ami 40Mhz ebből egy belső órajel ciklusideje 1 t cikl = = 100ns 40MHz ÷ 4 A számláló (TMR3) egy nyolcas előosztón keresztül kapja meg ezt az órajel ciklust, így 800ns-onként növekedik eggyel a számláló. A timer3 egy 16 bites számláló, az alsó 8 bit most egy további előosztóként funkcionál, csak a felső 8 bitet olvassuk és dolgozzuk fel. A felső 8 bites regiszterben 1 bit „ideje”: 1 bit (800 x 256)ns –nak felel meg, így már az eltelt idő ismeretes, oly módon, hogy a regisztert megszorozzuk ezzel a t b = 800 ∗ 256ns = 204.8ms idővel. Az eltelt idő a jel kiküldése és visszaérkezése között: ∆t = 204.8ms ∗ TMR3H = ...[ms ] A hang terjedési sebessége: v=344m/s s = v ∗ ∆t = 344
m ∗ ∆t [ms ] = ...[mm] s
Az eredményt mm-ben kapjuk.
A PIC18F452 rendelkezik egy 8*8 bites hardveres szorzóval, így mivel csak szorzásra van szükség ez könnyen megvalósítható ezen eszközzel. Az első szorzás két 8 bites szám szorzása, ezzel nincs különösebb probléma, az eredmény két 8 bites regiszterben keletkezik. A második szorzás már két 16 bites szorzás. A mérés ideje alatt a motorokat le kell állítani, mert a motorok 25KHz-es PWM jele bezavar az ultrahangos mérésbe. Nincs szükség hosszú idejű leállításra, 50ms bőven elég, ilyenkor akár 2 mérés is végezhető, ha a két mért érték közel egyforma, már nagyobb biztonsággal lehet állítani, hogy a mérés hiteles volt. Ezt az 50ms-os megállást a későbbiekben Ultrahangos mérőstopnak nevezem. Ez persze megfelelő árnyékolással és szűréssel kiküszöbölhető hiba, ez későbbiekben akár korrigálható.
Budapest, 2007.
27.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
6.3. Az egyes elemek közötti, belső kommunikációk Az PIC18F452-es mikrokontroller tartalmaz egy MSSP modult, ami két üzemmóddal (SPI és IIC) rendelkezik. A rendszer indulásakor be kell állítani, hogy az SPI üzemmód legyen aktív, továbbá MASTER, vagy SLAVE módban üzemel majd az eszköz. Az alábbi programrészlet tartalmazza a MASTER PIC, SPI modul konfigurálását. Átviteli sebesség: Fosc/4, azaz jelen esetben 40Mhz/4 az átvitelt szinkronizáló órajel frekvenciája.
;SPI SLAVE módú inicializálása: spi_init bsf TRISC,4 bcf TRISC,5 bcf TRISC,3 bcf TRISB,3 ; bcf SSPSTAT,SMP bsf SSPSTAT,CKE ; bcf SSPCON1,WCOL bcf SSPCON1,SSPOV bsf SSPCON1,CKP bcf SSPCON1,SSPM3 bcf SSPCON1,SSPM2 bcf SSPCON1,SSPM1 bcf SSPCON1,SSPM0 bcf PIR1,SSPIF bsf PIE1,SSPIE bsf SSPCON1,SSPEN return
;SDI, bementre állítása ;SDO, kimenetre állítása ;SCK, bemenetre állítása ;SS_1, bemenet, (Slave Select) ;Mintavételi bit ;SPI él választó bit, felfutó él ;Órajel polaritás, magas szint ;SPI mód ;beállítása: ;MASTER ;CLK=Fosc/4 ;SPI megszakítás engedélyezése ;SPI modul bekapcsolása
A SLAVE mikrokontrollernél annyiban módosul a beállítás, hogy a SCK (órajel) lábat bemenetre kell konfigurálni, továbbá az (SSPM3:SSPM0) bitek állításával SLAVE üzemmód kiválasztása szükséges. Két féle kommunikációs eset lehetséges: A MASTER eszköz adatot kér vagy ad egy SLAVE-nek: ebben az esetben a MASTER a SS (Slave Select) bittel kiválasztja azt az eszközt, mellyel kommunikálni szeretne. Az adáshoz betölti a küldeni kívánt 8 bitet a SSBUF regiszterbe, amellyel megkezdődik az adás. Az utolsó bit áthaladásakor megszakítás generálódik mindkét eszközben. Adat vételnél, feltételezve, hogy a másik eszköz már előkészítette az információt, be kell tölteni bármilyen értéket az SSBUF regiszterben, ennek hatására adás indul és a két eszköz regisztere kicserélődik. Egy SLAVE eszköz akar adni, vagy adatot venni: Ha adni akar, kiszolgálási kérelemmel kell a MASTER-hez fordulnia, ezt egy interrupt lábon (a MASTER INTx lábán) teheti meg. Kikészíti az adatot küldésre és kezdeményez egy megszakítást, az adatcserét a MASTER bonyolítja le. Vételi esetben szintén megszakítást generál, és a MASTER eszközé a többi feladat. Budapest, 2007.
28.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
6.4. A kommunikációs szabvány kialakítása és a döntéshozatal Az egyes eszközök, jelen esetben a MASTER és a SLAVE PIC az SPI buszon keresztül kommunikálnak. Az SPI protokoll az előző pontban került ismertetésre. Most egy olyan jelzőbit, és adatcsomag küldő-fogadó rendszert mutatok be, mely segítségével a két mikrokontroller kommunikálni tud. Erre azért van szükség, mert a MASTER eszköz dönti majd el a haladási sebességet és irányt, a motorvezérlő csak végrehajtja, ahhoz viszont valamilyen rendszerbe kell foglalnia küldött adatokat. 3 nevezetes bájt, mégpedig a következőek: DATAI – ez kerül elsőként küldésre, jelzőbiteket tartalmaz; DATAV – értéket tárol, vagy a motorok sebességét, vagy az elfordulás szögét. Végül a DATAV2 – ez a regiszter szintén egy értéket tárol, méghozzá a haladási távolságot. Ezen 3 regiszter egyes bitjeinek a jelentését meg kell határozni, ami az alábbi részben olvasható. DATAI:
X
M
FORG
ND
M2I
M1I
M2E
7.
M1E 0.
bit0-1:
M1E, M2E: Az 1. és 2. motort tiltó bit, ha 1-tiltás.
bit2-3:
M1I, M2I: Az 1. és 2. motor irányát jelző bit, ha értéke 0 – előre forgás, 1hátrafele.
bit4:
ND: Új adat jött, ha értéke 1. A DATAV és DATAV2 regiszterekben a motorok új sebesség és megteendő távolsága.
bit5:
FORG: Elfordulás jelző bit, ha 1-es, akkor el kell fordulni a DATAV értékének megfelelően
bit6:
M: Mérési stop, ha értéke 1. Az ultrahangos mérés idejére 50ms-os megállás.
DATAV: két jelentése lehet a benne tárolt értéknek a FORG és a ND bit állása szerint:
Ha a DATAI,FORG bit értéke 1: I
X
X
Elfordulás szöge
7.
0.
bit0-4:
I: Az elfordulás irány. Ha értéke 1 – jobbra, 0 – ballra forgás.
bit7:
Elfordulás szöge: 5 bitbe az elfordulás szöge
Ha a DATAI,ND bit értéke 1: M2 sebességértéke
M1 sebességértéke
7.
0.
bit0-3:
M1 sebességértéke: Az első motor sebessége
bit4-7:
M2 sebességértéke: A második motor sebessége
Budapest, 2007.
29.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
DATAV2: A megteendő távolság, cm-ben megadva
Távolság 7. bit0-3:
0. Távolság: 8 bites érték, cm-ben tartalmazza a megtenni szükséges utat.
Az itt felsorolásra került bájtok az SPI buszon kerülnek átadásra a SLAVE PIC-nek. Három bájtra azért volt szükség, mert egy jelzőbiteket tartalmaz, egy másik a két motor sebességét tárolja le, továbbá szükség volt egy 3.-ra is, amiben elküldésre kerül az a távolság, amit meg kell tennie a robotnak. A DATAI regiszternek a vizsgálata megadja, hogy jönnek-e további bájtok, sorra: DATAV, DATAV2. A 6.4.-es folyamatábra mutatja a beérkezett adatok feldolgozásának lépéseit. A következő oldalon az SPI megszakításkezelés ASM forráskódja.
6.4. ábra - A SLAVE eszköz információfeldolgozása
Budapest, 2007.
30.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT ;SPI megszakítás spi_int bcf movf movwf bsf btfsc goto bcf call movf movwf bsf btfsc goto bcf call movf movwf btfsc bsf return umvki bsf return forgki bsf return
PIR1,SSPIF SSPBUF,W datai spiint datai,6 umvki spiint delays SSPBUF,W datav spiint datai,5 forgki spiint delays SSPBUF,W datav2 datai,4 stat2,1
;SPI megszakítást jelző bit törlése ;1. bájt olvasása az SPI buszról ;Visszajelzés, megtörtént az olvasás ;Ultrahangos mérőstop? ;Ha igen ugrás ;Várakozás ;2. bájt olvasása ;Visszajelzés ;Forgás? ;Ha igen ugrás ;Várakozás ;3. bájt olvasása ;Új adat? ;Ha igen állapotbit állítás
stat2,2
;Ultrahangos mérőstop állapotbit állítása
stat2,0
;Forgás állapotbit állítása
A SLAVE PIC-ben egy állapotgép működik (6.5. ábra), bitjeit ebben az adatfeldolgozásban célszerű beállítani (6.4. ábra szerint). Az állapotbiteket szintén egy általam kinevezett regiszter tartalmazza a STAT2. A beérkezett adatok feldolgozása során kerülnek beállításra a STAT2 regiszter bitjei. STAT2
X
X
X
X
TO
UMV
NWD
7.
F 0.
bit0:
F: Ha értéke 1, akkor forgás.
bit1:
NWD: Ha értéke 1, akkor az új adat lekezelése.
bit2:
UMV: Ha értéke 1, akkor 50ms-os távolságmérési stop végrehajtása.
bit3:
TO: Értéke 1, abban az esetben elérte az aktuálisan megadott távolságot.
Budapest, 2007.
31.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
6.5. ábra - A SLAVE PIC állapotgépe
Miután a bitek beállításra kerültek, a program visszatér egy végtelen ciklusba, az állapotgépbe. Innen egy megszakítás, vagy az állapotbitek egyesbe állása esetén kerül ki a program futása. Amikor egy állapotbit értéke egyes lesz, a bithez tartozó szubrutin kerül futtatásra, majd mikor lefutott a hozzátartozó rutin, vagyis végrehajtotta a bithez rendelt feladatot, a visszatérés előtt kitörli az állapotbitet. Az állapotgép forráskódja: ;SLAVE PIC: állapotgép ide call btfsc call btfsc call btfsc call btfsc call goto
Budapest, 2007.
impcount stat2,0 forog stat2,1 newdata stat2,2 umv stat2,3 tavok ide
;Impulzus számlálás ;Forogás? ;Forgási rutin meghívása ;Új adat? ;Új adatok betöltése ;Ultrahangos mérés zajlik? ;Az UMV rutin lekezelése ;Elérte a kívánt távolságot? ;Új adatok kérése
32.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
A döntéshozatal:
A MASTER PIC-nek a távolságmérésből el kell döntenie, hogy van-e előtte akadály, és ha igen, akkor merre kerülje ki azt. A feladata a robotnak, hogy egy célterületet elérjen, ez fogja meghatározni a kerülési útvonalat. A kikerülésnél figyelembe kell vennie, hogy merre mehet egyáltalán, de ha lehetőség van, akkor mindig a célterület fele tartson. Jelen estben csak 1 elfordulási szöget ismer, mindig 45°-ot fordul, jobbra vagy ballra. A döntéshozatal lépéseit a 6.6-os ábra tartalmazza. Bizonyos időnként történik egy távolságmérés, ez az idő például a sebességtől függ, ha gyorsan halad a robot, akkor sűrűbben, (200-800ms) ha viszont lassan, akkor akár másodpercenként is elég mérni. Miután megmérte a távolságot, el kell dönteni-e hogy merre tovább. Alapesetben a célterület fele indul egyenesen, hiszen ez a legrövidebb út. Ha akadályt érzékel, akkor megáll. Ezután mér ballra és jobbra is egyet 45°-ra. Ezekből meghatározza, merre lehet továbbhaladni, ha egyik irányba sincs akadály, akkor az alapértelmezett irányba (jobbra) halad tovább. A kitérés után, ha újabb objektumot érzékel, az ellenkező irányban fordul el az előzőhöz képest. Ha lehetséges ugyanannyit, így visszatér az eredeti pályára. Ha további akadályokba ütközik, letárolja merre tért ki és majd próbál az előző pálya fele tartani. Elfordulás után a megtett távolságot maximalizálni kell, akkor is, ha nem érzékel újabb akadályt. Az irányváltásokat szükséges letárolni, ezt egy LIFO-ban teszi meg, hiszen a legutoljára betett értéket veszi ki először, így mindig az utolsó eltérést fogja korrigálni. Továbbá szükséges még egy koordináta rendszerben ismernie a helyzetét, amit a 45°-os eltérésekből és haladási távolságokból a Pitagorasz-tétel segítségével meghatározza az X és Y koordinátáit. Miután megközelítette a célterületet, megáll. A koordináta rendszer felépítése:
Egy virtuális koordinátarendszert kell létrehozni a PIC memóriájában. Az origóját a robot kiindulási helye, és az Y tengelyt a START és CÉL pont összekötése adja meg. A felosztása cm pontos ez most az egyszerűség miatt, és a PIC korlátai miatt szükséges, ez a felbontás viszont később növelhető. Szükséges regiszterek, melyek segítségével ez létrehozható: Y_KOORD: Az y koordináta értéke, cm-ben X_KOORD: Az x koordináta értéke, cm-ben LIFO_ELTÉRÉS: Kell egy verem, ami az eltéréseket tárolja, merre, mennyit. Továbbá néhány segédregiszter a számítások alatt, és az SPI buszra kinevezett 3 nevezetes bájt, amivel az új útvonal átküldésre kerül.
Budapest, 2007.
33.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
i
h
6.6. ábra - A döntéshozatal folyamata
Budapest, 2007.
34.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
Nézzünk egy példát az előzőekben leírt elvekre. Most egy egyszerű, két akadályt (A1 és A2) tartalmazó esetet, ezt a 6.7. ábra szemlélteti. A két kör a START és STOP területét szemlélteti. Látható, hogy az origó a kiindulási pont, és az y tengely a START és STOP pontot összekötő egyenesen helyezkedik el. Legelőször a célterület fele indul meg a robot, az y tengely mentén, közben távolságméréseket végez, mindaddig, míg közel nem kerül egy akadály, ebben az esetben megáll - 1. megállás. Mér jobbra és balra, majd eldönti, merre mehet, jelen esetben jobbra. Kiadja az utasítást a jobbra forduláshoz, majd meghatározza, mennyit haladjon a 2. megállási pontig. Itt szintén megáll, de nem akadály miatt, hanem mert tartania kell a célterület fele, feltételezve már elhagyta az 1. akadályt, ezért elfordul 90°-ot balra, pont ellentétes irányba, mint az előbb, ezt az előző értéket a LIFO-ban tárolta le. Majd halad tovább és figyeli továbbra is az akadályokat. Közben, míg kerülgette az útjába kerülő akadályokat, minden irányváltoztatásnál kiszámolta a helyzetét a virtuális koordinátarendszerében. Mikor érzékeli, hogy közel a célkoordináta, megáll.
y {cm}
3. megállás elérte a célt
A1 2. megállás visszafordul
A2
1. megállás akadály Kiindulópont, origó
X {cm}
6.7. ábra – Az akadályok kikerülése
Budapest, 2007.
35.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
7. Tesztelés, az áramkörök élesztése Miután elkészültek az áramkörök megkezdődhet a tesztelésük, a következő lépések alapján: -
Villamos kapcsolatok vizsgálata: a vezetősávokon esetleges szakadások keresése és javítása, forrasztási pontok villamos kapcsolata, átvezetések vizsgálata a két réteg között.
-
A feszültségszintek ellenőrzése: A VCC=5V és 3.3V-os feszültségértékek meglétének ellenőrzése
-
A motormeghajtó tesztje: A motorcsatlakozókra voltmérő kapcsolása és a szükséges tápfeszültség rákapcsolása az áramkörre, majd a lehetséges állapotok kipróbálása a bemeneti irányváltás és PWM lábakon.
-
A mikrovezérlők beüzemelése
-
A soros port tesztelése: PC-vel való összeköttetés és próbakommunikáció
-
Az ultrahangos távolságmérő tesztelése és beállítása: az adóra egy folyamatos burst jel és utána késleltetés, majd oszcilloszkópon végignézni a vevő egyes szakaszait, erősítés, burkológörbe, komparálás. Miután ez megvan a beállítás következik, így például az erősítés és a komparálási szint beállítása.
Budapest, 2007.
36.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
7.1. Az ultrahangos egység tesztelése Az ultrahangos egység beállítása igen kifinomult feladat, amelyhez egy oszcilloszkóp elengedhetetlen. Első lépésnek folyamatos burst jeleket kell kiküldeni, majd egy ideig várni, és megint kiküldeni, közben a visszaérkezett jel erősítését kell beállítani (7.1. ábra). Az oszcilloszkópot a burst jelre kell trigger-elni (Ext trigger), majd az erősítést optimálisra beállítani, hogy a visszavert jelek tápfeszültségig menjenek. A túl nagy erősítés se jó, mert akkor a kimeneten megjelenhet a tápfeszültség. Következő lépésnek a komparálási szintet kell majd beállítani, az oszcilloszkóp másik csatornáját a komparátor kimenetére kell kötni, majd a komparálási szintet a maximális jel amplitúdója alá kell vinni. Addig kell állítani a komparálási szintet, míg a 7.1-es ábra szerinti formázott jelet nem kapjuk, minél kisebb időkre váltson át az állapot. A burst jel áthallása
A mérendő tárgy jele
Egy messzebbi, de nagyobb tárgy
Komparálási szint
7.1. ábra - Ultrahangos mérő jelalakjai; felső jelalak a visszaverődött és felerősített jel, Az alsó jelalak a komparálás utáni állapot
A 7.1-es ábrán a felső jelalak a visszaverődött és felerősített jel, 3 csúcs látható benne, ebből csak az egyik hordozza a hasznos távolságot. Az első nagy amplitúdójú rész az áthallás miatt alakult ki, mikor el lett küldve a mérőjel, ez a szakasz egy holtsáv, itt nem lehet mérni. Miután ez az állapot lecsengett figyelni kell a következő esetet, azt fogjuk a hasznos távolságnak venni. Az alsó jel a komparátor utáni jel, itt csak akkor lesz alacsony szintű a jel, mikor a visszavert jelben kiemelkedések vannak. Ez már TTL-re van illesztve. Ezek után az ultrahangos távolságmérő minőségvizsgálata következik, meg kell mérni mi az a maximális távolság, ahol még biztonsággal tud mérni, és mi a minimális távolság (áthallás miatt). Budapest, 2007.
37.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
A mérésből meghatározott paraméterei az eszköznek: -
Minimális távolság: 30cm
-
Maximális távolság: 2m távolságban egy A4-es lapról visszavert jel még pontos eredményt szolgáltatott. A nagyobb távolságokon már nem mindig veszi észre a kisebb tárgyakat.
7.2. Az optikai távadó tesztelése Az optikai távadónál meg kell vizsgálni a jelillesztést. A fénysorompó által szolgáltatott jel, egy szinuszos formájú jel, ezt a schmitt-trigger segítségével négyszögjellé formáljuk. A 7.2-es ábrán látható a formázatlan és a formázott jel a kész eszközön készített oszcilloszkóp kép.
7.2. ábra - Az optikai távadó jele: a felső jelforma a formázatlan jel, Az alsó jelforma a négyszögjellé formázott jel
7.3. A motor szabályzás tesztelése A motor szabályzás minőségének a vizsgálatához fel kell venni a szabályzás átmeneti függvényét. Ennek egy lehetséges módja, hogy elindítjuk a motort, minden mintavételi pillanatban letároljuk a sebességet, majd egy meghatározott idő után ezeket az adatokat felküldjük a számítógépnek. Ott egy grafikus program a kapott adatokból felrajzolja grafikusan az átmeneti függvényt.
Budapest, 2007.
38.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
7.4. A kész robot Az elkészült, és már tesztelt vezérlőelektronikák a 7.3-mas ábrán, a teljesen felszerelt robot a 7.4-es ábrán látható.
7.3. ábra – Vezérlőelektronika
7.4. ábra - A teljesen felszerelt robot
Budapest, 2007.
39.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
8. Felhasználhatóság, későbbi továbbfejlesztés Az eszköz képes az önálló működésre, külső beavatkozás, távirányítás nélkül tud haladni, a terepviszonyoktól függetlenül, az útjába kerülő akadályokat megkerülve halad tovább. Olyan területen kerülhet alkalmazásra, ahol önnavigáló egységre van szükség, emberi beavatkozás nélkül képes feladatát ellátni. Például automatizált gyárakban anyagmozgatási feladatok elvégzése. Egy másik alkalmazása lehet olyan helyeken, ahol a távirányíthatóság nehezen megoldott, vagy, mert problémás a kommunikáció például mély tengerekben, vagy a jelterjedési sebesség miatt nagy a késleltetés például másik bolygókon.
Későbbi továbbfejlesztési tervek: Vezeték nélküli kommunikáció megvalósítása: erre a célra egy csatlakozófelület került kiépítésre tervezéskor, mely a rendszerbuszon, SPI-on keresztül kommunikál majd az eszközzel. Így lehetőség nyílik akár a távirányíthatóságra, vagy akár egy grafikus terepfelmérésre oly módon, hogy az ultrahangos egység segítségével felméri a környezetét az egység, majd vezeték nélküli kapcsolaton keresztül elküldi egy számítógépnek, ahol lehetőség nyílik a grafikus megjelenítésre. Az ultrahangos távolságmérő bővítése egy hőmérsékletmérő modullal, így pontosabbá válik a távolságmérés. Ezen modul alkalmazásával lehetőség lesz korrigálni a hőmérsékletből adódó hang terjedési sebesség megváltozását. Vizuális képfelismerés: A roboton egy kamera és egy a jelenleg felhasznált mikrokontrollernél jóval nagyobb számítási teljesítménnyel bíró processzor elhelyezése, amin akár egy operációs rendszer is futtathatóvá válik. Ez a modul soros, vagy SPI buszon keresztül kapcsolatban lenne a már elkészült áramkörökkel és felváltaná, vagy kiegészítené az ultrahangos távolságmérőt. Fuzzy döntőgép alkalmazása: a döntéshozatali rendszer továbbfejlesztése. Egy fejlettebb többállapotú döntési rendszer kialakítása. Fuzzy logika a többértékű logikai szemantikák egyike. Tulajdonképpen fuzzy logika név alatt egy egész elméletcsaládról beszélhetünk, melynek sokrétű alkalmazásai vannak elsősorban az informatikában, de alkalmazásra talált a nyelvtudományi és logikai szemantikában, a matematikai logikában és a valószínűségelméletben is.
A tágabb értelemben vett fuzzy logika alapját képezi a fuzzy számítógépes rendszereknek, melyek szemben a szokványos rendszerekkel, nem csak igen és nem (illetve ki és be, vagy 1 és 0) értékekkel dolgoznak, hanem közbülső „valóságértékekkel” is, mint például 0,5 (féligmeddig), 0,2 (kicsit), 0,8 (eléggé)... Ezáltal az „életlen” (fuzzy) meghatározások (mint például az előbbiek) matematikailag kezelhetővé válnak. Manapság a fuzzy logika illetve a fuzzy-control, tehát a fuzzy logikán alapuló irányítás, elsősorban gépek és robotok, háztartási készülékek irányításában talál alkalmazásra. Budapest, 2007.
40.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
9. Felhasznált irodalom http://www.malug.hu/tiwaka/tiki-index.php?page_ref_id=263 NYÁK készítés: http://www.hobbycnc.hu/Magyar.html?Cache-Control=no-cache PIC18F452 adatlap: http://ww1.microchip.com/downloads/en/DeviceDoc/39564c.pdf További adatlapok, forrásuk: http://www.alldatasheet.com/ -
STP16NE06FP
N csatornás MOSFET
-
IRF9Z34N
P csatornás MOSFET
-
TL082P
Műveleti erősítő
-
LM293JG
Feszültség stabilizátor
-
MAX232N
Soros illesztő
-
SN74HC00N
NAND kapu
-
SN7416N, SN7406N
INVERTER (opencollector)
-
HCC40106BF
INVERTER (schmid trigger)
Budapest, 2007.
41.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
10. Mellékletek 1. számú melléklet: A főpanel (mainbord) kapcsolási rajza.
Budapest, 2007.
42.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
2. számú melléklet: A motorvezérlő kapcsolási rajza.
Budapest, 2007.
43.oldal
TEREPFELMÉRŐ LÁNCTALPAS ROBOT
3. számú melléklet: A főpanel PCB-je.
4. számú melléklet: A motorvezérlő PCB-je.
Budapest, 2007.
44.oldal