Innholdsfortegnelse:

OAREE - 3D -trykt - Hindring for å unngå robot for ingeniørutdanning (OAREE) med Arduino: 5 trinn (med bilder)
OAREE - 3D -trykt - Hindring for å unngå robot for ingeniørutdanning (OAREE) med Arduino: 5 trinn (med bilder)

Video: OAREE - 3D -trykt - Hindring for å unngå robot for ingeniørutdanning (OAREE) med Arduino: 5 trinn (med bilder)

Video: OAREE - 3D -trykt - Hindring for å unngå robot for ingeniørutdanning (OAREE) med Arduino: 5 trinn (med bilder)
Video: The Third Industrial Revolution: A Radical New Sharing Economy 2024, Juni
Anonim
Image
Image
OAREE - 3D -trykt - Hindring for å unngå robot for ingeniørutdanning (OAREE) med Arduino
OAREE - 3D -trykt - Hindring for å unngå robot for ingeniørutdanning (OAREE) med Arduino
OAREE - 3D -trykt - Hindring for å unngå robot for ingeniørutdanning (OAREE) med Arduino
OAREE - 3D -trykt - Hindring for å unngå robot for ingeniørutdanning (OAREE) med Arduino

OAREE (hinder for å unngå robot for ingeniørutdanning)

Design: Målet med denne instruksen var å designe en OAR (Obstacle Avoiding Robot) robot som var enkel/kompakt, 3D -utskrivbar, enkel å montere, bruker kontinuerlige rotasjonsservoer for bevegelse og har så få kjøpte deler som mulig. Jeg tror at jeg har lyktes med å lage denne fantastiske roboten og har kalt den OAREE (Obstacle Avoiding Robot for Engineering Education). Denne roboten vil føle hindringer, stoppe, se til venstre og høyre, så snu i uhindret retning og fortsett fremover.

Bakgrunn: Internett har mange hindringer for å unngå roboter, men de fleste er klumpete, vanskelige å montere og dyre. Mange av disse robotene har Arduino -kode levert, men det var vanskelig å finne et godt gjennomtenkt, fungerende eksempel. Jeg ønsket også å bruke kontinuerlige rotasjonsservoer for hjulene (i stedet for likestrømsmotorer), noe som ikke var gjort ennå. Så jeg dro på et oppdrag for å utvikle en kompakt, oppfinnsom OAR -robot som skal deles med verden.

Videreutvikling: Denne roboten kan videreutvikles for bedre pingingsnøyaktighet, legge til IR -sensorer for linjefølge, LCD -skjerm for å vise hinderavstand og mye mer.

Rekvisita

  • 1x Arduino Uno -
  • 1x V5 sensorskjerm -
  • 1x 4xAA batteriholder med på/av -bryter -
  • 1x SG90 Servo -
  • 2x kontinuerlig rotasjonsserver -
  • 1x 9V batteristrømkabel for Arduino (valgfritt) -
  • 1x HC -SR04 ultralydsensor -
  • 4x hun-ledninger til kvinner og kvinner-https://www.amazon.com/RGBZONE-120pcs-Multicolored…
  • 2x gummibånd
  • 1x 9V batteri (valgfritt)
  • 4x AA -batterier
  • 4x små skruer (4 x 1/2 eller noe lignende)
  • Phillips skrujern
  • Lim for å feste gummibånd til hjul

Trinn 1: 3D -utskrift: Kropp, hjul, marmorhjul, 6 mm bolt/mutter og ultralydsensormontering

3D -utskrift: Karosseri, hjul, marmorhjul, 6 mm bolt/mutter og ultralydsensormontering
3D -utskrift: Karosseri, hjul, marmorhjul, 6 mm bolt/mutter og ultralydsensormontering
3D -utskrift: Kropp, hjul, marmorhjul, 6 mm bolt/mutter og ultralydsensormontering
3D -utskrift: Kropp, hjul, marmorhjul, 6 mm bolt/mutter og ultralydsensormontering
3D -utskrift: Karosseri, hjul, marmorhjul, 6 mm bolt/mutter og ultralydsensormontering
3D -utskrift: Karosseri, hjul, marmorhjul, 6 mm bolt/mutter og ultralydsensormontering

Det er 5 deler til 3D -utskrift.

  1. Kropp
  2. Hjul
  3. Marmor Caster
  4. 6 mm bolt/mutter (valgfritt, en metallmutter/bolt kan byttes ut)
  5. Ultralyd sensorfeste

Alle nødvendige. STL -filer er inkludert i denne instruksjonsboken så vel som Sketchup -filene. 40% utfylling anbefales.

Trinn 2: Programmer Arduino

Image
Image
Sett sammen roboten
Sett sammen roboten

Send kode til Arduino UNO: Bruk Arduino IDE til å sende koden (i den vedlagte filen) til Arduino -modulen. Du må laste ned og inkludere servo.h og newping.h bibliotekene med denne skissen.

Koden er grundig kommentert, slik at du kan se hva hver kommando gjør. Du kan enkelt endre avstanden til ultralydsensoren til en større eller mindre verdi hvis du ønsker det. Dette er en første kode og er ment å bli utvidet og brukt til videre prosjektutvikling.

// OBSTACLE UNNGÅ ROBOT // [email protected], [email protected], University of TN at Chattanooga, Electrical Engineering, FALL 2019 // Materialer som kreves: // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) HCSR04 Ultralydsensor, 4) FS90 Servo (for Ultralydssensor) // 5 & 6) 2x KONTINUELL ROTASJONSSERVOS for hjulene // 7) 16 mm Marmor for sving på bakhjulet, 8 & 9) 2 gummibånd for hjul // 10- 15) 1x (4xAA) Batteriholder med av/på -bryter, 16 og 17) 9V batteri med kontakt for å drive Arduino UNO // 3D PRINT: // 18) ROBOT Body, 19 & 20) 2x Wheels, 21) Marble Caster, 22) Ultrasonic Sensor Fest og 6 mm skrue (se vedlagte filer) // -------------------------------------- -------------------------------------------------- ----------------------------------------- #include // Inkluder Servobibliotek #include // Inkluder Newping-bibliotek // ------------------------------------------- -------------------------------------------------- ------------------------------------ #definere TRIGGER_PIN 1 2 // US trigger til pin 12 på Arduino #define ECHO_PIN 13 // US Echo til pin 13 på Arduino #define MAX_DISTANCE 250 // Distance to ping (max is 250) int distance = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Ultrasonic Sensor Servo Servo Left_Servo; // Venstre hjul Servo Servo Høyre_Servo; // Høyrehjuls servo NewPing sonar (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing -oppsett av pinner og maksimal avstand. // ------------------------------------------------ -------------------------------------------------- ------------------------------- ugyldig oppsett () // INNGANG/UTGANGER, HVOR FESTE, STILLE INNFØRENDE POSISJON/BEVEGELSE {pinMode (12, OUTPUT); // Trigger pin satt som output pinMode (13, INPUT); // Echo pin satt som input US_Servo.attach (11); // US Servo satt til pin 11 US_Servo.write (90); // US SERVO GLEDER FREM

Venstre_Servo.attach (9); // Venstre hjulservo til pinne 9

Venstre_Servo.skrive (90); // LEFT WHEEL SERVO satt til STOPP

Høyre_Servo.attach (10); // Høyrehjuls servo satt til pinne 10

Right_Servo.write (90); // RIGHT WHEEL SERVO satt til STOP forsinkelse (2000); // Vent i 2 sekunder avstand = readPing (); // Få pingdistanse ved rett frem posisjon forsinkelse (100); // Vent på 100 ms moveForward (); // ROBOT BEVEGER FRAM} // ------------------------------------------ -------------------------------------------------- ------------------------------------- void loop () {int distanceRight = 0; // Start US avstand til høyre ved 0 int distanceLeft = 0; // Start US avstand til venstre ved 0 //US_Servo.write(90); // Senter amerikansk servo // forsinkelse (50); // US_Servo.write (70); // Se litt til høyre // forsinkelse (250); // US_Servo.write (110); // Se litt til venstre // forsinkelse (250); // US_Servo.write (90); // Look Center

hvis (avstand <= 20) // Roboten er FREMGÅR {moveStop (); // Robot STOPPER på avstand = distanseLeft) // Bestem hvilken retning du vil svinge {turnRight (); // Høyre side har størst avstand, ROBOT DREI HØYRE for 0,3s forsinkelse (500); // Denne forsinkelsen bestemmer svingelengden moveStop (); // Robot STOPPER} else {turnLeft (); // Venstre side største avstand, ROBOT Svinger til venstre for 0,3s forsinkelse (500); // Denne forsinkelsen bestemmer svingelengden moveStop (); // Robot STOPPER}} annet {moveForward (); // Robot BEVEGER FREM} distanse = readPing (); // USA LES NY PING for den nye reiseretningen} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // Ultrasonic Sensor LOOK RIGHT FUNCTION {US_Servo.write (30); // US servo BEVEGER RETT til vinkelforsinkelse (500); int distance = readPing (); // Angi pingverdi for høyre forsinkelse (100); US_Servo.write (90); // US servo FLYTTER TIL SENTER returavstand; // Avstand er angitt} // ------------------------------------------ -------------------------------------------------- ------------------------------------ int lookLeft () // Ultrasonic Sensor LOOK LEFT FUNCTION {US_Servo.skrive (150); // US servo BEVEGER VENSTRE til vinkelforsinkelse (500); int distance = readPing (); // Angi pingverdi for venstre forsinkelse (100); US_Servo.write (90); // US servo FLYTTER TIL SENTER returavstand; // Avstand er angitt} // ------------------------------------------ -------------------------------------------------- ------------------------------------ int readPing () // Les Ping-funksjon for ultralydssensor. {forsinkelse (100); // 100ms mellom pingene (min pingtid = 0.29ms) int cm = sonar.ping_cm (); // PING -avstand samles og settes i cm hvis (cm == 0) {cm = 250; } retur cm; } // ----------------------------------------------- -------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 fremover, 0 bakover Right_Servo.write (90); // RightServo 0 fremover, 180 bakover} // --------------------------------------- -------------------------------------------------- ---------------------------------------- ugyldig moveForward () // ROBOT FRAM {Left_Servo.skrive (180); // LeftServo 180 fremover, 0 bakover Right_Servo.write (0); // RightServo 0 fremover, 180 bakover} // --------------------------------------- -------------------------------------------------- --------------------------------------- ugid moveBackward () // ROBOT BACKWARD {Left_Servo.skrive (0); // LeftServo 180 fremover, 0 bakover Right_Servo.write (180); // RightServo 0 fremover, 180 bakover} // --------------------------------------- -------------------------------------------------- ---------------------------------------- ugyldig turnRight () // ROBOT RIGHT {Left_Servo.skrive (180); // LeftServo 180 fremover, 0 bakover Right_Servo.write (90); // RightServo 0 fremover, 180 bakover} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnLeft () // ROBOT LEFT {Left_Servo.skrive (90); // LeftServo 180 fremover, 0 bakover Right_Servo.write (0); // RightServo 0 fremover, 180 bakover} // --------------------------------------- -------------------------------------------------- ----------------------------------------

Trinn 3: Sett sammen roboten

Image
Image
Sett sammen roboten
Sett sammen roboten
Sett sammen roboten
Sett sammen roboten

Nå er det på tide å sette sammen roboten din. Trinnene er listet opp nedenfor.

1) Fest runde servoskive og gummibånd til hjul: Alle servoer leveres med monteringsutstyr og skruer i plast. Finn de runde skivene, og skru dem inn i de to hullene på den flate siden av hjulene. Gummibåndene passer rundt hjulet for å gi grep. Det kan være lurt å legge til litt lim for å holde gummistrikkene på plass.

2) Marble Caster Attachment: Bruk to små skruer for å feste marmorhjulet til de to trekanter på baksiden. Marmorhjulet er en enkel erstatning for et bakhjul og gir et bakre svingpunkt.

3) Sett servoer inn i sporene (ingen skruer nødvendig): Plasser FS90 -servoen (for ultralydssensoren) i frontsporet på kroppen. De to kontinuerlige rotasjonsservoene glir inn til venstre og høyre spor. Sporene er designet for en tett passform, slik at det ikke kreves skruer for å holde servoene på plass. Sørg for at servotrådene løper gjennom sporene i sporene slik at de vender mot baksiden av kroppen.

4) Plassering av 9V batteri (VALGFRITT): Plasser 9V batteri + Arduino strømkontakt bak servoen foran.

5) Ultralydsensormonteringsenhet: Bruk to små skruer for å feste en av de medfølgende hvite plast servofester til bunnen av den ultralydsensor festeplaten. Deretter bruker du den 3D -trykte 6 mm bolten/mutteren (eller erstatter en metallbolt/mutter) for å feste ultralydsensorhuset til festeplaten. Til slutt plasserer du sensoren i etuiet med pinnene vendt oppover og klikker på baksiden av saken.

6) 4x AA -batterideksel: Plasser AA -batterikassen i det store rektangulære området, med av/på -bryteren vendt bakover.

7) Arduino Uno + V5 sensorskjerm: Fest skjoldet til Arduino og sett det på festene over batterikassen. Strømkontakten skal vende mot venstre.

Roboten din er bygget! Hva er igjen? Programmering av Arduino og tilkobling av jumperledninger: Servoer, ultralydsensor og strømforsyning.

Trinn 4: Fest sensortråder

Image
Image
Ferdig !!! Koble til 9V Arduino -strømforsyning, slå på batteripakken og begynn å unngå hindringer med OAREE
Ferdig !!! Koble til 9V Arduino -strømforsyning, slå på batteripakken og begynn å unngå hindringer med OAREE

Koble servoledninger til V5 Shield:

  1. Venstre kontinuerlig rotasjonsservo festes til PIN 9
  2. Høyre kontinuerlig rotasjonsservo festes til PIN 10
  3. Front FS90 Servo festes til PIN 11

Koble ultralydsensorpinner (via 4x hun til hunkabel) til V5 -skjold:

  1. Utløser til PIN 12
  2. Ekko til PIN 13
  3. VCC til en av pinnene merket med 'V'
  4. Jord til noen av pinnene merket med 'G'

Koble AA -batteridekselet til V5 -skjoldet:

  1. Fest den positive, røde ledningen til VCC -kontakten
  2. Fest den negative, svarte ledningen til jordkontakten

Trinn 5: Ferdig !!! Koble til 9V Arduino -strømforsyning, slå på batteripakken og begynn å unngå hindringer med OAREE

Image
Image
Ferdig !!! Koble til 9V Arduino -strømforsyning, slå på batteripakken og begynn å unngå hindringer med OAREE
Ferdig !!! Koble til 9V Arduino -strømforsyning, slå på batteripakken og begynn å unngå hindringer med OAREE

Ferdig !

1) Koble 9V Arduino -strømforsyningen (valgfritt)

2) Slå på batteripakken

3) Begynn å unngå hindringer med OAREE !!!

Jeg er sikker på at du vil bli glad i den nye vennen din, OAREE, etter å ha sett den føle et hinder, ta en sikkerhetskopi og endre retning. OAREE fungerer best med store objekter som ultralydsensoren kan pinge av (som vegger). Det har vanskelig for å pinge små gjenstander som stolben på grunn av deres lille overflate og hjørner. Del, utvikle videre, og gi meg beskjed om nødvendige justeringer eller feil. Dette har vært en flott læringsopplevelse, og jeg håper du har det like gøy å lage dette prosjektet som jeg gjorde!

Robotikkonkurranse
Robotikkonkurranse
Robotikkonkurranse
Robotikkonkurranse

Runner Up i Robotics Contest

Anbefalt: