Stránka 15 z 26
Re: Pavouk Hiwonder
Napsal: 31 kvě 2024, 11:45
od luger
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);
Re: Pavouk Hiwonder
Napsal: 31 kvě 2024, 15:04
od kiRRow
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
}
//***************************************************************************************************************************************
//*****
Re: Pavouk Hiwonder
Napsal: 31 kvě 2024, 15:13
od kiRRow
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 ...
Re: Pavouk Hiwonder
Napsal: 31 kvě 2024, 15:19
od kiRRow
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ě
Re: Pavouk Hiwonder
Napsal: 31 kvě 2024, 16:34
od luger
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íží ?
Re: Pavouk Hiwonder
Napsal: 31 kvě 2024, 18:22
od kiRRow
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
Re: Pavouk Hiwonder
Napsal: 31 kvě 2024, 18:48
od luger
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.
Re: Pavouk Hiwonder
Napsal: 03 čer 2024, 17:51
od luger
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.
Re: Pavouk Hiwonder
Napsal: 04 čer 2024, 10:43
od luger
Čá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
Re: Pavouk Hiwonder
Napsal: 04 čer 2024, 11:35
od Diego
To na me vybehnout tak se pos...
