Stránka 19 z 26
Re: Pavouk Hiwonder
Napsal: 09 zář 2024, 16:07
od gilhad
Paráda

Re: Pavouk Hiwonder
Napsal: 13 říj 2024, 16:11
od luger
Nemáte někdo zkušenosti s Lidarem 360° ?
Re: Pavouk Hiwonder
Napsal: 17 říj 2024, 17:16
od luger
Test pavoučka v domácím terénu - viz odkaz na video. Jak je vidět, občas si není jistý v rozhodování a tak se pohybuje trochu trhavě. Myslím že je to způsobené prodlevama (timer-millis-step) mezi kontrolama podmínek. Zatím nevím
https://www.youtube.com/watch?v=FZGKKPdk5Zs&t=7s
Re: Pavouk Hiwonder
Napsal: 16 lis 2024, 15:20
od luger
Ke kontrole náklonu pavoučka používám MPU 6050 a příslušnou knihovnu "MPU6050".
Prográmek:
Kód: Vybrat vše
accelgyro.getAcceleration(&ax, &ay, &az); // zjistí všechny hodnoty z akcelerometru
// výpočet sklonu a náklonu ve [°]
angle_x = atan2(ax, sqrt(square(ay) + square(az)))/(pi/180);
angle_y = atan2(ay, sqrt(square(ax) + square(az)))/(pi/180);
angle_z = atan2(az, sqrt(square(ax) + square(ay)))/(pi/180);
Mám dojem že to občas změří nějak špatně. Může mi prosím někdo vysvětlit jak to počítá ? Proč k výpočtu x a y potřebuje z ? Co je to "square" ?
Funkce knihovny ?
Re: Pavouk Hiwonder
Napsal: 16 lis 2024, 15:27
od kiRRow
knihovnu neznám, ale square je druhá mocnina
Re: Pavouk Hiwonder
Napsal: 16 lis 2024, 15:53
od Pablo74
Kód: Vybrat vše
angle_x = atan2(ax, sqrt(square(ay) + square(az)))/(pi/180);
atan2 - to je arcustangens, ze skalární hodnoty se vypočítá úhel (opačná funkce než tangens)
sqrt - je druhá odmocnina
square - je druhá mocnina
A evidentně to počítá délku přepony v trojúhelníku (přes Pythagorovu větu, ovšem zapsanou trochu - pro laika - neintuitivně). Myslím tím ten druhý parametr ve funkci atan2().
Jinak to opravdu počítá úhel natočení.
Re: Pavouk Hiwonder
Napsal: 16 lis 2024, 16:11
od luger
Díky, ty mat. funkce znám, ale jde mi o toto - při velkém náklonu v osách x a y se má pavouček zastavit, když se narovná tak se zase rozjede. Když ho držím v ruce a on si mává nožkama ve vzduchu tak reaguje perfektně, ale jakmile běhá po zemi, dopředu, dozadu, točí se na místě atd. tak občas vyhodnotí že je moc nakloněný, ale přitom není ! Je pěkně vodorovně. Proto si myslím že reaguje i na to otáčení v oze z a nebo reaguje na zrychlení a to nechci.
Knihovna má ještě funkci accelgyro.getMotion (&ax, &ay, &az) takže vyzkouším
Re: Pavouk Hiwonder
Napsal: 20 lis 2024, 14:42
od luger
Pavouček provádí mnoho příkazů a kontroluje x senzorů. Pro jednotlivé základní úkony (lehni, běž, čekej na PIR, náklon atd. ) jsem si přiřadil zvukové signály - 1x pípni - provedl tuto operaci, 2x pípni - provedl tuto operaci atd.... chtěl bych tyto operace zobrazit na oled displej. Např. standardní režim že běží - zobrazí se "run", zastaví se při náklonu - zobrazí se "naklon" atd.... Jen nevím jak přiřadit jedné string proměnné různé "slova" pro zobrazení na oled displej. Nějaký návrh ?
Re: Pavouk Hiwonder
Napsal: 20 lis 2024, 15:01
od Pablo74
Nadeklaruješ si proměnnou pro práci s textem:
Do toho kódu, kde si pípneš, si normálně přidáš příkaz pro přiřazení textové hodnoty do proměnné.
Kód: Vybrat vše
Text = "Pohyb vpred";
...
Text = "Otocka vlevo";
Podle typu displeje a knihovny si vypíšeš obsah proměnné, např. příkazem
Ovšem, takhle "samo o sobě" to nejde, displej se musí inicializovat. Jo a nepoužívej diakritiku, vyhneš se tím zbytečným problémům.
Re: Pavouk Hiwonder
Napsal: 20 lis 2024, 15:06
od luger
díky Pablo, ale proč to tak "samo o sobě " nejde ? Mně se displej inicializuje neustále.