Pavouk Hiwonder
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.
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.
Re: Pavouk Hiwonder
Paráda
Re: Pavouk Hiwonder
Nemáte někdo zkušenosti s Lidarem 360° ?
Re: Pavouk Hiwonder
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
https://www.youtube.com/watch?v=FZGKKPdk5Zs&t=7s
Re: Pavouk Hiwonder
Ke kontrole náklonu pavoučka používám MPU 6050 a příslušnou knihovnu "MPU6050".
Prográmek:
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 ?
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);
Funkce knihovny ?
Re: Pavouk Hiwonder
knihovnu neznám, ale square je druhá mocnina
Re: Pavouk Hiwonder
Kód: Vybrat vše
angle_x = atan2(ax, sqrt(square(ay) + square(az)))/(pi/180);
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
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
Knihovna má ještě funkci accelgyro.getMotion (&ax, &ay, &az) takže vyzkouším
Re: Pavouk Hiwonder
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
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é.
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.
Kód: Vybrat vše
char Text[21]; // max. 20 znaků
Kód: Vybrat vše
Text = "Pohyb vpred";
...
Text = "Otocka vlevo";
Kód: Vybrat vše
display.print(Text);
Re: Pavouk Hiwonder
díky Pablo, ale proč to tak "samo o sobě " nejde ? Mně se displej inicializuje neustále.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti