<?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=Lidar_structure</id>
	<title>Lidar 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=Lidar_structure"/>
	<link rel="alternate" type="text/html" href="https://3dliga.robotika.sk/wiki/index.php?title=Lidar_structure&amp;action=history"/>
	<updated>2026-08-05T03:00:26Z</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=Lidar_structure&amp;diff=143&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; #include &lt;VL53L0X.h&gt;  Adafruit_BNO055 bno; VL53L0X distSensor; bool active = false;  #define SERVO_LAVY   12 #define SERVO_PRAVY  13 #define SERVO_HLAVA  11  // 180° servo pre lidar skenovanie  Servo servoLavy; Servo servoPravy; Servo servoHlava;  // Výsledky skenovania int scanAngles[]    = {0, 30, 60, 90, 120, 150, 180}; int scanDistances[]…“</title>
		<link rel="alternate" type="text/html" href="https://3dliga.robotika.sk/wiki/index.php?title=Lidar_structure&amp;diff=143&amp;oldid=prev"/>
		<updated>2026-05-03T16:25:04Z</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; #include &amp;lt;VL53L0X.h&amp;gt;  Adafruit_BNO055 bno; VL53L0X distSensor; bool active = false;  #define SERVO_LAVY   12 #define SERVO_PRAVY  13 #define SERVO_HLAVA  11  // 180° servo pre lidar skenovanie  Servo servoLavy; Servo servoPravy; Servo servoHlava;  // Výsledky skenovania int scanAngles[]    = {0, 30, 60, 90, 120, 150, 180}; int scanDistances[]…“&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;
#include &amp;lt;VL53L0X.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Adafruit_BNO055 bno;&lt;br /&gt;
VL53L0X distSensor;&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;
#define SERVO_HLAVA  11  // 180° servo pre lidar skenovanie&lt;br /&gt;
&lt;br /&gt;
Servo servoLavy;&lt;br /&gt;
Servo servoPravy;&lt;br /&gt;
Servo servoHlava;&lt;br /&gt;
&lt;br /&gt;
// Výsledky skenovania&lt;br /&gt;
int scanAngles[]    = {0, 30, 60, 90, 120, 150, 180};&lt;br /&gt;
int scanDistances[] = {0,  0,  0,  0,   0,   0,   0};&lt;br /&gt;
int scanCount = 7;&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;
  // Inicializácia BNO055&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;
  if (adresa &amp;gt; 0) {&lt;br /&gt;
    bno = Adafruit_BNO055(55, adresa, &amp;amp;Wire);&lt;br /&gt;
    if (bno.begin()) active = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Inicializácia VL53L0X&lt;br /&gt;
  if (!distSensor.init()) {&lt;br /&gt;
    Serial.println(&amp;quot;VL53L0X nenájdený!&amp;quot;);&lt;br /&gt;
    while (1);&lt;br /&gt;
  }&lt;br /&gt;
  distSensor.setTimeout(500);&lt;br /&gt;
  distSensor.startContinuous();&lt;br /&gt;
&lt;br /&gt;
  servoLavy.attach(SERVO_LAVY, 500, 2500);&lt;br /&gt;
  servoPravy.attach(SERVO_PRAVY, 500, 2500);&lt;br /&gt;
  servoHlava.attach(SERVO_HLAVA, 500, 2500);&lt;br /&gt;
  stoj();&lt;br /&gt;
  servoHlava.write(90);&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()  { /* --- skopírujte z predchádzajúcej úlohy --- */ }&lt;br /&gt;
void vlavo()  { /* --- skopírujte z predchádzajúcej úlohy --- */ }&lt;br /&gt;
void vpravo() { /* --- skopírujte z predchádzajúcej úlohy --- */ }&lt;br /&gt;
void otoc(float cielUhol) { /* --- skopírujte z predchádzajúcej úlohy --- */ }&lt;br /&gt;
&lt;br /&gt;
// Preskúma terén – otočí hlavu z 0° na 180° a zmeria vzdialenosť v každom uhle&lt;br /&gt;
void scan() {&lt;br /&gt;
  Serial.println(&amp;quot;Skenujem...&amp;quot;);&lt;br /&gt;
  for (int i = 0; i &amp;lt; scanCount; i++) {&lt;br /&gt;
    servoHlava.write(scanAngles[i]);&lt;br /&gt;
    delay(400);  // počkáme kým sa servo ustáli&lt;br /&gt;
    scanDistances[i] = distSensor.readRangeContinuousMillimeters();&lt;br /&gt;
    Serial.print(&amp;quot;Uhol: &amp;quot;); Serial.print(scanAngles[i]);&lt;br /&gt;
    Serial.print(&amp;quot;°  Vzdialenosť: &amp;quot;); Serial.print(scanDistances[i]);&lt;br /&gt;
    Serial.println(&amp;quot; mm&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  servoHlava.write(90);  // vrátime hlavu rovno&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Vráti uhol kde je najbližší objekt&lt;br /&gt;
int nearestAngle() {&lt;br /&gt;
  // --- doplňte: prejdite pole scanDistances[] a nájdite index s najmenšou hodnotou ---&lt;br /&gt;
  // --- vráťte scanAngles[index] ---&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;
  // 1. Preskúmaj terén&lt;br /&gt;
  scan();&lt;br /&gt;
&lt;br /&gt;
  // 2. Zisti smer k najbližšiemu objektu&lt;br /&gt;
  int cielUhol = nearestAngle();&lt;br /&gt;
  Serial.print(&amp;quot;Najbližší objekt na uhle: &amp;quot;);&lt;br /&gt;
  Serial.println(cielUhol);&lt;br /&gt;
&lt;br /&gt;
  // 3. Otočte sa k nemu&lt;br /&gt;
  // Uhol 90° = rovno, 0° = vľavo, 180° = vpravo&lt;br /&gt;
  if (cielUhol &amp;lt; 80) {&lt;br /&gt;
    // --- doplňte: otočte sa doľava o príslušný uhol ---&lt;br /&gt;
  } else if (cielUhol &amp;gt; 100) {&lt;br /&gt;
    // --- doplňte: otočte sa doprava o príslušný uhol ---&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 4. Choďte k nemu (použite logiku poslušného psíčka)&lt;br /&gt;
  // --- doplňte ---&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>