Kasutaja tarvikud

Lehe tööriistad


juhendid:sidus

Erinevused

Siin näed erinevusi valitud versiooni ja hetkel kehtiva lehekülje vahel.

Lõlita võrdlemise vaatele

Both sides previous revision Previous revision
Next revision
Previous revision
juhendid:sidus [2019/04/16 23:16]
peeter.salong
juhendid:sidus [2019/04/25 14:12] (Hetkel kehtiv)
peeter.salong [Sidus]
Rida 1: Rida 1:
 ====== Sidus ====== ====== Sidus ======
  
-Sidus on C++ teek, mis kirjeldab kommunikatsiooni paketid erinevate riistvara moodulite vahel ning implementeerib ka need. Sidus teeki kasutades on lihtsam panna erinevad moodulid omavahel suhtlema, ilma et peaks suhtlust ja pakette ise nullist kirjutama. ​+Sidus on C++ teek, mis kirjeldab kommunikatsiooni paketid erinevate riistvara moodulite vahel ning implementeerib ka need. Sidus teeki kasutades on lihtsam panna erinevad moodulid omavahel suhtlema, ilma et peaks suhtlust ja pakette ise nullist kirjutama. Kui esialgu on sõnumeid ja liideseid vähe, siis pikemas perspektiivis tuleb neid vajaduse põhiselt juurde. Lisaks saab vajadusel kirjutada PC poole peal ka teiste keelte tuge (nt python, C#).
  
 ===== Nõuded ===== ===== Nõuded =====
Rida 13: Rida 13:
   - Õpetus, kuidas teeki kasutada   - Õpetus, kuidas teeki kasutada
   - Koodi haldamine gitlab keskkonnas   - Koodi haldamine gitlab keskkonnas
-  - Sõnumitest on toetatud ​ainult 4 mootor kiiruse seadmise sõnum ja anduri näidu edastamise sõnum+  - Sõnumitest on toetatud ​a) kuni nelja mootor kiiruse seadmise sõnum ja b) kuni nelja anduri näidu edastamise sõnum
  
 Andmeid edastatakse sõnumitena,​ mille formaat on: Andmeid edastatakse sõnumitena,​ mille formaat on:
Rida 22: Rida 22:
   * Argumendid (pikkus - 1 (käsk) - 2 (crc) baiti) - käsu sisu.   * Argumendid (pikkus - 1 (käsk) - 2 (crc) baiti) - käsu sisu.
   * CRC (2 baiti) - kontrollkood veendumaks, et saadud sõnum on korrektselt vastu võetud   * CRC (2 baiti) - kontrollkood veendumaks, et saadud sõnum on korrektselt vastu võetud
 +
 +===== Väljalasked =====
 +
 +^ Väljalase ^ Kuupäev ​    ^ Muudatused ^
 +| v1.0.0 ​   |  23.04.2019 | Jadapordi kaudu sõnumite saatmise/​vastuvõtmise tugi Arduinole ja PC-le. Toetatud sõnumid: mootorite kiiruse seadmine (id: 0), kaugusandurite väärtuste edastamine (id: 20) |
  
 ===== Kasutamine ===== ===== Kasutamine =====
    
-Lae alla kood gitlabist +Lae alla kood gitlabist ​ja vali konkreetne versioon 
-''​git clone git@gitlab.com:​TTYRobotiklubi/​libraries/​sidus.git''​+<​code>​ 
 +git clone git@gitlab.com:​TTYRobotiklubi/​libraries/​sidus.git 
 +cd sidus 
 +git checkout v1.0.0 
 +</​code>​
  
-==== Arduino ​mikrokontrolleriga ​====+==== Arduino ​mikrokontrolleris ​====
   * Kui Sidus teeki pole enne kasutanud Arduino juures, siis kõigepealt loo kaust ''​Sidus''​ Arduino ''​libraries''​ kausta alla. Kui Linux OS-s asub see tüüpiliselt ''​~/​Documents/​Arduino/​libraries/'',​ siis Windows OS-s ''​My Documents\Arduino\libraries\''​ kaustas.   * Kui Sidus teeki pole enne kasutanud Arduino juures, siis kõigepealt loo kaust ''​Sidus''​ Arduino ''​libraries''​ kausta alla. Kui Linux OS-s asub see tüüpiliselt ''​~/​Documents/​Arduino/​libraries/'',​ siis Windows OS-s ''​My Documents\Arduino\libraries\''​ kaustas.
   * Kopeeri kõik //cpp// ja //h// failid ''​Sidus/​common''​ kaustast Arduino alla loodud Sidus kausta. Sama tee ka //cpp// ja //h// failidega ''​sidus/​microcontroller/​arduino''​ kaustast. Lisaks kopeeri sealt ka //​keyword.txt//​ fail.   * Kopeeri kõik //cpp// ja //h// failid ''​Sidus/​common''​ kaustast Arduino alla loodud Sidus kausta. Sama tee ka //cpp// ja //h// failidega ''​sidus/​microcontroller/​arduino''​ kaustast. Lisaks kopeeri sealt ka //​keyword.txt//​ fail.
Rida 34: Rida 43:
   * Näitekood nelja mootori kiiruste vastuvõtmisest ning samasuguse sõnumi tagasisaatmisest näitamaks mootori sõnumi vastuvõtmist ja saatmist   * Näitekood nelja mootori kiiruste vastuvõtmisest ning samasuguse sõnumi tagasisaatmisest näitamaks mootori sõnumi vastuvõtmist ja saatmist
  
-<​code>​+<​code ​cpp>
 /* /*
  * This is an example of how to use Sidus library  * This is an example of how to use Sidus library
Rida 68: Rida 77:
   delay(5);   delay(5);
 } }
 +</​code>​
 +
 +==== PC-s ====
 +
 +PC poole peal on Sidus teegil sõltuvus Boost teegist [[https://​www.boost.org/​]]. Viimast kasutatakse jadapordiga suhtlemiseks. Sõltuvalt OS-st on selle installeerimine erinev.
 +
 +=== Boost teegi installeerimine (Windows) ===
 +  *  Windowsi jaoks on juba ehitatud eelkompileeritud Boost binaarfailid,​ mis saab allalaadida siit [[https://​sourceforge.net/​projects/​boost/​files/​boost-binaries/​]]. Pane tähele, et alla laeksid õige versiooni. See sõltub, millist C++ kompilaatorit kasutad. Siin on väike spikker Visual Studio ja Microsofti kompilaatori vahel.
 +
 +^ Visual Studio ^ MSVC Toolset ^  ​
 +|   ​VS2015.3 ​  ​| ​  ​v14.0 ​   |
 +|   ​VS2017 ​    ​| ​  ​v14.1 ​   |
 +|   ​VS2019 ​    ​| ​  ​v14.2 ​   |
 +
 +Antud veebilehel on toetatud ainult MSVC kompilaatorid,​ kui sul on MinGW kompilaator,​ siis pead Boost teegi ise ehitama ja installeerima. Õpetus on siin: [[https://​gist.github.com/​sim642/​29caef3cc8afaa273ce6]]
 +  * Kui laadisid alla binaarfailid,​ siis installeeri Boost exe failist
 +
 +=== Boost teegi installeerimine (Linux) ===
 +
 +Terminalis installeeri boost arenduspakid
 +''​sudo apt-get install libboost-all-dev''​
 +
 +=== Sidus koodi kasutamine ===
 +
 +Kopeeri Sidus teegist järgmised failid oma projekti
 +  * kõik .cpp and .h failid sidus/pc kaustast (mitte selle alamkaustast)
 +  * kõik .cpp and .h failid sidus/​common kaustast
 +
 +Järgnevalt üks koodinäide,​ kuidas PC pool Sidus teeki kasutada
 +<code cpp>
 +#include <​iostream>​
 +
 +#include "​communicator.h"​
 +#include "​serialportfactory_pc.h"​
 +
 +void printMotorsCallback(int16_t a, int16_t b, int16_t c, int16_t d)
 +{
 +  std::cout << "​motors rx: " << a << " " << b << " " << c << " " << d << std::endl;
 +}
 +
 +// Create serial port and communicator instances to do communication  ​
 +Sidus::​SerialPortFactoryPc factory(Sidus::​SerialPortType::​Boost);​
 +Sidus::​Communicator comm(&​factory);​
 +
 +// Open serial port
 +const std::string port = "/​dev/​ttyACM0";​
 +std::cout << "​Opening serial port" << std::endl;
 +if (!comm.open(port.data(),​ 9600))
 +{
 +  std::cout << "​serial port opening failed"​ << std::endl;
 +  return 1;
 +}
 +
 +//Register method to get received motor message
 +comm.setMotorsSpeedCallback(printMotorsCallback);​
 +//Send a motor message
 +comm.sendMotorSpeed(234);​
 +
 +// Do service periodically to send and receive messages
 +comm.service();​
 </​code>​ </​code>​
juhendid/sidus.1555445805.txt.gz · Viimati muutnud: 2019/04/16 23:16 persoon peeter.salong