Sisukord:

Arduino 3D trükitud sumobot: 6 sammu
Arduino 3D trükitud sumobot: 6 sammu

Video: Arduino 3D trükitud sumobot: 6 sammu

Video: Arduino 3D trükitud sumobot: 6 sammu
Video: МК "Робот-сумоист на Arduino" 2024, November
Anonim
Arduino 3D trükitud sumobot
Arduino 3D trükitud sumobot

Nii lasin oma maja ümber hunniku osi laduda. Tahtsin osaleda mõne kuu pärast toimuval sumovõistlusel, kuid mul polnud robotit. Selle asemel, et osta robot või kasutada olemasolevat disaini, mis nõuaks mul projekti jaoks asjade ostmist, läksin edasi ja tegin omaenda disainist omaenda osade järgi oma bot. Selle õpetuse jaoks vajate järgmist.

  1. Üks igast 3D -trükitud osast, mille leiate siit.
  2. 7,4 -voldine aku või kaks 18650 patareid.
  3. Vajadusel akuhoidja.
  4. Arduino uno.
  5. Arduino uno kaitsekilp.
  6. USB -kaabel Arduino jaoks.
  7. Toiteallikas toiteallikas (valikuline).
  8. Laadija (valikuline).
  9. Juhtmed ja palju neid.
  10. Standardse suurusega metallist hammasrataste pideva pöörlemise servod.
  11. Kaks lüliti andurit.
  12. 7 cm servorattad.
  13. Sisse- ja väljalüliti.

Seda koodi muudetakse pidevalt. Selle roboti koodi leiate siit. See on selle projekti koodi kõige ajakohasem versioon. Nautige!

Samm: kokkupanek

Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
Kokkupanek
  1. Robot kasutab kahte metallist käigukasti servot. Soovite need kruvida, kasutades m3 poldid ja mutrid, nii et šassii sees olevad servad on mõlemas suunas väljapoole suunatud. Servod saavad robotisse siseneda ainult ühel viisil, nii et see läheb üsna otse edasi.
  2. Kinnitage servorattad.
  3. Kinnitage ir andurid nii, et need oleksid roboti esiosas allapoole. Need kinnitatakse kahe kruviga läbi roboti esiosa M3 aukude. Roboti põhjas on pilud, millest nad saavad läbi vaadata. Soovite olla ettevaatlik, andurid ei võta šassii üles ja näevad piludest läbi. Selle kohta saate rohkem teada hiljem, kui katsetame robotit, et näha, kas teie käepärane töö töötas.
  4. Asetage HC-SR04 andur kahe ava sisse, mis on seestpoolt väljaspool robotit. Avad asuvad šassii esiküljel.
  5. Pange Arduino Uno šassii sisse, kilp peal.
  6. Ühendage kõik kokku vastavalt allpool olevale loetelule.

    1. Toide teie valitud toiteallikast toitelülitini. Lülitile ühendate positiivse või negatiivse juhtme. Kui valisite negatiivse juhtme, on see teie alus, kui valite positiivse juhtme, siis see on teie toiteallika juhe. Teine traat sõltuvalt sellest, kas see on positiivne või negatiivne, on teie positiivne või negatiivne.
    2. Ühendage Arduino positiivne juhe viniga ja servode postitusjuhtmed.
    3. Ühendage servod ja Arduino maaga maa külge.
    4. Ühendage 5v Arduino 5 -voldisest regulaatorist kõigi andurite kõigi positiivsete klemmidega.
    5. Ühendage andurid Arduino maandusega.
    6. Lõpuks traatige Arduino tihvt 7 paremale ir -andurile, tihvt 6 vasakule IR -andurile, tihvt 8 ühele servole, tihvt 9 viimasele servole.

Hoiatus: Kui robot ei ühenda õigesti, võib see põhjustada suitsetamise ja elektroonika hävimise

Samm: esimesed elumärgid

Hoiatus: Ärge ühendage robotit arvutiga, kui see on toiteallikas või servod on ühendatud. Vastasel korral võite arvuti kahjustada

int režiim = 3;

See ülaltoodud koodirida on roboti jaoks ülioluline muutuja. See on järgmine, kui see võrdub iga allpool loetletud numbriga.

  1. Kuigi null on võrdne, liigub robot kindla mustri järgi.
  2. Kui režiim on võrdne ühega, prindib robot iga anduri näidu arvutisse.
  3. Kui robot on võrdne kahega, väldib see servi ja takistusi, kui see nendega kokku puutub.
  4. Robot võitleb teiste robotitega.

Need on roboti erinevad režiimid, mida kasutatakse roboti testimiseks ja edendamiseks. Selle õpetuse esimeses etapis peate muutma selle "3" nulliks.

Nüüd laadige kood robotile üles. Näete seda selles järjekorras edasi, tagasi, vasakule ja paremale liikumas.

3. samm: see näeb

int režiim = 0;

Muutke järgmine muutuja väärtuseks "1", kui eelmine samm on lõpule viidud. Nüüd, kui see on ühendatud Arduino seeriamonitoriga, prindib see välja, mida teie robot näeb. "0" tähendab servaanduritele, et see näeb midagi. "1" tähendab, et servi ei näe. Kui märkate, et loogika on ümber pööratud, võtke see tulevaste sammude jaoks teadmiseks.

Ärge muretsege ping -anduri pärast. Mul ei ole see veel kuidagi õnnestunud. Seda robotit arendatakse tugevalt.

Samm: see võib tabeli serva vältida

tühine Väldi () {

int sensorStateLeft = digitalRead (leftSensor);

int sensorStateRight = digitalRead (rightSensor);

viivitus (50);

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

vasakule.kirjutage (0); paremal.kirjutage (90);

}

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

vasakule.kirjutage (90);

paremal.kirjutage (0); }

}

See ülaltoodud kood on kood, mis kutsutakse välja, kui režiim on kaks. Kui eelmine samm on lõpule viidud, muutke režiim "2" -ks.

Kui andurid on ümberpööratud, pöörake vabalt "sensStateLeft" ja "sensorStateRight" ümber igas "if" lauses erinevaks arvuks, kui need olid antud, mis on kas "1" või "0".

Nüüd saab robot vältida sumoareeni serva. See on lahinguks peaaegu valmis. Katsetage julgelt, kas see töötab või mitte.

5. samm: LAHUTUS

Teie sumo on nüüd mõne koodimuudatusega lahinguks valmis. Muutke režiim võrdseks väärtusega "3" ja pöörake tühimikus "Sumo" vajadusel loogika ümber. Nüüd peaks teie robot vältima areeni serva, kuid ei suuda teisi roboteid tuvastada. Põhimõtteliselt väldib see areeni äärt ja liigub piisavalt kiiresti, et suudab loodetavasti roboti laua servast maha lükata. Nautige!

6. samm: järeldus

Teie robot on nüüd valmis. Kui selle projekti kohta on probleeme või kommentaare, andke mulle sellest julgelt teada. Olen uskumatult avatud tagasisidele, sest mul pole aimugi, kas see oli hästi tehtud õpetus või mitte. Nautige!

Soovitan: