Sisällysluettelo:

OAREE - 3D -tulostettu - Esteitä välttävä robotti insinöörikoulutusta varten (OAREE) Arduinolla: 5 vaihetta (kuvilla)
OAREE - 3D -tulostettu - Esteitä välttävä robotti insinöörikoulutusta varten (OAREE) Arduinolla: 5 vaihetta (kuvilla)

Video: OAREE - 3D -tulostettu - Esteitä välttävä robotti insinöörikoulutusta varten (OAREE) Arduinolla: 5 vaihetta (kuvilla)

Video: OAREE - 3D -tulostettu - Esteitä välttävä robotti insinöörikoulutusta varten (OAREE) Arduinolla: 5 vaihetta (kuvilla)
Video: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2024, Kesäkuu
Anonim
Image
Image
OAREE - 3D -tulostettu - Esteitä välttävä robotti insinöörikoulutukseen (OAREE) Arduinolla
OAREE - 3D -tulostettu - Esteitä välttävä robotti insinöörikoulutukseen (OAREE) Arduinolla
OAREE - 3D -tulostettu - Esteitä välttävä robotti insinöörikoulutukseen (OAREE) Arduinolla
OAREE - 3D -tulostettu - Esteitä välttävä robotti insinöörikoulutukseen (OAREE) Arduinolla

OAREE (Esteen välttämisrobotti tekniikan koulutukseen)

Suunnittelu: Tämän ohjeen tavoitteena oli suunnitella OAR -robotti, joka oli yksinkertainen/kompakti, 3D -tulostettava, helppo koota, käyttää jatkuvan pyörimisen servoja liikkumiseen ja jossa on mahdollisimman vähän ostettuja osia. Uskon, että olen onnistunut luomaan tämän mahtavan robotin ja olen antanut sille nimen OAREE (Engineering Educationin esteen välttäminen). Tämä robotti tunnistaa esteet, pysähtyy, katsoo vasemmalle ja oikealle, kääntyy sitten esteettä ja jatkaa eteenpäin.

Taustaa: Internetissä on lukuisia esteitä välttää robotteja, mutta useimmat niistä ovat suuria, vaikeasti koottavia ja kalliita. Monilla näistä roboteista on mukana Arduino -koodi, mutta hyvin harkitun toimivan esimerkin löytäminen oli vaikeaa. Halusin myös käyttää pyörissä jatkuvan pyörimisen servoja (tasavirtamoottorien sijasta), mitä ei ollut vielä tehty. Aloitin siis tehtävän kehittää kompakti, kekseliäs OAR -robotti jaettavaksi maailman kanssa.

Jatkokehitys: Tätä robottia voidaan edelleen kehittää parantamaan ping -tarkkuutta, lisäämällä IR -antureita linjanseurantaominaisuuksia varten, LCD -näyttö estoetäisyyden näyttämiseksi ja paljon muuta.

Tarvikkeet

  • 1x Arduino Uno -
  • 1x V5 -anturisuoja -
  • 1x 4xAA -paristopidike päälle/pois -kytkimellä -
  • 1x SG90 Servo -
  • 2x Jatkuvan pyörimisen servot -
  • 1x 9 V: n akkukaapeli Arduinolle (LISÄVARUSTE) -
  • 1x HC -SR04 -ultraäänianturi -
  • 4x naaras-naarasliitinjohtimet-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2x kuminauhat
  • 1x 9V paristo (LISÄVARUSTE)
  • 4x AA -paristot
  • 4x pienet ruuvit (4 x 1/2 tai jotain vastaavaa)
  • Phillips -ruuvimeisseli
  • Liima kuminauhojen kiinnittämiseen pyöriin

Vaihe 1: 3D -tulostus: runko, pyörät, marmoripyörä, 6 mm: n pultti/mutteri ja ultraäänianturikiinnike

3D -tulostus: runko, pyörät, marmoripyörä, 6 mm pultti/mutteri ja ultraäänianturikiinnike
3D -tulostus: runko, pyörät, marmoripyörä, 6 mm pultti/mutteri ja ultraäänianturikiinnike
3D -tulostus: runko, pyörät, marmoripyörä, 6 mm pultti/mutteri ja ultraäänianturikiinnike
3D -tulostus: runko, pyörät, marmoripyörä, 6 mm pultti/mutteri ja ultraäänianturikiinnike
3D -tulostus: runko, pyörät, marmoripyörä, 6 mm pultti/mutteri ja ultraäänianturikiinnike
3D -tulostus: runko, pyörät, marmoripyörä, 6 mm pultti/mutteri ja ultraäänianturikiinnike

3D -tulostuksessa on 5 osaa.

  1. Runko
  2. Pyörät
  3. Marmoripyörä
  4. 6 mm pultti/mutteri (valinnainen, metallimutteri/pultti voidaan korvata)
  5. Ultraäänianturin kiinnike

Kaikki tarvittavat. STL -tiedostot sisältyvät tähän ohjeeseen sekä Sketchup -tiedostot. 40% täyttö suositellaan.

Vaihe 2: Ohjelmoi Arduino

Image
Image
Kokoa robotti
Kokoa robotti

Lähetä koodi Arduinolle UNO: Lähetä Arduino IDE: llä koodi (liitteenä olevassa tiedostossa) Arduino -moduulillesi. Sinun on ladattava ja sisällytettävä servo.h- ja newping.h -kirjastot tähän luonnokseen.

Koodi kommentoidaan perusteellisesti, joten voit nähdä, mitä kukin komento tekee. Voit halutessasi muuttaa ultraäänianturin etäisyyden suureksi tai pienemmäksi. Tämä on alustava koodi, ja sitä on tarkoitus laajentaa ja käyttää projektin kehittämiseen.

// ESTEIDEN VÄLTÄMINEN ROBOTTI // [email protected], [email protected], University of TN at Chattanooga, Electrical Engineering, FALL 2019 // Tarvittavat materiaalit: // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) HCSR04 Ulrasonic-anturi, 4) FS90 Servo (ultraäänianturille) // 5 & 6) 2x JATKUVAT KÄÄNTÖPALVELUT pyörille // 7) 16 mm Marmori kääntöpyörälle, 8 ja 9) 2 kuminauhaa pyörille // 10- 15) 1x (4xAA) paristopidike virtakytkimellä, 16 ja 17) 9V paristo virtaliittimellä Arduino UNO // 3D PRINT: // 18) ROBOT -runko, 19 ja 20) 2x pyörät, 21) marmoripyörä, 22) ultraäänianturi Kiinnitys ja 6 mm: n ruuvi (katso liitteenä olevat tiedostot) // -------------------------------------- -------------------------------------------------- ---------------------------------------- #include // Sisällytä servokirjasto #include // Sisällytä Newping-kirjasto // ------------------------------------------- -------------------------------------------------- ------------------------------------ #määrittele TRIGGER_PIN 1 2 // Yhdysvaltain liipaisin nastaan 12 Arduinolla #define ECHO_PIN 13 // US Echo nastaan 13 Arduinolla #define MAX_DISTANCE 250 // Etäisyys pingiin (max on 250) int etäisyys = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Ultraäänianturin servoservo Vasen_Servo; // Vasen pyörän servoservo Oikea_Servo; // Oikean pyörän servo NewPing -luotain (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing -määritys nastat ja suurin etäisyys. // ------------------------------------------------ -------------------------------------------------- ------------------------------- mitätön asetus () // TULOT/LÄHTÖT, MIHIN LIITTÄMINEN, ASETA ALKUSIJAINTI/LIIKE {pinMode (12, OUTPUT); // Liipaisintappi asetettu lähtötapiksiMode (13, INPUT); // Echo pin asetettu tuloksi US_Servo.attach (11); // US Servo asetettu nastaan 11 US_Servo.write (90); // US SERVO ETSI eteenpäin

Vasen_Servo.kiinnitys (9); // Vasen pyörän servo nastaan 9

Vasen_palvelukirjoitus (90); // VASENPYÖRÄN PALVELU asetettu STOP -asentoon

Right_Servo.attach (10); // Oikean pyörän servo asetettu nastaan 10

Oikea_palvelukirjoitus (90); // OIKEAN PYÖRÄN PALVELU asetettu STOP -viiveeseen (2000); // Odota 2 sekuntia etäisyys = readPing (); // Hae ping -etäisyys suoraan eteenpäin -viiveellä (100); // Odota 100 ms moveForward (); // ROBOT SIIRTÄÄ ETEENPÄIN} // ------------------------------------------ -------------------------------------------------- ------------------------------------ void loop () {int distanceRight = 0; // Aloita Yhdysvaltojen etäisyys oikealle 0 int distanceLeft = 0; // Aloita Yhdysvaltojen etäisyys vasemmalle 0 // US_Servo.write(90); // Center US servo // delay (50); // US_Servo.write (70); // Katso hieman oikealta // delay (250); // US_Servo.write (110); // Katso hieman vasemmalle // viive (250); // US_Servo.write (90); // Look Center

if (etäisyys <= 20) // Robotti LIIKUU Eteenpäin {moveStop (); // Robotti PYSÄYTÄÄ etäisyydellä = distanceLeft) // Päätä mihin suuntaan kääntyä {turnRight (); // Oikealla puolella on suurin etäisyys, ROBOT KÄÄNTÄÄ OIKEALLE 0,3 sekunnin viiveellä (500); // Tämä viive määrittää käännöksen pituuden moveStop (); // Robotin askeleet} else {turnLeft (); // Suurin etäisyys vasemmalta puolelta, ROBOT KÄÄNTÄÄ VASEMMALLE 0,3 sekunnin viiveellä (500); // Tämä viive määrittää käännöksen pituuden moveStop (); // Robotin askeleet}} else {moveForward (); // Robotti liikkuu eteenpäin} etäisyys = readPing (); // US LUE UUSI PING uuden ajosuunnan suhteen} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // Ultraäänianturi LOOK OIKEA TOIMINTO {US_Servo.write (30); // US -servo liikkuu oikealle kulmaviiveeseen (500); int etäisyys = lukuPing (); // Aseta ping -arvo oikealle viiveelle (100); US_Servo.write (90); // Yhdysvaltain servo siirtyy KESKUKSEEN paluumatka; // Etäisyys on asetettu} // ------------------------------------------ -------------------------------------------------- ------------------------------------ int lookLeft () // Ultraäänianturi LOOK LEFT FUNCTION {US_Servo. kirjoittaa (150); // US -servo siirtyy vasemmalle kulmaviiveeseen (500); int etäisyys = lukuPing (); // Aseta ping -arvo vasemmalle viiveelle (100); US_Servo.write (90); // Yhdysvaltain servo siirtyy KESKUKSEEN paluumatka; // Etäisyys on asetettu} // ------------------------------------------ -------------------------------------------------- ------------------------------------ int readPing () // Lue Ping-toiminto ultraäänianturille. {viive (100); // 100 ms pingien välillä (min ping -aika = 0,29 ms) int cm = sonar.ping_cm (); // PING -etäisyys kerätään ja asetetaan cm: ksi, jos (cm == 0) {cm = 250; } paluu cm; } // ----------------------------------------------- -------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 eteenpäin, 0 taaksepäin Right_Servo.write (90); // RightServo 0 eteenpäin, 180 taaksepäin} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveForward () // ROBOT FORWARD {Left_Servo. kirjoittaa (180); // LeftServo 180 eteenpäin, 0 taaksepäin Right_Servo.write (0); // RightServo 0 eteenpäin, 180 taaksepäin} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveBackward () // ROBOT BACKWARD {Left_Servo. kirjoittaa (0); // LeftServo 180 eteenpäin, 0 taaksepäin Right_Servo.write (180); // RightServo 0 eteenpäin, 180 taaksepäin // // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnRight () // ROBOT OIKEA {Left_Servo. kirjoittaa (180); // LeftServo 180 eteenpäin, 0 taaksepäin Right_Servo.write (90); // RightServo 0 eteenpäin, 180 taaksepäin // // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnLeft () // ROBOT LEFT {Left_Servo. kirjoittaa (90); // LeftServo 180 eteenpäin, 0 taaksepäin Right_Servo.write (0); // RightServo 0 eteenpäin, 180 taaksepäin // // --------------------------------------- -------------------------------------------------- ----------------------------------------

Vaihe 3: Kokoa robotti

Image
Image
Kokoa robotti
Kokoa robotti
Kokoa robotti
Kokoa robotti

Nyt on aika koota robotti yhteen. Vaiheet on lueteltu alla.

1) Kiinnitä pyöreät servolevyt ja kuminauhat pyöriin: Kaikki servot toimitetaan muovisilla kiinnitystarvikkeilla ja ruuveilla. Etsi pyöreät kiekot ja ruuvaa ne pyörien tasaisen puolen kahteen reikään. Kuminauhat sopivat pyörän ympärille pitämään otetta. Haluat ehkä lisätä hieman liimaa pitämään kuminauhat paikallaan.

2) Marmoripyörän kiinnitys: Kiinnitä marmoripyörä kahteen pieneen ruuviin kahteen kolmioon takana. Marmoripyörä on yksinkertainen korvaaja takapyörälle ja tarjoaa kääntöpisteen takana.

3) Aseta servot aukkoihin (ei tarvita ruuveja): Aseta FS90 -servo (ultraäänianturille) rungon etuosaan. Kaksi jatkuvasti pyörivää servoa liukuvat vasemmalle ja oikealle raolle. Urat on suunniteltu tiukkaan istuvuuteen, joten servoja ei tarvitse kiinnittää ruuveilla. Varmista, että servojohdot kulkevat urien urien läpi siten, että ne ovat rungon takaosaa kohti.

4) 9 V: n akun sijoittaminen (LISÄVARUSTE): Aseta 9 V: n akku + Arduino -virtaliitin etuservon taakse.

5) Ultraäänianturin kiinnityskokoonpano: Kiinnitä yksi pienistä ruuveista yksi mukana tulevista valkoisista muovisista servokiinnikkeistä ultraäänianturin kiinnityslevyn pohjaan. Käytä seuraavaksi 3D -tulostettua 6 mm: n pulttia/mutteria (tai vaihda metallipultti/mutteri) kiinnittääksesi ultraäänianturikotelon asennuslevyyn. Aseta lopuksi anturi koteloon tapit ylöspäin ja napsauta kotelon takaosaan.

6) 4x AA -paristokotelo: Aseta AA -paristokotelo suurelle suorakulmaiselle alueelle, virtakytkin taaksepäin.

7) Arduino Uno + V5 -anturisuoja: Kiinnitä suoja Arduinoon ja aseta paristokotelon yläpuolella oleviin kiinnikkeisiin. Virtaliittimen tulee osoittaa vasemmalle.

Robotti on rakennettu! Mitä on jäljellä? Arduinon ohjelmointi ja jumpperilankojen yhdistäminen: Servot, ultraäänianturi ja virtalähde.

Vaihe 4: Kiinnitä anturijohdot

Image
Image
Valmis !!! Kytke 9 V: n Arduino -virtalähde, kytke akku päälle ja aloita esteiden välttäminen OAREEn avulla
Valmis !!! Kytke 9 V: n Arduino -virtalähde, kytke akku päälle ja aloita esteiden välttäminen OAREEn avulla

Liitä Servo -johdot V5 Shieldiin:

  1. Vasen jatkuva kiertoservo kiinnittyy PIN 9: ään
  2. Oikea jatkuvan pyörityksen servo kiinnittyy PIN 10: een
  3. Edessä oleva FS90 Servo kiinnitetään PIN -koodiin 11

Liitä ultraäänianturin nastat (4 x naaras -naarasliitinjohdin) V5 -suojaan:

  1. Käynnistä PIN 12
  2. Kaiku PIN -koodille 13
  3. VCC mihin tahansa "V" -merkillä varustettuihin nastoihin
  4. Maadoita mihin tahansa G -merkittyihin nastoihin

Liitä AA -paristokotelo V5 -suojaan:

  1. Kiinnitä punainen, punainen johto VCC -liittimeen
  2. Kiinnitä negatiivinen musta johto maadoitusliitäntään

Vaihe 5: Valmis !!! Kytke 9 V: n Arduino -virtalähde, kytke akku päälle ja ala välttää esteitä OAREEn avulla

Image
Image
Valmis !!! Kytke 9 V: n Arduino -virtalähde, kytke akku päälle ja ala välttää esteitä OAREEn avulla
Valmis !!! Kytke 9 V: n Arduino -virtalähde, kytke akku päälle ja ala välttää esteitä OAREEn avulla

Valmis !

1) Liitä 9 V: n Arduino -virtalähde (valinnainen)

2) Kytke akku päälle

3) Aloita esteiden välttäminen OAREEn kanssa !!!

Olen varma, että pidät uudesta ystävästäsi, OAREEsta, kun olet katsonut sen havaitsevan esteen, varmuuskopioivan ja muuttavan suuntaa. OAREE toimii parhaiten suurilla esineillä, joista ultraäänianturi voi pingottaa (kuten seinät). Sen on vaikea pingottaa pieniä esineitä, kuten tuolin jalkoja, niiden pienen pinta -alan ja kulmien vuoksi. Jaa, kehitä edelleen ja kerro minulle kaikista tarvittavista muutoksista tai virheistä. Tämä on ollut hieno oppimiskokemus ja toivon, että teillä on yhtä hauskaa tehdä tämä projekti kuin minulla!

Robotiikkakilpailu
Robotiikkakilpailu
Robotiikkakilpailu
Robotiikkakilpailu

Toinen sija Robotics -kilpailussa

Suositeltava: