Pavouk Hiwonder

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Odpovědět
luger
Příspěvky: 197
Registrován: 30 dub 2023, 11:06

Re: Pavouk Hiwonder

Příspěvek od luger » 31 kvě 2024, 11:45

Nedaří se mi odladit dvě podmínky za sebou a to mám prostudovat knihovnu ? Jsem odkojený Basicem (před 35 lety), musíte mě brát s velkou rezervou když něco nechápu.
Otázka je jednoduchá - proč vyhodnotí podmínku vzdálenosti a nevyhodnotí podmínku náklonu ???

Kód: Vybrat vše

      zmerit_vzdalenost();                //změřit vzdálenost vpředu a uložit do  "vzdalenost" - kmitání serva
 
        if (test_naklonu()) {                   //kontrola náklonu pomocí gyroskopu         vráceno true, takže je to naklopený
        PIR ();                                     //přejdi na PIR
       } 
           else {
                                           //vráceno false, takže je pavouk rovně
       }

        
      if (!Controller.isRunning()) {            //Počkejte, dokud nebude ukončena akční skupina pohybu
        
        if (vzdalenost > 160 ){ 
          Controller.runActionGroup(TEREN_POKUS, 0); 

Uživatelský avatar
kiRRow
Příspěvky: 1240
Registrován: 07 kvě 2019, 07:03
Bydliště: Opava

Re: Pavouk Hiwonder

Příspěvek od kiRRow » 31 kvě 2024, 15:04

On ji vyhodnotí, ale asi je výsledek false a tak to pošle do části podmínky, kde se nic neděje. Pokud něco ladíš, tak jak psal gilhad - ledky jsou fajn, nebo výpis do seriové linky

Kód: Vybrat vše

boolean test_naklonu () {          // vyhodnocení náklonu z gyroskopu - při náklonu větším jak 20° v osách X nebo Y  // funkce bude vracet boolean

     gyroskop (); 
     if ((angle_x > 20 && angle_x < 235 ) or (angle_y > 20 && angle_y < 235 )){     // velký náklon = 1
       Serial.println("naklon");
       return true;                   // je to nakloněné
     } else {
       Serial.println("rovne");
       return false;                  // není to naklonene 
     }                                // pohyb vodorovně - naklon = 0
}
 

//***************************************************************************************************************************************
//*****

Uživatelský avatar
kiRRow
Příspěvky: 1240
Registrován: 07 kvě 2019, 07:03
Bydliště: Opava

Re: Pavouk Hiwonder

Příspěvek od kiRRow » 31 kvě 2024, 15:13

Já taky začínal na BASICu, hrál jsem si pak s JavaScriptem, PHP, Delphi a C++ ... nějaké rozdíly tam jsou, ale základ je pořád stejný ... for je všude for a while všude while ... pokud se rozhoduji mezi buď a nebo, používám if, pokud vybírám jeden případ z 10ti používám switch/case, pokud z čísla 0-1024 potřebuji udělat 3situace používám if, elseif, else ...

Uživatelský avatar
kiRRow
Příspěvky: 1240
Registrován: 07 kvě 2019, 07:03
Bydliště: Opava

Re: Pavouk Hiwonder

Příspěvek od kiRRow » 31 kvě 2024, 15:19

Kód: Vybrat vše

#include "LobotServoController.h"
jak vidím, tak ve složce s hlavním *.ino programem bude soubor LobotServoController.h a LobotServoController.cpp ... toto je knihovna a v ní pak hledej ty funkce jako runActionGroup a nebo isRunning atd ...

edit:
když je to include s uvozovkama, načítá soubor z lokální složky, pokud je s ostrýma závorkama, tak se prohledává hlavní složka knihoven, já ji mám třeba v dokumentech/arduino/libraries
jde tak potom třeba mít jednu knihovnu original pro 5programů a jednu skopírovanou upravenou pro jeden program speciálně

luger
Příspěvky: 197
Registrován: 30 dub 2023, 11:06

Re: Pavouk Hiwonder

Příspěvek od luger » 31 kvě 2024, 16:34

Myslím že ledky nepotřebuju, vidím to na displeji. Změna sklonu je na řádku "foto:" změna 1/0
Video:
https://www.youtube.com/shorts/KmdAK8lYFtQ

Tak proč to přehlíží ?

Uživatelský avatar
kiRRow
Příspěvky: 1240
Registrován: 07 kvě 2019, 07:03
Bydliště: Opava

Re: Pavouk Hiwonder

Příspěvek od kiRRow » 31 kvě 2024, 18:22

No na to se právě vkládají ty různé Serial.print a připojujou se ledky, abys věděl přesně kam se v tom programu ten procesor dostane.

Kód: Vybrat vše

   void PIR () {

  if (!Controller.isRunning()) {                // Počkejte, dokud nebude ukončena akční skupina 
  Serial.println("pir by se melo spustit");
  Controller.runActionGroup(LEHNOUT, 1);      // lehnout
  delay(400);
  Controller.stopActionGroup();               // zastavit kroky
  sonarServo.write (90,230,true);             // zastavení serva
  digitalWrite (10,LOW);                      // zhasnutí LED blesku
  digitalWrite (11,LOW);                      // vynulování PIR
  delay (1000);
  
start1:
  if (( digitalRead(11) == HIGH) or (cekani >400 ) or (digitalRead(2) == HIGH)){     // čeká na PIR  a zvuk  nebo uplynutí určité doby
                                                                                     // v minutách ( x 60 )       
                                                                     
     pocitadlo = 0;                         // vynulování počtu kroků pavouka
     cekani = 0;                            // vynulování doby čekání v PIR - cca  ... min
  }
  
  else {
    OLED ();
    cekani = cekani + 1;                   // počítadlo čekání v PIR
    //delay (10);
    goto start1;  
  }
} else {
  Serial.println("pir se nespusti");
}
}
pátrej dále :)

edit :
na displeji vidíš hodnotu nějaké proměnné ... ale při tom výpisu do sériové linky, nebo zápisu do led vidíš přesně místo programu

luger
Příspěvky: 197
Registrován: 30 dub 2023, 11:06

Re: Pavouk Hiwonder

Příspěvek od luger » 31 kvě 2024, 18:48

Díky, budu testovat. Ještě mám jeden drobný problém. Nevím jestli můžu mít připojený serial přes usb a zaroveň zapnout pavoučka. Abych něco neodpálil. Přece jenom jede na vyšším napětí (11,7 V). Zatím si na to dávám sakra pozor.

luger
Příspěvky: 197
Registrován: 30 dub 2023, 11:06

Re: Pavouk Hiwonder

Příspěvek od luger » 03 čer 2024, 17:51

Náklon vyřešen, nefunguje to úplně spolehlivě ale prozatím to stačí.
Chystám ochlupení pavoučka. Na foto je vidět šablona a výstřižky z kožešiny. Teď řeším lepení na skelet.
IMG_20240603_173017_282.jpg

luger
Příspěvky: 197
Registrován: 30 dub 2023, 11:06

Re: Pavouk Hiwonder

Příspěvek od luger » 04 čer 2024, 10:43

Částečné olepení chlupama jedné nohy. První ochlupatím celou jednu nohu a uvidíme jak to bude vypadat a co to bude dělat za chodu. Pak stejně olepím všechny nožky a vrhnu se na skelet těla. To už bude těžší protože jsou tam senzory. Nějak si s tím poradím :D
IMG_20240604_103422_261.jpg
Přílohy
IMG_20240604_103450_774.jpg

Uživatelský avatar
Diego
Příspěvky: 186
Registrován: 23 črc 2017, 09:43
Kontaktovat uživatele:

Re: Pavouk Hiwonder

Příspěvek od Diego » 04 čer 2024, 11:35

To na me vybehnout tak se pos... :D
https://arze.cz - ARduino Zapojení Elektronika

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti