Innehållsförteckning:

OAREE - 3D -tryckt - hinder för att undvika robot för ingenjörsutbildning (OAREE) med Arduino: 5 steg (med bilder)
OAREE - 3D -tryckt - hinder för att undvika robot för ingenjörsutbildning (OAREE) med Arduino: 5 steg (med bilder)

Video: OAREE - 3D -tryckt - hinder för att undvika robot för ingenjörsutbildning (OAREE) med Arduino: 5 steg (med bilder)

Video: OAREE - 3D -tryckt - hinder för att undvika robot för ingenjörsutbildning (OAREE) med Arduino: 5 steg (med bilder)
Video: Ежедневные новости Crypto Pirates — вторник, 19 января 2022 г. — последнее обновление новостей о криптовалютах 2024, September
Anonim
Image
Image
OAREE - 3D -tryckt - hinder för att undvika robot för ingenjörsutbildning (OAREE) med Arduino
OAREE - 3D -tryckt - hinder för att undvika robot för ingenjörsutbildning (OAREE) med Arduino
OAREE - 3D -tryckt - hinder för att undvika robot för ingenjörsutbildning (OAREE) med Arduino
OAREE - 3D -tryckt - hinder för att undvika robot för ingenjörsutbildning (OAREE) med Arduino

OAREE (hinder för att undvika robot för ingenjörsutbildning)

Design: Målet med denna instruerbara var att designa en OAR (Obstacle Avoiding Robot) robot som var enkel/kompakt, 3D -utskrivbar, lätt att montera, använder kontinuerliga rotationsservos för rörelse och har så få köpta delar som möjligt. Jag tror att jag har lyckats skapa denna fantastiska robot och har döpt den till OAREE (Obstacle Avoiding Robot for Engineering Education). Denna robot känner av hinder, stannar, tittar åt vänster och höger, svänger sedan i fri riktning och fortsätter framåt.

Bakgrund: Internet har många hinder för att undvika robotar, men de flesta är skrymmande, svåra att montera och dyra. Många av dessa robotar har Arduino -kod levererad, men det var svårt att hitta ett genomtänkt, fungerande exempel. Jag ville också använda servon för kontinuerlig rotation för hjulen (istället för likströmsmotorer), vilket inte hade gjorts än. Så jag gav mig iväg på ett uppdrag att utveckla en kompakt, uppfinningsrik OAR -robot som ska delas med världen.

Vidareutveckling: Denna robot kan vidareutvecklas för bättre pingnoggrannhet, lägga till IR -sensorer för linjeföljningsmöjligheter, LCD -skärm för att visa hinderavstånd och mycket mer.

Tillbehör

  • 1x Arduino Uno -
  • 1x V5 Sensor Shield -
  • 1x 4xAA batterihållare med strömbrytare -
  • 1x SG90 Servo -
  • 2x kontinuerlig rotationsserver -
  • 1x 9V batterikabel för Arduino (TILLVAL) -
  • 1x HC -SR04 ultraljudssensor -
  • 4x kvinnliga-kvinnliga bygelkablar-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2x gummiband
  • 1x 9V batteri (TILLVAL)
  • 4x AA -batterier
  • 4x små skruvar (4 x 1/2 eller något liknande)
  • Stjärnskruvmejsel
  • Lim för att fästa gummiband på hjulen

Steg 1: 3D -utskrift: Kaross, hjul, marmorhjul, 6 mm bult/mutter och ultraljudssensormontering

3D -utskrift: Hus, hjul, marmorhjul, 6 mm bult/mutter och ultraljuds sensorfäste
3D -utskrift: Hus, hjul, marmorhjul, 6 mm bult/mutter och ultraljuds sensorfäste
3D -utskrift: Hus, hjul, marmorhjul, 6 mm bult/mutter och ultraljuds sensorfäste
3D -utskrift: Hus, hjul, marmorhjul, 6 mm bult/mutter och ultraljuds sensorfäste
3D -utskrift: Hus, hjul, marmorhjul, 6 mm bult/mutter och ultraljuds sensorfäste
3D -utskrift: Hus, hjul, marmorhjul, 6 mm bult/mutter och ultraljuds sensorfäste

Det finns 5 delar för 3D -utskrift.

  1. Kropp
  2. Hjul
  3. Marmor Caster
  4. 6 mm bult/mutter (tillval, en metallmutter/bult kan ersättas)
  5. Ultrasonic Sensor Mount

Alla nödvändiga. STL -filer ingår i denna instruerbara såväl som i Sketchup -filerna. 40% fyllning rekommenderas.

Steg 2: Programmera Arduino

Image
Image
Montera roboten
Montera roboten

Skicka kod till Arduino UNO: Använd Arduino IDE och skicka koden (i den bifogade filen) till din Arduino -modul. Du måste ladda ner och inkludera servo.h- och newping.h -biblioteken med denna skiss.

Koden kommenteras noggrant, så att du kan se vad varje kommando gör. Du kan enkelt ändra avståndet till ultraljudssensorn till ett större eller mindre värde om så önskas. Detta är en första kod och är tänkt att utvidgas och användas för vidare projektutveckling.

// OBSTACLE UNDVIKANDE ROBOT // [email protected], [email protected], University of TN at Chattanooga, Electrical Engineering, FALL 2019 // Material som krävs: // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) HCSR04 ultraljudssensor, 4) FS90 Servo (för ultraljudssensor) // 5 & 6) 2x KONTINUERA ROTERINGSSERVOS för hjulen // 7) 16 mm marmor för bakre svänghjul, 8 & 9) 2 gummiband för hjul // 10- 15) 1x (4xAA) Batterihållare med på/av -omkopplare, 16 & 17) 9V batteri med kontakt för strömförsörjning Arduino UNO // 3D PRINT: // 18) ROBOT -kropp, 19 & 20) 2x hjul, 21) Marmorhjul, 22) Ultraljudssensor Montera och 6 mm skruv (se bifogade filer) // -------------------------------------- ---------------------------------------------------------- ----------------------------------------- #include // Include Servo Library #include // Inkludera Newping-bibliotek // ------------------------------------------- ---------------------------------------------------------- ------------------------------------ #definiera TRIGGER_PIN 1 2 // US trigger till pin 12 på Arduino #define ECHO_PIN 13 // US Echo to pin 13 on Arduino #define MAX_DISTANCE 250 // Distance to ping (max is 250) int distance = 100; // ------------------------------------------------ ---------------------------------------------------------- ------------------------------- Servo US_Servo; // Ultrasonic Sensor Servo Servo Left_Servo; // Vänster hjul Servo Servo Right_Servo; // Högerhjuls servo NewPing -ekolod (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing -inställning av stift och maximalt avstånd. // ------------------------------------------------ ---------------------------------------------------------- ------------------------------- ogiltig inställning () // INGÅNG/UTGÅNGAR, VAR FÄSTA, STÄLL IN INLEDANDE STÄLLNING/RÖRELSE {pinMode (12, OUTPUT); // Trigger pin set as output pinMode (13, INPUT); // Echo pin set as input US_Servo.attach (11); // US Servo inställd på pin 11 US_Servo.write (90); // USA SERVO SER FRAM

Left_Servo.attach (9); // Vänster hjulservo till stift 9

Left_Servo.write (90); // VÄNSTERHJULSERVO inställd på STOPP

Right_Servo.attach (10); // Högerhjuls servosats till stift 10

Right_Servo.write (90); // RIGHT WHEEL SERVO inställd på STOP -fördröjning (2000); // Vänta i 2 sekunder avstånd = readPing (); // Få pingdistans vid fördröjd positionsfördröjning (100); // Vänta på 100 ms moveForward (); // ROBOT FÖRFÖR}}------------------------------------------- ---------------------------------------------------------- ------------------------------------- void loop () {int distanceRight = 0; // Starta USA: s avstånd till höger vid 0 int distanceLeft = 0; // Starta USA: s avstånd till vänster vid 0 //US_Servo.write(90); // Center USA servo // fördröjning (50); // US_Servo.write (70); // Titta lite åt höger // fördröjning (250); // US_Servo.write (110); // Titta lite vänster // fördröjning (250); // US_Servo.write (90); // Look Center

