Sisällysluettelo:

Arduino Sumo -robotti: 5 vaihetta
Arduino Sumo -robotti: 5 vaihetta

Video: Arduino Sumo -robotti: 5 vaihetta

Video: Arduino Sumo -robotti: 5 vaihetta
Video: Arduino robot sumo 2024, Heinäkuu
Anonim
Arduino Sumo -robotti
Arduino Sumo -robotti

Ennen kuin aloitamme

Mikä on sumorobotti?

Se on itseohjautuva robotti, jolla on tietyt mitat ja ominaisuudet, ja se on myös suunniteltu vihamielisiin muotoihin, jotka oikeuttavat sen osallistumaan kilpailuihin ja kilpailuihin muiden robottien kanssa.

Nimi “sumo” tuli vanhasta japanilaisesta urheilulajista, jossa kaksi vastustajaa taistelee kehässä, joista jokainen yrittää työntää toisen vastustajan ulos siitä, ja tämän pitäisi robotin tehdä myös sumorobotiikan kisoissa, joissa kaksi robotit asetetaan kehään ja toiset yrittävät työntää vastustajansa ulos.

Ajatus:

Rakenna robotti, jolla on tietyt spesifikaatiot ja joka on suhteessa kyseisen kilpailun lakeihin (Sumo), tämän robotin on oltava täsmällisissä mitoissa taistellakseen ja selviytyäkseen, jotta sitä ei ylitetä.

Katsotaan siis Sumo -robottikilpailulakeja:

Selitän joitain tärkeitä rooleja, joita sinun tulee harkita rakennettaessa omaa SUMOasi, se voi myös auttaa sinua kuvittelemaan ja innovoimaan oman ideasi menemättä syviin yksityiskohtiin.

1. Mitat: Suurin leveys 20 cm, enimmäispituus 20 cm, korkeutta ei ilmoitettu.

2. Muoto: robotin muoto voi muuttua kilpailun aloittamisen jälkeen, mutta ilman erottamattomia osia pysyäkseen yhtenä keskeisenä objektina.

3. Paino: enintään 3 kg.

4. Robotin on oltava itsehallitseva.

Vaihe 1: Komponentit

Image
Image
Käyttö kullekin komponentille
Käyttö kullekin komponentille

1 Arduino Ano 3

2 DC -moottori

1 L298N Dual H -silta Arduinolle

1 Ultraääni -anturi

2 IR TCRT5000

1 akku 9v

AA -paristo 4 * 1,5 V kpl + Paristokotelo

4 robottipyörää

hyppyjohtimet

Vaihe 2: Kunkin komponentin käyttö

Käyttö kullekin komponentille
Käyttö kullekin komponentille
Käyttö kullekin komponentille
Käyttö kullekin komponentille

Nyt meillä on tarvittavat komponentit, joten tarkastelemme yksityiskohtaisesti, mitä käytetään.

1- Arduino Ano3

Se on emolevy, joka ohjaa kaikkia osia ja yhdistää ne yhteen

2- DC-moottori

Auttaa robottia liikkumaan ja liikkumaan KILPAILU -kehässä

4- L298N Dual H -silta Arduinolle

Se on pieni paneeli, joka tarjoaa jatkuvaa jännitettä moottoreille sekä Arduino -levyn tuen, joka hallitsee hyvin liikettä ja jännitettä.

5- Ultraääni-anturi

Ultraäänianturia käytetään vastustajan robotin paikantamiseen ja se sijoitetaan yleensä robotin yläosaan.

6- IR TCRT5000

Kuten olemme jo maininneet, kilpailusormus on suunniteltu tiettyyn kokoon ja siinä on kaksi väriä, täyttö on musta ja kehys valkoinen. Kilpailijan ei pitäisi mennä ulos. Siksi käytämme IR -anturia varmistaaksemme, että robotti ei jää kehän ulkopuolelle. Tällä anturilla on kyky erottaa sormuksen värit).

7- Akku 9v

Se tukee emolevyä (Arduino) tärkeällä jännitteellä.

8- AA-paristo 4 * 1,5 V kappaletta + Paristokotelo

Se tukee kahta moottoria (DC -moottori) tärkeällä jännitteellä, ja se on erotettava toisistaan, jotta pyörät saavat täyden voiman.

9- Hyppyjohdot

Vaihe 3: Suunnittelu

Design
Design
Design
Design

Olen tehnyt kaksi sumorobotimallia Googlen 3D-luonnoksen avulla, koska tykkään luoda robotimalleistani paperimalleja ennen kuin leikkaan osia akryylistä laserleikkurilla. Sen varmistamiseksi, että kaikki osat sopivat yhteen, on tärkeää, että paperimallit on painettu tarkan kokoisina piirustuksina.

Otan huomioon myös kilpailulainsäädännön mukaisen mittaamisen, joten yritä ajatella luovempia suunnitelmia ja tehdä oma malli.

Jotta voisit olla herkempi lähetetyn robotin painolle tai aseta paristot robotin eteen siten, että etusuojus on 45 asteen kulmassa robotin muotoon nähden.

Lataa malli 1 täältä

Lataa malli 2 täältä

Voit myös ladata paperimallipohjan

Avaa PDF -tiedosto Adobe Acrobat Reader -ohjelmalla (suositeltu ohjelmisto)

Vaihe 4: Pelaa strategiaa

Image
Image
Pelaa strategiaa
Pelaa strategiaa

Kuten aiemmin mainitsimme, että robotilla on oltava oma kyky hallita itseään, joten se antaa meille mahdollisuuden ohjelmoida sen useammalla kuin yhdellä tavalla, riippuen siitä, kuinka haluat robotin pelaavan kehässä aivan kuten kuka tahansa vastustaja todella haluavat voittaa pelin.

Toistostrategia (1):

· Teemme robotin ympärilleen jatkuvasti.

· Robotti mittaa jatkuvasti etäisyyttä jatkuvasti pyörimisen aikana.

· Jos vastustajan etäisyys on pienempi kuin (esimerkiksi 10 cm), se tarkoittaa, että vastustaja on suoraan robotin edessä.

· Robotin on lopetettava pyöriminen ja aloitettava sitten hyökkäys (siirry eteenpäin täydellä voimalla nopeasti).

· Robotin on otettava infrapuna -antureiden lukemat aina varmistaakseen, ettemme ylittäneet renkaan rajaa.

· Jos lukee valkoisen värin IR -läsnäolon, sen on liikutettava robotti suoraan anturin vastakkaiseen suuntaan (esimerkiksi: Jos etutunnistin, joka osoitti robotin valkoisen värin, liikkuu taaksepäin)!

Toistostrategia (2):

· Robotti mittaa etäisyyden edessä.

· Robotti siirtyy taaksepäin samalla mitatulla etäisyydellä.

· Robotti lakkaa pyörimästä ja aloittaa sitten hyökkäyksen yhtäkkiä (siirry eteenpäin täydellä voimalla).

· Jos vastustaja kiinnittyy, robotin on pyöritettävä 45 astetta selviytyäkseen, jos se putoaa kehästä.

· Robotin on aina otettava infrapuna -antureiden lukemat ollakseen varmoja siitä, ettemme ylittäneet renkaan rajaa.

· Jos lukee valkoisen värin IR -läsnäolon, sen on liikutettava robotti suoraan anturin vastakkaiseen suuntaan (esimerkiksi: Jos etutunnistin, joka osoitti robotin valkoisen värin, liikkuu taaksepäin)!

Vaihe 5: Ohjelmointi

Ohjelmointi
Ohjelmointi

tarkista piiri ja koodi

* Päivitys 26.3.2019

Lataa ensin ultraäänikirjasto täältä ja asenna se:

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

/*

Kirjailija: Ahmed Azouz

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

Lataa lib ensin täältä

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

*/

#Sisällytä ultraääni. h

Ultraääni ultraääni (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #define IR_sensor_front A0 // etusensori #define IR_sensor_back A1 // takaanturin etäisyys;

mitätön asennus ()

{Serial.begin (9600); viive (5000); // sumo -yhteensopivien roolien mukaan} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analoginenLue (IR_anturin_back); etäisyys = ultraääni.luku (); Kierrä (200); // aloita pyöriminen, jos (etäisyys <20) {Stop (); while (etäisyys 650 || IR_back> 650) {break;} viive (10); } if (IR_front <650) // <650 tarkoittaa valkoista viivaa {Stop (); viive (50); TAKAISIN (255); viive (500); } if (IR_back <650) // {Stop (); viive (50); ETEENPÄIN (255); viive (500); } /* ----------- debugging ---------------- Serial.print (ultraääni.alue (CM)); Sarja.println ("cm"); Serial.println ("IR -etu:"); Sarja.println (IR_front); Serial.println ("IR back:"); Sarja.println (IR_back); */

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

void FORWARD (int Speed) {// Kun haluamme antaa moottorin siirtyä eteenpäin, // mitätöi tämä osa silmukkaosasta. analogWrite (IN1, nopeus); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, nopeus); } // -------------------------------------------- void BACKWARD (int Speed) {// Kun haluamme antaa moottorin siirtyä eteenpäin, // mitätöi tämä osa silmukkaosasta. analogWrite (IN1, 0); analogWrite (IN2, nopeus); analogWrite (IN3, nopeus); analogWrite (IN4, 0); } // -------------------------------------------- void ROTATE (int Speed) {// Kun haluamme antaa moottorin pyöriä, // mitätöi tämä osa silmukkaosassa. analogWrite (IN1, nopeus); analogWrite (IN2, 0); analogWrite (IN3, nopeus); analogWrite (IN4, 0); } // -------------------------------------------- void Stop () {// Kun haluamme pysäyttää moottorin, // mitätöi tämä osa silmukkaosasta. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Suositeltava: