Vyhýbání se překážkám

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
bertbilek
Příspěvky: 8
Registrován: 22 zář 2017, 19:55
Reputation: 0

Vyhýbání se překážkám

Příspěvek od bertbilek » 22 zář 2017, 20:14

Dobrý večer,
snažím se o sestrojení robota, který se bude vyhýbat překážkám. Používám Arduino UNO a infračervené senzory překážek. Zatím jsem jen pracoval na tom, aby zastavil před překážkou ale Arduino se rozhoduje jen podle jedné ze čtyř IR diod. Prosím poraďte mi kde mám chybu :) (některé části jsou okopírované z návodu a když je změním tak to nefunguje a nevím jak je nahradit tak jsem je tam nechal :D) omluvte mou neznalost, jsem "začátečník" :D

Kód: Vybrat vše

int  ir [4] = {8, 9, 10, 11};
bool stav;
int i = 0;
int L = 7;
int R = 6;

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
pinMode(ir [i], INPUT);
pinMode(L, OUTPUT);
pinMode(R, OUTPUT);
 
}

void loop() {
  // put your main code here, to run repeatedly:
  stav = (digitalRead (ir[i]));

if (stav == 0000){
  digitalWrite(L, HIGH);
  digitalWrite(R, HIGH);
  delay(500);
  }else{digitalWrite(L, LOW);
  digitalWrite(R, LOW);
  delay(500);} 

  
}

K380
Příspěvky: 134
Registrován: 04 srp 2017, 12:43
Reputation: 0

Re: Vyhýbání se překážkám

Příspěvek od K380 » 23 zář 2017, 16:05

Zadej na internetu tuto adresu a najdeš tam více návodů na roboty kteří se vyhýbají překážkám i s patřičným programem a odkazy na knihovny. Doufám že ti to pomůže a nějaký projekt se ti bude hodit.

http://www.instructables.com/technology/arduino/

Uživatelský avatar
BlindP
Příspěvky: 39
Registrován: 23 črc 2017, 00:46
Reputation: 0

Re: Vyhýbání se překážkám

Příspěvek od BlindP » 23 zář 2017, 23:45

Ahoj,
chybí Ti tam cyklus for - https://arduino.cz/seriova-komunikace-a-cykly/ který do proměnné i dosazuje hodnoty:

Kód: Vybrat vše

void setup() {
	for(int i = 0; i < 4; i++) {
		pinMode(ir[i], INPUT);
		//tohle udela:
		//pinMode(ir[0], INPUT);
		//pinMode(ir[1], INPUT);
		//pinMode(ir[2], INPUT);
		//pinMode(ir[3], INPUT);
	}
	Serial.begin(9600);
	pinMode(L, OUTPUT);
	pinMode(R, OUTPUT);
}
Stejný cyklus for použiješ i v loop jen s jinými příkazy.
Doporučuji ještě nastudovat pole - https://arduino.cz/zakladni-struktury-jazyka-wiring/

K380
Příspěvky: 134
Registrován: 04 srp 2017, 12:43
Reputation: 0

Re: Vyhýbání se překážkám

Příspěvek od K380 » 24 zář 2017, 10:35

Ovládání robota aby se vyhýbal překážkám pomocí infra diod se používá většinou pro sledování čáry. Reaguje na malou vzdálenost. Je lepší použít ultrazvukový senzor. Můžeš použít 1 - 3, nebo jeden na servu a vzdálenost můžeš nastatvit v programu stejně jako směr odbočení. K ovládání motorů použít H můstek L 298 nebo L293. Oba jsou pro dva motory s jednoduchým ovládáním. Návodů je spousta na uvedené adrese.

bertbilek
Příspěvky: 8
Registrován: 22 zář 2017, 19:55
Reputation: 0

Re: Vyhýbání se překážkám

Příspěvek od bertbilek » 24 zář 2017, 11:30

BlindP píše:
23 zář 2017, 23:45
Ahoj,
chybí Ti tam cyklus for - https://arduino.cz/seriova-komunikace-a-cykly/ který do proměnné i dosazuje hodnoty:

Kód: Vybrat vše

void setup() {
	for(int i = 0; i < 4; i++) {
		pinMode(ir[i], INPUT);
		//tohle udela:
		//pinMode(ir[0], INPUT);
		//pinMode(ir[1], INPUT);
		//pinMode(ir[2], INPUT);
		//pinMode(ir[3], INPUT);
	}
	Serial.begin(9600);
	pinMode(L, OUTPUT);
	pinMode(R, OUTPUT);
}
Stejný cyklus for použiješ i v loop jen s jinými příkazy.
Doporučuji ještě nastudovat pole - https://arduino.cz/zakladni-struktury-jazyka-wiring/
Ahoj, díky za pomoc ale problém stále přetrvává. Když dám jeden ze senzorů (myslím že ten, který je na pinu 8) do prostoru kde není překážka a ty ostatní tři ke překážce, tak to sepne relé. Když senzor 8 dám zpět před překážku tak se relé rozepnou a když ty ostatní tři dám do prostoru tak je to pořád rozepnuté.

bertbilek
Příspěvky: 8
Registrován: 22 zář 2017, 19:55
Reputation: 0

Re: Vyhýbání se překážkám

Příspěvek od bertbilek » 24 zář 2017, 11:44

K380 píše:
24 zář 2017, 10:35
Ovládání robota aby se vyhýbal překážkám pomocí infra diod se používá většinou pro sledování čáry. Reaguje na malou vzdálenost. Je lepší použít ultrazvukový senzor. Můžeš použít 1 - 3, nebo jeden na servu a vzdálenost můžeš nastatvit v programu stejně jako směr odbočení. K ovládání motorů použít H můstek L 298 nebo L293. Oba jsou pro dva motory s jednoduchým ovládáním. Návodů je spousta na uvedené adrese.
Asi máš pravdu, myslel jsem že to bude lepší ale koukám, že nikde v návodech to nepoužívají. Uvidím jak to dopadne a možná koupím ten ultrazvukový senzor.

bertbilek
Příspěvky: 8
Registrován: 22 zář 2017, 19:55
Reputation: 0

Re: Vyhýbání se překážkám

Příspěvek od bertbilek » 24 zář 2017, 11:53

bertbilek píše:
24 zář 2017, 11:44
K380 píše:
24 zář 2017, 10:35
Ovládání robota aby se vyhýbal překážkám pomocí infra diod se používá většinou pro sledování čáry. Reaguje na malou vzdálenost. Je lepší použít ultrazvukový senzor. Můžeš použít 1 - 3, nebo jeden na servu a vzdálenost můžeš nastatvit v programu stejně jako směr odbočení. K ovládání motorů použít H můstek L 298 nebo L293. Oba jsou pro dva motory s jednoduchým ovládáním. Návodů je spousta na uvedené adrese.
Asi máš pravdu, myslel jsem že to bude lepší ale koukám, že nikde v návodech to nepoužívají. Uvidím jak to dopadne a možná koupím ten ultrazvukový senzor. A k ovládání motorů používám dvě relé, nepotřebuji couvat atd. tak jsem to vyřešil takhle :)

K380
Příspěvky: 134
Registrován: 04 srp 2017, 12:43
Reputation: 0

Re: Vyhýbání se překážkám

Příspěvek od K380 » 24 zář 2017, 13:29

Postavil jsem několik takových mašinek a nejlépe reagovaly když na tom byly 3 ks těchto ultrazvukových čidel zapojených každý zvlášť do arduina. Jedno čidlo na servu není dobré řešení a ovládání motorů relátkama neumožňuje při nalezení překážky couvnout od ní a teprve potom se otočit do jiného směru a pokračovat v cestě. H-můstek koupíš v nabídce "Arduino- projekt" za 59 kč. to není takový velký výdaj. Čidla tam mají také. Je mi 73 let a učit se programovat už pro mne není ale jsem schopen z více volně šířených programu takzvaně slepit program který mi vyhovuje nebo jen upravit. Takovým způsobem pochopíš i jakou funkci v programu co má. Na té adrese co jsem ti poslal najdeš hodně inspirace. Přeji ti úspěch !

bertbilek
Příspěvky: 8
Registrován: 22 zář 2017, 19:55
Reputation: 0

Re: Vyhýbání se překážkám

Příspěvek od bertbilek » 25 zář 2017, 17:59

K380 píše:
24 zář 2017, 13:29
Postavil jsem několik takových mašinek a nejlépe reagovaly když na tom byly 3 ks těchto ultrazvukových čidel zapojených každý zvlášť do arduina. Jedno čidlo na servu není dobré řešení a ovládání motorů relátkama neumožňuje při nalezení překážky couvnout od ní a teprve potom se otočit do jiného směru a pokračovat v cestě. H-můstek koupíš v nabídce "Arduino- projekt" za 59 kč. to není takový velký výdaj. Čidla tam mají také. Je mi 73 let a učit se programovat už pro mne není ale jsem schopen z více volně šířených programu takzvaně slepit program který mi vyhovuje nebo jen upravit. Takovým způsobem pochopíš i jakou funkci v programu co má. Na té adrese co jsem ti poslal najdeš hodně inspirace. Přeji ti úspěch !
Díky moc za pomoc :) . Couvání úplně nepotřebuju, stačí mi když to prostě objede a nemusím kupovat ten H-můstek. Ještě se v tom pohrabu a uvidím jestli si koupím to čidlo, ale spíš se už přikláním k tomu ho objednat. Myslíš že stačí jedno?

K380
Příspěvky: 134
Registrován: 04 srp 2017, 12:43
Reputation: 0

Re: Vyhýbání se překážkám

Příspěvek od K380 » 26 zář 2017, 09:42

Poslední vozík mám z jedním čidlem ale couvá od překážky. Dá se nastavit vzdálenost od překážky na kterou reaguje. Pokud je dost velká cca 30 cm tak je to OK. Někdy pokud najede k překážce šikmo tak narazí a teprve potom couvne. To samé se stane když je čidlo na servu. Pokud najede překážce v momentě kdy je čidlo otočené na druhou stranu než je překážka tak taky narazí. Jeto vidět i na některých videích. Nejvíc se mi osvědčily tři čidla po 120 stupňích. Jedno čidlo za 35 Kč tj. 105 kč. Na tom posledním vozíku mi hlasová deska hlásí překážku. Ještě lepší je kombinace ovládání BT modulem pomocí mobilu nebo tabletu a indikace překážky čidlem. Záleží na tom jaké jsou tvoje finanční schopnosti. Ale vyřádit se můžeš na čímkoliv a postupně přidávat komponenty. Na internetě je návodů aleluja. Pokud budeš mít dotazy tak se ptej ! Můžeš mi dát svůj meil ať to neřešíme tady na fóru. Upravené programy ti můžu dát k dispozici.

Odpovědět

Kdo je online

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