if (avstånd <= 20) // Robot flyttar framåt {moveStop (); // Robot STOPPAR på avstånd = distansVänster) // Bestäm vilken riktning du ska svänga {turnRight (); // Höger sida har störst avstånd, ROBOT SVARAR HÖGER för 0,3s fördröjning (500); // Denna fördröjning bestämmer svänglängden moveStop (); // Robot STOPP} else {turnLeft (); // Största avstånd på vänster sida, ROBOT VÄNDER VÄNSTER för 0,3s fördröjning (500); // Denna fördröjning bestämmer svänglängden moveStop (); // Robot STOPP}} annat {moveForward (); // Robot rör sig framåt} avstånd = readPing (); // USA LÄS NY PING för den nya färdriktningen} // ----------------------------------- ---------------------------------------------------------- -------------------------------------------- int lookRight () // Ultraljudssensor Titta RÄTT FUNKTION {US_Servo.write (30); // USA: s servo rör sig RÄTT till vinkelfördröjning (500); int avstånd = readPing (); // Ställ in pingvärde för höger fördröjning (100); US_Servo.write (90); // USA: s servo flyttar till CENTRUM returavstånd; // Avstånd är inställt} // ------------------------------------------ ---------------------------------------------------------- ------------------------------------ int lookLeft () // Ultrasonic Sensor LOOK LEFT FUNCTION {US_Servo.skriv (150); // USA: s servo RÖR VÄNSTER till vinkelfördröjning (500); int avstånd = readPing (); // Ställ in pingvärde för vänster fördröjning (100); US_Servo.write (90); // USA: s servo flyttar till CENTRUM returavstånd; // Avståndet är inställt} // ------------------------------------------ ---------------------------------------------------------- ------------------------------------ int readPing () // Läs Ping-funktion för ultraljudssensor. {fördröjning (100); // 100ms mellan pingarna (min pingtid = 0.29ms) int cm = sonar.ping_cm (); // PING -avståndet samlas in och anges i cm om (cm == 0) {cm = 250; } retur cm; } // ----------------------------------------------- ---------------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 framåt, 0 bakåt Right_Servo.write (90); // RightServo 0 framåt, 180 bakåt} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- void moveForward () // ROBOT FORWARD {Left_Servo.skriv (180); // LeftServo 180 framåt, 0 bakåt Right_Servo.write (0); // RightServo 0 framåt, 180 bakåt} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- void moveBackward () // ROBOT BACKWARD {Left_Servo.skriv (0); // LeftServo 180 framåt, 0 bakåt Right_Servo.write (180); // RightServo 0 framåt, 180 bakåt} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- void turnRight () // ROBOT RIGHT {Left_Servo.skriv (180); // LeftServo 180 framåt, 0 bakåt Right_Servo.write (90); // RightServo 0 framåt, 180 bakåt} // --------------------------------------- ---------------------------------------------------------- ---------------------------------------- void turnLeft () // ROBOT LEFT {Left_Servo.skriv (90); // LeftServo 180 framåt, 0 bakåt Right_Servo.write (0); // RightServo 0 framåt, 180 bakåt} // --------------------------------------- ---------------------------------------------------------- ----------------------------------------

Steg 3: Montera roboten

Image
Image
Montera roboten
Montera roboten
Montera roboten
Montera roboten

Nu är det dags att sätta ihop din robot. Stegen listas nedan.

1) Fäst rund servoskiva och gummiband på hjulen: Alla servon levereras med plastmonteringsutrustning och skruvar. Hitta de runda skivorna och skruva fast dem i de två hålen på den plana sidan av hjulen. Gummibanden passar runt hjulet för att ge grepp. Du kanske vill lägga till lite lim för att hålla gummibanden på plats.

2) Marble Caster Attachment: Använd två små skruvar för att fästa marmorhjulet på de två trianglarna på baksidan. Marmorhjulet är en enkel ersättning för ett bakhjul och ger en bakre svängpunkt.

3) Sätt in servon i facken (inga skruvar behövs): Placera FS90 -servon (för ultraljudssensorn) i kroppens främre fack. De två kontinuerliga rotationsservona glider in till vänster och höger spår. Spåren är konstruerade för en tät passform, så att inga skruvar behövs för att hålla servon på plats. Se till att servotrådarna löper genom spåren i spåren så att de är vända mot baksidan av kroppen.

4) 9V batteriplacering (TILLVAL): Placera 9V batteri + Arduino -strömkontakt bakom den främre servon.

5) Montering av ultraljudssensor: Använd två små skruvar för att fästa en av de medföljande vita servotillbehören i plast på undersidan av den ultraljudsgivare monteringsplattan. Använd sedan den 3D -tryckta 6 mm bulten/muttern (eller ersätt en metallbult/mutter) för att fästa ultraljudssensorhuset på monteringsplattan. Slutligen, placera sensorn i höljet med stiften uppåt och snäpp i baksidan av höljet.

6) 4x AA -batterifodral: Placera AA -batterifodralet i det stora rektangulära området, med på/av -omkopplaren vänd bakåt.

7) Arduino Uno + V5 Sensor Shield: Fäst skärmen på Arduino och placera på fästena ovanför batterifodralet. Strömkontakten ska vara vänd åt vänster.

Din robot är byggd! Vad är kvar? Programmering av Arduino och anslutning av bygelkablar: Servos, ultraljudssensor och strömförsörjning.

Steg 4: Fäst sensorkablar

Image
Image
Färdiga!!! Anslut 9V Arduino -strömförsörjning, slå på batteriet och börja undvika hinder med OAREE
Färdiga!!! Anslut 9V Arduino -strömförsörjning, slå på batteriet och börja undvika hinder med OAREE

Anslut servotrådar till V5 Shield:

  1. Vänster kontinuerlig rotationsservo kopplas till PIN 9
  2. Höger kontinuerlig rotationsservo kopplas till PIN 10
  3. Framsida FS90 Servo kopplas till PIN 11

Anslut Ultrasonic Sensor Pins (via 4x Female till Female Jumper Wires) till V5 Shield:

  1. Utlösare till PIN 12
  2. Eko till PIN 13
  3. VCC till någon av stiften märkta med 'V'
  4. Mark till någon av stiften markerade med 'G'

Anslut AA -batterifodralet till V5 -skärmen:

  1. Fäst den positiva, röda ledningen till VCC -kontakten
  2. Fäst den negativa, svarta ledningen till jordanslutningen

Steg 5: Avslutad !!! Anslut 9V Arduino -strömförsörjning, slå på batteriet och börja undvika hinder med OAREE

Image
Image
Färdiga!!! Anslut 9V Arduino -strömförsörjning, slå på batteriet och börja undvika hinder med OAREE
Färdiga!!! Anslut 9V Arduino -strömförsörjning, slå på batteriet och börja undvika hinder med OAREE

Färdiga!!

1) Anslut 9V Arduino -strömförsörjningen (tillval)

2) Slå på batteriet

3) Börja undvika hinder med OAREE !!!

Jag är säker på att du kommer att bli förtjust i din nya vän, OAREE, efter att ha sett den känna ett hinder, backa upp och ändra riktning. OAREE fungerar bäst med stora föremål som ultraljudssensorn kan pinga av (som väggar). Det har svårt att pinga små föremål som stolben på grund av deras lilla yta och hörn. Dela, utveckla vidare och meddela mig om eventuella justeringar eller fel som behövs. Detta har varit en stor inlärningsupplevelse och jag hoppas att du har lika roligt att göra detta projekt som jag!

Robotics Contest
Robotics Contest
Robotics Contest
Robotics Contest

Tvåa i Robotics Contest

Rekommenderad: