<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sk">
	<id>https://3dliga.robotika.sk/wiki/index.php?action=history&amp;feed=atom&amp;title=Gyroscope_structure</id>
	<title>Gyroscope structure - História úprav</title>
	<link rel="self" type="application/atom+xml" href="https://3dliga.robotika.sk/wiki/index.php?action=history&amp;feed=atom&amp;title=Gyroscope_structure"/>
	<link rel="alternate" type="text/html" href="https://3dliga.robotika.sk/wiki/index.php?title=Gyroscope_structure&amp;action=history"/>
	<updated>2026-08-05T01:50:08Z</updated>
	<subtitle>História úprav pre túto stránku na wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://3dliga.robotika.sk/wiki/index.php?title=Gyroscope_structure&amp;diff=140&amp;oldid=prev</id>
		<title>Sebastian: Vytvorená stránka „&lt;syntaxhighlight lang=&quot;C&quot;&gt; #include &lt;Wire.h&gt; #include &lt;Adafruit_Sensor.h&gt; #include &lt;Adafruit_BNO055.h&gt; #include &lt;Servo.h&gt;  Adafruit_BNO055 bno; bool active = false;  #define SERVO_LAVY  12 #define SERVO_PRAVY 13  Servo servoLavy; Servo servoPravy;  void setup() {   Serial.begin(115200);   Wire.setSDA(4);   Wire.setSCL(5);   Wire.begin();   delay(1000);    int adresa = 0;   for (byte addr = 1; addr &lt; 127; addr++) {     Wire.beginTransmission(addr);     if (Wire.endT…“</title>
		<link rel="alternate" type="text/html" href="https://3dliga.robotika.sk/wiki/index.php?title=Gyroscope_structure&amp;diff=140&amp;oldid=prev"/>
		<updated>2026-05-03T15:56:21Z</updated>

		<summary type="html">&lt;p&gt;Vytvorená stránka „&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt; #include &amp;lt;Wire.h&amp;gt; #include &amp;lt;Adafruit_Sensor.h&amp;gt; #include &amp;lt;Adafruit_BNO055.h&amp;gt; #include &amp;lt;Servo.h&amp;gt;  Adafruit_BNO055 bno; bool active = false;  #define SERVO_LAVY  12 #define SERVO_PRAVY 13  Servo servoLavy; Servo servoPravy;  void setup() {   Serial.begin(115200);   Wire.setSDA(4);   Wire.setSCL(5);   Wire.begin();   delay(1000);    int adresa = 0;   for (byte addr = 1; addr &amp;lt; 127; addr++) {     Wire.beginTransmission(addr);     if (Wire.endT…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_Sensor.h&amp;gt;&lt;br /&gt;
#include &amp;lt;Adafruit_BNO055.h&amp;gt;&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adafruit_BNO055 bno;&lt;br /&gt;
bool active = false;&lt;br /&gt;
&lt;br /&gt;
#define SERVO_LAVY  12&lt;br /&gt;
#define SERVO_PRAVY 13&lt;br /&gt;
&lt;br /&gt;
Servo servoLavy;&lt;br /&gt;
Servo servoPravy;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
  Wire.setSDA(4);&lt;br /&gt;
  Wire.setSCL(5);&lt;br /&gt;
  Wire.begin();&lt;br /&gt;
  delay(1000);&lt;br /&gt;
&lt;br /&gt;
  int adresa = 0;&lt;br /&gt;
  for (byte addr = 1; addr &amp;lt; 127; addr++) {&lt;br /&gt;
    Wire.beginTransmission(addr);&lt;br /&gt;
    if (Wire.endTransmission() == 0) adresa = addr;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if (adresa &amp;gt; 0) {&lt;br /&gt;
    bno = Adafruit_BNO055(55, adresa, &amp;amp;Wire);&lt;br /&gt;
    if (bno.begin()) {&lt;br /&gt;
      active = true;&lt;br /&gt;
      Serial.println(&amp;quot;BNO055 OK – čakám na kalibráciu...&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  servoLavy.attach(SERVO_LAVY, 500, 2500);&lt;br /&gt;
  servoPravy.attach(SERVO_PRAVY, 500, 2500);&lt;br /&gt;
  stoj();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
float getAngleZ() {&lt;br /&gt;
  imu::Vector&amp;lt;3&amp;gt; euler = bno.getVector(Adafruit_BNO055::VECTOR_EULER);&lt;br /&gt;
  return euler.z();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
bool isCalibrated() {&lt;br /&gt;
  uint8_t system, gyro, accel, mag;&lt;br /&gt;
  bno.getCalibration(&amp;amp;system, &amp;amp;gyro, &amp;amp;accel, &amp;amp;mag);&lt;br /&gt;
  return system &amp;gt;= 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void stoj()   { servoLavy.write(90); servoPravy.write(90); }&lt;br /&gt;
void vpred()  { /* --- doplňte --- */ }&lt;br /&gt;
void vlavo()  { /* --- doplňte --- */ }&lt;br /&gt;
void vpravo() { /* --- doplňte --- */ }&lt;br /&gt;
&lt;br /&gt;
// Otočí autíčko o požadovaný uhol (kladný = doprava, záporný = doľava)&lt;br /&gt;
void otoc(float cielUhol) {&lt;br /&gt;
  float startUhol = getAngleZ();&lt;br /&gt;
  float otocene = 0;&lt;br /&gt;
&lt;br /&gt;
  while (abs(otocene) &amp;lt; abs(cielUhol)) {&lt;br /&gt;
    float aktualny = getAngleZ();&lt;br /&gt;
    otocene = aktualny - startUhol;&lt;br /&gt;
&lt;br /&gt;
    // --- doplňte: otáčajte doprava alebo doľava podľa znamienka cielUhol ---&lt;br /&gt;
&lt;br /&gt;
    delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  stoj();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  if (!active || !isCalibrated()) {&lt;br /&gt;
    Serial.println(&amp;quot;Kalibrujem...&amp;quot;);&lt;br /&gt;
    delay(100);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  float uhol = getAngleZ();&lt;br /&gt;
&lt;br /&gt;
  // Korekcia smeru – ak sa autíčko odchýli od 0°, skoriguj&lt;br /&gt;
  if (uhol &amp;gt; 2) {&lt;br /&gt;
    // --- doplňte: odchýlka doprava – skoriguj doľava ---&lt;br /&gt;
  } else if (uhol &amp;lt; -2) {&lt;br /&gt;
    // --- doplňte: odchýlka doľava – skoriguj doprava ---&lt;br /&gt;
  } else {&lt;br /&gt;
    vpred();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Príkazy cez sériový monitor: &amp;#039;R&amp;#039; = otoc doprava, &amp;#039;L&amp;#039; = otoc doľava&lt;br /&gt;
  if (Serial.available()) {&lt;br /&gt;
    char c = Serial.read();&lt;br /&gt;
    if (c == &amp;#039;R&amp;#039;) otoc(90);&lt;br /&gt;
    if (c == &amp;#039;L&amp;#039;) otoc(-90);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(50);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sebastian</name></author>
	</entry>
</feed>