Përmbajtje:

Roboti Arduino Sumo: 5 hapa
Roboti Arduino Sumo: 5 hapa

Video: Roboti Arduino Sumo: 5 hapa

Video: Roboti Arduino Sumo: 5 hapa
Video: How to use Prototyping Shield with breadboard for Arduino 2024, Nëntor
Anonim
Roboti Arduino Sumo
Roboti Arduino Sumo

Para se te fillojme.

Çfarë është roboti sumo?

Shtë një robot i vetëkontrolluar me dimensione dhe veçori të veçanta, është projektuar gjithashtu në forma armiqësore të cilat e kualifikojnë atë për të marrë pjesë në garat dhe garat me robotë të tjerë.

Emri "sumo" erdhi nga një sport i vjetër japonez, i cili është dy kundërshtarë që luftojnë në një ring, secili prej tyre përpiqet të shtyjë kundërshtarin tjetër jashtë tij, dhe kjo është ajo që duhet të bëjnë robotët edhe në garat sumo robotike, ku dy robotët e vendosur në ring dhe njëri -tjetrin duke u përpjekur të shtyjnë kundërshtarin e tij.

Ideja:

Ndërtoni një robot me një specifikim të caktuar dhe në përpjesëtim me ligjet e atij konkursi (Sumo), ky robot duhet të jetë në përmasa të sakta për të luftuar dhe mbijetuar për të mos dalë jashtë ringut në asnjë mënyrë.

Pra, le të hedhim një vështrim në ligjet e konkurrencës të robotëve Sumo:

Unë do t'ju shpjegoj disa role të rëndësishme që duhet të keni parasysh gjatë ndërtimit të SUMO -t tuaj, gjithashtu mund t'ju ndihmojë të imagjinoni dhe inovoni idenë tuaj pa hyrë në detaje të thella.

1. Përmasat: Gjerësia Max 20 cm, Gjatësia Maks 20 cm, Lartësia nuk specifikohet.

2. Forma: forma e robotit mund të jetë e ndryshueshme pas fillimit të garës, por pa pjesët e pandashme për të qenë një objekt qendror.

3. Pesha: nuk i kalon 3 kg.

4. Roboti duhet të jetë vetëkontrollues.

Hapi 1: Përbërësit

Image
Image
Përdoret për çdo përbërës
Përdoret për çdo përbërës

1 Arduino Ano3

2 Motor DC

1 Ura L298N Dual H për Arduino

1 sensor tejzanor

2 IR TCRT5000

1 Bateri 9v

Bateri AA 4 * 1.5 v copë + Bateri

4 rrota robotike

telat e kërcyesit

Hapi 2: Përdor për çdo Komponent

Përdoret për çdo përbërës
Përdoret për çdo përbërës
Përdoret për çdo përbërës
Përdoret për çdo përbërës

Tani kemi përbërësit e kërkuar, kështu që le të shkojmë në detaje për të ditur se për çfarë përdoret..

1- Arduino Ano3

Shtë një bord kryesor që kontrollon të gjitha pjesët dhe i lidh ato së bashku

2- Motor DC

Të cilat ndihmojnë robotin të manovrojë dhe të lëvizë brenda unazës së KONKURRENCES

4- Ura L298N Dual H për Arduino

Shtë një panel i vogël që siguron tension të vazhdueshëm për motorët, si dhe mbështetjen e pllakës Arduino me kontroll të mirë të lëvizjes dhe tensionit.

5- Sensori tejzanor

Sensori tejzanor përdoret për të gjetur robotin e kundërshtarit dhe zakonisht vendoset në krye të robotit.

6- IR TCRT5000

Siç e kemi përmendur tashmë, unaza e konkursit është projektuar në një madhësi të caktuar dhe ka dy ngjyra, mbushja është e zezë dhe korniza është e bardhë. Konkurrenti nuk duhet të dalë jashtë. Prandaj, ne përdorim sensorin IR për t'u siguruar që roboti nuk do të jetë jashtë unazës. Ky sensor ka aftësinë për të bërë dallimin midis ngjyrave të unazës).

7- Bateria 9v

Mbështet bordin kryesor (Arduino) me tension të rëndësishëm.

8- Bateri AA 4 * 1.5 v copë + Bateri

Mbështet dy motorët (DC Motor) me tension të rëndësishëm dhe duhet të ndahet për të dhënë forcën e plotë për rrotat.

9- Telat e kërcyesit

Hapi 3: Dizajnimi

Dizajn
Dizajn
Dizajn
Dizajn

Unë kam bërë dy modele të robotëve sumo duke përdorur skicimin 3D të Google sepse më pëlqen të krijoj modele letre të robotëve të mi para se të pres pjesë akrilike në prestarin lazer. Për të verifikuar që të gjitha pjesët do të përshtaten së bashku, është e rëndësishme që modelet e letrës të shtypen në madhësinë e saktë të vizatimeve.

Dhe unë marr parasysh që të jem në matje specifike me ligjet e konkurrencës, kështu që përpiquni të mendoni në një dizajn më krijues dhe të bëni modelin tuaj.

Në mënyrë që të jeni më të ndjeshëm ndaj peshës së robotit në dorëzuar ose pastaj vendosni bateritë në pjesën e përparme të robotit me mburojën e përparme në një kënd prej 45 gradë në formën e robotit.

Shkarkoni modelin 1 nga këtu

Shkarkoni modelin 2 nga këtu

Ju gjithashtu mund të shkarkoni modelin e modelit të letrës

Hapni skedarin PDF me Adobe Acrobat Reader (softuer i rekomanduar)

Hapi 4: Strategjia e lojës

Image
Image
Strategjia e Luaj
Strategjia e Luaj

Siç e përmendëm edhe më parë, roboti duhet të ketë aftësinë e tij për ta kontrolluar veten, kështu që na jep aftësinë për ta programuar atë në më shumë se një mënyrë, kjo varet nga mënyra se si dëshironi që roboti të luajë në ring ashtu si çdo kundërshtar në me të vërtetë duan të fitojnë ndeshjen.

Strategjia e lojës (1):

· Ne do ta bëjmë robotin rreth vetes vazhdimisht.

· Roboti është duke e matur distancën vazhdimisht gjatë rrotullimit.

· Nëse distanca e matur e kundërshtarit është më e ulët se (10 cm për shembull), kjo do të thotë që kundërshtari është para robotit tonë drejtpërdrejt.

· Roboti duhet të ndalojë së rrotulluari dhe pastaj fillon sulmin (ecni përpara me forcë të plotë shpejt).

· Roboti duhet të marrë leximet nga sensorët IR gjithmonë për të qenë i sigurt që ne nuk e kaluam kufirin e unazës.

· Nëse Lexoni praninë IR të ngjyrës së bardhë, ai duhet ta lëvizë robotin drejtpërdrejt në drejtimin e kundërt të sensorit (për shembull: Nëse sensori i përparmë, i cili dha një tregues të ngjyrës së bardhë të robotit lëviz prapa)!

Strategjia e lojës (2):

· Në fillim roboti mat distancën përpara.

· Roboti lëviz prapa në të njëjtën distancë të matur.

· Roboti ndalon të rrotullohet dhe pastaj fillon sulmin papritur (ecni përpara me forcë të plotë).

· Në rast kundërshtari, roboti duhet të rrotullohet 45 gradë ndërsa të mbijetojë vetë nëse bie nga unaza.

· Roboti duhet të marrë leximet nga sensorët IR gjithmonë për të qenë i sigurt që ne nuk e kaluam kufirin e unazës.

· Nëse Lexoni praninë IR të ngjyrës së bardhë, ai duhet ta lëvizë robotin drejtpërdrejt në drejtimin e kundërt të sensorit (për shembull: Nëse sensori i përparmë, i cili dha një tregues të ngjyrës së bardhë të robotit lëviz prapa)!

Hapi 5: Programimi

Programimi
Programimi

ju lutemi kontrolloni qarkun dhe kodin

* Përditësimi 2019-03-26

Shkarkoni bibliotekën tejzanor nga këtu së pari dhe instaloni atë:

github.com/ErickSimoes/Ultrasonic/blob/mas…

/*

nga ahmed Azouz

www.instructables.com/id/How-to-Make-Ardu…

Shkarkoni librin nga këtu së pari

github.com/ErickSimoes/Ultrasonic/blob/ma…

*/

#përfshijnë tejzanor.h

Tejzanor tejzanor (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #përcaktoni sensorin IR_front A0 // sensori i përparmë #përcaktoni sensorin_ IR_sback_1 A1 // sensorin e pasmë int distancën;

void setup ()

{Serial.fillo (9600); vonesa (5000); // sipas roleve të përgjithshme sumo} lak void () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); distanca = tejzanor.lexo (); RROTULLO (200); // fillo rotete if (distanca <20) {Stop (); ndërsa (distanca 650 || IR_back> 650) {pushim;} vonesë (10); } nëse (IR_front <650) // <650 nënkupton vijën e bardhë {Stop (); vonesë (50); KTHIM (255); vonesë (500); } if (IR_back <650) // {Stop (); vonesë (50); PARA (255); vonesë (500); } /* ----------- korrigjimi ---------------- Serial.print (tejzanor. Ranging (CM)); Serial.println ("cm"); Serial.println ("IR front:"); Serial.println (IR_front); Serial.println ("IR mbrapa:"); Serial.println (IR_back); */

} //--------------------------------------------

void FORWARD (int Speed) {// Kur duam ta lëmë Motor To të ecë përpara, // thjesht anulojeni këtë pjesë në pjesën lak. analogWrite (IN1, Shpejtësia); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, Shpejtësia); } // ------------------------------------------------ i pavlefshëm BACKWARD (int Shpejtësia) {// Kur duam të lëmë Motor To të ecë përpara, // thjesht anuloni këtë pjesë në pjesën e lakut. analogWrite (IN1, 0); analogWrite (IN2, Shpejtësia); analogWrite (IN3, Shpejtësia); analogWrite (IN4, 0); } // ------------------------------------------------ rrotullohet i pavlefshëm (int Speed) {// Kur duam ta lëmë Motorrin të Rrotullohet, // thjesht anuloni këtë pjesë në pjesën e lakut. analogWrite (IN1, Shpejtësia); analogWrite (IN2, 0); analogWrite (IN3, Shpejtësia); analogWrite (IN4, 0); } // ------------------------------------------------ void Stop () {// Kur duam të Motor To stop, // thjesht anuloni këtë pjesë në pjesën e lakut. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Recommended: