<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sk">
	<id>https://senzor.robotika.sk/sensorwiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=StudentMISA</id>
	<title>SensorWiki - Príspevky používateľa [sk]</title>
	<link rel="self" type="application/atom+xml" href="https://senzor.robotika.sk/sensorwiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=StudentMISA"/>
	<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php/%C5%A0peci%C3%A1lne:Pr%C3%ADspevky/StudentMISA"/>
	<updated>2026-05-05T18:10:40Z</updated>
	<subtitle>Príspevky používateľa</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Dof_rotate.pde&amp;diff=11228</id>
		<title>Súbor:Dof rotate.pde</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Dof_rotate.pde&amp;diff=11228"/>
		<updated>2019-06-19T09:47:47Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: Program pre Processing na rotáciu OBJ 3D modelu podľa dát z 10DOF senzora.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Program pre Processing na rotáciu OBJ 3D modelu podľa dát z 10DOF senzora.&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Dofahrs.ino&amp;diff=11227</id>
		<title>Súbor:Dofahrs.ino</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Dofahrs.ino&amp;diff=11227"/>
		<updated>2019-06-19T09:46:17Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: Sketch pre Arduino na posielanie údajov do Processingu.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sketch pre Arduino na posielanie údajov do Processingu.&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11226</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11226"/>
		<updated>2019-06-19T09:45:21Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Balogh: chyba opis pouzitych senzorov a zdrojove kody patria niecomu celkom inemu&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* monitorovanie hodnôt zo snímača&lt;br /&gt;
&lt;br /&gt;
Z nasledujúceho obrázka vidíme, že roll je asi 18 °, výška pitch je asi 78 ° a zatáčanie (yaw) je asi 32 °,&lt;br /&gt;
skica sa bude aktualizovať s najnovšími hodnotami pri akejkoľvek rýchlosti, ktorú sme nastavili.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:monitor.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:picture1.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód:&lt;br /&gt;
&lt;br /&gt;
Processing 2: [[Médiá:dof_rotate.pde|dof_rotate.pde]] a [[Médiá:dof-serialconfig.txt|dof-serialconfig.txt]]&lt;br /&gt;
&lt;br /&gt;
Arduino: [[Médiá:dofahrs.ino|dofahrs.ino]]&lt;br /&gt;
&lt;br /&gt;
Testovací kód pre 10DOF senzor (Arduino): [[Médiá:10dof-test.ino|10dof-test.ino]]&lt;br /&gt;
&lt;br /&gt;
3D model stíhačky vo formáte OBJ: [[Médiá:Dof-stihacka.obj|dof-stihacka.obj]]&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11225</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11225"/>
		<updated>2019-06-19T08:53:51Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Balogh: chyba opis pouzitych senzorov a zdrojove kody patria niecomu celkom inemu&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* monitorovanie hodnôt zo snímača&lt;br /&gt;
&lt;br /&gt;
Z nasledujúceho obrázka vidíme, že roll je asi 18 °, výška pitch je asi 78 ° a zatáčanie (yaw) je asi 32 °,&lt;br /&gt;
skica sa bude aktualizovať s najnovšími hodnotami pri akejkoľvek rýchlosti, ktorú sme nastavili.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:monitor.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:picture1.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:dof-rotate.pde|dof-rotate.pde]] a [[Médiá:dof-serialconfig.txt|dof-serialconfig.txt]]&lt;br /&gt;
&lt;br /&gt;
Testovací kód pre 10DOF senzor (Arduino): [[Médiá:10dof-test.ino|10dof-test.ino]]&lt;br /&gt;
&lt;br /&gt;
3D model stíhačky vo formáte OBJ: [[Médiá:Dof-stihacka.obj|dof-stihacka.obj]]&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:10dof-test.ino&amp;diff=11224</id>
		<title>Súbor:10dof-test.ino</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:10dof-test.ino&amp;diff=11224"/>
		<updated>2019-06-19T08:53:17Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: Testovací výpis dát zo senzora.
Roll: 0; Pitch: 0; Heading: 0; Alt: 0 m; Temp: 0 C&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Testovací výpis dát zo senzora.&lt;br /&gt;
Roll: 0; Pitch: 0; Heading: 0; Alt: 0 m; Temp: 0 C&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11223</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11223"/>
		<updated>2019-06-19T08:51:35Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Balogh: chyba opis pouzitych senzorov a zdrojove kody patria niecomu celkom inemu&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* monitorovanie hodnôt zo snímača&lt;br /&gt;
&lt;br /&gt;
Z nasledujúceho obrázka vidíme, že roll je asi 18 °, výška pitch je asi 78 ° a zatáčanie (yaw) je asi 32 °,&lt;br /&gt;
skica sa bude aktualizovať s najnovšími hodnotami pri akejkoľvek rýchlosti, ktorú sme nastavili.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:monitor.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:picture1.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:dof-rotate.pde|dof-rotate.pde]] a [[Médiá:dof-serialconfig.txt|dof-serialconfig.txt]]&lt;br /&gt;
Testovací kód pre 10DOF senzor (Arduino): [[Médiá:10dof-test.ino|10dof-test.ino]]&lt;br /&gt;
&lt;br /&gt;
3D model stíhačky vo formáte OBJ: [[Médiá:Dof-stihacka.obj|dof-stihacka.obj]]&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11222</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11222"/>
		<updated>2019-06-18T20:24:59Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: /* Algoritmus a program */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Balogh: chyba opis pouzitych senzorov a zdrojove kody patria niecomu celkom inemu&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* monitorovanie hodnôt zo snímača&lt;br /&gt;
&lt;br /&gt;
Z nasledujúceho obrázka vidíme, že roll je asi 18 °, výška pitch je asi 78 ° a zatáčanie (yaw) je asi 32 °,&lt;br /&gt;
skica sa bude aktualizovať s najnovšími hodnotami pri akejkoľvek rýchlosti, ktorú sme nastavili.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:monitor.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:picture1.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:dof-rotate.pde|dof-rotate.pde]] a [[Médiá:dof-serialconfig.txt|dof-serialconfig.txt]]&lt;br /&gt;
&lt;br /&gt;
3D model stíhačky vo formáte OBJ: [[Médiá:Dof-stihacka.obj|dof-stihacka.obj]]&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Dof-stihacka.obj&amp;diff=11221</id>
		<title>Súbor:Dof-stihacka.obj</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Dof-stihacka.obj&amp;diff=11221"/>
		<updated>2019-06-18T20:23:21Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: 3D model - stíhačka bez textúry&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;3D model - stíhačka bez textúry&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Dof-serialconfig.txt&amp;diff=11220</id>
		<title>Súbor:Dof-serialconfig.txt</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Dof-serialconfig.txt&amp;diff=11220"/>
		<updated>2019-06-18T20:22:50Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: Konfigurácia sériového portu pre program 10DOF senzora.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Konfigurácia sériového portu pre program 10DOF senzora.&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Dof-rotate.pde&amp;diff=11219</id>
		<title>Súbor:Dof-rotate.pde</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Dof-rotate.pde&amp;diff=11219"/>
		<updated>2019-06-18T20:22:13Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: Program pre Processing na rotáciu OBJ 3D modelu podľa dát z 10DOF senzora.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Program pre Processing na rotáciu OBJ 3D modelu podľa dát z 10DOF senzora.&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11218</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11218"/>
		<updated>2019-06-18T20:21:11Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Balogh: chyba opis pouzitych senzorov a zdrojove kody patria niecomu celkom inemu&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* monitorovanie hodnôt zo snímača&lt;br /&gt;
&lt;br /&gt;
Z nasledujúceho obrázka vidíme, že roll je asi 18 °, výška pitch je asi 78 ° a zatáčanie (yaw) je asi 32 °,&lt;br /&gt;
skica sa bude aktualizovať s najnovšími hodnotami pri akejkoľvek rýchlosti, ktorú sme nastavili.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:monitor.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:picture1.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:dof-rotate.pde|dof-rotate.pde]] a [[Médiá:dof-serialconfig.txt|dof-serialconfig.txt]]&lt;br /&gt;
&lt;br /&gt;
3D model stíhačky vo formáte OBJ: [[Médiá:dof-stihacka.obj|dof-stihacka.obj]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11216</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11216"/>
		<updated>2019-06-17T20:26:56Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: /* Popis riešenia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* monitorovanie hodnôt zo snímača&lt;br /&gt;
&lt;br /&gt;
Z nasledujúceho obrázka vidíme, že roll je asi 18 °, výška pitch je asi 78 ° a zatáčanie (yaw) je asi 32 °,&lt;br /&gt;
skica sa bude aktualizovať s najnovšími hodnotami pri akejkoľvek rýchlosti, ktorú sme nastavili.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:monitor.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:picture1.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Picture1.png&amp;diff=11215</id>
		<title>Súbor:Picture1.png</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Picture1.png&amp;diff=11215"/>
		<updated>2019-06-17T20:25:46Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Picture1.jpg&amp;diff=11214</id>
		<title>Súbor:Picture1.jpg</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Picture1.jpg&amp;diff=11214"/>
		<updated>2019-06-17T20:24:28Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11213</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11213"/>
		<updated>2019-06-17T20:24:08Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: /* Popis riešenia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* monitorovanie hodnôt zo snímača&lt;br /&gt;
&lt;br /&gt;
Z nasledujúceho obrázka vidíme, že roll je asi 18 °, výška pitch je asi 78 ° a zatáčanie (yaw) je asi 32 °,&lt;br /&gt;
skica sa bude aktualizovať s najnovšími hodnotami pri akejkoľvek rýchlosti, ktorú sme nastavili.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:monitor.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:picture1.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11212</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11212"/>
		<updated>2019-06-13T18:46:33Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: /* Analýza */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* monitorovanie hodnôt zo snímača&lt;br /&gt;
&lt;br /&gt;
Z nasledujúceho obrázka vidíme, že roll je asi 18 °, výška pitch je asi 78 ° a zatáčanie (yaw) je asi 32 °,&lt;br /&gt;
skica sa bude aktualizovať s najnovšími hodnotami pri akejkoľvek rýchlosti, ktorú sme nastavili.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:monitor.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11211</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11211"/>
		<updated>2019-06-13T18:45:52Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: /* Popis riešenia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, &lt;br /&gt;
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* monitorovanie hodnôt zo snímača&lt;br /&gt;
&lt;br /&gt;
Z nasledujúceho obrázka vidíme, že roll je asi 18 °, výška pitch je asi 78 ° a zatáčanie (yaw) je asi 32 °,&lt;br /&gt;
skica sa bude aktualizovať s najnovšími hodnotami pri akejkoľvek rýchlosti, ktorú sme nastavili.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:monitor.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* priebehy dôležitých signálov&lt;br /&gt;
* este jedna polozka&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11210</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11210"/>
		<updated>2019-06-13T18:36:28Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: /* Analýza */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, &lt;br /&gt;
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* monitorovanie hodnôt zo snímača&lt;br /&gt;
&lt;br /&gt;
Z nasledujúceho obrázka vidíme, že roll je asi 18 °, výška pitch je asi 78 ° a zatáčanie (yaw) je asi 32 °,&lt;br /&gt;
skica sa bude aktualizovať s najnovšími hodnotami pri akejkoľvek rýchlosti, ktorú sme nastavili.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:monitor.jpg|center|400px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* priebehy dôležitých signálov&lt;br /&gt;
* este jedna polozka&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru &lt;br /&gt;
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili. &lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. &lt;br /&gt;
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. &lt;br /&gt;
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.&lt;br /&gt;
&lt;br /&gt;
Vyberte podstatné časti zdrojového kódu, použite na to prostredie &#039;&#039;source&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11209</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11209"/>
		<updated>2019-06-13T18:35:56Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: /* Analýza */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, &lt;br /&gt;
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* monitorovanie hodnôt zo snímača&lt;br /&gt;
&lt;br /&gt;
Z nasledujúceho obrázka vidíme, že roll je asi 18 °, výška pitch je asi 78 ° a zatáčanie (yaw) je asi 32 °,&lt;br /&gt;
skica sa bude aktualizovať s najnovšími hodnotami pri akejkoľvek rýchlosti, ktorú sme nastavili.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:monitor.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* priebehy dôležitých signálov&lt;br /&gt;
* este jedna polozka&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru &lt;br /&gt;
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili. &lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. &lt;br /&gt;
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. &lt;br /&gt;
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.&lt;br /&gt;
&lt;br /&gt;
Vyberte podstatné časti zdrojového kódu, použite na to prostredie &#039;&#039;source&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Monitor.jpg&amp;diff=11208</id>
		<title>Súbor:Monitor.jpg</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Monitor.jpg&amp;diff=11208"/>
		<updated>2019-06-13T18:34:43Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11207</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11207"/>
		<updated>2019-06-13T18:34:15Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: /* Analýza */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, &lt;br /&gt;
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* monitorovanie hodnôt zo snímača&lt;br /&gt;
&lt;br /&gt;
Z nasledujúceho obrázka vidíme, že roll je asi 18 °, výška pitch je asi 78 ° a zatáčanie (yaw) je asi 32 °,&lt;br /&gt;
skica sa bude aktualizovať s najnovšími hodnotami pri akejkoľvek rýchlosti, ktorú sme nastavili.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:monitor.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* priebehy dôležitých signálov&lt;br /&gt;
* este jedna polozka&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru &lt;br /&gt;
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili. &lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. &lt;br /&gt;
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. &lt;br /&gt;
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.&lt;br /&gt;
&lt;br /&gt;
Vyberte podstatné časti zdrojového kódu, použite na to prostredie &#039;&#039;source&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11206</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11206"/>
		<updated>2019-06-13T18:26:21Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: /* Analýza */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, &lt;br /&gt;
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* odkaz na katalógový list&lt;br /&gt;
* priebehy dôležitých signálov&lt;br /&gt;
* este jedna polozka&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru &lt;br /&gt;
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili. &lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. &lt;br /&gt;
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. &lt;br /&gt;
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.&lt;br /&gt;
&lt;br /&gt;
Vyberte podstatné časti zdrojového kódu, použite na to prostredie &#039;&#039;source&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11205</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11205"/>
		<updated>2019-06-13T18:25:27Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: /* Analýza */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, &lt;br /&gt;
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* odkaz na katalógový list&lt;br /&gt;
* priebehy dôležitých signálov&lt;br /&gt;
* este jedna polozka&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru &lt;br /&gt;
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili. &lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. &lt;br /&gt;
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. &lt;br /&gt;
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.&lt;br /&gt;
&lt;br /&gt;
Vyberte podstatné časti zdrojového kódu, použite na to prostredie &#039;&#039;source&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Lietadlo.jpg&amp;diff=11204</id>
		<title>Súbor:Lietadlo.jpg</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Lietadlo.jpg&amp;diff=11204"/>
		<updated>2019-06-13T18:23:39Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11203</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11203"/>
		<updated>2019-06-13T18:22:56Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, &lt;br /&gt;
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:lietadlo.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* odkaz na katalógový list&lt;br /&gt;
* priebehy dôležitých signálov&lt;br /&gt;
* este jedna polozka&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru &lt;br /&gt;
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili. &lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. &lt;br /&gt;
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. &lt;br /&gt;
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.&lt;br /&gt;
&lt;br /&gt;
Vyberte podstatné časti zdrojového kódu, použite na to prostredie &#039;&#039;source&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11202</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11202"/>
		<updated>2019-06-13T18:19:15Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, &lt;br /&gt;
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
* orientácia použitého objektu&lt;br /&gt;
&lt;br /&gt;
Eulerove uhly (https://adafru.it/ddl) opisujú orientáciu (v stupňoch) okolo jedného referenčného bodu v trojrozmernom priestore.&lt;br /&gt;
Pre tri uhly sa používajú rôzne názvy, ale najbežnejšia terminológia s lietadlom je Roll (x), Pitch (y) a Yaw (z).&lt;br /&gt;
Normálne majú kladný aj záporný uhol (-180 ° až 180 °) v závislosti od smeru naklonenia lietadla, s 0 ° v každom&lt;br /&gt;
smere, ktorý zodpovedá zarovnaniu lietadla s každou osou.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* odkaz na katalógový list&lt;br /&gt;
* priebehy dôležitých signálov&lt;br /&gt;
* este jedna polozka&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru &lt;br /&gt;
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili. &lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. &lt;br /&gt;
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. &lt;br /&gt;
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.&lt;br /&gt;
&lt;br /&gt;
Vyberte podstatné časti zdrojového kódu, použite na to prostredie &#039;&#039;source&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11201</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11201"/>
		<updated>2019-06-13T18:02:42Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, &lt;br /&gt;
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
* obrázok zapojenia vývodov použitej súčiastky&lt;br /&gt;
* odkaz na katalógový list&lt;br /&gt;
* priebehy dôležitých signálov&lt;br /&gt;
* este jedna polozka&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru &lt;br /&gt;
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili. &lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. &lt;br /&gt;
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. &lt;br /&gt;
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.&lt;br /&gt;
&lt;br /&gt;
Vyberte podstatné časti zdrojového kódu, použite na to prostredie &#039;&#039;source&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11200</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11200"/>
		<updated>2019-06-13T18:02:01Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, &lt;br /&gt;
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
* obrázok zapojenia vývodov použitej súčiastky&lt;br /&gt;
* odkaz na katalógový list&lt;br /&gt;
* priebehy dôležitých signálov&lt;br /&gt;
* este jedna polozka&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru &lt;br /&gt;
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili. &lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. &lt;br /&gt;
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. &lt;br /&gt;
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.&lt;br /&gt;
&lt;br /&gt;
Vyberte podstatné časti zdrojového kódu, použite na to prostredie &#039;&#039;source&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11199</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11199"/>
		<updated>2019-06-13T17:58:33Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, &lt;br /&gt;
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
* obrázok zapojenia vývodov použitej súčiastky&lt;br /&gt;
* odkaz na katalógový list&lt;br /&gt;
* priebehy dôležitých signálov&lt;br /&gt;
* este jedna polozka&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru &lt;br /&gt;
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili. &lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zapojenie vývodov použitého snímača&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. &lt;br /&gt;
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. &lt;br /&gt;
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.&lt;br /&gt;
&lt;br /&gt;
Vyberte podstatné časti zdrojového kódu, použite na to prostredie &#039;&#039;source&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
Nezabudnite napísať čosi ako užívateľský návod. Z neho by malo byť jasné čo program robí, &lt;br /&gt;
ako sa prejavuje a aké má užívateľské rozhranie (čo treba stlačiť, čo sa kde zobrazuje).&lt;br /&gt;
Ak ste namerali nejaké signály, sem s nimi. Ak je výsledkom nejaký údaj na displeji, &lt;br /&gt;
odfotografujte ho. &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kľúčové slová &#039;Category&#039;, ktoré sú na konci stránky nemeňte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojZdrojak.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11198</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11198"/>
		<updated>2019-06-13T17:56:07Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
Popis jednotlivých pinov:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, &lt;br /&gt;
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
* obrázok zapojenia vývodov použitej súčiastky&lt;br /&gt;
* odkaz na katalógový list&lt;br /&gt;
* priebehy dôležitých signálov&lt;br /&gt;
* este jedna polozka&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru &lt;br /&gt;
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili. &lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schéma zapojenia snímača&#039;&#039;&#039;&lt;br /&gt;
[[Súbor:Zapojenie.png]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. &lt;br /&gt;
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. &lt;br /&gt;
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.&lt;br /&gt;
&lt;br /&gt;
Vyberte podstatné časti zdrojového kódu, použite na to prostredie &#039;&#039;source&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
Nezabudnite napísať čosi ako užívateľský návod. Z neho by malo byť jasné čo program robí, &lt;br /&gt;
ako sa prejavuje a aké má užívateľské rozhranie (čo treba stlačiť, čo sa kde zobrazuje).&lt;br /&gt;
Ak ste namerali nejaké signály, sem s nimi. Ak je výsledkom nejaký údaj na displeji, &lt;br /&gt;
odfotografujte ho. &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kľúčové slová &#039;Category&#039;, ktoré sú na konci stránky nemeňte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojZdrojak.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11197</id>
		<title>IMU jednotka s 10DOF</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=IMU_jednotka_s_10DOF&amp;diff=11197"/>
		<updated>2019-06-13T17:52:20Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autori:      || &#039;&#039;&#039;Martin Supek, Zdenko Pucovski&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná mechatronika a elektromobilita || 1. Ing.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zadanie ==&lt;br /&gt;
&lt;br /&gt;
Úlohou bolo oboznámiť sa s princípom senzora Adafruit IMU 10DOF.&lt;br /&gt;
&lt;br /&gt;
Pripojiť ho k mikrokontroléru a vyčítať s neho dáta ktoré sa potom pomocou zvoleného súboru obj. zobrazia ako vizualizačná aplikácia.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Použité zariadenia ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Senzor Adafruit IMU 10DOF&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inerciálna pohybová jednotka (IMU) je elektronické senzorové zariadenie obsahujúce niekoľko senzorov - akcelerometer, gyroskop či magnetometer (kompas). &lt;br /&gt;
&lt;br /&gt;
Je to dôležitý komponent riadenia lietajúcich strojov, ale stáva sa aj súčasťou autonómnych automobilov či spotrebnej elektroniky.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:senzor imu.jpg|center|300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Všetky snímače na Adafruit 10DOF komunikujú cez I2C zbernicu. Vďaka tomu je jednoduché nastavenie s minimálnym počtom káblov.&lt;br /&gt;
&lt;br /&gt;
Táto doska využíva existujúce Adafruit ovládače pre LSM303DLHC (akcelerometer a magnetometer), L3GD20 (gyroskop) a BMP180 (snímač tlaku / nadmorskej výšky).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Príručky použitých ovládačov:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/lsm303-accelerometer-slash-compass-breakout/overview LSM303DLHC]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/adafruit-triple-axis-gyro-breakout L3GD20]&lt;br /&gt;
&lt;br /&gt;
  [https://learn.adafruit.com/bmp085/ BMP180]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arduino UNO&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Vývojová doska s mikroprocesorom ATmega328P s 32KB Flash pamäte, 1 KB EEPROM, 2KB SRAM pamäte.&lt;br /&gt;
&lt;br /&gt;
Softvér na programovanie používame Arduino IDE.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:arduino-uno-r3-development-board.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Literatúra:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
[https://learn.adafruit.com/adafruit-10-dof-imu-breakout-lsm303-l3gd20-bmp180/design-files Datasheet Adafruit 10DOF]&lt;br /&gt;
&lt;br /&gt;
[https://www.terraelectronica.ru/pdf/show?pdf_file=%2Fz%2FDatasheet%2F1%2F10+DOF+IMU+Sensor+User+Manual.pdf IMU 10DOF Manual]&lt;br /&gt;
&lt;br /&gt;
https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/visualizing-data?fbclid=IwAR3zc6-GW1_TjWuEX6jwo6jEN9aT7xU3RGTmduINXHhos84VY7UjXYnFOTo&lt;br /&gt;
&lt;br /&gt;
https://en.wikipedia.org/wiki/Attitude_and_heading_reference_system&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje, &lt;br /&gt;
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:&lt;br /&gt;
&lt;br /&gt;
* popis komunikačnej zbernice:&lt;br /&gt;
&lt;br /&gt;
I2C je počítačová zbernica, vyvinutá firmou Philips. Používa sa na pripojenie rôznych periférií, pričom na prenos údajov sa používajú dva vodiče. &lt;br /&gt;
&lt;br /&gt;
Komunikácia prebieha tak, že jedno zariadenia hrá úlohu mastera (ovláda ostatné) a ostatné zariadenia hrajú úlohu slave. &lt;br /&gt;
&lt;br /&gt;
V našom prípade budeme predpokladať, že master je Arduino. Slave bude náš senzor.&lt;br /&gt;
&lt;br /&gt;
Master - Zahajuje komunikáciu a aktívne posiela alebo číta z podriadených zariadení. Master pozná adresu každého zariadenia a keď potrebuje osloviť konkrétne zariadenie, urobí to pomocou tejto adresy.&lt;br /&gt;
&lt;br /&gt;
Slave - Takéto zariadenia čaká na svoje oslovenie a keď ho master osloví, podľa okolnosti si len prečíta, čo za údaje dostalo, alebo odpovie nejakými inými údajmi.&lt;br /&gt;
&lt;br /&gt;
* obrázok zapojenia vývodov použitej súčiastky&lt;br /&gt;
* odkaz na katalógový list&lt;br /&gt;
* priebehy dôležitých signálov&lt;br /&gt;
* este jedna polozka&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru &lt;br /&gt;
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili. &lt;br /&gt;
&lt;br /&gt;
Pripojenie k zariadeniu Arduino sme vyriešili nasledovne, napájanie Vin a GND s napätím 3-5VDC a zapojenie I2C údajov do SCL a SDA konektorov.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schéma zapojenia snímača&#039;&#039;&#039;&lt;br /&gt;
[[Súbor:Zapojenie.png]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:zapojeniee.jpg|center|600px]]&lt;br /&gt;
&lt;br /&gt;
Zapojenie pinov senzora IMU jednotky s 10DOF:&lt;br /&gt;
* SCL pin na Arduino analógový pin A5&lt;br /&gt;
* SDA pin na Arduino analógový pin A4&lt;br /&gt;
* VIN pin na napájanie 5V z Arduino UNO&lt;br /&gt;
* GND pin na zem GND z Arduino UNO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:stihacka.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Algoritmus a program ===&lt;br /&gt;
&lt;br /&gt;
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili. &lt;br /&gt;
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu. &lt;br /&gt;
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.&lt;br /&gt;
&lt;br /&gt;
Vyberte podstatné časti zdrojového kódu, použite na to prostredie &#039;&#039;source&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// inicializujeme premenne ziskavane zo senzora&lt;br /&gt;
  float roll  = 0.0F;&lt;br /&gt;
  float pitch = 0.0F;&lt;br /&gt;
  float yaw   = 0.0F;&lt;br /&gt;
  float temp  = 0.0F;&lt;br /&gt;
  float alt   = 0.0F;&lt;br /&gt;
&lt;br /&gt;
// nacitame .obj 3D model vybraneho objektu - stihacky&lt;br /&gt;
  OBJModel model;&lt;br /&gt;
  model = new OBJModel(this);&lt;br /&gt;
  model.load(&amp;quot;stihacka.obj&amp;quot;);&lt;br /&gt;
  model.scale(20);&lt;br /&gt;
&lt;br /&gt;
// nacitanie a spracovavanie dat zo senzora&lt;br /&gt;
  void serialEvent(Serial p) &lt;br /&gt;
{&lt;br /&gt;
  String incoming = p.readString(); //nacitame prichadzajuci string zo senzora&lt;br /&gt;
  if (printSerial) {&lt;br /&gt;
    println(incoming); //ak je dostupny text, tak ho vypiseme do konzoly&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  if ((incoming.length() &amp;gt; 8)) //pokial sme nacitali celu ocakavanu dlzku retazca, tak ho spracujeme&lt;br /&gt;
  {&lt;br /&gt;
    String[] list = split(incoming, &amp;quot; &amp;quot;); // rozdelime string po medzerach na slova do zoznamu&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Orientation:&amp;quot;)) ) // ak je prve slovo &amp;quot;Orientation:&amp;quot;&lt;br /&gt;
    {&lt;br /&gt;
      roll  = float(list[1]);  // ulozime dalsie slova zo stringu do premennych na dalsie nasledne spracovanie&lt;br /&gt;
      pitch = float(list[2]);&lt;br /&gt;
      yaw   = float(list[3]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    if ( (list.length &amp;gt; 0) &amp;amp;&amp;amp; (list[0].equals(&amp;quot;Alt:&amp;quot;)) ) &lt;br /&gt;
    {&lt;br /&gt;
      alt  = float(list[1]);&lt;br /&gt;
      buffer = incoming;&lt;br /&gt;
    }&lt;br /&gt;
    // ... podobne nacitame teplotu temp&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// posunieme objekt dalej od pociatocneho bodu 0,0&lt;br /&gt;
  translate(200, 300, 0);&lt;br /&gt;
&lt;br /&gt;
// Pripravime pootoceny objekt podla nacitanych hodnot rotacie osi X/Y/Z(hodnoty su v radianoch, 0..Pi*2)&lt;br /&gt;
  rotateX(radians(roll));&lt;br /&gt;
  rotateZ(radians(pitch));&lt;br /&gt;
  rotateY(radians(yaw));&lt;br /&gt;
  ...&lt;br /&gt;
  model.draw(); //vykreslime aktulizovanu poziciu modelu&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!&lt;br /&gt;
&lt;br /&gt;
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojProgram.c|program.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Overenie ===&lt;br /&gt;
&lt;br /&gt;
Nezabudnite napísať čosi ako užívateľský návod. Z neho by malo byť jasné čo program robí, &lt;br /&gt;
ako sa prejavuje a aké má užívateľské rozhranie (čo treba stlačiť, čo sa kde zobrazuje).&lt;br /&gt;
Ak ste namerali nejaké signály, sem s nimi. Ak je výsledkom nejaký údaj na displeji, &lt;br /&gt;
odfotografujte ho. &lt;br /&gt;
&lt;br /&gt;
Pre spustenie programu pre IMU jednotku s 10 DOF potrebujeme nasledujúci softvér a doplnky:&lt;br /&gt;
* Processing 2.2.1 - hlavné vývojové prostredie, je potrebné použiť verziu 2.x, kvôli kompatibilite [https://processing.org/ web Processing]&lt;br /&gt;
* Saito&#039;s OBJ Loader - doplnok na načítanie .obj 3D modelu objektu, [https://code.google.com/p/saitoobjloader/#Download inštalácia]&lt;br /&gt;
* G4P GUI library  - doplnok na vizualizáciu v Processing, [http://sourceforge.net/projects/g4p/files/?source=navbar inštalácia]&lt;br /&gt;
* Adafruit_AHRS knižnicu - obsahuje Adafruit_10DOF hlavičkové súbory, funkcie a príklady pre 10DOF senzor&lt;br /&gt;
* 3D model objektu vo formáte .obj bez textúry, ktorý chceme vizualizovať&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kľúčové slová &#039;Category&#039;, ktoré sú na konci stránky nemeňte.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Médiá:MojZdrojak.c]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MEMS_projekty#Projekty_2019|Späť na zoznam projektov...]]&lt;br /&gt;
&lt;br /&gt;
[[Category:MEMS2019]] [[Category:AVR]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11106</id>
		<title>Retrokonzola Mk2019</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11106"/>
		<updated>2019-06-10T20:21:32Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autor:      || &#039;&#039;&#039;Kristián Lehocký&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná informatika || 3. Bc.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opis projektu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ako projekt som si zvolil vytvoriť mini retro hernú konzolu za pomoci Raspberry Pi a operačného systému recalbox. Súčasť projektu je aj vyrobenie obalu pre Rasperry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na internete som objavil operačný systém zvaný recalbox, ktorý z Raspberry Pi spraví retro hernú konzolu obsahujúcu emulátory starých konzol. Veľmi rád sa hrám na mojej Playstation 1 a z dôvodu, že sa začína kaziť mi napadlo vytvoriť si ju ako záverečný projekt. Okrem hrania hier môže tento operačný systém slúžiť aj ako multimediálne centrum. Cez implementovanú aplikáciu Kodi je teda možné sledovať aj filmy či seriály. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Použité komponenty a technológie:&lt;br /&gt;
* Raspberry Pi 3 Model B+&lt;br /&gt;
* Micro SD karta 32GB (potrebné: &amp;gt;=16GB)&lt;br /&gt;
* Napájací zdroj 2.5A (potrebné: &amp;gt;=2.5A) &lt;br /&gt;
* Herný ovládač (USB, Playstation 3, XBOX360)&lt;br /&gt;
* USB klávesnica&lt;br /&gt;
* HDMI kábel&lt;br /&gt;
* Plexisklo&lt;br /&gt;
* Laserový vyrezávač&lt;br /&gt;
* Skrutky, podložky a matky&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspbox.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Výber platformy, na ktorej konzola pobeží&lt;br /&gt;
* Výber operačného systému&lt;br /&gt;
* Výber ovládacieho prvku konzoly&lt;br /&gt;
* Návrh obalu pre Raspberry Pi a následne ho dať vyrezať. &lt;br /&gt;
* Vyrezaný obal poskladať a zlepiť lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
# Po stiahnutí OS recalbox som ho cez aplikáciu balenaEtcher napálil na micro SD kartu.&lt;br /&gt;
# Micro SD kartu som vložil do Raspberry Pi, pripojil HDMI kábel od monitoru, napájací kábel, USB klávesnicu a USB herný ovládač. Po nabehnutí operačného systému bolo treba nakonfigurovať herný ovládač, čo som uskutočnil pomocou USB klávesnice. &lt;br /&gt;
# Konzola je pripravená a je na nej možné hrať predinštalované hry. Ak ale chceme hrať vlastné hry, je potrebné ich stiahnuť a následne prekopírovať na micro SD kartu, čo sa robí cez internetovú sieť.&lt;br /&gt;
# Na internete som našiel vhodný návrh obalu, ktorý je možné vyrezať na laserovom vyrezávači, tak som ho použil ako predlohu, upravil si ho podľa vlastných požiadaviek a nechal vyrezať. Na úpravu obalu som použil voľne dostupný program Inkscape.&lt;br /&gt;
# Prvý pokus zložiť obal nedopadol podľa predstáv a jeden z dielov som omylom zlomil, preto som si musel vyrezať náhradný diel, pre istotu niekoľko. &lt;br /&gt;
# Ďalší problém nastal, keď som sa pokúšal pripevniť dosku k spodnej časti obalu, skrutky boli o kúsok väčšie ako diery v doske. Nechcel som čakať na nové skrutky a preto som sa rozhodol do dosky vyvŕtať o niečo väčšie diery. Vŕtanie dopadlo úspešne a mohol som pripevniť dosku k spodnej časti obalu.&lt;br /&gt;
# Nakoniec je potrebné poskladať obal. Jednotlivé diely boli mierne voľné preto som ich musel zlepiť dokopy sekundovým lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Súbor s obalom pre Raspberry Pi: [[Médiá:Recal case.svg|Raspberry_case.svg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalcase.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Návrh obalu pre Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Vyrezaneplexi.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Vyrezané diely obalu z plexiskla&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspberryfail.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Problém pri pripevňovaní Raspberry Pi k obalu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Výsledok ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Výsledný produkt je Raspberry Pi, v obale z plexiskla vyrezanom laserom, na ktorom je možné hrať staršie hry a sledovať filmy či seriály. Pôvodne som plánoval trochu iný výsledok, ale z technických príčin som sa rozhodol pozmeniť riešenie projektu, za čo som veľmi rád a tento výsledok sa mi páči viac ako pôvodný nápad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal3.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal4.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Recalbox OS UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Playstation 1 hry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Použité zdroje:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* [https://www.recalbox.com/ Recalbox OS]&lt;br /&gt;
* [https://www.balena.io/etcher/ Software pre napálenie OS na SD kartu]&lt;br /&gt;
* [https://www.thingiverse.com/thing:2302391 Obal pre Raspberry Pi]&lt;br /&gt;
&lt;br /&gt;
[[Category:DTV2019]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11105</id>
		<title>Retrokonzola Mk2019</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11105"/>
		<updated>2019-06-10T20:18:15Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autor:      || &#039;&#039;&#039;Kristián Lehocký&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná informatika || 3. Bc.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opis projektu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ako projekt som si zvolil vytvoriť mini retro hernú konzolu za pomoci Raspberry Pi a operačného systému recalbox. Súčasť projektu je aj vyrobenie obalu pre Rasperry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na internete som objavil operačný systém zvaný recalbox, ktorý z Raspberry Pi spraví retro hernú konzolu obsahujúcu emulátory starých konzol. Veľmi rád sa hrám na mojej Playstation 1 a z dôvodu, že sa začína kaziť mi napadlo vytvoriť si ju ako záverečný projekt. Okrem hrania hier môže tento operačný systém slúžiť aj ako multimediálne centrum. Cez implementovanú aplikáciu Kodi je teda možné sledovať aj filmy či seriály. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Použité komponenty a technológie:&lt;br /&gt;
* Raspberry Pi 3 Model B+&lt;br /&gt;
* Micro SD karta 32GB (potrebné: &amp;gt;=16GB)&lt;br /&gt;
* Napájací zdroj 2.5A (potrebné: &amp;gt;=2.5A) &lt;br /&gt;
* Herný ovládač (USB, Playstation 3, XBOX360)&lt;br /&gt;
* USB klávesnica&lt;br /&gt;
* HDMI kábel&lt;br /&gt;
* Plexisklo&lt;br /&gt;
* Laserový vyrezávač&lt;br /&gt;
* Skrutky, podložky a matky&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspbox.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Výber platformy, na ktorej konzola pobeží&lt;br /&gt;
* Výber operačného systému&lt;br /&gt;
* Výber ovládacieho prvku konzoly&lt;br /&gt;
* Návrh obalu pre Raspberry Pi a následne ho dať vyrezať. &lt;br /&gt;
* Vyrezaný obal poskladať a zlepiť lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
# Po stiahnutí OS recalbox som ho cez aplikáciu balenaEtcher napálil na micro SD kartu.&lt;br /&gt;
# Micro SD kartu som vložil do Raspberry Pi, pripojil HDMI kábel od monitoru, napájací kábel, USB klávesnicu a USB herný ovládač. Po nabehnutí operačného systému bolo treba nakonfigurovať herný ovládač, čo som uskutočnil pomocou USB klávesnice. &lt;br /&gt;
# Konzola je pripravená a je na nej možné hrať predinštalované hry. Ak ale chceme hrať vlastné hry, je potrebné ich stiahnuť a následne prekopírovať na micro SD kartu, čo sa robí cez internetovú sieť.&lt;br /&gt;
# Na internete som našiel vhodný návrh obalu, ktorý je možné vyrezať na laserovom vyrezávači, tak som ho použil ako predlohu, upravil si ho podľa vlastných požiadaviek a nechal vyrezať. Na úpravu obalu som použil free software Inkscape.&lt;br /&gt;
# Prvý pokus zložiť obal nedopadol podľa predstáv a jeden z dielov som omylom zlomil, preto som si musel vyrezať náhradný diel, pre istotu niekoľko. &lt;br /&gt;
# Ďalší problém nastal, keď som sa pokúšal pripevniť dosku k spodnej časti obalu, skrutky boli o kúsok väčšie ako diery v doske. Nechcel som čakať na nové skrutky a preto som sa rozhodol do dosky vyvŕtať o niečo väčšie diery. Vŕtanie dopadlo úspešne a mohol som pripevniť dosku k spodnej časti obalu.&lt;br /&gt;
# Nakoniec je potrebné poskladať obal. Jednotlivé diely boli mierne voľné preto som ich musel zlepiť dokopy sekundovým lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Súbor s obalom pre Raspberry Pi: [[Médiá:Recal case.svg|Raspberry_case.svg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalcase.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Návrh obalu pre Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Vyrezaneplexi.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Vyrezané diely obalu z plexiskla&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspberryfail.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Problém pri pripevňovaní Raspberry Pi k obalu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Výsledok ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Výsledný produkt je Raspberry Pi, v obale z plexiskla vyrezanom laserom, na ktorom je možné hrať staršie hry a sledovať filmy či seriály. Pôvodne som plánoval trochu iný výsledok, ale z technických príčin som sa rozhodol pozmeniť riešenie projektu, za čo som veľmi rád a tento výsledok sa mi páči viac ako pôvodný nápad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal3.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal4.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Recalbox OS UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Playstation 1 hry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Použité zdroje:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* [https://www.recalbox.com/ Recalbox OS]&lt;br /&gt;
* [https://www.balena.io/etcher/ Software pre napálenie OS na SD kartu]&lt;br /&gt;
* [https://www.thingiverse.com/thing:2302391 Obal pre Raspberry Pi]&lt;br /&gt;
&lt;br /&gt;
[[Category:DTV2019]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11104</id>
		<title>Retrokonzola Mk2019</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11104"/>
		<updated>2019-06-10T20:17:28Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autor:      || &#039;&#039;&#039;Kristián Lehocký&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná informatika || 3. Bc.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opis projektu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ako projekt som si zvolil vytvoriť mini retro hernú konzolu za pomoci Raspberry Pi a operačného systému recalbox. Súčasť projektu je aj vyrobenie obalu pre Rasperry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na internete som objavil operačný systém zvaný recalbox, ktorý z Raspberry Pi spraví retro hernú konzolu obsahujúcu emulátory starých konzol. Veľmi rád sa hrám na mojej Playstation 1 a z dôvodu, že sa začína kaziť mi napadlo vytvoriť si ju ako záverečný projekt. Okrem hrania hier môže tento operačný systém slúžiť aj ako multimediálne centrum. Cez implementovanú aplikáciu Kodi je teda možné sledovať aj filmy či seriály. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Použité komponenty a technológie:&lt;br /&gt;
* Raspberry Pi 3 Model B+&lt;br /&gt;
* Micro SD karta 32GB (potrebné: &amp;gt;=16GB)&lt;br /&gt;
* Napájací zdroj 2.5A (potrebné: &amp;gt;=2.5A) &lt;br /&gt;
* Herný ovládač (USB, Playstation 3, XBOX360)&lt;br /&gt;
* USB klávesnica&lt;br /&gt;
* HDMI kábel&lt;br /&gt;
* Plexisklo&lt;br /&gt;
* Laserový vyrezávač&lt;br /&gt;
* Skrutky, podložky a matky&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspbox.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Výber platformy, na ktorej konzola pobeží&lt;br /&gt;
* Výber operačného systému&lt;br /&gt;
* Výber ovládacieho prvku&lt;br /&gt;
* Návrh obalu pre Raspberry Pi a následne ho dať vyrezať. &lt;br /&gt;
* Vyrezaný obal poskladať a zlepiť lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
# Po stiahnutí OS recalbox som ho cez aplikáciu balenaEtcher napálil na micro SD kartu.&lt;br /&gt;
# Micro SD kartu som vložil do Raspberry Pi, pripojil HDMI kábel od monitoru, napájací kábel, USB klávesnicu a USB herný ovládač. Po nabehnutí operačného systému bolo treba nakonfigurovať herný ovládač, čo som uskutočnil pomocou USB klávesnice. &lt;br /&gt;
# Konzola je pripravená a je na nej možné hrať predinštalované hry. Ak ale chceme hrať vlastné hry, je potrebné ich stiahnuť a následne prekopírovať na micro SD kartu, čo sa robí cez internetovú sieť.&lt;br /&gt;
# Na internete som našiel vhodný návrh obalu, ktorý je možné vyrezať na laserovom vyrezávači, tak som ho použil ako predlohu, upravil si ho podľa vlastných požiadaviek a nechal vyrezať. Na úpravu obalu som použil free software Inkscape.&lt;br /&gt;
# Prvý pokus zložiť obal nedopadol podľa predstáv a jeden z dielov som omylom zlomil, preto som si musel vyrezať náhradný diel, pre istotu niekoľko. &lt;br /&gt;
# Ďalší problém nastal, keď som sa pokúšal pripevniť dosku k spodnej časti obalu, skrutky boli o kúsok väčšie ako diery v doske. Nechcel som čakať na nové skrutky a preto som sa rozhodol do dosky vyvŕtať o niečo väčšie diery. Vŕtanie dopadlo úspešne a mohol som pripevniť dosku k spodnej časti obalu.&lt;br /&gt;
# Nakoniec je potrebné poskladať obal. Jednotlivé diely boli mierne voľné preto som ich musel zlepiť dokopy sekundovým lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Súbor s obalom pre Raspberry Pi: [[Médiá:Recal case.svg|Raspberry_case.svg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalcase.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Návrh obalu pre Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Vyrezaneplexi.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Vyrezané diely obalu z plexiskla&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspberryfail.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Problém pri pripevňovaní Raspberry Pi k obalu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Výsledok ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Výsledný produkt je Raspberry Pi, v obale z plexiskla vyrezanom laserom, na ktorom je možné hrať staršie hry a sledovať filmy či seriály. Pôvodne som plánoval trochu iný výsledok, ale z technických príčin som sa rozhodol pozmeniť riešenie projektu, za čo som veľmi rád a tento výsledok sa mi páči viac ako pôvodný nápad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal3.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal4.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Recalbox OS UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Playstation 1 hry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Použité zdroje:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* [https://www.recalbox.com/ Recalbox OS]&lt;br /&gt;
* [https://www.balena.io/etcher/ Software pre napálenie OS na SD kartu]&lt;br /&gt;
* [https://www.thingiverse.com/thing:2302391 Obal pre Raspberry Pi]&lt;br /&gt;
&lt;br /&gt;
[[Category:DTV2019]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11103</id>
		<title>Retrokonzola Mk2019</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11103"/>
		<updated>2019-06-10T20:15:37Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autor:      || &#039;&#039;&#039;Kristián Lehocký&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná informatika || 3. Bc.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opis projektu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ako projekt som si zvolil vytvoriť mini retro hernú konzolu za pomoci Raspberry Pi a operačného systému recalbox. Súčasť projektu je aj vyrobenie obalu pre Rasperry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na internete som objavil operačný systém zvaný recalbox, ktorý z Raspberry Pi spraví retro hernú konzolu obsahujúcu emulátory starých konzol. Veľmi rád sa hrám na mojej Playstation 1 a z dôvodu, že sa začína kaziť mi napadlo vytvoriť si ju ako záverečný projekt. Okrem hrania hier môže tento operačný systém slúžiť aj ako multimediálne centrum. Cez implementovanú aplikáciu Kodi je teda možné sledovať aj filmy či seriály. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Použité komponenty a technológie:&lt;br /&gt;
* Raspberry Pi 3 Model B+&lt;br /&gt;
* Micro SD karta 32GB (potrebné: &amp;gt;=16GB)&lt;br /&gt;
* Napájací zdroj 2.5A (potrebné: &amp;gt;=2.5A) &lt;br /&gt;
* Herný ovládač (USB, Playstation 3, XBOX360)&lt;br /&gt;
* USB klávesnica&lt;br /&gt;
* HDMI kábel&lt;br /&gt;
* Plexisklo&lt;br /&gt;
* Laserový vyrezávač&lt;br /&gt;
* Skrutky, podložky a matky&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspbox.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Výber platformy, na ktorej konzola pobeží&lt;br /&gt;
* Výber operačného systému&lt;br /&gt;
* Výber ovládacieho prvku&lt;br /&gt;
* Návrh obalu pre Raspberry Pi a následne ho dať vyrezať. &lt;br /&gt;
* Vyrezaný obal poskladať a zlepiť lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
# Po stiahnutí OS recalbox som ho cez aplikáciu balenaEtcher napálil na micro SD kartu.&lt;br /&gt;
# Micro SD kartu som vložil do Raspberry Pi, pripojil HDMI kábel od monitoru, napájací kábel, USB klávesnicu a USB herný ovládač. Po nabehnutí operačného systému bolo treba nakonfigurovať herný ovládač, čo som uskutočnil pomocou USB klávesnice. &lt;br /&gt;
# Konzola je pripravená a je na nej možné hrať predinštalované hry. Ak ale chceme hrať vlastné hry, je potrebné ich stiahnuť a následne prekopírovať na micro SD kartu, čo sa robí cez internetovú sieť.&lt;br /&gt;
# Na internete som našiel vhodný návrh obalu, ktorý je možné vyrezať na laserovom vyrezávači, tak som ho použil ako predlohu, upravil si ho podľa vlastných požiadaviek a nechal vyrezať. Na úpravu obalu som použil free software Inkscape.&lt;br /&gt;
# Prvý pokus zložiť obal nedopadol podľa predstáv a jeden z dielov som omylom zlomil, preto som si musel vyrezať náhradný diel, pre istotu niekoľko. &lt;br /&gt;
# Ďalší problém nastal, keď som sa pokúšal pripevniť dosku k spodnej časti obalu, skrutky boli o kúsok väčšie ako diery v doske. Nechcel som čakať na nové skrutky a preto som sa rozhodol do dosky vyvŕtať o niečo väčšie diery. Vŕtanie dopadlo úspešne a mohol som pripevniť dosku k spodnej časti obalu.&lt;br /&gt;
# Nakoniec je potrebné poskladať obal. Jednotlivé diely boli mierne voľné preto som ich musel zlepiť dokopy sekundovým lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Súbor s obalom pre Raspberry Pi: [[Médiá:Recal case.svg|Raspberry_case.svg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalcase.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Návrh obalu pre Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Vyrezaneplexi.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Vyrezané diely obalu z plexiskla&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspberryfail.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Problém pri pripevňovaní Raspberry Pi k obalu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Výsledok ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Výsledný produkt je Raspberry Pi, v obale z plexiskla vyrezanom laserom, na ktorom je možné hrať staršie hry a sledovať filmy či seriály. Pôvodne som plánoval trochu iný výsledok, ale z technických príčin som sa rozhodol pozmeniť riešenie projektu, za čo som veľmi rád a tento výsledok sa mi páči viac ako pôvodný nápad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal3.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal4.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Recalbox OS UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Playstation 1 hry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Použité zdroje:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* [https://www.recalbox.com/ Recalbox OS]&lt;br /&gt;
* [https://www.balena.io/etcher/ Software pre napálenie OS na SD kartu]&lt;br /&gt;
* [https://www.thingiverse.com/thing:2302391 Obal pre Raspberry Pi]&lt;br /&gt;
&lt;br /&gt;
[[Category:DTV2019]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Recal_case.svg&amp;diff=11102</id>
		<title>Súbor:Recal case.svg</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Recal_case.svg&amp;diff=11102"/>
		<updated>2019-06-10T20:12:59Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11101</id>
		<title>Retrokonzola Mk2019</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11101"/>
		<updated>2019-06-10T20:05:24Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autor:      || &#039;&#039;&#039;Kristián Lehocký&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná informatika || 3. Bc.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opis projektu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ako projekt som si zvolil vytvoriť mini retro hernú konzolu za pomoci Raspberry Pi a operačného systému recalbox. Súčasť projektu je aj vyrobenie obalu pre Rasperry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na internete som objavil operačný systém zvaný recalbox, ktorý z Raspberry Pi spraví retro hernú konzolu obsahujúcu emulátory starých konzol. Veľmi rád sa hrám na mojej Playstation 1 a z dôvodu, že sa začína kaziť mi napadlo vytvoriť si ju ako záverečný projekt. Okrem hrania hier môže tento operačný systém slúžiť aj ako multimediálne centrum. Cez implementovanú aplikáciu Kodi je teda možné sledovať aj filmy či seriály. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Použité komponenty a technológie:&lt;br /&gt;
* Raspberry Pi 3 Model B+&lt;br /&gt;
* Micro SD karta 32GB (potrebné: &amp;gt;=16GB)&lt;br /&gt;
* Napájací zdroj 2.5A (potrebné: &amp;gt;=2.5A) &lt;br /&gt;
* Herný ovládač (USB, Playstation 3, XBOX360)&lt;br /&gt;
* USB klávesnica&lt;br /&gt;
* HDMI kábel&lt;br /&gt;
* Plexisklo&lt;br /&gt;
* Laserový vyrezávač&lt;br /&gt;
* Skrutky, podložky a matky&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspbox.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Výber platformy, na ktorej konzola pobeží&lt;br /&gt;
* Výber operačného systému&lt;br /&gt;
* Výber ovládacieho prvku&lt;br /&gt;
* Návrh obalu pre Raspberry Pi a následne ho dať vyrezať. &lt;br /&gt;
* Vyrezaný obal poskladať a zlepiť lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
# Po stiahnutí OS recalbox som ho cez aplikáciu balenaEtcher napálil na micro SD kartu.&lt;br /&gt;
# Micro SD kartu som vložil do Raspberry Pi, pripojil HDMI kábel od monitoru, napájací kábel, USB klávesnicu a USB herný ovládač. Po nabehnutí operačného systému bolo treba nakonfigurovať herný ovládač, čo som uskutočnil pomocou USB klávesnice. &lt;br /&gt;
# Konzola je pripravená a je na nej možné hrať predinštalované hry. Ak ale chceme hrať vlastné hry, je potrebné ich stiahnuť a následne prekopírovať na micro SD kartu, čo sa robí cez internetovú sieť.&lt;br /&gt;
# Na internete som našiel vhodný návrh obalu, ktorý je možné vyrezať na laserovom vyrezávači, tak som ho použil ako predlohu, upravil si ho podľa vlastných požiadaviek a nechal vyrezať. Na úpravu obalu som použil free software Inkscape.&lt;br /&gt;
# Prvý pokus zložiť obal nedopadol podľa predstáv a jeden z dielov som omylom zlomil, preto som si musel vyrezať náhradný diel, pre istotu niekoľko. &lt;br /&gt;
# Ďalší problém nastal, keď som sa pokúšal pripevniť dosku k spodnej časti obalu, skrutky boli o kúsok väčšie ako diery v doske. Nechcel som čakať na nové skrutky a preto som sa rozhodol do dosky vyvŕtať o niečo väčšie diery. Vŕtanie dopadlo úspešne a mohol som pripevniť dosku k spodnej časti obalu.&lt;br /&gt;
# Nakoniec je potrebné poskladať obal. Jednotlivé diely boli mierne voľné preto som ich musel zlepiť dokopy sekundovým lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalcase.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Návrh obalu pre Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Vyrezaneplexi.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Vyrezané diely obalu z plexiskla&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspberryfail.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Problém pri pripevňovaní Raspberry Pi k obalu&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Výsledok ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Výsledný produkt je Raspberry Pi, v obale z plexiskla vyrezanom laserom, na ktorom je možné hrať staršie hry a sledovať filmy či seriály. Pôvodne som plánoval trochu iný výsledok, ale z technických príčin som sa rozhodol pozmeniť riešenie projektu, za čo som veľmi rád a tento výsledok sa mi páči viac ako pôvodný nápad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal3.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal4.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Recalbox OS UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Playstation 1 hry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Použité zdroje:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* [https://www.recalbox.com/ Recalbox OS]&lt;br /&gt;
* [https://www.balena.io/etcher/ Software pre napálenie OS na SD kartu]&lt;br /&gt;
* [https://www.thingiverse.com/thing:2302391 Obal pre Raspberry Pi]&lt;br /&gt;
&lt;br /&gt;
[[Category:DTV2019]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11100</id>
		<title>Retrokonzola Mk2019</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11100"/>
		<updated>2019-06-10T19:59:26Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autor:      || &#039;&#039;&#039;Kristián Lehocký&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná informatika || 3. Bc.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opis projektu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ako projekt som si zvolil vytvoriť mini retro hernú konzolu za pomoci Raspberry Pi a operačného systému recalbox. Súčasť projektu je aj vyrobenie obalu pre Rasperry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na internete som objavil operačný systém zvaný recalbox, ktorý z Raspberry Pi spraví retro hernú konzolu obsahujúcu emulátory starých konzol. Veľmi rád sa hrám na mojej Playstation 1 a z dôvodu, že sa začína kaziť mi napadlo vytvoriť si ju ako záverečný projekt. Okrem hrania hier môže tento operačný systém slúžiť aj ako multimediálne centrum. Cez implementovanú aplikáciu Kodi je teda možné sledovať aj filmy či seriály. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Použité komponenty a technológie:&lt;br /&gt;
* Raspberry Pi 3 Model B+&lt;br /&gt;
* Micro SD karta 32GB (potrebné: &amp;gt;=16GB)&lt;br /&gt;
* Napájací zdroj 2.5A (potrebné: &amp;gt;=2.5A) &lt;br /&gt;
* Herný ovládač (USB, Playstation 3, XBOX360)&lt;br /&gt;
* USB klávesnica&lt;br /&gt;
* HDMI kábel&lt;br /&gt;
* Plexisklo&lt;br /&gt;
* Laserový vyrezávač&lt;br /&gt;
* Skrutky, podložky a matky&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspbox.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Výber platformy, na ktorej konzola pobeží&lt;br /&gt;
* Výber operačného systému&lt;br /&gt;
* Výber ovládacieho prvku&lt;br /&gt;
* Návrh obalu pre Raspberry Pi a následne ho dať vyrezať. &lt;br /&gt;
* Vyrezaný obal poskladať a zlepiť lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
# Po stiahnutí OS recalbox som ho cez aplikáciu balenaEtcher napálil na micro SD kartu.&lt;br /&gt;
# Micro SD kartu som vložil do Raspberry Pi, pripojil HDMI kábel od monitoru, napájací kábel, USB klávesnicu a USB herný ovládač. Po nabehnutí operačného systému bolo treba nakonfigurovať herný ovládač, čo som uskutočnil pomocou USB klávesnice. &lt;br /&gt;
# Konzola je pripravená a je na nej možné hrať predinštalované hry. Ak ale chceme hrať vlastné hry, je potrebné ich stiahnuť a následne prekopírovať na micro SD kartu, čo sa robí cez internetovú sieť.&lt;br /&gt;
# Na internete som našiel vhodný návrh obalu, ktorý je možné vyrezať na laserovom vyrezávači, tak som ho použil ako predlohu, upravil si ho podľa vlastných požiadaviek a nechal vyrezať. Na úpravu obalu som použil free software Inkscape.&lt;br /&gt;
# Prvý pokus zložiť obal nedopadol podľa predstáv a jeden z dielov som omylom zlomil, preto som si musel vyrezať náhradný diel, pre istotu niekoľko. &lt;br /&gt;
# Ďalší problém nastal, keď som sa pokúšal pripevniť dosku k spodnej časti obalu, skrutky boli o kúsok väčšie ako diery v doske. Nechcel som čakať na nové skrutky a preto som sa rozhodol do dosky vyvŕtať o niečo väčšie diery. Vŕtanie dopadlo úspešne a mohol som pripevniť dosku k spodnej časti obalu.&lt;br /&gt;
# Nakoniec je potrebné poskladať obal. Jednotlivé diely boli mierne voľné preto som ich musel zlepiť dokopy sekundovým lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalcase.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Návrh obalu pre Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Vyrezaneplexi.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Vyrezané diely obalu z plexiskla&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Výsledok ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Výsledný produkt je Raspberry Pi, v obale z plexiskla vyrezanom laserom, na ktorom je možné hrať staršie hry a sledovať filmy či seriály. Pôvodne som plánoval trochu iný výsledok, ale z technických príčin som sa rozhodol pozmeniť riešenie projektu, za čo som veľmi rád a tento výsledok sa mi páči viac ako pôvodný nápad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal3.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal4.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Recalbox OS UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Playstation 1 hry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Použité zdroje:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* [https://www.recalbox.com/ Recalbox OS]&lt;br /&gt;
* [https://www.balena.io/etcher/ Software pre napálenie OS na SD kartu]&lt;br /&gt;
* [https://www.thingiverse.com/thing:2302391 Obal pre Raspberry Pi]&lt;br /&gt;
&lt;br /&gt;
[[Category:DTV2019]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11099</id>
		<title>Retrokonzola Mk2019</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11099"/>
		<updated>2019-06-10T19:44:29Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autor:      || &#039;&#039;&#039;Kristián Lehocký&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná informatika || 3. Bc.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opis projektu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ako projekt som si zvolil vytvoriť mini retro hernú konzolu za pomoci Raspberry Pi a operačného systému recalbox. Súčasť projektu je aj vyrobenie obalu pre Rasperry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na internete som objavil operačný systém zvaný recalbox, ktorý z Raspberry Pi spraví retro hernú konzolu obsahujúcu emulátory starých konzol. Veľmi rád sa hrám na mojej Playstation 1 a z dôvodu, že sa začína kaziť mi napadlo vytvoriť si ju ako záverečný projekt. Okrem hrania hier môže tento operačný systém slúžiť aj ako multimediálne centrum. Cez implementovanú aplikáciu Kodi je teda možné sledovať aj filmy či seriály. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Použité komponenty a technológie:&lt;br /&gt;
* Raspberry Pi 3 Model B+&lt;br /&gt;
* Micro SD karta 32GB (potrebné: &amp;gt;=16GB)&lt;br /&gt;
* Napájací zdroj 2.5A (potrebné: &amp;gt;=2.5A) &lt;br /&gt;
* Herný ovládač (USB, PS3, XBOX360)&lt;br /&gt;
* USB klávesnica&lt;br /&gt;
* HDMI kábel&lt;br /&gt;
* Plexisklo&lt;br /&gt;
* Laserový vyrezávač&lt;br /&gt;
* Skrutky, podložky a matky&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspbox.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Najskôr je potrebné zabezpečiť platformu a vybrať operačný systém, na ktorej konzola pobeží, najvhodnejšou voľbou je Raspberry Pi 3 Model B+ (momentálne posledný vydaný model), pretože má najlepší hardware oproti ostatným Raspberry Pi a ako operačný systém je možné použiť napríklad recalbox. Napájací zdroj musí mať aspoň 2.5A, ideálne zvoliť oficiálny napájací adaptér Raspberry Pi. Micro SD karta musí mať kapacitu viac ako 16GB. Herný ovládač môže byť klasický USB, ďalej ovládač z Playstation 3 alebo z XBOX360. USB klávesnica môže byť užitočná na prvotnú konfiguráciu, ale dá sa použiť aj ako alternatíva ovládača. HDMI kábel na pripojenie Raspberry Pi k TV/monitoru. Následne treba navrhnúť obal pre Raspberry Pi a dať ho vyrezať. Vyrezaný obal poskladať a zlepiť lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalcase.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Návrh obalu pre Raspberry Pi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
# Po stiahnutí OS recalbox som ho cez aplikáciu balenaEtcher napálil na micro SD kartu.&lt;br /&gt;
# Micro SD kartu som zasunul do Raspberry Pi, pripojil HDMI kábel od monitoru, napájací kábel, USB klávesnicu a USB herný ovládač. Po nabehnutí operačného systému bolo treba nakonfigurovať herný ovládač, čo som uskutočnil pomocou USB klávesnice. &lt;br /&gt;
# Konzola je pripravená a je na nej možné hrať predinštalované hry. Ak ale chceme hrať vlastné hry, je potrebné ich stiahnuť a následne prekopírovať na micro SD kartu, čo sa robí cez internetovú sieť.&lt;br /&gt;
# Na internete som našiel vhodný návrh obalu, ktorý je možné vyrezať na laserovom vyrezávači, tak som ho použil ako predlohu, upravil si ho podľa vlastných požiadaviek a nechal vyrezať. Na úpravu obalu som použil free software Inkscape.&lt;br /&gt;
# Prvý pokus zložiť obal nedopadol podľa predstáv a jeden z dielov som omylom zlomil, preto som si musel vyrezať náhradný diel, pre istotu niekoľko. &lt;br /&gt;
# Ďalší problém nastal, keď som sa pokúšal pripevniť dosku k spodnej časti obalu, skrutky boli o kúsok väčšie ako diery v doske. Nechcel som čakať na nové skrutky a preto som sa rozhodol do dosky vyvŕtať o niečo väčšie diery. Vŕtanie dopadlo úspešne a mohol som pripevniť dosku k spodnej časti obalu.&lt;br /&gt;
# Nakoniec je potrebné poskladať obal. Jednotlivé diely boli mierne voľné preto som ich musel zlepiť dokopy sekundovým lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Vyrezaneplexi.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Vyrezané diely obalu z plexiskla&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Výsledok ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Výsledný produkt je Raspberry Pi, v obale z plexiskla vyrezanom laserom, na ktorom je možné hrať staršie hry a sledovať filmy či seriály. Pôvodne som plánoval trochu iný výsledok, ale z technických príčin som sa rozhodol pozmeniť riešenie projektu, za čo som veľmi rád a tento výsledok sa mi páči viac ako pôvodný nápad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal3.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal4.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Recalbox OS UI&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:RecalOS2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
Playstation 1 hry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Použité zdroje:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* [https://www.recalbox.com/ Recalbox OS]&lt;br /&gt;
* [https://www.balena.io/etcher/ Software pre napálenie OS na SD kartu]&lt;br /&gt;
* [https://www.thingiverse.com/thing:2302391 Obal pre Raspberry Pi]&lt;br /&gt;
&lt;br /&gt;
[[Category:DTV2019]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Recalcase.png&amp;diff=11098</id>
		<title>Súbor:Recalcase.png</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Recalcase.png&amp;diff=11098"/>
		<updated>2019-06-10T19:35:46Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:RecalOS2.jpg&amp;diff=11097</id>
		<title>Súbor:RecalOS2.jpg</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:RecalOS2.jpg&amp;diff=11097"/>
		<updated>2019-06-10T19:33:49Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:RecalOS1.jpg&amp;diff=11096</id>
		<title>Súbor:RecalOS1.jpg</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:RecalOS1.jpg&amp;diff=11096"/>
		<updated>2019-06-10T19:27:26Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11095</id>
		<title>Retrokonzola Mk2019</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11095"/>
		<updated>2019-06-10T19:26:24Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autor:      || &#039;&#039;&#039;Kristián Lehocký&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná informatika || 3. Bc.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opis projektu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ako projekt som si zvolil vytvoriť mini retro hernú konzolu za pomoci Raspberry Pi a operačného systému recalbox. Súčasť projektu je aj vyrobenie obalu pre Rasperry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na internete som objavil operačný systém zvaný recalbox, ktorý z Raspberry Pi spraví retro hernú konzolu obsahujúcu emulátory starých konzol. Veľmi rád sa hrám na mojej Playstation 1 a z dôvodu, že sa začína kaziť mi napadlo vytvoriť si ju ako záverečný projekt. Okrem hrania hier môže tento operačný systém slúžiť aj ako multimediálne centrum. Cez implementovanú aplikáciu Kodi je teda možné sledovať aj filmy či seriály. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Použité komponenty a technológie:&lt;br /&gt;
* Raspberry Pi 3 Model B+&lt;br /&gt;
* Micro SD karta 32GB (potrebné: &amp;gt;=16GB)&lt;br /&gt;
* Napájací zdroj 2.5A (potrebné: &amp;gt;=2.5A) &lt;br /&gt;
* Herný ovládač (USB, PS3, XBOX360)&lt;br /&gt;
* USB klávesnica&lt;br /&gt;
* HDMI kábel&lt;br /&gt;
* Plexisklo&lt;br /&gt;
* Laserový vyrezávač&lt;br /&gt;
* Skrutky, podložky a matky&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspbox.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Najskôr je potrebné zabezpečiť platformu a vybrať operačný systém, na ktorej konzola pobeží, najvhodnejšou voľbou je Raspberry Pi 3 Model B+ (momentálne posledný vydaný model), pretože má najlepší hardware oproti ostatným Raspberry Pi a ako operačný systém je možné použiť napríklad recalbox. Napájací zdroj musí mať aspoň 2.5A, ideálne zvoliť oficiálny napájací adaptér Raspberry Pi. Micro SD karta musí mať kapacitu viac ako 16GB. Herný ovládač môže byť klasický USB, ďalej ovládač z Playstation 3 alebo z XBOX360. USB klávesnica môže byť užitočná na prvotnú konfiguráciu, ale dá sa použiť aj ako alternatíva ovládača. HDMI kábel na pripojenie Raspberry Pi k TV/monitoru. Následne treba navrhnúť obal pre Raspberry Pi a dať ho vyrezať. Vyrezaný obal poskladať a zlepiť lepidlom.&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
# Po stiahnutí OS recalbox som ho cez aplikáciu balenaEtcher napálil na micro SD kartu.&lt;br /&gt;
# Micro SD kartu som zasunul do Raspberry Pi, pripojil HDMI kábel od monitoru, napájací kábel, USB klávesnicu a USB herný ovládač. Po nabehnutí operačného systému bolo treba nakonfigurovať herný ovládač, čo som uskutočnil pomocou USB klávesnice. &lt;br /&gt;
# Konzola je pripravená a je na nej možné hrať predinštalované hry. Ak ale chceme hrať vlastné hry, je potrebné ich stiahnuť a následne prekopírovať na micro SD kartu, čo sa robí cez internetovú sieť. Najskôr som mal problémy s pripojením na internet, napokon som zistil, že je to spôsobované wifi extenderom, čo mám v izbe a po pripojení na wifi router sa problém odstránil.&lt;br /&gt;
# Na internete som našiel vhodný návrh obalu, ktorý je možné vyrezať na laserovom vyrezávači, tak som ho použil ako predlohu, upravil si ho podľa vlastných požiadaviek a nechal vyrezať. Na úpravu obalu som použil software Inkscape.&lt;br /&gt;
# Prvý pokus zložiť obal nedopadol podľa predstáv a jeden z dielov som omylom zlomil, preto som si musel vyrezať náhradný diel, pre istotu niekoľko. &lt;br /&gt;
# Ďalší problém nastal, keď som sa pokúšal pripevniť dosku k spodnej časti obalu, skrutky boli o kúsok väčšie ako diery v doske. Nechcel som čakať na nové skrutky a preto som sa rozhodol do dosky vyvŕtať o niečo väčšie diery. Vŕtanie dopadlo úspešne a mohol som pripevniť dosku k spodnej časti obalu.&lt;br /&gt;
# Nakoniec je potrebné poskladať obal. Jednotlivé diely boli mierne voľné preto som ich musel zlepiť dokopy sekundovým lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Vyrezaneplexi.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Výsledok ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Výsledný produkt je Raspberry Pi, v obale z plexiskla vyrezanom laserom, na ktorom je možné hrať staršie hry a sledovať filmy či seriály. Pôvodne som plánoval trochu iný výsledok, ale z technických príčin som sa rozhodol pozmeniť riešenie projektu, za čo som veľmi rád a tento výsledok sa mi páči viac ako pôvodný nápad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal1.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal2.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal3.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Recalfinal4.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Použité zdroje:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* [https://www.recalbox.com/ Recalbox OS]&lt;br /&gt;
* [https://www.balena.io/etcher/ Software pre napálenie OS na SD kartu]&lt;br /&gt;
* [https://www.thingiverse.com/thing:2302391 Obal pre Raspberry Pi]&lt;br /&gt;
&lt;br /&gt;
[[Category:DTV2019]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Recalfinal4.jpg&amp;diff=11094</id>
		<title>Súbor:Recalfinal4.jpg</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Recalfinal4.jpg&amp;diff=11094"/>
		<updated>2019-06-10T19:18:03Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Recalfinal3.jpg&amp;diff=11093</id>
		<title>Súbor:Recalfinal3.jpg</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Recalfinal3.jpg&amp;diff=11093"/>
		<updated>2019-06-10T19:17:07Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Recalfinal2.jpg&amp;diff=11092</id>
		<title>Súbor:Recalfinal2.jpg</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Recalfinal2.jpg&amp;diff=11092"/>
		<updated>2019-06-10T19:15:10Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Recalfinal1.jpg&amp;diff=11091</id>
		<title>Súbor:Recalfinal1.jpg</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Recalfinal1.jpg&amp;diff=11091"/>
		<updated>2019-06-10T19:14:41Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Raspberryfail.jpg&amp;diff=11090</id>
		<title>Súbor:Raspberryfail.jpg</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Raspberryfail.jpg&amp;diff=11090"/>
		<updated>2019-06-10T19:06:38Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11089</id>
		<title>Retrokonzola Mk2019</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=Retrokonzola_Mk2019&amp;diff=11089"/>
		<updated>2019-06-10T19:01:08Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: /* Analýza */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|Autor:      || &#039;&#039;&#039;Kristián Lehocký&#039;&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|Študijný odbor:   || Aplikovaná informatika || 3. Bc.  (&#039;&#039;&#039;2019&#039;&#039;&#039;) &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Opis projektu ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ako projekt som si zvolil vytvoriť retro hernú konzolu za pomoci Raspberry Pi a operačného systému recalbox. Súčasť projektu je aj vyrobenie obalu pre Rasperry Pi. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Na internete som objavil operačný systém zvaný recalbox, ktorý z Raspberry Pi spraví retro hernú konzolu obsahujúcu emulátory starých konzol. Veľmi rád sa hrám na mojej Playstation 1 a z dôvodu, že sa začína kaziť mi napadlo vytvoriť si ju ako záverečný projekt. Okrem hrania hier môže tento operačný systém slúžiť aj ako multimediálne centrum. Cez implementovanú aplikáciu Kodi je teda možné sledovať aj filmy či seriály. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Použité komponenty a technológie:&lt;br /&gt;
* Raspberry Pi 3 Model B+&lt;br /&gt;
* Micro SD karta 32GB (potrebné: &amp;gt;=16GB)&lt;br /&gt;
* Napájací zdroj 2.5A (potrebné: &amp;gt;=2.5A) &lt;br /&gt;
* Herný ovládač (USB, PS3, XBOX360)&lt;br /&gt;
* USB klávesnica&lt;br /&gt;
* HDMI kábel&lt;br /&gt;
* Plexisklo&lt;br /&gt;
* Laserový vyrezávač&lt;br /&gt;
* Skrutky, podložky a matky&lt;br /&gt;
&lt;br /&gt;
[[Súbor:Raspbox.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Analýza ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Najskôr je potrebné zabezpečiť platformu a vybrať operačný systém, na ktorej konzola pobeží, najvhodnejšou voľbou je Raspberry Pi 3 Model B+ (momentálne posledný vydaný model), pretože má najlepší hardware oproti ostatným Raspberry Pi a ako operačný systém je možné použiť napríklad recalbox. Napájací zdroj musí mať aspoň 2.5A, ideálne zvoliť oficiálny napájací adaptér Raspberry Pi. Micro SD karta musí mať kapacitu viac ako 16GB. Herný ovládač môže byť klasický USB, ďalej ovládač z Playstation 3 alebo z XBOX360. USB klávesnica môže byť užitočná na prvotnú konfiguráciu, ale dá sa použiť aj ako alternatíva ovládača. HDMI kábel na pripojenie Raspberry Pi k TV/monitoru. Následne treba navrhnúť obal pre Raspberry Pi a dať ho vyrezať. Vyrezaný obal poskladať a zlepiť lepidlom.&lt;br /&gt;
&lt;br /&gt;
== Popis riešenia ==&lt;br /&gt;
&lt;br /&gt;
TODO&lt;br /&gt;
# Po stiahnutí OS recalbox som ho cez aplikáciu balenaEtcher napálil na micro SD kartu.&lt;br /&gt;
# Micro SD kartu som zasunul do Raspberry Pi, pripojil HDMI kábel od monitoru, napájací kábel, USB klávesnicu a USB herný ovládač. Po nabehnutí operačného systému bolo treba nakonfigurovať herný ovládač, čo som uskutočnil pomocou USB klávesnice. &lt;br /&gt;
# Konzola je pripravená a je na nej možné hrať predinštalované hry. Ak ale chceme hrať vlastné hry, je potrebné ich stiahnuť a následne prekopírovať na micro SD kartu, čo sa robí cez internetovú sieť. Najskôr som mal problémy s pripojením na internet, napokon som zistil, že je to spôsobované wifi extenderom, čo mám v izbe a po pripojení na wifi router sa problém odstránil.&lt;br /&gt;
# Na internete som našiel vhodný návrh obalu, ktorý je možné vyrezať na laserovom vyrezávači, tak som ho použil ako predlohu, upravil si ho podľa vlastných požiadaviek a nechal vyrezať. Na úpravu obalu som použil software Inkscape.&lt;br /&gt;
# Prvý pokus zložiť obal nedopadol podľa predstáv a jeden z dielov som omylom zlomil, preto som si musel vyrezať náhradný diel, pre istotu niekoľko. &lt;br /&gt;
# Ďalší problém nastal, keď som sa pokúšal pripevniť dosku k spodnej časti obalu, skrutky boli o kúsok väčšie ako diery v doske. Nechcel som čakať na nové skrutky a preto som sa rozhodol do dosky vyvŕtať o niečo väčšie diery. Vŕtanie dopadlo úspešne a mohol som pripevniť dosku k spodnej časti obalu.&lt;br /&gt;
# Nakoniec je potrebné poskladať obal. Jednotlivé diely boli mierne voľné preto som ich musel zlepiť dokopy sekundovým lepidlom.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Výsledok ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Výsledný produkt je Raspberry Pi, v obale z plexiskla vyrezanom laserom, na ktorom je možné hrať staršie hry a sledovať filmy či seriály. Pôvodne som plánoval trochu iný výsledok, ale z technických príčin som sa rozhodol pozmeniť riešenie projektu, za čo som veľmi rád a tento výsledok sa mi páči viac ako pôvodný nápad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Použité zdroje:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
* [https://www.recalbox.com/ Recalbox OS]&lt;br /&gt;
* [https://www.balena.io/etcher/ Software pre napálenie OS na SD kartu]&lt;br /&gt;
* [https://www.thingiverse.com/thing:2302391 Obal pre Raspberry Pi]&lt;br /&gt;
&lt;br /&gt;
[[Category:DTV2019]]&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
	<entry>
		<id>https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Vyrezaneplexi.jpg&amp;diff=11088</id>
		<title>Súbor:Vyrezaneplexi.jpg</title>
		<link rel="alternate" type="text/html" href="https://senzor.robotika.sk/sensorwiki/index.php?title=S%C3%BAbor:Vyrezaneplexi.jpg&amp;diff=11088"/>
		<updated>2019-06-10T18:58:34Z</updated>

		<summary type="html">&lt;p&gt;StudentMISA: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>StudentMISA</name></author>
	</entry>
</feed>