Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Ohjaus veneen päässä toteutettiin alunperin Arduino-mikrokontrollerilla, mutta myöhemmin Arduinon lisäksi otettiin käyttöön linux-lauta. Linux-laudan tehtävä on vastaanottaa tietokoneelta tulevat ohjaustiedot sarjaväylään kytketyllä radiomodeemilla. Arduinon tehtävä on huolehtia karamoottorien ohjauksesta, jotka säätävät veneen kauhaa ja suuttimen asentoa.

Ohjaus veneen päässä toteutettiin Arduino -mikro-ohjaimella. Ohjaustiedot lähettävältä tietokoneelta vastaanotetaan Satel-radiomodeemilla, joka on kiinni sarjaväylässä. Tietojen perusteella ohjataan PWM-lähdöillä kahta sähkötoimista karamoottoria, jotka säätävät vesijetin kauhaa ja suutinta, ja veneen työntövoimana toimivaa sähkömoottoria CAN-väylän viesteillä. Can-väylältä otetaan lisäksi vastaan tietoja mm. akuilta ja GPS:ltä. Vastaanotetut tiedot lähetetään radiomodeemilla takaisin ohjaustietokoneelle.

Veneen CAN-väylä

Veneessä on yksi CAN-väylällä liikkuu muun muassa seuraavia viestejä: sähkömoottorin (vesisuihkumoottorin) ohjausviestit, Arduinolle menevät karamoottorien ohjausviestit, GPS:ltä saatavat viestit ja veneen akkujen sekä moottorin tilan ilmaisevia viestejä.

Arduinon ohjelmointi

Arduino on yksinkertaista ohjelmoida ohjelmointiympäristöllä, joka toimitetaan laitteen mukana. Kieli on C:tä, jossa on mukana Arduinon omia kirjastoja. Ohjelmalla onnistuu myös koodin syöttäminen Arduinoon, jolloin tehty ohjelma käynnistyy aina, kun Arduinoon kytketään virrat.

Ohjausohjelmassa käytettiin Arduinon omien kirjastojen lisäksi CAN-kirjastoa, joka on CAN-shieldin käyttökirjasto. Sarjaväylän lukemiseen ja kirjoittamiseen käytettiin Serial-kirjastoa. Ohjelman lähdekoodi on erillisessä tiedostossa.

Linux-laudan ohjelmointi

Linux-laudan ohjelma ohjelmoitiin Arduinon tapaan C-kielellä.

Ohjausohjelman ohjelmointi

Ohajaustietokoneen ohjelma ja käyttöliittymä tehtiin Qt-ohjelmointiympäristöllä. Käyttöliittymään tehtiin säätömahdollisuudet sarjaväylän käyttämiseksi ja toimilaitteiden ohjaamiseksi tehtiin säätöpalkit ja 2-akselisen ohjaussauvan asemaa simuloiva kenttä, jossa koordinaatistoa klikkaamalla voi säätää lähetettäviä ohjaustietoja. Käyttöliittymään tehtiin lisäksi veneeltä vastaanotettavat tiedot näyttävät elementit sekä sarjaväylän asetukset.

Venettä voidaan ohjata myös USB-väylään yhdistettävällä PS2-ohjaimella. Ohjaimelta saatavat tiedot on yhdistetty ohjausohjelman saatuihin säätöpalkkeihin.

Sarjaliikenne toteutettiin Minicanopen-kirjaston Serial-osiolla. Sarjaliikenne ja muut tarvittavat funktiot tehtiin omaan säikeeseen, jotta käyttöliittymä olisi niistä erillään ja ohjelma toimisi mahdollisimman sulavasti.

...