Minn Kota hajómotor vezérlő

Ezen kis fejlesztési projekt keretében két darab Minn Kota gyártmányú elektromos motor vezérlését oldottam meg a gyárinál jóval egyszerűbb és ergonomikusabb módon. A motorok egy evezőshajó kiegészítő meghajtásaként funkcionálnak, illetve az egyszerű meghajtáson túl manőverezési feladatokat is el kell látniuk, ami leginkább a kikötőben hasznos.

A gyártó a motorokat olyan vezérlési megoldással látta el, mely terepi viszonyok között aligha lett volna használható különösen, hogy egy kanyarodás kivitelezésére összehangolt működtetésre van szükség. Ez aligha kivitelezhető a gyakorlatban úgy, hogy a motorra szerelt szabályozóegységet manuálisan kell működtetni, illetve a motorok úgy helyezkednek el a hajótesten, hogy egyszerre lehetetlen mindkettőt egy időben kézzel elérni és szabályozni.

Az alap gondolat az volt, hogy valamilyen vezeték nélküli távirányítós megoldás lenne a legjobb, hiszen a két motor vezérlését egy távirányítóban egyesítve már meg lehet valósítani úgy, hogy a működtetésük kényelmes legyen, valamint további automata funkciókkal egyes manőverezési feladatokat félig, vagy teljesen automatizáltan is ki lehet vitelezni akár egyetlen gomb megnyomásával.

Természetesen fontos az is, hogy a rendszer az egyéb funkciókon túl biztonságosan működjön, így megfelelően fejlett rádiós összeköttetést volt célszerű kiépíteni, mely funkcionalitásban és biztonságban többet kínál, mint egy egyszerű jeladó. Természetesen, mint már szinte minden fejlesztésnél, ennél a projektnél is fontos volt az, hogy a vezérlés aránylag hamar elkészüljön. Az időben limitált munka minden esetben korlátozza a lehetőségeket olyan téren, hogy a fejlesztő ilyen helyzetben elsősorban arra fókuszál, hogy mi az a megoldás, amit már ismer és van benne tapasztalata. Rádiós kommunikáció tekintetében így igyekeztem olyan megoldást választani, amit már korábban, egy másik fejlesztésnél sikerrel alkalmaztam.

Néhány szó a funkciókról

Szó volt meghajtásól, manőverezési lehetőségekről, de nézzük ezeket részletesen. Alapfunkció, hogy a motorokat gombnyomásra el lehessen indítani és meg lehessen állítani.

  • Fontos, hogy a motorok sebessége szabályozható legyen.
  • Tudni kell menetirány szerint előre, illetve visszafelé is mozgatni a hajót.
  • A sebességet és a motorok forgási irányát szükséges kijelezni a távirányítón.
  • Tudni kell azonnali leállítást végrehajtani.
  • Azonnali ellentétes irányú mozgatás gombnyomásra.
  • Kanyarodáshoz fontos, hogy a motorok külön-külön is vezérelhetőek legyenek.

A főbb funkciók melletti egyéb, járulékos funkciók:

  • A rádiós kapcsolat minőségének kijelzése.
  • Távirányító töltöttségi szintjének kijelzése.
  • Motorok tápellátásának mutatása.
  • Becsült hatótávolság kiszámítása és megjelenítése a távirányítón km egységben.

Tervezés és felépítés

A rendszer legfontosabb része a rádiós kommunikáció. Itt már egy bevált megoldást alkalmaztam, így a korábban gyártott Si4432 modulokhoz nyúltam. Ehhez viszont csak Arduino rendszerre írt függvényekkel rendelkeztem, melyet már korábban is nagy mértékben átalakítottam azért, hogy stabilabban működjön és összetettebb funkciókra is képes legyen a készen letöltött függvényekhez képest. Tény, hogy előre megírt rutinokkal lehet fejlesztési időt spórolni, de sok idő elmegy az ilyen kódok megismerésével, tökéletesítésével, hiszen funkcionalitásban és biztonságos kommunikáció tekintetében nagyrészt már alkalmatlanok bizonyos feladatokra. Ameddig egy LED-et kell villogtatni, esetleg egy hőmérséklet értéket továbbítani, addig teszik a dolgukat, de mikor nagy sebességgel kell adatcsomagokat küldeni, illetve speciális nyugtázási üzeneteket létrehozni, már elengedhetetlen az eredeti kódkönyvtár függvényeinek átírása.
Igazából maga az Atmega328P teljesen alkalmas a feladatra, hiszen megfelelő sebességű adatfeldolgozásra képes, kellő pin áll rendelkezésre az áramköri kapcsolatok kialakításához, tartalmazza a szükséges perifériaegységeket is. (PWM, A/D modul, időzítők)

A motorok hajtásvezérlő elektronikái teljesen ismeretlenek voltak a számomra, hiszen a gyártó ezt vastag epoxival precízen kiöntötte. Gyakorlatilag a 12V-os bemenet, a motor kivezetései, illetve a sebesség és az irány szabályozásához szükséges potméter 3 vezetéke lógott csak ki egy szétbonthatatlan elektronikai modulból. Ehhez kellett illeszkednem egy olyan elektronikával, ami imitálja a manuális potmétert a bemeneten és arról a 12V-os feszültségről működik, ami a hajtásvezérlőhöz rendelkezésre áll.

A potméter imitálása egyszerűen megoldható digitális potméter felhasználásával, melyet I2C buszon már közvetlenül mikrokontrollerről lehet vezérelni. Az alkatrész kiválasztásának szempontja elsősorban a megfelelő felbontás, másodsorban az ellenállásérték, harmadrészt pedig a 3,3V-os tápfeszültségről való működés volt. Így választottam az AD5161 típust, mely 256 lépésben szabályozható. A tartomány középen felezve van, hiszen a potméter középállásában a motor áll. Nulla felé csökkentve az értéket a motor hátramenetben forog és a sebessége a 0 felé növekszik, középállásból felfelé pedig előrement van és a skála végén éri el a maximális sebességet.
A középállás egy ideális érték, valójában itt egy szűk ablakot kellett kialakítani, hogy a 128-as értéktől nagyjából 10-10 lépéskülönbséggel indul el a motor előre és hátra is. A start értékeket így gyakorlati úton kalibráltam. A skála két vége szintén egyedileg lett beállítva, hiszen nagyjából 90% és 95% kivezérlés után a motor sebessége már nem változott.

A vevőoldalon további két fontos paramétert is le kellett programozni. Egyik a potméter értékének időben történő felfutása, lefutása, hiszen problémát okozott volna, ha a hajtás bemenetén lévő vezérlőfeszültség hirtelen vált egy nagyobb értékre. Másrészt minimális késleltetésre volt szükség arra a szituációra, mikor a motor ellentétes irányú forgásra kapcsol, de még az előző irány szerinti lendületben forog. A hajtásvezérlő persze ezt intelligens módon képes lekezelni, de minimális késleltetésekkel mégis célszerűbb ezt így kivitelezni. Az irányváltás folyamatát ez a funkció nem lassítja.

Motorvezérlés oldalon tehát annyi a fontos, hogy a rádión keresztül érkező adatcsomag tartalmazza a wiper (potméter mozgó érintkezőjének megfelelő kimenet) értékét és ezzel a motorhajtás irányítható legyen. A rendszer képességeinek 95%-a a távirányítóban került megvalósításra, hiszen ez a központi vezérlőegység, mely a hajtásvezérlő vevőkhöz már csak kész beállító adatot küldi, tőlük vissza pedig a hajtásnál mért mennyiségeket kapja.

Motorvezérlő modul

Motorvezérlő modulok

A vevők egyetlen modulon kerültek kialakításra olyan pici méretben, hogy külön egység rászerelése nélkül egyszerűen beépíthetőek a hajtásvezérlő mellé és megfelelően szigetelve, kényelmesen elférnek a burkolat alatt.

A távirányító már nehezebb ügy, hiszen ott semmi kiindulási lehetőség nincs, új elektronika és egy erre a célra tervezett és gyártott burkolat volt szükséges ahhoz, hogy ez az eszköz elkészülhessen.
A készülékház POM anyagból készült, melyet CNC üzemben gyártottak le megfelelő tervek alapján. A mechanikai tervezést és gyártatást a megrendelőm átvállalta, így munkamegosztásban dolgoztunk a távirányító létrehozásán és így egy olyan eszköz készülhetett, ami az ő elképzeléseinek a leginkább megfelelt. Én terveztem az elektronikai egységeket és gyártattam a paneleket, ő pedig a mechanikai alkatrészek tervezésével és gyártásával foglalkozott. A beültetés az összes modul esetében saját kézzel történt. Sorozatgyártást valószínűleg már nem vállalnék belőle, mert nagy odafigyelést igényel az apró alkatrészek és a kis méretű VQFN tokozású integrált áramkörök forrasztása.

Készülékház

A távirányítóba szükséges volt egy kijelzőt is beépíteni, melyen meg kellett jeleníteni jó pár paramétert viszonylag pici területen. Elsősorban a kis méret volt az, ami behatárolta a lehetőségeket, ezért az OLED kijelzőkön túl sok választási lehetőség nem is akadt. Az OLED kijelzőnek sajnos nem kevés a fogyasztása, de ilyen pici méretben csak ez volt gyorsan elérhető, illetve sikerült a típushoz megfelelő gyártó által készített kódkönyvtárat is találni, ami a fejlesztési idő szempontjából fontos volt.

OLED kijelző

Vezérlőpanel

A tápellátást 2db AA méretű ceruzaelem biztosította, ami az első tesztek alkalmával sajnos máris kevésnek bizonyult. A tartós és drágább elemekkel egész jó készenléti időt sikerült elérni, ami persze a szoftveres optimalizálásnak is köszönhető, de olcsóbb, gyengébb minőségű ceruzaelemekkel nem sokáig húzta az áramkör.

Az elemek csatlakoztatásához egy különálló panelt kellett készíteni. Erre került rászerelésre a szükséges két érintkező az elemek számára, valamint egy porogramfeltöltő felület, melyhez külön erre a célra kialakított rúgós tűérintkezőkkel felszerelt adapterkártya is készült és ezzel volt lehetőség a mikrokontroller szoftverének frissítésére, mikor a távvezérlő teljesen össze volt szerelve.

Elemek

Elem érintkező

Az előlap és a gombok kialakítása során az egyszerű szerelhetőség és a jó szigetelőképesség volt az elsődleges szempont, hiszen a távirányító egy hajón lesz használatban, ahol azért nem ritka a vizes környezet közelsége, szóval nem árt, ha vízálló az eszköz, ellenben hamar tönkremehet.
Az alkalmazott fóliatasztatúrás megoldás ugyan drága volt, de biztosította a megfelelő vízzárósságot, illetve a beépítése is megoldható volt némi extra ragasztóanyag felhasználásával úgy, hogy egy csepp nedvességet se engedjen be az előlap alá.

A kezelőfelület a lehető legegyszerűbbre lett tervezve, ami kevésbé támogatta a sok funkció megvalósítását, de okos tervezéssel ezzel a kevés gombbal is sikerült minden szükséges dolgot leprogramozni úgy, hogy a használata nem lett túlságosan bonyolult, bár azért szokni kell a sok állapothoz kötött gombfunkciót.
Megfelelő vezérlési algoritmusokkal olyan összetett vezérlési feladatokat is sikerült megvalósítani, mint a hajó helyben történő megforgatása a vízen, valamint a gyors és azonnali irányváltások, melyek nagyban könnyítik a kikötést és a kikötőben történő óvatos mozgások kivitelezését.

Távirányító összeszerlés előtt

Működő kijelző

Továbbfejlesztések

Utólagosan kiderült, hogy az első kialakítás szerinti digitális potméter bekötés valamiért nem működőképes, mert az A és B kivezetéseken túl nagynak bizonyult a 10mA körüli áram, ami az alkatrész melegedéséhez vezetett. Az áramot előtét ellenállással ugyan sikerült csökkenteni, de így lecsökkent a hajtásvezérlő beállítási tartománya. A hajtásvezérlő bemenetére kapcsolt potméter A – B pontja között 5V volt mérhető, viszont maga a potméter 3,3V-ról működött. Később nyilvánvalóvá vált, hogy a megfelelő feszültségszintek illesztéséből adódott ez a probléma, így a digitális potméter kimenetét vissza kellett venni 0V – 3,3V közötti tartományra és ezt a tartományt egy műveleti erősítős áramkörrel 0V – 5V tartományra kellett erősíteni. Ez a megoldás már a gyakorlatban is eredményesen működött, viszont elengedhetetlen volt ehhez, hogy rail-to-rail kimenettel rendelkező erősítőt használjak, ami képes a lehető legnagyobb tartományú kivezérlést megvalósítani a tápfeszültségéhez képest. Hiába a rail-to-rail paraméter az adatlapon, sok erősítő csak 90% körül képes ezt teljesíteni, ami ebben az esetben már nem elfogadható. A megfelelő típus kiválasztása első körben adatlapok segítségével történt, második körben pedig gyakorlati tesztek alapján. Az első verziós panelhez ez a kis kiegészítés egy utólag, házilag készített pici panelen lett kialakítva, amit a 2. verziós modul már magában foglalt.

A következő verzióra már rá lett építve a motor áramának figyeléséhez szükséges áramkör is, valamint egy hőmérő is helyet kapott a pici panelen. A második verzió elkészítése előtt jött az az ötlet, hogy valamilyen algoritmussal ha még nem is pontosan, de nagyjából talán megbecsülhető lehet az az út, amit a hajó az aktuális sebesség és akkutöltöttség mellett még képes megtenni, mielőtt az akkumulátorai teljesen lemerülnének.

Ezen megfontolásból került beépítésre a motor áramának mérése. Az akkuszintek monitorozására már korábban használt megoldás az áramkörben maradt. A két paraméterből már számíthatóvá vált az aktuális teljesítmény. Az akkumulátorok tulajdonsága és kapacitása csak gyártói adatlapokról ismert, így ezen paraméterek alkotják a képlet legbizonytalanabb részét, hiszen idővel az akkumulátorok kapacitása csökken, így az ideálisnak vett kapacitásérték már nem lesz érvényes, ebből adódóan a becsült és mért érték között már egész nagy eltérés is lehet.

Létrehoztam a két motor fogyasztásából és az összes rendelkezésre álló paraméterből egy olyan képletet, mely valamiféle kilométer információt ad arról, hogy a hajó még mennyit képes menni adott sebességgel. Az algoritmus által számolt érték valódiságát gyakorlati tesztekkel lehetne csak igazolni, ám az ősz és lassan már a tél beállta előtt erre nem maradt elegendő idő.

A hőmérő csupán biztonsági célt szolgál, információt ad arról, hogy az elektronikai rendszer milyen hőmérsékleti viszonyok mellett működik. Túlmelegedés okozta hibára tud figyelmeztetni. A hőmérsékletértékek a távirányítón kerülnek megjelenítésre.

Új motorhajtás kontroller

Beszerelés előtt már bekötve

Motor

Teszt közben

A távirányítóból nem készült újabb verzió, viszont célszerűnek tűnt átalakítani az elemes tápellátását akkumulátorosra, mely jóval nagyobb kapacitású, így sokkal tovább képes biztosítani a készenléti időt. Az AA méretű ceruzaelemek sajnos viszonylag hamar lemerültek, illetve a rúgós érintkező nem megfelelő befeszülése miatt határozottabb ütésre érintkezési hiba miatt a távirányító mikrovezérlőjében lévő szoftver hirtelen újraindult, ami veszélyes hibaforrás volt. Az akkumulátorok mellé még beépítésre került egy egyszerű töltésvezérlő modul, valamint egy USB-UART konverter modul is, és a készülék alján látható microUSB csatlakozón keresztül így egyszerre adódott lehetőség az akku feltöltésére és a szoftver monitorozására is, ami a fejlesztés során hasznos funkció és az első verziónál ezt külső átalakító elektronika oldotta meg. A burkolat némi módosítással szerencsére alkalmas volt az új egységek beépítésére, így elkerülhető volt egy ismételt CNC-s munka, amivel jelentős költségeket sikerült megspórolni.

A rendszer még így is fejlesztői változat, de már olyan kialakítású, hogy azt a gyakorlatban is eredményesen lehet használni. Amennyiben a tesztek meghozzák a várt eredményt, akkor talán elkészülhet egy véglegesített verzió.

Akku módosítás

OLED kijelző

OLED kijelző