...
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.
...