Sisällysluettelo:

Arduino 3D -tulostettu sumobotti: 6 vaihetta
Arduino 3D -tulostettu sumobotti: 6 vaihetta

Video: Arduino 3D -tulostettu sumobotti: 6 vaihetta

Video: Arduino 3D -tulostettu sumobotti: 6 vaihetta
Video: RAMPS 1.6 - A4988/DRV8825 configuration 2024, Marraskuu
Anonim
Arduino 3D -tulostettu sumobotti
Arduino 3D -tulostettu sumobotti

Joten minulla oli joukko osia kotini ympärillä. Halusin osallistua sumokilpailuun, joka on tulossa muutaman kuukauden kuluttua, mutta minulla ei ollut botia. Sen sijaan, että ostaisin botin tai käyttäisin olemassa olevaa mallia, joka vaatisi minua hankkimaan tavaraa projektiin, menin eteenpäin ja tein oman botin omasta suunnittelustani omista osistani. Tarvitset seuraavaa tätä opetusohjelmaa varten.

  1. Yksi jokaisesta 3D -painetusta osasta löytyy täältä.
  2. 7,4 voltin akku tai kaksi 18650 akkua.
  3. Tarvittaessa paristopidike.
  4. Arduino uno.
  5. Arduino Unon suojakilpi.
  6. USB -kaapeli Arduinolle.
  7. Pöytätason virtalähde (valinnainen).
  8. Laturi (valinnainen).
  9. Johdot ja paljon niitä.
  10. Vakiokokoiset metallivaihteiston jatkuvan pyörimisen servot.
  11. Kaksi ir -kytkinanturia.
  12. 7 cm servopyörät.
  13. Virtakytkin.

Tätä koodia muutetaan jatkuvasti. Tämän robotin koodi löytyy täältä. Tämä on tämän projektikoodin uusin versio. Nauttia!

Vaihe 1: Kokoonpano

Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
Kokoonpano
  1. Robotti käyttää kahta metallivaihteistoservoa. Haluat ruuvata ne sisään m3 -ruuveilla ja muttereilla siten, että rungon sisällä olevat servot ovat ulospäin molempiin suuntiin. Servot voivat mennä robottiin vain yhdellä tavalla, joten tämä on melko suoraviivaista.
  2. Kiinnitä servopyörät.
  3. Kiinnitä ir -anturit siten, että ne ovat alaspäin robotin etuosassa. Ne kiinnitetään kahdella ruuvilla robotin edessä olevien M3 -reikien läpi. Robotin pohjassa on rakoja, joista he voivat katsoa läpi. Haluat olla varovainen, että anturit eivät poimi kotelosta ja voivat nähdä raot läpi. Saat lisätietoja tästä myöhemmin, kun testaamme robottia nähdäksemme, toimiiko kätevä työsi.
  4. Aseta HC-SR04-anturi niiden kahden reiän sisään, jotka ovat robotin ulkopuolelta sisäpuolelta. Reiät sijaitsevat rungon etuosassa.
  5. Laita Arduino Uno rungon sisään suojalevyn kanssa.
  6. Kytke kaikki yhteen alla olevan luetteloluettelon mukaisesti.

    1. Virta valitsemastasi virtalähteestä virtakytkimeen. Johdat kytkimeen positiivisen tai negatiivisen johtimen. Jos valitsit negatiivisen johtimen, tämä on sinun maasi, kun taas jos valitsit positiivisen kytkennän, se on virtalähteen johto. Toinen johdin riippuen siitä, onko se positiivinen vai negatiivinen, on positiivinen tai negatiivinen.
    2. Kytke positiivinen johdin Arduinon viniin ja servojen jälkijohdot.
    3. Liitä maadoitus servoihin ja Arduinoon.
    4. Liitä 5v Arduinon 5 voltin säätimestä jokaisen anturin kaikkiin positiivisiin liittimiin.
    5. Kytke anturit maahan Arduinolla.
    6. Lopuksi johdin nasta 7 Arduinossa oikealle ir -anturille, nasta 6 vasemmalle IR -anturille, nasta 8 yhdelle servolle, nasta 9 viimeiselle servolle.

Varoitus: Robotin virheellinen kytkentä voi johtaa robotin tupakointiin ja elektroniikan tuhoutumiseen

Vaihe 2: Ensimmäiset elämän merkit

Varoitus: Älä kytke robottia tietokoneeseen virran ollessa kytkettynä tai kun servot on kytketty. Jos et tee niin, tietokone voi vaurioitua

int -tila = 3;

Tämä yllä oleva koodirivi on robotille tärkeä muuttuja. Se tekee seuraavan, jos se vastaa kutakin alla lueteltua numeroa.

  1. Vaikka robotti on nolla, se liikkuu tietyllä tavalla.
  2. Jos tila on yhtä kuin yksi, robotti tulostaa jokaisen anturin lukeman tietokoneelle.
  3. Kun robotti on kaksi, se välttää reunat ja esteet, jos se törmää niihin.
  4. Robotti taistelee muita robotteja vastaan.

Nämä ovat robotin eri tiloja, joita käytetään robotin testaamiseen ja edistymiseen. Sinun on muutettava "3" nollaksi tämän opetusohjelman ensimmäisessä vaiheessa.

Lataa nyt koodi robotille. Näet sen liikkuvan eteenpäin, taaksepäin, vasemmalle ja oikealle tässä järjestyksessä.

Vaihe 3: Se voi nähdä

int -tila = 0;

Muuta seuraava muuttuja arvoon "1", jos edellinen vaihe on suoritettu. Nyt kun se on kytketty sarjamonitoriin Arduinossa, se tulostaa sen, mitä robotti näkee. "0" tarkoittaa reuna -antureille, että se näkee jotain. "1" tarkoittaa, että reunoja ei näy. Jos huomaat logiikan olevan päinvastainen, ota se huomioon tulevissa vaiheissa.

Älä välitä ping -anturista. En ole saanut sitä vieläkään toimimaan. Tätä robottia kehitetään voimakkaasti.

Vaihe 4: Se voi välttää taulukon reunan

void Vältä () {

int sensorStateLeft = digitalRead (leftSensor);

int sensorStateRight = digitalRead (rightSensor);

viive (50);

jos (Ping.ping_cm ()> = 15 && sensorStateLeft == 0 && sensorStateRight == 0) {

left.write (0); right.write (90);

}

jos (Ping.ping_cm () <= 15 && Ping.ping_cm ()! = 0 || sensorStateLeft == 1 || sensorStateRight == 1) {

left.write (90);

right.write (0); }

}

Tämä yllä oleva koodi on koodi, joka kutsutaan, kun tila on kaksi. Jos edellinen vaihe on suoritettu, vaihda tilaksi "2".

Jos anturit ovat ylösalaisin, voit vapaasti kääntää "sensorStateLeft" ja "sensorStateRight" jokaisessa "if" -lauseessa eri numeroksi kuin ne on annettu, mikä on joko "1" tai "0".

Nyt robotti voi välttää sumoareenan reunan. Se on melkein valmis taisteluun. Voit vapaasti testata sitä, toimiiko se vai ei.

Vaihe 5: TAISTELU

Sumosi on valmis taistelemaan nyt muutamalla koodimuutoksella. Muuta tila "3": ksi ja käännä logiikka tarpeen mukaan tyhjässä "Sumo" -tilassa. Nyt robotin tulisi välttää areenan reunaa, mutta se ei voi havaita muita robotteja. Se periaatteessa välttää areenan reunat ja liikkuu tarpeeksi nopeasti, jotta se voi toivottavasti työntää robotin pöydän reunalta. Nauttia!

Vaihe 6: Johtopäätös

Robotti on nyt valmis. Jos sinulla on ongelmia tai kommentteja tähän projektiin, ilmoita siitä minulle. Olen uskomattoman uskomaton palautteelle, koska minulla ei ole aavistustakaan, oliko tämä hyvin tehty opetusohjelma vai ei. Nauttia!

Suositeltava: