Sisukord:

OAREE - 3D -trükitud - takistuste vältimise robot insenerihariduse jaoks (OAREE) Arduinoga: 5 sammu (piltidega)
OAREE - 3D -trükitud - takistuste vältimise robot insenerihariduse jaoks (OAREE) Arduinoga: 5 sammu (piltidega)

Video: OAREE - 3D -trükitud - takistuste vältimise robot insenerihariduse jaoks (OAREE) Arduinoga: 5 sammu (piltidega)

Video: OAREE - 3D -trükitud - takistuste vältimise robot insenerihariduse jaoks (OAREE) Arduinoga: 5 sammu (piltidega)
Video: Dreame Bot L10 Pro - robot sprzątający, który "widzi" zabawki, kapcie itp. - High Precision 3D 2024, Juuni
Anonim
Image
Image
OAREE - 3D -trükitud - takistuste vältimise robot insenerihariduse jaoks (OAREE) koos Arduinoga
OAREE - 3D -trükitud - takistuste vältimise robot insenerihariduse jaoks (OAREE) koos Arduinoga
OAREE - 3D -trükitud - takistuste vältimise robot insenerihariduse jaoks (OAREE) koos Arduinoga
OAREE - 3D -trükitud - takistuste vältimise robot insenerihariduse jaoks (OAREE) koos Arduinoga

OAREE (insenerihariduse takistuste vältimise robot)

Disain: Selle juhendi eesmärk oli kujundada OAR (takistuste vältimise robot) robot, mis oleks lihtne/kompaktne, 3D -printitav, hõlpsasti kokkupandav, kasutaks liikumiseks pideva pöörlemise servosid ja millel oleks võimalikult vähe ostetud osi. Usun, et mul on õnnestunud see vinge robot luua ja panin sellele nimeks OAREE (takistuste vältimise robot insenerihariduse jaoks). See robot tajub takistusi, peatub, vaatab vasakule ja paremale, seejärel keerab takistusteta suunas ja jätkab edasi.

Taust: Internetil on palju takistusi robotite vältimiseks, kuid enamik neist on mahukad, raskesti kokkupandavad ja kallid. Paljud neist robotitest on varustatud Arduino koodiga, kuid hästi läbimõeldud ja toimiva näite leidmine oli keeruline. Tahtsin rataste jaoks kasutada ka pideva pöörlemise servosid (alalisvoolumootorite asemel), mida polnud veel tehtud. Niisiis, ma asusin missioonile töötada välja kompaktne, leidlik OAR -robot, mida maailmaga jagada.

Edasine arendus: seda robotit saab edasi arendada, et parandada pingutamise täpsust, lisada IR -andureid joone jälgimiseks, LCD -ekraani takistuste kauguse kuvamiseks ja palju muud.

Tarvikud

  • 1x Arduino Uno -
  • 1x V5 andurikilp -
  • 1x 4xAA patareipesa koos sisse/välja lülitiga -
  • 1x SG90 servo -
  • 2x pideva pöörlemise servod -
  • 1x 9V patarei toitekaabel Arduino jaoks (valikuline) -
  • 1x HC -SR04 ultraheliandur -
  • 4x naissoost jumper juhtmed-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2x kummipaelad
  • 1x 9V aku (valikuline)
  • 4x AA patareid
  • 4x väikesed kruvid (4 x 1/2 või midagi sarnast)
  • Phillipsi kruvikeeraja
  • Liim kummipaelte rataste kinnitamiseks

Samm: 3D printimine: kere, rattad, marmorist ratas, 6 mm polt/mutter ja ultraheli anduri kinnitus

3D print: kere, rattad, marmorist ratas, 6 mm polt/mutter ja ultrahelianduri kinnitus
3D print: kere, rattad, marmorist ratas, 6 mm polt/mutter ja ultrahelianduri kinnitus
3D print: kere, rattad, marmorist ratas, 6 mm polt/mutter ja ultrahelianduri kinnitus
3D print: kere, rattad, marmorist ratas, 6 mm polt/mutter ja ultrahelianduri kinnitus
3D print: kere, rattad, marmorist ratas, 6 mm polt/mutter ja ultrahelianduri kinnitus
3D print: kere, rattad, marmorist ratas, 6 mm polt/mutter ja ultrahelianduri kinnitus

3D -printimiseks on 5 osa.

  1. Keha
  2. Rattad
  3. Marmorist ratas
  4. 6 mm polt/mutter (valikuline, metallist mutrit/polti saab asendada)
  5. Ultraheli anduri kinnitus

Kõik nõutavad. STL -failid on kaasatud nii juhendisse kui ka Sketchup -failidesse. Soovitatav 40% täitmine.

Samm: programmeerige Arduino

Image
Image
Pange robot kokku
Pange robot kokku

Koodi saatmine Arduino UNO -le: Arduino IDE abil saatke kood (lisatud failis) oma Arduino moodulile. Selle visandiga peate alla laadima ja lisama raamatukogud servo.h ja newping.h.

Kood on põhjalikult kommenteeritud, nii et näete, mida iga käsk teeb. Soovi korral saate hõlpsalt muuta ultrahelianduri kaugust suuremaks või väiksemaks. See on esialgne kood ja seda tuleb laiendada ning kasutada projekti edasiseks arendamiseks.

// TAKISTUSTE VÄLTIMINE ROBOT // [email protected], [email protected], TN ülikool Chattanoogas, elektrotehnika, FALL 2019 // Nõutavad materjalid: // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) HCSR04 Ulrasonic Sensor, 4) FS90 Servo (ultrahelianduri jaoks) // 5 & 6) 2x PIDEVAD PÕRETUSSERVOd ratastele // 7) 16mm Marmor rataste tagumise telje jaoks, 8 ja 9) 2 kummipaela ratastele // 10- 15) 1x (4xAA) akupesa koos sisse- ja väljalülitiga, 16 ja 17) 9V aku koos pistikuga toiteallikaks Arduino UNO // 3D PRINT: // 18) ROBOTI korpus, 19 ja 20) 2x rattad, 21) marmorist ratas, 22) ultraheliandur Paigaldus ja 6 mm kruvi (vt lisatud faile) // -------------------------------------- -------------------------------------------------- ---------------------------------------- #include // Include Servo Library #include // Kaasa Newpingi kogu // ------------------------------------------- -------------------------------------------------- ------------------------------------ #määratlege TRIGGER_PIN 1 2 // USA päästik Arduino nööpnõelale 12 #define ECHO_PIN 13 // USA kaja Arduino nööpnõelale 13 #MAX_DISTANCE 250 // Kaugus pingini (max on 250) int distance = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Ultraheli anduri servo servo Vasak_Servo; // Vasaku ratta servoservo Parem_Servo; // Parema ratta servo NewPingi sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Nööpnõelte ja maksimaalse kauguse uus seadistamine. // ------------------------------------------------ -------------------------------------------------- ------------------------------- tühine seadistus () // SISEND/VÄLJUNDID, KUIDAS KINNITADA, SEADA ALGASEND/LIIKUMINE {pinMode (12, VÄLJUND); // Päästiku nööpnõel on seatud väljundi pinMode (13, INPUT); // Sisendiks sisestatud kajapulk US_Servo.attach (11); // US Servo seati pin 11 US_Servo.write (90); // USA SERVO OOTAB EDASI

Vasak_Servo.kinnitus (9); // Vasaku ratta servo tihvti 9 juurde

Left_Servo.write (90); // VASAKU RATTA SERVO on seatud STOP

Right_Servo.attach (10); // Parema ratta servo on seatud tihvtile 10

Right_Servo.write (90); // PAREMA RATTA SERVO on seatud STOP viivitusele (2000); // Oodake 2 sekundit vahemaa = readPing (); // Ping -kauguse hankimine otse edasi -tagasi viivitusega (100); // Oodake 100 ms moveForward (); // ROBOT liigub edasi} // ------------------------------------------ -------------------------------------------------- ------------------------------------ void loop () {int distanceRight = 0; // Alusta USA kaugust paremale 0 int distanceLeft = 0; // Alusta USA kaugust vasakule kell 0 //US_Servo.write(90); // USA kesk servo // viivitus (50); // US_Servo.write (70); // Vaata veidi paremale // delay (250); // US_Servo.write (110); // Vaata veidi vasakule // viivitus (250); // US_Servo.write (90); // Look Center

if (kaugus <= 20) // Robot liigub edasi {moveStop (); // Robot peatub kaugusel = distanceLeft) // Otsustage, mis suunas pöörata {turnRight (); // Paremal küljel on suurim vahemaa, ROBOT pöörab paremale 0,3 s viivitusega (500); // See viivitus määrab pöörde pikkuse moveStop (); // Robotipeatused} else {turnLeft (); // Vasakpoolne suurim vahemaa, ROBOT PÖÖRAB VASAKUL 0,3s viivitusega (500); // See viivitus määrab pöörde pikkuse moveStop (); // Robotipeatused}} else {moveForward (); // Robot liigub edasi} distants = readPing (); // USA LOE UUT PINGI uue sõidusuuna jaoks} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // Ultraheliandur VAATA PAREMAT FUNKTSIOONI {US_Servo.write (30); // USA servo liigub nurga viivitusele paremale (500); int kaugus = readPing (); // Pingi väärtuse määramine õigele viivitusele (100); US_Servo.write (90); // USA servo liigub tagasituleku kaugusele CENTRE; // Kaugus on määratud} // ------------------------------------------ -------------------------------------------------- ------------------------------------ int lookLeft () // Ultraheliandur LOOK LEFT FUNCTION {US_Servo.kirjutage (150); // USA servo liigub vasakule nurga viivitusele (500); int kaugus = readPing (); // Määra pingväärtus vasakule viivitusele (100); US_Servo.write (90); // USA servo LIIKUB KESKUSE tagasituleku kaugusele; // Kaugus on määratud} // ------------------------------------------ -------------------------------------------------- ------------------------------------ int readPing () // Ultraheli anduri Ping-funktsiooni lugemine. {viivitus (100); // 100 ms pingide vahel (min pingiaeg = 0,29 ms) int cm = sonar.ping_cm (); // PING -kaugus kogutakse ja määratakse sentimeetrites, kui (cm == 0) {cm = 250; } tagasitulek cm; } // ------------------------------------------------ -------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 edasi, 0 tagurpidi Right_Servo.write (90); // RightServo 0 edasi, 180 tagasi} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveForward () // ROBOT FORWARD {Left_Servo.kirjutage (180); // LeftServo 180 edasi, 0 tagurpidi Right_Servo.write (0); // RightServo 0 edasi, 180 tagasi} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveBackward () // ROBOT BACKWARD {Left_Servo.kirjutage (0); // LeftServo 180 edasi, 0 tagurpidi Right_Servo.write (180); // RightServo 0 edasi, 180 tagasi} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnRight () // ROBOT RIGHT {Left_Servo.kirjutage (180); // LeftServo 180 edasi, 0 tagurpidi Right_Servo.write (90); // RightServo 0 edasi, 180 tagasi} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnLeft () // ROBOT LEFT {Left_Servo.kirjutage (90); // LeftServo 180 edasi, 0 tagurpidi Right_Servo.write (0); // RightServo 0 edasi, 180 tagasi} // --------------------------------------- -------------------------------------------------- ----------------------------------------

Samm: pange robot kokku

Image
Image
Pange robot kokku
Pange robot kokku
Pange robot kokku
Pange robot kokku

Nüüd on aeg oma robot kokku panna. Sammud on loetletud allpool.

1) Kinnitage ümmargused servokettad ja kummiribad ratastele: kõik servod on varustatud plastikust kinnitusdetailide ja kruvidega. Leidke ümarad kettad ja keerake need rataste tasasel küljel asuvasse kahte auku. Kummipaelad sobivad haardumiseks ratta ümber. Kummiribade paigal hoidmiseks võiksite lisada veidi liimi.

2) Marmorratta kinnitus: kasutage kahte väikest kruvi, et kinnitada marmorist ratas kahe tagaküljel asuva kolmnurga külge. Marmorist ratas on tagaratta lihtne asendaja ja tagab tagumise pöördepunkti.

3) Sisestage servod piludesse (kruvisid pole vaja): asetage FS90 servo (ultrahelianduri jaoks) kere esipessa. Kaks pideva pöörlemise servot libisevad vasakule ja paremale pilule. Pilud on ette nähtud tihedaks kinnitamiseks, nii et servode paigal hoidmiseks pole vaja kruvisid. Veenduge, et servojuhtmed jooksevad läbi pilude soonte nii, et need on suunatud keha tagaosa poole.

4) Aku paigutus 9 V (valikuline): asetage 9 V aku + Arduino toitepistik esiserva taha.

5) Ultrahelianduri kinnituskomplekt: kinnitage kahe väikese kruviga üks kaasasolevatest valgetest plastikust servokinnitustest ultrahelianduri kinnitusplaadi põhja. Järgmisena kasutage 3D -trükitud 6 mm poldi/mutrit (või asendage metallpolt/mutter), et kinnitada ultrahelianduri ümbris kinnitusplaadile. Lõpuks asetage andur korpusesse nii, et tihvtid oleksid ülespoole ja klõpsataks korpuse tagaküljele.

6) 4x AA patareikott: asetage AA patareikott suurde ristkülikukujulisse piirkonda, sisse/välja lüliti tahapoole.

7) Arduino Uno + V5 andurikilp: kinnitage kilp Arduino külge ja asetage aku ümbrise kohale. Toitepistik peaks jääma vasakule.

Teie robot on ehitatud! Mis on järgi? Arduino programmeerimine ja ühendusjuhtmete ühendamine: servod, ultraheliandur ja toiteallikas.

Samm: kinnitage anduri juhtmed

Image
Image
Valmis !!! Ühendage 9 V Arduino toiteallikas, lülitage aku sisse ja hakake OAREE -ga takistusi vältima
Valmis !!! Ühendage 9 V Arduino toiteallikas, lülitage aku sisse ja hakake OAREE -ga takistusi vältima

Ühendage servotraadid V5 Shieldiga:

  1. Vasakpoolne pideva pöörlemise servo kinnitatakse PIN -koodile 9
  2. Parema pideva pöörlemise servo kinnitatakse PIN -koodile 10
  3. Esikülg FS90 Servo kinnitatakse PIN -koodi 11 külge

Ühendage ultrahelianduri tihvtid (4x naissoost naissoost hüppajajuhtmete kaudu) V5 kilbiga:

  1. Käivitage PIN -kood 12
  2. Kaja PIN -ile 13
  3. VCC mis tahes tihvtidele, mis on tähistatud tähega „V”
  4. Maandage mis tahes tihvtidele, mis on tähistatud tähega "G"

Ühendage AA patareikarp V5 kilbiga:

  1. Kinnitage positiivne punane juhe VCC pistiku külge
  2. Kinnitage negatiivne, must juhe maandusühendusele

Samm: lõpetatud !!! Ühendage 9 V Arduino toiteallikas, lülitage aku sisse ja hakake OAREE -ga takistusi vältima

Image
Image
Valmis !!! Ühendage 9 V Arduino toiteallikas, lülitage aku sisse ja hakake OAREE -ga takistusi vältima
Valmis !!! Ühendage 9 V Arduino toiteallikas, lülitage aku sisse ja hakake OAREE -ga takistusi vältima

Valmis !

1) Ühendage 9 V Arduino toiteallikas (valikuline)

2) Lülitage aku sisse

3) Alusta OAREE -ga takistuste vältimist !!!

Olen kindel, et hakkate oma uut sõpra OAREE kiinduma pärast seda, kui olete vaadanud, kuidas see takistust tunneb, varundab ja suunda muudab. OAREE töötab kõige paremini suurte esemetega, millelt ultraheliandur suudab pingutada (nt seinad). Väikeste esemete, nagu tooli jalad, pingutamine on nende väikese pindala ja nurkade tõttu raske. Palun jagage, arendage edasi ja andke mulle teada kõigist vajalikest kohandustest või vigadest. See on olnud suurepärane õppimiskogemus ja loodan, et teil on selle projekti tegemine sama lõbus kui minul!

Robootikavõistlus
Robootikavõistlus
Robootikavõistlus
Robootikavõistlus

Robootikavõistluse teine koht

Soovitan: