Talven pimeinä ja kylminä päivinä voi vain odotella kesän aurinkoa ja vesille pääsyä. Joka kesällehän veneeseen pitää saada jotain uutta. Joko venttä kunnostetaan, ostetaan lisää laitteita ja varusteita tai päivitetään vanhoja. Talvi on loistavaa aikaa viettää internetin ihmeellisessä maailmassa tutustuen mitä muut ovat veneisiinsä rakennelleet, sekä tietenkin ideoida omaan veneeseen sopivia härveleitä. Itse olen viimeaikoina innostunut elektroniikasta ja erityisesti mekatronikaasta, josta syntyi idea rakentaa Baylineriin autopilotti vetouistelua varten. Autopilotti kytkettäisiin ohjaamaan sähköperämoottoria ja siten venettä haluttuun suuntaan. Markkinoilta löytyy valmiita autopilotteja ja uistelumoottoreita GPS ominaisuuksilla varustettuna, mutta näiden laitteiden hinnat ovat tuhansia euroja, eikä niihin sisälly itsetekemisen ja oppimisen iloa. Päivitetty 1.4.2014 (servon rakentaminen)

Autopilotin sieluna tulee toimimaan Arduino UNO ohjelmoitava mikrokontrolleri. Valmistajan sivuilta löytyy laitteen ohjelmointiin tarvittavat sovellukset ja paljon opetusmateriaalia laitteen ohjelmointiin. UNO:n hinta postikuluineen on n. 30€. UNO:ssa on useita digitaalisia ja analogisia lähtöjä/tuloja, joiden avulla voi ottaa vastaan dataa antureilta yms. ja ohjata toimilaitteita kuten servoja, moottoreita, ledejä yms. Suosittelen laitetta kaikille vähänkin elektroniikasta ja ohjelmoinnista kiinnostuneille. Laitteelle on saatavissa hyvä StarterKit, joka sisältää paljon komponentteja ja kirjan, josta löytyy ohjeita erilaisiin pieniin projekteihin. StarterKitin hinta on n. 100€.

 

Autopilotti tarvitsee myös tiedon veneen kulkusuunnasta ja servon moottorin kääntämiseksi. Kulkusuunta saadaan helpoiten digitaalisella kompassilla (n.30-50€), joita on myynnissä useilla eri Arduinoja myyvillä nettikaupoilla. Omasta laatikosta löytyy kuitenkin vanha Holux:n usb-GPS palikka, josta saa kaivettua ulos kulkusuunnan. GPS laitteesta saa lisäksi nopeuden, kellonajan, päivämäärän ja tietenkin paikan, mikäli tälläisiä tietoja tarvitsee. Uistelunopeus on n. 3-4 km/h eli n. 1 m/s, joka on aivan GPS:n tarkkuuden rajoilla. Nähtäväksi siis jää riittääkö tämä tarkkuus oikean ja tasaisen suunnan saamiseksi.

 GPS:n etu digitaaliseen kompassiin verrattuna on se että GPS-suunta on paikan suhteen ja kompassin suunta on vain magneettikentän suhteen. Parhaiten eron huomaa kun otetaan huomioon tuulen vaikutus.

gps_kompassi_vertailu

Kuvassa pienet mustat ja valkoiset pisteet havainnollistavat mittauspisteitä. Ohjelmisto ottaa GPS:ltä ja kompassilta suuntatiedon tietyin väliajoin, esim. sekunnin välein, ja vertaa tätä tietoa tavoitesuuntaan. Kuvan tapauksessa kompassi antaa kokoajan tiedon että suunta on oikea, sillä kompassi osoittaa kokoajan samaan suuntaan, vaikka tuulen vaikutuksesta veneen todellinen kulkusuunta on väärä. GPS sen sijaan laskee kulkusuunnan GPS pisteiden väliltä. Mikäli tuulen vaikutuksesta vene ajautuu väärään suuntaan on GPS:n havaitsema kulkusuunta väärä, jolloin järjestelmä korjaa suunnan oikeaksi.

Ainakin Holux:n GPS:t ja tietääkseni melkein kaikki muutkin käyttävät tiedonsiirrossa veneilystä tuttua NMEA 0183 standardia. Hyvää NMEA faktaa GPS:stä löytyy täältä: GPSinformation.ORG. GPS:n TX pinni (vihreä johto USB-kaapelissa) antaa siis ulos kolmikirjaimisia datapaketteja kuten RMC, BOD, jne., jotka sisältävät erilaista informaatiota. Esim. RMC kertoo paikan, ajan, nopeuden, suuntiman asteissa ja magneettipoikkeaman, eli kaiken tarvittavan. TX pinnistä tuleva data on siis muotoa:

$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A. Jossa:

  • Aika: 12:35:19
  • A: active
  • Latitude 48 deg 07.038′ N
  • Longitude 11 deg 31.000′ E
  • Maanopeus solmuissa: 022.4

  • Kulkusuunta asteissa:  084.4
  • Päivämäärä: 23.03.94
  • Eranto: 003.1,W

Sähkömoottorin ohjaukseen voi periaatteessa käyttää suoraan Arduino piiriä, mutta suurin vita on silloin 40 mA. Todellisuudessa tarvitaan siis erillinen PWM piiri. PWM tulee sanoista Pulse-Width Modulation, eli pulssinleveysmodulaattori. PWM:llä säädetään siis moottorin pyörimisnopeutta ja suuntaa. Sähkömoottori otetaan vanhasta akkuporakoneesta, jossa on kätevästi alennusvaihteisto jo valmiina. Akkuporakoneita taitaa saada halvimmillaan n.30€:lla.

Autopilotille olen ajatellut seuraavia toimintoja:

  • Käsin ohjaus painikkeilla ”oikealle” ja ”vasemmalle” (drive-by-wire)
  • ”Set” painike asettemaan haluttu kurssi
  • ”Reset” painike nollaa autopilotin
  • LED osoittamaan Set/Reset tila

Optiona olen ajatellut seuraavia:

  • Näyttö jossa suunta ja nopeus
  • ”oikealle” ja ”vasemmalle” painikkeilla voi hienosäätää setettua kurssia

Projektin kustannukset: (ostettuna)

  • Arduino UNO – 30€
  • PWM – 17€
  • GPS – 0€ (n.60€)
  • Akkuporakone – 0€ (n.30€)
  • Tarvikkeita – X€

Arduinon ohjelmointi:

Arduino ohjelmointiin käytetään C-kieltä, joka on yleinen kieli mekatroniikassa ja ohjelmistoalustoissa. Arduinoon löytyy valmistajan sivuilta hyviä valmiita koodeja ja kirjastoja. Lisäksi internet on pullollaan Arduinoharrastajien omia projekteja ja koodeja. Oma koodi on veilä kokeiluvaiheessa ja laitan sen tänne kunhan saan sen toimimaan.

Mekaniikka

Pohdin vähän ohjauksen mekaanista toteutusta. Päädyin melko yksinkertaiseen rakenteeseen, jossa sähkömoottorin saa eristettyä kohtuu hyvin. Tiivistys ei varmaankaan kestä upotusta, mutta ainakin suojaa isommilta roiskeita ja aalloilta. Kierretanko on M6 jossa nousu on sopivat 1 mm/kierros. Voimat on sen verran pieniä että uskon sen kestävän. Kelkka on PE-muovia, joka luuistaa hyvin ja liukumista voi edesauttaa vaseliinilla. Kierteet on tarkoitus tehdä suoraan muoviin.

autopilot_kokoonpano autopilot_liukulaakeri

Visiointia rakenteesta.

Koodia tehdessä ja toimintaperiaatetta miettiessä olen tajunnut että ohjaukselle on pakko rakentaa takaisinkytkentä, eli paikkatietto servon asennosta. Tähän aseman määrittämiseen on nyt pari ideaa.

Logiikka tunnistaa ääri ja keskiaseman ja sen kumpaan suuntaan venettä käännetään. Se ei kuitenkaan tiedä kuinka paljon käännetään. Systeemin etu on että sen voi tehdä pelkillä johteilla, jotka voi valita ruostumattomasta materiaalista -> pitkä kestoikä. Heikkous huono tarkkuus.

 

Potentiometri mittaa vastuksen arvoa koko matkalla, eli se tietää tarkalleen mihin suuntaan ja miten paljon venettä käännetään. Potentiometrin voi toteuttaa erillisellä mekaanisesti liitettävällä kammalla, joka on yhtä pitkä kuin liikematka. Monikierroksisella pyöritettävällä potentiometrillä, joka liitetään mekaanisesti siten että lineaariliike muutetaan pyöriväksi liikkeeksi. Lineaarinen potentiometri on teknisesti yksinkertaisempi toteuttaa ja ajattelin kokeilla jos vastuslangasta saisi rakennettua sellaisen.

Vastuslangassa ongelmaksi muodostuu langan korroosionkestävyys, eli kosteissa olosuhteissa lanka ruostuu helposti. Lisäksi langan olisi oltava erittäin ohutta, että vastuksen muutos n. 200 mm matkalla olisi riittävän hyvin mitattavissa. Parhaaksi vaihtoehdoksi keksin mallin, jossa kierteytetty lattateräs asetetaan kierretangon suuntaisesti ja liikkuvaan kelkkaan tehdään ura, joka kiertää lattarautaa asemansa mukaan. Lattaraudan päähän voidaan asettaa tavallinen potentiometri.

asemantunnistus3

Kiertyvä lattarauta.

Lattarauta tuetaan päistä muovisilla sovitteilla, jotka oli kätevintä valmistaa 3D-tulostimella.

sovittimet

Sovittimet 3D-tulostettuina.

Olen samalla kehittänyt ohjauksen algoritmiä ja lisännyt siihen mm. PID säätimen. Säätimen ansiosta suunnan pitäisi pysyä vakaampana, eikä ohjauksen pitäisi lähteä seilaamaan niin helposti.

Servo on saatu  nyt rakennettua sähkökytkentöjä vaille valmiiksi. Paketti asetetaan 75 mm viemäriputkesta tehtyyn runkoon ja lukitaan paikalleen muovisilla sokilla. Kasaaminen oli suhteellisen tarkkaa hommaa, että kaikki osat liikkuvat jouhevasti. Monia säätöjä sai hakea useampaan kertaan.

kokoonpano

rakenne