Fórum témák
» Több friss téma |
Cikkek » 5.000 Ft-os Launchpad Robot 5.000 Ft-os Launchpad Robot
Szerző: Fizikus, idő: Jún 3, 2013, Olvasva: 21518, Oldal olvasási idő: kb. 6 perc
Legelőször a megoldandó feladatot kell pontosan definiálni. El kell dönteni hogy mit is tudjon a robot. Jelen esetben a feladat egyszerűnek hangzik: a robot kövesse a padlón lévő vonalat (világos padlón fekete szigetelőszalag csík). Amint látni fogjuk, a megvalósítás már nem is lesz olyan egyszerű, a végeredmény viszont egy teljesen autonóm robot lesz.
A robot fő feladata, miszerint kövesse a vonalat, több részfeladatra bontható: 1. Vonalérzékelés (szenzorok) Ahhoz, hogy egyáltalán követni tudja a robot a vonalat, először is érzékelnie kell azt. Szükségünk lesz egy olyan szenzorra, ami érzékeli a vonalat, és olyan válaszjelet ad, amit a robotot vezérlő elektronika értelmezni tud. 2. Adatfeldolgozás és vezérlés A robotnak kell egy “agy”, amely beolvassa, feldolgozza és értelmezi az érzékelők adatait. Ezek alapján döntéseket hoz, majd ezektől függően a megfelelő kormányparancsok kiadásával vezérli a robotot, hogy az a vonalat követni tudja. A végrehajtandó parancsokat olyan vezérlőjelekké kell alakítania, amit a kormányszervók értelmezni tudnak. A robot vezérlésére a mikrovezérlők (mikrokontrollerek) lesznek a legalkalmasabbak. 3. Haladás (meghajtás) A vonal követéséhez a robotnak nemcsak haladnia kell, hanem a haladási irányát is meg kell tudnia változtatni (kanyarodás). Ehhez valamilyen meghajtási és kormányzási módra lesz szükség. A fentiekben említett részfeladatokat nem kezelhetjük különálló részekként, mert kölcsönösen hatással vannak egymásra. Például az érzékelők által szolgáltatott jel meghatározza, hogy a robotot vezérlő mikrokontrollernek milyen jeleket kell tudnia feldolgozni. Hasonló módon a meghajtás kiválasztása meghatározza hogy a robotvezérlőnek milyen jellegű kormányparancsokat kell kiadnia. A robot mérete és súlya pedig az alváz és a meghajtás méretezésére van hatással.
Most részletesebben is megvizsgálom az egyes részfeladatokat és leírom, hogy a robotnál milyen megoldások használata mellett döntöttem. Mivel ez a cikk főleg a robotikával most ismerkedőknek szól, ezért a lehető legegyszerűbb megoldásokat fogom választani.
Szenzorok Először azt kellene eldönteni, hogy milyen érzékelővel detektáljuk a vonalat. A vonal érzékelése többféleképpen tehető meg. Az alábbiakban felsorolok néhány példát: A vonal érzékelésére használhatunk pl. egy kamerát. Ekkor a kamera által készített képek feldolgozásával és elemzésével határozhatjuk meg a vonal helyét. Ez a módszer elég bonyolult, ezért inkább egy egyszerűbb megoldást alkalmazok. A vonalkövető robotok általában a padlóról visszaverődő fény mérésével érzékelik a vonalat, a fekete vonal ugyanis kevesebb fényt ver vissza, a világos (fehér) padló pedig többet. A megvilágításhoz használt fény hullámhosszától, és a detektor típusától függően többféle megoldás is létezhet:
A látható fény tartományában működő érzékelők teljesítményét a környezeti fényviszonyok nagyban befolyásolják. Az infravörös tartományban működő érzékelők erre kevésbé érzékenyek. Az érzékelési mód kiválasztása után már "csak" azt kell eldönteni, hogy hány darab érzékelőt (1, 2, 3, 4, 5, 6, stb.) és milyen elrendezésben akarunk használni. A neten sokfele változatra találhatunk példát. A robotnál fehér fényű LED-eket és fotoellenállásokat (LDR) fogok használni a vonal érzékelésére, mert ezek olcsón és könnyen beszerezhetőek.
Fotoellenállás (LDR) A robot a vonal érzékelésére fehér LED + fotoellenállás (LDR) párosból álló fényérzékelő szenzorokat használ. A fotoellenállás lényegében egy kadmium szulfid (CdS) ellenálláscsík, aminek az ellenállása a rá eső fény intenzitásától függően változik. Nagy fényerősség esetén az ellenállása alacsony, sötétben pedig nagy. Amikor a fotoellenállás a fekete vonal felett van, a kevés visszavert fény miatt az LDR ellenállása nagy, amikor pedig a fehér padló felett van, akkor a több visszavert fény miatt az LDR ellenállása alacsony. Ezt az ellenállás-változást kell olyan érték-változásává alakítani, amit a mikrovezérlő mérni tud. Ezt egy ún. feszültségosztó kapcsolással tehetjük meg. Így a szenzor az LDR-re érkező fény erősségétől függő feszültséget ad válaszul, amit a robotvezérlő az ADC-vel már mérni tud. A talajt megvilágító állandó nagyságú fényerősségről egy fehér fényű LED gondoskodik.
Meghajtás: A vonalkövetéséhez a robotnak haladnia kell tudni, ehhez valamilyen motorra lesz szükség. Itt is többféle lehetőség kínálkozik. Használhatunk pl. áttételes DC motort, léptetőmotort vagy szervómotort. Mindegyik motor más-más feladatra a legideálisabb. Mivel ezek a motorok különböző módon működnek és teljesen különböző jelekkel vezérelhetőek, ezért a motorok kiválasztása eleve meghatározza a motorvezérlési módot is. A motorok eltérő feszültség- és áramszükséglete pedig az áramforrásra vonatkozó követelményeket határozza meg. A motorok kiválasztását az is befolyásolhatja, hogy milyen meghajtási módot választunk. Ez a robot által elvégzendő feladattól is függhet. Például milyen terepen kell majd a robotnak mozognia (szárazföld, víz, esetleg mindkettő?), lánctalpat használjon-e a robot vagy kerekeket. A kerekek elrendezése is sokféle lehet (3, 4, esetleg 6 kerék). Ezek közvetve a kormányzás módját is meghatározhatják. Például a lánctalpas meghajtásból eleve következik a differenciális hajtás. Ha nem használunk bolygókereket és omniwheel-t, akkor 3 kerék használata esetén legalább az egyik kereket kormányozni kell majd. A DC motorokkal összehasonlítva a léptetőmotorok és a szervómotorok vezérlése bonyolultabb, ezért a vonalkövető robot meghajtásához két darab áttételes DC motort fogok használni. A kerekek kormányzását elkerülendő, a robot egy differenciális meghajtást használó, 3 kerekű konstrukció lesz (két, egymástól függetlenül meghajtott kerék, és egy bolygókerék). A motorok tápellátásáról 4db ceruzaelem fog gondoskodni. Most nézzük meg hogyan lehet a differenciális meghajtással egy robotot mozgatni és kormányozni.
Differenciális meghajtás A diferenciális meghajtású robot úgy működik, mint egy lánctalpas jármű: a különböző oldalon lévő kerekek egymástól függetlenül vannak meghajtva. Ezek biztosítják a meghajtást és a kormányzást is, ezért nem szükséges az első kerekek elfordítása, mint pl. egy hagyományos autó, vagy kerékpár esetén. A két oldalon lévő kereket azonos sebességgel hajtva, a robot az adott irányba egyenesen halad (A). A robot kormányzásához elegendő a jobb- és baloldali kereket különböző sebességgel meghajtani. Például ha a jobb oldali kerék gyorsabban forog, mint a bal oldali kerék, akkor a robot balra fordul (B). A fordulás ívenék nagysága a kerekek forgási sebességének a különbségétől függ. Ha az egyik motor áll, akkor az álló kerék körül elfordulva kanyarodik a robot (C). Az alábbi ábráról látható hogy akár a helyben fordulás is megvalósítható, ha a motorok forgásiránya ellentétes (D).
A differenciális meghajtás esetén a robot mozgatása és kormányzása a két DC motor forgásirányának és sebességének a változtatásával történik. Ez impulzusszélesség modulált (PWM) jelek és motorvezérlő H-híd IC segítségével könnyen megvalósítható (erről bővebben a Will-I robotomról szóló cikkben már írtam: LINK).
Adatfeldolgozás és vezérlés A robot vezérlését egy MSP430 Launchpad mikrovezérlővel fogom megoldani. A Texas Instruments MSP430 Launchpad fejlesztői kártya rendkívül kedvező árával (fél éve még 4,30 $-ért vettem (kb. 900 Ft), ingyenes házhoz szállítással, de sajnos azóta felemelték a panel árát 10 $-ra) ideális eszköz a mikrovezérlővel ismerkedni kívánó diákok vagy hobbisták számára, hiszen a panel mindent tartalmaz, ami a kezdéshez szükséges. A robot építéséhez a Launchpad kártya legújabb, 1.5-ös verzióját, és az ezzel járó MSP430G2553-as mikrovezérlőt használtam. (a nagyobb méretért kattints a képre)
A panel felépítéséről és működéséről részletesebben lásd az alábbi cikket: Launchpad: ismerkedés az MSP430 mikrovezérlőkkel I. Launchpad kártya új verziójáról és az MSP430G2553-as mikrovezérlőről részletesebben lásd az alábbi cikket: Launchpad: ismerkedés az MSP430 mikrovezérlőkkel III.
A mikrovezérlő kis áramigényű, meghajtásához 3,3 V-os tápfeszültség kell, amit egy LD1117V33 stabkocka biztosít majd. A motorok áramigénye viszont nagy, és a motorvezérlő IC-nek legalább 5 V-os feszültség szükséges. A szénkefés DC motorok ráadásul erős zajt is generálhatnak, ezért célszerű feladatonként szétválasztani a tápellátást és két áramforrást használni: egyet külön a DC motoroknak és a motorvezérlő elektronikának, egyet pedig külön az érzékelőknek és a Launchpad panelnek.
Összefoglalás A korábban említett tervezési szempontok figyelembe vételével véglegesíthetjük a vonalkövető robotunk felépítését:
A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |