projekti

Kā izveidot robotu - novēršot šķēršļus

Our Miss Brooks: Another Day, Dress / Induction Notice / School TV / Hats for Mother's Day (Novembris 2018).

Anonim

Kā izveidot robotu - novēršot šķēršļus


Piecas piecas daļas no robotu veidošanas, kas var sekot līnijām vai sienām un izvairīties no šķēršļiem!

Saistītie raksti

Kā izveidot robotu:

1.daļa: Dizains un shematisks

2.daļa: PCB dizains

3.daļa: Aparatūras pārbaude

4. daļa: līnijas sekotājs

6.daļa: sienas pēc robotas

Pārskats

Es domāju, ka būtu ērti izveidot robotu, ko bija viegli salikt ar vienu lodmetālu un bija arī pieņemams. Es savam robotam izstrādāju šādas prasības:

  • Daudzi komplekti ir dārgi, tāpēc tiem jābūt samērā lētiem.
  • Tas ir viegli saliekams bez īpašas iekārtas.
  • Tas ir viegli programmējams bez sarežģīta IDE vai programmētāja.
  • Tam jābūt pietiekami spēcīgam, lai paplašinātu.
  • Tam vajadzētu atturēties no vienkārša enerģijas avota.
  • Tam vajadzētu spēt sekot līnijai vai sienai un izvairīties no šķēršļiem.

Šajā rakstā es runāšu par to, kā programmēt robotu, lai izvairītos no šķēršļiem.

Izvairīšanās no šķēršļiem

Mana pieeja ir, ja robotu ceļā tiek atklāti šķēršļi, robots atkārtosies un izmēģinās jaunu virzienu. Tas ļauj robotam izpētīt apgabalus, kas paši nesakrīt vai nesabojājas. Sensors, kas tiek izmantots šajā robotā, nodrošina tikai bināro izvadi. Citiem vārdiem sakot, kaut kas ir vai nu veidā, vai arī tas nav. Sensoram ir arī diezgan plašs uztveršanas leņķis, tādēļ objekti, kas ir nedaudz no sāniem, arī var tikt atklāti. Tas ierobežo algoritma sarežģītību, ko var izmantot. Ja jums būtu sensors, kas varētu faktiski izmērīt objekta attālumu līdz objektam, jūs varētu aprēķināt, vai jums ir pietiekami daudz pagrieziena rādiusa, lai izkļūtu no ceļa, neatkāpjoties atpakaļ.

Algoritms, par kuru es nolēmu, pateiks robotam 1 sekundi rezerves, ja tiek konstatēts šķērslis. Pēc tam tas nejauši tiks pagriezts pa kreisi vai pa labi, mēģinot izvairīties no šķēršļa. Pagriežot pa kreisi vai pa labi, tā turpina pārbaudīt, vai nav šķēršļu. Ja tas atklāj šķēršļus, tas pārtrauks pagriezienus un atkārtotu atpakaļgaitas / pagrieziena ciklu, līdz tam būs brīvs no šķēršļa.

Programmēšana

Sekojošā skice veic loģiku:

  1. Sāciet robotu vadītāju un pagaidiet 5 sekundes. Tas ļauj jums novietot robotu, kur to vēlaties, pirms tas sāk kustēties.
  2. Pārvietot uz priekšu.
  3. Ja vidējais sensors ir aktivizēts, pagrieziet pretēji 1 sekundi.
  4. Nejauši izvēlieties pa kreisi vai pa labi.
  5. Pagrieziet līdz 1 sekundei, kamēr vidējais sensors nav aktivizēts.
  6. Ja ir aktivizēts vidējais sensors, pārejiet pie 3. darbības.
  7. Ja sensors nav aktivizēts, dodieties uz 2. darbību.

 #include "robot.h" void setup() { Serial.begin(38400); Serial.println("Boot"); rbt_init(); delay(5000); rbt_move(FWD, 100); } uint16_t lleft, lmid, lright; boolean wleft, wmid, wright; uint16_t avoid_count=0; void loop() { rbt_sns(&lleft, &lmid, &lright, &wleft, &wmid, &wright); /*reverse if something is in the way and try to change direction*/ if(wmid) { rbt_move(REV, 100); delay(1000); /*choose a direction at random to avoid an obstacle*/ if(random(10)>5) { rbt_move(LEFT, 100); avoid_count=1000; while(avoid_count){ delay(1); rbt_sns(&lleft, &lmid, &lright, &wleft, &wmid, &wright); if(wmid) break; } } else { rbt_move(RIGHT, 100); avoid_count=1000; while(avoid_count){ avoid_count--; rbt_sns(&lleft, &lmid, &lright, &wleft, &wmid, &wright); if(wmid) break; } } rbt_move(FWD, 100); } } 

Izvairieties no šķēršļiem!

Secinājums

Šajā rakstā es parādīju, kā jūs varētu izmantot sensoru, lai izvairītos no šķēršļa ar robotu. Automātiskajos transportlīdzekļos ir svarīgi novērst šķēršļus, lai izvairītos no kaitējuma videi vai pašam robotam. Viens svarīgs papildinājums šim robotam būtu sensori aizmugurē, lai izvairītos no šķēršļiem, kad tas notiek pretējā virzienā. Nākamajā rakstā es izmantošu sānu, izmantojot sānu sensoru!

Nākamais raksts sērijā: Kā veidot sienu pēc darba

Lejupielādes kods