A következő címkéjű bejegyzések mutatása: elektronika. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: elektronika. Összes bejegyzés megjelenítése

2009. március 13., péntek

Szervo végtelenítése

A rover meghajtásához kerekenként egy-egy szervo motort használtunk. Tettük ezt azért, mert megkönnyítette a dolgunkat: adott egy jól összetervezett kompakt villanymotor-kihajtás rendszer. Bár pont a nagy leosztás miatt nem tudunk nagy fordulatszámot (és ezzel nagy sebességet) elérni a kerekeken (a maximális fordulatszám általában 100 rpm körüli érték), de a motor méretéhez képest nagy nyomatékot kapunk cserébe. A szervo motorok eredetileg nincsenek is felkészítve folyamatos forgásra, hanem általában mintegy 270° szögtartományban mozognak, lehetővé téve például kormányművek mozgatását R/C modelleken.

Az átalakításhoz ismernünk kell a szervo motorok lelkivilágát: a külvilág felé egy háromlábú csatlakozójuk van, amelynek lábkiosztása: GND, Vcc, pulse. Az első kettő adja a belső elektronikának szükséges 4.8V tápfeszültséget, míg az utolsó határozza meg a megkívánt pozíciót: általában 1.5ms szélességű impulzusok szükségesek a középálláshoz, és nagyjából 0.5ms eltérés határozza meg a két végállást. Ez utóbbiak mechanikailag is fixek, az utolsó tengelyen egy bütyök beleütközik a szervo házán kialakított ellenpárjába. A meghajtó elektronika számára a pozíció visszacsatolását egy potméter adja. Világos tehát, hogy az átalakításhoz egyrészt meg kell szabadulnunk a mechanikai limitálástól, másrészt a pozíció visszacsatolását kell megszüntetnünk. A továbbiakban az általunk használt ECO-6 miniatűr 6 grammos szervohoz nyújtunk tippeket, de szerintem minden ilyen motort hasonlóan kell átszerelni. Azt persze érdemes előre ellenőrizni, hogy fröccsöntött házban van-e a szervo!
  1. Bontsuk le a szervo házának hátát! Ehhez két eléggé hosszú csavartól kell megszabadulni.
  2. Az elektronika kihajtható és előtűnik a potméter, aminek vezetékeit leforrasztjuk a fő panelról.
  3. Forrasszunk be két egyforma ellenállást a potméter csatlakozási pontjaira! Innentől kezdve a visszacsatolás számára a szervo folyamatosan középállásban van. Érdemes nagyjából tartani az eredeti potméter ellenállását, de a pontos érték nem kritikus.
  4. A szervo házának elülső része kipattintható. Itt férünk hozzá a fogaskerék áttéthez.
  5. A kimenő tengely körül felfedezhetjük a körbefordulás határolására szolgáló bütyköt. Ezt tűreszelővel tudjuk eltávolítani.
  6. A fogaskerekek leszedése után távolítsuk el a potmétert, amit még egy csavar tart az elektronika oldala felől.
  7. Csipesszel hajtsuk vissza a potméter csúszóérintkezőit. Ezzel egyrészt csökkentjük a súrlódást, másrészt megszabadulunk egy kellemetlen periodikus zajforrástól, amit a csúszóérintkező felütközése ad a csatlakozókon.
  8. Szereljük vissza a potmétert, rakjuk vissza a fogaskereket és a ház elemeit. Érdemes az elektronikát még egy darab szigetelőszalaggal elszigetelni a potmétertől.
Ezzel a szervot képessé tettük folyamatos körbeforgásra, és az eredeti vezérlésével kompatibilis maradt: 1.5ms hosszú impulzusokkal tudjuk helyben tartani, ennél kisebb, vagy nagyobb impulzusszélesség hatására a szervo forogni kezd, mivel megszabadítottuk a visszacsatolástól. Ez a megoldás azonban nem volt tökéletes: a legnagyobb probléma az volt, hogy nagyon nehéz eltalálni a középálláshoz tartozó impulzusszélességet, ráadásul az példányról példányra változik. Emellett ez a beállítás nem stabil: a nullára beállított motor néhány perc alatt lassan megindul valamelyik irányba. Nem tetszett az sem, hogy a fordulatszám szabályozhatósága egy eléggé szűk impulzushossz tartományra esik. Erről egy gyors mérés eredménye látható itt a jobb oldalon. A megoldást az jelentette, hogy megszabadultunk a gyári elektronikától és saját H-hidas meghajtást építettünk be. Ezzel legalább megállt a szervo, ha akartuk :) A kis méret és teljesítményigény miatt a Microchip TC4427A FET-meghajtóját használtam H-hídként. Ez az SO-8 tokban kapható IC egy tokja pont egy H-hidat tartalmaz, így megfelel céljainknak. Az átalakítás ára a maximális nyomaték kisfokú csökkenése volt, amire megoldás az áramkör valamelyik nagyobb áramú testvérének alkalmazása (de hát az nem volt a Chipcadnél tegnapra...). Mindenesetre ezzel stabilan működött a meghajtás a továbbiakban.
Attila

