Stránka 1 z 1

Problémy s ultrazvukovými senzory HC SR-04

Napsal: 11 led 2014, 10:16
od matoushybl
Zdravím,
mám na robotovi namontováno 5 ultrazvuků HC SR-04 a mám problém, že ultrazvuky chvíli ukazují přesnou hodnotu, poté na chvíli ukážou hodnotu o dost nižší a pak zase chvíli ukazují přesnou hodnotu. Ke zjišťování hodnot používám na arduinu knihovnu: http://blog.iteadstudio.com/arduino-lib ... e-hc-sr04/. Mohli byste mi prosím poradit čím by to mohlo být způsobeno?

Díky

Kód: Vybrat vše

void sendSensorData(bool pi) {
	byte toSend[18];
	int temp;
	toSend[0] = 13; //start byte
	temp = left.Ranging(CM);
	toSend[1] = getFirstByte(temp);
	toSend[2] = getSecondByte(temp);
	temp = right.Ranging(CM);
	toSend[3] = getFirstByte(temp);
	toSend[4] = getSecondByte(temp);
	temp = front.Ranging(CM);
	toSend[5] = getFirstByte(temp);
	toSend[6] = getSecondByte(temp);
	temp = back.Ranging(CM);
	toSend[7] = getFirstByte(temp);
	toSend[8] = getSecondByte(temp);
	toSend[9] = leftEncoderData[0];
	toSend[10] = leftEncoderData[1];
	toSend[11] = rightEncoderData[0];
	toSend[12] = rightEncoderData[1];
	temp = radar.getDistance();
	toSend[13] = getFirstByte(temp);
	toSend[14] = getSecondByte(temp);
	temp = roundf(getRobotHeading(compass, RADIANS)*10);
	toSend[15] = getFirstByte(temp);
	toSend[16] = getSecondByte(temp);
	toSend[17] = 10; //stop byte
	if (pi) {
		Serial.write(toSend, 18);
	} else {
		Bluetooth.write(toSend, 18);
	}
}
byte getFirstByte(int data) {
	return data & 0xFF;
}

byte getSecondByte(int data) {
	return data & 0xFF00;
}

Re: Problémy s ultrazvukovými senzory HC SR-04

Napsal: 11 led 2014, 12:05
od petr-kubac
Jednak celá série SR je dosti uboze navržená - srovnává se amplituda zesíleného odrazu s napětím na vybíjejícím se kondenzátoru - které sice obě klesají, ale každá dle jiné rovnice.

Potom mezi stupni zesilovače nejsou kondenzátory - takže některé kusy, které mají operační zesilovače s větším stejnosměrným offsetem s tím mají problémy.

No ale hlavně - žádné čidlo nefunguje na 100% - stačí nerovnost na podlaze - třeba spára mezi parketami - která funguje jako koutový odražeč a signál od ní je i při nepatrné velikosti mnohem silnější než od toho co robotův páníček považuje za opravdovou překážku.

Úkolem vašeho softwaru pak je - se s tím vyrovnat. Nejjednodušeji tak, že robot zaznamenává kolik ujel od minulého měření - a pokud ujel třeba 10 cm (kterýmkoliv směrem) - pak je nemožné aby (kterýkoliv) sonar dával větší rozdíl ve vzdálenosti než oněch 10 cm. Proto ty, které dávají takový falešný signál se podle toho dají poznat a jejich měření se dá z dalšího rozhodování vyloučit.

Re: Problémy s ultrazvukovými senzory HC SR-04

Napsal: 11 led 2014, 14:59
od matoushybl
Aha, budu se muset na to softwarové filtrování trochu zaměřit, problém je ale podle mě i někde jinde - děje se to u dvou senzorů zároveň. Sensory jsem testoval tak, že jsem robota uzavřel do kartonové krabice a výsledky zobrazoval na mobilu - dva sensory prostě z nějakého neznámého důvodu poklesly ze stabilní hodnoty najednou. Jsou přímo připojené na Arduino a napájeny z akumulátoru, takže by teoreticky k žádné chybě v zapojení dojít nemělo.

Existuje nějaká levná náhrada za ty SR senzory? Našel jsem jen US-020, ale bojím se, že to rušení tam bude stejně.

Re: Problémy s ultrazvukovými senzory HC SR-04

Napsal: 11 led 2014, 18:35
od Dex
Nedělejte si iluze, že dražší senzory budou 100% spolehlivé. Jsou lépe udělané a dělají i méně chyb ale spoléhat se jen na ně není dobrý nápad.

Re: Problémy s ultrazvukovými senzory HC SR-04

Napsal: 11 led 2014, 19:07
od matoushybl
S tím počítám, ale potřebuji nějak vyřešit to, že když je robot v absolutním klidu, tak že se dějí takové věci. Bohužel mě vůbec žádné řešení nenapadá.

Re: Problémy s ultrazvukovými senzory HC SR-04

Napsal: 11 led 2014, 19:11
od jrt
... děje se to u dvou senzorů zároveň
Ty senzory pracují společně? Pokud ano, neovlivňují se navzájem?
Zkuste nechat běžet každý samostatně, zda se závada projeví.

Re: Problémy s ultrazvukovými senzory HC SR-04

Napsal: 11 led 2014, 19:41
od matoushybl
Zkusil jsem upravit program tak aby měřil jen jeden a stále se to děje. Takto vypadá výstup: http://www.youtube.com/watch?v=GEKZcfMRzNE robot byl nasměrován prosti dřevěné desce

Re: Problémy s ultrazvukovými senzory HC SR-04

Napsal: 12 led 2014, 22:09
od matoushybl
Zdravím tak nakonec se ukázalo že problém byl v napájení a velkém odběru serv. Díky všem za pomoc.

Sent from my Galaxy Nexus using Tapatalk

Re: Problémy s ultrazvukovými senzory HC SR-04

Napsal: 12 led 2014, 22:59
od jrt
Díky za zprávu!

Re: Problémy s ultrazvukovými senzory HC SR-04

Napsal: 04 srp 2015, 10:07
od JuraS.
Kvůli jednomu projektu jsem se díval jaké se prodávají čidla na měření vzdálenosti díky ultrazvuku. Je jich několik a některé se používají i v mašinách kde je to nutné aby měřili správně. Tak jsou mnohokráte dražší než HC SR-04. Například v tom, že se dají kalibrovat a pak podle toho spočítají odchylku danou třeba vlhkostí a teplotou vzduchu.