2008. szeptember 3., szerda

Fejlesztések a bemutatóra

A második Magyarok a Marson versenyen már egy kiforrott járművel indultunk, de volt néhány hiányosság és zavaró pont, amit a bemutatóig ki kellett küszöbölnünk.

A versenyen jól bevált a TinyOS alapokon működő PI-szabályzó, ezért ezt megtartottuk, sőt közvetlenül vezérelte a motormeghajtó H-hidakat.

Továbbfejlesztésre szorult az optokapus visszacsatolás a motorok tényleges fordulatszámáról. A versenyen futott megoldás szerint az első fogaskerék fogai takarták ki egy optokapu LED fényét. Mivel a fogak eléggé kicsik voltak, ezért kritikus volt az optokapu helyzete, és a billenési küszöbértéket is rendszeresen után kellett állítani. A következő verziót felszereltem
motoronként egy-egy kiegészítő kerékkel, amit fóliára nyomtattam ki, és fordulatonként négy szintváltozást adott. Ezt figyelte az optokapu, és a kitakarás-rálátás között elég kontraszt volt ahhoz, hogy minden beállítás nélkül működjön. Ez az áramkör egy egyszerű kis nyáklemezre ráfért, ami az optokaput is tartotta.

A bemutatón visszatértünk a LED mintázaton alapuló hely- és helyzetfelismeréshez. Erre szükség volt egyrészt azért, mert a zöld színű félkörrel nem tudtunk volna két járművet megkülönböztetni, másrészt a LED mintázaton alapuló algoritmus megbízhatóbbnak bizonyult. Így végül lett egy zöld és egy piros járművünk. Érdekes volt megfigyelni egyébként, hogy nagyon nehéz a fényes ledek színét megállapítani a kamera képén: általában egy fényes fehér foltot láttunk, aminek a szélén egy keskeny karima árulta csak el a led színét. Ennek kiküszöbölése sajnos nem egyszerű, ugyanis a CCD érzékelő pixeleinek túlcsordulása okozza ezt a blooming néven ismert effektust.

Attila

2007. május 12., szombat

Második verseny - A jármű

Az első versenyen számos tapasztalatot szereztünk, amelyeket igyekeztünk kamatoztatni a második jármű összeszerelésekor. Alapként ugyanazt az 1:16-os tigris tankot használtuk, a robot azonban mind külsőleg, mind belsőleg megváltozott. Első pillantásra is kiforrottabb lett a konstrukció, a belső tartalomra pedig rá sem lehetett ismerni... Mivel a feladat energiakockák levilágítása volt, ezért kapóra jött a tank forgatható lövegtornya. Ez magával hozta, hogy a tank felső részét is felhasználtuk, így egy kompaktabb kialakítást követve. A lövegen kapott helyet a levilágításhoz használt 3 nagyfényerejű fehér Cree gyártmányú LED. Emellett a fenti kamera képén való tájékozódáshoz felszereltünk egy zöld 5 mm-es LED-et is a löveg végére. A torony forgatását és a LED-ek kapcsolását az első versenyen debütált hűtőbordás PWM modul végezte.


Okulva az előző verseny kudarcából, a lánctalpat teljes fém anyagúra cseréltük. Ez a kit kapható a modellboltokban, bár nem mindenhol tudnak róla, ahol maga a tank is kapható. Érdemes még tudni, hogy önmagában nagyjából annyiba kerül, mint az alapkiépítésű modell... Kétségtelen viszont, hogy ezzel a továbbiakban nem volt probléma, bár a "jobb tapadás érdekében" kicsit nedvesített homok azért okozott meglepetéseket: a lánctalpról érdemes volt rendszeresen letakarítani a rátapadt homokot.

A helymeghatározó rendszer alapjául szolgáló LED mintázatot egy zölden világító félkörre cseréltük. Ez jármű hátulsó harmadán, a lövegtorony mozgása által kijelölt határ mögött foglalt helyet. Alapjául a PC-tuningolók egyik kedvence, a világító kábel szolgált. Ez egy érdekes eszköz, mintegy 100 V, 1 kHz-es váltóáram kell neki, és lényegében tökéletes kapacitásként viselkedik. A kábel a meghajtás hatására fényt bocsát ki, aminek a színét kismértékben hangolni lehet a tápfeszültség frekvenciájával: nekem sárgászöld és kékeszöld között szépen sikerült variálni. A drót mellé kapunk egy invertert is, ami alapesetben a PC 12 V-os tápját használja. Nekünk a járművön a 7.2 V-os akkufeszültség állt rendelkezésre. Erről hajtva az eszközt működött ugyan, de nagyon halovány lett a fénye. Az egyszerű megoldást egy step-up konverter jelentette, amit a Texas Instruments uc2577-adj áramköre köré építettem fel. Ha már step-up, legyen kövér: azt tapasztaltuk, hogy akár 24 V-ig is növelhetjük az inverter tápfeszültségét, ezzel még tovább növelhetjük a fényerőt. A rendszer a gyakorlatban szépen vizsgázott.


A mitmót rádiós modulja helyett egy saját készítésű panelt használtunk. Ez az IA4421 rádiós IC adatlapján ajánlott felépítést követte. A gyár egyik application note-ja alapján a panelen foglalt helyet az antenna is, ami végül meghatározta a panel fizikai méreteit. Mivel a nyomtatott áramkörön felépített antennák kényesek a vezetősáv vastagságára, ezért a rádiós szempontból aktív felületet nem ónoztuk be. A rádiós kommunikációt beltéren teszteltük, néhányszor 10 m távolságon kifogástalanul működött.

Hogy teljesen búcsút mondhassunk a mitmótnak, a tank saját gyártású CPU panelt kapott. Itt nem takarékoskodtunk a kivezetésekkel: az Atmel ATMEGA128 MCU összes modulja kapott egy vagy több csatlakozót. Egy rövid felsorolás a teljesség igénye nélkül: 3 darab SPI port, 2 darab I2C port, 8 ADC, 2 darab PWM port motorok meghajtásához. Amikor a fejlesztéseket kezdtük, ez az MCU volt az Atmel AVR család legerősebb tagja a maga 128kB programmemóriájával. Ez azóta már nem igaz, de a legtöbb célra így is elegendő erőforrást nyújt. Az eszközt JTAG és SPI porton tudjuk programozni. A fotó versenykészre huzalozva mutatja a panelt. Ez a panel bővíthetősége miatt annyira bevált, hogy a bázisállomást, sőt a későbbi konstrukciókat is ezzel szereltük fel.

A motormeghajtás az előző versenyen probléma nélkül működött, de mindig van lehetőség fejlesztésre: ennek a felismerésnek az eredménye az intelligens motorvezérlő panel. A modul I2C porton csatlakozott a központi egységhez, és két üzemmódja volt: vagy közvetlenül a PWM jel kitöltési tényezőjét adhattuk meg, vagy a megkívánt motorfordulatszámot, amit PI szabályozás segítségével igyekezett tartani. Ennek megfelelően egy saját ATMEGA168 MCU-t találhatunk rajta. A szabályozáshoz természetesen szükségünk volt a tényleges fordulatszámra. Némi tanakodás után a visszacsatoló jelet az első fogaskerékről szedtük le egy optokapu segítségével. Ez az elrendezés nagyon kényes volt az optokapu helyzetére és a környezeti megvilágításra, így végül a billenés küszöbértékét egy LM324 komparátoraival állítottuk be. Sajnos a megvalósított PI szabályzó bugos maradt, így ezt a feladatot tűzoltásként a központi egységre bíztuk, a modult PWM üzemmódban használva.

Végül, de nem utolsó sorban ne feledkezzünk el a biztonság egy apró, de fontos eleméről sem: közvetlenül az akkumulátor mellé beiktattunk egy üvegcsöves biztosítékot, hogy egy esetleges rövidzár esetén tudjuk, hogy honnan jöhet ki a füst a gépből...
Attila

2006. január 1., vasárnap

A kezdetek...

  Az egész valahogy úgy kezdődött (kb. 2006. januárban), hogy Tivadarral megláttunk egy plakátot: "Magyarok a marson - Első Magyar Alkalmazott Mérnöki Tudományok Versenye" Rögtön tudtuk, hogy ez nekünk való feladat. Azt is, hogy kiket kell még beszervezni: Attilát és Tamást.
 Amint visszaértünk a koliba, megnéztük a verseny honlapját: www.magyarokamarson.hu (az akkori állapot: http://www.magyarokamarson.hu/weblap2006/index.htm). A feladat nem volt más, mint hogy építsünk egy minél inkább autonóm robotot, ami marsi körülmények között végrehajt egy küldetést: egy 8x8 méteres homokos, siklákkal tarkított pályán megtalál egy fémlapot, ami a homok alá van rejtve néhány centivel, és mintát vesz a homokból. A versenyt Sipos Attila ötlötte ki, aki lelkesen támogatja, hogy a fiatalok kreatív, kompex elektromechanikus szerkezeteket építsenek, és mindenféle szembeszél ellenére megrendezte a versenyt Kiskunhalason, a II. Rákóczi Ferenc Szakközépiskola tornatermében.
  A csapat tagjait már középiskolás korom óta ismerem. Tamás osztálytársam volt a debreceni Fazekas Mihály Gimnáziumban, ahol 6 évig koptattuk az iskolapadot. Már régebben is foglalkoztam elektronikával, volt egy kis elektronikai építőkészletem, de addig még csak telepek, kapcsolók, motorok, izzók, LED-ek, csengők, relék és transzformátorok alkották az eszközkészletemet, amíg Tamás egyszer hozott egy olyan könyvet, amiben integrált áramkörös (IC-s) kapcsolások voltak. Az első IC, amit használtam, a jó öreg 555-ös volt, ami nagyon sokoldalú, mindenféle időzítési feladatra alkalmas. A LED-villogtató után jöttek az egyebek, TTL logikai IC-k, ... Furcsa sorrend, de később a tranzisztor működésével is megismerkedtem. Beszereztem néhány könyvet, Hobbi elektronika számokat és Rádiótechnika évkönyveket. Ezután beindultak a dolgok: Szaki (szintén jóbarát osztálytársam) édesapja ötleteket adott a NYÁK (nyomtatott áramkör) készítéshez, így egy igazi kis labort rendeztem be otthon: UV fényszöves levílágító, nyomtatható írásvetítő fólia, előhívó, maratószer. A technikát egyre jobban elsajátítottuk. Ezután jöttek a programozható áramkörök: elsőként a PIC16F84. Keresztapám bíztatására kezdtem el ezekkel foglalkozni, építettem hozzá programozót, készítettem érdekes készülékeket. Ezáltal megtanultam az assembly nyelvet is. Ez jó alap volt hozzá, mert mindössze 35 utasítása és egyetlen munkaregisztere van. Utolsó alkotásaim a középiskolában:
 - egy számláló, ami a hátralévő perceket mutatja a tanteremben az órából vagy a szünetből :-)
 - egy infravörös kommunikációs egység a TI-89-es számológépemhez, ami ezzel vezeték nélkülivé válhatott, és egy másik számológéppel vagy a számítógéppel tudott kommunikálni.
 - egy távirányítós autó távirányítójának átalakítása, hogy a számítógép párhuzamos portjára kötve lehessen irányítani. Az érdeklődés a téma iránt már akkor megvolt (2002 körül), a verseny ennek továbbfejlesztésére adott lehetőséget.
  Attilával és Tivadarral a fizika kapcsán ismerkedtem meg. Fizikaversenyeken, táborokban, KöMaL ankéton találkoztunk, és 2002-ben mindhárman részt vettünk a 33. Nemzetközi Fizika diákolimpián (IPhO 2002). Mindhárman a Budapesti Műszaki és Gazdaságtudományi Egyetemen (BME) folytattuk a tanulmányainkat 2002. szeptemberétől: Tivadarral a fizikát kissé cserben hagyva műszaki informatikus szakon, Tamással együtt; Attila pedig mérnök-fizikus szakon. Attilának is hobbija volt az elektronika, mint nekem, Tivadar viszont ez távol állt, ő inkább csak szoftveres.
  Összeállt tehát a "Marslakók" csapat, ugyanis ezt a nevet választottuk. A marsjárónk alapja egy kínai tankmodell lett, a rádiós kommunikációt és a vezérlést a BME MIT tanszékén kifejlesztett mitmót biztosította, a rover pozícióját a pálya fölé rögzített kamera képe alapján egy képfeldolgozó algoritmus segítségével határoztuk meg, egy Fuzzy szabályzó segítségével pedig a jármű tetszőleges kijelölt útvolnalat képes magától követni. A mintavételhez egy LEGO-ból épített szerkezetet használtunk, ami egy markolólapátot tud leengedni és felemelni.
  Elvileg így működött volna... Sajnos nem készültünk el teljesen a verseny időpontjáig, végigdolgoztuk az előző éjszakát is, és voltak váratlan akadályok, de a részletekről később...

Laci